Simple-Robotics/aligator

A versatile and efficient C++ library for real-time constrained trajectory optimization

Aligator – Trajectory‑Optimization Library for Robotics


What it is

Aligator is an open‑source C++ library (with a Python API) that provides tools to formulate and solve optimal‑control / trajectory‑optimization problems for robots and other dynamic systems. It implements fast, constrained solvers such as ProxDDP and FeasibleDDP, and can be used for motion planning, model‑predictive control, and optimal state estimation.

Key capabilities

Capability Details
Modelling interface Build optimal‑control problems node‑by‑node in C++ (or via Python).
Solvers Proximal DDP (ProxDDP) and Feasible DDP, both handling constraints efficiently.
Linear‑algebra back‑ends Multiple factorisation routines for the linear systems that arise inside the solvers.
Rigid‑body dynamics support Direct integration with the Pinocchio library, including analytical derivatives.
Crocoddyl compatibility Can act as a front‑end to the Crocoddyl trajectory‑optimization library.
Python API Prototype formulations or run solvers from Python, useful for rapid experimentation and deployment.
Parallel / CPU optimisations OpenMP‑based parallelism and other CPU‑level tweaks (see the advanced‑user guide).

Typical use‑cases

  • Motion generation & planning for legged, humanoid, or manipulation robots.
  • Model‑Predictive Control (MPC) where a trajectory must be recomputed at high frequency.
  • Optimal state estimation (e.g., smoothing) where the same DDP machinery can be reused.
  • Research on new optimal‑control algorithms, thanks to a clean C++ API and Python bindings.

Getting started

  1. Install via Conda (recommended):
    conda install -c conda-forge aligator
    
  2. Or build from source using the lightweight package manager Pixi:
    pixi run test   # installs deps, configures, builds and runs tests
    
    Alternatively, clone the repo and compile with CMake/Ninja.
  3. Run examples – the repository ships C++ and Python example programs that show how to define a problem, create a solver, and retrieve the optimal trajectory.
  4. Advanced usage – consult the advanced‑user guide for CMake integration, creating Python extension modules, or enabling parallel execution.

Performance & benchmarking

A separate repository, aligator‑bench, contains comparative benchmarks against other solvers. The library is designed for real‑time use, leveraging OpenMP and efficient linear‑algebra back‑ends (Eigen, mimalloc, etc.).

Who maintains it

The core team is based at Inria and LAAS‑CNRS, with contributors from the Willow and Gepetto labs. The project is released under a permissive BSD‑2‑Clause license.

How to cite

If you use Aligator in research, cite the repository itself and, for the ProxDDP algorithm, the IEEE T‑Robotics paper (2025) listed in the README.


Bottom line: Aligator is a genuine, production‑grade trajectory‑optimization library aimed at robotics researchers and engineers who need fast, constrained optimal‑control solvers with both C++ performance and Python convenience.

Related

  • Project
  • Project
  • Project
  • Project
  • Project