EECS 467: Autonomous Robots

Software methods and implementation for robot perception, world mapping, and control, using physical robots. Topics include: sensors, sensor processing, control, motion planning, localization and mapping, and forward and inverse kinematics. Multiple team projects, culminating in a major design experience (MDE) project. (4 credits)

Covid-19 Pandemic: Due to the public health situation, this course will be taught entirely online during Fall 2020, which will require many changes from previous terms. This document will also change, so check for updates.

Course Overview

EECS 467 is a very demanding, hands-on, group-oriented lab course in which teams of four students work together on physical robots. During the last half of the course, you will define your own teams, and each team will propose, implement, and demonstrate a self-determined design project using physical robots. In preparation for this, during the first half of the course, there is one individual assignment, and three assignments done in randomly-assigned teams. The entire course is directed toward the Project Expo on the final class day.

It is now clear that the Covid-19 pandemic will require serious social distancing to prevent infection, so EECS 467 will be conducted remotely. We have a new plan, which I believe will be exciting and effective, but it will be demanding on all of us.


For this to work, every student must have a physical robot to use at home in their own environment. To be both affordable and state-of-the-art, we have designed a new small mobile robot (the MBot Mini), replacing lidar (expensive) with vision (much less expensive, while providing much more information) as the primary sensor. We have also upgraded the onboard computational resources.

You will receive this robot as a bag of parts, and your first assigment will be to assemble and test your robot.

You will need a reasonably powerful home computer (desktop or laptop), with wifi, to run Ubuntu Linux (in a virtual machine or dual-boot) and to be able to to support software development for your robot. More details to be provided.


As in previous years, most assignments will be done in teams of four students. For the first three assignments, the teams will be randomly assigned. For the final project (the last half of the course), you will select your own four-person teams.

For each assignment, your team will have a goal, and your team will achieve its goal when all members can demonstrate the required behavior in their own environment. You will need to work together intensively, communicating by video-conference, email, and other methods you choose. See the section, On Working Together, at the bottom of this page.

I plan to meet with each team for at least 30-60 minutes per week, and I will be available for individual or group office hours by appointment. The GSI will be available in the same fashion.

We do have a lab (422 SRB), which may be reserved for one team at a time, but we expect that most teamwork will be done through video-conference, using your robots in your own home environment. We will be sharing the lab with students from ROB 550.

There is a Standard Operating Procedure for staying safe in the lab, including staying masked, disinfecting surfaces, and keeping well distanced from each other. If it's consistent with public health for your team to meet in person, including meeting in 422 SRB and working on a shared robot, you may do that. However, this may not be feasible, so don't count on it.


I would prefer to have in-person lectures, but this appears to be unwise. My current plan is to have on-line lectures on Zoom during the regularly-scheduled course period, MW 9:00 to 10:20 am, with plenty of time available for questions and discussion. Lectures will be recorded for later viewing.


Assignment 0 is a short “Hello, World!” assignment for individual students. Your tasks are (a) to build your robot, (b) to get your software and networking infrastructure set up and working, and (c) to get acquainted with the software development and data visualization tools.

In Assignment 1, you will be randomly assigned to a team. The goals of your team are to implement an interface to the motors that will allow you to drive the robot around at desired linear and angular velocity, controlled interactively from your home computer. At the same time, you will receive a stream of visual images from the onboard camera. You will implement a program with the ability to (a) detect, and (b) track certain simple targets (+) within the visual image as the robot moves. Finally, you will use an existing more powerful library of features that you can track in a more general environment.

In Assignment 2, new random teams will develop control laws to guide their robots several times around a square environment, comparing the performance of open-loop motor control (generally terrible), closed-loop control based on odometry sensing (better, but still with cumulative errors), and closed-loop control based on both odometry and visual tracking of appropriate targets (quite good). This allows your robot to move effectively based on the perceptual features it receives.

In Assignment 3, new teams of students build SLAM (Simultaneous Localization and Mapping) systems for their mobile robots. This allows the robot to translate its internal perceptual features into properties and locations of targets, described with respect to a frame of reference for the external world.

Throughout, the theme of the course is integration of sensing, planning, and acting to make changes in the environment. Assignments 1, 2, and 3 are done in randomly-assigned groups.

Final Project

Based on these assignments, students form their own teams for the final project. Each team proposes a project, sets milestones to track its own progress, submits a progress report, prepares for and gives a final public demonstration [traditionally in the Beyster atrium (Tishman Hall) but now probably online], and submits a written final report. All projects involve physical robots accomplishing non-trivial tasks in the physical world, dealing with "real-world" constraints, through sensing, decision-making, and acting.


Assignment 0 10% individual
Assignment 1 15% group
Assignment 2 15% group
Assignment 3 15% group
MDE Project 30% group
Participation 10% individual
Robot return 4% individual
Course eval 1% individual


We use Piazza as a discussion tool for asking and answering questions among students and class staff. This year's link is

There is a lot of important sharable knowledge about "incantations" for accomplishing various goals that you can teach each other, and learn more effectively from each other.

Post your questions on Piazza. Answer other people's questions. Search previous discussions for answers to your questions.



The schedule describes the sequence of lecture topics, the readings to be done before each lecture, and the assignment due dates.

On Working Together

A Major Design Experience (MDE) course is fundamentally group-based. Success of the group depends critically on the abilities of the members of the group to collaborate toward defining and reaching a shared goal.

Group members will have different strengths and weaknesses, and each group will need to find ways to work together effectively. Essentially, each member of a team functions partly as a teacher, and partly as a student, of the other members of their team. This means that individual group members must respect and support each other, but they must also earn the respect of the others, and know when and how to ask for (and accept) their support.

The final project is done in self-organized teams, but the earlier assignments are done in randomly-assigned teams, which is arguably a more realistic model. This is done to help you learn to collaborate effectively with anyone.

After each team assignment, including the final project, each of the members will submit an individual evaluation of each member of their team, including themselves, on a 1 to 5 scale. The course also includes a few individual evaluations, such as the "Hello, World!" assignment. But the bulk of the evaluation is based on group performance.

It is well-understood that collective activities can be positive-sum, zero-sum, or negative-sum. Collaborative teamwork is intended to be very much positive-sum: "the whole is greater than the sum of its parts." But there are zero-sum and negative-sum pitfalls, that you must learn to identify and avoid.

This course has the potential to be an outstanding experience, but you must make it so.