A Pinocchio-based ROS 2 Kinematics Interface plugin. This can serve as a drop-in replacement for the default KDL plugin in ROS 2, offering a different backend for forward and inverse kinematics.
Requires pinocchio to be installed: apt install ros-rolling-pinocchio.
This package provides:
- A Pinocchio-based implementation of the
kinematics_interfacefor ROS 2. - The same plugin interface as the default KDL plugin (
kinematics_interface_kdl). - A path to potentially better performance (to be benchmarked) and additional features enabled by Pinocchio.
You can install this package directly from your ROS 2 distribution’s repositories:
sudo apt-get update
sudo apt-get install ros-${ROS_DISTRO}-kinematics-interface-pinocchioAlternatively, you can clone this repository into your ROS workspace and build from source (requires pinocchio to be installed/built).
| ROS Distro | Build Status |
|---|---|
| Humble | |
| Jazzy | |
| Rolling |
To use this plugin in place of the default KDL plugin:
- Update your ROS 2 package dependencies to include
kinematics_interface_pinocchio. - In your configuration or launch files, specify the Pinocchio plugin shared library instead of
kinematics_interface_kdl.
An example snippet:
<!-- Example usage in a ROS 2 controller configuration -->
<plugin>kinematics_interface_pinocchio/KinematicsInterfacePinocchio</plugin>- Replicate KDL implementations and capabilities with Pinocchio
- Package as a ROS 2 plugin usable in place of
kinematics_interface_kdl - Benchmark and compare performance
- Allow arbitrary frames to be used as base (currently uses the model’s root joint)
- Add support for floating-base robots
- Add support for continuous joints and other composite joints supported by Pinocchio
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.
Contributions welcome!