Summer School in Self-driving Cars

Autonomous driving represents a transformative shift in modern transportation, combining cutting-edge advancements in machine learning, robotics, and real-time systems engineering. By enabling vehicles to navigate and operate independently, this technology aims to enhance safety, reduce traffic congestion, and revolutionise mobility solutions. Central to autonomous driving is the development of algorithms and systems that allow vehicles to perceive their surroundings, interpret data from sensors, and make intelligent decisions. The field draws on interdisciplinary expertise, providing an exciting challenge for researchers and developers looking to shape the future of transportation.

General course information

Course dates27 July - 7 August, 2026 (two weeks, 10 study days)
Course fee880 EUR
Course formatsummer course
Study fieldComputer Science, Artificial Intelligence
LanguageEnglish
Study groupmaster's, PhD students and lifelong learners
Location

Tartu

University of Tartu Delta Centre,
Narva mnt 18

Course description

The course "Self-driving Cars" introduces basic concepts of self-driving cars using the software developed at the University of Tartu Autonomous Driving Lab as an example. The students implement core components of the modular autonomy stack from scratch in the Python programming language. They will test their software in the 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 uses the very same software covered in the course.

Course lecturers

Course lecturerDescription
Tambet Matiisen

Tambet Matiisen runs the Autonomous Driving Lab at the University of Tartu.
His research interests include deep reinforcement learning and AI in general.
Course leader

Edgar Sepp 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
Karl-Johan Pilve

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

Dmytro Zabolotnii

Dmytro Zabolotnii is a doctoral researcher at the Autonomous Driving Lab.
His research focuses on pedestrian behaviour prediction,
one of the most challenging problems in autonomous driving.

Practical sessions

The highlight of the summer course was the demo ride on public streets. Seeing our implementations not only in simulation but also running on public streets, and the results they had in real life, was very precious to me.

Participant from Germany
Participant from Germany
Viet Hung Vu
Participant from Germany

Study information

Requirements:

  • Familiarity with Linux command line
  • Basic understanding of Git version control workflow
  • Good command of the Python programming language

Recommended:

  • Prior exposure to Robot Operating System (ROS)
  • Prior experience with robotics
  • Prior experience with machine learning

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 classroom 2006 in the Delta building.

There are 25 computers available with Ubuntu and ROS pre-installed.

Day 1: Monday, 27 July
Introduction to ROS
2h lecture
2h guided practice
4h independent work

The students learn the main concepts in ROS: nodes, topics, and messages.
Assignment 1: implement a simple publisher and subscriber.

Day 2: Tuesday, 28 July
Localisation
2h lecture
2h guided practice
4h independent work

The students learn how the car determines its position on the map.
Assignment 2: implement GNSS localiser.


Day 3: Wednesday, 29 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, 30 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 a global planner using Lanelet2 library.

Day 5: Friday, 31 July
Catchup day
4h tutors available
4h independent work

Saturday, 1 August: free day
Sunday, 2 August: free day

Day 6: Monday, 3 August
Obstacle detection
2h lecture
2h guided practice
4h independent work

The students learn how obstacle detection works with different sensors.
Assignment 5: implement a lidar-based object detector.

Day 7: Tuesday, 4 August
Local planner
2h lecture
2h guided practice
4h independent work

The students learn how the car reacts to the obstacles.
Assignment 6: implement a rule-based local planner.

Day 8: Wednesday, 5 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, 6 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, 7 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.

Recommended reading:

  1. Linux command line
  2. Git version control
  3. Python Numpy
  4. ROS Tutorials

Assignments:

  1. implement a simple publisher and subscriber
  2. implement GNSS localiser
  3. implement pure pursuit controller
  4. implement a global planner using the Lanelet2 library
  5. implement a lidar-based object detector
  6. implement a rule-based local planner
  7. implement a camera-based traffic light detector
  8. implement the test scenario in the Carla simulation

Upon completion of the course, a student:

  • can understand the software implemented in Robot Operating System (ROS);
  • can describe the modular architecture of the autonomous driving systems;
  • can implement core modules for modular architecture: perception, planning, and control;
  • can explain different approaches to the planning and control of autonomous vehicles;
  • has an overview of possible validation and testing methods for autonomous driving.

Course registration info

This course is fully booked and we are not accepting additional participants at the moment. Thank you for your interest. You are welcome to explore our other UniTartu Summer School courses.

Only fully completed applications, including all required annexes, received by the deadline (20 April) will be considered for selection. Applicants must submit the following:

  • Online application form
    (application period: 20 March–20 April 2026)
  • Motivation letter (maximum 1 page), explaining:
    • your motivation to participate;
    • your expectations for the programme;
    • how the summer course relates to your studies and interests;
    • how you plan to use the knowledge and experience gained in the future.
  • Transcript of academic records
  • Copy of your passport
  • Proof of payment of the application fee (25 EUR)

The participants of the UniTartu Summer School courses are required to pay:

  • The application fee of 25 EUR must be paid by the application deadline (20 April) at the latest.
    The application fee is non-refundable.
  • The course fee is 880 EUR.
    Includes: Study materials, academic work with lecturers, Certificate of completion, cultural events in the evenings
    Not included: meals, transportation and accommodation

Please note that the course fee is payable only after you have been accepted into the course. Once accepted, you will receive a confirmation of acceptance together with an invoice. The course fee can only be paid based on the invoice issued to you.

By paying the application fee, course fee and cultural events fee, you accept the terms and conditions information document. You are required to tick the box in the credit card payment form to confirm you have read and agree to terms and conditions. If you choose to pay by bank transfer, you will be informed of the same conditions.

Please note that by paying the fees, you are considered to have accepted the Terms and Conditions.

Social and cultural programme

Arrival and housing

Visit us virtually