Asynchronous frameworks for distributed embedded systems, like ROS and MQTT, are increasingly used in safety-critical applications such as autonomous driving, where the cost of unintended behavior is high. The coordination mechanism between the components in these frameworks, however, gives rise to nondeterminism, where factors such as communication timing can lead to arbitrary ordering in the handling of messages. In this paper, we demonstrate the significance of this problem in an open-source full-stack autonomous driving software, Autoware.Auto 1.0, which relies on ROS 2. We give an alternative: Xronos, an open-source framework for distributed embedded systems that has a novel coordination strategy with predictable properties under clearly stated assumptions. If these assumptions are violated, Xronos provides for application-specific fault handlers to be invoked. We port Autoware.Auto to Xronos and show that it avoids the identified problems with manageable cost in end-to-end latency. Furthermore, we compare the maximum throughput of Xronos to ROS 2 and MQTT using microbenchmarks under different settings, including on three different hardware configurations, and find that it can match or exceed those frameworks in terms of throughput.
翻译:对于分布式嵌入系统,如ROS和MQTT等分布式嵌入系统,其非同步框架越来越多地用于安全关键应用,如自动驾驶,其意外行为的成本很高。但是,这些框架中各组成部分之间的协调机制产生了非确定性,通信时间等因素可能导致在处理电文时任意命令。在本文件中,我们在依赖ROS的开放源源全堆式自动驱动软件Autoware.Auto 1.0中表明了这一问题的重要性。我们给出了另一种选择:Xronos,一个为分布式嵌入系统的开放源框架,有一个具有在明确假设下具有可预测特性的新型协调战略。如果这些假设被违反,Xronos则提供具体应用程序的故障处理者被援引。我们把Autoware.Auto totototo to Xronos 并表明它避免了在终端至终端的可控成本方面已查明的问题。此外,我们将Xronos的最大吞量与ROS 2和MQTTT在不同的环境下,包括三个不同的硬件配置中发现它能够通过这些框架或超过这些框架。