【MicroDuck RL 09】部署流程:从仿真到真机(Sim2Real)

:books: 《MicroDuck RL:训练机器鸭从仿真走到真机》 系列课程 · 第 09 集 / 共 14 集
上一集:【MicroDuck RL 08】MuJoCo 基础:单独把玩机器人模型:open_book: 课程目录 | 下一集:【MicroDuck RL 10】如何读懂训练日志

训练出的策略怎么上真机?这一集讲完整链路。

训练 (.pt) ──scripts/export.py──> ONNX(烘焙观测归一化器)──> 真机运行时

1. 导出 ONNX

uv run scripts/export.py Mjlab-Velocity-Flat-MicroDuck --wandb-run-path ...

必须用这个脚本:它把观测归一化器烘焙进网络图;手动转换的 checkpoint 会让策略在真机上吃到未归一化的观测,直接失效。这是很多人 sim2real 翻车的第一个原因。

2. 仿真彩排(CPU 就能跑)

uv run scripts/infer_policy.py --walking output.onnx

CPU MuJoCo 里键盘驱动:速度指令行走,G 捡拾、Y 坐/站、R 前滚翻、K/L 踢球;支持 --record 录像、--save-csv 导数据做 sim2real 对比。

上真机之前一定先在这里彩排——它用的观测/指令约定和真机运行时一致,彩排过不了,真机必挂。

3. 真机

pollen-robotics/microduck 的运行时以 50 Hz 跑 ONNX,多个策略共享 61 维观测契约(第 05 集讲过),可在走路/恢复/特技之间热切换。

部署注意事项

  • 训练出的策略没有动作滤波,真机也不能加(滤波会破坏策略假设的时序);
  • 指令语义要喂对:比如姿态标志位藏在 twist 的 vx 槽,全零 = “站住”。

到这一集,从训练到真机的完整闭环就走通了。下一集回头讲一个日常高频技能:怎么读懂训练日志,判断训练到底有没有在"真正进步"。


:open_book: 系列课程目录【系列课程】MicroDuck 强化学习:训练机器鸭从仿真走到真机 · 课程目录与导读