Autonomous driving, or self-driving, is the ability of a vehicle to drive itself without human input. To achieve this, the vehicle uses mechanical and electronic parts, sensors, actuators and an on-board computer. The on-board computer runs sophisticated software which allows the vehicle to perceive and understand its environment based on sensor input, localise itself in that environment and plan the optimal route from point A to point B. Autonomous driving is no longer a thing of the future, and to develop autonomous driving solutions is a highly valuable skill in today’s software engineering field.
Robot Operating System (ROS) is a meta-operating system that simplifies the process of robotics programming. This master’s thesis aims to demonstrate how ROS could be used to develop autonomous driving software by analysing autonomous driving problems, examining existing solutions and developing a prototype vehicle using ROS. This thesis provides an overview of autonomous driving and usage of ROS in the development of autonomous driving, then elaborates on the benefits and challenges of using ROS for autonomous car development.
The research methods used in this master’s thesis are design science research (DSR) and a literature review. An artefact is developed and evaluated—a remote-controlled (RC) car equipped with Raspberry Pi 3 board as the on-board computer, an Arduino Uno board, Teensy LC board, a set of sensors and ROS-based software. The thesis is supported by the author’s employer, automotive software company called Elektrobit.
By following the steps described in this thesis, it is possible to develop an autonomous driving RC car which runs on ROS. Additionally, this thesis shows why ROS provides good solutions for the autonomous driving issues. It points to the benefits of ROS: open sourced, peer-to-peer, network-based meta-operating system with ready-made components for autonomous driving, and highlights some of the challenges of ROS: security issues and single point of failure.