Introduction to Robotics
Princeton University
MAE / ECE 345, COS 346, MAE 549
Course description
Robotics is a rapidly growing field with applications including unmanned aerial vehicles, autonomous cars, and robotic manipulators. This course will provide an introduction to the fundamental theoretical and algorithmic principles behind robotic systems. The course will also allow students to get hands-on experience through project-based assignments with the Crazyflie quadrotor. Topics include:
- Feedback Control
- Motion Planning
- State estimation, localization, and mapping
- Computer vision and learning
- Broader topics: Robotics and the law, ethics, and economics
This course is aimed at undergraduate students (primarily juniors and seniors). The graduate-level track (MAE 549) is aimed at first-year PhD students.
Note: this course website is the public-facing version; Princeton students enrolled in the course should use Canvas. This website provides access to course materials including lecture videos, notes, slides, assignments, and the final project (see below).
Instructor
Anirudha Majumdar
Mechanical & Aerospace Engineering, Princeton University
Reference textbooks
- Steven M. LaValle, Planning Algorithms.
- Sebastian Thrun, Wolfram Burgard, and Dieter Fox, Probabilistic Robotics.
- Mark W. Spong, Seth Hutchinson, and M. Vidyasagar, Robot Dynamics and Control.
- Illah R. Nourbaksh and Roland Siegwart, Introduction to Autonomous Mobile Robots.
Course prerequisites
Multivariable calculus, linear algebra, basic probability, basic differential equations, some programming experience (this course uses Python).
Hardware
The assignments for the course (provided below) include theory, programming, and hardware implementation components. For the hardware, we use the Crazyflie drone from Bitcraze. This is a lightweight drone (27g) with open-source software. The feedback control and motion planning hardware assignments can be completed with the following parts list:
- Crazyflie 2.1 drone
- Flow deck v2
- Crazyflie PA radio
- Spare parts (if necessary)
For the final project, students program the drones to perform vision-based navigation. We attach cameras to the drones, which transmit images in real-time to a receiver unit plugged into to a laptop. Completing the final project requires the following additional parts:
Acknowledgements
The following teaching staff have contributed greatly to the development of the materials for this course:
Vincent Pacelli, Julienne LaChance, Jon Prevost, Alec Farid, Meghan Booker, Lena Rosendahl, David Snyder, Allen Ren, Eric Lepowsky, Nate Simon, Alexandra Bodrova, and An-Ya Olson.
Course materials
Lecture videos |
Materials |
Assignments |
Lecture 1: Intro to Robotics | [Slides] | |
Feedback Control | ||
Lecture 2: Dynamics of planar quadrotor | [Slides] [Notes] | |
Lecture 3: 3D quadrotor dynamics and feedback | [Notes] | Assignment 1 |
Lecture 4: Asymptotic stability and PD control | [Notes] | |
Lecture 5: Linear Quadratic Regulator (LQR) | [Slides] [Notes] | Assignment 2 |
Motion Planning | ||
Lecture 6: Discrete planning (BFS and DFS) | [Slides] | |
Lecture 7: Optimal discrete planning (Djikstra and A*) | [Notes] [Slides] | Assignment 3 |
Lecture 8: Randomized motion planning (RRTs) | [Notes] [Slides] | |
Lecture 9: Differential flatness | [Notes] [Slides] | Assignment 4 |
Lecture 10: Planning with dynamics constraints | [Notes] [Slides] | |
State estimation, localization, and mapping | ||
Lecture 11: Nondeterministic filter | [Notes] [Slides] | Assignment 5 |
Lecture 12: Bayes filtering | [Notes] | |
Lecture 13: Kalman filtering and particle filtering | [Notes] [Slides] | Assignment 6 |
Lecture 14: Localization | [Notes] [Slides] | |
Lecture 15: Mapping | [Notes] [Slides] | Assignment 7 |
Lecture 16: Simultaneous localization and mapping (SLAM) | [Notes] [Slides] | |
Lecture 17: Midterm review | N/A | Midterm assigned |
Vision and learning | [Slides] | |
Lecture 18: Intro to vision | [Notes] [Slides] | |
Lecture 19: Optical flow | [Notes] [Slides] | Assignment 8 |
Lecture 20: Intro to deep learning | [Notes] [Slides] | |
Lecture 21: Stochastic gradient descent | [Notes] | Assignment 9, Assignment 10 |
Lecture 22: Multi-layer networks, overfitting, regularization | [Notes] | |
Lecture 23: Convolutional networks and beyond | [Slides] | Final project |
Broader topics in robotics | ||
Lecture 24: Robotics and jobs, ethics, and laws | [Slides] |