# Crocoddyl

An optimal control library for robots under contact sequences, using differential dynamic programming solvers to compute optimal trajectories and feedback gains.

Crocoddyl is an optimal control library for robot control under contact sequences. Its solvers are built on differential dynamic programming algorithms, including FDDP, OdynSQP, Intro and Ipopt, and it uses the Pinocchio library for fast computation of robot dynamics and analytical derivatives as well as differential geometry support.

It supports numerical differentiation and, through CppAD, automatic differentiation, and it can generate code in both C++ and Python via CppADCoGen. Python bindings are provided through Boost Python, and the library is cache friendly with multi-threading support through OpenMP.

Crocoddyl builds on Linux and Unix-like systems including macOS and BSD, and can be installed through the ArchLinux AUR, conda-forge, Nix, pip, or within a ROS catkin workspace. It is written in C++ and released under the BSD-3-Clause license.

Website: https://github.com/loco-3d/crocoddyl
