guguji的仿真环境

corvin_zhang 698dce5542 更新mujoco强化学习训练的代码,增加可以直接进行步态移动控制训练的代码 2 weeks ago
docs 698dce5542 更新mujoco强化学习训练的代码,增加可以直接进行步态移动控制训练的代码 2 weeks ago
guguji_real_robot fa86fec2a5 更新机器人前进移动的参数,等待训练好前进移动模型,就可以加载进行测试 3 weeks ago
guguji_rl 698dce5542 更新mujoco强化学习训练的代码,增加可以直接进行步态移动控制训练的代码 2 weeks ago
guguji_ros2_ws 019c6618f6 增加guguji_rl强化学习训练相关代码,并增加了docs目录用于介绍整个强化学习的步骤及注意事项 3 months ago
.gitignore b85e279383 删除无用的vscode配置文件 3 weeks ago
LICENSE 444f9fff07 Initial commit 3 months ago
README.md 698dce5542 更新mujoco强化学习训练的代码,增加可以直接进行步态移动控制训练的代码 2 weeks ago

README.md

guguji_simulation

guguji 的 ROS 2 Humble 仿真环境。

当前结构

当前工作空间位于 guguji_ros2_ws/,其中 src/guguji_ros2 是机器人描述与仿真包。

guguji_ros2 软件包包含:

  • urdf/:机器人模型
  • meshes/:网格模型
  • launch/:ROS 2 启动文件
  • worlds/:Gazebo world 文件
  • config/:关节配置

依赖安装

在 Ubuntu 22.04 + ROS 2 Humble 环境中,至少需要安装:

sudo apt update
sudo apt install \
  ros-humble-joint-state-publisher \
  ros-humble-joint-state-publisher-gui \
  ros-humble-robot-state-publisher \
  ros-humble-ros-gz \
  ros-humble-ros-gz-bridge \
  ros-humble-ros-gz-sim \
  ros-humble-rviz2 \
  ros-humble-sdformat-urdf \
  ros-humble-xacro \
  ros-humble-tf2-msgs

构建

在仓库根目录执行:

source /opt/ros/humble/setup.bash
cd guguji_ros2_ws
colcon build --packages-select guguji_ros2
source install/setup.bash

启动方式

仅查看模型与 TF:

ros2 launch guguji_ros2 display.launch.py

启动 Gazebo Fortress 仿真:

ros2 launch guguji_ros2 gazebo.launch.py

如果你在无图形界面的环境中调试,可以关闭 Gazebo GUI:

ros2 launch guguji_ros2 gazebo.launch.py gui:=false

如果你准备做强化学习训练,建议让 Gazebo 以暂停模式启动:

ros2 launch guguji_ros2 gazebo.launch.py gui:=false pause:=true

Fortress 调试接口

gazebo.launch.py 现在已经接通了下面几类接口:

  • /clock:Gazebo 仿真时钟
  • /joint_states:Gazebo 真实关节状态
  • /tf:Gazebo 真实模型/连杆位姿
  • /guguji/command/<joint_name>:每个关节的位置控制命令,消息类型为 std_msgs/msg/Float64
  • /world/default/control:Gazebo 世界控制服务,可用于 reset / pause / step

强化学习工程

仓库根目录下新增了 guguji_rl/,用于放置强化学习训练和策略运行代码。这样做是为了把:

  • ROS 2 / Gazebo 仿真代码
  • Python 强化学习依赖与训练输出

分开管理,后续会更容易调试。

现在 guguji_rl/ 里已经同时支持:

  • Gazebo Fortress 训练后端
  • MuJoCo 训练后端
  • MuJoCo 下的前进 / 后退 / 转弯命令条件化训练配置 guguji_rl/configs/mujoco_command_walk_ppo.yaml

如果你准备走 MuJoCo 路线,建议直接阅读:

  • docs/guguji_mujoco_rl_guide.md

真实机器人部署工程

仓库根目录下新增了 guguji_real_robot/,用于把训练后的策略部署到真实双足机器人:

  • host/:本机加载训练模型,通过 WiFi UDP 输出 8 个关节目标。
  • firmware/esp32s3_espidf/:ESP32S3 固件,接收 UDP 命令并通过 TWAI/CAN 控制 RS00。
  • docs/:接线、刷机、部署、RS00 MIT 协议和安全调试说明。

建议从 guguji_real_robot/docs/real_robot_deployment_guide.md 开始阅读。

控制示例

例如把左膝关节目标角度设置为 0.8 rad

ros2 topic pub --once /guguji/command/left_knee_pitch_joint std_msgs/msg/Float64 "{data: 0.8}"

查看关节状态:

ros2 topic echo /joint_states

查看 TF:

ros2 topic echo /tf