ROS2-Control implementations for Quadruped robots
Go to file
Zhenbiao Huang 6015ae749c update README.md 2024-11-06 20:07:48 +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 modified LICENSE and reference 2024-10-03 19:26:54 +08:00
controllers update README.md 2024-11-06 20:07:48 +08:00
descriptions add rl for x30 2024-10-25 12:47:03 +08:00
hardwares/hardware_unitree_mujoco modified LICENSE and reference 2024-10-03 19:26:54 +08:00
libraries/qpoases_colcon modified LICENSE and reference 2024-10-03 19:26:54 +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 update README.md 2024-11-06 20:07:48 +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:

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 
    

1.1 Mujoco Simulator

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

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
    
  • 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 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.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.

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. 2024. Available: https://github.com/fan-ziqi/rl_sar