Perception, Planning, and Control
© Russ Tedrake, 2020-2026
Last modified .
How to cite these notes, use annotations, and give feedback.
Note: These are working notes used for a course being taught at MIT. They will be updated throughout the Fall 2026 semester.
| Previous Chapter | Table of contents | Next Chapter |
In particular, while the C++ API documentation is excellent, the autogenerated python docs are still a work in progress. I currently recommend using the C++ documentation to find what you need, then checking the Python documentation only if you need to understand how the class or method is spelled in pydrake.
There are also a number of tutorials in
I will provide nearly all examples and exercises in the form of a Jupyter Notebook so that we can leverage the fantastic and relatively recent availability of (free) cloud resources.
Follow an "Open in Colab" link beside an example and run the cells in order. The first code cell installs the required packages. Save a copy in Google Drive if you want to keep your edits.
Many notebooks use Meshcat for interactive visualizations. After running
StartMeshcat(), click "Open Meshcat in a separate window" and
keep the notebook open while using the viewer. To embed the viewer beside
your current cell, run:
from manipulation.meshcat_utils import DisplayMeshcat
DisplayMeshcat(meshcat)
You can enable more powerful solvers for
MathematicalProgram if you have a license (most are free for
academics). Please see the MOSEK and Gurobi documentation
for instructions.
As you get more advanced, you will likely want to run (and extend) these examples on your own machine. On platforms/configurations that Drake supports (the latest two releases of Mac and Ubuntu using the system default python versions). The simplest installation is via pip; I would typically recommend using a virtual environment:
python3 -m venv venv
source venv/bin/activate
python -m pip install "manipulation[all]" jupyterlab
jupyter lab (or develop your own notebooks).
The PYTHONPATH.
If you want to download all of the notebooks at once, you can git
clone the course notes
repository. You'll likely want to start from the repository's root directory.
Then launch your notebook with:
jupyter notebook
The examples for each chapter that has them will be in a .ipynb file
right alongside the chapter's html file, and the notebook exercises are
all located in the exercises subdirectories.
If you have trouble with
| Previous Chapter | Table of contents | Next Chapter |