Manipulation in ROS2 (2025): What’s everyone using these days?

This is an incomplete answer very much biased towards my experience, and am looking forward to others’ answers.


On the classical side, I’ve personally turned towards using Pinocchio which is an amazing tool for robot modeling, kinematics/dynamics, and collision checking with its sister library Coal. It is a C++ library that has a ROS-free core with proper Python bindings which makes it a delight to prototype/debug while still being performant.

However, it is a library and not a framework (like MoveIt, Tesseract, and Drake), meaning you have to implement your own IK solvers, motion planners, controllers, ROS integration, etc. yourself… or find other tools based on Pinocchio that others have built, which do exist.

(By the way, MuJoCo also offers similar functionality even though it’s mostly known as just a simulator).

Many state-of-the-art tools for online planning and control – think Model Predictive Control (MPC) are based on these libraries. Some examples include mujoco_mpc, OCS2, and Crocoddyl.


On the learning side, HuggingFace’s LeRobot is probably the best tool for imitation learning. They have some low-cost manipulators with associated tutorials; however, they are not primarily using ROS though many people are doing their own connections. (If anyone is thinking of submitting a ROSCon talk this year, this would be a great topic)

I’m not as well-versed in the reinforcement learning side of manipulation. But I also think this doesn’t really have its own tools to highlight because most RL policies these days just output small “deltas” in joint angles or pose, which you can pipe directly to something like a ROS 2 controller without the need for a motion planning framework.

… unless you start needing things like collision avoidance, joint limits adherence, smooth blending, etc. You can also make a learning-based policy itself a ROS 2 controller with tools like the ONNX Runtime for C++. (Another hint for submitting a ROSCon talk, anyone?)


I recently put together some slides on the role of ROS for learning in the context of manipulation policies, and it may be useful to share them more broadly here: ML + ROS 2 - Google Slides

11 Likes