为ROS2图任务设计了基于事件的固定优先级调度方案,支持任意有向无环图。
Fixed-Priority and EDF Schedules for ROS2 Graphs on Uniprocessor
- 利用事件执行器实现固定优先级调度,无需依赖任务依赖关系信息
- 可将ROS2应用抽象为森林结构,映射到经典实时任务模型
- 适用于需精确时序保障的单核机器人系统开发
本文针对机器人操作系统ROS2中现有调度方法的局限性,研究超越简单链式任务的调度问题,分析任意有向无环图(DAG)的任务调度。以往研究多集中于链式调度及非正式的响应时间分析,而本文提出一种新方法:通过事件执行器在单处理器系统上实现面向任务级别的固定优先级调度。我们证明了ROS2应用可被抽象为树状森林结构,从而映射至传统实时DAG任务模型。该方法需要特殊实现的事件队列及支持后进先出(LIFO)消息传递的通信中间件,这些特性尚未成为ROS2标准。实验表明,尽管未访问通常所需的依赖信息,本方案仍能生成与传统固定优先级DAG调度器相同的调度结果,进一步弥合了成熟实时系统理论与ROS2调度分析之间的差距。
原文摘要 · Abstract (English)
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.
Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。