跨仿真器迁移与验证
跨仿真器迁移(Sim-to-Sim)将策略置于不同的仿真实现中检验,用于发现接口与动力学差异。本篇以已有四足运动策略为对象,建立从输入输出核对到闭环评估的流程,并说明它与训练框架迁移的关系。
1. 训练框架迁移与策略迁移
Section titled “1. 训练框架迁移与策略迁移”| 工作类型 | 保留的主要对象 | 需要完成的工作 |
|---|---|---|
| 训练任务迁移 | 任务目标与接口设计 | 重新实现模型、观测、动作、奖励、回合和训练配置 |
| 固定策略迁移 | 网络权重及完整推理链路 | 在目标仿真器构建等义的观测与执行接口 |
| 目标环境微调 | 已有策略作为初始化 | 定义新的训练阶段并记录更新过程 |
从 legged_gym 转向 mjlab,可能首先涉及训练任务迁移。即使在新框架重新训练得到了可行策略,也不能据此说明原策略已经通过固定权重的 Sim-to-Sim 验证。反过来,原策略能够在目标仿真器运行,也不能说明奖励和训练器迁移已经完成。
比较时应分别保存原始权重与微调后的权重,明确结果属于直接迁移还是适应后的表现。
2. 迁移对象与版本记录
Section titled “2. 迁移对象与版本记录”策略迁移对象不仅是一个神经网络文件,还包括输入处理、状态缓存、估计模块和动作执行约定。
| 对象 | 最小核对内容 |
|---|---|
| 模型 | 质量、惯量、关节轴、零位、限位、碰撞和执行器 |
| Actor 输入 | 来源、单位、坐标系、顺序、缩放、归一化和历史 |
| Actor 输出 | 动作分布的选择方式、关节映射、缩放和裁剪 |
| 关节执行 | PD 计算位置、增益、目标速度、力矩上限 |
| 时间 | 物理步长、控制周期、延迟和状态刷新时刻 |
| 初始化 | 机器人姿态、历史、循环状态和动作缓存 |
为源端和目标端各保存一份清单,并记录仿真器、模型、推理后端和权重版本。文件格式转换成功只是流程中的一步。
3. 关节映射与坐标变换
Section titled “3. 关节映射与坐标变换”若模型与策略使用不同关节顺序,可以用映射 表示重排。若还存在零位和方向差异,应显式描述,例如:
是方向符号构成的对角矩阵, 是零位偏移。这个式子仅适用于可用重排、符号和偏移表达的对应关系;含耦合机构时需要实际运动学映射。
观测读取和目标输出必须使用相互一致的映射。不能只调整动作顺序而保留错误的关节观测。速度不应加上位置零位偏移;力矩映射还应与广义坐标定义和功率关系一致。
同样需要核对四元数分量顺序、旋转方向、世界与机身坐标系、重力方向以及速度表达。不要直接将两个引擎的原始状态数组按索引复制,浮动基座位置参数与速度自由度的布局可能不同。
4. 推理接口的离线一致性验证
Section titled “4. 推理接口的离线一致性验证”首先使用同一份具有明确物理含义的输入记录,在两端分别运行预处理和策略推理。若采用确定性动作,比较:
应分别比较原始观测各段、归一化输入、网络输出和处理后的关节目标。允许误差由精度、后端与任务要求确定,不能预设一个适用于所有策略的阈值。
这一步可在不推进物理的条件下完成,用来隔离推理和接口差异。带历史或循环状态的策略需要输入同一段序列并从相同缓存状态开始,单帧比较不足以验证完整链路。
若这里出现明显差异,应先修正数据处理、模块导出或网络模式。改变接触参数无法解释同一输入下的网络输出差异。
5. 模型与执行响应的分层验证
Section titled “5. 模型与执行响应的分层验证”在推理链路一致后,再比较物理响应:
- 静态模型检查:比较质量、质心、关节限位、初始足端位置与接触几何。
- 控制律检查:给定相同关节状态和目标,比较限幅前后的力矩请求。
- 短时响应检查:在明确初始条件下执行相同的受控输入,比较关节运动和基座响应。
- 接触响应检查:在一致场景中检查足地接触、支撑和滑移特征。
- 策略闭环检查:固定策略和指令,比较任务指标与失败条件。
开环短时响应适合定位执行差异,长时闭环轨迹则可能因接触和反馈逐渐分离。不应要求不同引擎长期逐帧一致,而应结合任务指标判断差异是否可接受。
6. 接触与执行器模型的差异
Section titled “6. 接触与执行器模型的差异”不同引擎在接触约束、摩擦、积分和执行器建模上可能采用不同参数语义。同名摩擦系数或阻尼数值不保证产生相同运动;不宜通过机械复制配置来宣称动力学等价。
以 MuJoCo 为目标端时,应核对其碰撞、接触和执行器定义,参见官方建模文档。例如外部程序已计算 PD 力矩时,应确认模型中的执行器不会再次以另一组增益计算位置控制。
模型参数调整应基于明确的误差证据,并保存修改记录。若为适配单个策略而不断调整目标仿真器,却没有独立物理依据,应将结果描述为调校后的环境表现,避免把调校过程隐藏在迁移结论中。
7. 跨仿真器评估与结果解释
Section titled “7. 跨仿真器评估与结果解释”使用共同的指令序列、时长、初始条件分布和指标定义,分别记录跟踪误差、完成率、姿态、动作变化与力矩饱和。关闭或固定随机化进行名义条件比较后,再逐项引入差异。
跨仿真器失败可能来自接口、模型或策略敏感性,应按前述层次定位;跨仿真器成功说明策略在已测试的两套条件中可运行,不能证明其中任何一套模型已准确覆盖真实机器人。
对于后续 mjlab 迁移,可用本篇清单记录任务重建与策略验证的实际结果。本站目前不提供未经队内验证的模型转换和训练命令,具体功能与版本要求以官方文档为准。
- 整理一份源端与目标端的接口表,标出关节顺序、四元数和时间设置差异。
- 选取一段固定观测序列,依次比较预处理、网络输出和关节目标。
- 设计短时控制响应实验,说明怎样区分 PD 实现差异与接触差异。
- 分别写出直接迁移与微调后评估的报告标题,明确权重是否发生更新。