• Home
  • Installation
  • Gallery
  • API Documentation
    C++ Python
  • Resources
    Getting Help Tutorials Python Bindings For Developers Credits
  • GitHub

Drake Tutorials¶

We have chosen to host all of our tutorials in Python/Jupyter notebooks, but the pydrake API is a thin wrapper over the C++ API. Most code can be ported very easily (in either direction).

For an overview about the philosophy behind Drake, consider reading this blog post. We have organized the tutorials around the three major components described in that post:

If you would like to run a tutorial interactively or to experiment with editing the code, run the tutorials locally via pydrake; refer to drake/tutorials/README.md for details.

Multibody Dynamics¶

  • Authoring a Multibody Simulation
  • Mathematical programming with MultibodyPlant
  • PyPlot Animation with MultibodyPlant
  • Rendering MultibodyPlant
  • Configuring Rendering Lighting
  • Taking Derivatives of MultibodyPlant Computations w.r.t. Mass
  • Hydroelastic Contact: Basics
  • Hydroelastic Contact: Nonconvex Mesh

More multibody tutorials coming soon!

Mathematical Programming¶

  • MathematicalProgram
  • Setting solver parameters
  • Updating costs and constraints (e.g. for efficient solving of many similar programs)
  • Debugging tips
  • Linear program
  • Quadratic program
  • Nonlinear program
  • Sum-of-squares optimization
  • Enabling licensed solvers on Deepnote
  • Specifying custom gradients

Dynamical Systems¶

  • Modeling Dynamical Systems
  • Authoring Leaf Systems
  • Working with Diagrams
  • Basics of Automatic Differentiation

More systems tutorials coming soon!

Additional resources¶

  • C++ API documentation
  • Python API documentation
  • MIT Robotic Manipulation course notes
  • MIT Underactuated Robotics course notes
  • Getting help
  • Accessibility
  • C++
  • Python
  • GitHub