quadruped_ros2_control/controllers/ocs2_quadruped_controller
Huang Zhenbiao 2b395cd2f3 take FSM out as separate library 2025-02-27 19:02:21 +08:00
..
config run ocs2 on gazebo successfully 2025-02-26 12:48:19 +08:00
include/ocs2_quadruped_controller add gz quadruped hardware 2025-02-25 22:18:55 +08:00
launch take FSM out as separate library 2025-02-27 19:02:21 +08:00
src run ocs2 on gazebo successfully 2025-02-26 12:48:19 +08:00
CMakeLists.txt add gazebo ocs2 simulation 2025-02-23 22:07:46 +08:00
README.md run ocs2 on gazebo successfully 2025-02-26 12:48:19 +08:00
ocs2_quadruped_controller.xml state estimate tested 2024-09-25 21:01:50 +08:00
package.xml remove "CONTROLLER_INTERFACE_PUBLIC" 2025-02-19 11:56:29 +08:00

README.md

OCS2 Quadruped Controller

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

*[x] [2025-01-16] Add support for ground truth estimator.

1. Interfaces

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

2. Build

2.1 Build Dependencies

Before install OCS2 ROS2, please follow the guide to install Pinocchio. Don't use the pinocchio install by rosdep!

After installed Pinocchio, follow below step to clone ocs2 ros2 library to src folder.

cd ~/ros2_ws/src
git clone https://github.com/legubiao/ocs2_ros2

cd ocs2_ros2
git submodule update --init --recursive

cd ..
rosdep install --from-paths src --ignore-src -r -y

2.2 Build OCS2 Quadruped Controller

cd ~/ros2_ws
colcon build --packages-up-to ocs2_quadruped_controller  --symlink-install

3. Launch

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

3.1 Mujoco Simulation

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

3.2 Gazebo Launch

source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_quadruped_controller gazebo.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).