第 13 课 · 参数地图:想改行为去哪改
这一课解决什么问题:从这课起进入阶段 D,你会不断冒出"想让它站得稳一点、步子大一点、走得快一点"的念头。这一课给你一张地图:按"想改什么"直接定位到正确的文件和参数,而不是在 882 行配置里迷路。
1. 为什么需要一张地图
鸭子的训练参数散在 microduck_rl 上游仓库里,本项目的解读文档是 microduck-replica/docs/训练参数调整与新动作开发指南.md——882 行,其中第 6 节就是"症状 → 文件"对照表。你不需要读完,只需要会查:改零位查 6.1,改脚的高度查 6.5,改速度查 6.4,提抗扰查 6.7。
所以呢?调参第一步不是打开文件乱翻,而是先说清"我到底想改什么行为",再查表定位。
2. 动手前的铁律:61 → 14 契约不能动
第 04 课讲过:策略每次吃 61 个数、吐 14 个数。指南第 4 节把它称为"不能随便动的契约"——观测的顺序、数量、含义一改,所有已训练 checkpoint 和导出的 ONNX 全部作废。
同理,指南 6.10 节的 PPO 超参数表(隐层 512/256/128、学习率 1e-3、每次迭代采样 24 步)给新手的建议全是"不改"。它还点破最常见误区:行为不好就先调学习率——多数时候问题在目标不可达、奖励有漏洞或物理配置。
所以呢?新手能改、该改的是任务层参数(速度、奖励、随机化);网络结构和观测契约,前四个阶段一个都别碰。
3. 目标一:改站立姿态(零位)
- 文件:
src/mjlab_microduck/robot/microduck_constants.py,搜HOME_FRAME; - 陷阱:真机侧
duck-control/src/model.rs里的DEFAULT_POSITION必须同步改。只改一边,关节位置观测永久带偏差,症状很像"舵机不准"或"策略不稳"; - 验证:先核对两端数值一致,再回放看站立,确认不歪不抖。
相关区分(指南 6.2 节):机械限位 limit、安全余量系数 0.9、动作幅度 action scale 三层各管各的,别混着改。
4. 目标二:让脚抬高、步子更明显
文件:tasks/microduck_velocity_env_cfg.py,搜这几个奖励参数:
| 参数 | 作用 |
|---|---|
air_time.weight |
迈步(脚离地)奖励强度 |
air_time.threshold_min/max |
算奖励的有效离地时间窗口 |
foot_swing_height.target_height |
摆动脚高度目标(当前 0.02 m) |
threshold_min 上游值是 0.125 s,本工作区实验中已改成 0.04 s——完整故事在第 16 课。验证:看 TensorBoard 的 Metrics/air_time_mean 是否脱离零附近,再回放肉眼看有没有拖脚。
5. 目标三:改目标速度
同一文件搜 command.ranges,当前前进范围 lin_vel_x = (-0.4, 0.4) m/s。指南建议一次只提一档:0.4 → 0.5,回放固定测 0、0.2、0.4、0.5 m/s 四个点,看速度误差和摔倒率,稳定后再谈 0.6。
为什么不能一步拉满?指南原话:只扩大最大速度并不自动得到"跑步",策略可能用更快的小碎步或拖脚换速度分;超过真实执行器能力的命令只会训练出"奖励妥协"。
6. 目标四:提高 sim-to-real 鲁棒性
入口在走路配置顶部的域随机化(domain randomization,训练时故意随机扰动物理参数,让策略学会抗干扰,第 15 课专讲)开关表。当前开启的有:躯干质心 ±3 mm(课程逐步扩到 ±15 mm)、质量+惯量 0.95~1.05 倍、IMU 安装误差随机轴最大 6°、编码器偏置 ±0.015 rad;执行器侧还有命令延迟随机 3~6 仿真步(指南 6.3 节)。
验证方式不是看 reward 涨没涨,而是做扰动测试(第 15 课看 exp001b 的真实做法)。原则是指南原话:随机范围要覆盖实测误差,不是想象中的最坏情况;范围过大,策略会学得紧张保守,反而难走出正常步态。
动手练习(15 分钟)
打开 训练参数调整与新动作开发指南.md 第 6 节,把你最想改的 4 个行为抄成一张速查卡:目标 → 文件 → 参数 → 验证方法。这张卡是你后面做实验的导航。
自查清单
- [ ] 我能说出"改零位"和"改步高"分别去哪个文件、搜什么关键词
- [ ] 我能解释为什么零位必须仿真和真机两端同步改
- [ ] 我能复述 61 → 14 契约为什么不能动
- [ ] 我知道改完参数后"验证"该看什么,而不是只盯 reward
下一课预告
改了参数,怎么知道有没有用?第 14 课讲单变量 A/B 实验:先写假设、再跑对照、最后给出有边界的结论——全程用本仓库 exp001 的真实数据演示。
延伸资源
microduck-replica/docs/训练参数调整与新动作开发指南.md第 6 节(按目标查文件)与第 16 节(一页参数索引)docs/进阶学习文档-训练仿真与部署.md第 2.3 节(同一张地图的浓缩版)- 系统理解奖励与超参数:Hugging Face 深度强化学习课(有中文版)