Implementation of efficient numerical optimal control solvers. In particular, the Sequential Quadratic Programming (SQP) solver described in this paper solves nonlinear constrained OCPs efficiently by leveraging sparsity.
All the solvers are implemented based on the API of Crocoddyl (v2).
In other words, our solvers take as input a crocoddyl.ShootingProblem
.
Examples on how to use the solvers can be found in the examples
directory.
- Pinocchio (rigid-body dynamics computations)
- Crocoddyl (optimal control library)
- ProxSuite (quadratic programming) (optional)
conda install mim-solvers --channel conda-forge
git clone --recursive https://github.com/machines-in-motion/mim_solvers.git
cd mim_solvers && mkdir build && cd build
cmake .. [-DCMAKE_BUILD_TYPE=Release] [-DCMAKE_INSTALL_PREFIX=...]
make [-j6] && make install
You can also run unittests using ctest
and benchmarks using ./benchmarks/ur5
or ./benchmarks/solo12
from the build directory.
- Armand Jordana (NYU): main developer and manager of the project
- Sébastien Kleff (NYU): main developer and manager of the project
- Avadesh Meduri (NYU): main developer and manager of the project
- Ludovic Righetti (NYU): project instructor
- Justin Carpentier (INRIA): project instructor
- Nicolas Mansard (LAAS-CNRS): project instructor
- Yann de Mont-Marin (INRIA): Conda integration and support
- Louis Montaut (INRIA): CMake support
- Guilhem Saurel (LAAS-CNRS): CMake & pip packaging support
- Jianghan ZHang (NYU): features extension