Introduction to Robotics

Instructor: Stefanos Nikolaidis (nikolaid at usc dot edu)

TAs: Aravind Kuramaguru, David Millard, Gautam Salhotra

Lectures: Mon / Wed 3:30 - 4:50pm, LVL 17

Office Hours: Mon / Wed 5:30 - 6:30pm, RTH 401

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 and human-robot interaction.

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 are required to have knowledge of probability theory, linear algebra and calculus. Programming knowledge of Python is also required.

Reading Material: There is no required textbook for this course. The lecture material is available online. Much of the lecture material is taken from these books:

The assignments and final exam will be based only on material covered in the lectures.

Grading:

Component Percentage
Lab Assignments 35%
HW Assignments 25%
Final Exam 20%
Participation 10%
Scribing 10%

Assessment of Assignments

Note: Regardless of the grading system, you are required to submit all homework assignments, lab assignments, take the final exam and regularly attend lectures to receive a passing grade for the class.

Tentative Schedule:

Date Lecture Topic Assignment (Released)
Readings Notes
Aug 26 1 Introduction
Wed
Aug 28
2 Matrix Algebra Refresher HW1 (Math Fundamentals)
Mon
Sep 02
Labor Day (no class)
Wed
Sep 04
3 Probability Theory
Mon
Sep 09
4 Python / ROS Tutorial Lab1
Wed
Sep 11
5 Bayesian Networks RN Ch. 13-14
Mon
Sep 16
6 Linear Dynamical Systems
Wed
Sep 18
7 Bayesian and Kalman Filters TBF Ch. 2, 3.1-3.2.3
Mon
Sep 23
8 EKF and Particle Filters HW2 (KF/EKF) TBF Ch. 3.3.1-3.3.3, 4.3.1-4.3.2
Wed
Sep 25
9 Motion and Sensor Models TBF Ch. 5.3.2, 5.4.2, 6.3.1, 6.6.2
Mon
Sep 30
10 Localization and Mapping TBF Ch. 7.4.1, 7.4.2, 7.5.1, 9.2 - excluding 9.2.1
Wed
Oct 02
11 SLAM Lab2 (Localization) TBF 10.2.1, 10.2.2
Mon
Oct 07
12 AIKIDO Tutorial
Wed
Oct 09
13 Guest Lecture (TBD)
Mon
Oct 14
14 Mathematical Programming
Wed
Oct 16
15 Configuration Spaces CL 3.1,3.2, 3.5.1
Mon
Oct 21
16 Kinematic Transformations HW3 (FK / IK) CL 3.6-3.8
Wed
Oct 23
17 Combinatorial Motion Planning CL 5.1.1, LA 6.2.2, LA 7.1.1
Mon
Oct 28
18 Sampling-based
Motion Planning I
CL 7.1.1, 7.2.2
Wed
Oct 30
19 Sampling-based
Motion Planning II
HW4 (RRT) CL 7.3.3, LA 7.3.1
Mon
Nov 04
20 Constraint-based Planning Task Space Regions
Wed
Nov 06
21 Guest Lecture (TBD)
Mon
Nov 11
22 Guest Lecture (TBD) Lab 3 (Motion Planning)
Wed
Nov 13
23 Dynamics
Mon
Nov 18
24 Non-Linear Control
Wed
Nov 20
25 Data-Driven Manipulation Lab 4 (Task Space Planning) Learning with Human Adversaries
Mon
Nov 25
26 Human-Robot Interaction
Wed
Nov 27
Thanksgiving (no class)
Mon
Dec 02
27 Recap I
Wed
Dec 04
28 Recap II

Additional Policies: Please read the statement on academic conduct and student support systems. Unless you are assigned to compile lecture notes, please refrain from using laptops or other electronic devices during class.