Table of Contents


In this paper, we report on an architecture for a self-driving car that is based on ROS2. Self-driving cars have to take decisions based on their sensory input in real-time, providing high reliability with strong demand in functional safety. In principle, self-driving cars are robots. However, typical robot software, in general, and the previous version of the Robot Operating System (ROS), in particular, does not always meet these requirements. With the successor ROS2, the situation has changed and it might be considered as a solution for automated and autonomous driving. Existing robotic software based on ROS was not ready for safety-critical applications like self-driving cars. We propose an architecture for using ROS2 for a self-driving car that enables safe and reliable real-time behavior, but keeping the advantages of ROS such as a distributed architecture and standardized message types. First experiments with an automated real passenger car at lower and higher speed-levels show that our approach seems feasible for autonomous driving under the necessary real-time conditions.

  • Author Keywords

    • Self-driving car,
    • autonomous driving,
    • architecture,
    • robot operating system,
    • ROS,
    • ROS2,
    • LKAS,
    • V2X
  • Controlled Indexing

    • automobiles,
    • control engineering computing,
    • mobile robots,
    • operating systems (computers),
    • safety-critical software
  • Non-Controlled Indexing

    • ROS2,
    • autonomous driving,
    • robotic software,
    • self-driving cars,
    • automated real passenger car,
    • self-driving car architecture,
    • robot operating system



Compared to other robots, self-driving cars have different requirements in terms of real-time behavior and calculation speed. They have to master a wide range of maneuvers from precise path-finding in parking situations to high-speed driving on highways. Additionally, the deployed computer systems have to perceive a lot of traffic situations correctly to take the right driving decisions. Self-driving cars have to accomplish all these tasks with a very high demand for functional safety because of their direct interaction with people as drivers, passengers, pedestrians, and other road users. The widely used Robot Operating System (ROS) [1] cannot guarantee such high reliability and real-time performance as required for automated driving applications covering all the mentioned situations.

However, ROS comes with a lot of features, which are beneficial when developing a general computer system for automated driving. The lively ROS community has many people contributing functionalities, e.g. hardware drivers for numerous sensors. A lot of great tools such as RViz or Gazebo are available for an efficient development process and ROS is open source, which gives high confidence to the used software modules.

The second generation of Robot Operation System ROS2 provides the needed reliability and real-time performance while most of the advantages of ROS1 are still available (e.g. cf. [2]). Therefore, we decided to develop software architecture for a self-driving car making use of ROS2. Besides the requirements of real-time and calculation performance, the proposed architecture design should be largely vehicle independent. Having a control interface for steering, acceleration and braking is common to all automated vehicles, but the specification is very different. To deal with those differences we introduce a wrapper node, which we call ROS2Car. Additionally, we define nodes (computing entities in ROS) for all of the standard tasks in automated driving. We will give the details below. The architecture is evaluated in different scenarios to verify its usability and variability. We report our first evaluation results in this paper.

The rest of the paper is organized as follows. In the next section, we give an overview of the related work in autonomous driving architectures. In Section III we present our approach to a car-independent autonomous driving architecture for ROS2 focusing on the different aspects of such an architecture. We start with the requirements and then present our ideas on how tasks such as mission and maneuver planning, vehicle control or localization and perception could be dealt with inside the architecture. In Section IV, we present our first evaluation results with our autonomous driving platform, the Kia Niro, which already was driving up to speeds of about 80 km/h with our ROS2 software. We conclude in Section V.


In this paper, a new software architecture for autonomous driving based on ROS2 is presented and discussed. First, we defined requirements for software architecture and we proposed a possible safe, reliable, and real-time-capable solution. The architecture was successfully evaluated in terms of real-time and usability for different automated driving scenarios. It is shown, that a good real-time behavior of a ROS2 system is possible, but only if in the implementation all the special real-time coding demands are considered. In future work, we will improve our system in terms of even better real-time performance and we want to evaluate it on different vehicle platforms. Additionally, we will extend our system by supporting more sensor systems and more different driving maneuvers.

About KSRA

The Kavian Scientific Research Association (KSRA) is a non-profit research organization to provide research / educational services in December 2013. The members of the community had formed a virtual group on the Viber social network. The core of the Kavian Scientific Association was formed with these members as founders. These individuals, led by Professor Siavosh Kaviani, decided to launch a scientific / research association with an emphasis on education.

KSRA research association, as a non-profit research firm, is committed to providing research services in the field of knowledge. The main beneficiaries of this association are public or private knowledge-based companies, students, researchers, researchers, professors, universities, and industrial and semi-industrial centers around the world.

Our main services Based on Education for all Spectrum people in the world. We want to make an integration between researches and educations. We believe education is the main right of Human beings. So our services should be concentrated on inclusive education.

The KSRA team partners with local under-served communities around the world to improve the access to and quality of knowledge based on education, amplify and augment learning programs where they exist, and create new opportunities for e-learning where traditional education systems are lacking or non-existent.

FULL Paper PDF file:

A Self-Driving Car Architecture in ROS2



M. Reke et al.,




A Self-Driving Car Architecture in ROS2

Publish in

2020 International SAUPEC/RobMech/PRASA Conference, Cape Town, South Africa, 2020, pp. 1-6,



PDF reference and original file: Click here

+ posts

Somayeh Nosrati was born in 1982 in Tehran. She holds a Master's degree in artificial intelligence from Khatam University of Tehran.

Website | + posts

Professor Siavosh Kaviani was born in 1961 in Tehran. He had a professorship. He holds a Ph.D. in Software Engineering from the QL University of Software Development Methodology and an honorary Ph.D. from the University of Chelsea.

Website | + posts

Nasim Gazerani was born in 1983 in Arak. She holds a Master's degree in Software Engineering from UM University of Malaysia.