A first look at ROS 2 applications written in asynchronous Rust
Martin \v{S}koudlil, Michal Sojka, Zden\v{e}k Hanz\'alek

TL;DR
This paper investigates the execution model of asynchronous Rust applications in ROS 2, proposing a structured approach to achieve deterministic real-time performance and demonstrating its effectiveness through experiments and a case study.
Contribution
It introduces a structured approach for real-time operation of asynchronous Rust ROS 2 applications, addressing the lack of existing analysis techniques for this paradigm.
Findings
The proposed approach outperforms other configurations in latency measurements.
It achieves bounded response times for time-critical tasks.
Demonstrates practical applicability in autonomous driving case study.
Abstract
The increasing popularity of the Rust programming language in building robotic applications using the Robot Operating System (ROS 2) raises questions about its real-time execution capabilities, particularly when employing asynchronous programming. Existing real-time scheduling and response-time analysis techniques for ROS 2 focus on applications written in C++ and do not address the unique execution models and challenges presented by Rust's asynchronous programming paradigm. In this paper, we analyze the execution model of R2R -- an asynchronous Rust ROS 2 bindings and various asynchronous Rust runtimes, comparing them with the execution model of C++ ROS 2 applications. We propose a structured approach for R2R applications aimed at deterministic real-time operation involving thread prioritization and callback-to-thread mapping schemes. Our experimental evaluation based on measuring…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
