跳转至

第 7 章 仿真到现实

“VLA 出来之后 sim 就不重要了”是 2024 年最流行的一句懒话。事实恰好反过来:sim 在 2026 年比 2020 年更不可替代,只是用法变了三轮。


2025 年春天,做双足人形的初创公司里总在重演同一幕。一台 1.4 米高的人形,在 Isaac Sim 里稳稳当当地走了八个小时,地形从平地一路换到 5 度斜坡再到楼梯,从 0.3 m/s 到 1.2 m/s 的全速度区间收敛得极其漂亮。reward 曲线规整得就像教科书。CEO 兴奋难耐,催着当周就上实机。

真到了实机上,这个 policy 迈出第一步就摔了。

不是慢慢失去平衡那种摔法,而是抬腿那一瞬间直接栽了下去。回放慢镜头才能看清原委:仿真里足底与地面的摩擦系数预设是 0.8,可实机房间铺的是抛光木地板,实测只有 0.35 左右。policy 学出来的步态死死依赖足底足够的静摩擦(friction,物体不滑动时的摩擦力)来提供推进力。实机给不出这点摩擦,第一帧脚底就滑了,整个二阶动力学在 80 毫秒里彻底崩解。

这是 2026 年 sim2real 最具代表性的一幕。不是视觉对不上,而是接触对不上。视觉那一截在这两年缩得很厉害,可接触动力学(contact dynamics,物体碰撞挤压时的力学)的 gap 根本没有缩小,依然招招致命。很多新入局的研究者并未意识到这一点,demo 视频里的 policy 在仿真环境里走得四平八稳,画面渲染得又格外逼真,大家下意识就以为搬到实机上也是同一回事。

接下来的这一章,讲的就是这个道理。Sim 没有死,但你必须看清它哪一段还活着、哪一段已经过气、哪一段打一开始就从来没好用过。这个判断在今天比 2020 年那会儿更难拿捏:sim 这两年在视觉、photorealistic(照片级真实渲染)与世界模型上跨了一大步,但在接触、柔体、流体这里,还有一大块留在原地没动。很多团队的失败,恰恰来自把缩窄了的那一段成功,轻率地外推到了根本没缩的那一段。


一、十年简史

Sim2real 绝非 LLM 登场之后才有的新概念。早在 2017 年,这个圈子就已经开始系统探讨它了。

Domain Randomization(DR,训练时把场景物理参数随机化)(Tobin 等,OpenAI,2017)。这是整条技术路线的开山之作。背后的思路一句话就能说明白:既然摸不准仿真与现实究竟差在何处,索性在仿真里把能想到的变量统统随机化一遍,纹理、光照、摄像机位置、物体颜色、桌面材质无一遗漏,逼着网络学会对所有这些差异脱敏。等到真上实机的那天,现实世界不过是这个庞大随机分布里的其中一个样本。OpenAI 随后凭着这一招,把在仿真里训出来的 6-DoF pose estimator 直接挪到实机抓取任务上,第一次把 sim2real 确立成了一套跑得通的工程范式。

Domain Adaptation(让模型从仿真域迁到真实域)。这是一条比 DR 走得更“显式”的路线。做法是先在仿真里训出一个模型,再借由少量真实数据去做对抗式对齐(GAN-style)或者 feature alignment(CORAL、DANN),设法让仿真特征与真实特征在 latent space 里重叠起来。2018 到 2020 年间,这条路线被学界翻来覆去摸得很透,可拿出来的实际效果始终没有 DR 来得干脆。它的软肋在于必须假设真实分布是稳定不变的,偏偏在充满变数的机器人现场,这个假设几乎从来站不住脚。

System Identification(SysID,测真机参数填回仿真)。这是最古典的老派打法。核心就是实打实去测量机器人的电机常数、连杆质量、摩擦系数与惯性矩阵,尽可能把这些物理参数分毫不差地抄进仿真环境。然而有些细节根本没办法精准测出来:齿轮 backlash(齿轮换向时的空程间隙)、电机的温度漂移、夹爪指尖橡胶的磨损。正因如此,SI 永远只能解决半截问题。

Automatic Domain Randomization(ADR,让随机化范围自己撑大)(OpenAI Rubik's Cube,2019)。这一步把 DR 原本固定的随机区间也做成了可学习的。面对用 Shadow Hand 单手解魔方的任务,他们让仿真环境自动向外撑大随机化边界,一直顶到 policy 还能勉强撑住的极限。这是当时 sim2real 的天花板,也是这条路线第一次被明确证明能够啃下精细操作任务。不过它背后的成本也直接劝退了大半个圈子:单次训练折合大概 13000 年仿真时间,耗掉几千张 GPU。OpenAI 当年赌的是自己手里有这份算力,他们赌赢了。

这四条路线到 2022 年大致形成了定局。紧接着 LLM 席卷而来,把整个领域彻头彻尾搅了一遍。


二、引擎这一层,2026 年的几家

要写仿真这一章,总不能不把几家主流引擎挨个点一遍名。

MuJoCo。它原本是 Emo Todorov 在 Roboti LLC 出售的商业仿真器,2021 年 10 月被 DeepMind 收购并彻底开源。这件事带来的深远影响,远远超出了当时所有人的预料。论接触动力学,MuJoCo 是目前最精准的开源仿真器,尤其是那一套 contact constraint 机制,处理得比 PhysX 干净许多,学界做 RL 向来把它当成不假思索的默认选项。2023 年 DeepMind 又推出 MuJoCo MJX,把它搬到 GPU 上跑大规模并行,性能开始能与 Isaac 那一套平起平坐。到了 2024 年,MJX 在学术界普及得格外迅速。

PhysX / Isaac Sim / Isaac Lab。这是 NVIDIA 搭建的完整技术栈:PhysX 作为底层物理引擎,Isaac Sim 充当基于 Omniverse 的高保真仿真平台,而 Isaac Lab(前身为 Isaac Gym)则是专门为 RL 训练打造的高性能运行层。它的长处很明显:渲染画质漂亮、并行规模极大、周边生态完整。NVIDIA 官方发布的 GR00T 这一系列 humanoid 项目,几乎全数跑在 Isaac Lab 之上。2025 年 GTC 大会之后,NVIDIA 又顺势把 Isaac Lab 与 Cosmos 世界模型连通了起来,这部分后文会详述。短板同样显眼:接触动力学没有 MuJoCo 算得准,PhysX 在多体接触和软体上的表现一直受人诟病。

Drake。由 Russ Tedrake 在 TRI 和 MIT 牵头维护的开源项目。Drake 本就不是拿来给你跑 RL 的。它走的是完全不同的学派门路:严密的多体动力学、符号化的 Lagrangian 方程、可微分接触模型。倘若你手里做的是基于优化的控制(如 trajectory optimization、MPC),对物理一致性有着近乎苛刻的要求,Drake 绝对是最干净利落的选择。相应的代价也很实在:学习门槛陡峭,社区体量也比 MuJoCo 足足小了一个数量级。

Genesis。CMU 牵头,2024 年 12 月开源。这套东西一亮相,就在学术圈里结结实实刷了一整周的屏。它的核心卖点,是在同一套架构里并行解算刚体、软体、布料、流体与关节体,而且全部交由 GPU 加速,号称比 MuJoCo MJX 还要快上几十倍。关于速度最快的说法,后来有人在复现时提出过质疑,但 Genesis 把“一个引擎里同时支持多种物理”这件事彻底推到了学界主流的视野正中央,算得上 2024 年底的一件大事。站在 2026 年看 Genesis 依然尚早,工程稳定性比不过 MuJoCo,文档也不算完善,但这条路是对的。

Habitat。Meta(FAIR)主导的 navigation 仿真平台,专注打磨室内导航、场景理解与视觉任务。倘若你手头的方向是 mobile manipulation 或者是 home robot,Habitat 积攒下的 3D 室内场景资产库(如 HM3D、Replica),是其他各家拿不出来的独门家底。

SAPIEN。UCSD 的 Hao Su 团队出品,专门用来处理 articulated objects。当年所有像“打开抽屉、转开瓶盖、按按钮”这一类任务最早跑通的高质量数据集(PartNet-Mobility),全都是在 SAPIEN 上搭建起来的。

Bullet / PyBullet。资历深厚的老牌选手。十年前几乎所有的 RL 论文都在 PyBullet 上跑。到了今天,它的角色退守成了学习、教学与搭建快速原型。真正的生产环境,基本已经被 MuJoCo 和 Isaac 瓜分替换掉了。

如果你今天起手新项目要挑一家,给一句不加修饰的粗糙建议:做 RL 选 Isaac Lab 或 MuJoCo MJX,做精确控制选 Drake,做家庭场景用 Habitat 拼 SAPIEN,想试新东西就装一份 Genesis 跟着看一年。


三、"VLA 出来 sim 就死了"是一句外行话

从 2024 年底开始,VC 圈和一部分刚进场的研究者里流行起一种调子:既然 π0 证明了大量真实 teleop 数据加上互联网视频就能做出通用具身策略,sim 便只是上一代人留下的拐杖,尽可以扔了。

这话说错了,错得相当离谱。原因无非三个。

第一,长尾边缘 case 的真实数据永远收不齐。一台机器人在客户家里要面对的局面太杂:养的猫突然窜出来、地上有水、孩子伸手过来挡、桌上掉下一根头发缠在夹爪上。这类事在部署的前三个月可能一次都不会发生,但只要累计部署 1000 台、运行 6 个月,就一定会发生几百次。人不可能 teleop 一万次“猫突然冲出来”的演示数据,这种数据只能从 sim 里来。

第二,安全测试只能在 sim 里做。一台 60 公斤的人形机器人 fine-tune 完一个新版本,没人敢保证它不会在某个角落 case 里把使用者撞翻。真实测试做不来,你不能把客户的家当成试验场,去测试 policy 会不会失控。在安全这一项上,sim 不是首选,是唯一选。自动驾驶过去十年的教训写得清清楚楚:Waymo 每跑一公里真实路,对应着仿真里的 100 公里,原因从来不是为了省钱,而是真实路上根本跑不了 corner case。具身机器人要趟的,无非是同一条路。

第三,大规模 RL 依然只能靠 sim。teleop 给出的只是模仿学习数据,没人会为了跑 PPO 守着机器 teleop 一千万次。凡是需要在搜索空间里靠 reward 自己摸索出来的本领,无论是动态平衡、跌倒恢复、被推一下还能稳住,还是阻抗下的力控策略,到今天为止全部只能在 sim 里训。HumanPlus(Stanford 2024)、ASAP(CMU 2024)、ANYmal 那一线(ETH Hutter,从 2018 一路到 2024 的 ANYmal-X)练就的所有脚下能力,全都是 sim-only RL 然后 distill 到实机上的。

所以下回要是再听人说“VLA 出来 sim 就死了”,尽可以反问一句:那你的安全验证打算怎么做?这个问题,拿着真实数据的人一个也答不上来。还可以接着问:下一代 humanoid 装上那条新腿,你打算怎么教它跌倒之后翻身爬起来?真实数据同样给不出答案,谁也不能把一台 60 公斤的人形真摔上几万次让它慢慢学。这两桩问题摆在面前,sim 的根基就算扎稳了,谁也拔不走。


四、视觉这一项确实缩了

该承认的事总得承认。在 2023 到 2025 这两年里,视觉上的 sim2real gap 确实缩减得厉害,甚至可以说基本消失了。这是三件事撞在一起的结果。

第一是渲染质量。Isaac Sim 借着 Omniverse 那套 RTX path tracing,渲染出来的 RGB 画面放在 ImageNet 这类 perceptual metric 下比对,已经跟真实拍摄的图像基本打平。

第二是 DR 依然管用,而且代价更低。Tobin 当年那套思路在大模型时代越发划算:下游 policy 网络因为用海量 ImageNet / CLIP / DINO 预训练过,生来就对纹理变化足够鲁棒。你只需要去随机化几何和光照,纹理那一项几乎用不着管。

第三是 VLM 的 backbone。OpenVLA、π0 还有 Helix 所用的 vision backbone,全都在数十亿张互联网图像上预训练过。仿真环境里渲染出来的画面,在它眼里不过是庞大数据分布中的又一个普通样本。网络从一开始就没把仿真当成一个单独的域。

这个差距收窄到了惊人的地步。2025 年中 Berkeley 那篇 SimplerEnv 做过测试:把同一个 VLA policy 分别放进仿真与实机去跑同一项任务,两边成绩的相关系数能够超过 0.9。这说明后续评估 policy 改动时,再也不必每次都大费周章搬上真机,仿真本身就已经是一张立得住的 leaderboard。

所以在视觉这一路上,不管是感知、识别还是 scene understanding,sim 都已经拿得出手,能用,也能放心地用。


五、接触这一项没缩,还在杀人

只是视觉终究只占了 sim2real 的一半。至于剩下的另一半,也就是接触动力学,到了 2026 年依然和 2020 年那会儿一样棘手。开篇提到双足机器人摔在抛光木地板上的事故,正是接触 sim2real 留下的典型标本。

为什么没缩?

摩擦。Coulomb friction 这个模型在物理课本上看着清清爽爽,一旦写进引擎,现实就会从五个不同的破绽里漏出来:静摩擦与动摩擦的过渡、各向异性、temperature dependence、表面光泽度跟摩擦系数的非线性关系,还有湿度。机器人在家里跑,地板上只要落下一滴没擦干的橙汁,你在仿真里就绝不会去为这一滴建模。

柔体。单说把毛巾叠起来这件事,仿真里的布料模型就有十几种(Position Based Dynamics、XPBD、FEM),每一种在面对不同变形量时都有不同程度的失真。最常用的 PBD 在大变形下会出现穿透与扭曲,算得最准的 FEM 又远远跑不到 RL 所需的 1000Hz。到了 2026 年,业内依然拿不出一种“既准又快”的布料模型。

流体和粒状物。倒水、撒盐、抓豆子、抓米。SPH 与 MPM 在仿真里确实是真东西,可运算速度比起 RL 要求的并行规模差了几个数量级。NVIDIA Flex 放在游戏行业相当趁手,机器人所需的物理精度它却给不出。

夹爪指尖橡胶磨损。这是最阴险的一处陷阱。一对硅胶指尖在 sim 里通常被当作完美的弹性体来建模,刚度系数恒定不变。落到实机上,这对指尖第一周磨损 5%,第二周磨损 10%,半年过去,表面磨得发滑,刚度也跟着往下掉。你在 sim 里练出来的 policy 认准的是那个崭新指尖的世界,真机部署一个月后,机器人伸手去抓同一个杯子,指尖就开始打滑了。

这类问题归结到底是一句话:接触本就是一种高频、强非线性且极度局部的物理现象,仿真器里的离散化、积分器步长与约束求解,哪一样都给不出 1:1 的精确复刻。碰上接触敏感的精细操作策略,到 2026 年依然必须以真实数据为主。在下一代触觉传感器(GelSight、DIGIT 这类视觉触觉)与差分接触建模彻底成熟之前,这个局面不会改变。


六、这一波新东西

2024 到 2025 这短短一年半里,sim2real 的工具箱里多出了几件硬家伙。不妨挨个点点名。

Real2Sim2Real。NVIDIA 在 2025 年 1 月发布的世界基础模型 Cosmos,正是这一路线的代表。它的流程是:拿相机拍一段真实场景的视频,让 Cosmos 从画面里反推出一个能在 sim 里运转的 3D 世界,接着在这个虚拟世界里用 RL 大量增广数据,最后把策略 distill 回实机 policy。CMU 与 NVIDIA 在 2024 年合作的 RoboCasa 走的是类似思路,专门做厨房场景下的 real2sim2real 数据增广。

这一招的关键,在于让人不必再从零硬搭仿真场景。以往建一个仿真厨房要美工花上几周时间,现在拍一段几分钟的视频就能把场景拉起来。代价是物理还得另外找补:视频反推出来的几何形状没错,可物体的质量、惯量和关节限位,光看画面根本看不出来。因此 real2sim2real 这一套走到 2026 年,依然是视觉真而物理半假,应付以视觉为主的任务很灵,碰上以接触为主的任务,就还得再往前走上一段路。

Procedural worlds。ProcTHOR(AI2,2022)和 Holodeck(UPenn+AI2,2024)选了另一条路子:靠程序化批量生成大量随机室内场景。Holodeck 先用 LLM 写出场景描述,再靠规则化的 layout 生成器去排布家具,一夜之间就能拼出上万个不同的家。凡是需要场景多样性而不强求场景精确性的任务,比如导航或是 scene understanding,走这条路都划算得很。

Photorealistic via Gaussian Splatting。3D Gaussian Splatting 是 2023 年视觉那边的大事,2024 年迅速被机器人借了过来。流程:在真实场景里转一圈相机录视频,重建出一个 Gaussian Splatting 表征,再把这个表征嵌进仿真器充当背景渲染。结果几乎与原场景看不出视觉差异,而且机器人可以在里面交互。NeRF 那一代之所以做不到,是因为 NeRF 渲染太慢,撑不起机器人控制需要的 30Hz+;而 GS 改写了这件事。

这三样东西凑在一块,视觉端的 sim 数据成本,就这么从过去的“几万美元一个场景”,一口气落到了“一个研究生一周做几十个”。


七、RL in sim → distill to real

低层运动控制在 2024 到 2025 年间基本全走这条路线,值得单独抽出一节讲透。

整个流程大致是这么走的:

  1. 先在仿真环境里跑大规模 PPO 或 SAC,训出一个 teacher policy。因为是在仿真里,环境会给 teacher 开放所有的特权观测(privileged observation),也就是无所不知的真值(ground-truth):精确的关节速度、地面摩擦与外部受力。
  2. 等 teacher 学成之后,直接冻结它的参数。
  3. 接着在仿真里跑一个 student policy。给它的输入退回到真实机器人能拿到的传感器读数(IMU、关节编码器和视觉),靠 supervised learning 去模仿 teacher 的动作输出。这一步就叫 distillation。
  4. student 蒸馏完毕便直接搬上真机,配合 DR 与 ADR,再加一点 system identification 做参数微调。

不直接拿 student 从头去训,是因为真实传感器看不到的状态实在太多,硬训收敛太慢。先让 teacher 把策略彻底学透,再由 student 去摸索怎么在受限的传感器输入下复现这套动作,拆成两步走,远比一步到位快得多。

沿这条路子走出来的代表工作有这么几条:

ANYmal(ETH Hutter)。从 2018 年的 ANYmal-B 一路做到 2024 年的 ANYmal-X,这条线算得上四足机器人 sim2real 的教科书样板。每一代机子用的都是 Isaac Lab 配上 RL 再加 distill 的组合。无论是盲走、越障、爬楼梯,还是冷不防挨上一脚依然稳稳站住,全靠这套流程训出来。Hutter 后来在瑞士创办的 Anybotics 公司,底子就在这里。

HumanPlus(Stanford,2024)。这项工作把同一套逻辑搬到了双足人形上。teacher 在仿真里学的是由 motion capture 数据 retarget 过来的人类动作,student 则学着单靠 ego-vision 把这些动作重现出来。最终跑出来的成果,是一台 1.4 米高的人形机器人在户外打拳、深蹲、做开合跳,整套能力全部来自 sim2real。

ASAP(CMU,2024)。这项研究专挑这条路子里的硬骨头来啃:仿真里训出来的步态,搬到真机上 timing 往往总差那么一口气。ASAP 的做法是在仿真里增广(augment)一批数据,将动作耗时随机拉长或缩短,让 student 摸索出时序上的鲁棒性。这招看着轻巧,实测却把双足人形从仿真搬到实机的成功率从 60% 硬生生拉到了 85%。

这一系列工作有个极为鲜明的共同特征:底层运动控制完全是 sim-only,没用上一丁点 teleop 数据。这跟 VLA 那条路线拉开了巨大的反差,也是为什么“sim 死了”这种说法站不住脚。底层 locomotion 如果离开仿真,这两年的人形机器人革命根本无从谈起。Figure、1X、Unitree、宇树、智元这一波公司里,所有能够稳步走动、登梯爬楼、冷不防被推上一把还能站稳的双足机器人,底层跑的全是这套范式的某种变体。没有任何一家能靠 teleop 教会双足如何保持平衡,那条路打从一开始就走不通。


八、立场

把我这两年一直在用的几条判断梳理在这里。

视觉这一项,拿仿真数据来训完全站得住脚。无论是 perception、scene understanding、object detection 还是 6-DoF pose estimation,2026 年的仿真数据都足以支撑你训出一个能直接部署上实机的网络。高保真渲染(photorealistic)、DR 加上大模型预训练,三者叠在一处,视觉领域的 sim2real gap 已经收窄到几乎可以忽略。碰上这类任务,尽情用仿真便是。

底层 locomotion 应当彻底交给 sim RL + distill。像双足、四足、躯干平衡、跌倒爬起或是受力推搡后的姿态恢复,这类高频低层控制在 2026 年的最佳实践就是 ANYmal / HumanPlus / ASAP 那一套。别去尝试用 teleop 采集这类控制数据,根本做不到。

涉及接触的精细操作策略,必须以真实数据为主心骨。举凡抓杯子、折毛巾、剥橘子、按按钮、转瓶盖、装订书钉这类动作,仿真依然靠不住。采集真实的 teleop 数据,再配合 π0 那套方案做 fine-tune,才是 2026 年切实可行的路子。仿真在这段流程里充其量是辅助:先在仿真里把策略初始化(bootstrap)到大致能动,再喂给它少量真实数据完成对齐。主菜永远是真实数据,仿真只是配菜。

长尾边缘工况与安全边界验证,则必须全数交给仿真。这两处死角真实数据根本无法覆盖,非仿真不可。这正是仿真在 VLA 时代不可替代的立足之本。

下面这张表,是我自己带项目时常拿来对照的一把判断尺:

任务类型 sim-only 真实数据 + sim 增广 real-only
双足/四足 locomotion ✓
跌倒恢复、动态平衡 ✓
室内导航、避障 ✓
物体识别、scene understanding ✓
抓刚体物体 ✓
折布、抓食物、剥水果 ✓
力控装配(USB、螺丝) ✓
长程家务任务 ✓
安全验证、red team ✓
边缘 case 数据增广 ✓
客户现场最后调优 ✓

需要说明的是,这张表跟第 1 章区分端到端与分层架构的那张表并不冲突,两者不是相互替代的关系。设计一台家务机器人,往往要在架构上做分层,底层 locomotion 彻底依赖仿真,而抓取操作那一段全换成真实数据。这两张表应当叠在一起对照着看。

最后这番话,留给还在争执仿真死活的人:仿真从来不是用来取代真实数据的,它是真实数据收不到的那处真空里,你手里唯一的工具。这两件事从不对立,往后也绝不会对立。非要把它们架在一起互斥的人,要么没在工业现场真正部署过具身机器人,要么是在兜售某种特定的行业叙事。不论哪一种,都对你把项目做成毫无帮助。


练习

翻出 ASAP、HumanPlus、ANYmal-X 这三篇 paper 里的失败 case 章节(跳过那些光鲜的主结果),把它们各自承认的“在实机上还是会失败的情况”整理出来。三家失败的共同特征是什么?这个共同特征对应着本章讨论的哪一种 sim2real 难点?

找一段你最熟悉的 demo video,依照本章的判断表逐项打分:它所演示的任务中,哪些子环节该用仿真,哪些该坚持 real-only,哪些又该走混合路线。视频背后的团队实际选了哪种做法?如果与你的打分不一致,究竟是他们选错了路,还是 demo 本身藏起了他们私下做过的混合方案?

重读一遍 Tobin 等人在 2017 年发表的那篇 Domain Randomization 经典论文。文章问世将近十年,当年它解决不掉的硬伤里,哪些在今天已经被 photorealistic、大模型和 Gaussian Splatting 彻底攻克?又有哪些至今依然悬而未决?注意这是两道截然不同的题目,不可笼统地拿一句“DR 依然活着”草草了事。

挑选一台你手头正在用或是准备购买的机器人,列出它身上所有你预估仿真建模会失真的部位:减速器 backlash、电机摩擦、夹爪指尖材质、皮带张力、传感器噪声分布与线缆牵引力。这张清单里有几样是你能精密测量的?对于测不准的那几样,你打算如何在 policy 里做对冲(hedge)?

下一章:第 8 章 数据