Gepetto Logo

Pinocchio


Fast Forward Inverse Dynamic for Multibody Systems

Get started now ยป


Rigid multi-body dynamics in C++ and Python

Pinocchio is a C++ library for dynamic computations focusing on robotic, computer animation and biomechanical applications.
It is based on the dynamic multi-body computations formalized by Featherstone in his book.
The software comes with a python wrapping and vizualisation tool.

 

H2020 Memmo

Pinocchio is a central part of the H2020 project on the Memory of Motion. For further informations, please read the project homepage

2018-2021

logo memmo

logo robocom++

RoboCom++

Pinocchio includes work funded by the european RoboCom++ project. For further informations, please read the project homepage

2017-2020


ERC Leap

Pinocchio includes work funded by the ERC Starting Grant on the LEarning from our collective visual memory to Analyze its trends and Predict future events.

2014-2019

logo erc

logo erc

ERC Actanthrope

Pinocchio is a central part of the ERC Advanced Grant on the Computational Foundations of Anthropomorphic Action. For further informations, please read the project homepage

2014-2018


An ANR-Entracte software

Pinocchio is an integrated software for the national ANR project ENTRACTE. For further informations, please read the project homepage

2013-2017

logo entracte

Library features

The following algorithms are implemented.

  • Recursive Newton-Euler algorithm (RNEA, i.e inverse dynamics)
  • Composite Rigid Body algorithm (CRBA, i.e generalized inertia matrix)
  • Sparse Cholsky decomposition of the inertia matrix (for constrained forward-dynamics resolution)
  • Placement Jacobians (i.e application from configuration velocities to end-effector spatial velocities), along with computation of body placements, velocities and accelerations.
  • Center of mass and its Jacobian

    The model can be parsed from a URDF format. The following joint models are implemented.

  • Revolute X, Y, Z (optimized) and unaligned with Cartesian directions
  • Prismatic X, Y, Z
  • Sperical (quaternion representation)
  • Free (i.e. no constraint, for mobile robots like humanoids -- using quaternion representation for the rotation)

    Tutorials are proposed (see the corresponding item in the menu atop the page): generate your first humanoid walk in 20 hours of work, while discovering Python, the Pinocchio interface, inverse kinematics and LQR.

  •