aligator
A versatile and efficient C++ library for real-time constrained trajectory optimization
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 7 DOI reference(s) in README -
○Academic publication links
-
✓Committers with academic emails
8 of 20 committers (40.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.2%) to scientific vocabulary
Keywords from Contributors
Repository
A versatile and efficient C++ library for real-time constrained trajectory optimization
Basic Info
- Host: GitHub
- Owner: Simple-Robotics
- License: bsd-2-clause
- Language: C++
- Default Branch: main
- Homepage: https://simple-robotics.github.io/aligator/
- Size: 5.24 MB
Statistics
- Stars: 245
- Watchers: 9
- Forks: 29
- Open Issues: 14
- Releases: 16
Metadata Files
README.md
Aligator
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 robotic 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.
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.
bash
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:
bash
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
bash
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
- (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)
- a C++17 compliant compiler
Python dependencies
Notes on building
- For developers, add the
-DCMAKE_EXPORT_COMPILE_COMMANDS=1when 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
doublescalar type. - To build against a Conda environment, activate the environment and run
export CMAKE_PREFIX_PATH=$CONDA_PREFIXbefore running CMake and use$CONDA_PREFIXas 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 developer's guide.
Benchmarking
The repo aligator-bench provides a comparison of aligator against other solvers.
For developer info on benchmarking, see doc/developers-guide.md.
Citing Aligator
To cite Aligator in your academic research, please use the following bibtex entry:
bibtex
@misc{aligatorweb,
author = {Jallet, Wilson and Bambade, Antoine and El Kazdadi, Sarah and Justin, Carpentier and Nicolas, Mansard},
title = {aligator},
url = {https://github.com/Simple-Robotics/aligator}
}
Please also consider citing the reference paper for the ProxDDP algorithm:
bibtex
@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}
}
Contributors
- Antoine Bambade (Inria): mathematics and algorithms developer
- Justin Carpentier (Inria): project instructor
- Wilson Jallet (LAAS-CNRS/Inria): main developer and manager of the project
- Sarah Kazdadi: linear algebra czar
- Quentin Le Lidec (Inria): feature developer
- Joris Vaillant (Inria): core developer
- Nicolas Mansard (LAAS-CNRS): project coordinator
- Guilhem Saurel (LAAS-CNRS): core maintainer
- Fabian Schramm (Inria): core developer
- Ludovic De Matteïs (LAAS-CNRS/Inria): feature developer
- Ewen Dantec (Inria): feature developer
- Antoine Bussy (Aldebaran)
- Valentin Tordjman--Levavasseur (Inria): feature developper
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
Owner
- Name: SimpleRobotics
- Login: Simple-Robotics
- Kind: organization
- Repositories: 5
- Profile: https://github.com/Simple-Robotics
Open Source Software for Efficient, Frugal and Reliable Robotics
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: aligator, a versatile and efficient framework for constrained trajectory optimization
message: 'If you use this software, please cite it as below.'
type: software
authors:
- given-names: Wilson
family-names: Jallet
email: wilson.jallet@polytechnique.org
orcid: 'https://orcid.org/0000-0001-8222-2739'
affiliation: INRIA
- given-names: Ewen
family-names: Dantec
email: ewen.dantec@inria.fr
affiliation: INRIA
orcid: 'https://orcid.org/0000-0001-7059-894X'
- given-names: Antoine
family-names: Bambade
affiliation: INRIA
email: antoine.bambade@inria.fr
- given-names: Sarah
family-names: El Kazdadi
email: sarahelkazdadi@gmail.com
- given-names: Justin
family-names: Carpentier
email: justin.carpentier@inria.fr
affiliation: INRIA
orcid: 'https://orcid.org/0000-0001-6585-2894'
- given-names: Nicolas
family-names: Mansard
email: nmansard@laas.fr
affiliation: LAAS-CNRS
orcid: 'https://orcid.org/0000-0002-8090-0601'
repository-code: 'https://github.com/Simple-Robotics/aligator'
version: 0.15.0
date-released: "2025-05-23"
license: BSD-2-Clause
GitHub Events
Total
- Create event: 52
- Release event: 7
- Issues event: 27
- Watch event: 117
- Delete event: 46
- Issue comment event: 108
- Push event: 616
- Pull request review comment event: 47
- Pull request review event: 76
- Pull request event: 114
- Fork event: 16
Last Year
- Create event: 52
- Release event: 7
- Issues event: 27
- Watch event: 117
- Delete event: 46
- Issue comment event: 108
- Push event: 616
- Pull request review comment event: 47
- Pull request review event: 76
- Pull request event: 114
- Fork event: 16
Committers
Last synced: 10 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| ManifoldFR | w****t@p****g | 2,691 |
| Ewen Dantec | e****c@p****r | 97 |
| Joris Vaillant | j****t@i****r | 90 |
| quentinldc | q****c@i****r | 56 |
| fabinsch | f****m@g****m | 34 |
| Ewen Dantec | e****c@i****r | 28 |
| pre-commit-ci[bot] | 6****] | 25 |
| Guilhem Saurel | g****l@l****r | 10 |
| Ludovic De Matteis | l****s@l****r | 10 |
| Stéphane Caron | s****n@n****g | 8 |
| Antoine Bussy | a****y@a****m | 8 |
| Justin Carpentier | j****r@i****r | 3 |
| nmansard | n****d@l****r | 3 |
| kzorina | e****5@g****m | 3 |
| earlaud | e****d@i****r | 2 |
| Bruce Wingo | w****7@g****m | 1 |
| EtienneAr | e****d@g****m | 1 |
| Mathis SCHEFFLER | 9****h | 1 |
| SCHRAMM Fabian | f****m@i****r | 1 |
| update-pixi-lockfile[bot] | 1****] | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 92
- Total pull requests: 233
- Average time to close issues: about 2 months
- Average time to close pull requests: 6 days
- Total issue authors: 19
- Total pull request authors: 17
- Average comments per issue: 1.39
- Average comments per pull request: 1.15
- Merged pull requests: 198
- Bot issues: 0
- Bot pull requests: 34
Past Year
- Issues: 31
- Pull requests: 132
- Average time to close issues: 7 days
- Average time to close pull requests: 5 days
- Issue authors: 10
- Pull request authors: 13
- Average comments per issue: 1.35
- Average comments per pull request: 1.02
- Merged pull requests: 110
- Bot issues: 0
- Bot pull requests: 20
Top Authors
Issue Authors
- ManifoldFR (43)
- edantec (11)
- stephane-caron (8)
- quentinll (6)
- fabinsch (4)
- Zionshang (4)
- jorisv (4)
- LudovicDeMatteis (2)
- Cfather (2)
- TheotimeLH (1)
- oumayb (1)
- costashatz (1)
- oomcth (1)
- beamiter (1)
- lbt0116 (1)
Pull Request Authors
- ManifoldFR (151)
- pre-commit-ci[bot] (35)
- jorisv (30)
- edantec (22)
- update-pixi-lockfile[bot] (15)
- fabinsch (14)
- abussy-aldebaran (12)
- stephane-caron (5)
- quentinll (4)
- LudovicDeMatteis (4)
- kzorina (2)
- nim65s (2)
- oomcth (2)
- Tordjx (2)
- EtienneAr (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- tarides/changelog-check-action v2 composite
- actions/checkout v3 composite
- actions/setup-python v3 composite
- pre-commit/action v3.0.0 composite
- actions/cache v3 composite
- actions/checkout v4 composite
- conda-incubator/setup-miniconda v3 composite
- re-actors/alls-green release/v1 composite
- actions/checkout v4 composite
- conda-incubator/setup-miniconda v3 composite
- re-actors/alls-green release/v1 composite
- numpy *