Skip to content

Latest commit

 

History

History

ocs2_quadruped_controller

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

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

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