← IRoM Lab

Introduction to Robotics

Princeton University

ROB 345 / 549

Course description

Robotics is a rapidly growing field with applications including drones, autonomous vehicles, and home assistants. This course will provide an introduction to the fundamental theoretical and algorithmic principles behind modern robotic systems. The course will also allow students to get hands-on experience through project-based assignments with the Crazyflie quadrotor. For the final project, students train a vision-based navigation policy using imitation learning. Course topics include:

  • Motion Planning
  • Feedback Control
  • State estimation, localization, and mapping
  • Machine learning for robotics
  • Broader topics: Robotics and the law, ethics, and economics

This course is aimed at undergraduate students (primarily juniors and seniors). The graduate-level track (ROB 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

Acknowledgements

A number of course staff members have contributed greatly to the development of this course over the years. I am particularly grateful to Jon Prevost, Vincent Pacelli, Julienne LaChance, Alec Farid, Meghan Booker, David Snyder, Allen Ren, Eric Lepowsky, Alexandra Bodrova, and Nate Simon.

Lecture recordings were done by the Princeton Broadcast Center.

Reference textbooks

  • D. Gammelli, J. Lorenzetti, K. Luo, G. Zardini, M. Pavone, Principles of Robot Autonomy.
  • S. M. LaValle, Planning Algorithms.
  • S. Thrun, W. Burgard, and D. Fox, Probabilistic Robotics.

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 with open-source software. The motion planning and feedback control hardware assignments can be completed with the following parts list:

For the final project, students train a vision-based navigation policy using imitation learning. 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:

Crazyflie drone used in course assignments

Course materials

LectureLecture videosMaterialsAssignments
Lecture 1: Intro to Robotics Video Slides
Geometric Motion Planning
Lecture 2: Discrete planning (graph search) Video Slides Assignment 1
Lecture 3: Randomized planning (RRTs) Video Slides Assignment 2
Planning with dynamics
Lecture 4: Quadrotor dynamics Video Slides | Notes
Lecture 5: Differential flatness Video Slides | Notes
Lecture 6: Trajectory optimization
Feedback Control
Lecture 7: Stability, PD control
Lecture 8: Linear Quadratic Regulator (LQR)
State Estimation, Localization, Mapping
Lecture 9: Camera models, optical flow
Lecture 10: Nondeterministic filter
Lecture 11: Bayes filtering
Lecture 12: Kalman filtering and particle filtering
Lecture 13: Localization
Lecture 14: Mapping
Lecture 15: Simultaneous localization and mapping (SLAM)
Machine Learning for Robotics
Lecture 16: Imitation learning
Lecture 17: Generative architectures (flow matching, diffusion)
Lecture 18: Exam
Lecture 19: Data augmentation and DAgger
Lecture 20: Vision-language-action models (VLAs)
Lecture 21: Reinforcement learning - I
Lecture 22: Reinforcement learning - II
Lecture 23: World models
Broader topics in robotics
Lecture 24: Robotics and jobs, ethics, and laws