Metadata-Version: 2.4
Name: libmim-solvers
Version: 0.2.0
Summary: A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Requires-Python: >=3.8
License-Expression: BSD-3-Clause
Project-URL: Changelog, https://github.com/machines-in-motion/mim_solvers/blob/devel/CHANGELOG.md
Home-page: https://github.com/cmake-wheel/libmim_solvers
Project-URL: Upstream, https://github.com/machines-in-motion/mim_solvers
Requires-Dist: cmeel
Requires-Dist: cmeel-boost ~= 1.89.0
Requires-Dist: libcrocoddyl
Requires-Dist: proxsuite
Requires-Dist: libpinocchio
Provides-Extra: build
Requires-Dist: libcrocoddyl[build] ; extra == "build"
Requires-Dist: proxsuite[build] ; extra == "build"
Requires-Dist: libpinocchio[build] ; extra == "build"
Description-Content-Type: text/markdown

# mim_solvers
Implementation of efficient numerical optimal control solvers.
In particular, the Sequential Quadratic Programming (SQP) solver described in [this paper](https://laas.hal.science/hal-04330251) solves nonlinear constrained OCPs efficiently by leveraging sparsity.

All the solvers are implemented based on the API of [Crocoddyl](https://github.com/loco-3d/crocoddyl/tree/devel) (v3).
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.

# Dependencies
- [Pinocchio](https://github.com/stack-of-tasks/pinocchio) (rigid-body dynamics computations)
- [Crocoddyl](https://github.com/loco-3d/crocoddyl) (optimal control library)
- [ProxSuite](https://github.com/Simple-Robotics/proxsuite) (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`

You can also run unittests using `ctest` and benchmarks using `./benchmarks/ur5` or `./benchmarks/solo12` from the build directory.


# 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
-   [Louis Montaut](https://github.com/lmontaut) (INRIA): CMake support
-   [Guilhem Saurel](https://github.com/nim65s) (LAAS-CNRS): CMake & pip packaging support
-   [Jianghan ZHang](https://github.com/JianghanZHang) (NYU): features extension
