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 notes, slides, assignments, and the final project (see below).


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).



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:

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:



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, and Eric Lepowsky.

Course materials




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
Lecture 5: Linear Quadratic Regulator (LQR)
Motion Planning
Lecture 6: Discrete planning (BFS and DFS)
Lecture 7: Optimal discrete planning (Djikstra and A*)
Lecture 8: Randomized motion planning (RRTs)
Lecture 9: Differential flatness
Lecture 10: Planning with dynamics constraints
State estimation, localization, and mapping
Lecture 11: Nondeterministic filter
Lecture 12: Bayes filtering
Lecture 13: Kalman filtering and particle filtering
Lecture 14: Localization
Lecture 15: Mapping
Lecture 16: Simultaneous localization and mapping (SLAM)
Lecture 17: Midterm review
Vision and learning
Lecture 18: Intro to vision
Lecture 19: Optical flow
Lecture 20: Intro to deep learning
Lecture 21: Stochastic gradient descent 
Lecture 22: Multi-layer networks, overfitting, regularization
Lecture 23: Convolutional networks and beyond
Broader topics in robotics
Lecture 24: Robotics and jobs, ethics, and laws