Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| tsid | |
| kinematics_interface_pinocchio |
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| tsid | |
| kinematics_interface_pinocchio |
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| tsid | |
| kinematics_interface_pinocchio |
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| exotica_pinocchio_dynamics_solver |
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pinocchio at Robotics Stack Exchange
Package Summary
| Version | 3.8.0 |
| License | BSD-2-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/stack-of-tasks/pinocchio.git |
| VCS Type | git |
| VCS Version | devel |
| Last Updated | 2025-10-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
- Guilhem Saurel
Authors
Pinocchio instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone’s algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms, such as the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm.
Pinocchio was first tailored for robotics applications, but it can be used in other contexts (biomechanics, computer graphics, vision, etc.). It is built upon Eigen for linear algebra and FCL for collision detection. Pinocchio comes with a Python interface for fast code prototyping, directly accessible through Conda.
Pinocchio is now at the heart of various robotics software as Crocoddyl, an open-source and efficient Differential Dynamic Programming solver for robotics, the Stack-of-Tasks, an open-source and versatile hierarchical controller framework or the Humanoid Path Planner, open-source software for Motion and Manipulation Planning.
If you want to learn more about Pinocchio internal behaviors and main features, we invite you to read the related paper and the online documentation.
If you want to dive into Pinocchio directly, only one single line is sufficient (assuming you have Conda):
conda install pinocchio -c conda-forge
or via pip (currently only available on Linux):
pip install pin
Table of contents
- Table of contents
- Pinocchio main features
- Documentation
- Examples
- Tutorials
- Pinocchio continuous integrations
- Performances
- Ongoing developments
- Installation
- Visualization
- Citing Pinocchio
- Questions and Issues
- Core-dev team
- Credits
- Open-source projects relying on Pinocchio
- Acknowledgments
Pinocchio main features
Pinocchio is fast:
- C++ template library,
- cache friendly,
- support custom scalar type.
Pinocchio is versatile, implementing basic and more advanced rigid body dynamics algorithms:
- forward kinematics and its analytical derivatives,
- forward/inverse dynamics and their analytical derivatives,
- centroidal dynamics and its analytical derivatives,
- computations of kinematic and dynamic regressors for system identification and more,
- full support of closed-loop mechanisms,
- state-of-the-art frictional contact solvers,
- low-complexity constrained articulated body algorithms,
- sparse constrained dynamics and its analytical derivatives,
- full support of multiple-precision floating-point (MPFR) in Python and C++,
- support of modern and open-source Automatic Differentiation frameworks like CppAD or CasADi,
- automatic code generation support is available via CppADCodeGen.
Pinocchio can support description formats:
- URDF format,
- SDF format,
- MJCF format,
- SRDF format,
- programmatically.
Pinocchio is flexible:
- header only,
- template instantiation,
- C++ 11/14/17/20/23 compliant.
Pinocchio is extensible.
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
Change that doesn’t affect end user should not be listed:
- CI change
- Github specific file change
The format is based on Keep a Changelog.
[Unreleased]
- Homogenize python viewers examples (#2771)
- Add docker images (#2776)
- ROS: added jrl_cmakemodules dependency (#2789)
- Removed CMake < 3.22 details (#2790)
- Python : add overload of
BaseVisualizer::play()toVisualizerPythonVisitor(#2796)
Added
- Add names to joints that are inside a composite joint (#2786)
[3.8.0] - 2025-09-17
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(…) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
[3.7.0] - 2025-05-21
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
[3.6.0] - 2025-04-28
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
[3.5.0] - 2025-04-02
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)-
nvExtendedto get the DoF of the extended model -
idx_vExtendedto get the joint index in the extended vector of velocity -
jointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrix
-
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| jrl_cmakemodules | |
| ros_environment | |
| urdfdom | |
| eigenpy | |
| hpp-fcl |