Lecture: Self-Driving Cars

Within the last years, driverless cars have emerged as one of the major workhorses in the field of artificial intelligence. Given the large number of traffic fatalities, the limited mobility of elderly and handicapped people as well as the increasing problem of traffic jams and congestion, self-driving cars promise a solution to one of our socities most important problems: the future of mobility. However, making a car drive on its own in largely unconstrained environments requires a set of algorithmic skills that rival human cognition, thus rendering the task very hard. This course we will cover the most dominant paradigms of self-driving cars: modular pipeline-based approaches as well as deep-learning based end-to-end driving techniques. Topics include camera, lidar and radar-based perception, localization, navigation, path planning, vehicle modeling/control, imitation learning and reinfocement learning. The tutorials will deepen the acquired knowledge through the implementation of several deep learning based approaches to perception and sensori-motor control in the context of autonomous driving. Towards this goal, we will build upon existing simulation environments and established deep learning frameworks.

Qualification Goals

Students develop an understanding of the capabilities and limitations of state-of-the-art autonomous driving solutions. They gain a basic understanding of the entire system comprising perception, learning and vehicle control. In addition, they are able to implement and train simple models for sensori-motor control.

Overview

  • Course number: ML-4340
  • Credits: 9 ECTS
  • Recommended for: Master, 3rd semester
  • Total Workload: 270h
  • This lecture is taught as flipped classroom. Lectures will be held asynchronously via YouTube (see sidebar for link). We will provide all lectures before the respective interactive live sessions for self-study. Please watch the relevant videos before participating in the interactive live sessions.
  • Each week, we host an interactive live session where questions regarding the lecture and exercises are discussed together (see sidebar for details).
  • We also offer a weekly zoom helpdesk where students may ask questions or share their screen to obtain individual feedback and support for solving the exercises (see sidebar for details).
  • Exercises will not be graded. Instead, we will discuss the solution together.
  • Students may obtain bonus points for the exam by participating in coding challenges and answering questions about the lectures and exercises in weekly quizzes which also serve as measure for self-motivation. All quizzes are provided via our Lecture Quiz Server (see sidebar for details).

Prerequisites

Registration

  • To participate in this lecture, you must enroll via ILIAS (see sidebar for link)
  • Registration via ILIAS will open on 30.09. at 12:00
  • Information about exam registration can be found here

Exercises and Challenges

The exercises play an essential role in understanding the content of the course. There will be 6 assignments in total. The assignments contain pen and paper questions as well as programming problems. Each programming problem involves programming an agent to participate in a challenge against the other agents developed by the students. The winners of each challenge will present their work during the final live session. For programming, the students will use Python and PyTorch, a deep learning framework which features GPU support and auto-differentiation. If you have questions regarding the exercises or the lecture, please ask them during the live sessions, at the zoom helpdesk or in our ILIAS forum.

Further Readings

Schedule

Date

Lecture Slides and Videos

Live Sessions (Coding | P&P)

TA Support

21.10.

L01 - Introduction | Slides

1.1 - Organization | Video

1.2 - Introduction | Video

1.3 - History of Self-Driving | Video

L01 - Lecture Organization
E00 - Exercise Introduction | Problems


 

Bernhard Jaeger

28.10.

L02 - Imitation Learning | Slides
2.1 - Approaches to Self-Driving | Video

2.2 - Deep Learning Recap | Video

2.3 - Imitation Learning | Video

2.4 - Conditional Imitation Learning | Video

L02 - Q&A
E01 - Challenge Introduction (C1)  | Problems

Bernhard Jaeger

04.11.

L03 - Direct Perception | Slides

3.1 - Direct Perception | Video

3.2 - Conditional Affordance Learning | Video

3.3 - Visual Abstractions | Video

3.4 - Driving Policy Transfer | Video

3.5 - Online vs. Offline Evaluation | Video

L03 - Q&A

E02 - OnSite Exercises (L2+L3) | Problems

Katrin Renz

11.11.

L04 - Reinforcement Learning | Slides

4.1 - Markov Decision Processes | Video

4.2 - Bellman Optimality and Q-Learning | Video

4.3 - Deep Q-Learning | Video

L04 - Q&A

E02 - OnSite Exercises (L2+L3) | Problems

Katrin Renz

18.11.

L05 - Vehicle Dynamics | Slides

5.1 - Introduction | Video

5.2 - Kinematic Bicycle Model | Video

5.3 - Tire Models | Video

5.4 - Dynamic Bicycle Model | Video

L05 - Q&A

Deadline Challenge 1

E03 - Challenge Introduction (C2)  | Problems

Katrin Renz

25.11.

L06 - Vehicle Control | Slides

6.1 - Introduction | Video

6.2 - Black Box Control | Video

6.3 - Geometric Control | Video

6.4 - Optimal Control | Video

L06 - Q&A
Challenge 1 results

E04 - OnSite Exercises (L4-L6) | Problems

Katrin Renz

02.12.

L07 - Odometry, SLAM and Localization | Slides

7.1 - Visual Odometry | Video

7.2 - Simultaneous Localization and Mapping | Video

7.3 - Localization | Video

L07 - Q&A

E04 - OnSite Exercises (L4-L6) | Problems

Katrin Renz

09.12.

L08 - Road and Lane Detection | Slides

8.1 - Introduction | Video

8.2 - Road Segmentation | Video

8.3 - Lane Marking Detection | Video

8.4 - Lane Detection | Video

8.5 - Lane Tracking | Video

L08 - Q&A

Deadline Challenge 2

No exercise!

16.12.

L09 - Reconstruction and Motion | Slides

9.1 - Stereo Matching | Video

9.2 - Freespace and Stixels | Video

9.3 - Optical Flow | Video

9.4 - Scene Flow | Video

L09 - Q&A

Challenge 2 results

E05 - Challenge Introduction (C3) | Problems

Bernhard Jaeger

23.12.

No Lecture

30.12.

No Lecture

06.01.

No Lecture

13.01.

L10 - Object Detection | Slides

10.1 - Introduction | Video

10.2 - Performance Evaluation | Video

10.3 - Sliding Window Object Detection | Video

10.4 - Region Based CNNs | Video

10.5 - 3D Object Detection | Video

L10 - Q&A

E06 - OnSite Exercise (L7-09) | Problems

Bernhard Jaeger

20.01.

L11 - Object Tracking | Slides

11.1 - Introduction | Video

11.2 - Filtering | Video

11.3 - Association | Video

11.4 - Holistic Scene Understanding | Video

L11 - Q&A

Deadline Challenge 3

E06 -  OnSite Exercise (L10-12) | Problems

Bernhard Jaeger

27.01.

L12 - Decision Making and Planning | Slides

12.1 - Introduction | Video

12.2 - Route Planning | Video

12.3 - Behavior Planning | Video

12.4 - Motion Planning | Video

L12 - Q&A

Final challenge results

Presentation by Challenge Winners

Congratulations to Winners of the Self-Driving Challenges!

After the course, Micha Schilling has implemented a conditional imitation learning controller on a Raspberry Pi 3 that was added to the basic Arduino self-driving car kit. Here are links to the project page and video: