CMSC 20600: Introduction to Robotics

Spring 2024


The University of Chicago's CMSC 20600 Introduction to Robotics course gives students a hands-on introduction to robot programming covering topics including sensing in real-world environments, sensory-motor control, state estimation, localization, forward/inverse kinematics, vision, and reinforcement learning. This course is centered around 3 mini projects exploring central concepts to robot programming and 1 final project whose topic is chosen by the students. Each of these mini projects will involve students programming real, physical robots interacting with the real world. The use of physical robots and real-world environments is essential in order for students to 1) see the result of their programs ‘come to life’ in a physical environment and 2) gain experience facing and overcoming the challenges of programming robots (e.g., sensor noise, edge cases due to environment variability, physical constraints of the robot and environment).


Intro Robotics

Course Info



Course Projects



wall follow example
Warmup Project

The Warmup Project introduces students to robot programming in ROS (the Robot Operating System). This project serves as students' first application of processing sensor data, sending commands to the robot's motors, and implementing sensory-motor control. This project involves programming a robot to drive in a square, follow a person, and follow along a wall in an enclosed room.


particle filter example
Particle Filter Localization Project

The Particle Filter Localization project gives students the opportunity to implement a solution to the localization problem using a particle filter. This project is designed to give students the opportunity to learn about probabilistic approaches within robotics and to continue to grow their skills in robot programming.


q-learning example
Q-Learning Project

The Q-Learning project involves implementing a reinforcement learning algorithm (specifically Q-learning) to give your robot the ability to learn how to organize items in its environment. This project will also involves components of both 1) perception - detecting the items to organize and the locations for drop-off and 2) control - enabling the robot arm pick up the items and then navigate to the locations where they are to be dropped off.


final project example
Final Project

The final project gives students the opportunity to explore a robotics topic in-depth of their own choosing. Students will see this project through from start (coming up with a good idea) to finish (implementing their idea on a real robot), exploring a robotics algorithm in greater depth than was covered in class. The example pictured on the left shows a student final project from Spring 2022: a robot that takes an image fed to it, uses computer vision to identify line segments within the image, and use its arm to draw this image on a wall.


Teaching Team



Sarah Sebo

Sarah Sebo (she/her/hers)
sarahsebo@uchicago.edu

Tewodros Ayalew

Tewodros (Teddy) Ayalew (he/him/his)
tewodrosayalew@uchicago.edu

Timmy Lin

Ting-Han (Timmy) Lin (he/him/his)
tinghan@uchicago.edu

Danny Lingen

Danny Lingen (he/him/his)
dlingen@uchicago.edu