《MicroDuck RL:训练机器鸭从仿真走到真机》 系列课程 · 第 04 集 / 共 14 集
上一集:【MicroDuck RL 03】环境配置全过程(含踩坑记录) |课程目录 | 下一集:【MicroDuck RL 05】解剖主任务 Velocity 行走:观测、奖励、域随机化与课程学习
环境就绪,这一集开始训练,并把一条命令背后的每个参数讲清楚。
启动命令
uv run train Mjlab-Velocity-Flat-MicroDuck \
--env.scene.num-envs 4096 \
--agent.logger tensorboard
--env.scene.num-envs 4096:4096 个平行仿真环境。这是吞吐量的核心——每次 PPO 更新有 4096 × 24 = 98304 步经验。--agent.logger tensorboard:默认 logger 是 wandb(需要账号登录)。没有 wandb 账号就改用 tensorboard,日志落在本地logs/rsl_rl/velocity/<时间戳>_velocity/,功能上不缺东西。
关键参数(默认值)
用 uv run train <TASK> --help 可以查看全部参数,重点几个:
| 参数 | 默认 | 含义 |
|---|---|---|
| 物理步长 | 0.005 s | MuJoCo 每步仿真 5 ms |
| decimation | 4 | 每 4 个物理步执行一次控制 → 控制周期 0.02 s = 50 Hz |
| 回合时长 | 20 s | 每个环境每 20 s 重置一次 |
--agent.max-iterations |
50000 | 最大训练迭代数 |
--agent.save-interval |
250 | 每 250 迭代存一个 model_*.pt checkpoint |
| 学习率 | 1e-3,adaptive | 按 KL 散度自适应调整 |
| epochs / minibatches | 5 / 4 | 每批经验的 PPO 更新结构 |
一次迭代的流程
- 4096 个环境各走 24 步(策略推理,GPU 上并行);
- 计算每步奖励、终止、优势(GAE);
- PPO 更新(5 epochs × 4 minibatches);
- 写日志(tensorboard),每 250 迭代存 checkpoint。
实测性能(RTX 5080)
| 指标 | 数值 |
|---|---|
| 单迭代耗时 | ≈ 1.13 s |
| 显存占用 | ≈ 7.3 GB / 16 GB |
| GPU 利用率 | ≈ 84% |
| 参考预算 | 简单技巧任务 ~1000 迭代;步态类 4000–6000 迭代(来自项目经验文档) |
断点续训
uv run train Mjlab-Velocity-Flat-MicroDuck --env.scene.num-envs 4096 \
--agent.run-name resume \
--agent.load-checkpoint model_2000.pt \
--agent.resume True
冒烟测试(改完配置先跑这个!)
uv run train Mjlab-Velocity-Flat-MicroDuck --env.scene.num-envs 64 --agent.max-iterations 5
项目文档原话:64 环境 5 迭代的冒烟测试能提前抓住 ~95% 的配置错误,成本几乎为零。正式长训练之前永远先跑它。
下一集进入本系列最硬核的部分:逐行解剖这个任务的观测、奖励、域随机化和课程学习。