This course is a hands-on introduction to algorithms required for autonomous driving, and more generally, mobile robots. We will cover a range of topics including time-optimal control, planning, and state estimation. Assignments will be completed in teams of three students. Students in the hybrid section will implement the assignments on the UT-AUTOmata scale 1/10 autonomous cars. Students in the online-only section will implement the assignments in simulation, and with logged robot data. There will be weekly assignments on implementing each building block, and that culminate in a final project to have your autonomous car autonomously explore an environment and visit prescribed locations to collect points.

Suggested text books: Probabilistic Robotics, Planning Algorithms

Lectures, Office Hours

Lectures: Mondays and Wednesdays, 9:00 - 10:00 AM Labs: Fridays, 9:00 - 10:00 AM

Joydeep Biswas, joydeepb@cs.utexas.edu
Office hours: Fridays, 1:00-2:00 PM

Teaching Assitant
Kavan Sikand, kvsikand@cs.utexas.edu
Office hours: Thursdays, 3:30-4:30 PM


Assignments will be completed in groups of three. There will be three milestones, each with weekly checkpoints. Teams must maintain a report covering:

  • Mathematical details of your implementation
  • Algorithmic and implementation choices
  • Problems encountered and steps taken to overcome them
  • Work distribution between team members
  • Links to videos of demonstrations of each checkpoint on your car

Final reports are due at the end of each milestone, but each checkpoint submission must include a two-page weekly progress report.

Hybrid vs. Online

This course is offered as either an online-only, or a hybrid course. The difference between the two is that teams in the online section will complete the assignments in simulation and with logged data, while teams in the hybrid will implement their solutions on real cars. Each hybrid team will be assigned a car and associated peripherals for themselves, and can work on them asynchronously in GDC any time they choose. When not in use, the cars will be kept in lockers in GDC. The added complexity of working with real cars will be accounted for during grading – in general, all else being equal, we will expect more accurate and robust implementations in simulation.

Cars and Labs

Each team is responsible for taking care of their own car and associated peripherals. You must follow all guidlines and safety instructions in the reference manual.

The computers in the GDC 1.310 lab have the necessary software packages installed for you to run the course software, including the simulator, visualizations, and handout code. We encourage teams to use the lab computers to work on the assignments.

Helpful Tools

The course infrastructure includes a web-based visualizer and remote monitoring and control - this can be used for interacting remotely with the real cars, as well as interacting with the simulator running remotely (e.g. over SSH on a lab computer). We recommend using Visual Studio Code as an IDE for development, for three reasons:

  1. C++ Support: It has excellent support for interpreting C++ : it can help you navigate between definitions of functions, classes, etc., point out compiler errors and warnings, and also help with refactoring.
  2. Remote SSH: You can run VS Code locally, while editing your code live over SSH on the lab computers. This is extremely useful - between this, and the web visualizer, it’s easy to forget that your code is not running locally!
  3. Live Share: If you like pair programming and coordinating live in your team, you’ll find this extension very helpful. —