ROS2-Control implementations for Quadruped robots
Go to file
Huang Zhenbiao 7868336380 rollback to ros2 humble 2025-03-28 10:02:39 +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 update readme and keyboard node 2025-01-14 12:30:04 +08:00
controllers rollback to ros2 humble 2025-03-28 10:02:39 +08:00
descriptions cartographer and gazebo test 2025-03-24 01:01:36 +08:00
hardwares enhanced state switch for ocs2 quadruped controller 2025-03-15 19:42:35 +08:00
libraries rollback to ros2 humble 2025-03-28 10:02:39 +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 add perceptive interface, fix compile problems 2025-03-20 23:30:23 +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
  • OCS2 Perceptive locomotion demo

Video for Unitree Guide Controller:

Video for OCS2 Quadruped Controller:

Video for RL Quadruped Controller:

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

Please use C++ Simulation in this Mujoco Simulation for more robot models and contact sensor.

  • Python Simulation is also supported, but you still need to install unitree_sdk2

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, or
  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 ros-jazzy-gz-ros2-control
    
  • 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