|
||
---|---|---|
.images | ||
LICENSES | ||
commands | ||
controllers | ||
descriptions | ||
hardwares | ||
libraries | ||
.clang-tidy | ||
.gitignore | ||
LICENSE | ||
README.md |
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 usedunitree_mujoco_hardware
. This conflict could be solved by one of below two methods:
- Uninstall CycloneDDS ROS2 RMW, or
- 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
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
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
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:
- More Robot Models could be found at description
- Try more controllers.
- OCS2 Quadruped Controller: Robust MPC-based controller for quadruped robot
- RL Quadruped Controller: Reinforcement learning controller for quadruped robot
- Simulate with more sensors
- Gazebo Quadruped Playground: Provide gazebo simulation with lidar or depth camera.
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.
- Available: https://github.com/fan-ziqi/rl_sar