Mobile Robots

MWF 10:30-11:20, MOR 234

Instructor: Sanjiban Choudhury (sanjibac at cs dot uw dot edu)
OH: Mon 3:00-4:00, CSE1 212

TA: Matthew Rockett (rockettm at cs dot uw dot edu) (OH: Th 11:30-12:30, CSE 022)
TA: Matt Schmittle (schmttle at cs dot uw dot edu) (OH: Tues 11:00 - 12:00, CSE 022)
TA: Gilwoo Lee (gilwoo at cs dot uw dot edu) (OH: Tues 09:00 - 10:00, CSE 022)

Recitation: Th 09:30-10:20, 10:30 - 11:20, CSE 022

Acknowledgments: Content for this course was also designed by members of the MuSHR team from Personal Robotics Lab - Johan Michalove (michajoh at cs dot uw dot edu) and Colin Summers (colin at cs dot uw dot edu). We especially thank Patrick Lancaster (planc509 at cs dot uw dot edu) for building the robots. We acknowledge Drew Bagnell for providing slides, course materials and advice about structuring this course.


Mobile Robots delves into the building blocks of autonomous systems that operate in the wild. We will cover topics related to state estimation (bayes filtering, probabilistic motion and sensor models), control (feedback, Lyapunov, LQR, MPC), planning (roadmaps, heuristic search, incremental densification) and online learning. Students will be forming teams and implementing algorithms on 1/10th sized rally cars as part of their assignments. Concepts from all of the assignments will culminate into a final project with a demo on the rally cars. The course will involve programming in a Linux and Python environment along with ROS for interfacing to the robot.

Prerequisites: CSE 332 (required), MATH 308 (recommended), CSE 312 (recommended)

Grading: Homeworks (60%), Project (30%), Participation (10%)

Textbooks (optional):

Learning Objectives:


All assignments are to be done as a team of 3. Each team gets one robot. Homework assignments will have both written and programming components. Each team will submit one writeup and code. All team members must be listed on each submission. Assignments are due online by 11:59 PM on the listed date.

Each team must maintain a blog which is to be updated atleast once a week ( due 11:59 p.m Friday ). The purpose of the blog is to make sure you are making consistent progress on your assignments. It will also be a valuable record of what you did over the quarter. The contents of the weekly update are - where the team is at currently, 1 paragraph from EACH member on what they worked on, challenges faced, lessons learned and videos (if any). 10% of your grade will go towards regularly updating the blog.

Linked is a reference for the cars. It is intended to allow you to get familiar with the car. It will be update throughout the quarter with useful troubleshooting help and general FAQ.

Writeups must be submitted as a PDF via Canvas. LaTeX is preferred, but other typesetting methods are acceptable. Code for the programming component must be submitted in a zip archive via Canvas.




Collaboration Policy: All assignments are to be done as a group. It's okay to discuss with other groups, but each group should do their own writeup/programmed work. It's okay to look at online resources as long as sources are cited and code is not copied. Feel free to talk through struggles with your peers as long as you follow the academic misconduct warnings that have been relayed in every course you've taken thus far. Here's a reference in case you need a refresher.

Late Day Policy: Each group gets four late days to use over the course of the quarter. The late days do not apply to the final project. If an assignment is submitted after exhausting the late days, it is subject to a 10-point penalty for each day over the budget. Leftover late days will not contribute to your grade in any way.

If unusual circumstances truly beyond your control prevent you from submitting an assignment, you should discuss this with the instructor, preferably in advance. (Even if you’re sick in bed at home, you should still be able to send an email.) If you contact the instructor well in advance of the deadline, we may be able to show more flexibility in some cases.

Extra Credit Policy: We will keep track of any extra features you implement in the assignments. You won’t see these affecting your grades for individual projects, but they will be accumulated over all projects and used to bump up borderline grades at the end of the quarter. The bottom line is that these will only have a small effect on your overall grade (possibly none if you are not on a borderline) and you should be sure you have completed the non-extra credit portions of the homework in perfect form before attempting any extra credit. They are meant to be fun extensions to the assignments.

Getting Help: Please don’t be afraid to ask for help if you don’t understand something. Meaningful ways to get help:


Date Topic Slides, Notes Reading
April 1 Introduction pdf Fill out knowledge survey
April 3 Anatomy of an autonomous vehicle pdf CMU Darpa urban challenge (pdf)
April 5 Introduction to state estimation pdf Prob. Rob. Ch 2, Minerva (pdf)
April 8 Bayes filtering pdf Prob. Rob. Ch 2, MacKay Ch 2 (pdf)
April 10 Probabilistic motion models, 1-D Kalman filter pdf Prob. Rob. Ch 5, MacKay Ch 28 (pdf)
April 12 Probabilistic measurement models pdf Prob. Rob. Ch 6
April 15 Introduction to Non-parametric filters pdf, 1-D Kalman Filter (pdf) Prob. Rob. Ch 4
April 17 Particle filter pdf Prob. Rob. Ch 4
April 19 Kalman filters pdf Prob. Rob. Ch 3
April 22 Occupancy grid mapping pdf Prob. Rob. Ch 9
April 24 Map representations pdf
April 26 SLAM pdf Collection of contemporary SLAM papers (link)
April 29 Introduction to feedback control pdf Underactuated Robotics Ch. 1
May 1 PID control, pure pursuit control pdf Classic reference on pure pursuit (pdf), DARPA Challenge controllers (pdf),
May 3 Lypaunov stability pdf Underactuated Robotics Ch. 10,
Advanced reading: D. Jung and P. Tsiotras, Bank-to-Turn Control for a Small UAV using Backstepping and Parameter Adaptation, 2008 (pdf)
May 6 Optimal control: Linear quadratic regulator pdf Underactuated Robotics Ch. 9,
Notes on LQR (pdf),
History of optimal control (pdf)
May 8 iLQR and Model predictive control pdf Advanced reading: P. Abbeel et al., An Application of Reinforcement Learning to Aerobatic Helicopter Flight, 2007 (pdf)
May 10 Dealing with complex cost functions: Trajectory library pdf Paper on path sampling (pdf),
State space sampling (pdf), Advanced reading: Submodular function maximization (pdf)
May 13 Introduction to planning pdf Planning algorithms Ch 1, Ch 4.1-4.3, Ch 6.5, Ch 14.1
May 15 Planning on roadmaps pdf Planning algorithms Ch 5
May 17 Planning on roadmaps (contd) pdf Planning algorithms Ch 5, Ch 14.1-4, Ch 15.3,
Advanced reading: Optimal sampling based planning (pdf)
May 20 Heuristic search pdf A* (pdf),
Weighted A* (pdf)
May 22 Lazy Search pdf Lazy Weighted A* (pdf),
Advanced reading: LazySP (pdf)
May 24 Anytime search via incremental densification pdf
May 27 No class! --- ---
May 29 Partially known model: Model learning
May 31 Partially known environment: Safety and exploration
June 3 Special topic: Online learning
June 5 Special topic: Bandits
June 7 Special topic: Intro to RL