CROS-RT: Cross-Layer Priority Scheduling for Predictable Inter-Process Communication in ROS 2
The Robot Operating System 2 (ROS 2) is a popular middleware for distributed robotic applications. However, achieving real-time guarantees in ROS 2 is challenging due to unpredictable delays and priority inversions. We reveal that these issues arise from the lack of consistent priority propagation across ROS 2’s multi-layered communication architecture, particularly down to the kernel layer. To address this, we present CROS-RT, the first cross-layer scheduler explicitly designed to tackle the unpredictability in ROS 2 inter-process communication caused by multi-layer priority misalignment. CROS-RT ensures consistent, priority-based scheduling across the application, middleware, and kernel layers, introducing mechanisms for priority propagation, kernel-level message prioritization, and dynamic kernel thread adjustment. We have implemented and evaluated CROS-RT on the current stable release of ROS 2. Experiments demonstrate that CROS-RT enhances communication predictability, reducing the worst-case response time by up to 89.3% over a baseline (vanilla ROS 2). Additionally, we provide an analytical model to derive upper bounds on response times, ensuring reliable real-time performance for safety-critical applications.

Publication
“CROS-RT: Cross-Layer Priority Scheduling for Predictable Inter-Process Communication in ROS 2” [PDF] [Slide] [GitHub]
Soyhun Kim, Juho Song, Kilho Lee, Sangeun Oh, Hoon Sung Chwa
In 31st IEEE Real-Time Embedded Technology and Applications Symposium (RTAS 2025), Irvine, USA, May 2025
★ Best Paper Award