深度⏱ ~2 min
里程碑
⭐ 为何重要

针对 humanoid sim-to-real 的 dynamics gap,提出两阶段方法:用真实数据学一个 residual delta dynamics model 来修正仿真物理,再在修正后的仿真里 fine-tune 策略。让 Unitree G1 学会踢、跳、转等纯仿真学不到的敏捷全身技能,是人形机器人上弥合 sim-real 物理鸿沟的代表性 recipe,延续了 OmniH2O/HOVER 的敏捷化路线。

机器人Unitree G1
数据集AMASS
上真机
物理感知
实时
输入模态proprioception

论文:He, Gao, Xiao et al.(CMU / NVIDIA). ASAP: Aligning Simulation and Real-World Physics for Learning Agile Humanoid Whole-Body Skills. RSS 2025. arXiv:2502.01143. 🌐 · 真机平台:Unitree G1 人形。

一句话直觉

让仿真人形学真机剧烈动作。

秘诀是学一个差值补丁。

ASAP 之于机器人,像老枪手用偏靶旧枪。

不修枪,只记偏差,反向瞄准。

是什么·为什么

要解决的问题:让 Unitree G1 人形学会剧烈动作。

踢球、跳跃、转体。

仿真里学得很好,一上真机就崩。📎

老办法·第一条domain randomization,简称 DR。

在仿真里随机变摩擦、质量、电机强度。

策略对一切扰动都鲁棒。

代价是策略太保守,剧烈动作做不出来。📎

老办法·第二条system identification,简称 SysID。

精确测真机参数,再校准仿真。

剧烈动作的接触惯量高度非线性,测不准。📎

ASAP 的转身:不消除 gap,也不缩小 gap。

学一个 delta model 补偿 gap。📎

gap 从"要克服的障碍"变成"可学的残差"。

ASAP 之于机器人,就像老枪手用偏靶旧枪。

不修枪,只记下偏差量,瞄准时反向打。

方法核心(大白话):分三步。

Step 1,仿真预训练 + 收真机数据。

先在仿真里训一个能跟踪动作的策略。

把它部署到真机 G1 上跑一段。

记录"我下令这样做,真机结果是这样"。

这堆数据里藏着仿真和真机的差异指纹。📎

Step 2,训一个"差值侦探"。

它读真机的状态和下令的动作,输出一个修正量。

把修正量加到动作上,仿真的下一步就贴近真机。

这个修正量就是 delta。📎

侦探是用强化学习PPO)训出来的策略,记作 π_∆。

Step 3,冻住侦探,嵌进仿真器

每次仿真 step 先加 delta 再算物理。

在这个"对齐过的仿真"里微调策略。

策略学会了"在带 gap 的环境里也能做对动作"。📎

部署时侦探不需要了。

策略已经在对齐仿真里学会了应对真机。

为什么 delta 能学到:同一个电机命令,真机和仿真的下一步状态有差。

这个差是系统性的,可以被网络拟合。

差值侦探把它学出来,反向补偿。📎

你会看到:Unitree G1 真机学会踢球、跳跃、转体。

显著超过纯仿真到真机的基线(只用 DR)。📎

怎么做

核心机制·两阶段框架📎

Stage 1:仿真预训练 + 真机数据收集

人类视频 retarget 到仿真,先做 motion tracking 预训练。

关键是多个 tracking policy 上真机 rollout。

收集多样化真机轨迹 (s_r, a_r, s_r')

数据含 sim-real gap 的"指纹"。📎

Stage 2:Delta Action Model 训练(核心创新)。

训一个 delta model,预测真机与仿真的差异:

$$s_{r,t+1} \approx f_{sim}(s_{r,t},\; a_{r,t} + \Delta a_t)$$

读法:f_sim 是仿真器,a_{r,t} 是真机下令的动作,Δ a_t 是侦探输出的修正量,加完再喂仿真器,让下一步贴近真机观测 s_{r,t+1}

侦探是一个 RL 策略 π_∆(s_t, a_t),输入当前状态和动作、输出修正量 Δa_t——论文未指定网络结构。

训练用 PPO:reward = 仿真下一步状态与真机下一步状态的 discrepancy,再加一项 action-norm 正则(exp(−∥a_t∥) − 1)防修正量爆炸,详见 Table II。📎

注意别和 DeltaDynamics 基线搞混——那个才是 MSE 监督的残差 dynamics 模型(附录 VIII-C),ASAP 不是。

Stage 3:Policy 微调

冻住 delta,集成进仿真器(每次仿真 step 先加 delta 再算物理)。

在对齐仿真里微调 motion tracking policy:策略出动作 → 加 delta → 喂仿真器。

部署不需要 delta——policy 已学会在带 gap 的环境里做对动作。

常见误区(先抛一个,完整版见末尾):"部署时还要带 delta model 吧?"

错。delta 只在 Stage 3 训练时嵌进仿真。

部署只有 policy,没有 delta。

policy 在对齐仿真里已学会"在 gap 下也能做对"。📎

深度

sim-to-real 的三种方法(论文 Sec.1 原文分类)📎

方法思路对 gap 的态度
SysID精确测真机参数、校准仿真缩小 gap
DR随机化仿真参数、逼策略鲁棒覆盖 gap
Learned dynamics(ASAP)用真机数据学一个 delta 补偿 gap学 delta 补偿 gap

论文明确把方法归为这三类;ASAP 属第三种"learned dynamics",论文未提 RMA

ASAP 的关键区别:gap 不是参数级的(DR/SysID 的假设),而是函数级的——直接学一个策略 π_∆ 拟合 gap 函数。这绕开了"参数化建模"的根本困难。

三个迁移场景(论文 Sec.5):📎

  1. IsaacGym → IsaacSim(仿真间迁移,验证 delta model 泛化
  2. IsaacGym → Genesis(跨仿真器,进一步泛化)
  3. IsaacGym → 真机 Unitree G1(终极验证)

跨仿真器实验的意义:证明 delta model 学的是"两个动力学系统的差异",与具体仿真器解耦。

不是过拟合 IsaacGym。

真机动作:踢球、跳跃、转体、全身协调。

ASAP 显著超过纯 sim-to-real(DR only)基线。📎

Stage 1 为什么用多个 tracking policy 采数据

单个 policy 的状态-动作分布太窄。

delta 学出来对新动作不通用。

多个 policy 覆盖更广的状态空间,delta 才有泛化能力。

局限

  1. 需要真机数据:Stage 1 要在真机上 rollout——剧烈动作有安全风险,需要安全绳或限位。📎
  2. delta 泛化未验证:$\Delta$ 在特定 tracking policy 的数据上训,对新动作类别的 gap 泛化未系统验证。
  3. 随机性 gap:沙地、碎石等随机性接触,delta 只能学到均值,方差部分仍迁不过去(T12 讨论过)。
  4. 部署中 gap 漂移:电机磨损、温度变化让 gap 随时间变。

delta 是离线训的,部署中不更新,需要重新收数据训 delta。

研究者视角

图谱定位:ASAP 是 sim-to-real 中 learned dynamics 路线的代表(论文 Sec.1 三分类之一;参 T01、T12 转折 6)。📎

gap 从"要克服的障碍"变成"可学习的残差"。

论文把 bridging gap 分成三类:

  • SysID:缩小 gap,精确标定参数。
  • DR:覆盖 gap,平均鲁棒。
  • Learned dynamics(ASAP):学 delta 补偿 gap,离线残差学习。

ASAP 的增量:把 gap 从参数级建模推到函数级——直接学一个策略 π_∆ 拟合(论文未提 RMA,不要硬凑谱系)。

建立在

  • motion tracking policy(PHC / UHC 谱系)提供 Stage 1 的预训练骨架
  • DR 提供 baseline 鲁棒性(Stage 1 预训练仍用 DR)

可能催生

  • SONIC 等 motor foundation 工作可能集成 delta 式 gap 补偿,让基座模型直接产线部署。[未确认]

Open problems

  1. delta 跨动作泛化:在踢球数据上训的 delta 能否迁移到跳跃、转体?

需要跨动作类别的系统实验。[未确认]

  1. 随机性 gap 的方差建模:当前 delta 只学均值。

如何在 delta 里建模方差、让 policy 对随机接触也鲁棒,仍开放。[未确认]

  1. delta 在线更新:电机磨损让 gap 漂移。

能否让 delta 部署时在线更新而不重训,是实际部署的关键问题。[未确认]

常见误区

"ASAP 就是 RMA 的升级版" —— 错。

RMA 处理慢变环境参数(载重、地形),用历史推断 latent

ASAP 处理高频非线性 dynamics gap(剧烈动作的接触、惯量),离线学 delta 补偿。

机制完全不同:RMA 是运行时推断,ASAP 是离线残差学习。

两者解决不同时间尺度的 gap,互补不替代。[未确认]

"部署时仍需要 delta model" —— 错。

delta 只在 Stage 3 训练时嵌进仿真器。

部署只有 policy,没有 delta。

policy 在对齐仿真里已学会应对 gap,delta 是训练脚手架。📎

"ASAP 取代了 DR" —— 错。

ASAP 仍以 DR 为基线:Stage 1 预训练用 DR 提供 baseline 鲁棒性。

delta 是补丁,不是替代。

DR 给基础鲁棒,delta 补精细差异,两者叠加。📎

"delta 是用 MSE 监督训的残差 dynamics 模型" —— 错。

那是 DeltaDynamics 基线(论文附录 VIII-C 的对照方法),不是 ASAP。

ASAP 的 delta 是一个 RL 策略 π_∆,用 PPO 训:reward = 仿真/真机状态 discrepancy + action-norm 正则。

别把方法和它的对照基线搞混——一个是 RL 策略,一个是 MSE 回归。📎

检查点

Q1

老办法 DR 和 SysID 各自卡在哪?为什么在剧烈动作上都不行?

💡 参考答案

  • DR(domain randomization,仿真里随机变摩擦/质量/电机强度):策略被迫对所有扰动都鲁棒,结果太保守,剧烈动作(踢球/跳跃/转体)做不出来。
  • SysID(system identification,精确测真机参数再校准仿真):剧烈动作的接触和惯量高度非线性,参数测不准,校准不住。
  • 关键区分:DR 卡在『太保守』(牺牲敏捷换鲁棒),SysID 卡在『测不准』(剧烈运动参数非线性)。两者本质不同。
Q2

用"老枪手用偏靶旧枪"或你自己举的类比,用自己的话解释:ASAP 是怎么让仿真训出的策略在真机上也能做剧烈动作的?

💡 参考答案

  • 老枪手用偏靶旧枪:他不去修枪(不重训一个全新的策略),也不要求枪一开始就完美(不消除/不缩小 gap);他先摸清偏差量(学 delta model),然后瞄准时反向打那个量(用 delta 补偿)。
  • 映射:『摸清偏差量』= 离线训 delta model 学仿真与真机的差异;『反向打』= 把 delta 加到仿真器里微调 policy,让 policy 在对齐过的仿真里学会应对 gap。
  • 关键补充:delta 是『学』出来的(从真机数据监督学习),不是手动设的;而且部署时不再需要 delta,policy 已经内化了补偿。
Q3

ASAP 分三步走。Step 2 训的"差值侦探"在干什么?它的监督信号(老师)是谁?

💡 参考答案

  • 侦探的作用:读真机的状态和下令的动作,输出一个修正量 delta;把 delta 加到动作上,让仿真器的下一步贴近真机观测。
  • 监督信号(老师):真机收集到的真实轨迹——『仿真器加了 delta 之后预测的下一步』 vs 『真机真实的下一步』做 MSE 监督。
  • 关键区分:Step 1 是收数据(先有数据);Step 2 才是训侦探(用数据学 delta);Step 3 是把侦探嵌进仿真器微调 policy。侦探学的是『仿真与真机的动力学差异』本身。
Q4

部署到真机时,"差值侦探"还在运行吗?为什么这样设计?

💡 参考答案

  • 不在运行:部署时只有 policy,没有 delta model。
  • 原因:policy 在 Step 3 的『对齐过的仿真』里已经学会了『在带 gap 的环境下也能做对动作』;delta 的作用是改仿真器让 policy 训练时见到真实 dynamics,部署到真机时 policy 已经内化了补偿。
  • 工程意义:部署不需要额外算力跑 delta 推理;delta 是训练脚手架,不是部署组件。
Q5

ASAP 的 delta action model 和 DeltaDynamics 基线,训练方式有什么本质区别?(提示:一个是 RL 策略 π_∆,一个是 MSE 回归)哪个才是 ASAP 的方法?

💡 参考答案

  • gap 是时变有记忆的:同一段轨迹里,前半段的接触形变、惯量积累会持续影响后半段的差异;不是独立同分布的瞬时偏差。
  • 单帧 MLP 只看当前一帧,抓不到这种时序依赖;有记忆的网络能聚合历史,更稳定地预测下一步差异。
  • 本质:剧烈动作的 sim-real gap 不是『每一帧独立偏差』,而是『带历史的动力学漂移』——所以 delta 必须有记忆。

FAQ

Q1:ASAP 能直接用吗?需要真机数据吗?

需要。Stage 1 要在真机 G1 上 rollout 收集数据——剧烈动作有安全风险,需要安全绳或限位。📎

Q2:delta 学的是什么?

仿真和真机的 dynamics 差异。

形式上是个加在 action 上的修正量 $\Delta a_t$。

让仿真器输出贴近真机观测。📎

Q3:跨仿真器实验有什么意义?

证明 delta model 学的是"两个动力学系统的差异",与具体仿真器解耦。

不是过拟合 IsaacGym。

IsaacGym → IsaacSim → Genesis → 真机的渐进实验链条是这一论点的核心证据。📎

Q4:为什么需要"多个 tracking policy"上真机采数据?

单个 policy 的数据分布窄,delta 学不出泛化。

多个 policy 提供多样化轨迹,覆盖更广的状态-动作空间,delta 才有泛化能力。

Q5:ASAP 和 RMA 什么关系?

两者都解决 sim-real gap,机制不同。

RMA 在线推断环境 latent(适应)。

ASAP 离线学 delta model(补偿)。

RMA 处理慢变参数;ASAP 处理高频 dynamics。[未确认]