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
Lecture 10 Notes
Section 3 Slides
Section 3 Handout
5 Image processing, feature detection & description
Information extraction & classic visual recognition
Friday: Modern computer vision techniques
Lecture 11
Lecture 12
Lecture 13
Lecture 11 Notes
Lecture 12 Notes
Section 4 Slides
Section 4 Handout
6 Intro to localization & filtering theory
Parameteric filtering (KF, EKF, UKF)
Friday: Nonparameteric filtering (PF)
Lecture 14
Lecture 15
Lecture 16
Lecture 14 Notes
Lecture 15 Notes
Lecture 16 Notes
Section 5 Slides
Section 5 Handout
7 EKF localization
Friday: Monte Carlo localization and particle filter SLAM
Tuesday: HW3 due, HW4 out, Final project released
Lecture 17
Lecture 18
Lecture 19
Lecture 17 Notes
Lecture 18 Notes
Section 6 Slides
Section 6 Handout
8 Multi-sensor perception & sensor fusion (by Daniel Watzenig)
Software for autonomous systems I (by Daniel Watzenig)
Friday: Software for autonomous systems II (by Markus Schratter)
Lecture 20
Lecture 21
Lecture 22 Hands-on Description
Lecture 22 Autoware
Lecture 22 Autoware Tutorial
Section 7 Slides
Section 7 Handout
9 State machines
Decision making under uncertainty
Friday: Midterm II
Tuesday: HW4 due
Friday: Final project check-in
Lecture 23
Lecture 24
Section 8 Slides
* Thanksgiving Recess (no classes)
10 Reinforcement learning
Friday: Final project demo
Lecture 25