CSE P590A: Robotics

Spring 2023

Wed 6:30-9:20PM @ CSE2 G10

Instructor:

Dieter Fox
Office Hours: Tues 12:00-1:00PM
Gates 204   |   Zoom Link

Teaching Assistants:

Sign up sheet for office hours.

Overview:

This class will provide an overview of the fundamental problems and techniques in robotics by covering three broad areas with applications in mobile robotics, manipulation, and autonomous driving:

  • State Estimation: How can a robot understand the world around it, both spatially and conceptually? Topics include sensor and motion models, Bayesian filtering, localization, and mapping.
  • Planning: How can a robot use its understanding of the world to plan actions and accomplish objectives? Topics include motion planning, heuristic and sampling-based planning, manipulation, and autonomous driving.
  • Learning: How can a robot learn to interpret its sensor data and perform actions to solve tasks? Topics include Gaussian processes neural networks, and vision for robotics.
This class will use the basic tools of probability and linear algebra. Prior exposure to AI techniques, such as those covered in CSE 473, is very helpful. The programming assignments will use Python and Numpy. Familiarity with these concepts and tools is recommended, but we will make every effort to get students up to speed who need extra background. The assignments use the PyBullet simulator, and are designed to run in Ubuntu, but we will provide a VM for students who do not have access to their own Ubuntu machine, and will help students navigate this infrastructure. Some assignments will also use Pytorch for machine learning. Familiarity with this is helpful, but not expected. We will provide tutorial sessions during some lectures to help students understand the tools as they become necessary for the assignments.

If you have a Windows machine, and want to use the VM, please go to: here and download VMware Workstation Player for Windows. You will also need to download both the .vmdk and the .ovf files. The VM username is "robotics" and password is also "robotics".


Discussion:
Canvas: https://canvas.uw.edu/courses/1633256

Please access Zoom class lectures and recordings via Canvas. The zoom link is here.

Discussion board: https://edstem.org/us/courses/37898/discussion/

Use this board to discuss the content of the course. Feel free to discuss homeworks, projects, and any confusion over topics discussed in class. It is also acceptable to ask for clarifications about the statement of homework problems, but not about their solutions.


Textbook:
There is no required textbook for the class. Many of the lectures and homework assignments will have associated papers and chapters from:

Probabilistic Robotics, S. Thrun, W. Burgard, and D. Fox., MIT Press, Cambridge, MA, September 2005.


Homeworks Assignments:
There will be 3 homework assignments. Each will have a written portion and a programming portion. All programming portions will be written in Python and make use of Numpy for linear algebra operations. Some assignments will also use deep learning with Pytorch. The programming assignments will also use PyBullet to simulate various robotics platforms. We will provide tutorials for these tools during the second half of the lectures.

  • Assignment #1, due Wed, Apr 26, 11:59PM (PDF, Code)
  • Assignment #2, due Wed, May 24, 11:59PM (PDF, Code)
  • Assignment #3, due Sun, Jun 4, 11:59PM (PDF, Code)
Late policy: Assignments may be handed in up to five days late, at a penalty of 10% of the maximum grade per day. For the whole quarter, you have a total of 6 late days that do not incur any penalty.

Grading:
You will submit your assignments (both writeups and code) to gradescope. You have all been enrolled into the class. Please check your email. Each assignment is worth one third of your final grade.


Anonymous Feedback:
Please send your feedback via https://feedback.cs.washington.edu/


Course Outline

Lectures

Date Topic Slides Reading (textbook/papers) Homeworks
29-Mar Introduction, Probabilistic State Estimation Intro, Bayes Filters
Tutorial Slides, Tutorial Files, Zoom Recording
Probabilistic Robotics (Ch 1, 2)
5-Apr Bayes Filters, Motion Models Motion and Sensor Models, Tutorial Slides, Tutorial Notebook, Doc for Interactive Suggestions Probabilistic Robotics (Ch 5, 6)
12-Apr Sensor Models, Kalman Filters Kalman Filters, Tutorial Slides Probabilistic Robotics (Ch 3, 7)
19-Apr Particle Filters Particle Filters, Tutorial Slides, Sympy Example, Plotting Script Probabilistic Robotics (Ch 4, 8)
26-Apr Mapping, SLAM Mapping Probabilistic Robotics (Ch 9 - 11), GTSAM
3-May Deterministic Planning Deterministic planning Motion planning, A* slides from 473
10-May Sample-Based Planning and MDPs Sampling-based planning, MDPs RRT, Probabilistic Robotics Ch. 14
17-May Inverse RL, Manipulation, Imitation Learning MDP-IRL, Imitation Learning Slides, Racecar Example
24-May Manipulation, Review, Reinforcement Learning Manipulation, Review, Policy Gradient
31-May Reinforcement Learning Policy Gradient, Training with Limited Data, Off Policy RL Reinforcement Learning: An Introduction