quadruped_ros2_control/controllers/ocs2_quadruped_controller
Huang Zhenbiao e3f518eb12 remove "CONTROLLER_INTERFACE_PUBLIC" 2025-02-19 11:56:29 +08:00
..
config add visualizer 2024-09-30 20:02:56 +08:00
include/ocs2_quadruped_controller add support for ground truth estimator 2025-01-16 16:56:04 +08:00
launch ocs2 launch file refact 2024-10-18 11:47:31 +08:00
src remove "CONTROLLER_INTERFACE_PUBLIC" 2025-02-19 11:56:29 +08:00
CMakeLists.txt add support for ground truth estimator 2025-01-16 16:56:04 +08:00
README.md remove "CONTROLLER_INTERFACE_PUBLIC" 2025-02-19 11:56:29 +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!

  • OCS2 ROS2 Libraries
    colcon build --packages-up-to ocs2_legged_robot_ros
    colcon build --packages-up-to ocs2_self_collision
    

2.2 Build OCS2 Quadruped Controller

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

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

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