Skip to content

walle250ai/pm-v2-rl

Repository files navigation

PM-V2 强化学习行走训练

EngineAI PM-V2 双足机器人 — MuJoCo + Stable-Baselines3 PPO

环境说明

项目 参数
物理引擎 MuJoCo 3.x
控制频率 20 Hz(每步 25 个物理子步,dt=0.002s)
观测维度 48
动作维度 12(腿部关节 J00-J11)
非腿部关节 腰/手臂/头固定在初始姿态
单集长度 最多 500 步(25 秒)
终止条件 重心高度 < 0.3m 或躯干倾斜 > 60°

观测空间(48维)

[0:3]   基座线速度(机体坐标系)
[3:6]   基座角速度(机体坐标系)
[6:9]   重力方向(机体坐标系)
[9:12]  指令速度(vx, vy, vyaw)
[12:24] 腿部关节角度(相对于默认姿态)
[24:36] 腿部关节角速度
[36:48] 上一步动作

奖励函数

项目 权重 说明
前进速度追踪 1.0 Gaussian kernel,目标 0.5 m/s
侧向速度追踪 0.3 目标 0 m/s
偏航速率追踪 0.2 目标 0 rad/s
高度维持 0.5 目标 0.808 m
躯干直立 0.5 重力方向投影
动作平滑 -0.002 动作幅度惩罚
关节速度 -0.0005 关节速度惩罚
存活奖励 0.2 每步固定奖励

安装依赖

conda activate isaac_rl
pip install mujoco gymnasium stable-baselines3[extra] tensorboard

使用方法

1. 验证环境

conda activate isaac_rl
cd /home/walle/pm_v2_rl
python pm_v2_env.py

2. 开始训练

conda activate isaac_rl
cd /home/walle/pm_v2_rl

# 默认配置(8环境并行,2000万步)
python pm_v2_train.py

# 自定义参数
python pm_v2_train.py --n_envs 16 --total_timesteps 40000000

# 断点续训
python pm_v2_train.py --resume logs/pm_v2_ppo/20240101_120000/final_model.zip

3. 查看 TensorBoard

conda activate isaac_rl
cd /home/walle/pm_v2_rl
tensorboard --logdir logs/pm_v2_ppo
# 浏览器打开 http://localhost:6006

4. 可视化评估

conda activate isaac_rl
cd /home/walle/pm_v2_rl

# 自动找最新 checkpoint
python pm_v2_eval.py

# 指定 checkpoint + 不渲染(打印统计)
python pm_v2_eval.py --model logs/.../best_model.zip --no_render --n_episodes 20

# 修改目标速度
python pm_v2_eval.py --cmd_vx 1.0 --cmd_vy 0.0

训练进度参考

步数 预期表现
0.5M 能站立,偶尔小步移动
2M 不规则行走,偶尔摔倒
5M 基本行走,较多摔倒
10M 稳定行走,偶尔摔倒
20M 较为稳定的行走步态

文件结构

pm_v2_rl/
├── pm_v2_env.py       # Gymnasium 环境定义
├── pm_v2_train.py     # PPO 训练脚本
├── pm_v2_eval.py      # 可视化评估脚本
├── README.md          # 本文件
└── logs/
    └── pm_v2_ppo/
        └── <run_name>/
            ├── pm_v2_*.zip         # 定期 checkpoint(每10万步)
            ├── best/best_model.zip # 最优模型
            ├── final_model.zip     # 训练结束模型
            └── vecnormalize.pkl    # 观测归一化参数

关节说明

控制的12个腿部关节:

索引 关节名 初始角度(rad) 控制范围(rad)
J00 HIP_PITCH_L 0.00 [-2.618, 2.618]
J01 HIP_ROLL_L 0.00 [-0.611, 0.611]
J02 HIP_YAW_L -0.12 [-0.698, 0.698]
J03 KNEE_PITCH_L 0.24 [-0.087, 2.531]
J04 ANKLE_PITCH_L -0.12 [-0.611, 0.524]
J05 ANKLE_ROLL_L 0.00 [-0.349, 0.349]
J06 HIP_PITCH_R 0.00 [-2.618, 2.618]
J07 HIP_ROLL_R 0.00 [-0.611, 0.611]
J08 HIP_YAW_R -0.12 [-0.698, 0.698]
J09 KNEE_PITCH_R 0.24 [-0.087, 2.531]
J10 ANKLE_PITCH_R -0.12 [-0.611, 0.524]
J11 ANKLE_ROLL_R 0.00 [-0.349, 0.349]

PD 增益(XML中定义):kp=300,kv=15

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages