里程碑

扩散生成 + RL 跟踪:把人形全身地形行走推上真机

Zewei Zhang, Kehan Wen, Michael Xu 等 · ETH Zurich (RSL) + ETH AI Center + EPFL + SFU + NVIDIA · IEEE RA-L (accepted June 2026) · arXiv:2604.17335v2 (2026-07-12)。 项目页 · humanoid locomotiondiffusion + RLsim2realsim2real loco 线索 T01

🧠 一句话心智模型:人形全身地形行走的最大矛盾是——纯 reward-shaping RL 学不会"用手撑、用膝盖顶"这种全身协调;纯 imitation RL 又只会复现离线参考、不能在线适配地形。本文把"扩散 motion generator + RL motion tracker"的组合搬上真机,关键 trick 是闭环 fine-tuning——冻住 generator,让它实时喂参考,让 tracker 在更难地形 + 方向命令下做 RL,于是 tracker 学成了"motion filter",能压住生成参考里的 artifact,最终在 75 cm 箱子、55 cm 跨栏、25 cm 台阶上都跑到 ~99% 成功率,且全 onboard

🎯 为什么重要:两条老路都有硬伤

2025–2026 年人形 whole-body loco 已经有两条成熟路线,但各自有硬伤:

路线能做什么硬伤
① 纯 reward-shaping RL
(ANYmal / ANYmal-C 路线移到人形)
纯 RL 学 loco,reward 全靠手设计探索效率低;倾向"下身主导"——脚在动、上半身僵着;遇到 parkour / 大台阶这种需要全身协调(手撑、膝顶、跳落后手缓冲)的任务几乎学不出来
② Imitation-based RL
(DeepMimic / PHC / OmniH2O / Exbody2)
用参考 motion 引导,能学到协调的 whole-body skill只会"复现"——参考是离线 choreographed 的,无法根据地形的 depth/高度图在线调整节奏与落脚点
核心矛盾:理想的解决方案需要"参考 motion 本身能在线生成"——这正是 motion generation(diffusion model)的用武之地。但生成式 motion 落地到真实机器人有三个新问题:(a) 扩散推理慢,实时控制跑不动;(b) 生成 motion 有 artifact(foot sliding、不连续),直接喂 tracker 会让机器人摔;(c) 简单拼接两 stage 在 OOD 地形上不 robust。本文的核心贡献就是同时解这三个问题

💡 核心思想:三阶段管线 + 闭环 fine-tuning 让 tracker 变成 motion filter

(a) Data Curation ~5 分钟原始 motion 自录视频 + AMASS / OmniRetarget GVHMR 重建 → contact IK retarget Motion augmentation(变高度 / 加 box) DeepMimic tracker 过滤 ~1 小时物理可行数据 覆盖 box 35-75 / vault 25-45 / stair 15-20 (b) Pre-training(独立) Motion Tracker DeepMimic-style PPO in IsaacLab 单 RTX 4090 · reward = r_mimic + r_reg Motion Generator (MDM) 扩散预测 25 帧 (0.5s) 未来 motion 条件:heading + height scan + 过去 2 帧 motion feature (c) RL Fine-tuning ⭐ 冻住 generator(参数锁) generator 吃真实 robot state (不是自己的预测)→ 闭环 加 task reward r_task heading tracking 大幅扩展地形 + 注入噪声 逼 tracker 学会扛 noisy ref 🚀 Onboard Deployment · Unitree G1 硬件栈: DLIO + Livox MID360 LiDAR + IMU Elevation Mapping CuPy(terrain) Jetson Thor(generator)+ Jetson Orin(tracker) 关键加速: TensorRT → ~0.02 s 推理 2 步 denoising(部署) Receding horizon: 每 0.25 s 更新 ref
图 1:三阶段管线。(a) 从 ~5 分钟原始 motion 扩到 ~1 小时物理可行数据;(b) 独立训 tracker(DeepMimic 风格)与 generator(MDM 风格扩散);(c) 核心创新——冻住 generator,让 tracker 在更难地形 + heading 命令下做 RL,把 tracker 训成"motion filter"。
🔮 为什么闭环 fine-tuning 是点睛之笔?
直接拼 pre-trained generator + pre-trained tracker 不行——generator 产出的参考有 artifact(foot sliding、不连续),tracker 没见过这种 OOD 参考、直接跟踪会摔。Stage (c) 同时做两件事:(1) 闭环条件——generator 不吃自己的上一步预测,而吃真实 robot state,把 generator 锚定到现实、避免误差累积;(2) 噪声注入——generator 推理时 + tracker observation 都加噪,让 tracker 学会"参考烂也能稳"。作者把这个机制解释为:tracker 被训成了 "motion filter"——跟踪参考、但用 exteroceptive terrain 观测压制不安全行为。

🛠️ 怎么做:tracker observation、reward、与硬件栈

Tracker observation 与 action(Sec.III-B-1)

类别维度内容
参考 state$\mathbb{R}^{3+3+23+9\times3}$linear vel + angular vel + joint pos/vel + 9 个 key body positions(base frame)
Proprioception$5 \times (\mathbb{R}^{3+3+23+23})$5 帧连续 base angular vel + projected gravity + joint pos/vel + previous action
Terrain$\mathbb{R}^{17\times 11}$height scan(在 fine-tuning 阶段保留——与 OmniRetarget "terrain 非必要"的结论不同)
Action$\mathbb{R}^{23}$23 维 target joint positions(PD 控制目标)

Reward 设计(Table I,全抄)

表达式(权重见公式前)
$r_{\text{mimic}}$
(六项 imitation)
Base pose tracking$3\exp(-4\|p_b^w - p_b^{w\ast}\|^2 - 4(1 - \langle q_b, q_b^\ast\rangle)^2)$
Base velocity tracking$\exp(-\|v_b^b - v_b^{b\ast}\|^2) - 0.1\|\omega_b^b - \omega_b^{b\ast}\|^2$
Joint position tracking$2.5\exp(-2\sum_{i=1}^{23} 0.25(q_i - q_i^\ast)^2)$
Joint velocity tracking$0.5\exp(-2\sum_{i=1}^{23} 0.01(\dot q_i - \dot q_i^\ast)^2)$
Body pos tracking (base frame)$2\exp(-\sum_{i=1}^{9}\|p_{l,i}^b - p_{l,i}^{b\ast}\|^2)$
Body pos tracking (global frame)$\exp(-\sum_{i=1}^{9}\|p_{l,i}^w - p_{l,i}^{w\ast}\|^2)$
$r_{\text{reg}}$
(七项 regularization,全负惩罚)
Action rate 1st order$-0.1\sum(a_t - a_{t-1})^2$
Action rate 2nd order$-0.05\sum(a_t - 2a_{t-1} + a_{t-2})^2$
Joint position limits$-10\sum\max(q_i - q_{\lim,i}, 0)$
Joint velocity limits同上形式(论文未给完整系数)
Torque limits$-0.001\sum\max(\tau_i - \tau_{\lim,i}, 0)$
Joint torques$-0.00001\sum\tau_i^2$
Body linear acceleration$-0.01\sum_{i=1}^{9}\|\ddot p_{l,i}^w\|^2$
$r_{\text{task}}$
(仅 fine-tuning)
Target heading tracking$1.5\langle v_b^b, d_b\rangle / \|v_b^b\|$(heading 内积)

Pre-training 阶段 reward = $R_{\text{pre}} = r_{\text{mimic}} + r_{\text{reg}}$(Eq.1);Fine-tuning 阶段 $R_{\text{post}} = r_{\text{mimic}} + r_{\text{reg}} + r_{\text{task}}$(Eq.2)。

硬件部署栈(Sec.III-D)

模块配置
本体Unitree G1 humanoid · neck 关节是 passive(剧烈动作会让头摆、破坏 base pose estimation)
State estimationDLIO + Livox MID360 LiDAR + IMU
Terrain perceptionElevation Mapping CuPy(由 DLIO base pose 喂入)
Motion generatorTensorRT 加速 → 推理 ~0.02 s
Generator 运行平台Jetson Thor(背挂)
Tracker + 其他模块Jetson Orin(G1 内置)
Receding horizon0.5 s prediction horizon,每 0.25 s 更新一次参考(4 Hz)
关键工程 trick · neck IMU 补偿:G1 的 neck joint 是被动的,剧烈动作时头会摆、污染 base pose estimation。作者把 DLIO 估计的 orientationtorso IMU 测的 pitch 滑动平均做差,估计 head pitch 变化并补偿。这条 trick 不写在 reward 里、写在感知前处理里——但少了它整系统跑不通。

📊 关键结果:极端地形上 ~99% 成功率 + 真机人形协调涌现

仿真 quantitative(Table III · 500 robots × 随机初始 pose)

任务Tracker-onlyTracker + Gen.
Box climbing (40-80cm × yaw 变化)0.859 ± 0.2520.987 ± 0.014+0.128
Vaulting (25-55cm)0.805 ± 0.2310.990 ± 0.026+0.185
Ascending stairs (15-25cm)0.845 ± 0.3000.997 ± 0.005+0.152
🔥 关键趋势:地形越极端,generator 帮助越大
极端场景Tracker-onlyTracker + Gen.
80 cm 箱子0.2300.962
25 cm 台阶0.1140.986
70 cm 箱子0.6060.966
55 cm 跨栏0.3480.920
Tracker-only 在小扰动下还行(fine-tuning 阶段学的 terrain generalization),但一旦需要改变 motion 时序/风格就崩——这正是 generator 的价值:它能在地形变化时实时生成新的参考

Fine-tuning 消融(Fig.4)

fine-tuned tracker vs pre-trained tracker(都接同一 generator),在 climbing up/down、vault、stair 上/下五个任务上 fine-tuning 全胜地形越高差距越大——证明 fine-tuning 不是 marginal refinement,是 systemic robustness 提升。

深层原因:pre-trained tracker 在干净的离线参考上训练;部署时 generator 在 noisy 状态 + 地形 + heading 下产出的参考有artifact 与不连续——这是 distribution mismatch。Fine-tuning 让 tracker 适应 generated reference 的分布,并用 terrain 观测压制不安全行为。

硬件 demo(Fig.3 · 真机 G1)

任务表现
Box climbing(最惊艳)G1 爬 75 cm 箱子、再跳下;能直上直下、能 90° 转身侧跳、能从角上爬;爬上时用膝盖和手撑、跳下时用手缓冲——完全是 human-like 全身协调,不是下身主导
Stairs + Vaulting连续跨栏、stair 上下;可连续穿越多个不同高度的 hurdle
Local navigation能绕开箱子到达目标(tracker 部分覆盖 generator 的参考、从侧面绕过)
Mixed terrainvault + stair + box 一条线上 traversal,即使这种组合训练时未见过
🎯 最让人惊艳的现象:hand-assisted climbing 的 whole-body 涌现。爬 75 cm 箱子时机器人自发用膝盖 + 手撑——这是 reward-shaping RL 难以学出来的协调动作,由参考 motion 引导 + generator 适配后涌现

🌐 在领域中的位置:generator + tracker 范式首次上真机人形

DeepMimic (2018)·单参考 tracker MDM (2022)·motion 扩散生成 CLOSD (2024)·generator + tracker 闭环(仿真) BeyondMimic / Diffuse-CLOC (2025)·guided diffusion + tracker(仿真) 本文 (2026)·真机人形 + 地形感知 ⭐

同期对照路线:APEXPerceptive Humanoid ParkourANYmal Parkour 都走「训 N 个专家 + DAgger distill 成一个 student」的重 pipeline——本文用 motion generator 直接替代 expert pool,工程量数量级降低。这是 humanoid loco 工程方法的分水岭。关联线索:T01 sim2real locoT05 扩散谱系T12 敏捷地形穿越

❓ 常见误区

扩散模型推理那么慢,怎么跑 50 Hz 控制环?

不是 50 Hz。generator 是 4 Hz——0.5 s 预测 horizon,每 0.25 s 更新一次参考(receding horizon)。tracker 才是高频。具体加速:(1) 2 步 denoising(不是默认的几十/上百步);(2) TensorRT 加速到 ~0.02 s;(3) Jetson Thor 双计算单元分工——generator 跑 Thor,tracker 跑 Orin。再多 denoising 步质量更好但实时性掉,这是 diffusion-based loco 的固有张力。

generator 和 tracker 为什么不合成一个网络?

这是当前工作的工程妥协,作者明确承认局限。两模型训练目标不完全对齐:generator 学"运动学可行的 motion 分布",tracker 学"动力学可执行的跟踪"。分开训更稳定但多一份复杂度。未来可能被 unified policy(如 MaskedMimic 路线)或 flow matching / consistency model 替代。

为什么不直接用 multi-expert distillation(APEX、ANYmal Parkour 那套)?

因为 distillation pipeline 非常重——要训 N 个专家、做 expert assignment、设计数据分布、DAgger distill。本文用 motion generator 直接替代 expert pool:generator 在线生成参考 = 自动选专家。作者强调这是"不需要 carefully designed distillation procedures"的核心优势。代价是 generator 训练需要参考数据,而参考数据的覆盖率决定了能做的动作类型。

"闭环 fine-tuning"和普通 RL fine-tuning 有什么区别?

关键在于 generator 接谁的 state。开环条件:generator 接自己的上一步预测(autoregressive)——误差累积、容易飘。闭环条件:generator 接真实 robot state——把 generator 锚定到现实。同时往 generator 推理 + tracker observation 都加噪声——让 tracker 学会扛 noisy 参考。这两个 trick 把 tracker 训成了"motion filter"。

tracker 真的需要 terrain height scan 吗?

fine-tuning 阶段需要。OmniRetarget 论文(Yang et al. 2025)的结论是"terrain 非必要",但本文作者发现:在 fine-tuning 阶段保留 exteroceptive input 给 tracker,能让后续 fine-tune 更顺——因为 tracker 要学会用 terrain 观测压制 generator 产出的不安全行为。这也正是 tracker 学成 "motion filter" 的关键感知输入。

75 cm 箱子是 cherry-pick 吗?

不是。Table III 显示 80 cm 箱子 Tracker+Gen. 成功率 0.962,70 cm 是 0.966,60 cm 是 0.996——大范围 box 高度都稳定通过。500 个机器人 × 随机初始 pose 的统计结果,不是单次成功。视频里展示的 75 cm 是真机演示(仿真做到 80 cm)。

主要局限是什么?

(1) 依赖 LiDAR elevation mapping——mapping 一退化整 pipeline 崩,作者明确未来方向是 neural mapping(AME-2)或 belief encoder(ANYmal-C);(2) 数据集只有 ~1 小时,遇到完全新地形(冰雪、泥泞)泛化未验证;(3) 只在 G1 验证,跨本体未测;(4) 2 步 denoising 是工程妥协;(5) 仅 loco 不含 manipulation