本节摘要:强化学习在真实机器人上直接试错又慢又危险,所以大家普遍先在仿真环境里训练,再把学到的策略搬到真机上。但"仿真里百发百中、真机上漏洞百出"是常态,这条从仿真到现实的鸿沟(Sim2Real Gap)来自视觉差异、动力学差异、噪声差异等多个层面。本节讲清楚为什么要用仿真、现实鸿沟到底在哪,以及域随机化、系统辨识、渐进迁移这些让策略"落地"的工程手段。
阅读完本节,你应当能够:
机器人学习的矛盾在于:强化学习需要海量试错,而真实世界的试错又慢又贵又危险。让一个真机械臂从零学抓取,可能要摔坏无数个杯子、花上几周时间。于是自然想到:先在电脑里的仿真环境练,练好了再把策略搬到真机。仿真里可以加速、可以并行、可以随便失败,成本几乎为零。
但仿真和现实之间有一条鸿沟。仿真里的物理引擎是对真实物理的近似,它没法完美还原接触摩擦、物体形变、光照反射、传感器噪声这些细节。于是出现一个经典现象:策略在仿真里训练到接近满分,一上真机就各种翻车——因为它过度适应了仿真的"假象",把仿真的视觉纹理、动力学参数都当成真实规律记住了。
这就是 Sim2Real 问题的本质:你训练的环境和你部署的环境不是同一个分布。解决它不能靠"把仿真做得更逼真"这一条路,因为物理引擎总有误差,而是要主动让策略学会"对仿真与现实之间的差异不敏感"。
Sim2Real 鸿沟大致来自三个层面。第一是视觉鸿沟:仿真渲染的图像和真实相机拍到的图像在纹理、光照、色彩分布上差别很大,如果策略依赖视觉特征,就会失效。第二是动力学鸿沟:仿真里的质量、摩擦、阻尼、接触刚度等物理参数和真实物体不一致,导致同样的动作在两边产生不同的结果。第三是传感器与执行噪声:真实传感器有噪声、有延迟,真实电机有误差、有柔顺性,这些在理想仿真里往往被忽略。
针对这些鸿沟,最主流的做法是域随机化(Domain Randomization):训练时不固定仿真参数,而是在一个范围内随机采样——光照随机变、纹理随机换、物体质量随机设、摩擦随机取。策略在大量随机化的环境里训练后,就学会了应对各种变化,迁移到真实环境时也更有鲁棒性。域随机化的思想很朴素:"让策略见过足够多的变化,真实世界就只是其中一种变化"。
域随机化虽然有效,但也不是万能。随机范围太窄,策略迁移后仍会过拟合仿真;随机范围太宽,策略可能学得太保守,性能上限下降。工程上要平衡随机化的强度与任务的精度要求。
除了域随机化,还有几类补充手段。系统辨识:先测量真实机器人和物体的物理参数,再把参数回填到仿真里,缩小动力学鸿沟。渐进迁移:先在理想仿真里学,再逐步加入噪声和随机化,最后在小规模真机上微调。真实数据微调:迁移到真机后,用少量真实交互数据继续微调策略,让它适应真实分布。这些手段可以组合,形成一个"仿真为主、真机微调为辅"的闭环。
| 迁移手段 | 解决哪类鸿沟 | 优点 | 局限 |
|---|---|---|---|
| 域随机化 | 视觉 + 动力学 | 简单、通用 | 随机范围需调、可能过保守 |
| 系统辨识 | 动力学 | 精准缩小参数差距 | 测量成本高、非刚性物体难辨识 |
| 渐进迁移 | 全类 | 平滑过渡 | 流程复杂、耗时长 |
| 真实数据微调 | 全类 | 最终对齐真实分布 | 需要真实交互数据 |
⚠️ 常见坑:以为"仿真做得越逼真,Sim2Real 就越容易"。逼真只能缩小视觉鸿沟,动力学和噪声的误差依然存在,过度追求逼真反而成本极高。域随机化这种"拥抱差异"的思路往往更划算。
💡 关键直觉:Sim2Real 不是把仿真做到完美,而是让策略对"仿真与现实的差异"不敏感。域随机化通过让策略见过足够多的变化,把真实世界变成"其中一种变化"。

不是。随机范围太小,策略会过拟合仿真,迁移到真机仍会翻车;随机范围太大,策略会学得太保守,牺牲任务性能上限。工程上需要在鲁棒性和任务精度之间权衡,通常从较小范围开始,逐步增大直到迁移成功率满意为止。
不能。系统辨识只能缩小那些已知参数(质量、摩擦系数、关节阻尼)的差距,对非刚性物体、复杂接触、材料形变这类难以建模的因素仍无能为力。所以系统辨识通常和域随机化搭配使用:辨识确定参数的中心值,随机化覆盖参数的不确定性。
通常需要。仿真再完善也只是近似,策略上真机后往往会因为真实噪声、延迟、执行误差而掉点。用少量真实交互数据做微调,能让策略对齐真实分布,是提高最终成功率的关键一步。这也是"仿真为主、真机微调为辅"闭环的最后一段。
通常随机光照强度与方向、物体纹理与颜色、相机位姿与内参、背景场景等。目的都是让策略不依赖某一组特定的视觉特征,从而在真实相机拍摄下也能稳定工作。
到这里,本教程的五章主线就讲完了。附录里整理了关键术语与主流仿真、真机平台对照,方便你选型上手。