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
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.
EGO-Planner is an ESDF-free gradient-based local planner designed for quadrotor navigation. It significantly reduces computation time compared to state-of-the-art methods by avoiding the computationally expensive Euclidean Signed Distance Field (ESDF) construction, enabling real-time performance with total planning times around 1ms. ## Key Features - **ESDF-Free Planning** — Eliminates the need to compute Euclidean Signed Distance Fields, drastically reducing computational overhead. - **Lightweight Gradient-Based Optimization** — Uses a gradient-based approach for efficient local trajectory generation. - **GPU/CPU Versatility** — Offers both GPU and CPU versions of its local sensing module for depth image generation or pointcloud processing. - **Fast Computation** — Achieves planning times of approximately 1ms, suitable for real-time drone control. - **Simulation-Ready** — Includes a lightweight quadrotor simulator and supports integration with sensors like Intel RealSense for hardware testing. ## Philosophy EGO-Planner prioritizes computational efficiency and real-time performance by removing the ESDF construction bottleneck, making advanced local planning accessible for resource-constrained aerial robotics applications.
CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.
The Open Motion Planning Library (OMPL)
Hybrid A* Path Planner for the KTH Research Concept Vehicle
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.