Home Assignments Lecture Blog Resources Discussion Group

91.451 Mobile Robotics II (ugrad) / 91.549 Mobile Robots (grad)

Fall 2015

Prof. Fred Martin
Tue/Thu, 3:30p – 4:45p

Catalog description

Advanced topics in robotics, including laboratory. Topics to be covered include probabilistic methods, including sensor modeling, hidden Markov models, particle filters, localization, and map making. Research-level robots are used in the laboratories. Pre/Co-Requisites: Pre-req: 91.450 Mobile Robotics I, and Co-req: 92.386 Probability and Statistics I.
academic year 2015–2016, for the undergrad version

More course description

This course will focus on the emerging field of probabilistic robotics. We will study the probabilistic theory that allows a robot to build a robust model of the external world, even though it resides in a body that has noisy sensors and sloppy actuators.

We'll begin by studying localization (the problem of figuring out a robot's position or “pose”) when given a world map.

As mentioned, topics include sensor modeling, hidden Markov models, particle filters, localization, and map making.

We'll conclude with understanding the famous “simultaneous localization and mapping” (SLAM) algorithm, which is the basis of autonomous automobiles and other robotic systems.

The course will focus on discrete methods. Continuous methods will be briefly mentioned as relevant.

The course will have a strong implementation component.


  • per the listed requisites, prior or current enrollment is 92.386 Probability and Statistics I (or equivalent).
  • a solid programming background.
  • the preferred course language is Python; you must either have prior experience or be willing to learn it.
  • Unix expertise (or the willingness to learn it).

To be clear on the latter point: For technical reasons, Windows may not be used at the host platform for course work—except as an environment for running Linux using VirtualBox or VMware. Computers will be available in Olsen 302 with the proper configuration.

The course will also require you to be a self-directed learner, seeking out solutions to only partially-structured problems, and ultimately specifying and carrying out your own final project.

Course text

Probabilistic Robotics (2005)
Sebastian Thrun, Wolfram Burgard, & Dieter Fox

Practical work

Programming work will be conducted in the Ubuntu 14.04 “Trusty” operating system. We will use the Robot Operating System (ROS) libraries and tools.

ROS will allow us to develop control programs for simulated robots, including the ability to process robot-centric laser ranger data.

You will develop a control program for a simulated robot in a simulated world, and then be able to seamlessly run that control program on real robots running in the real world. The use of the simulation tools are essential, given the amount of work involved in creating successful control programs and the relatively low availability of live robot time in the field.


All of the weekly problem sets will be conducted in simulation, using ROS.

After this, the course will have a semester project, in which you will create a problem, study it, and solve it.

You may continue work in simulation, or you may implement work on a physical robot.

You may build upon prior robot work done in Robotics I / Robot Design.

Also, we have a number of Bilibot robots, which are an open-source robotics platform that is based on an iRobot Create with an integrated Core i3 motherboard, a Microsoft Kinect point-cloud 3d sensor, and a custom arm. (The Bilibot was co-developed by an alum of the UML Computer Science Department. The company that made it is no longer operating, but the co-developer is available to help us get our robots running.)

Discussion group and email list

We will use Google Groups for class conversation and announcements. The group is—Mobile Robots Fall ’15.

Click on the link Discussion Group here or at the top of the site to join.


The following plan will be used in determining course grades:

30% Weekly assignments (problem sets and reading summaries)
20% Midterm (theory and programming)
35% Project (implementation and final paper)
15% Participation (classroom, lab, and online)


Each student is responsible for their own work for the weekly assignments.

For the final project, teams of two persons will be encouraged. Teams of three will be allowed only with a plan for the work that gives each team member a clear and distinct role.

Academic Integrity

I expect you to follow the university’s policies on academic integrity (undergrad; grad).

In short: the work you submit must be your own; do not help others cheat; cite prior work that you use.

Core Curriculum 2015 Essential Learning Outcomes

This course will deliver two Core Curriculum 2015 Essential Learning Outcomes (ELOs) in the Computer Science undergraduate degree program: Applied and Integrative Learning (AIL) and Information Literacy (IL).

Applied and Integrative Learning

Definition: Applied and Integrative Learning is an understanding and disposition that a student builds across curriculum and co-curriculum, fostering learning between courses or by connecting courses to experiential learning opportunities.

The semester project will require you to set your own challenge based on the concepts learned in this class but also all of your knowledge from your prior courses. You will be expected to reach for something where you don't already know the answer, document your process of investigation, and your conclusions.

Thus, you will use your computer science knowledge in an integrative and applied way to accomplish the project.

The project will be graded with a rubric to assess this learning outcome.

Information Literacy (IL)

Definition: The ability to use digital technologies, communication tools and/or networks to define a problem or an information need; devise an effective search strategy; identify, locate, and evaluate appropriate sources; and manage, synthesize, use and effectively communicate information ethically and legally.

As part of the semester project, you will do a literature review of related work. The class will provide you with guidance on how to do this. You will describe how this prior work has influenced your planning, and you will describe how your results are related to this prior research.

Specifically in the field of computer science, you will learn to conduct literature reviews, and you will learn how to use state-of-the-art research results in interpreting your own original work.

The project will be graded with a rubric to assess this learning outcome.

Graduate vs. Undergraduate section

The graduate section of the course will have a longer paper as part of the semester project.