6. 强化学习步态训练
对应 CS123 · Lab 5 "How to Train Your Dog" + Lecture 6 "Reinforcement Learning"
上一章的 trot 是我们编程让它走;这一章我们让它学会走。我们会把 Pupper 仿真包成一个 Gymnasium 环境,用 PPO 训练一条能向任意方向走的策略,并和第 5 章的开环步态对比。
本章目标
- 能把 MuJoCo 仿真封装成标准
gymnasium.Env - 能独立设计观测 / 动作 / 奖励(至少 3 项奖励项)
- 能用
stable-baselines3跑完一轮 PPO 训练(典型 5–20 分钟) - 能解读
tensorboard上的训练曲线
前置阅读
- 第 4–5 章
- 强化学习 · 绪论
- 强化学习 · 策略梯度
- 项目 · DDPG Reacher-v5(熟悉连续动作训练)
章节大纲
- 为什么步态可以被 RL 学出来
- 环境封装:obs(base orientation + joint pos/vel + foot contact)
- 动作:12 关节目标角 or 增量
- 奖励工程:前向速度、能量、存活、摔倒惩罚
- 域随机化(可选):质量 / 摩擦 / 初始姿态扰动
- PPO 训练脚本
- 实验 1:只奖励前向速度的"极端暴走"策略
- 实验 2:加上能量惩罚后的"优雅"步态
- 评估与录屏
组队学习任务
-
envs/pupper.py:Pupper gym 环境 -
train_ppo.py:PPO 训练入口,支持--seed - 提交 1 条训练好的
.zip模型 + 一段评估视频 - 写 200 字对比"手写 trot vs RL 学出来的步态"
参考资料
- CS123 Lab 5: How to Train Your Dog
- Stable-Baselines3 文档
- Margolis et al., "Rapid Locomotion via Reinforcement Learning"