2. 机器人仿真基础

域随机化与域适应并不是凭空生效的“魔法”,它们建立在仿真系统本身的可控性之上。只有先理解仿真平台如何组织世界、物理引擎如何求解接触、传感器如何被“伪造”、场景如何被搭建,我们才能准确判断:哪些差异可以通过随机化覆盖,哪些差异必须通过系统辨识或真实数据校正。本节从工程视角梳理机器人仿真的四个基础支柱,并给出仿真到现实差距的来源图谱。

一、常用仿真平台:选择取决于任务闭环

机器人仿真平台大致可分为通用物理仿真器、机器人专用仿真器与渲染/合成数据平台三类。通用物理仿真器如 MuJoCo、PyBullet、Isaac Sim/Isaac Lab,强调刚体动力学、接触求解与并行吞吐;机器人专用仿真器如 Gazebo、Webots,强调 ROS 生态、传感器插件与多机器人协同;渲染与合成数据平台如 Blender、Unreal、Omniverse,强调视觉真实感与大规模数据生成。实际工程中常采用“物理引擎 + 渲染前端 + 中间件”的组合,例如 Isaac Sim 使用 PhysX,Gazebo 可切换 ODE、Bullet、DART,MuJoCo 则自带 MJCF 建模与求解器。

选择平台时,关键不是“哪个最真”,而是“哪个能支撑你的任务闭环”。抓取任务关注接触稳定性与摩擦建模;移动机器人关注轮地接触、IMU 与激光雷达;视觉策略关注渲染真实感与域随机化接口。平台若不能暴露质量、摩擦、延迟、噪声等参数,后续域随机化将无从下手。

二、物理引擎:接触、积分与求解器是差异核心

物理引擎决定仿真世界的“物理定律”。其核心包括积分器、碰撞检测、接触求解与约束求解。常见差异来源有:时间步长与积分方式(显式欧拉、半隐式、RK4)、接触模型(软接触、硬接触、惩罚力)、摩擦模型(库仑摩擦、锥摩擦)、求解器迭代次数与容差。MuJoCo 以凸优化接触和高效约束求解著称,适合腿足与灵巧手;PhysX 支持 GPU 并行与大规模场景;Bullet 在游戏与机器人中均有应用,但接触参数敏感。

工程上要特别关注“仿真步长”与“控制频率”的匹配。若控制周期为 1 kHz,而物理步长为 1 ms,则每个控制周期仅一次物理更新,接触力可能突变;若物理步长过大,穿透与抖动会同时出现。域随机化中常对质量、质心、摩擦系数、关节阻尼、电机延迟进行采样,但若引擎本身求解不稳定,随机化只会放大噪声。

# MuJoCo 中常见的域随机化参数示例
mass: 0.8 ~ 1.2 kg
friction: 0.4 ~ 1.0
damping: 0.01 ~ 0.2
armature: 0.001 ~ 0.01
solref: [0.02, 1.0]
solimp: [0.9, 0.95, 0.001]

三、传感器建模:从理想测量到真实退化

传感器建模是仿真到现实差距最集中的环节。真实传感器存在噪声、偏置、延迟、量化、温漂、遮挡与失效模式。仿真中若只输出理想值,策略会过度依赖“干净”观测。常见建模方式包括:高斯噪声、随机游走偏置、固定延迟、丢帧、量程截断、分辨率量化、外参误差与安装误差。

以相机为例,需建模内参、畸变、曝光、运动模糊、滚动快门、光照与材质响应;以激光雷达为例,需建模光束发散、反射率、雨雾衰减、运动畸变与遮挡;以 IMU 为例,需建模零偏、随机游走、尺度因子与轴间非正交。域随机化通常对这些参数按分布采样,而域适应则尝试从真实数据中估计这些参数。

传感器建模的目标不是“最真”,而是“覆盖真实中可能出现的退化模式”。若真实系统存在 30 ms 延迟,仿真中必须显式加入延迟,否则策略在真机上会因相位滞后而振荡。

四、场景构建:几何、语义与物理属性缺一不可

场景构建包括几何建模、语义标注、物理属性赋值与光照/材质设置。几何可从 CAD、URDF、USD、MJCF 导入;语义用于分割与检测任务;物理属性包括质量、摩擦、弹性、关节限位与驱动特性。场景构建的常见误区是“只重外观,不重物理”:视觉上逼真,但摩擦系数全为默认值,导致抓取策略在真机上打滑。

场景还应包含随机化接口:物体位姿、数量、纹理、光照、相机位姿、地面摩擦等。域随机化的场景不是“一个固定世界”,而是“一个可采样的世界分布”。

五、仿真到现实的差距来源:一张关系图看清

仿真到现实的差距(Sim-to-Real Gap)可归纳为四类:物理差距、感知差距、执行差距与任务差距。物理差距来自接触、摩擦、质量与动力学;感知差距来自噪声、延迟、光照与材质;执行差距来自电机延迟、摩擦、间隙与通信抖动;任务差距来自目标定义、奖励函数与评估标准。下图给出这些差距来源与对应缓解手段的关系。

仿真到现实差距来源与缓解路径 仿真侧 物理引擎 接触/摩擦/积分/求解器 传感器模型 噪声/延迟/量化/遮挡 场景构建 几何/语义/物理属性 执行器模型 延迟/摩擦/间隙/饱和 任务与奖励 目标定义/评估标准 Sim-to-Real Gap 物理差距 质量/摩擦/接触/柔顺 感知差距 噪声/光照/材质/延迟 执行差距 电机/通信/间隙/温漂 任务差距 奖励/目标/评估偏差 分布偏移 训练/测试环境不一致 缓解手段 域随机化 质量/摩擦/噪声/延迟 系统辨识 参数估计/残差拟合 域适应 特征对齐/微调/蒸馏 鲁棒控制 阻抗/自适应/安全约束 真实数据校准 在线学习/残差补偿 产生 缓解

六、案例与复盘:抓取任务中的差距定位

假设一个机械臂抓取任务在仿真中成功率 95%,真机仅 60%。按上图的差距来源逐项排查:物理差距方面,检查摩擦系数是否随机化、接触刚度是否合理;感知差距方面,检查相机噪声、曝光与延迟是否建模;执行差距方面,检查电机延迟、关节摩擦与通信抖动;任务差距方面,检查奖励是否鼓励“轻拿轻放”而真机需要“稳定夹持”。常见复盘结论是:仿真中摩擦系数固定为 0.8,而真实物体在 0.3~0.6 之间波动,导致策略在低摩擦物体上打滑。解决方式不是调大夹持力,而是将摩擦系数纳入域随机化,并加入力反馈延迟建模。

差距类型 典型来源 可观测现象 优先缓解手段
物理差距 摩擦、质量、接触刚度、关节阻尼 打滑、抖动、穿透、能量不守恒 域随机化 + 系统辨识
感知差距 噪声、延迟、光照、材质、畸变 检测漂移、深度缺失、颜色偏移 传感器建模 + 域适应
执行差距 电机延迟、摩擦、间隙、通信抖动 跟踪滞后、振荡、稳态误差 延迟建模 + 鲁棒控制
任务差距 奖励函数、目标定义、评估标准 仿真高分、真机低分 奖励校准 + 真实评估
常见误区:把“视觉逼真”等同于“仿真可信”。视觉真实感只解决感知差距的一部分,物理与执行差距往往才是策略失效的主因。另一个误区是“随机化范围越大越好”,过大的随机化会稀释有效学习信号,导致策略保守或无法收敛。

总结来看,仿真平台、物理引擎、传感器建模与场景构建共同决定了仿真世界的“可采样空间”。域随机化与域适应之所以有效,是因为它们在这个空间内主动覆盖真实世界的多样性,并通过系统辨识与真实数据校准缩小残余差距。理解差距来源,才能把随机化用在刀刃上,而不是盲目扩大噪声。