This course is an advanced introduction to, and a research investigation of state of the art algorithms required for autonomous driving, and more generally, mobile robots. In the first half of the course, we will cover an essential range of topics related to autononomous driving including time-optimal control, planning, and state estimation. In the second half of the course, teams will lead research projects going beyond the lecture topics, and pushing on the boundaries of the state of the art in autonomous driving. Assignments and the research project will be completed in teams of three students on the UT-AUTOmata scale 1/10 autonomous cars. There will be weekly assignments on implementing each building block culminating in a mid-term project to have your autonomous car autonomously explore an environment and visit prescribed locations to collect points. The final project will explore research along one of four suggested research areas: 1) High-speed motion control and planning; 2) High-speed state estimation; 3) Multi-agent (coperative or adversarial) planning for autonomous driving; 4) Robust semantic-metric situational awareness.

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
Arnav Iyer, iyerarnav@utexas.edu
Office hours: Wednesdays, 11:00 AM - 12:00 PM or by appointment


Assignments will be completed in groups of three, and must be completed on the real cars unless stated otherwise. 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. In addition to the milestones and checkpoints, each team will submit a document of short-form essay responses for a responsible robotics assignment.

Research Project

The research project will be completed in groups of three. Research project topics will require instructor approval, and must be selected from one of the following tracks:

  1. High-speed motion control and planning
  2. High-speed state estimation
  3. Multi-agent (cooperative or adversarial) planning
  4. Robust semantic-metric situational awareness

Each team will lead a class research discussion on the chosen topic, starting with an overview of the state of the art, challenges, and ideas for going beyond the state of the art. Teams must maintain a research journal with weekly updates, reporting on:

  • Algorithmic updates, including mathematical formulation and implementation
  • Relation to the state of the art
  • Ideas tried out
  • Summary of results and conclusions drawn
  • Ideas for next steps and plans for the next week

Teams will present live demonstrations of their final projects in the GDC Atrium.

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. —