The course "Self-driving Cars" introduces basic concepts of self-driving cars using the software developed in University of Tartu Autonomous Driving Lab, as an example. The students implement core components of modular autonomy stack from scratch in the Python programming language. They will test their software in virtual Tartu simulation, which is a decimetre-level digital twin of the real city. The course ends with a demo ride in a self-driving Lexus vehicle that is using the very same software they learned about in the course. The target group of the course is MSc and PhD students interested in furthering their knowledge about autonomous driving systems.
Application has ended.
Focus area: | Self-driving Cars | Coordinating unit: | University of Tartu Institute of Computer Science |
Study Field: | Computer Science | Course Leader: | Tambet Matiisen (University of Tartu) |
Format: | Summer Course | Location: | University of Tartu Delta Centre |
Course dates: | 28 July - 8 August 2025 | Language: | English |
ECTS: | 4 | Study group: | MSc/PhD |
Tambet Matiisen | Dmytro Zabolotnii | Karl-Johan Pilve | Edgar Sepp |
Tambet Matiisen runs the Autonomous Driving Lab at the University of Tartu. His research interests include deep reinforcement learning and AI in general. Lectures | Dmytro Zabolotnii is a Ph.D. student at the Autonomous Driving Lab. His Ph.D. research focuses on pedestrian behavior prediction, one of the most challenging problems in autonomous driving. Practical sessions | Karl-Johan Pilve is a research engineer at the Autonomous Driving Lab. He is a recent graduate of our lab and is one of the engineers working on the self-driving software. He is also an active contributor to the OpenStreetMap project. Practical sessions | Edgar Sepp is a research engineer at the Autonomous Driving Lab. His background is in geoinformatics, and he is currently the lead engineer for the self-driving software. Live Demos |
Includes:
Study materials
10 days of academic work with lecturers
Certificate of completion (4 ECTS)
5 cultural events in the evenings
NB! Transportation and accommodation costs are not included. The course fee does not cover participant's lunch during the summer school.
NB! This is a preliminary programme. The final schedule will be sent to the participants two weeks before the course starts.
All lectures, practices and independent work will take place in computer class 2006 in Delta building. There are 25 computers available with Ubuntu and ROS pre-installed.
Sunday, 27 July
Arrival
Day 1: Monday, 28 July
Introduction to ROS
2h lecture
2h guided practice
4h independent work
The students learn the main concepts in ROS: nodes, topics, messages.
Assignment 1: implement simple publisher and subscriber.
Day 2: Tuesday, 29 July
Localization
2h lecture
2h guided practice
4h independent work
The students learn how the car determines its position on the map.
Assignment 2: implement GNSS localizer.
Day 3: Wednesday, 30 July
Control
2h lecture
2h guided practice
4h independent work
The students learn how the car follows a given trajectory by producing longitudinal and latitudinal commands.
Assignment 3: implement pure pursuit controller
Day 4: Thursday, 31 July
Global planner
2h lecture
2h guided practice
4h independent work
The students learn how the car plans a path from point A to point B.
Assignment 4: implement global planner using Lanelet2 library.
Day 5: Friday, 1 August
Catchup day
4h tutors available
4h independent work
Saturday, 2 August: free day
Sunday, 3 August: free day
Day 6: Monday, 4 August
Obstacle detection
2h lecture
2h guided practice
4h independent work
The students learn how obstacle detection works with different sensors.
Assignment 5: implement lidar-based object detector.
Day 7: Tuesday, 5 August
Local planner
2h lecture
2h guided practice
4h independent work
The students learn how the car reacts to the obstacles.
Assignment 6: implement rule-based local planner.
Day 8: Wednesday, 6 August
Traffic light detection
2h lecture
2h guided practice
4h independent work
The students learn how the car detects the traffic lights and reacts to them.
Assignment 7: implement camera-based traffic light detector
Day 9: Thursday, 7 August
Validation & testing
2h lecture
2h guided practice
4h independent work
The students learn about different ways to validate and test self-driving cars.
Assignment 8: implement test scenario in Carla simulation.
Day 10: Friday, 8 August
Demo day
The students experience an autonomous ride around Tartu in the self-driving Lexus vehicle. The students will be divided into groups of 2-3 people. Each demo ride lasts 40 minutes. They can use the rest of the day to catch up with final assignment revisions.
Saturday, 9 August/Sunday, 10 August
Departure
Upon completion of the course, a student will be able to:
Recommended reading:
1. Linux command line - https://www.geeksforgeeks.org/linux-commands-cheat-sheet/
2. Git version control - https://about.gitlab.com/images/press/git-cheat-sheet.pdf
3. Python Numpy - https://cs231n.github.io/python-numpy-tutorial/
4. ROS Tutorials - http://wiki.ros.org/ROS/Tutorials
The students should submit all 8 homework assignments and these will be reviewed by the teaching assistants. Feedback is given and revisions are expected before students can proceed with further assignments.
Upon completing the course, the student will receive a certificate of participation with grading (pass/fail).
Which previous knowledge is required?
Recommended:
Entry requirements:
PS: Only complete applications including all annexes submitted by the deadline will be considered for selection.