ROS2-Control implementations for Quadruped robots
Go to file
Huang Zhenbiao 6e2b77a5c8 fix rl controller problem at gazebo 2025-03-31 19:22:29 +08:00
.images fix for leg pd controller under ubuntu 24 2024-10-28 10:55:35 +08:00
LICENSES modified LICENSE and reference 2024-10-03 19:26:54 +08:00
commands add real go2 test 2025-03-30 11:04:48 +08:00
controllers fix rl controller problem at gazebo 2025-03-31 19:22:29 +08:00
descriptions fix rl controller problem at gazebo 2025-03-31 19:22:29 +08:00
hardwares add real go2 test 2025-03-30 11:04:48 +08:00
libraries cartographer and gazebo test 2025-03-24 01:01:36 +08:00
.clang-tidy tried to add foot force sensor 2025-02-26 01:18:37 +08:00
.gitignore init commit 2024-09-09 22:18:19 +08:00
LICENSE modified LICENSE and reference 2024-10-03 19:26:54 +08:00
README.md fix rl controller problem at gazebo 2025-03-31 19:22:29 +08:00

README.md

Quadruped ROS2 Control

This repository contains the ros2-control based controllers for the quadruped robot.

  • Controllers: contains the ros2-control controllers
  • Commands: contains command node used to send command to the controller
  • Descriptions: contains the urdf model of the robot
  • Hardwares: contains the ros2-control hardware interface for the robot

Todo List:

  • [2025-02-23] Add Gazebo Playground
    • OCS2 controller for Gazebo Simulation
    • Refactor FSM and Unitree Guide Controller
  • [2025-03-30] Add Real Go2 Robot Support
  • OCS2 Perceptive locomotion demo

Video on Real Unitree Go2 Robot:

1. Quick Start

  • rosdep
    cd ~/ros2_ws
    rosdep install --from-paths src --ignore-src -r -y
    
  • Compile the package
    colcon build --packages-up-to unitree_guide_controller go2_description keyboard_input --symlink-install
    

1.1 Mujoco Simulator or Real Unitree Robot

Warning: CycloneDDS ROS2 RMW may conflict with unitree_sdk2. If you cannot launch unitree mujoco simulation without sudo, then you cannot used unitree_mujoco_hardware. This conflict could be solved by one of below two methods:

  1. Uninstall CycloneDDS ROS2 RMW, used another ROS2 RMW, such as FastDDS [Recommended].
  2. Follow the guide in unitree_ros2 to configure the ROS2 RMW by compiling cyclone dds.
  • Compile Unitree Hardware Interfaces
    cd ~/ros2_ws
    colcon build --packages-up-to hardware_unitree_mujoco
    
  • Follow the guide in unitree_mujoco to launch the unitree mujoco go2 simulation
  • Launch the ros2-control
    source ~/ros2_ws/install/setup.bash
    ros2 launch unitree_guide_controller mujoco.launch.py
    
  • Run the keyboard control node
    source ~/ros2_ws/install/setup.bash
    ros2 run keyboard_input keyboard_input
    

mujoco

1.2 Gazebo Classic Simulator (ROS2 Humble)

  • Install Gazebo Classic
    sudo apt-get install ros-humble-gazebo-ros ros-humble-gazebo-ros2-control
    
  • Compile Leg PD Controller
    colcon build --packages-up-to leg_pd_controller
    
  • Launch the ros2-control
    source ~/ros2_ws/install/setup.bash
    ros2 launch unitree_guide_controller gazebo_classic.launch.py
    
  • Run the keyboard control node
    source ~/ros2_ws/install/setup.bash
    ros2 run keyboard_input keyboard_input
    

gazebo classic

1.3 Gazebo Harmonic Simulator (ROS2 Jazzy)

  • Install Gazebo

    sudo apt-get install ros-jazzy-ros-gz
    
  • Compile Gazebo Playground

    colcon build --packages-up-to gz_quadruped_playground --symlink-install
    
  • Launch the ros2-control

    source ~/ros2_ws/install/setup.bash
    ros2 launch unitree_guide_controller gazebo.launch.py
    
  • Run the keyboard control node

    source ~/ros2_ws/install/setup.bash
    ros2 run keyboard_input keyboard_input
    

gazebo

For more details, please refer to the unitree guide controller and go2 description.

What's Next

Congratulations! You have successfully launched the quadruped robot in the simulation. Here are some suggestions for you to have a try:

Reference

Conference Paper

[1] Liao, Qiayuan, et al. "Walking in narrow spaces: Safety-critical locomotion control for quadrupedal robots with duality-based optimization." In 2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 2723-2730. IEEE, 2023.

Miscellaneous

[1] Unitree Robotics. unitree_guide: An open source project for controlling the quadruped robot of Unitree Robotics, and it is also the software project accompanying 《四足机器人控制算法--建模、控制与实践》 published by Unitree Robotics. [Online]. Available: https://github.com/unitreerobotics/unitree_guide

[2] Qiayuan Liao. legged_control: An open-source NMPC, WBC, state estimation, and sim2real framework for legged robots. [Online]. Available: https://github.com/qiayuanl/legged_control

[3] Ziqi Fan. rl_sar: Simulation Verification and Physical Deployment of Robot Reinforcement Learning Algorithm.

  1. Available: https://github.com/fan-ziqi/rl_sar