Analýza latencí platofrmy ROS 2 při použití asynchronního programování v jazyce Rust
Real-Time schedulability analysis of ROS 2 with nodes using asynchronous Rust
Typ dokumentu
diplomová prácemaster thesis
Autor
Martin Škoudlil
Vedoucí práce
Sojka Michal
Oponent práce
Štěpán Petr
Studijní obor
Kybernetická bezpečnostStudijní program
Otevřená informatikaInstituce přidělující hodnost
katedra počítačůPráva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Software pro řízení robotů obvykle vyžaduje, práci v reálném čase. ROS je softwarový framework používaný pro vývoj komplexních robotických aplikací, ale v jeho současné podobě není snadné s ním dosáhnout deterministického real-time výkonu. Jedním z důvodů je, že zisk a analýza informací souvisejících s časováním ze složitých ROS aplikací není snadná. V této práci vytváříme vysoce výkonný nástroj pro příkazový řádek Ros2TraceAnalyzer, který je schopen zpracovávat trasovací záznamy aplikací ROS a analyzovat jejich real-time vlastnosti, jako jsou doby trvání zpětných volání, komunikační latence, využití vláken procesoru a závislosti mezi různými entitami v aplikaci. Dále rozšiřujeme neoficiální klientskou knihovnu R2R pro ROS Rust tak, aby umožňovala trasování kompatibilní se stávajícími nástroji v ROS, a přidáváme podporu pro simulovaný čas. Výsledky ukazují, že Ros2TraceAnalyzer je výrazně rychlejší (30x) než nástroje dostupné z ROS balíčku tracetools_analysis. Celkově výsledky této práce umožňují získat podrobnou analýzu běhu složitých ROS aplikací sestavených z kódu v C++ a Rustu (R2R), což usnadňuje vývoj aplikací se zaručenými real-time vlastnostmi. Robot control software usually requires to operate in real-time. ROS is a software framework used for developing complex robotic applications, but in its current form, it is not easy to achieve deterministic real-time performance with it. One reason is that obtaining and analyzing timing-related information from complex ROS applications is not easy. In this thesis, we create a high-performant command-line tool, Ros2TraceAnalyzer, capable of processing LTTng traces of ROS applications, and analyzing their real-time properties such as callback durations, communication latencies, CPU thread utilization, and dependencies between various entities in the application. Furthermore, we extend the unofficial ROS Rust client library R2R to allow tracing in a way compatible with existing ROS tools and add support for simulated time. We show that Ros2TraceAnalyzer is significantly faster (30x) than standard ROS tools from the tracetools_analysis package. Together, the results of this thesis allow to obtain detailed timing analysis of complex ROS applications composed from C++ and Rust (R2R) code, making it easier to develop applications with guaranteed real-time properties.
Kolekce
- Diplomové práce - 13136 [902]