Skip to content

Git mirror of the official Crocoddyl's repository -- PULL REQUEST MUST BE SENT TO: https://gepgitlab.laas.fr/loco-3d/crocoddyl

License

Notifications You must be signed in to change notification settings

iit-DLSLab/crocoddyl

 
 

Repository files navigation

Contact RObot COntrol by Differential DYnamic programming Library (crocoddyl)

Introduction

Crocoddyl is an optimal control library for robot control under contact sequence. Its solver is based on an efficient Differential Dynamic Programming (DDP) algorithm. Crocoddyl computes optimal trajectories along to optimal feedback gains. It uses Pinocchio for fast computation of robot dynamics and its analytical derivatives.

The source code is released under the BSD 3-Clause license.

Authors: Carlos Mastalli and Rohan Budhiraja
Instructors: Justin Carpentier and Nicolas Mansard
With additional support from the Gepetto team at LAAS-CNRS.

License BSD-3-Clause pipeline status coverage report

If you want to follow the current developments, you can directly refer to the devel branch.

Installation

Crocoddyl can be easily installed on various Linux (Ubuntu, Fedora, etc.) and Unix distributions (Mac OS X, BSD, etc.). Please refer to

Installation through robotpkg

You can install this package throught robotpkg. robotpkg is a package manager tailored for robotics softwares. It greatly simplifies the release of new versions along with the management of their dependencies. You just need to add the robotpkg apt repository to your sources.list and then use sudo apt install robotpkg-py27-crocoddyl:

If you have never added robotpkg as a softwares repository, please follow first the instructions from 1 to 3. Otherwise, go directly to instruction 4. Those instructions are similar to the installation procedures presented in http://robotpkg.openrobots.org/debian.html.

  1. Add robotpkg as source repository to apt:

     sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
     deb [arch=amd64] http://robotpkg.openrobots.org/wip/packages/debian/pub $(lsb_release -sc) robotpkg
     deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -sc) robotpkg
     EOF
    
  2. Register the authentication certificate of robotpkg:

     curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
    
  3. You need to run at least once apt update to fetch the package descriptions:

     sudo apt-get update
    
  4. The installation of Crocoddyl:

     sudo apt install robotpkg-py27-crocoddyl # for Python 2
    
     sudo apt install robotpkg-py35-crocoddyl # for Python 3
    

Finally you will need to configure your environment variables, e.g.:

	export PATH=/opt/openrobots/bin:$PATH
	export PKG_CONFIG_PATH=/opt/openrobots/lib/pkgconfig:$PKG_CONFIG_PATH
	export LD_LIBRARY_PATH=/opt/openrobots/lib:$LD_LIBRARY_PATH
	export PYTHONPATH=/opt/openrobots/lib/python2.7/site-packages:$PYTHONPATH

Building from source

Crocoddyl is c++ library with Python bindings for versatible and fast prototyping. It has the following dependecies:

You can run examples and tests from the root dir of the repository:

	cd PATH_TO_CROCODDYL
	python examples/talos_arm.py
	python unittest/all.py

If you want to learn about Crocoddyl, take a look at the Jupyter notebooks. Start in the following order.

Citing Crocoddyl

To cite Crocoddyl in your academic research, please use the following bibtex lines:

@misc{crocoddylweb,
   author = {Carlos Mastalli, Rohan Budhiraja and Nicolas Mansard and others},
   title = {Crocoddyl: a fast and flexible optimal control library for robot control under contact sequence},
   howpublished = {https://gepgitlab.laas.fr/loco-3d/crocoddyl/wikis/home},
   year = {2019}
}

and the following paper describes different algorithm implemented in Crocoddyl:

Publications

Questions and Issues

You have a question or an issue? You may either directly open a new issue or use the mailing list crocoddyl@laas.fr.

About

Git mirror of the official Crocoddyl's repository -- PULL REQUEST MUST BE SENT TO: https://gepgitlab.laas.fr/loco-3d/crocoddyl

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 50.1%
  • C++ 48.9%
  • CMake 1.0%