FAQs
I don't have any robotics experience, is it okay if I take the class? Yes, the course is designed to not assume any prior experience with robotics. If you have plenty of robotics experience, that's great too.
What will assignments be like? Weekly assignments will comprise a mix of hand-written math and programming. Programming assignments will be in Python and will feature use of Drake, a toolbox for planning, control and analysis for robotics. Drake was developed out of the Robot Locomotion Group and its development is now led by Toyota Research Institute. All assignments (both hand-written components and programming components) will be graded using Gradescope.
I am not sure if I fit the prerequisites, what should I do? The best way to determine if you are ready for the class is to look over some of the lectures from previous years (for example, the 2019 lectures). If you are excited and think you can handle it, you probably will be able to. You can always contact the course TAs (underactuated-staff@mit.edu) if you would like to get feedback on how prepared you are. Also, see the next question.
What can I do to best prepare for success in the class? The course takes a rigorous mathematical approach to robotics. The only required preqrequisites are basic familiarity with linear algebra and differential equations. If you work hard, we can teach you the rest. If, however, you would like to prepare as best as possible, you can go through the further material.
Further Material
Here are some useful links to catch up with the class prerequisites and to integrate the lecture notes.
- Linear Algebra
- A strong, intuitive understanding of Linear Algebra will very much help you with this class. If off the top of your head you don't remember what the rank of a matrix is, or how to do eigenvalue decomposition, we recommend you review your linear algebra. The entire world of robotics is rich in linear algebra -- you will not regret investing time in mastering fundamentals!
- To brush up on linear algebra, the content and video lectures from Strang's classic course, MIT 18.06 have helped many students in the past.
- Another good resource is the textbook Linear Algebra Done Right by Axler.
- Ordinary Differential Equations (ODEs)
- While a strong understanding of differential equations will only help you, if you have not taken a full ODE course before, you will probably be okay with just understanding the basics.
- The Differential Equations content at Khan Academy should be enough to get you going in the class -- you can learn the rest as you go.
- Coding
- If you are an absolute beginner with Python, Codecademy provides a friendly introduction.
- If you are somewhat familiar with Python but would like to brush up on syntax, this tutorial from Stanford CS231n provides a good overview.
- Although you will not need to know C++ to get an A in the class, the underlying software used for some of the assignments is in C++.
- Robotics
- You will not need any prior robotics exposure to succeed in the class. If however you want to start absorbing fundamentals (frame transformations, manipulator equations, etc.) then A Mathematical Introduction to Robotic Manipulation by Murray, Li, and Sastry is a great reference.
- Nonlinear Dynamics
- While not a prerequisite, a fantastic textbook for an introduction to nonlinear dynamics is the textbook Nonlinear Dynamics and Chaos by Strogatz.
- Mathematical Optimization
- We will teach you all you need to know about optimization, but acquiring a background in the subject will help you deepen understanding. If you know what the following are, you are totally set: LP, QP, SDP, SOS, NLP, MIP.
- A great textbook on (smooth) optimization is Numerical Optimization by Nocedal and Wright.
- Everything you need to know about convex optimization can be found in Convex Optimization by Boyd and Vandenberghe.
- For Sums-of-Squares (SOS) programming you can have a look Parrilo's Thesis or at this book.
- An advanced, but yet very readable, reference for Mixed-Integer Programming (MIP) is Integer Programming by Conforti, Cornuéjols, and Zambelli.
- Machine Learning
- Basic background in Machine Learning can only help. There are many great introductory classes online, Ng's is one.
- A couple of lectures will be focused on Reinforcement Learning (RL). Two great classes on RL are Silver's and Levine's. A classical RL textbook is Reinforcement Learning: An Introduction by Sutton and Barto.
- Optimal Control
- Optimal control is one of the most powerful tools you'll learn about in this class. If you'd like to dig deeper in this field, the following links might be useful.
- An extensive reference for Dynamic Programming is Bertsekas' book.
- Two classical references for optimal control are Applied Optimal Control by Bryson and Ho, and Optimal Control and Estimation by Stengel.
- For numerical optimal control (a.k.a. Model Predictive Control) you can have a look at Model Predictive Control: Theory, Computation, and Design by Rawlings, Mayne, and Diehl, and at Predictive Control for Linear and Hybrid Systems by Borrelli, Bemporad, and Morari.