Skip to content

About

基于ROS和Mujoco搭建的轮腿机器人仿真程序

Resources

Stars

11 stars

Watchers

0 watching

Forks

Repository files navigation

wheel-legged-control

基于 ROS 2 + MuJoCo 的轮腿机器人控制与仿真工程,包含:

  • MuJoCo 物理仿真节点
  • 主控制器节点(平衡/力矩控制)
  • 键盘遥控节点
  • 自定义电机与 IMU 消息定义
  • 数据记录与可视化脚本

当前仓库中的包名为 wheeled_bipedal_control,建议在 ROS 2 工作区 src/ 下使用。


1. 项目结构

wheel-legged-control/
├── src/                         # C++ 节点实现
├── msg/                         # 自定义消息(电机状态/指令、IMU)
├── launch/                      # 启动文件(仿真/硬件)
├── meshes/                      # MuJoCo 模型网格
├── wheelleg_robot.xml           # MuJoCo 机器人模型
├── scripts/                     # 数据记录与分析脚本
├── quick_plot_en.py             # 快速绘图工具
├── DATA_ANALYSIS_README.md      # 数据分析说明
├── CMakeLists.txt
└── package.xml

2. 功能概览

核心节点

  • mujoco_sim_node
    • 加载 wheelleg_robot.xml,运行 MuJoCo 仿真
    • 发布 IMU 和电机状态
    • 订阅电机力矩命令
  • main_controller_node
    • 订阅电机状态、IMU、cmd_vel
    • 执行控制逻辑并发布电机命令
  • remote_control_node
    • 键盘模式下发布 cmd_vel(w/s/a/d/q)

话题(默认)

  • 发布:
    • imu/data
    • motor_states
    • motor_commands
    • cmd_vel
    • debug/*(控制调试信息)
  • 订阅:
    • motor_commands(仿真节点)
    • motor_states / imu/data / cmd_vel(主控节点)

3. 环境依赖

系统与中间件

  • Ubuntu(建议 22.04)
  • ROS 2(建议 Humble)
  • ament_cmake

C++依赖

  • Eigen3
  • glfw3
  • OpenGL(GL)

仿真依赖

  • MuJoCo(仓库当前 CMake 中为本地绝对路径配置)

Python(数据分析)

  • pandas
  • matplotlib
  • numpy

可执行:

./install_requirements.sh

4. 快速开始(仿真)

4.1 创建并编译工作区

# 以 ~/ros2_ws 为例
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src

# 克隆仓库(按你的远程地址替换)
git clone <your-repo-url> wheel-legged-control

cd ~/ros2_ws
colcon build --packages-select wheeled_bipedal_control
source install/setup.bash

4.2 启动仿真

ros2 launch wheeled_bipedal_control simulation.launch.py

默认会启动:

  • mujoco_sim_node
  • main_controller_node
  • remote_control_node

4.3 键盘控制

在运行 remote_control_node 的终端中使用:

  • w:前进
  • s:后退
  • a:左转
  • d:右转
  • q:停止

5. 数据记录与分析

项目包含多种绘图/分析脚本,建议参考:

  • DATA_ANALYSIS_README.md
  • scripts/ 目录下工具
  • quick_plot_en.py

典型流程:

  1. 运行仿真并产生日志/CSV
  2. 使用快速绘图脚本查看关键状态
  3. 使用详细分析脚本做离线诊断

6. 常见问题(重要)

6.1 MuJoCo 路径是硬编码的

CMakeLists.txt 中当前使用了本机绝对路径(例如 /home/ldq/...)。如果你在其他机器编译,请先修改:

  • MUJOCO_INCLUDE_DIRS
  • MUJOCO_LIBRARY_DIR

以及 launch/simulation.launch.py 中 model_file 的绝对路径。

6.2 启动文件与可执行文件不一致

hardware.launch.py / wheeled_bipedal_control.launch.py 中包含的部分节点(如 can_interface_node、imu_node、observe_node)在当前 CMakeLists.txt 里处于注释或未安装状态。若需使用:

  1. 在 CMakeLists.txt 中恢复对应 add_executable 与 install(TARGETS ...)
  2. 确保相关源文件与依赖可正常编译

6.3 终端按键无响应

键盘控制依赖终端原始模式读取,请确保焦点在运行 remote_control_node 的终端窗口。


7. 后续改进建议

  • 将 MuJoCo、模型路径改为可配置环境变量或 launch 参数(避免硬编码)
  • 补全 package.xml 中描述、许可证等元信息
  • 对启动文件进行统一整理(仿真/实机可执行项一致性)
  • 增加 README 中参数表与话题表的自动化同步文档

8. 许可证

本仓库根目录包含 LICENSE 文件;若你计划发布或商用,请结合依赖组件(ROS 2 / MuJoCo / 第三方库)许可证一并核查。

About

基于ROS和Mujoco搭建的轮腿机器人仿真程序

Resources

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages