UCSD ECE276A: Sensing & Estimation in Robotics (Winter 2019)

Time and Location

  • Lectures: Tuesday and Thursday, 6:30 - 7:50 pm, in CENTR 101.

  • Final Review: Friday, March 15, 2019, 4:00 - 4:50 pm, in CENTR 109.

  • Final Exam: Tuesday, March 19, 2019, 7:00 - 9:59 pm, in CENTR 101.

  • TA Sessions: Jacobs Hall 4506

    • Monday, 1:00 - 2:00 pm

    • Tuesday, 1:00 - 2:00 pm

    • Wednesday, 4:00 - 5:00 pm

    • Thursday, 2:00 - 3:00 pm


  • Nikolay Atanasov: natanasov@eng.ucsd.edu

  • Harshini Rajachander: hrajacha@eng.ucsd.edu

  • Ibrahim Akbar: iakbar@eng.ucsd.edu

  • Tianyu Wang: tiw161@eng.ucsd.edu

  • Qiaojun Feng: qif007@eng.ucsd.edu

  • You-Yi Jau: yjau@eng.ucsd.edu


This course covers the mathematical fundamentals of Bayesian filtering and their application to sensing and estimation in 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).


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.


The class assignments consist of a final exam and three projects, each including 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 an object and estimate its relative position.

  2. Particle Filter SLAM: In this project, you will implement indoor localization and occupancy grid mapping using odometry and Lidar measurements.

  3. Visual Inertial SLAM: In this project, you will implement an Extended Kalman Filter to track the three dimensional position and orientation of a body using gyroscope, accelerometer, and camera measurements.

Students are expected to sign up on Piazza and GradeScope:MPWE8G. Discussion and important announcements will be made on Piazza. The homework should be turned in and will be graded on GradeScope:MPWE8G.


Grading will be based on the following rubric.

Project 1 20%
Project 2 25%
Project 3 25%
Final Exam 30%


The main reference for the course will be:

Here are a few other useful references:

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 A* algorithm” or “What is the update equation for Value iteration?”). 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.

IDEA Engineering Student Center

Please consider participating in the programs and events organized by the IDEA Engineering Student Center. The IDEA center, located just to the right of the lobby of Jacobs Hall, is a hub for student engagement, academic enrichment, personal and professional development, leadership, community involvement, and a respectful learning environment for all. The IDEA center's mission is to foster an inclusive and welcoming community, promote academic success, develop engineering leaders, and, most importantly, support your mental health and wellness needs. These opportunities can be found on the IDEA Center Facebook page and the Center web site.