X:000 · Y:000SECTOR / AIv0.9.SIGNALNO_ADS // NO_TRACK
CILLIAN.AI
← MEMORY

Sim2Real:仿真成功为什么不等于真机能用

仿真便宜、可并行、不会撞坏设备。真机有光、延迟、摩擦和仿真里不存在的故障。两个成功率要分开写。

2 MIN READ~1000 CHARS

Sim2Real 指的是:策略或控制器先在仿真里训练、调试,再放到真机上跑。仿真的好处是快、便宜、可以并行、失败不会损坏硬件。代价是仿真里的世界和真机不是同一个世界。这个差别就叫域差距(domain gap)。

差距从哪来

来源 仿真里常见的简化 真机上的结果
视觉 光照、材质、相机噪声比较干净 边缘飘、反光、曝光变了,检测或特征就偏
动力学 摩擦、柔性、齿轮间隙被简化或设成常数 打滑、到位过冲
时间 指令发出几乎立刻作用到关节 多一截通信和控制延迟,下一步是按过时状态出的
环境 地面平整、没有线缆 绊线、急停、桌面上一块没建模的东西

三条不必同时出现。中一条,仿真里连续成功的策略就可能在真机上晃或触发限位。

常用的补法

这些方法是在缩小差距,不是保证一次迁移成功。

  • 域随机化:训练时随机光照、纹理、质量、延迟,让策略不要死记仿真里的那一种外观和手感。
  • 系统辨识:用真机测到的摩擦、延迟、质量去改仿真参数,而不是只把材质做得更像照片。
  • 残差学习:经典控制器负责主体,模型只学习仿真或模型没覆盖的那一点偏差。偏了还有原来的环托着。
  • 渐进上真机:先做接触力小、速度低、空间小的任务,再放开。

仿真成功率高,只说明在仿真的假设下策略成立,也说明话题和代码多半是通的。它不代替真机成功率。

数字怎么记

至少分开三列:

  1. 仿真成功率
  2. 真机成功率
  3. 人插手的次数,以及急停、限位这类仿真里往往不会出现的事件

写在一起的那个「总成功率」只适合演示。真机上的线被拽紧、急停被碰到、地面有一条坎,不进仿真曲线,但要进记录。否则下次会把它们当成「模型突然变差」。

回滚也不只是换一个模型文件

限速、技能参数和模型版本绑在一起。只换模型、限速还是新的,或只把速度放开、模型还是仿真那一版,都可能再次触发限位。和纯软件里「回滚一个镜像」不同,物理系统回滚要同时回到控制器参数。失败成本和迭代速度的差别,见 Physical AI 扫盲。

小结

Sim2Real 的工作是承认两个世界不一样,并把差在哪里测出来。仿真负责把闭环跑通、把明显的逻辑错误先除掉;真机负责在低速和小范围里核对光、延迟和摩擦。两个成功率分开报。

RELATED

NEXT STEP

本篇已归档到 MEMORY。继续解码相邻信号,或回到档案首页。