NA 568/EECS 568/ROB 530
Mobile Robotics: Methods & Algorithms
Winter 2019

Previous years: [Winter 2018]

This is the official Mobile Robotics course website for the Winter 2019 Semester at the University of Michigan. We had 64 graduate students across the College of Engineering this semester.

Here is a photo of all of us together, right before the midterm exam.


Maani Ghaffari Jadidi,
Office Hours: Mon 4-5 pm - Room 204 NAME
Lectures: Mon-Thu 5-7 pm - Room 107 GFL
First class: Thursday, January 10


Maithili Varang Patel,
Office hours: Tue 1:30-3:30 pm - Room 204 NAME

Micheal Potter,
Office hours: Wed 2-4 pm - Room 204 NAME

Help outside of office hours: Use Piazza. Students are expected to help one another via Piazza.


Course Description

Theory and application of probabilistic techniques for autonomous mobile robotics. This course will present and critically examine contemporary algorithms for robot perception. Topics include Bayesian filtering; stochastic representations of the environment; motion and sensor models for mobile robots; algorithms for mapping, localization; application to autonomous marine, ground, and air vehicles.
The course material is based on previous UM courses imparted by Prof. Ryan Eustice and Prof. Edwin Olson.

Class Goals

Learn the math and algorithms underneath state-of-the-art robotic systems. The majority of these techniques are heavily based on probabilistic reasoning---an area with extensive applicability in modern robotics. An intended side-effect of the course is to strengthen your expertise in this area.

Note: the focus of the course is on math and algorithms. We will not study mechanical or electrical design of robots.


Probabilistic Robotics
S. Thurn, W. Burgard, and D. Fox
MIT Press, Cambridge, MA, September 2010.
ISBN-13: 978-0-262-20162-9, Third Printing

Errata for the third printing can be found at the book's website: It is strongly recommended that you annotate your text copy with the errata corrections. Otherwise, some variables, equations, and statements appear misleadingly wrong---causing all sorts of confusion!

State Estimation for Robotics
Timothy D. Barfoot, University of Toronto, 2018


Exposure to Linear Algebra, Probability and Statistics, Estimation, Matrix Calculation, basic Calculus such as Taylor series and function approximation would be useful. We will review them in the class.

For programming throughout the course, we use MATLAB. For your final project, you are free to choose MATLAB, Python, or C++ as your coding language. Also, see resources from the previous year's course website.


This exam is closed-book: you may not use the textbook, lecture slides, or notes, except for one 8.5” by 11” double-sided, hand-written formula sheet. Calculators may be used only for arithmetic calculations. Write your uniqname at the top of every page.

Late Submission Policy

Late submissions will lose Late submissions will lose 25%, 50%, and 100% of the initial mark per day, respectively; effectively, having 0 marks on the third day after the deadline. You may submit one assignment late with no penalty, this will be applied ONLY to your first late submission; you do not need to contact us and explain it.

IMPORTANT: If you update your documents once the submission is due, we will consider a late submission based on the last update on canvas

Regrade Policy

If you believe we graded a problem-set or an exam of yours incorrectly, you can submit a regrade request no later than one week after the graded work is originally returned. Regrade requests can be submitted in writing or by email to any member of the instructional staff.

Final Project

The final project is one of the most important parts of this subject and requires substantial efforts and teamwork. The project could be either of the following (the topic should be closely related to the course):

  • An algorithmic or theoretical contribution that extends the current state-of-the-art;
  • An implementation of a state-of-the-art algorithm using real-world data and/or robots;

Ideally, the project covers an interesting new ground and might be the basis for a future conference paper submission or product. You are encouraged to come up with your project ideas, yet make sure to pass them by your Lecturer (Maani) before you submit your abstract.

Here are a few examples from Winter 2018:


  • 4-5 students per project assigned randomly.
  • Proposal: 1-page description of project + goals for the milestone. This document describes the initial proposal and viability of the project.
  • Progress: 3-page milestone due. You are not graded on the milestone. Think of it as a sanity check for yourself that you indeed have started to make progress on the project and an opportunity to get feedback on your progress thus far, as well as on any revisions you might have made to your project goals.
  • Presentations: The presentation needs to be 7 minutes long. There will be a maximum of 3 minutes for questions after the presentation. If your presentation lasts more than 7 minutes, it will be stopped. So please make sure the presentation does not go over.
  • Paper: This should be an IEEE conference style paper, i.e., focus on the problem formulation, why it matters and what is interesting/novel about it, your approach, your results, analysis of results, limitations, future directions. Cite and briefly survey most-related prior work as appropriate. The page limit is 8 pages including references. Only papers submitted in Latex template together with .tex source files will be evaluated.  
  • You, as a group, will need to make your code publicly available on a git repository with a comprehensive or possibly a webpage explaining the details.


Download all code used in the slides as one zip file, .

Online Resources

There are a massive amount of related resources available online for free. I list some of the most related of them here so you can choose based on your preference and priorities.