GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Simple-Robotics/aligator: A versatile and efficient C++ library for real-time constrained trajectory optimization

BranchesTags
Open more actions menu

Latest commit

 

History

3,833 Commits
3,833 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
bench
bench
 
 
bindings
bindings
 
 
cmake @ 76fb4cc
cmake @ 76fb4cc
 
 
development
development
 
 
doc
doc
 
 
examples
examples
 
 
include/aligator
include/aligator
 
 
src
src
 
 
tests
tests
 
 
.clang-format
.clang-format
 
 
.gersemirc
.gersemirc
 
 
.git-blame-ignore-revs
.git-blame-ignore-revs
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CITATION.cff
CITATION.cff
 
 
CITATIONS.bib
CITATIONS.bib
 
 
CMakeLists.txt
CMakeLists.txt
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
extra-python-macros.cmake
extra-python-macros.cmake
 
 
flake.lock
flake.lock
 
 
flake.nix
flake.nix
 
 
package.xml
package.xml
 
 
pixi.lock
pixi.lock
 
 
pixi.toml
pixi.toml
 
 
pyproject.toml
pyproject.toml
 
 

Repository files navigation

Aligator

Documentation Conda Version Ask DeepWiki License

Aligator is an efficient and versatile trajectory optimization library for robotics and beyond.

It can be used for motion generation and planning, optimal estimation, deployment of model-predictive control on complex systems, and much more.

Developing advanced, open-source, and versatile robotics software such as aligator takes time and energy while requiring a lot of engineering support. In recognition of our commitment, we would be grateful if you would quote our papers and software in your publications, software, and research articles. Please refer to the Citation section for further details.

Table of contents

  • Aligator
    • Features
    • Installation
      • From Conda
      • From source with Pixi
      • Build from source
        • Dependencies
        • Python dependencies
      • Notes on building
    • Usage
      • Aligator parallel & CPU optimizations
    • Benchmarking
    • Citing aligator
    • Contribution
    • Core-dev team
    • Credits
    • Acknowledgments
    • Associated scientific and technical publications

Features

Aligator is a C++ library, which provides

  • a modelling interface for optimal control problems, node-per-node
  • a set of efficient solvers for constrained trajectory optimization
  • multiple routines for factorization of linear problems arising in numerical OC
  • support for the pinocchio rigid-body dynamics library and its analytical derivatives
  • an interface to the Crocoddyl trajectory optimization library which can be used as an alternative frontend
  • a Python API which can be used for prototyping formulations or even deployment.

Aligator provides efficient implementations of the following algorithms for (constrained) trajectory optimization:

  • ProxDDP: Proximal Differential Dynamic Programming, detailed in this paper
  • FeasibleDDP: Feasible Differential Dynamic Programming, detailed in this paper

Installation

From Conda

From either conda-forge or our channel.

conda install -c conda-forge aligator

From source with Pixi

To build aligator from source the easiest way is to use Pixi.

Pixi is a cross-platform package management tool for developers that will install all required dependencies in .pixi directory. It's used by our CI agent so you have the guarantee to get the right dependencies.

Run the following command to install dependencies, configure, build and test the project:

pixi run test

The project will be built in the build directory. You can run pixi shell and build the project with cmake and ninja manually.

Build from source

git clone https://github.com/Simple-Robotics/aligator --recursive
cmake -DCMAKE_INSTALL_PREFIX=your_install_folder -S . -B build/ && cd build/
cmake --build . -jNCPUS

Dependencies

  • Eigen3 >= 3.3.7
  • Boost >= 1.71.0
  • OpenMP
  • fmtlib >= 10.0.0 | conda
  • mimalloc >= 2.1.0 | conda
  • (optional) eigenpy>=3.9.0 | conda (Python bindings)
  • (optional) Pinocchio | conda
  • (optional) Crocoddyl | conda
  • (optional) example-robot-data | conda (required for some examples and benchmarks)
  • (optional) Catch2 | conda for testing

Python dependencies

  • typed-argument-parser
  • matplotlib

Notes on building

  • For developers, add the -DCMAKE_EXPORT_COMPILE_COMMANDS=1 when working with language servers e.g. clangd.
  • To use the Crocoddyl interface, add -DBUILD_CROCODDYL_COMPAT=ON
  • By default, building the library will instantiate the templates for the double scalar type.
  • To build against a Conda environment, activate the environment and run export CMAKE_PREFIX_PATH=$CONDA_PREFIX before running CMake and use $CONDA_PREFIX as your install folder.

Usage

aligator can be used in both C++ (with CMake to create builds) and Python.

Users can refer to examples in either language to see how to build a trajectory optimization problem, create a solver instance (with parameters), and solve their problem.

For how to use aligator in CMake, including creation of a Python extension module in C++, please refer to the advanced user's guide.

Aligator parallel & CPU optimizations

Please see the advanced user's guide

Benchmarking

The repo aligator-bench provides a comparison of aligator against other solvers.

For developer info on benchmarking, see doc/advanced-user-guide.md.

Citing aligator

To cite aligator in your academic research, please use the following bibtex entry:

@misc{aligatorweb,
  author = {Jallet, Wilson and Bambade, Antoine and El Kazdadi, Sarah and Carpentier, Justin and Mansard, Nicolas},
  title = {aligator},
  url = {https://github.com/Simple-Robotics/aligator}
}

Please also consider citing the reference paper for the ProxDDP algorithm:

@article{jalletPROXDDPProximalConstrained2025,
  title = {PROXDDP: Proximal Constrained Trajectory Optimization},
  shorttitle = {PROXDDP},
  author = {Jallet, Wilson and Bambade, Antoine and Arlaud, Etienne and {El-Kazdadi}, Sarah and Mansard, Nicolas and Carpentier, Justin},
  year = {2025},
  month = mar,
  journal = {IEEE Transactions on Robotics},
  volume = {41},
  pages = {2605--2624},
  issn = {1941-0468},
  doi = {10.1109/TRO.2025.3554437},
  urldate = {2025-04-04}
}

Contribution

If you want to ask a question, report a bug, request a new feature or contributing with a pull requests please, follow the contribution guideline.

Core-dev team

The currently active core developers of Aligator are:

  • Justin Carpentier (Inria): project instructor
  • Guilhem Saurel (LAAS-CNRS): core maintainer
  • Sarah Kazdadi (Inria): linear algebra czar
  • Fabian Schramm (Inria): core developer
  • Joris Vaillant (Inria): core developer
  • Jeanne Matheron (Inria): core developer
  • Louise Manson (Inria): documentation

Credits

In addition to the core dev team, the following people have also been involved in the development of Aligator and are warmly thanked for their contributions:

  • Antoine Bambade (Inria): mathematics and algorithms developer
  • Wilson Jallet (Inria): project lead and principal developer
  • Quentin Le Lidec (Inria): feature developer
  • Nicolas Mansard (LAAS-CNRS): project coordinator
  • Ludovic De Matteïs (LAAS-CNRS): feature developer
  • Ewen Dantec (Inria): feature developer
  • Antoine Bussy (Aldebaran)
  • Valentin Tordjman--Levavasseur (Inria): feature developer

If you have participated in the development of Aligator, please add your name and contribution to this list.

Acknowledgments

The development of Aligator is actively supported by the Willow team @INRIA and the Gepetto team @LAAS-CNRS.

Associated scientific and technical publications

  • E. Ménager, A. Bilger, W. Jallet, J. Carpentier, and C. Duriez, ‘Condensed semi-implicit dynamics for trajectory optimization in soft robotics’, in IEEE International Conference on Soft Robotics (RoboSoft), San Diego (CA), United States: IEEE, Apr. 2024. doi: 10.1109/RoboSoft60065.2024.10521997.
  • W. Jallet, N. Mansard, and J. Carpentier, ‘Implicit Differential Dynamic Programming’, in 2022 International Conference on Robotics and Automation (ICRA), Philadelphia, United States: IEEE Robotics and Automation Society, May 2022. doi: 10.1109/ICRA46639.2022.9811647.
  • W. Jallet, A. Bambade, N. Mansard, and J. Carpentier, ‘Constrained Differential Dynamic Programming: A primal-dual augmented Lagrangian approach’, in 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems, Kyoto, Japan, Oct. 2022. doi: 10.1109/IROS47612.2022.9981586.
  • W. Jallet, A. Bambade, N. Mansard, and J. Carpentier, ‘ProxNLP: a primal-dual augmented Lagrangian solver for nonlinear programming in Robotics and beyond’, in 6th Legged Robots Workshop, Philadelphia, Pennsylvania, United States, May 2022. Accessed: Oct. 10, 2022. [Online]. Available: https://hal.archives-ouvertes.fr/hal-03680510
  • W. Jallet, A. Bambade, E. Arlaud, S. El-Kazdadi, N. Mansard, and J. Carpentier, ‘PROXDDP: Proximal Constrained Trajectory Optimization’, IEEE Transactions on Robotics, vol. 41, pp. 2605–2624, Mar. 2025, doi: 10.1109/TRO.2025.3554437.
  • S. Kazdadi, J. Carpentier, and J. Ponce, ‘Equality Constrained Differential Dynamic Programming’, presented at the ICRA 2021 - IEEE International Conference on Robotics and Automation, May 2021. Accessed: Sep. 07, 2021. [Online]. Available: https://hal.inria.fr/hal-03184203
  • A. Bambade, S. El-Kazdadi, A. Taylor, and J. Carpentier, ‘PROX-QP: Yet another Quadratic Programming Solver for Robotics and beyond’, in Robotics: Science and Systems XVIII, Robotics: Science and Systems Foundation, Jun. 2022. doi: 10.15607/RSS.2022.XVIII.040.
  • W. Jallet, E. Dantec, E. Arlaud, N. Mansard, and J. Carpentier, ‘Parallel and Proximal Constrained Linear-Quadratic Methods for Real-Time Nonlinear MPC’, in Proceedings of Robotics: Science and Systems, Delft, Netherlands, Jul. 2024. doi: 10.15607/RSS.2024.XX.002.
  • E. Dantec, W. Jallet, and J. Carpentier, ‘From centroidal to whole-body models for legged locomotion: a comparative analysis’, presented at the 2024 IEEE-RAS International Conference on Humanoid Robots, Nancy, France: IEEE, Jul. 2024. [Online]. Available: https://inria.hal.science/hal-04647996

About

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

simple-robotics.github.io/aligator/

Resources

Readme
BSD-2-Clause license

Code of conduct

Code of conduct

Contributing

Contributing
Activity
Custom properties

Stars

344 stars

Watchers

8 watching

Forks

53 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.