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:
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.
- Python 3.8
- Anaconda Navigator 2.0.3 (Download, Documentation)
- Windows, MacOS and Linux are supported
- First setup the anaconda environment by importing
ADSE_conda_environment.yml
into the anaconda navigator. - Launch jupyter notebook via the anaconda navigator. Note to activate the installed environment.
- 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.
The procedure of the lecture is as follows:
- Watch the video of a single lecture in the YouTube-Playlist and go through the slides in the ResearchGate-Project.
- Watch the video of the associated practice session in the YouTube-Playlist and test the related practice code in this repository on your own.
- Go to the next chapter and repeat step 1 and step 2.
Number | Session | Description | Video | Lecture Slides |
---|---|---|---|---|
1 | Python intro | Some basics of programming in python for beginners. | --- | ResearchGate |
2 | Basics of mapping and localization | Exemplary implementation of a Kalman filter and application for localization via GNSS-signal. | YouTube | ResearchGate |
3 | SLAM | The 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. | YouTube | ResearchGate |
4 | Detection | Overview about the YOLO-approach from network architecture to exemplary usage. | YouTube | ResearchGate |
5 | Prediction | Implementation of the pipeline to setup a motion prediction algorithm based on a Encoder-Decoder architecture. | YouTube | ResearchGate |
6 | Global plannings | A global optimal race line optimization is shown. This lecture has its own dependencies, please refer to the local readme. | YouTube | ResearchGate |
7 | Local planning | A local planning algorithm based on a graph-based approach is presented. | YouTube | ResearchGate |
8 | Control | The design of a velocity controller and numerical solver for differential equation are covered. | YouTube | ResearchGate |
9 | Safety assessment | The evaluation of the criticality of planned trajectories based on various metrics and their sensitivity is discussed. | YouTube | ResearchGate |
10 | Teleoperated driving | How to send and receive data via MQTT over network is shown in this practice session. | YouTube | ResearchGate |
11 | End-to-End | The 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 local | YouTube | ResearchGate |
If you find our work useful in your research, please consider citing the associated lecture at our ResearchGate-Project.