Skip to main content

F1/10 Autonomous Racing: 1/10th the size. 10 times the fun!

Our goal in this course is to give you a hands-on introduction to the challenges and joys of building an autonomous robot, and to have you apply and test the limits of the available solutions. We do so by guiding you through the steps of building a fast, autonomous, race car.

The race car we build in this course is a single platform for hands-on learning about autonomy. It will force you to consider the choice of perception algorithms, motion planning algorithms, and control algorithms that can achieve the desired performance. We will also take a brief moment to consider the choice of hardware that will run all these algorithms, and the energy costs of that performance.

By learning the basics in the first four weeks, you will be able to implement more agressive algorthms, and make use of better and faster sensors, to give yourself and your team the edge over the others. This is a race, after all!

The class is revving up, and this website is still very much under construction.
Why autonomy?
Autonomy is a major research thrust in Cyber-Physical Systems (CPS) and beyond. Perhaps the best-known civilian applications are in self-driving cars and package delivery drones. Before these applications become commonplace, a number of technical, political and social challenges must be adequately addressed. In this course, we introduce you to the technical challenges of developing a self-driving car. All in 5 weeks!
What’s involved
Building autonomous systems requires an understanding of planning, perception, and control. In this course, you will learn about and use
  • basic and more advanced sensors to provide your car with raw data about where it is and where it’s going in the world. This includes IMU, LIDAR and camera.
  • perception algorithms that process the raw sensor data, including object detection
  • Motion planning with and without maps
  • Low-level control
  • ROS, the de facto standard OS for building robotics applications

Throughout, we emphasize quick turn-around and experimental feedback. Your car will be navigating fully autonomously by the end of Week 2, and by Week 5 it will be ready for racing!

Building blocks
The chassis is a four-wheel drive Traxxas 74076 Brushless Rally Racer, 1/10th scale, with a 40mph top speed. A Razor IMU provides velocity and acceleration estimates, while a Hokuyo LIDAR 10LX provides position estimates. Computations are handled by an on-board Nvidia Jetson TK1 sporting 192 CUDA cores. The TK1 will be executing all the perception and control algorithms.

Out of the box, we use PID for low-level control of speed and steering rate, scan matching of LIDAR scans for localization. Later we add AMCL and SLAM localization. The point though is that once you have a handle on how data is read in and where it is processed to produce control inputs, you will be able to grow your own algorithms.

Course number
F 1/10th, of course!
Instructors
Madhur Behl, Houssam Abbas and Rahul Mangharam
Teaching Assistants
Paritosh Kelkar, Nishcal K N and Paril Jain (these guys did all the hard work)
Schedule and Lectures
All material will be posted here
Discussion Forum
We have a forum for questions, answers and discussions.
Time and place
Spring 2016, online.
Office Hours
Your local TAs will set their office hours. Also, please use the forum as your fellow students may have the answers! The Penn team will also be providing asynchronous answers to forum questions.
Prerequisites
Prior programming experience
Course Readings
No pre-decided readings per se - you will want to familiarize yourselves with the various background topics as the course progresses.
We may occasionally assign some reading about background concepts from Computer Vision and Control. These will be posted under Resources
Grading
This is a project-based course. Instead of exams, you will do a series of hands-on group assignments leading up to your autonomous race car.
Acknowledgments
We are thankful to Sertac Karaman at MIT for sharing the contents of his RACECAR class with us. The source files for this website are re-used from the Crowd Sourcing class at Penn.