1. 课程导入
当我们在仿真环境中训练出一个表现优异的机器人策略,把它部署到真实世界时,常常会遇到一个尴尬的现实:仿真里抓取成功率 95%,真机上却频繁失败。造成这种落差的核心原因,是仿真世界与真实世界之间存在域差异(Domain Gap)——光照、摩擦、质量、延迟、传感器噪声、执行器响应等物理参数在仿真中往往被理想化,而真实世界充满不确定性与多样性。本课程要解决的核心问题就是:如何让机器人在仿真中"见多识广",并在真实世界中"随机应变"。
本课程的两大技术支柱:域随机化(Domain Randomization, DR)通过随机化仿真参数扩大训练分布,让策略对域差异鲁棒;域适应(Domain Adaptation, DA)则通过特征对齐、迁移学习或在线调整,缩小仿真域与真实域之间的分布距离。二者一"扩"一"缩",共同构成 Sim-to-Real 迁移的工程闭环。
一、学习目标
完成本课程后,学习者应能达成以下目标:
- 概念层:准确区分域随机化、域适应、系统辨识、Sim-to-Real 迁移等概念,理解它们各自的适用边界。
- 方法层:掌握随机化参数空间设计、课程式随机化、对抗域适应、特征对齐、元学习等主流方法的原理与实现。
- 工程层:能够搭建一套可复现的域随机化训练流水线,包括参数采样、并行仿真、策略评估与真机标定。
- 评估层:能够设计合理的迁移评估指标,识别"仿真过拟合"与"随机化过度"等典型陷阱。
- 复盘层:能够对失败案例进行归因分析,判断问题出在建模、随机化范围还是策略容量。
二、核心概念与整体知识框架
理解本课程,需要先建立一张"知识地图"。下图展示了从仿真域到真实域的迁移路径,以及域随机化与域适应在其中的位置与作用关系。
从图中可以看到,域随机化作用于仿真域内部,通过扩展训练分布来覆盖真实域的可能范围;域适应则作用于仿真域与真实域之间,通过缩小两者的表征距离来提升迁移效果。二者并非互斥,而是常常组合使用。
三、典型应用场景
域随机化与域适应并非只服务于某一类机器人,而是贯穿多种任务形态:
| 应用场景 | 主要域差异 | 典型技术手段 | 关键挑战 |
|---|---|---|---|
| 机械臂抓取 | 摩擦、质量、物体位姿、光照 | 物理参数随机化 + 视觉随机化 | 接触动力学建模误差 |
| 四足机器人行走 | 地面材质、坡度、负载、电机延迟 | 地形随机化 + 动力学随机化 | 复杂地形下的稳定性 |
| 自动驾驶感知 | 天气、光照、传感器噪声 | 视觉域随机化 + 对抗域适应 | 长尾场景覆盖 |
| 无人机避障 | 风扰、视觉纹理、GPS 误差 | 风场随机化 + 特征对齐 | 实时性与安全性 |
| 工业分拣 | 工件反光、堆叠、传送带速度 | 材质随机化 + 在线标定 | 节拍与精度平衡 |
四、方法流程:从仿真到真机的工程闭环
一个完整的域随机化与域适应工程流程通常包含以下阶段:
- 域差异分析:识别仿真与真实之间的关键差异维度,确定哪些参数需要随机化。
- 随机化空间设计:为每个参数设定合理的采样范围与分布,避免范围过窄或过宽。
- 并行仿真训练:在多个随机化实例上并行训练策略,提升样本效率。
- 课程式调度:从简单到复杂逐步扩大随机化范围,稳定训练过程。
- 迁移评估:在真机或高保真测试集上评估策略,量化迁移差距。
- 域适应微调:利用少量真实数据对齐特征或在线调整策略。
- 复盘与迭代:归因失败案例,调整随机化范围或策略结构。
下面是一段典型的域随机化配置示例,展示了参数采样空间的定义方式:
domain_randomization:
physics:
mass_range: [0.8, 1.5] # 质量倍率
friction_range: [0.4, 1.2] # 摩擦系数
restitution_range: [0.0, 0.3] # 弹性恢复
motor_delay_range: [0, 20] # 电机延迟(ms)
visual:
light_intensity: [0.5, 2.0]
light_direction: random_sphere
texture_randomization: true
camera_pose_noise: 0.02 # 位姿噪声(rad)
schedule:
type: curriculum
start_scale: 0.2
end_scale: 1.0
warmup_steps: 50000
工程建议:随机化范围不是越大越好。范围过窄,策略无法覆盖真实域;范围过宽,策略会因任务过于困难而无法收敛。推荐采用课程式随机化,先在小范围训练,再逐步扩大。
五、常见误区与复盘要点
- 误区一:随机化等于万能。随机化只能覆盖你想到的差异,未建模的差异仍需域适应或系统辨识来补充。
- 误区二:只随机化视觉。物理参数(摩擦、质量、延迟)往往比视觉差异更致命,二者需协同随机化。
- 误区三:忽略评估集设计。若评估集与训练集同分布,会高估迁移能力,必须保留独立的真机测试场景。
- 误区四:一次性调参。域随机化需要与策略容量、训练步数联合调优,是一个迭代过程。
复盘时请重点回答三个问题:失败发生在感知、决策还是执行层?随机化范围是否覆盖了真实参数?策略是否具备足够的表征容量来吸收随机化带来的多样性?这三个问题的答案,往往决定了下一轮迭代的方向。