Development and Testing of Self-Driving Cars.

Implementing software tools for designing, developing, and testing of self-driving cars.

It is important that Self-Driving Cars (SDC) do not cause physical damages during their operation. To ensure this, SDCs much be designed, developed, and testing in an effective manner. However, design, development, and testing of SDCs are complicated due to the use of machine learning algorithms (e.g., deep neural networks), dealing with unknown environment situations, and the complexity of the SDCs. Thus, there is a need for new software tools to support the development of SDCs.

Topic 1: Requirements Engineering for Self- Driving Cars

This topic will focus on extending an existing Restricted Natural Language tool called RUCM for self-driving cars. The examples of extensions

  • Specifying requirements for machine learning algorithms for making autonomous decisions
  • Implementing a method to tune parameters of machine learning algorithms
  • Connecting the RUCM tool with the Apollo framework and learning requirements via simulation
  • Developing methods to simulate realistic driving and environmental situations in the Apollo Framework


Topic 2: Modeling

  • Modeling self-driving car and connecting into the Apollo framework to support simulation and supporting analyses such as finding crashes and other unsafe situations.
  • Developing models in high-level languages such as Open Modelica for simulation
  • Implementing software to interface the models and its simulators with the Apollo framework
  • Performing analyses using machine learning algorithms.


Topic 3: Testing Self-Driving Cars

  • Implementing testing methods and strategies to support automated testing of a self-driving car. The example tasks include: Implementing a testing strategy using advanced machine learning algorithms such as reinforcement learning and its variations
  • Implementing rewards functions to guide reinforcement learning to fail an SDC
  • Implementing a method to tune hyperparameters of reinforcement learning



Implementing software tools for designing, developing, and testing of self-driving cars.

Learning outcome

Advanced knowledge in developing and testing autonomous cars!


Programming skills and knowledge of ML frameworks such as Kera are a plus!


Contact person