CODE

WARNING:

While this information on this page may still be valuable, please be aware that it is now outdated and considered legacy material. The most recent material can be found at the main code page here.

Our fun and informative lectures walk you through all the steps to get your car moving, driving straight, making turns and taking loops. This gets you to the baseline autonomous operation of the vehicle. The course takes 2-3 weeks and then you are ready to build on top of the software to win the race. No prior knowledge is assumed and this is a course meant to make autonomous systems available and accessible. Ask questions on the Forum.


Practice Session 1: Learning the Basics

Lectures


1.1: Course Overview

Introduces the course and F1 race format

1.2: Getting Started

Introduces the car, sensors, and system architecture

1.3: Introduction to ROS

Introduces ROS, or the Robot Operating System

Tutorials


0: Installing ROS

Learn how to install ROS

1: Basics of ROS Part 1

Learn some basic commands for the robot operating system

2: Basics of ROS Part 2

Continue to learn basic commands for ROS

3: Jetson Setup

Learn how to configure the Jetson, which is the Nvidia board controlling the car

4: Wireless Network Setup

Learn how to set up the connection between the Jetson and laptop

5: Sensor Configuration

Learn how to setup the LiDAR and IMU and connect them to the Jetson

Extra Tutorial - Configuring the Hokoyu UST 10LX

Learn how to connect an ethernet-powered LiDAR module


Lab Exercise: Keyboard Control

Prerequisites

Lecture 1 completed

Overview

The point of this first lab is to make sure you have setup your car correctly to the point where you can send it commands manually from your keyboard, and it will execute them. This will show you that the car runs (always a good thing) and that the wireless network for communicating with the car is correctly setup.

In addition to it being a basic check, keyboard controls will allow you to drive the car around and collect data through the sensors in Week 2. Once this data is acquired, you can test your perception and control algorithms on this data first, before deploying them on the car.

Extra Credit

Add a piece of code that will run on the car, and checks regularly for the state of the network. If the network’s status is poor (i.e. bad connection) then it issues a STOP command. At this point you haven’t yet learned how to add your own code to the Jetson and so your code won’t run on the car itself. But you will next week, and this is something you can develop and run on your own computer.


Practice Session 2: Sensing and Control

Lectures


2.1: Sensors

Learn how to use sensors to perceive, plan, and then control the car

2.2: Localization

Learn how to find the current position of the car

2.3: PID Control

Learn about PID (Proportional, Integrral, Derivative) Control

Tutorials


6: Distance Finder and PID Control

Apply what you have learned to use LiDAR to make the car travel parallel to a wall


Lab Exercise: Driving Straight

Prerequisites

Lecture 2 completed


Practice Session 3: Mapping and Localization

Lectures


3.1: Rigid Body Transformations

Learn how to use Rigid Body Transforms to correlate data from different sensors

3.2: Hector Mapping - Simultaneous Localization and Mapping

Generate a map of the track and then making race line decisions

3.3: Adaptive Monte Carlo Localization

Correcting for the drawbacks of both Hector and Wheel odometry using Monte Carlo localization

Tutorials


7: Code Walkthrough Tutorial

Learn how to use Hector SLAM