Syllabus

ROB 330 · Localization, Mapping, and Navigation · Fall 2026

Meets
MoWe 10:30AM–12:00PM
Location
1050 FMCRB
Credits
4
Instructor
Xiaoxiao Du

View the schedule Office hours


Table of contents

  1. Course description
    1. What that looks like week to week
  2. Prerequisites
    1. What that means in practice
  3. Textbook and materials
  4. Grading
  5. Course policies
    1. Late work
    2. Collaboration and academic integrity
    3. Accommodations
  6. Getting help

Course description

Development of full-stack autonomous navigation and mapping for mobile robots. Topics include dead reckoning from odometry, sensor modeling of LIDAR and cameras, visual odometry, path planning, and simultaneous localization and mapping (SLAM). Course topics will be implemented in hardware.

What that looks like week to week

This course develops a full-stack autonomous navigation and mapping system for a mobile robot, from wheel encoders to a complete map-and-navigate demonstration. We work bottom-up: pose estimation by dead reckoning from odometry, probabilistic measurement models for LiDAR, path planning over occupancy grids, and simultaneous localization and mapping (SLAM).

We will implement mapping, localization, and navigation algorithms in physical hardware using the MBots.

Prerequisites

Advisory prerequisite: none.

Enforced Prerequisite: EECS 280 and (IOE 265 or EECS 301 or BIOMEDE 241) and (ROB 101 or MATH 214 or MATH 217 or MATH 417 or MATH 419). Minimum grade requirement of “C-” for enforced prerequisite.

What that means in practice

Coming in, you should be comfortable:

  • Writing and debugging a program of a few hundred lines, and reading someone else’s — you will be handed a partial stack and asked to complete it.
  • Multiplying and inverting matrices, and knowing what an eigenvector and a least-squares solution are.
  • Reasoning with a probability distribution, a conditional probability, and a Gaussian — its mean, its covariance, and what a covariance’s off-diagonal terms mean.
  • Use Git for version control.

The current MBot platform uses ROS2 Jazzy. You may find the ROS2 Documentation helpful. We will also cover helpful commands in class.

Be prepared to work in a team. Most checkpoints are done in teams.

Textbook and materials

There is no required textbook for this course; however, readings may be suggested from the textbook Thrun, S., Burgard, W., & Fox, D. (2005). Probabilistic robotics. The MIT Press. The instructors may provide additional references.

See the Resources page for more.

Grading

Component Format Points
Checkpoint 0 — MBot Intro Assignment Individual 5
Checkpoint 1 — Setpoint Challenge Group 15
Checkpoint 2 — SLAM Challenge Group 15
Checkpoint 3 — Escape Challenge Group 15
Checkpoint 4 — Camera Calibration Group 5
Checkpoint 5 — Semantic/Visual SLAM Group 15
Midterm Individual; 10 written + 5 oral 15
Final Individual; 10 written + 5 oral 15
PrairieLearn Individual 5
Participation (Tandem, Piazza, course evaluation, etc.) Individual 5
Total   110

Your overall course grade is based on the total points earned from the coursework above, subject to the minimum-score conditions below.

Grade Points earned Conditions
A 96.0 points and above All items earn at least 70% of their maximum score.
A− 92.0–95.9 points All items earn at least 60% of their maximum score.
B+ 88.0–91.9 points All items earn at least 50% of their maximum score.
B 84.0–87.9 points All items earn at least 40% of their maximum score.
B− 80.0–83.9 points All items earn at least 30% of their maximum score.
C+ 75.0–79.9 points All items earn at least 20% of their maximum score.
C 70.0–74.9 points All items earn at least 10% of their maximum score.
C− 60.0–69.9 points  

Course policies

Late work

Checkpoints lose 10% of the earned score per day late, counted in whole days from the deadline, for up to four days. After four days the checkpoint is not accepted and receives no credit. A submission at or after 12:10 am is one day late.

Weekend days count the same as weekdays.

Hardware failure is not automatically an extension, but it is also not your fault. If your robot breaks, a sensor fails, or the lab is inaccessible, tell the staff before the deadline — we will work out a revised date. What does not work is reporting it afterward, because by then we cannot distinguish a hardware problem from a scheduling one.

Every deadline is 11:59 pm Ann Arbor time on the date listed on the schedule.

Collaboration and academic integrity

Robotics is a collaborative field and debugging a robot with someone else is one of the better ways to learn. The line this course draws:

Encouraged

  • Discussing concepts, algorithms, and derivations with anyone.
  • Helping a classmate diagnose a hardware or environment problem — a miswired encoder, a dead battery, a build error.
  • Comparing results and asking why yours differ.

Not allowed

  • Submitting code you did not write, including a classmate’s, a previous term’s, or code from a public repository, unless the checkpoint says otherwise.
  • Sharing your solution code with a classmate who has not submitted yet.
  • Submitting data you did not collect. Every trajectory, scan, and image you report must come from your own robot on your own run.

Always

  • Name every collaborator and cite every outside source in your submissions.

Generative AI tools (ChatGPT, Claude, Copilot, and similar) may be used to explain concepts, review your own code, and help interpret error messages. They may not be used to generate code or written analysis that you submit as your own. If you use them at all, say so in your submissions — one line naming the tool and what you used it for.

Work you submit must be your own, and so must your data. Cite every source and collaborator. When in doubt, ask before you submit — not after.

Suspected violations are reported through the College of Engineering Honor Council.

Accommodations

The University of Michigan recognizes disability as an integral part of diversity, equity and inclusion, and is committed to creating as accessible educational environment for students with disabilities/disabled students as possible.

Disability can include: mental health conditions, ADHD, learning disabilities, autism, chronic illness, physical conditions, sensory conditions, and more.

If you anticipate or are experiencing barriers based on disability or temporary injuries, Services for Students with Disabilities (SSD) is the office that students work with to explore reasonable accommodations, tools, and resources.

If you are already connected with SSD and have approved accommodations, please share your letter through Accommodate as soon as possible so that we can discuss how your accommodations will be implemented in this course. The sooner I know about your disability access-needs, the more equipped I can be to facilitate accommodations. You should reach out to me and/or your Disability Access Coordinator if you have any questions or concerns about your accommodations.

If you have not connected with SSD and anticipate or are experiencing a disability-related barrier, and would like to discuss accommodations and/or resources, please contact SSD by completing their initial information form.

If you have a temporary medical injury/condition, such as a broken arm, I may be able to assist in minimizing classroom barriers. In situations where additional assistance is needed, you should contact the SSD as noted above.

For more information, call 734-763-3000 or email ssdoffice@umich.edu.

Getting help

  1. Come to class!
  2. Bring it to office hours.
  3. Post to Piazza so classmates benefit from the answer.
  4. Email course staff with ROB 330 in the subject line.