Skip to content

Latest commit

 

History

History
196 lines (151 loc) · 7.32 KB

index.md

File metadata and controls

196 lines (151 loc) · 7.32 KB
layout title description
default
Model-Based Design and Verification for Robotics
A C++ / Python toolbox supported by the Toyota Research Institute.

{{ page.title }}

{{ page.description }}

Core Library

Modeling Dynamical
Systems

Solving Mathematical
Programs

Multibody Kinematics
and Dynamics

{% include video-autoplay.html url = "https://user-images.githubusercontent.com/26719449/108152577-4d14f300-70a7-11eb-88c5-5da0c39b1e24.mp4" %} ## Overview

Drake ("dragon" in Middle English) is a C++ toolbox started by the Robot Locomotion Group at the MIT Computer Science and Artificial Intelligence Lab (CSAIL). The development team has now grown significantly, with core development led by the Toyota Research Institute. It is a collection of tools for analyzing the dynamics of our robots and building control systems for them, with a heavy emphasis on optimization-based design/analysis.

While there are an increasing number of simulation tools available for robotics, most of them function like a black box: commands go in, sensors come out. Drake aims to simulate even very complex dynamics of robots (e.g. including friction, contact, aerodynamics, …), but always with an emphasis on exposing the structure in the governing equations (sparsity, analytical gradients, polynomial structure, uncertainty quantification, …) and making this information available for advanced planning, control, and analysis algorithms. Drake provides an interface to Python to enable rapid-prototyping of new algorithms, and also aims to provide solid open-source implementations for many state-of-the-art algorithms. Finally, we hope Drake provides many compelling examples that can help people get started and provide much needed benchmarks. We are excited to accept user contributions to improve the coverage.

You can read more about the vision for Drake in this blog post.

We hope you find this tool useful. Please see Getting Help if you wish to share your comments, questions, success stories, or frustrations. And please contribute your best bug fixes, features, and examples!

## Tutorials

Drake offers Python-based tutorials using Jupyter notebooks. We recommend that you view the tutorials online.

Alternatively, to run the tutorials locally via pip, refer to drake/tutorials/README.md.

## Examples

We have a number of use cases demonstrated under drake/examples in the source tree, and more available through our Drake Gallery (contributions welcome!).

We also have a number of examples of using Drake as a external library in your own projects, including examples with various build systems and examples of how you might set up continuous integration.

## Articles

Drake: Model-based design in the age of robotics and machine learning

Rethinking Contact Simulation for Robot Manipulation

MIT Underactuated Robotics: Algorithms for Walking, Running, Swimming, Flying, and Manipulation

MIT Robotic Manipulation: Perception, Planning, and Control

## Citing Drake
@misc{drake,
 author = "Russ Tedrake and the Drake Development Team",
 title = "Drake: Model-based design and verification for robotics",
 year = 2019,
 url = "https://drake.mit.edu"
}
## Acknowledgements

The Drake developers would like to acknowledge significant support from the Toyota Research Institute, DARPA, the National Science Foundation, the Office of Naval Research, Amazon.com, and The MathWorks.

## Integrations

Python

LCM

ROS 2™ (unsupported)

Julia (unsupported)