kinematics_interface_pinocchio
Pinocchio-based implementation of ros2_control kinematics interface
Links
README
kinematics_interface_pinocchio
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.
Overview
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.
Installation
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).
Build Status
Usage
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>
TODO
[x] Replicate KDL implementations and capabilities with Pinocchio
[x] 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
License
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.
Contributions welcome!