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, available
separately in the py-pinocchio package.

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)

Homepage:
http://stack-of-tasks.github.io/pinocchio/
