Home

Awesome

CI codecov

Dojo

A differentiable physics engine for robotics

IMAGE ALT TEXT

Update April 2023

Examples

Simulation

<p float="left"> <img src="docs/src/assets/animations/atlas_drop.gif" width="120"/> <img src="docs/src/assets//animations/astronaut.gif" width="210"/> <img src="docs/src/assets/animations/dzhanibekov.gif" width="180"/> <img src="docs/src/assets/animations/tippetop.gif" width="180"/> </p>

Learning and Control

<p float="left"> <img src="docs/src/assets/animations/quadruped.gif" width="275"/> <img src="docs/src/assets/animations/ant_ars.gif" width="275"/> <img src="docs/src/assets/animations/quadrotor.gif" width="175"/> </p>

System Identification

<p float="left"> <img src="docs/src/assets/animations/box_learning.gif" width="200"/> <img src="docs/src/assets/animations/cone_learning.gif" width="200"/> <img src="docs/src/assets/animations/box_toss.gif" width="300"/> </p>

Interfacing Other Packages

ReinforcementLearning.jl: DQNControlSystems.jl: LQR
<img src="docs/src/assets/animations/cartpole_rl.gif" width="250"/><img src="docs/src/assets/animations/cartpole_lqr.gif" width="250"/>

Installation

Dojo can be added via the Julia package manager (type ]):

pkg> add Dojo

For convenience mechanisms and environments, add DojoEnvironments additionally:

pkg> add DojoEnvironments

Citing

@article{howelllecleach2022,
	title={Dojo: A Differentiable Physics Engine for Robotics},
	author={Howell, Taylor and Le Cleac'h, Simon and Bruedigam, Jan and Kolter, Zico and Schwager, Mac and Manchester, Zachary},
	journal={arXiv preprint arXiv:2203.00806},
	url={https://arxiv.org/abs/2203.00806},
	year={2022}
}

How To Contribute

Please submit a pull request or open an issue. See the docs for contribution ideas.