CSC477: Introduction to Mobile Robotics, Fall 2021
Overview
This course provides an introduction to robotic systems from a computational perspective. A robot is regarded as an intelligent computer that can use sensors and act on the world. We will consider the definitional problems in robotics and look at how they are being solved in practice and by the research community. The emphasis is on algorithms, probabilistic reasoning, optimization, inference mechanisms, and behavior strategies, as opposed to electromechanical systems design. This course aims to help students improve their probabilistic modeling skills and instill the idea that a robot that explicitly accounts for its uncertainty works better than a robot that does not.Course Details
Instructor
x@cs.toronto.edu, x=csc477instructor
Lectures: Wed, 35pm ET
Office Hours: Thu, 34pm ET
Teaching Assistants
Office Hours: Tue, 45pm ET
Tutorial: Wed, 67pm ET
Office Hours: Fri, 1011am ET
Tutorial: Wed, 56pm ET
y@cs.toronto.edu, y=csc477tas
Course Links
Zoom links have been posted on Quercus
Announcements will be posted on Quercus
Discussions will take place on Piazza
Anonymous feedback form for suggested improvements
Course Description
This course will broadly cover the following areas: Kinematics and Dynamics: how can we model robotic systems using approximate physical models that enable us to make predictions about how robots move in response to given commands?
 Feedback Control and Planning: how can we compute the commands that can bring a robotic system from its current state to a desired state?
 Mapping: how can we combine noisy measurements from sensors with the robot’s pose to build a map of the environment?
 State Estimation: the state of the robot is not always directly measurable/observable. How can we determine the relative weighs of multiple sensor measurements in order to form an accurate estimate of the (hidden) state?
 Geometry of Computer Vision: how can modeling pixel projections on an RGB camera help us infer the 3D structure of the world? How can we triangulate points seen from two cameras? How can we estimate the camera’s pose (and therefore the robot’s) while it is moving in the environment?
Schedule
Week  Date  Lecture  Tutorial/Practical  Slides  Reading 

1  Sep 8 
Introduction Motivation, logistics, rough description of assignments, senseplanact paradigm. Syllabus Sensors and Actuators Camera, LiDAR, tactile, IMU, depth, GPS, Halleffect sensors, encoders, RGBD. PulseWidth Modulation. Motors. 
None  Dudek & Jenkin 3.1.1,4, 3.23, 4.18, 4.10, 5.1.1 Optional: Mike Langer's notes 

2  Sep 15 
Kinematics Frames of reference. Rotation representations. Homogeneous coordinates and transformations. Rigid body motion. Dynamics Dynamical systems and control. Examples: Dubins car, differential drive car, unicycle, pendulum, cartpole, quadcopter. Holonomic vs. nonholonomic systems. 
Intro to ROS  pdf,
pptx 
Paul Furgale: robot pose Lavalle 13.1 Dudek & Jenkin 3.1.5,6 
3  Sep 22 
PID Control Tuning, cascading PID, advantages and drawbacks. Artificial Potential Fields and Obstacle Avoidance Implementation issues, navigation functions. Vectorfield histogram (VFH), dynamic window approach (DWA). 
Linear algebra refresher 
pdf,
pptx 
Optional: Astrom and Hagglund, Ch. 2 Lavalle Ch. 8.4 Dudek & Jenkin 6.3.4 Optional: Howie Choset's notes 
4  Sep 29 
Linear Quadratic Regulator (LQR) Computing optimal actions for linear dynamical systems with quadratic costtogo functions. 
Probability refresher  pdf, pptx, code  Optional: Stephen Boyd's LQR notes and examples 
5  Oct 6 
Planning Dijkstra, A*, Rapidlyexploring Random Trees (RRT), Probabilistic RoadMaps (PRM) 
Intro to numpy, Implementing LQR  pdf, pptx  Blog post on A* Udacity Lesson 4 Lavalle 5.5, 5.6 
Oct 13 
Reading week 

6  Oct 20 
Map Representations and Map Alignment Occupancy grids, Octrees, Voronoi Graph, Homotopy Classes. Map alignment with known or unknown correspondences. Iterative Closest Point (ICP). Occupancy Grid Mapping With Known Robot Poses Logodds ratio, Probabilistic dynamics and measurement models, Bayesian estimation. 
Derivations for occupancy grid mapping  pdf, pptx 
Pieter Abbeel's notes
Pieter Abbeel's notes Probabilistic Robotics Ch. 2 and Ch. 9 
7  Oct 27 
Maximum Likelihood, Least Squares Estimation, Maximum A Posteriori Estimation Least squares as a special case of maximum likelihood estimation on Gaussian models. GraphSLAM Expectation and Covariance. Geometric interpretation of the covariance matrix. Nonlinear Least Squares formulation of the Simultaneous Localization And Mapping (SLAM) problem. 
Demonstrating gMapping  pdf, pptx  Udacity Lesson 6 Probabilistic Robotics Ch. 11 
8  Nov 3 
Kalman Filter Bayes' rule on Gaussian distributions. Example of 1D Kalman Filter. Bayes' Filter and Kalman Filter Kalman Filter as a special case of Bayes' Filter. Examples of 2D and 4D Kalman Filter. General prediction and update equations. 
pdf, pptx  Udacity Lesson 2 Kalman Filter, Illustrated, Probabilistic Robotics Ch. 2,3 

9  Nov 10 
Extended Kalman Filter (EKF) Bayes' Filter and nonlinear transformations. Monte Carlo sampling vs. Linearization. EKF prediction and update equations. Examples: EKF Localization and EKF SLAM. 
Basic Kalman Filter implementation  pdf, pptx  Cyrill Stachniss' intro to EKF Cyrill Stachniss' intro to EKFSLAM Probabilistic Robotics Ch. 2,3 
10  Nov 17 
Particle Filter Representing multimodal distributions. Particle propagation and resampling. Pathologies of particle filter. Importance Sampling. Examples: Markov localization in a known map. FastSLAM. 
pdf, pptx  Udacity Lesson 3 Optional: Thrun's paper on PF 

11  Nov 24 
Camera Optics and Multiview Geometry Pinhole cameras, lenses, perspective projection. Aperture, focal length, exposure time, depthoffield. Structure from Motion. 
pdf, pptx  Optional: James Tompkin's notes. Sanja Fidler's notes on depth from stereo 

12  Dec 01 
Visual odometry and Visual SLAM Epipolar constraints. Depth from stereo disparity for parallel cameras. Triangulation as a leastsquares problem. Scale issues in visual odometry with a single camera. Visual SLAM vs. structure from motion. 
pdf, pptx  Optional: James Tompkin's notes on stereo and
SfM. Sanja Fidler's notes on depth from stereo 

13  Dec 8 
Study break, beginning of exams 
Review for final exam 
Assignments
 Assignment #1, PID control for wall following and introduction to ROS, due Oct 6, 3pm ET.
 Assignment #2, Path planning with A*, RRT, and LQR control, due Oct 27, 3pm ET.
 Assignment #3, Occupancy grid mapping, EKF and leastsquares localization, due Nov 17, 3pm ET.
 Assignment #4, Particle filters and Monte Carlo localization. Bonus: depth from stereo, due Dec 7, 3pm ET.
Marking scheme
 4 assignments worth 15% each = 60%
 7 quizzes worth 2% each = 14%
 1 final exam worth 26%
Recommended, but optional, textbooks
 Probabilistic Robotics, by Thrun, Fox, and Burgard
 Planning Algorithms, by Lavalle
 Robotics, Vision, and Control, by Corke
 Computational Principles of Mobile Robotics, 2nd edition, by Dudek and Jenkin
 State Estimation for Robotics, by Barfoot
 Bayesian Filtering and Smoothing, by Sarkka
 Introduction to Autonomous Mobile Robots, by Siegwart, Nourbakhsh, Scaramuzza
 (Chapters 2 and 4 from) Computer Vision: Models, Learning, and Inference, by Prince
Related courses
 Pieter Abbeel's course
 Sebastian Thrun's Udacity course
 Related sections from James Tompkin's vision course
 Related sections from Sanja Fidler's vision course
 Related sections from Stephen Boyd's linear systems course
 Related sections from Russ Tedrake's underactuated robotics course