ASAP:让仿真里的「C 罗跳」落到真机器人上——靠学一个「残差动作」补 sim-to-real gap
🎯 为什么重要:sim-to-real gap 是人形敏捷动作的死穴
想让人形机器人做出 C 罗 180° 转体跳、LeBron 单腿平衡、Kobe 后仰跳投这种高动态全身动作,靠人在真机上 RL 试错是不现实的(论文坦承两台 G1 在数据采集期间被弄坏)。必须先在仿真练好再搬过去——但仿真跟真机有 gap:
💡 核心思想:在仿真里装一个「假装是真机」的残差头
形式化:训练阶段 2a 的目标,是学一个 $\pi_\Delta(s, a)$ 使得 $$f_{\text{sim}}(s, a + \pi_\Delta(s, a)) \approx f_{\text{real}}(s, a).$$ 注意:$\pi_\Delta$ 是一个 RL policy(不是简单回归),由 PPO 优化(奖励 = 仿真下一状态 ≈ 真机下一状态)。
🛠️ 怎么做到的:从视频到 delta 模型的完整管线
| 组件 | 心智 | 关键数字(来自 PDF) |
|---|---|---|
| ① 数据生成(视频 → 动作) | TRAM 从视频估 SMPL → MaskedMimic 在 sim 中清洗不可行动作 → shape-and-motion 两阶段重定向到 G1 | 23-DoF;多个运动难度等级 |
| ② Phase-based Tracking Policy | 状态包含时间相位 $\phi\in[0,1]$ 当 goal;不需要 odometry | 23-DoF action;5 步历史 |
| ③ Asymmetric AC | actor 只看 proprioception + 相位;critic 看全局位置 + root velocity | 消除部署时对 odometry 的依赖 |
| ④ Termination Curriculum | tolerance 从 1.5m 逐步收紧到 0.3m,避免策略一开始就摆烂 | 1.5m → 0.3m |
| ⑤ Reference State Init (RSI) | 随机采样相位起点初始化——让策略能并行学动作不同阶段,不必从头顺学 | backflip 必须先会落地 |
| ⑥ Delta Action 模型 | 真机 4-DoF 踝关节 delta(不是全身 23-DoF);用 RL 训练 | 100 段真机轨迹足够训 4-DoF;全身 23-DoF 需要 >400 段 |
论文专门做了对比(Fig.4):Delta Dynamics 是学「下一状态的残差」 $\Delta s_{t+1}$——它会过拟合,开环短期内准,但闭环 rollout 时残差累积爆炸。Delta Action 是学「怎么改当前 action」 $\Delta a$——它能被 policy 主动「反推」,闭环稳定。这就像「修工具」比「修结果」更稳。
两个理由:(1) 真机数据太贵——论文坦承 2 台 G1 在数据采集期间坏掉,全身 23-DoF delta 至少要 400 段,采不动;(2) Unitree G1 的踝关节是机械连杆设计,仿真建模误差最大——sim-to-real gap 的「重灾区」就在脚踝。把宝贵的真机数据集中训 ankle delta,性价比最高。
📊 关键结果:sim-to-sim 和 sim-to-real 都显著好
| 评估 | 关键数字 |
|---|---|
| sim-to-sim(IsaacGym → IsaacSim/Genesis) | Tab.IV Hard 级别:IsaacSim 上 Eg-mpjpe 129 vs Vanilla 148 / SysID 165 / DeltaDyn 137;Genesis 上 100% 成功率,DeltaDyn 只有 60% |
| 开环重放(Tab.III) | 长程(1.0s)IsaacSim 上 Eg-mpjpe 37.9 vs OpenLoop 80.8,DeltaDyn 反而 68.1——证明 delta action 抗长程误差累积 |
| 真机(Tab.V) | Real-Kick:Eg-mpjpe 50.2 vs Vanilla 61.2;Real-LeBron (OOD):112 vs 159——sim-to-real 误差减少最高 52.7% |
| RL fine-tune > training-free 方法 | Fig.11:fixed-point iteration 和 gradient search 都不如直接 RL fine-tune(因为它们假设 one-step matching) |
| 结构性 insight(Fig.13) | Δa 在各关节上的幅值不均匀——下肢显著大于上肢,脚踝 pitch 最大,证明它学到了真实的物理 gap 分布 |
| vs Random Action Noise | Fig.12:适度噪声 β ∈ [0.025, 0.2] 能帮一些,但远不及 delta action(MPJPE 126 vs 噪声最好 173)——证明 Δa 学的是结构性修正,不是单纯增强鲁棒性 |
🌐 在领域中的位置
ASAP 是 sim-to-real 流派里「学残差而非学参数」思路的代表。它与 HOVER(论文 [26])等工作互补——前者(ASAP)解决「仿真和真机不对齐」,后者(HOVER,versatile whole-body controller)解决「策略通用性与表达力」。关联线索:T01 locomotion 谱系。
❓ 常见误区
delta action 模型在部署时还要用吗?
不用。这是 ASAP 的关键设计:Δa 只在「修正过的仿真器」里用,目的是让 fine-tune 阶段的仿真环境贴近真机。fine-tune 完成后,Δa 已经被「内化」进 policy——部署时直接跑 policy,丢掉 Δa。否则真机上还得跑 Δa 模型,多了延迟和不可靠性。
为什么不直接在真机上 RL?
论文里写到:数据采集期间弄坏了 2 台 Unitree G1。敏捷动作(跳跃 / 单腿平衡)会让电机迅速过热、关节受损。真机 RL 不仅危险,而且数据效率极低。ASAP 的两阶段——sim 大量预训 + 真机小量 fine-tune Δa——是务实折衷。
它和 DreamWaQ / RMA 这类在线适应方法有什么不同?
RMA / DreamWaQ 学的是「状态 / 隐变量」的在线适应(policy 自己根据 proprioception 推断环境)。ASAP 学的是「动作残差」——直接补物理 gap。前者适合 locomotion(环境相对稳定),后者适合敏捷动作(一次性、高动态、容错小)。两者可以组合。
delta action 会不会过拟合到采集的那几个动作?
论文做了 OOD 实验(Real-LeBron,训练时未见过)——Δa fine-tune 后真机 MPJPE 从 159 降到 112,说明它学到的是通用的物理 gap 修正,不是某个动作的特化。但作者也指出,数据规模是关键限制——全身 23-DoF delta 还需要 >400 段真机数据,未来要解决 sample efficiency。