ATEC2026人工智能与机器人真实世界极限挑战赛由ATEC前沿科技探索社区联合香港中文大学、上海创智学院共同主办,清华大学、北京大学、复旦大学、香港科技大学、蚂蚁集团等多家单位共同组织。
赛事以“AI and Robotics Real-World Extreme Challenge-人工智能与机器人真实世界极限挑战”为主题,面向全球高校、科研机构、科技企业及极客团队开放报名,聚焦具身智能在真实世界中的系统级能力验证。核心目标是检验带臂的足式机器人在真实、不可预测的户外环境中,能否像在实验室里一样稳定、连续地完成复杂任务。
文章面向希望复现 ATEC2026 线上赛·赛道1「机器人徒步(Locomotion)」的小伙伴。我们会从报名、下载官方代码、搭建 Isaac Sim / Isaac Lab 环境、跑通官方 baseline、完成线上提交讲起。
我们记录真实的本地冲榜实验完整复盘出来:
为什么官方 baseline 能提交并拿到有效分数?
为什么中间 checkpoint 可以把分数从 2.35 提到 5 分左右?
中途本地评估为什么比盲目长训更重要?
感谢datawhale社区提供本次复现过程。
01
这场比赛在考什么
ATEC2026 开放两个赛道,通过线上仿真和线下真实场景共同验证具身智能系统的长期稳定性、真实环境适应能力和可复现性。
赛道1线上赛分为 L0 和 L1:
层级任务核心目标L0机器人徒步带臂足式机器人沿约 400 m 路线稳定行走,经过平地、粗糙地面、上下坡、上下楼梯L1 任务1垃圾拾取与投放在 20 m x 20 m 区域中完成目标识别、导航、抓取、运输和投放L1 任务2越障通过沟壑或高台,可利用箱子等物体改造环境获得加分
本文只聚焦 L0。原因很简单:L0 是最适合入门的入口。它不需要先解决视觉识别和抓取,只要大家能把 locomotion 控制、评测、提交链路跑通,就已经完成了具身智能比赛里最关键的一半工程闭环。
大赛官网:
ATEC 官网:https://www.atecup.com/competitions/100017
赛道详情页示例:https://www.atecup.com/matchHomeDetails/100017/1000210
官方 baseline 仓库:https://github.com/atecup/ATEC2026_Simulation_Challenge
报名时间:ATEC2026 报名从 2026 年 4 月 1 日开放,到 2026 年 6 月 15 日 22:00(UTC+8)截止;上赛时间为 2026 年 5 月 1 日 10:00 到 2026 年 6 月 30 日 22:00(UTC+8)。
02
如何报名和进入提交页
报名和提交都在 ATEC 官网完成。实际页面可能会随官方迭代略有变化,但整体流程大致如下:
打开 ATEC 官网并注册/登录账号。
进入 ATEC2026 比赛页。
点击报名或加入比赛,按页面要求填写赛队信息。
进入「个人主页 / 我的比赛 / 赛道详情」。
在赛道详情页中切换到「资源入口」下载 Demo、选手指南和更新公告。
在「提交入口」中选择任务,例如 L0 的「机器人徒步」。
选择机器人构型,上传源码压缩包或推送镜像。
等待平台构建、运行和打分,在「历史提交」中查看结果。
L0 提交入口里会要求选择机器人模型。我们本次实验使用的是B2Piper,也就是 Unitree B2 四足底盘加 Piper 机械臂。平台源码上传一般要求根目录包含:
requirements.txt其中solution.py是比赛系统调用的入口;policy.pt可以是 TorchScript 导出的策略;requirements.txt可以为空。官方环境已经包含 PyTorch 等基础依赖,空 requirements 并不代表“没有依赖”,而是表示我们没有额外 pip 包需要安装。
03
算力选择:本地机器或租用算力自由平台L40系列显卡
ATEC 的 L0 baseline 依赖 Isaac Sim 5.1 和 Isaac Lab 2.3.x,建议有两种选择:
方案适合场景注意点本地工作站已有大显存 NVIDIA GPU,并且能安装 Isaac Sim / Isaac Lab环境安装和驱动匹配成本较高租用 GPU 云主机想快速复现、训练、看桌面仿真画面建议选择已经适配 Isaac Sim 的镜像
使用算力自由平台,建议优先选择带远程桌面、NVIDIA 驱动、Isaac Sim / Isaac Lab 环境的镜像。L40 是比较合适的起步卡:它显存足够跑中等规模并行环境,价格通常比 A100/H100 更适合教学实验。
推荐镜像链接:https://www.gpufree.cn/images/101314
策略建议:从 LeHome Challenge ICRA大赛 教程中,说明"单卡 L40 能稳定起跑",再给出 batch size、日志和 GPU 曲线,而不是承诺一定能冲榜。ATEC 这里同理:L40 能帮助大家快速跑通和训练,但能否拿高分取决于 reward、观测、课程和提交策略。
建议检查 GPU:
nvidia-smi如果大家看到类似 L40、RTX 4090、A6000、RTX PRO 6000 等 NVIDIA GPU,并且显存充足,就可以继续。我们本地实验使用的是大显存 NVIDIA 工作站;如果换成 L40,建议先从较小并行环境数开始,例如
--num_envs 1024或2048,确认不 OOM 后再加到4096。
04
下载官方代码与机器人模型
官方仓库可以直接克隆:
cd "$PROJECT_ROOT"如果从 GitHub 获取代码,需要额外下载机器人模型:
unzip atec_robot_model.zip -d atec_robot_model如果大家从官网「资源入口」下载的是ATEC2026_Simulation_Challenge.zip,通常已经包含atec_robot_model,不需要再重复下载。
建议记录官方资源版本:
git rev-parse HEAD比赛后期官方可能发布更新公告,例如机器人初始关节位置更新、Action Configuration 更新、日志说明、LiDAR 扫描范围更新等。大家每次提交前都要确认本地代码和官方资源入口一致,否则线上分数和本地分数可能对不上。
05
安装 Isaac Lab 扩展
在已经装好 Isaac Sim / Isaac Lab 的 Python 环境中安装官方扩展:
pip install -e .回到项目根目录:cd "$PROJECT_ROOT"检查环境:PY如果使用 Isaac Sim 相关脚本,建议带上 EULA 环境变量:
export OMNI_KIT_ACCEPT_EULA=YES06
跑通官方 L0 baseline
官方博客和 baseline 通常建议先跑 rough locomotion 训练:
--headless训练结束后,导出的策略一般在:logs/rsl_rl/unitree_b2_rough/ /exported/policy.pt本地播放:
--task ATEC-Isaac-Velocity-Rough-Unitree-B2-v0提交时,把导出的policy.pt放到demo或提交包根目录,并保证solution.py能加载它。
07
线上提交:能出分,但很低
我们先使用官方unitree_b2_flat/policy.pt做提交。这个权重和 demo 里的policy.pt完全一致,是一个45维观测输入、12维动作输出的 Unitree B2 flat locomotion actor。
本次线上有效提交:
项目数值机器人B2Piper分数2.35仿真用时00:03:18.40物理用时00:07:25.55线上排名位置中下游
这说明 baseline 可以完成源码上传、构建、运行和打分,但它离满分26差得很远。原因也很直观:flat policy 是在相对简单地形上训练出来的,直接放到 400 m 复杂组合地形中,会在第一段后卡住。
我们本地最好的 flat-policy 调参大致是:
ATEC_VEL_YAW=0.02.31分,和线上2.35接近,说明本地评估有一定参考价值。
08
为什么选择 B2Piper,而不是一开始就上轮足
L0 提交页支持多个构型,例如G1、Tron1Piper、Tron2ALegged、Tron2AWheel、B2Piper、B2wPiper。
我们的判断是:
构型优点风险B2Piper和官方 B2 flat actor 的 12 维腿部动作完全对齐,最容易迁移速度上限不如轮足B2wPiper理论速度更高,适合冲极限时间需要腿+轮动作一起训练,没有现成预训练Tron2AWheel轮足结构适合高速需要从头建立训练配置G1人形平台灵活L0 长距离稳定行走训练成本高
所以第一轮冲榜不应该直接换最激进构型,而是先用B2Piper建立可复现的训练和评测闭环。等 B2Piper 能稳定拿高分后,再考虑B2wPiper或Tron2AWheel冲时间。
09
真实的高速训练实验
我们尝试过一条看起来很合理、但最后证明有问题的路线:
使用官方
unitree_b2_flat/policy.pt初始化 B2Piper actor。新增高速 rough locomotion 任务。
把速度命令范围扩大到
0.5 ~ 4.5 m/s。用 4096 个并行环境做 PPO 长训。
每隔若干 checkpoint 导出策略,在 TaskA 本地评估。
训练命令等价于:
--run_name fast_actorinit_4096x5000这里的关键不是4096,而是ATEC_INIT_ACTOR_POLICY。我们给训练脚本加了一个 actor 初始化入口,使 B2Piper rough policy 不是完全随机起步,而是从官方 B2 flat actor 开始微调。
09
训练曲线
训练 reward 看起来是在持续上升:
从这张图看,很容易产生一种错觉:训练 reward 涨了,榜单分也会涨。但后面的本地评估证明,这个判断并不可靠。
速度误差和地形课程如下:
这里最值得注意的是Velocity error XY长期偏高。也就是说,策略虽然在训练环境里拿到更高 reward,但并没有稳定跟踪我们给出的高速命令。
本地 checkpoint 评估
我们把若干 checkpoint 导出到 TaskA 本地评估,结果如下:
关键结果:
checkpoint速度命令本地 TaskA 分数现象官方 flat / 线上约0.65``2.35可出分,但卡在前段model_100``0.65``0.0086几乎原地model_600``1.5``5.1265明显超过 baseline,跑到x≈-52``model_800``1.5``1.2543退化,快速摔倒model_3800``1.5``5.0660接近 model_600,但仍远低于满分
这说明训练后期 reward 继续涨,并不代表 TaskA 分数继续涨。model_600反而是目前最好的中间点。
10
这次阶段性提分说明了什么
这次实验不是“无效训练”:它把本地 TaskA 分数从 baseline 附近的2.35提到了5.12左右,已经超过了榜单上一部分队伍。真正的问题是,训练 reward 的上涨没有稳定转化成完整路线通过能力,所以它还不是可以冲满分的最终方案。
Reward 教会了“活着”,没有教会“走完路线”
训练中 episode length 接近满时长,reward 也在涨,说明策略学会了在训练地形里保持姿态。但 TaskA 需要的是沿指定路线持续向前,穿过多个真实评测地形段。
也就是说,训练环境奖励和比赛进度奖励没有对齐。
速度命令太激进,破坏了官方 prior
我们直接把命令范围拉到0.5 ~ 4.5 m/s。这对官方 flat actor 来说跨度太大,PPO 很容易把原本能走的 prior 训坏。model_600短暂变好,model_800又退化,就是一个典型信号。
更稳妥的方式应该是课程式增加速度,例如:
1.5 ~ 2.0 m/s每一档都要通过 TaskA 本地评估门槛,再进入下一档。actor 没有地形高度输入当前 45 维 actor 观测主要包括:
base angular velocity
projected gravity
velocity command
joint position
joint velocity
previous action
critic 有 height scan,但 actor 没有。TaskA 包含坡、台阶、粗糙地面,actor 如果完全看不到地形,只能靠 proprioception 盲走。它在简单地形里可能可以维持步态,但遇到复杂组合地形就很容易卡住或横向漂移。
横向漂移没有被足够惩罚
model_3800在vx=1.5下跑到:
termination = illegal_contact这说明策略不是沿路线直走,而是明显跑偏。训练里虽然有速度跟踪,但没有足够强的路线约束和横向偏移惩罚。11
中途评估方式
比赛训练不要盲跑到最后。我们建议大家在训练脚本外加一个 checkpoint gate:
等待
model_100.pt、model_300.pt、model_600.pt等 checkpoint。用
scripts/rsl_rl/play.py导出 TorchScriptpolicy.pt。临时替换提交目录里的
policy.pt。跑
ATEC-TaskA-B2Piper本地评估。记录分数、耗时、终止原因、最大 x 位置。
恢复原始可提交 baseline policy。
评估时要注意两个坑:
TaskA 环境有相机,需要加
--enable_cameras。不要并发评估多个 checkpoint,否则多个进程同时替换
demo/policy.pt,结果会被污染。
示例流程:
"0.65 1.5"建议把结果写成表格:
model_600, 1.5, 5.1265, 59.98s, -52.47, unfinished12
进一步提高成绩
下一版不应该继续盲目拉长训练,而应该改训练目标。
建议优先级如下:
- 低速到高速课程
不要一开始就
4.5 m/s。先让策略稳定超过 baseline,再逐步加速。 - 加入路线进度奖励
训练 reward 中加入更接近 TaskA 的
x进度、通过关键地形段、到达阈值奖励。 - 抑制横向漂移
对
|y|加强惩罚,或者在命令和 reward 中明确要求贴近中心路线。 - actor 加地形观测
把 height scan 或低维地形编码加入 actor,而不是只给 critic。
- 按 checkpoint 选择模型
当前实验里
model_600比model_3800更好。比赛里应按本地任务分选 checkpoint,而不是按训练迭代数选最后一个。 - 再考虑轮足分支
当 B2Piper 能稳定高分后,再开
B2wPiper或Tron2AWheel分支冲时间
这次实验最有价值的结论不是“我们已经冲到高分”,而是:
官方 flat policy 可以帮助大家跑通提交链路,但不能直接冲榜。
RobotLab / rough locomotion 配置适合作为训练参考,但 reward 必须对齐比赛任务。
训练 reward 上涨不等于排行榜分数上涨。
中途本地评估是强化学习比赛的核心工程流程。
当前最好的中间策略是
model_600 + vx=1.5,本地约5.13分,但仍不值得作为最终冲榜提交。
如果大家继续做这条线,下一步应该先修 reward 和观测,而不是继续堆训练时长。
技术Blog征集|送100元平台算力金
Mbot具身智能实验室
让尖端科技触手可及,人人皆可探索未来
Mbot基础交流群等你加入,下方扫码联系
具身-杰西
Mbot具身-小助手
Mbot-视频号
Mbot-公众号
热门跟贴