ContactImplicitMPC.jl
Fast contact-implicit model predictive control for robotic systems that make and break contact with their environments.
Install / Use
/learn @dojo-sim/ContactImplicitMPC.jlREADME
ContactImplicitMPC.jl
This repository contains algorithms and examples from our paper: Fast Contact-Implicit Model-Predictive Control.
A collection of examples are pre-generated in notebooks with the package, please try: flamingo, pushbot, hopper, and quadruped. Additional notebooks with examples from the paper can be generated.
Installation
ContactImplicitMPC can be added via the Julia package manager (type ]):
pkg> add ContactImplicitMPC
Flamingo
<img src="animations/flamingo.gif" alt="drawing" width="400"/>PushBot
<img src="animations/pushbot.gif" alt="drawing" width="400"/>Hopper Parkour
<img src="animations/hopper_parkour.gif" alt="drawing" width="250"/>Quadruped with Payload
<img src="animations/quadruped_payload.gif" alt="drawing" width="400"/>Hopper Monte Carlo
<img src="animations/hopper_monte_carlo.gif" alt="drawing" width="400"/>Quadruped Monte Carlo
<img src="animations/quadruped_monte_carlo.gif" alt="drawing" width="400"/>Reference Trajectories
The trajectories we track in the examples are generated using contact-implicit trajectory optimization and can be run here.
Simulator
The differentiable simulator is available as a stand-alone package: RoboDojo.jl.
Citing
If you find ContactImplicitMPC useful in your project, we kindly request that you cite the following paper:
@article{lecleach2021fast,
title={Fast Contact-Implicit Model-Predictive Control},
author={Le Cleac'h, Simon and Howell, Taylor A. and Schwager, Mac and Manchester, Zachary},
journal={arXiv preprint arXiv:2107.05616},
year={2021}
}
The article is available under Open Access here.
