Fall 2019
Department of Computing Science
University of Alberta

Instructor: Dr. Hong Zhang, 407 Athabasca Hall, 492-7188, hzhang@ualberta.ca
Course Page: http://www.cs.ualberta.ca/~zhang/c631
Lectures: Mondays and Wednesdays 10:30-11:50 AM, CSC B 41
Office Hour: Tuesday 10:00 - 12:00


This course is concerned with the subject of autonomous robot navigation. The students will become familiar with related mobile robotics research and study a number of classical and modern algorithms. Specifically, the course will focus on how a mobile robot builds a map and localizes itself in that map at the same time (the so-called SLAM problem), by making use of the information collected by its sensors such as laser range finders and cameras. The lectures will introduce both basic and advanced SLAM algorithms, and the students will gain an in-depth understanding of these algorithms by both reading research papers and examining their software implementations. Class lectures and homework assignments will rely on the Robot Operating System (ROS) - which provides libraries and tools to help software developers quickly create robot applications - to control robots in simulated environments and study SLAM algorithms on benchmark datasets.

Course Topics

  • Introduction to robotics
  • Robot Operating System (ROS)
  • Coordinate frames, transformations, and robot kinematics
  • Sensors: LiDARs, cameras, RGB-D, and IMU
  • Odometry: wheel, visual and LiDAR odometry
  • Filter-based SLAM algorithms
  • Optimization-based SLAM algorithms
  • Place recognition and loop closure detection
  • Path planning and collision avoidance

Graduate student status in Computing Science or consent of the instructor; personal Linux (running Ubuntu 16.04) computer and familarity with installing and developing software (in either Python or C++) on Ubuntu.

Reading Assignments
Lecture Notes Homework Assignments Course Project YouTube Videos




    Student evaluation is based on four assignments (40%), one midterm (20%) and the course project (40%).