Skip to content

Using ROS 2 for High-Speed Maneuvering in Autonomous Driving, My Bachelor's Thesis at CTU FEE, 2022

Notifications You must be signed in to change notification settings

pokusew/fel-bachelors-thesis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Using ROS 2 for High-Speed Maneuvering in Autonomous Driving

My Bachelor's Thesis at CTU FEE (ČVUT FEL)

This thesis is a continuation of the work from my semestral project.

Abstract

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.

Results: 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.

Content

Project Repositories

  • pokusew/fel-bachelors-thesis (this repository) – Thesis homepage, text sources, and PDF exports 📝
  • pokusew/f1tenth-rewrite – ROS 2 port of CTU F1/10 project 🏎
  • pokusew/ros-setup – Notes on ROS 2 and ROS 1, tips & tricks, using ROS with IDEs (JetBrains CLion, Visual Studio Code), setup guides for using ROS on different platforms (Ubuntu, macOS, NVIDIA Jetson TX2) 🛠️
  • pokusew/stage_ros2 – ROS 2 wrapper for the Stage simulator (fork containing improvements and fixes)
  • pokusew/ros2_razor_imu – ROS 2 driver and firmware to for Razor IMU 9DOF
  • pokusew/teensy-drive – ROS 2 driver and firmware to for Razor IMU 9DOF
  • pokusew/vesc – ROS 2 driver for VESC (fork containing fixes)
  • pokusew/ros2-tracing-experiments – A collection of scripts to perform analysis of trace events collected with ros2_tracing
  • pokusew/ros2-build – colcon workspace for building ROS 2 from sources on different platforms together with additional packages (e.g. Stage simulator) 📦
  • pokusew/rh – A simple helper to make working with different ROS versions and projects easier ⚙️

Note: See all my repos with tag fel-project on my GitHub.

About

Using ROS 2 for High-Speed Maneuvering in Autonomous Driving, My Bachelor's Thesis at CTU FEE, 2022

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published