ai-robot-wangqiuzhuang

第 13 周:四足机器人仿真与强化学习

1. 学生推荐工作流

1.1 Fork 第 13 周代码仓库

在 GitHub 打开:

https://github.com/ai-robot-class/week13

点击 Fork,将仓库复制到自己的账号下,例如:

https://github.com/<your-github-name>/week13

后续如果需要修改第 13 周代码,应提交到自己的 fork,而不是直接修改官方仓库。

1.2 在作业仓库中添加自己的 fork 作为 submodule

进入自己的作业仓库根目录:

cd <student-homework-repo>

添加 submodule:

git submodule add https://github.com/<your-github-name>/week13.git week13
mkdir -p reports results
git add .gitmodules week13 reports results
git commit -m "Add week13 submodule"

作业仓库结构:

student-homework-repo/
├── week13/                 # 学生 fork 后的 week13 submodule
├── reports/                # 实验报告、截图说明
├── results/                # 自己生成的视频、模型、GIF
└── README.md               # 作业说明

1.3 克隆作业仓库后初始化 submodule

git submodule update --init --recursive
git clone --recurse-submodules <student-homework-repo-url>

1.4 修改 week13 代码并提交

修改 week13/ 中的代码,需要先进入 submodule:

cd week13
git checkout -b my-week13-experiment

修改代码后,在 week13/ 目录内提交并推送到自己的 fork:

git add quadruped_ppo_residual_stairs.py
git commit -m "Improve week13 stair climbing reward"
git push origin my-week13-experiment

然后回到作业仓库根目录,提交 submodule 指针和作业材料:

cd ..
git add week13 reports results
git commit -m "Submit week13 quadruped experiment"
git push

注意:作业仓库记录的是 week13 submodule 的具体提交指针。只在 submodule 内提交还不够,还需要回到作业仓库提交一次 week13 指针更新。

2. 安装依赖

在作业仓库根目录或 week13/ 目录中运行:

pip install pybullet numpy gymnasium stable-baselines3 torch opencv-python imageio matplotlib pillow

3. 快速复现最终强化学习演示

在作业仓库根目录运行:

python3 week13/quadruped_ppo_residual_stairs.py demo --task stairs --model week13/ppo_residual_stairs.zip --stair_steps 4 --step_height 0.03 --init_x 0.00 --steps 500 --gui

无图形界面时录制视频:

python3 week13/quadruped_ppo_residual_stairs.py demo --task stairs --model week13/ppo_residual_stairs.zip --stair_steps 4 --step_height 0.03 --init_x 0.00 --steps 500 --record results/stairs_demo.mp4

预期现象:四足机器人能够明显向前爬上约三阶低台阶,但尚未满足“在最终台阶上稳定站住”的严格成功标准。

四足机器人低台阶爬楼梯阶段性成果

4. 第 13 周演示代码

4.1 PyBullet 入门:方块自由落体

python3 week13/demos/01_pybullet_box.py

对应讲义:PyBullet 基础仿真示例。

4.2 加载 Laikago 四足机器人

python3 week13/demos/02_load_laikago.py

对应讲义:加载 PyBullet 自带四足机器人模型。

4.3 简单正弦步态

python3 week13/demos/03_sine_gait.py

对应讲义:用正弦函数控制关节,观察对角腿相位差。

4.4 Trot 步态演示

python3 week13/demos/04_trot_gait.py

对应讲义:更清晰的 Trot 步态生成。

4.5 生成步态 GIF 与图表

python3 week13/scripts/generate_gait_gifs.py
python3 week13/scripts/generate_gait_diagrams.py

生成结果保存在:

week13/assets/gaits/

5. 步态可视化素材

三种步态对比:

Walk / Trot / Bound 步态对比

Trot 步态:

Trot 步态

步态相位图:

步态相位图

速度与能耗对比:

速度与能耗对比

7. 作业报告建议

Week 13 四足机器人仿真与强化学习实验报告

运行的演示

修改内容

实验结果

提交作业:

git add reports results week13
git commit -m "Submit week13 quadruped simulation assignment"
git push