This paper addresses limitations of current scheduling methods in the Robot Operating System (ROS)2, focusing on scheduling tasks beyond simple chains and analyzing arbitrary Directed Acyclic Graphs (DAGs). While previous research has focused mostly on chain-based scheduling with ad-hoc response time analyses, we propose a novel approach using the events executor to implement fixed-job-level-priority schedulers for arbitrary ROS2 graphs on uniprocessor systems. We demonstrate that ROS 2 applications can be abstracted as forests of trees, enabling the mapping of ROS 2 applications to traditional real-time DAG task models. Our usage of the events executor requires a special implementation of the events queue and a communication middleware that supports LIFO-ordered message delivery, features not yet standard in ROS2. We show that our implementation generates the same schedules as a conventional fixed-priority DAG task scheduler, in spite of lacking access to the precedence information that usually is required. This further closes the gap between established real-time systems theory and ROS2 scheduling analyses.
翻译:本文针对机器人操作系统(ROS)2当前调度方法的局限性展开研究,重点关注超越简单链式结构的任务调度问题,并对任意有向无环图进行分析。以往研究主要集中于基于链式结构的调度及特设响应时间分析,而本文提出一种创新方法:利用事件执行器在单处理器系统上为任意ROS2图实现固定作业级优先级调度器。我们证明ROS2应用程序可抽象为树状森林结构,从而能够将ROS2应用程序映射至传统实时DAG任务模型。我们使用的事件执行器需要特殊实现的事件队列以及支持后进先出顺序消息传递的通信中间件,这些特性在ROS2中尚未成为标准。研究表明,尽管无法访问通常所需的优先约束信息,我们的实现仍能生成与传统固定优先级DAG任务调度器相同的调度方案。这进一步缩小了成熟实时系统理论与ROS2调度分析之间的差距。