Metadata-Version: 2.1
Name: cmeel-mim-solvers
Version: 0.0.1
Summary: A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Requires-Python: >=3.8
License-Expression: BSD-3-Clause
License-File: LICENSE
Home-page: https://github.com/cmake-wheel/mim_solvers
Project-URL: Upstream, https://github.com/machines-in-motion/mim_solvers
Requires-Dist: cmeel
Requires-Dist: crocoddyl
Requires-Dist: proxsuite
Requires-Dist: cmeel-boost ~= 1.83.0
Provides-Extra: build
Requires-Dist: crocoddyl[build] ; extra == "build"
Requires-Dist: proxsuite[build] ; extra == "build"
Description-Content-Type: text/markdown

# mim_solvers
Implementation of numerical solvers used in the Machines in Motion Laboratory. 
In particular, the Sequential Quadratic Programming (SQP) solver decribed in [arxiv] that solves efficiently nonlinear constrained OCPs.

All solvers are implemented by using [Crocoddyl](https://github.com/loco-3d/crocoddyl/tree/devel) (v2.0) as the base software. 
Consquently, Crocoddyl users can use our efficient solvers while constructing their OCPs using the same API they are used to. 
The default solvers of Crocoddyl are also re-implemented for benchmarking purposes (namely DDP and FDDP) but with modified termination criteria and line-search.

Examples of how to use the solvers can be found in the `examples` directory.

# Dependencies
- Pinocchio (rigid-body dynamics computations)
- Crocoddyl (optimal control library)
- ProxQP (quadratic programming) [OPTIONAL]

# Installation

  ## Using conda

`conda install mim-solvers --channel conda-forge`


  ## Using CMake
`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`


# Contributors

-   [Armand Jordana](https://github.com/ajordana) (NYU): main developer and manager of the project
-   [Sébastien Kleff](https://github.com/skleff1994) (NYU): main developer and manager of the project
-   [Avadesh Meduri](https://github.com/avadesh02) (NYU): main developer and manager of the project
-   [Ludovic Righetti](https://engineering.nyu.edu/faculty/ludovic-righetti) (NYU): project instructor
-   [Justin Carpentier](https://jcarpent.github.io) (INRIA): project instructor
-   [Nicolas Mansard](http://projects.laas.fr/gepetto/index.php/Members/NicolasMansard) (LAAS-CNRS): project instructor
-   [Yann de Mont-Marin](https://github.com/ymontmarin) (INRIA): Conda integration and support

