拆解 sim-to-real 差距:仿真为何拟合不了真实机器人
仿真训练机器人成本低,却在接触、可变形物和人类情境上悄悄拟合不足。一份指南,讲清真实数据在哪些地方不容妥协。
一个完全在仿真中训练的四足策略,可以走过它从未见过的碎石斜坡。用同样方法训练出来的操作策略,却常常抓不起一个透明塑料杯,因为它所依赖的深度相机,会在仿真渲染得干干净净的表面上返回一片噪声。同样的配方,两种结果。差别在于每个任务落在 sim-to-real 差距的哪一侧。
这个差距不是单一的东西。它是仿真器所建模的世界,与机器人真正动作的世界之间,一整束错配的集合:被近似的接触动力学、被渲染得不足的传感器噪声、被猜测的摩擦与质量,以及一长串它从未生成过的事件。对某些任务,这些错配小到可以用随机化糊弄过去。对另一些任务,这个错配本身就是任务。
在现代机器人学习中,仿真并非可有可无,本文也不是反对仿真。它主张的是精确:清楚地知道机器人的哪部分能力可以被合成,哪部分必须在物理世界中被观测。搞错了这一点,你可能会动用一整个 GPU 集群,去教一个策略对一个并不存在的世界充满自信。
差距其实是三个差距,而非一个
把每一次失败都塞进 “sim-to-real” 这个词里,会掩盖它的结构。把它拆成三个不同的差距会更有帮助,因为每一个的弥合方式都不一样。
动力学差距是物理上的错配。仿真器用近似方法求解接触,惩罚力或互补性求解器,并把摩擦建模为理想化的 Coulomb 锥。一只真实的腱驱动手会带来回差、线缆拉伸和热漂移,任何默认求解器都捕捉不到。误差在每一步都很小,却会在一段长的操作序列里不断累积。
感知差距是传感上的错配。渲染不等于传感。真实相机带有卷帘快门、运动模糊和自动曝光;深度传感器在透明、镜面或薄的物体上会返回一堆垃圾数据。一个从干净合成深度里学出来的策略,对它最先遇到的那种失败模式根本没有任何表征。
覆盖差距是多样性上的错配。仿真器里只有人建模过的东西。真实世界会额外提供那个被轻微压扁的麦片盒、那根被勾住的线缆、下午 5 点从西窗照进来的眩光。这些是未知的未知,而它们恰恰是域随机化无法生成的样本,因为没有人想到要去把它们参数化。
这三个差距不会用同一种工具弥合。动力学差距让位于更好的求解器和系统辨识。感知差距让位于更好的渲染和真实传感数据。覆盖差距对两者都不让步,因为你无法对自己没想象过的失败模式做随机化;只有与真实世界的接触,才会把它们加进训练集。
仿真何处物有所值
这一切并不意味着仿真孱弱。对一大类问题,它就是正确的工具,而且优势明显。腿式运动是最清楚的例子:相关状态大多来自本体感受,接触事件短暂,奖励稠密。你可以并行运行数以万计的环境,免费重置,并对质量、摩擦和延迟不断随机化,直到策略不再在意确切的数值。围绕 NVIDIA Isaac 与 GR00T 搭建的流程正是依赖这一点,而那些跑在真实硬件上、由仿真训练出来的行走与全身控制器,正是当物理被建模得足够好时这套方法确实能迁移的证据。
这个规律可以推广。凡是动力学以刚体为主、传感偏本体感受而非视觉、且能定义稠密奖励的地方,带域随机化的仿真在每个有效样本的成本上都很难被击败。
仿真在何处悄悄拟合不足
从行走转到触碰,地面就变了。富接触操作是仿真器最薄弱、后果也最不宽容的地方。插一个连接器、叠一件衬衫、擦一个表面、穿一根线缆:每一个都依赖当前求解器近似得很差的摩擦、柔顺与微滑。可变形物体让情况更糟,因为布料、食物和线缆实际上有无穷多的自由度,也没有干净的刚体先验。
仿真器是一个关于物理的假设。接触是这个假设被检验的地方,也是它最常失败的地方。
感知也是同样的结构。透明和反光物体,恰恰是家庭或实验室里到处都是的东西,正是合成深度与真实传感器分歧最大的地方。而任何牵涉到人的事情,交接、共享工作空间、读懂意图,都根本没有忠实的仿真器,因为你建模的已不再是物理,而是人的行为。这正是为什么最强的通用操作策略都在真实交互数据上训练。Physical Intelligence 在大规模、异构的真实机器人数据集上预训练其策略;Toyota Research Institute 的 Large Behavior Models 建立在数百小时的遥操作演示之上;而 Open X-Embodiment 之所以存在,是因为把各实验室的真实机器人数据汇集起来,在覆盖度上胜过任何单一仿真器。
长时程任务会把问题放大。一个每步 99% 可靠的策略,在五十步之后只剩大约 60% 可靠,而仿真误差并非零均值:它会朝一致的方向产生偏置,策略会学着去利用这种偏置。在仿真器里看起来像是精通,可能只是一套精心钻物理引擎空子的把戏,而账单会在真实硬件上到期。
| 任务类别 | 仿真保真度 | 真实数据需求 |
|---|---|---|
| 腿式运动 | 高 | 低,主要用于标定 |
| 全身平衡 | 高 | 低 |
| 刚性抓取放置 | 中 | 中 |
| 富接触装配 | 低 | 高 |
| 可变形物处理(布料、线缆、食物) | 低 | 高 |
| 透明或反光物体 | 低 | 高 |
| 人机交互与物件交接 | 很低 | 不容妥协 |
差距实际上是如何被弥合的
真正有用的团队不会选边站,而是做组合。有三个反复出现的动作。
把仿真器标定到现实,有时称作 real-to-sim:用真实轨迹去辨识质量、摩擦和延迟,让你围绕其做随机化的模型,中心落在真相上而不是一个猜测上。在残余不确定性上做随机化,让策略对那些你钉不住的参数保持鲁棒。以及在真实演示上做联合训练,让策略锚定在真实的传感器统计,以及任何仿真器都产生不出来的那条杂乱长尾上。现代的 vision-language-action 策略正是这个形状:先广泛预训练,常常用到真实数据乃至人类视频,再在目标本体上微调。
最后这一味配料,正是真实数据集之所以成为基础设施的原因。DROID 把操作数据的采集铺开到 564 个场景和 13 个机构;Ego-Exo4D 捕捉成对的第一人称与第三人称人类活动,为策略提供关于任务实际如何完成的先验。仿真放大的是你已经理解的数据。真实采集,才原生出那部分你尚不理解的分布。
说到底,这个差距与其说是一个要被消灭的 bug,不如说是一张要被读懂的地图。把仿真花在物理被建模得好、且随机化便宜的地方。把真实数据花在接触、形变和人类情境所在的地方。把两者当作互补而非替代的团队,才是那些机器人更常在第一次真实尝试就成功的团队。