This is a ros2-control controller based on legged_control and ocs2_ros2.
Tested environment:
- Ubuntu 24.04
- ROS2 Jazzy
- Ubuntu 22.04
- ROS2 Humble
Required hardware interfaces:
- command:
- joint position
- joint velocity
- joint effort
- KP
- KD
- state:
- joint effort
- joint position
- joint velocity
- imu sensor
- linear acceleration
- angular velocity
- orientation
- feet force sensor
- OCS2 ROS2 Libraries
colcon build --packages-up-to ocs2_legged_robot_ros colcon build --packages-up-to ocs2_self_collision
cd ~/ros2_ws
colcon build --packages-up-to ocs2_quadruped_controller
supported robot description:
- Unitree
- go2_description
- go1_description
- a1_description
- aliengo_description
- b2_description
- Xiaomi
- cyberdog_description
- DeepRobotics
- lite3_description
- x30_description
- Anybotics
- anymal_c_description
Warm Reminder: You need to launch Unitree Mujoco C++ Simulation before launch the controller.
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_quadruped_controller mujoco.launch.py pkg_description:=go2_description
At the first launch, controller may compile the OCS2 model and generate the shared library. The compilation process may take a few minutes. After the compilation, restart the controller and the robot should stand up. Then you can use the keyboard or joystick to control the robot (Keyboard 2 or Joystick LB+A to Trot mode).