Repolode
stack-of-tasks

stack-of-tasks/pinocchio

A fast, header-only C++ library with Python bindings for rigid body dynamics, kinematics and their analytical derivatives, used in robotics.

Stars
3,853
Forks
591
Open issues
104
Last commit
yesterday

What is it?

Pinocchio is a C++ library for rigid body dynamics of poly-articulated systems such as robot arms and humanoids. It implements forward and inverse kinematics and dynamics, centroidal dynamics, and the analytical derivatives of these algorithms, which are useful for gradient-based optimization, control and learning. It is built on Eigen for linear algebra and coal for collision detection, and it parses robot descriptions in URDF, SDF, MJCF and SRDF formats.

The library is header-only and implemented as a C++ template library, and it ships a Python interface that can be installed with Conda or pip. It also supports closed-loop mechanisms, frictional contact solvers, constrained dynamics, and multiple-precision arithmetic via MPFR. Automatic differentiation is available through CppAD and CasADi.

Pinocchio is developed by the Willow team at Inria and is used as a base by projects such as Crocoddyl, Aligator and the Humanoid Path Planner. It was designed for robotics but can also be applied in biomechanics, computer graphics and vision.

Key features

  • 01Forward and inverse dynamics with analytical derivatives
  • 02Centroidal dynamics and kinematic and dynamic regressors
  • 03Closed-loop mechanism and frictional contact solvers
  • 04Parses URDF, SDF, MJCF and SRDF robot descriptions
  • 05Python bindings installable via Conda or pip
  • 06Header-only C++ template library with Eigen and coal

Use cases

  • Computing dynamics and gradients for robot control and trajectory optimization
  • Prototyping robot algorithms in Python before moving to C++
  • System identification using kinematic and dynamic regressors
  • Building motion planning or whole-body control tools on top of a rigid body dynamics core

Quick start

  1. 1

    Install Pinocchio via Conda from conda-forge

    conda install pinocchio -c conda-forge
  2. 2

    Or install the Python bindings via pip (Linux only)

    pip install pin
  3. 3

    Or run the Docker image

    docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel

Things to know

  • The pip package is currently only available on Linux.
  • The devel branch only contains the latest release and receives new pull requests, so it may change frequently.

In collections

Topics

#robotics#rigid-body-dynamics#kinematics#c-plus-plus#python#automatic-differentiation#urdf#optimization#analytical-derivatives#casadi

FAQ

What is pinocchio?
A fast, header-only C++ library with Python bindings for rigid body dynamics, kinematics and their analytical derivatives, used in robotics. Pinocchio is a C++ library for rigid body dynamics of poly-articulated systems such as robot arms and humanoids. It implements forward and inverse kinematics and dynamics, centroidal dynamics, and the analytical derivatives of these algorithms, which are useful for gradient-based optimization, control and learning. It is built on Eigen for linear algebra and coal for collision detection, and it parses robot descriptions in URDF, SDF, MJCF and SRDF formats.
Is pinocchio free to use? What license does it have?
pinocchio is open source under the BSD-2-Clause license. Check the license terms before using it in commercial products.
Is pinocchio still maintained?
Actively maintained. The last commit to pinocchio was on Nov 6, 2026.
What can I use pinocchio for?
Computing dynamics and gradients for robot control and trajectory optimization Prototyping robot algorithms in Python before moving to C++ System identification using kinematic and dynamic regressors Building motion planning or whole-body control tools on top of a rigid body dynamics core
How do I install pinocchio?
Install Pinocchio via Conda from conda-forge: conda install pinocchio -c conda-forge Or install the Python bindings via pip (Linux only): pip install pin Or run the Docker image: docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
Where can I get pinocchio?
The source code and installation instructions are on GitHub: https://github.com/stack-of-tasks/pinocchio

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects