Robotic systems used in safety-critical industrial situations often rely on modular software architectures, and increasingly include autonomous components. Verifying that these modular robotic systems behave as expected requires approaches that can cope with, and preferably take advantage of, this inherent modularity. This paper describes a compositional approach to specifying the nodes in robotic systems built using the Robotic Operating System (ROS), where each node is specified using First-Order Logic (FOL) assume-guarantee contracts that link the specification to the ROS implementation. We introduce inference rules that facilitate the composition of these node-level contracts to derive system-level properties. We also present a novel Domain-Specific Language, the RCL, which captures a node's FOL specification and links this contract to its implementation. ROS Contract Language (RCL) contracts can be automatically translated, by our tool Vanda, into executable monitors; which we use to enforce the contracts at runtime. We illustrate our approach through the specification and verification of an autonomous rover engaged in the remote inspection of a nuclear site, and examples focussing on the specification and verification of individual nodes.
翻译:安全临界工业情况下使用的机器人系统往往依赖模块化软件结构,并越来越多地包括自主组件。 核实这些模块化机器人系统的行为是否如预期那样需要能够应付并最好利用这一内在模块化的方法。本文描述了一种组合式方法,用于具体说明使用机器人操作系统(ROS)建造的机器人系统中的节点,其中每个节点都使用For-Oder逻辑(FOL)假设-保证合同来指定,将规格与ROS实施联系起来。我们引入推论规则,便利这些节级合同的构成,以产生系统层面的特性。我们还提出了一种新的“常规语言”,即RCL,它捕捉到节点的FOL规格,并将这一合同与合同的实施联系起来。 ROS合同语言(RCL)合同可以通过我们的工具Vanda自动转换为可执行的监视器;我们用来在运行时执行合同。我们通过对远程视察核站点进行自主检查的规格和核查来说明我们的方法。