CS545: Introduction to Robotics

Spring 2024

Course Staff

Daniel Seita

Hejia Zhang (Teaching Assistant)

Shihan Zhao (Teaching Assistant)

Use Piazza to contact the course staff: https://piazza.com/usc/spring2024/csci545

When posting any code debugging questions on Piazza, you must declare (in the post) that you have read our class policies here.

Lectures

Mondays and Wednesdays: 4:00 pm to 5:50 pm. Location: ZHS 352.

We will record lectures and share them on this website (see the "Recording" column below).

Office Hours

Daniel: Mondays, 5:50 pm to 7:00 pm, PHE 212.

Hejia: Thursdays, 3:00 pm to 4:00 pm, RTH 419.

Shihan: Fridays, 10:30 am to 11:30 am, RTH 419.

Exceptions: due to holidays on Jan 15 and Feb 19, Daniel will have office hours on Jan 16 and Feb 20, respectively, both from 4:30pm to 5:30pm.

Course Description

This class will introduce students to the fundamental questions in robotics: what are good models of the world and how to integrate them reliably into the planning of deployed robotic systems physically interacting with the environment. All these problems arise from the uncertainty due to sensor noise, modeling limitations, approximations in algorithmic computations and inherent unpredictability of action outcomes. The course will explore probabilistic techniques that allow robots to act reliably and exhibit a variety of different behaviors in spite of different sources of uncertainty. We will first cover algorithms for state estimation in both known and unknown environments. We will then explore functional aspects of robot’s interaction with the world, such as the geometry of configuration spaces and manipulation planning in these spaces. We will wrap up the course by exploring the interplay of inference and planning and its applications in robot autonomy, especially for manipulation and mobility.

Learning Objectives

In this course, you will be introduced to probabilistic techniques that allow state estimation, manipulation and planning in robotics. By the end of this course you should be able to:

Prerequisites

Students should have a solid background in probability, linear algebra, and calculus. Students should also be comfortable programming in Python.

Reading Material

Much of the lecture material is based on readings from:

Relevant Courses

Additionally, we will also have materials from these relevant courses:

The class from Stefanos Nikolaidis is the one that is most similar to the current class.
Grading

The overall course grade is based on:

We will share grades via Gradescope. We reserve the right to make tweaks to the grading as needed. When submitting assignments on Gradescope please follow the instructions carefully to make sure that the formatting is correct (e.g., if we ask for one page per answer, please do that). To encourage in-class attendance and productive discussions on Piazza, we may offer a small amount of extra credit points to students with excellent course participation or who have written exceptionally helpful or useful Piazza posts. In practice, this may help students who are just below the cutoff for a particular grade. We do not offer alternative times to take the midterm or final exam.

Acknowledgments

This course is mostly based on materials from Stefanos Nikolaidis' class at USC. We will cite other acknowledgements throughout the slides.

Syllabus

A few notes about the syllabus:
Date Class Topic Assignment (Released) Readings / References Slides Recording
Mon
Jan 08
01 Introduction HW 1 (Math Fundamentals);
Due Jan 21
Slides YouTube
Wed
Jan 10
02 Linear Algebra Review SS Appendix A;
Linear Algebra Review
Slides YouTube
Mon
Jan 15
No Class (MLK Jr Day)
Wed
Jan 17
03 Probability Review Lab 1 (Introduction to ROS);
Due Feb 04
TBF 2.1-2.2; CS287 #11;
Gaussians Review
Slides YouTube
Mon
Jan 22
04 Python/ROS Tutorial;
Bayes Nets I
CS188 BN Part 1 Slides;
Python/ROS
YouTube
Wed
Jan 24
05 Bayes Nets II CS188 BN Part 2 Slides YouTube
Mon
Jan 29
06 Bayesian Filters HW 2 (Kalman Filters);
Due Feb 13
TBF 2.3-2.4;
CS287 #11
Slides YouTube
Wed
Jan 31
07 Kalman Filters TBF 3.1-3.3; Video;
CS287 #12; CS545 #18
Slides YouTube
Mon
Feb 05
08 Particle Filters TBF 4.3; CS188 PF;
CS287 #14
Slides YouTube
Wed
Feb 07
09 Motion Models;
Sensor Models
Lab 2 (Monte Carlo Localization);
Due Feb 25
TBF 5.1-5.3.3, 6.1-6.3.1 Slides YouTube
Mon
Feb 12
10 Localization and Mapping TBF 7.1-7.4.3, 10.1-10.2 Slides YouTube
Wed
Feb 14
11 Mathematical Programming Lagrangian Video Slides YouTube
Mon
Feb 19
No Class (President's Day)
Wed
Feb 21
12 Configuration Spaces LP 2.1-2.6, CL 3.1-3.2, 3.7 Slides YouTube
Mon
Feb 26
13 AIKIDO Tutorial; Guest Lectures;
Midterm Review
Slides YouTube
Wed
Feb 28
14 Kinematic Transformations LP 3.1-3.2.1, 3.3.1, CL 3.5 Slides YouTube
Mon
Mar 04
15 Midterm Exam (in class)
Wed
Mar 06
16 Forward and Inverse Kinematics LP 5 (before 5.1), 6.1-6.2;
MR Video, Ch 6
Slides No Recording
Mon
Mar 11
Spring Break
Wed
Mar 13
Spring Break HW 3 (Inverse Kinematics);
Due April 01
Mon
Mar 18
17 Motion Planning I Lab 3 (RRT for a Manipulator);
Due April 12
CL 7.1; LA 5.6, 6.2.2;
MIT 6.843 #16
Slides YouTube
Wed
Mar 20
18 Motion Planning II CL 7.2; LA 5.4-5.5, 7.1, 7.3;
CS287 #10
Slides YouTube
Mon
Mar 25
19 Markov Decision Processes CS188 MDPs I, MDPs II;
CS287 #02
Slides YouTube
Wed
Mar 27
20 Acting Under Uncertainty CS 188 VPI Slides YouTube
Mon
Apr 01
21 Task Space Regions Lab 4 (Task Space Regions);
Due April 26
TSP Paper Slides YouTube
Wed
Apr 03
22 Reinforcement Learning CS 188 RL Slides YouTube
Mon
Apr 08
23 Imitation Learning HW 4 (Imitation Learning);
Due April 26
Berkeley Deep IL Slides YouTube
Wed
Apr 10
24 Dynamics RT Appendix B; CS287 #21 Slides YouTube
Mon
Apr 15
25 Simulation and Sim-to-Real LP 8.1.1; CS287 #22 Slides YouTube
Wed
Apr 17
26 Rotation and 3D Representations LP App. B; MIT 6.4210 #06 Slides YouTube
Mon
Apr 22
27 Advanced / Special Topics
Final Exam Review I
Slides YouTube
Wed
Apr 24
28 Final Exam Review II;
Course Wrap-up
Slides YouTube
Wed
May 01
Final Exam (4:30 to 6:30pm)