The Robot Operating System (ROS) is a popular robotics middleware framework. In the last years, it underwent a redesign and reimplementation under the name ROS~2. It now features QoS-configurable communication and a flexible layered architecture. Micro-ROS is a variant developed specifically for resource-constrained microcontrollers (MCU). Such MCUs are commonly used in robotics for sensors and actuators, for time-critical control functions, and for safety. While the execution management of ROS 2 has been addressed by an Executor concept, its lack of real-time capabilities make it unsuitable for industrial use. Neither defining an execution order nor the assignment of scheduling parameters to tasks is possible, despite the fact that advanced real-time scheduling algorithms are well-known and available in modern RTOS's. For example, the NuttX RTOS supports a variant of the reservation-based scheduling which is very attractive for industrial applications: It allows to assign execution time budgets to software components so that a system integrator can thereby guarantee the real-time requirements of the entire system. This paper presents for the first time a ROS~2 Executor design which enables the real-time scheduling capabilities of the operating system. In particular, we successfully demonstrate the budget-based scheduling of the NuttX RTOS with a micro-ROS application on an STM32 microcontroller.
翻译:机器人操作系统(ROS)是一个流行的机器人中继器框架。 在过去几年里,它以 ROS~2. 的名称进行了重新设计和重新实施。 它现在具有可配置的 QOS 配置通信和一个灵活的层结构。 Micros- ROS 是专为资源受限制的微控制器(MCU)开发的一种变体。 这种MCTS 通常用于机器人传感器和动作器、时间临界控制功能和安全。 虽然ROS 2 的执行管理已经通过执行者概念来解决,但是它缺乏实时能力使得它不适合用于工业用途。 它既不能界定执行命令,也不可能为任务分配时间表参数,尽管先进的实时调度算法在现代RTOS(RTOS)中是广为人知和可用的。 例如, NuttX RTOS 支持一个基于保留的时间表的变体,这对工业应用非常有吸引力。 它允许将执行时间预算分配给软件组件,因此一个系统整合器可以保证整个系统的实时需要。 本文既不能界定执行命令,也不可能为任务分配时间参数,尽管高级实时参数是现代 RTOS 系统的一个自动调度系统。