Using ROS2 for High-Speed Maneuvering in Autonomous Driving
Použití ROS2 pro manévrování ve vysoké rychlosti v autonomním řízení
Authors
Supervisors
Reviewers
Editors
Other contributors
Journal Title
Journal ISSN
Volume Title
Publisher
České vysoké učení technické v Praze
Czech Technical University in Prague
Czech Technical University in Prague
Date
Abstract
Manévrování ve vysoké rychlosti při autonomním řízení je problematické bez řádné podpory real-time na straně softwaru. Na ČVUT je tým, který se účastní soutěže F1/10 Autonomous Driving Competition s autonomními modely aut. Jejich software pro autonomního řízení je založen na ROS 1, který není vhodný pro real-time aplikace. Cílem této práce je migrovat tento software na ROS 2, který byl od základu navržen s ohledem na real-time aplikace. Dále v práci navrhujeme tracing jako efektivní způsob analýzy běžícího systému na ROS 2 a měření důležitých parametrů. Výsledky naší práci zahrnují software migrovaný do ROS 2, jehož funkčnost demonstrujeme na skutečném modelu F1/10 a v simulátoru Stage. Dále analyzujeme komunikační latence v migrovaném softwaru pomocí námi rozšířené verze tracing nástrojů pro ROS 2. Dalším výsledkem naší práce je veřejně dostupná sbírka návodů, skriptů a dokumentace, která pokrývá různé aspekty práce s ROS. Tyto návody již pomohly několika lidem. Doufáme, že výsledky této práce vytvoří základ, který otevře cestu pro adopci ROS 2 v projektu F1/10 na ČVUT a zároveň jej zpřístupní novým studentům.
Performing high-speed maneuvers in autonomous driving is problematic without proper real-time support. At CTU, there is a team that competes in the F1/10 Autonomous Driving Competition with autonomous model cars. Their autonomous driving stack is based on ROS 1, which is not suitable for real-time applications. The goal is to migrate this stack to ROS 2, which has been designed from the ground up to address many issues in this area. We propose tracing as an efficient way to analyze a running ROS 2 system and measure important properties. We demonstrate the working of the migrated stack on the F1/10 model car and in the Stage simulator. We evaluate the communication latencies in the new stack using an extended version of ROS 2 tracing tools. Another result of our work is a publicly-available collection of setup guides, scripts, and documentation that covers various aspects of working with ROS. These guides have already helped several people. We hope that the results of this thesis build a foundation that opens the way for the adoption of ROS 2 in the CTU's F1/10 stack, further improving its real-time properties, while making it more approachable by new students.
Performing high-speed maneuvers in autonomous driving is problematic without proper real-time support. At CTU, there is a team that competes in the F1/10 Autonomous Driving Competition with autonomous model cars. Their autonomous driving stack is based on ROS 1, which is not suitable for real-time applications. The goal is to migrate this stack to ROS 2, which has been designed from the ground up to address many issues in this area. We propose tracing as an efficient way to analyze a running ROS 2 system and measure important properties. We demonstrate the working of the migrated stack on the F1/10 model car and in the Stage simulator. We evaluate the communication latencies in the new stack using an extended version of ROS 2 tracing tools. Another result of our work is a publicly-available collection of setup guides, scripts, and documentation that covers various aspects of working with ROS. These guides have already helped several people. We hope that the results of this thesis build a foundation that opens the way for the adoption of ROS 2 in the CTU's F1/10 stack, further improving its real-time properties, while making it more approachable by new students.