OCS2_ROS2 is developed based on OCS2, it was refactored to be compatible with ROS2 and modern cmake.
Pinocchio 3 Dependency Optimization
- Upgraded to Pinocchio 3 version for better performance and stability
- Support for installing Pinocchio from ROS sources, avoiding complex third-party package management
Dual-Arm Mobile Manipulator Support
- Added Dual-Arm Mobile Manipulator functionality
- Enhanced interactive markers for better user operation experience
The IDE I used is CLion, you can follow the guide to set up the IDE.
- Intel Nuc X15 (i7-11800H):
- Ubuntu 22.04 ROS2 Humble (WSL2 included)
- Ubuntu 24.04 ROS2 Jazzy (WSL2 included)
- Lenovo P16v (i7-13800H):
- Ubuntu 24.04 ROS2 Jazzy
- Jetson Orin Nano
- Ubuntu 22.04 ROS2 Humble (JetPack 6.1)
The OCS2 library is written in C++17. It is tested under Ubuntu with library versions as provided in the package sources.
Tested system and ROS2 version:
- Ubuntu 24.04 ROS2 Jazzy
- Ubuntu 22.04 ROS2 Humble
- C++ compiler with C++17 support
- Eigen (v3.4)
- Boost C++ (v1.74)
Note: Latest version used pinocchio from ros source to simplified install steps. If you install pinocchio from robot-pkgs, you can uninstall it by
sudo apt remove robotpkg-*
- Create a new workspace or clone the project to your workspace
cd ~
mkdir -p ros2_ws/src- Clone the repository
cd ~/ros2_ws/src
git clone https://github.com/legubiao/ocs2_ros2
cd ocs2_ros2
git submodule update --init --recursive- rosdep
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -yThis section contains basic examples for the OCS2 library.
π― Click to expand Double Integrator example
- build
cd ~/ros2_ws
colcon build --packages-up-to ocs2_double_integrator_ros --symlink-install- run
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_double_integrator_ros double_integrator.launch.pydouble_interger.webm
3.2 Cartpole
π Click to expand Cartpole example
- build
cd ~/ros2_ws
colcon build --packages-up-to ocs2_cartpole_ros --symlink-install- run
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_cartpole_ros cartpole.launch.pycart.pole.webm
3.3 Ballbot
π Click to expand Ballbot example
- build
cd ~/ros2_ws
colcon build --packages-up-to ocs2_ballbot_ros --symlink-install- run
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_ballbot_ros ballbot_ddp.launch.pyballbot.webm
3.4 Quadrotor
π Click to expand Quadrotor example
- build
cd ~/ros2_ws
colcon build --packages-up-to ocs2_quadrotor_ros --symlink-install- run
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_quadrotor_ros quadrotor.launch.pyquadrotor.webm
π¦Ύ Click to expand Mobile Manipulator example
- build
cd ~/ros2_ws
colcon build --packages-up-to ocs2_mobile_manipulator_ros --symlink-install- run Mabi-Mobile
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_mobile_manipulator_ros manipulator_mabi_mobile.launch.pymabi-mobile.webm
- run Kinova Jaco2
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_mobile_manipulator_ros manipulator_kinova_j2n6.launch.py- run Franka Panda
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_mobile_manipulator_ros franka.launch.pyfranka.webm
- run Willow Garage PR2
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_mobile_manipulator_ros pr2.launch.pypr2.webm
- run Clearpath Ridgeback with UR-5
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_mobile_manipulator_ros manipulator_ridgeback_ur5.launch.py 3.6 Legged Robot
π Click to expand Legged Robot example
- build
cd ~/ros2_ws
colcon build --packages-up-to ocs2_legged_robot_ros --symlink-install- run
source ~/ros2_ws/install/setup.bash
ros2 launch ocs2_legged_robot_ros legged_robot_ddp.launch.pytrot.webm
4.3 MPC-Net
- quadruped ros2 controlοΌ Quadruped controller based on OCS2 ROS2
- arms ro2 control: Mobile manipulator controller based on OCS2 ROS2
- robot_descriptions: More robot configs for OCS2 ROS2




