Skip to content

ROS2-Control implementations for Quadruped robots, include sim2real

License

Notifications You must be signed in to change notification settings

legubiao/quadruped_ros2_control

Repository files navigation

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

Releases

No releases published

Packages

No packages published