A fast and flexible C++ library implementing state-of-the-art Rigid Body Dynamics algorithms and their analytical derivatives.
Pinocchio is a C++ library that provides fast and flexible implementations of Rigid Body Dynamics algorithms and their analytical derivatives. It solves the problem of efficiently computing kinematics, dynamics, and their derivatives for poly-articulated systems, which is essential for robotics simulation, control, and motion planning.
Robotics researchers, engineers, and developers working on simulation, control, motion planning, or biomechanics who need high-performance rigid body dynamics computations.
Developers choose Pinocchio for its state-of-the-art algorithms, excellent performance due to sparsity exploitation and compile-time optimizations, and comprehensive support for analytical derivatives, which are critical for optimization and control tasks.
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses C++ templates and sparsity exploitation to achieve state-of-the-art speeds, as demonstrated in performance benchmarks on standard hardware.
Implements forward/inverse dynamics, centroidal dynamics, and supports closed-loop mechanisms with URDF, SDF, MJCF, and SRDF formats.
Provides exact derivatives for key algorithms like the Recursive Newton-Euler Algorithm, critical for optimization-based control and motion planning.
Header-only design with support for custom scalar types, multi-threading, and integration with automatic differentiation frameworks like CppAD and CasADi.
Python bindings primarily rely on Conda; pip installation is limited to Linux, making setup tricky for Windows or macOS users without Conda.
Assumes proficiency in modern C++ and rigid body dynamics mathematics, with documentation that can be dense for newcomers.
Requires integration with external viewers like Gepetto or Meshcat, adding extra steps for simulation and debugging workflows.