Real2Sim
本页介绍迁移链路中的反向方向:在做策略回放或部署之前,先让模拟器更贴近真实平台。在实际工作中,这主要是一个参数对齐问题。
核心思路
主要方法是利用真实世界数据做系统辨识,然后更新仿真参数,使模拟平台的动力学更接近真实平台的测量结果。
对 LAV2 来说,这意味着需要重新审视所有会进入仿真栈的参数与假设,尤其是 VehicleParams、旋翼动力学、mixer 行为,以及构建在其上的任务侧归一化或频率假设。
两条实际路径
Real2Sim 对齐通常有两种常见做法。
第一种是显式参数辨识。你先采集真实飞行或行驶数据,再从这些数据中估计平台参数,随后更新模拟器中的对应模型。
第二种是通过 domain randomization 提高鲁棒性。与其去找一个“最优参数集”,不如让策略在一组合理的参数分布上训练,并希望真实平台落在这个分布之内。
第一条路径直接提升保真度,第二条路径提升对模型失配的容忍度。实践中,两者往往会结合使用,而不是被当作互斥方案。
通常需要对齐什么
对 LAV2 来说,最关键的对齐目标包括:
- 质量与惯量
- 旋翼推力与扭矩系数
- 电机滞后、速率限制与初始 RPM 假设
- 与 mixer 相关的缩放与归一化命令解释
- 控制频率与 decimation 假设
- 训练时使用的观测缩放与坐标系约定
如果这些量不准确,就很容易在真实行为与仿真行为之间产生明显差距。
系统辨识工作流
一个实用的流程通常是:
- 在具有代表性的工况下记录真实平台或台架测试数据
- 辨识能够解释测量响应的参数
- 更新对应的仿真侧参数
- 在 Sim2Sim 中重新进行迁移测试
- 持续迭代,直到回放链路的行为足够接近、足以支撑后续工作
这也是为什么 Real2Sim 会排在 Sim2Sim 之前。只有当 MuJoCo 侧模型已经足够贴近真实平台时,在 MuJoCo 中测试策略才有意义。
这些改动最终落在哪
大多数调整最终都会落在:
如果失配并非纯粹来自物理参数,而是来自命令或观测解释方式,那么相关改动也可能涉及 lav2.controller.mapping、lav2.runner.common.mujoco,或者 RL 后端中的任务观测定义。
参考资料
- System Identification Utility for Quadrotors
- Data-Driven System Identification of Quadrotors Subject to Motor Delays
- System identification with MuJoCo
API 交叉引用
- 平台共享参数:VehicleParams
- 旋翼动力学:RotorDynamics
- 履带动力学:TrackDynamics
- Mixer:Mixer
- Mapping 辅助:lav2.controller.mapping
- MuJoCo 回放工具:lav2.runner.common.mujoco