2024-09-24 19:48:14 +08:00
# OCS2 Quadruped Controller
2024-09-26 22:18:11 +08:00
This is a ros2-control controller based on [legged_control ](https://github.com/qiayuanl/legged_control )
and [ocs2_ros2 ](https://github.com/legubiao/ocs2_ros2 ).
2024-09-24 21:50:46 +08:00
2024-10-03 20:51:33 +08:00
Tested environment:
2024-10-18 11:47:31 +08:00
2024-10-03 20:51:33 +08:00
* Ubuntu 24.04
2024-10-18 11:47:31 +08:00
* ROS2 Jazzy
2024-10-18 22:22:07 +08:00
* Ubuntu 22.04
* ROS2 Humble
2024-10-03 20:51:33 +08:00
2024-10-01 19:10:23 +08:00
[![ ](http://i0.hdslb.com/bfs/archive/e758ce019587032449a153cf897a543443b64bba.jpg )](https://www.bilibili.com/video/BV1UcxieuEmH/)
2024-10-03 20:51:33 +08:00
## 1. Interfaces
Required hardware interfaces:
* command:
2024-10-18 11:47:31 +08:00
* joint position
* joint velocity
* joint effort
* KP
* KD
2024-10-03 20:51:33 +08:00
* state:
2024-10-18 11:47:31 +08:00
* joint effort
* joint position
* joint velocity
* imu sensor
* linear acceleration
* angular velocity
* orientation
* feet force sensor
2024-10-03 20:51:33 +08:00
2024-09-24 19:48:14 +08:00
## 2. Build
2024-09-26 22:18:11 +08:00
### 2.1 Build Dependencies
* OCS2 ROS2 Libraries
```bash
colcon build --packages-up-to ocs2_legged_robot_ros
colcon build --packages-up-to ocs2_self_collision
```
### 2.2 Build OCS2 Quadruped Controller
2024-09-24 19:48:14 +08:00
```bash
cd ~/ros2_ws
colcon build --packages-up-to ocs2_quadruped_controller
2024-09-26 22:18:11 +08:00
```
## 3. Launch
2024-10-18 11:47:31 +08:00
supported robot description:
* Unitree
* go2_description
* go1_description
* a1_description
* aliengo_description
* b2_description
* Xiaomi
* cyberdog_description
2024-11-06 20:07:48 +08:00
* DeepRobotics
* lite3_description
* x30_description
* Anybotics
* anymal_c_description
2024-10-18 11:47:31 +08:00
### 3.1 Mujoco Simulation
2024-11-06 20:07:48 +08:00
> **Warm Reminder**: You need to launch [Unitree Mujoco C++ Simulation](https://github.com/legubiao/unitree_mujoco) before launch the controller.
2024-10-18 11:47:31 +08:00
```bash
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_quadruped_controller mujoco.launch.py pkg_description:=go2_description
2024-11-06 20:07:48 +08:00
```
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).