跳到主要内容

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 上的训练曲线

前置阅读

章节大纲

  1. 为什么步态可以被 RL 学出来
  2. 环境封装:obs(base orientation + joint pos/vel + foot contact)
  3. 动作:12 关节目标角 or 增量
  4. 奖励工程:前向速度、能量、存活、摔倒惩罚
  5. 域随机化(可选):质量 / 摩擦 / 初始姿态扰动
  6. PPO 训练脚本
  7. 实验 1:只奖励前向速度的"极端暴走"策略
  8. 实验 2:加上能量惩罚后的"优雅"步态
  9. 评估与录屏

组队学习任务

  • envs/pupper.py:Pupper gym 环境
  • train_ppo.py:PPO 训练入口,支持 --seed
  • 提交 1 条训练好的 .zip 模型 + 一段评估视频
  • 写 200 字对比"手写 trot vs RL 学出来的步态"

参考资料