TUMFTM/Lecture_ADSE

Jupyter Notebook

72

23 commits

updated Oct 1, 2026

See the code

README

Lecture: Autonomous Driving Software Engineering

This is the official repository of the lecture "Autonomous Driving Software Engineering" by the Institute of Automotive Technology (Prof. Dr.-Ing. Lienkamp), TUM. You find the code from all the practice sessions in the related subdirectories. The following figure outlines the structure of the repository, which is based on the lecture's chapters:

alt text


The practice sessions are presented in jupyter notebooks (practice.ipynb). Note that there are recordings of each session on our YouTube-channel, link below. Comprehensive explanations of the code are given in these videos. Some useful links:

All recordings can be found on our YouTube-Channel.

The associated lecture slides are accessible on ResearchGate.

To get more information about our institute, visit our homepage.

Requirements

Setup

  1. First setup the anaconda environment by importing ADSE_conda_environment.yml into the anaconda navigator.
  2. Launch jupyter notebook via the anaconda navigator. Note to activate the installed environment.
  3. You can run all practice notebooks with the provided anaconda environment except the practice sessions 3, 6, and 11. These practice sessions have other dependencies, please check out the local readmes in the related sub-directories. Practice 3 runs in ROS, so Linux is recommended.

How to get started

The procedure of the lecture is as follows:

  1. Watch the video of a single lecture in the YouTube-Playlist and go through the slides in the ResearchGate-Project.
  2. Watch the video of the associated practice session in the YouTube-Playlist and test the related practice code in this repository on your own.
  3. Go to the next chapter and repeat step 1 and step 2.

Content

NumberSessionDescriptionVideoLecture Slides
1Python introSome basics of programming in python for beginners.---ResearchGate
2Basics of mapping and localizationExemplary implementation of a Kalman filter and application for localization via GNSS-signal.YouTubeResearchGate
3SLAMThe google cartographer SLAM algorithm is applied to data from the KITTI-dataset. Note, that this lecture is held in Linux and has its own dependencies, please refer to the local readme.YouTubeResearchGate
4DetectionOverview about the YOLO-approach from network architecture to exemplary usage.YouTubeResearchGate
5PredictionImplementation of the pipeline to setup a motion prediction algorithm based on a Encoder-Decoder architecture.YouTubeResearchGate
6Global planningsA global optimal race line optimization is shown. This lecture has its own dependencies, please refer to the local readme.YouTubeResearchGate
7Local planningA local planning algorithm based on a graph-based approach is presented.YouTubeResearchGate
8ControlThe design of a velocity controller and numerical solver for differential equation are covered.YouTubeResearchGate
9Safety assessmentThe evaluation of the criticality of planned trajectories based on various metrics and their sensitivity is discussed.YouTubeResearchGate
10Teleoperated drivingHow to send and receive data via MQTT over network is shown in this practice session.YouTubeResearchGate
11End-to-EndThe exemplary pipeline of data collection from expert demonstration, training and application are treated in this session. This lecture has its own dependencies, please refer to the localYouTubeResearchGate

Contributions

If you find our work useful in your research, please consider citing the associated lecture at our ResearchGate-Project.

TUMFTM/Lecture_ADSE

Jupyter Notebook

72

23 commits

updated Oct 1, 2026

See the code

README

Lecture: Autonomous Driving Software Engineering

This is the official repository of the lecture "Autonomous Driving Software Engineering" by the Institute of Automotive Technology (Prof. Dr.-Ing. Lienkamp), TUM. You find the code from all the practice sessions in the related subdirectories. The following figure outlines the structure of the repository, which is based on the lecture's chapters:

alt text


The practice sessions are presented in jupyter notebooks (practice.ipynb). Note that there are recordings of each session on our YouTube-channel, link below. Comprehensive explanations of the code are given in these videos. Some useful links:

All recordings can be found on our YouTube-Channel.

The associated lecture slides are accessible on ResearchGate.

To get more information about our institute, visit our homepage.

Requirements

Setup

  1. First setup the anaconda environment by importing ADSE_conda_environment.yml into the anaconda navigator.
  2. Launch jupyter notebook via the anaconda navigator. Note to activate the installed environment.
  3. You can run all practice notebooks with the provided anaconda environment except the practice sessions 3, 6, and 11. These practice sessions have other dependencies, please check out the local readmes in the related sub-directories. Practice 3 runs in ROS, so Linux is recommended.

How to get started

The procedure of the lecture is as follows:

  1. Watch the video of a single lecture in the YouTube-Playlist and go through the slides in the ResearchGate-Project.
  2. Watch the video of the associated practice session in the YouTube-Playlist and test the related practice code in this repository on your own.
  3. Go to the next chapter and repeat step 1 and step 2.

Content

NumberSessionDescriptionVideoLecture Slides
1Python introSome basics of programming in python for beginners.---ResearchGate
2Basics of mapping and localizationExemplary implementation of a Kalman filter and application for localization via GNSS-signal.YouTubeResearchGate
3SLAMThe google cartographer SLAM algorithm is applied to data from the KITTI-dataset. Note, that this lecture is held in Linux and has its own dependencies, please refer to the local readme.YouTubeResearchGate
4DetectionOverview about the YOLO-approach from network architecture to exemplary usage.YouTubeResearchGate
5PredictionImplementation of the pipeline to setup a motion prediction algorithm based on a Encoder-Decoder architecture.YouTubeResearchGate
6Global planningsA global optimal race line optimization is shown. This lecture has its own dependencies, please refer to the local readme.YouTubeResearchGate
7Local planningA local planning algorithm based on a graph-based approach is presented.YouTubeResearchGate
8ControlThe design of a velocity controller and numerical solver for differential equation are covered.YouTubeResearchGate
9Safety assessmentThe evaluation of the criticality of planned trajectories based on various metrics and their sensitivity is discussed.YouTubeResearchGate
10Teleoperated drivingHow to send and receive data via MQTT over network is shown in this practice session.YouTubeResearchGate
11End-to-EndThe exemplary pipeline of data collection from expert demonstration, training and application are treated in this session. This lecture has its own dependencies, please refer to the localYouTubeResearchGate

Contributions

If you find our work useful in your research, please consider citing the associated lecture at our ResearchGate-Project.

Languages

Jupyter Notebook

78.4%

C++

14.9%

Python

4.0%