# crocoddyl
**Repository Path**: inceptionv5/crocoddyl
## Basic Information
- **Project Name**: crocoddyl
- **Description**: Crocoddyl is an optimal control library for robot control under contact sequence. Its solvers are based on novel and efficient differential dynamic programming (DDP) algorithms.
- **Primary Language**: C++
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-12-06
- **Last Updated**: 2025-03-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: MPC
## README
##
Introduction
**[Crocoddyl](https://cmastalli.github.io/publications/crocoddyl20icra.html)** is an optimal control library for robot control under contact sequence. Its solvers are based on novel and efficient differential dynamic programming (DDP) algorithms. **Crocoddyl** computes optimal trajectories and feedback gains. It uses **[Pinocchio](https://github.com/stack-of-tasks/pinocchio)** for fast computation of robot dynamics and analytical derivatives.
If you want to learn more about **Crocoddyl** and its solvers, we suggest reading [[1]](#1) [[2]](#2) [[3]](#3) and visiting [PUBLICATIONS.md](https://github.com/loco-3d/crocoddyl/blob/master/PUBLICATIONS.md). If you want to follow the current developments and contribute, please directly refer to the [devel branch](https://github.com/loco-3d/cddp/tree/devel).
## :crocodile: Crocoddyl features
**Crocoddyl** is versatile:
* Various optimal control solvers (DDP, FDDP, BoxFDDP, Ipopt, etc)
* Analytical and sparse derivatives via **[Pinocchio](https://github.com/stack-of-tasks/pinocchio)**
* Differential geometry support leveraging **[Pinocchio](https://github.com/stack-of-tasks/pinocchio)**
* Various integrators, dynamics, costs and constraints
* Numerical differentiation support
* Automatic differentiation support via **[CppAD](https://github.com/coin-or/CppAD)**
**Crocoddyl** is efficient and flexible:
* Cache friendly
* Multi-threading support via **[OpenMP](https://www.openmp.org/)**
* Python bindings (including abstractions) via **[Boost Python](https://wiki.python.org/moin/boost.python)**
* C++14/17/20 compliant
* Extensively tested
* Automatic code generation support via **[CppADCodeGen](https://github.com/joaoleal/CppADCodeGen)**
## :penguin: Installation
**Crocoddyl** can be easily installed on various Linux (Ubuntu, Fedora, etc.) and Unix distributions (Mac OS X, BSD, etc.). Below, there are different ways to install Crocoddyl.
### :dragon: From
Just run the following command in the terminal:
```bash
conda install crocoddyl -c conda-forge
```
Conda installation supports [](https://anaconda.org/conda-forge/crocoddyl).
### :snake: From
Just run the following command in the terminal:
```bash
pip install --user crocoddyl
```
### :turtle: With ROS
Just clone it (with `--recursive`) into a catkin workspace and compile it.
### :package: From Debian / Ubuntu packages, with [robotpkg](http://robotpkg.openrobots.org)
1. If you have never added robotpkg's software repository, [do it now](http://robotpkg.openrobots.org/debian.html):
```bash
sudo tee /etc/apt/sources.list.d/robotpkg.list <[1] C. Mastalli, R. Budhiraja, W. Merkt, G. Saurel, B. Hammoud, M. Naveau, J. Carpentier, L. Righetti, S. Vijayakumar and N. Mansard. [Crocoddyl: An Efficient and Versatile Framework for Multi-Contact Optimal Control](https://cmastalli.github.io/publications/crocoddyl20icra.html), IEEE International Conference on Robotics and Automation (ICRA), 2020
[2] C. Mastalli, W. Merkt, J. Marti-Saumell, H. Ferrolho, J. Sola, N. Mansard and S. Vijayakumar. [A Feasibility-Driven Approach
to Control-Limited DDP](https://arxiv.org/pdf/2010.00411.pdf), Autonomous Robots, 2022
[3] C. Mastalli, S. P. Chhatoi, T. Corbères, S. Tonneau and S. Vijayakumar. [Inverse-Dynamics MPC via Nullspace Resolution](https://arxiv.org/pdf/2209.05375.pdf), IEEE Transactions on Robotics, 2023
## :computer: Questions and Issues
You have a question or an issue? Please open a [new issue](https://github.com/loco-3d/crocoddyl/issues).
## :mag: Steering Committee
**Crocoddyl** is managed by a steering committee which meets every two weeks to discuss ongoing developments. The committee is led by [Carlos Mastalli](https://cmastalli.github.io/), [Nicolas Mansard](http://projects.laas.fr/gepetto/index.php/Members/NicolasMansard), [Guilhem Saurel](http://projects.laas.fr/gepetto/index.php/Members/GuilhemSaurel) and [Justin Carpentier](https://jcarpent.github.io/) are other members of the committee.
## :copyright: Credits
### :writing_hand: Written by
- [Carlos Mastalli](https://cmastalli.github.io/), Heriot-Watt University :uk: (project manager)
- [Nicolas Mansard](http://projects.laas.fr/gepetto/index.php/Members/NicolasMansard), LAAS-CNRS :fr:
- [Rohan Budhiraja](https://scholar.google.com/citations?user=NW9Io9AAAAAJ), LAAS-CNRS :fr: (alumnus)
### :construction_worker: With contributions from
- [Guilhem Saurel](http://projects.laas.fr/gepetto/index.php/Members/GuilhemSaurel), LAAS-CNRS :fr:
- [Wolfgang Merkt](http://www.wolfgangmerkt.com/research/), University of Oxford :uk:
- [Justin Carpentier](https://jcarpent.github.io/), INRIA :fr:
- [Andrea Del Prete](https://andreadelprete.github.io/), Università degli Studi di Trento :it:
- [Wilson Jallet](https://manifoldfr.github.io), INRIA :fr:
- [Maximilien Naveau](https://scholar.google.fr/citations?user=y_-cGlUAAAAJ&hl=fr), MPI :de:
- [Josep Martí Saumell](https://www.iri.upc.edu/staff/jmarti), IRI: CSIC-UPC :es:
- [Bilal Hammoud](https://scholar.google.com/citations?hl=en&user=h_4NKpsAAAAJ), MPI :de:
- [Julian Eßer](https://github.com/julesser), Fraunhofer :de:
## :trophy: Acknowledgments
**Crocoddyl** development was supported by the [EU MEMMO project](http://www.memmo-project.eu/) and the [EU RoboCom++ project](http://robocomplusplus.eu/). It is maintained by the [Robot Motor Intelligence (RoMI) Lab](https://www.romilab.org) [@ Heriot-Watt University](https://www.edinburgh-robotics.org/), the [Gepetto team](http://projects.laas.fr/gepetto/) [@ LAAS-CNRS](http://www.laas.fr), and the [Willow team](https://www.di.ens.fr/willow/) [@ INRIA](https://www.inria.fr/fr/centre-inria-de-paris).