AA 174A / AA 274A / CS 237A / EE 260A

Principles of Robot Autonomy I

Fall 2019

Course Description

This course will cover basic principles for endowing mobile autonomous robots with perception, planning, and decision-making capabilities. Algorithmic approaches for robot perception, localization, and simultaneous localization and mapping; control of non-linear systems, learning-based control, and robot motion planning; introduction to methodologies for reasoning under uncertainty, e.g., (partially observable) Markov decision processes. Extensive use of the Robot Operating System (ROS) for demonstrations and hands-on activities. Prerequisites: CS 106A or equivalent, CME 100 or equivalent (for linear algebra), and CME 106 or equivalent (for probability theory).


Prof. Marco Pavone

Course Assistants

Boris Ivanovic Apoorva Sharma Andrew Bylard

Toki Migimatsu

Jenna Lee

Meeting Times

Lectures meet on Tuesdays and Thursdays from 10:30am to 11:50am, Fridays from 1:30pm to 2:50pm in NVIDIA Auditorium.

Sections are on Mondays and Wednesdays from 10:30am to 12:30pm, Mondays from 3:00pm to 5:00pm, Tuesdays from 4:00pm to 6:00pm, and Thursdays from 2:00pm to 4:00pm in the Skilling Lab.

Prof. Pavone's office hours are on Tuesdays 1:00pm to 3:00pm, after class, and by appointment, in Durand 261.

CA office hours are on Tuesdays from 2:00pm to 4:00pm and Thursdays from 4:00pm to 6:00pm in Durand 023.


The class syllabus can be found here.

If you are a Stanford Center for Professional Development (SCPD) student, please see this syllabus instead, namely the parts about sections and the final project.


Subject to change. Lecture notes and scribe notes are updated below. We will try to have the lecture notes updated before the class. Lecture videos will be posted by the SCPD.

Week Topic Lecture Slides Lecture Notes Sections
1 Course overview, mobile robot kinematics
Introduction to the Robot Operating System (ROS)
Friday: Autonomy in the Wild (Seminar)
Friday: HW1 out
Lecture 1
Pre-knowledge quiz (solutions)
Lecture 2
Lecture 1 Notes
Lecture 2 Notes
2 Trajectory optimization
Trajectory tracking & closed loop control
Friday: Advanced methods for trajectory optimization
Lecture 3
Lecture 4
Lecture 5 (ex_1.py, ex_2.py)
Lecture 3 Notes
Lecture 4 Notes
Lecture 5 Notes
Section 1 Slides
Section 1 Handout
3 Motion planning I: graph search methods
Motion planning II: sampling-based methods
Friday: Midterm I
Tuesday: HW1 due, HW2 out
Lecture 6
Lecture 7
Lecture 6 Notes
Lecture 7 Notes
Section 2 Slides
Section 2 Handout
4 Robotic sensors & introduction to computer vision
Camera models & camera calibration
Friday: Stereo vision
Friday: HW2 due, HW3 out
Lecture 8
Lecture 9
Lecture 10
Lecture 8 Notes
Lecture 9 Notes
Section 3 Slides
Section 3 Handout
5 Image processing, feature detection & description
Information extraction & classic visual recognition
Friday: Modern computer vision techniques
Section 4 Slides
Section 4 Handout
6 Intro to localization & filtering theory
Parameteric filtering (KF, EKF, UKF)
Friday: Nonparameteric filtering (PF)
Tuesday: HW3 due, HW4 out
7 EKF localization
Friday: Monte Carlo localization and particle filter SLAM
Tuesday: Final project released
8 Multi-sensor perception & sensor fusion
Software for autonomous systems I
Friday: Software for autonomous systems II
9 State machines
Decision making under uncertainty
Friday: Midterm II
Tuesday: HW4 due
Friday: Final project check-in
* Thanksgiving Recess (no classes)
10 Reinforcement learning
Friday: Final project demo