README.md 2.3 KB

guguji_rl

guguji_rlguguji_simulation 仓库里的强化学习训练工程。

为什么单独放在仓库根目录

我把训练代码放在 guguji_ros2_ws 外面,原因是:

  • guguji_ros2_ws/src/guguji_ros2 继续专注于机器人描述、Gazebo 启动和 ROS 2 接口
  • guguji_rl 专注于 Python 强化学习依赖,例如 stable-baselines3gymnasiumtorch
  • 这样后续你更容易分别调试“机器人仿真问题”和“训练算法问题”

当前实现内容

  • configs/:训练配置,支持 CPU / GPU 切换
  • guguji_rl/ros2_interface.py:ROS 2 与 Gazebo 的训练接口
  • guguji_rl/envs/gazebo_biped_env.py:Gymnasium 环境封装
  • guguji_rl/rewards.py:奖励函数
  • scripts/train.py:PPO 训练入口
  • scripts/evaluate.py:加载训练好的策略并在 Gazebo 中运行
  • scripts/run_policy.py:把训练好的策略作为在线控制程序持续运行
  • scripts/check_env.py:训练前自检脚本

建议工作流

  1. 先启动 Gazebo 仿真
  2. 再运行 check_env.py 检查 ROS 2 / Gazebo 训练接口
  3. 先跑 balance_ppo.yaml 训练站立平衡
  4. 再跑 walk_ppo.yaml 训练前进
  5. 训练出模型后,先用 evaluate.py 做回放,再用 run_policy.py 在 ROS 2 系统中持续推理控制

安装依赖

建议在独立虚拟环境中安装:

cd /home/corvin/Project/guguji_simulation/guguji_rl
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt

如果要用 GPU,请先确认 torch.cuda.is_available()True,然后在配置文件里把 training.device 设为 cudaauto

训练时推荐的 Gazebo 启动方式

如果你准备正式开始训练,建议这样启动 Gazebo:

source /opt/ros/humble/setup.bash
cd /home/corvin/Project/guguji_simulation/guguji_ros2_ws
source install/setup.bash
ros2 launch guguji_ros2 gazebo.launch.py gui:=false pause:=true

这样训练环境可以通过 /world/default/control 精确推进仿真步数,更适合强化学习。

在线运行训练好的策略

cd /home/corvin/Project/guguji_simulation/guguji_rl
source .venv/bin/activate
python3 scripts/run_policy.py \
  --config configs/walk_ppo.yaml \
  --model outputs/<你的实验目录>/final_model.zip \
  --deterministic