Pinnocchio 3.9.0

Pinocchio 3.9.0: Mimic Joint Maturity, Extended CasADi Bindings, and Parser Robustness

Pinocchio 3.9.0 marks a meaningful step forward in the library’s support for articulated systems with coupled joints, symbolic differentiation workflows, and multi-format model parsing.

The centrepiece of this release is the maturation of mimic joint support. URDF parsing gains a new option to handle mimic fields — disabled by default to preserve backward compatibility — while new utility functions allow mimic-based kinematic trees to be constructed programmatically. Dedicated helpers expose mimicked joint configuration and velocity from their mimicking counterparts, and precomputed data members accelerate algorithm execution across mimic-enabled models. A targeted correctness fix ensures configuration limit queries on mimic joints return the expected result rather than delegating to the mimicking joint.

On the symbolic computation front, the release extends CasADi coverage to constrained dynamics: explicit template instantiations are now available for CasADi, CppAD, and CppADCodeGen scalars across constraint algorithms, alongside new Python bindings for initialising and solving constrained dynamics. CasADi link target normalisation across versions rounds out this area of improvement.

Parser and visualizer reliability also benefit from several focused fixes: MJCF parsing now correctly handles sites attached to fixed bodies, the Viser visualizer resolves DAE file loading, and the Panda3D visualizer gains image capture support for video recording. Build hygiene is improved by suppressing COAL and HPP-FCL warnings during compilation and by allowing the use of a system-installed example robot data package.

Taken together, these additions deepen Pinocchio’s suitability for humanoid and dexterous manipulation platforms — where mimic joints are ubiquitous — while extending the reach of its symbolic differentiation stack into constrained dynamics regimes.