Bridging the Gap between ROS~2 and Classical Real-Time Scheduling for Periodic Tasks
<|reference_start|>Bridging the Gap between ROS~2 and Classical Real-Time Scheduling for Periodic Tasks: The Robot Operating System 2 (ROS~2) is a widely used middleware that provides software libraries and tools for developing robotic systems. In these systems, tasks are scheduled by ROS~2 executors. Since the scheduling behavior of the default ROS~2 executor is inherently different from classical real-time scheduling theory, dedicated analyses or alternative executors, requiring substantial changes to ROS~2, have been required. In 2023, the events executor, which features an events queue and allows the possibility to make scheduling decisions immediately after a job completes, was introduced into ROS~2. In this paper, we show that, with only minor modifications of the events executor, a large body of research results from classical real-time scheduling theory becomes applicable. Hence, this enables analytical bounds on the worst-case response time and the end-to-end latency, outperforming bounds for the default ROS 2 executor in many scenarios. Our solution is easy to integrate into existing ROS 2 systems since it requires only minor backend modifications of the events executor, which is natively included in ROS 2. The evaluation results show that our ROS~2 events executor with minor modifications can have significant improvement in terms of dropped jobs, worst-case response time, end-to-end latency, and performance compared to the default ROS~2 executor.<|reference_end|>
@article{teper2024bridging,
    title={Bridging the Gap between ROS~2 and Classical Real-Time Scheduling for
  Periodic Tasks},
    author={Harun Teper, Oren Bell, Mario G"unzel, Chris Gill, and Jian-Jia Chen},
    journal={arXiv preprint arXiv:2408.03696},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.03696},
    primaryClass={cs.RO}
}