UCSD ECE276A: Sensing & Estimation in Robotics (Fall 2017)

Time and Location

Monday and Wednesday, 6:30-7:50 PM, in CENTR 214.




This course covers the mathematical fundamentals of Bayesian filtering and their application to sensing and estimation in mobile robotics. Topics include maximum likelihood estimation (MLE), expectation maximization (EM), Gaussian and particle filters, projective geometry, visual features and optical flow, simultaneous localization and mapping (SLAM), and Hidden Markov models (HMM).


The class assignments consist of four projects, each including a theoretical homework, a programming assignment (in Python), and a project report:

  1. Color Segmentation: In this project, you will train a color model using Gaussian Mixtures and Expectation Maximization and use it to detect a red barrel and estimate its relative position.

  2. Orientation Tracking: In this project, you will implement an Unscented Kalman Filter to track the three dimensional orientation of a body using gyroscope and accelerometer measurements.

  3. SLAM: In this project, you will implement indoor localization and occupancy grid mapping using odometry, inertial, laser range, and RGBD measurements from a humanoid robot.

  4. Gesture Recognition: In this project, you will implement a Hidden Markov Model to recognize arm gestures using gyroscope and accelerometer measurements.

Grading will be based on the following rubric.

Project 1 % Project 2 % Project 3 % Project 4 %
Homework 8 Homework 8 Homework 8 Homework 8
Report 6 Report 6 Report 6 Report 6
Segmentation 5 UKF/train 5 SLAM/train 6 HMM/train 3
Barrel Detection 3 UKF/test 4 SLAM/test 4 HMM/test 4
Barrel Distance 2 Panorama 4 Textured map 4

The class material can be discussed on Piazza. Your code should be turned in on TritonEd. Instructions for creating a python executable file can be found here. The homework and project reports should be turned in on GradeScope:9X3G8V. Grades will be posted on GradeScope.


Students are expected to have background in linear system theory at the level of ECE 101, probability theory at the level of ECE 153, and optimization theory at the level of ECE 174, as well as reasonable programming experience.

Collaboration and Academic Integrity

Please note that an important element of academic integrity is fully and correctly attributing any materials taken from the work of others. You are encouraged to work with other students and to discuss the assignments in general terms (e.g., “Do you understand the EM algorithm” or “What is the update equation for the Kalman filter?”). However, the work you turn in should be your own – you should not split parts of the assignments with other students and you should certainly not copy other students’ code or papers. All projects in this course are individual assignments. More generally, please familiarize yourself with UCSD's Code of Academic Integrity, which applies to this course. Instances of academic dishonesty will be referred to the Office of Student Conduct for adjudication.