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.
This package provides:
- A Pinocchio-based implementation of the
kinematics_interface
for 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-pinocchio
Alternatively, 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!