1. 课程导入

当我们在仿真环境中训练出一个表现优异的机器人策略,把它部署到真实世界时,常常会遇到一个尴尬的现实:仿真里抓取成功率 95%,真机上却频繁失败。造成这种落差的核心原因,是仿真世界与真实世界之间存在域差异(Domain Gap)——光照、摩擦、质量、延迟、传感器噪声、执行器响应等物理参数在仿真中往往被理想化,而真实世界充满不确定性与多样性。本课程要解决的核心问题就是:如何让机器人在仿真中"见多识广",并在真实世界中"随机应变"。

本课程的两大技术支柱:域随机化(Domain Randomization, DR)通过随机化仿真参数扩大训练分布,让策略对域差异鲁棒;域适应(Domain Adaptation, DA)则通过特征对齐、迁移学习或在线调整,缩小仿真域与真实域之间的分布距离。二者一"扩"一"缩",共同构成 Sim-to-Real 迁移的工程闭环。

一、学习目标

完成本课程后,学习者应能达成以下目标:

  • 概念层:准确区分域随机化、域适应、系统辨识、Sim-to-Real 迁移等概念,理解它们各自的适用边界。
  • 方法层:掌握随机化参数空间设计、课程式随机化、对抗域适应、特征对齐、元学习等主流方法的原理与实现。
  • 工程层:能够搭建一套可复现的域随机化训练流水线,包括参数采样、并行仿真、策略评估与真机标定。
  • 评估层:能够设计合理的迁移评估指标,识别"仿真过拟合"与"随机化过度"等典型陷阱。
  • 复盘层:能够对失败案例进行归因分析,判断问题出在建模、随机化范围还是策略容量。

二、核心概念与整体知识框架

理解本课程,需要先建立一张"知识地图"。下图展示了从仿真域到真实域的迁移路径,以及域随机化与域适应在其中的位置与作用关系。

机器人域随机化与域适应知识框架 仿真域 (Source) 物理引擎 · 渲染器 理想化参数 · 无噪声 低成本 · 可并行 无限试错 · 快速迭代 策略训练主战场 真实域 (Target) 真实物理 · 真实光照 摩擦/质量/延迟不确定 传感器噪声 · 磨损 高成本 · 难并行 策略最终部署目标 域随机化 DR 随机化参数 → 扩大训练分布 域适应 DA 特征对齐 → 缩小分布距离 Sim-to-Real 迁移闭环 仿真训练 → 域随机化增强 → 策略评估 → 真机部署 → 数据回流 → 域适应微调 → 再训练 关键指标:迁移成功率 · 鲁棒性边界 · 收敛速度 · 真机泛化误差 参数随机化 质量·摩擦·延迟 光照·纹理·噪声 视觉随机化 相机位姿·材质 背景·干扰物 特征对齐 对抗训练·MMD 域不变表征 在线适应 系统辨识·元学习 快速微调

从图中可以看到,域随机化作用于仿真域内部,通过扩展训练分布来覆盖真实域的可能范围;域适应则作用于仿真域与真实域之间,通过缩小两者的表征距离来提升迁移效果。二者并非互斥,而是常常组合使用。

三、典型应用场景

域随机化与域适应并非只服务于某一类机器人,而是贯穿多种任务形态:

应用场景主要域差异典型技术手段关键挑战
机械臂抓取摩擦、质量、物体位姿、光照物理参数随机化 + 视觉随机化接触动力学建模误差
四足机器人行走地面材质、坡度、负载、电机延迟地形随机化 + 动力学随机化复杂地形下的稳定性
自动驾驶感知天气、光照、传感器噪声视觉域随机化 + 对抗域适应长尾场景覆盖
无人机避障风扰、视觉纹理、GPS 误差风场随机化 + 特征对齐实时性与安全性
工业分拣工件反光、堆叠、传送带速度材质随机化 + 在线标定节拍与精度平衡

四、方法流程:从仿真到真机的工程闭环

一个完整的域随机化与域适应工程流程通常包含以下阶段:

  1. 域差异分析:识别仿真与真实之间的关键差异维度,确定哪些参数需要随机化。
  2. 随机化空间设计:为每个参数设定合理的采样范围与分布,避免范围过窄或过宽。
  3. 并行仿真训练:在多个随机化实例上并行训练策略,提升样本效率。
  4. 课程式调度:从简单到复杂逐步扩大随机化范围,稳定训练过程。
  5. 迁移评估:在真机或高保真测试集上评估策略,量化迁移差距。
  6. 域适应微调:利用少量真实数据对齐特征或在线调整策略。
  7. 复盘与迭代:归因失败案例,调整随机化范围或策略结构。

下面是一段典型的域随机化配置示例,展示了参数采样空间的定义方式:

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
工程建议:随机化范围不是越大越好。范围过窄,策略无法覆盖真实域;范围过宽,策略会因任务过于困难而无法收敛。推荐采用课程式随机化,先在小范围训练,再逐步扩大。

五、常见误区与复盘要点

  • 误区一:随机化等于万能。随机化只能覆盖你想到的差异,未建模的差异仍需域适应或系统辨识来补充。
  • 误区二:只随机化视觉。物理参数(摩擦、质量、延迟)往往比视觉差异更致命,二者需协同随机化。
  • 误区三:忽略评估集设计。若评估集与训练集同分布,会高估迁移能力,必须保留独立的真机测试场景。
  • 误区四:一次性调参。域随机化需要与策略容量、训练步数联合调优,是一个迭代过程。
复盘时请重点回答三个问题:失败发生在感知、决策还是执行层?随机化范围是否覆盖了真实参数?策略是否具备足够的表征容量来吸收随机化带来的多样性?这三个问题的答案,往往决定了下一轮迭代的方向。