loco-3d/crocoddyl

Crocoddyl is an optimal control library for robot control under contact sequence. Its solver is based on various efficient Differential Dynamic Programming (DDP)-like algorithms

What it solves

Crocoddyl is an optimal control library designed for robot control under contact sequences. It allows developers to compute optimal trajectories and feedback gains for robots, particularly those dealing with complex interactions with their environment (multi-contact).

How it works

The library implements efficient Differential Dynamic Programming (DDP) algorithms. It leverages the Pinocchio library for fast computation of robot dynamics and analytical derivatives, and supports differential geometry. It provides a variety of solvers (such as FDDP, OdynSQP, Intro, and Ipopt) and supports multiple integrators, costs, and constraints.

Who it’s for

It is intended for robotics researchers and engineers who need high-performance optimal control and trajectory optimization for robotic systems.

Highlights

  • Versatile Solvers: Includes various optimal control solvers like FDDP, OdynSQP, and Intro.
  • High Performance: Cache-friendly design with multi-threading support via OpenMP.
  • Flexible Integration: Python bindings via Boost Python and C++ compliance (C++11 through C++20).
  • Advanced Math Support: Supports analytical and sparse derivatives, numerical differentiation, and automatic differentiation via CppAD.
  • Code Generation: Capable of generating code in both C++ and Python via CppADCodeGen.

Related

  • Project
  • Project
  • Project
  • Project
  • Project