Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP


Russ Tedrake edited this page · 47 revisions

Drake ("dragon" in Middle English) is a toolbox maintained by the Robot Locomotion Group at the MIT Computer Science and Artificial Intelligence Lab (CSAIL). It is a collection of tools for analyzing the dynamics of our robots and building control systems for them in MATLAB and C++. It deals with general nonlinear systems (including hybrid systems), but also contains specialized tools for multi-link rigid-body dynamics with contact. You might want to use Drake in your own research in order to, for example:

  • Analyze the stability of your systems - e.g., by automatically computing Lyapunov functions for global or regional (region of attraction analysis) using Sums-of-Squares optimization,
  • Design nonlinear feedback controllers for complicated (nonlinear, underactuated) dynamical systems,
  • Perform trajectory and feedback-motion planning for complicated (nonlinear, underactuated) dynamical systems, or
  • Compute invariant "funnels" along trajectories (derived from your own motion planning software) for robust motion planning.
  • Explore your own algorithms using Drake's implementations of model robot systems from legged locomotion, aerial vehicles, and underactuated robotics.
  • Contribute your algorithms to a public open-source codebase to make them easily accessible by others.

Drake also contains supporting methods for visualization, identification, estimation, and even hardware interfaces; making it our complete robotics software package. It has been used by the Robot Locomotion Group and our collaborators, and provides the complete planning and control backend for MIT's entry into the DARPA Robotics Challenge. Now we are attempting to open up the code to the broader community.

Drake is implemented using a hierarchy of MATLAB classes which are designed to expose and exploit available structure in input-output dynamical systems. While some algorithms are available for general nonlinear systems, specialized algorithms are available for polynomial dynamical systems, linear dynamical systems, etc.; many of those algorithms operate symbolically on the governing equations. The toolbox does a lot of work behind the scenes to make sure that, for instance, feedback or cascade combinations of polynomial systems remain polynomial. The toolbox also provides a parser that reads Universal Robot Description Format (URDF) files which makes it easy to define and start working with rigid-body dynamical systems. Drake uses the Simulink solvers for simulation of dynamical systems, and connects with a number of external tools to facilitate design and analysis.

We hope you find this tool useful. Please engage us via the issues tool with comments, questions, success stories, and frustrations. And please contribute your best bug fixes, features, and examples!

Citing Drake:

If you would like to cite Drake in your academic publications, we suggest the following BibTeX citation:

 author = "Russ Tedrake",
 title = "Drake: A planning, control, and analysis toolbox for nonlinear dynamical systems",
 year = 2014,
 url = ""

Next steps:

Something went wrong with that request. Please try again.