# 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

Crocoddyl Logo

Documentation Code style: black

## 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 [![conda install](https://anaconda.org/conda-forge/crocoddyl/badges/platforms.svg)](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).