Spring 2025 (Archived)

CS 123: A Hands-On Introduction to Building AI-Enabled Robots

Pupper

Pupper Robot

2024-2025 Spring Teaching team:

Sign-Up Form: This form will open on Friday, 3/7/2025 at 9AM PST for applications. Please fill out this form if you are interested in enrolling for our Spring offering!

Overview:

Welcome to the course page for Stanford’s class on legged robots! This course offers a hands-on introduction to AI-powered robotics. Unlike most introductory robotics courses, students will learn essential robotics concepts by constructing a quadruped robot from scratch and training it to perform real-world tasks such as navigation and command following. The course covers a broad range of topics critical to robot learning, including motor control, forward and inverse kinematics, system identification, simulation, and reinforcement learning. Through weekly labs, students will construct and program an agile robot quadruped named Pupper. In the final few weeks, students will undertake an open-ended project, such as training Pupper to perform agile movements, developing a vision system to allow Pupper to play fetch, or adapting large language models to enable Pupper’s ability to communicate with humans.

“Empowering robots with AI is essential to make them smart and useful in people’s daily life. It is one of the most important research directions in both academia and industry. This class teaches the most relevant skills, gives students hands-on experiences, and prepares them for a career in the area of AI and robotics.” - Jie Tan, Staff Research Scientist at Google DeepMind

Time: Monday, 3:30pm - 6:20pm

Lecture Location: Lathrop 299, in-person attendance required

Instructor Office Hours:
  • Karen: Fridays 9:00-10:00 am (Zoom link)

  • Stuart, Jie, Wenhao, Tingnan: Office hours by appointment. Reach out to the teaching team to schedule.

TA Office Hours Location: Gates B08/B02

TA Office Hours:

  • Ankush: Mondays 11:00am - 12:00pm Gates B08, Fridays 11:00am - 12:00pm Gates B08

  • JC: Tuesdays 2:00pm - 3:30pm Gates B08, Wednesdays 2:00pm - 3:30pm Gates B02, additional hours by appointment.

Prerequisites:

  • CS106A (programming will be majorly in Python)

  • CS107 (familiarity with the terminal and command lines)

  • MATH51/CME100 (understanding of gradients)

  • No robotics experience necessary!!

Number of credits: 3

Grading: Students will work in assigned groups for all labs and the final project. All group members will receive the same score for each lab. Some labs may include individual written homework, which will be graded separately.

Attendance: Attendance is mandatory for all classes and counts for 3% of your grade. Missing 0-1 classes gives you full credit, missing 2 classes gives you 50%, and missing more than 2 gives you 0%. Students are expected to attend all classes in person. If you are unable to attend a class, please inform the teaching team in advance.

Lab Policies:

Labs: Labs are due before class the following week (by 3:30 PM on Mondays) unless otherwise noted. Each team has a total of 7 late days to use across all labs. Using one late day extends the deadline by 24 hours. A maximum of 3 late days may be used per lab. Labs submitted more than 72 hours after the deadline will not be accepted.

Final project: No extensions are allowed for the final project proposal, progress report, or final demo video/presentation.

Optional Labs: Three optional labs will be offered this quarter, with the first released in Week 3. These labs are significantly more challenging and time-consuming than the regular labs. They may involve concepts beyond the scope of this course and the given prerequisites, and are intentionally open-ended. There are no due dates for these labs—students are encouraged to work on them at their own pace and are welcome to develop them further as part of their final projects. TAs will be available to support students working on the optional labs during their office hours.

Enrollment: ~24 students; 6 groups of 4-5 students

Schedule

Week

Lecture

Lab

Lab Due Date

Other

Week 1: 3/31

ROS Introduction and PD Control

Lab 1: ROS Introduction and PD Control

4/7/25

Week 2: 4/7

Forward Kinematics

Lab 2: Forward Kinematics

4/14/25

Week 3: 4/14

Inverse Kinematics

Lab 3: Inverse Kinematics and Trajectory Tracking

4/21/25

Optional Lab 1: Implicit Compliance

Week 4: 4/21

Gait Control

Lab 4: Model-Based Control and Trotting Gait Implementation

4/28/25

Week 5: 4/28

Reinforcement Learning for Robotics

Lab 5: How to Train Your Dog

5/5/25

Optional Lab 2: the Pupper Parkour Challenge

Week 6: 5/5

Computer Vision for Robotics

Lab 6: Seeing is Believing

5/12/25

Week 7: 5/12

Large Language Models for Robotics

Lab 7: Do What I Say

5/19/25

Optional Lab 3: Poor Man’s VLA

Week 8: 5/19

Final Project Schedule & Directions

Final Project Proposal

5/20/25 11:59 PM

Mandatory Meeting with TA to discuss final project proposal

Week 9: 5/26

No class (Memorial Day)

Final Project Progress Report

5/30/25 11:59 PM

Must include progress video in report

Week 10: 6/2

Project Checkpoint Review

Final Project Demo Video

6/8/25 11:59 PM

Final Presentations on 6/9

References: References Page

Past Course Projects: Past Course Projects

Old course materials Further Past Offerings