一句话:提出 ROSInfer,通过静态分析 ROS API 使用模式自动推断机器人系统的行为组件模型,在 534 个组件上可推断 87% 的因果触发行为。
机器人系统是由数百个动态交互组件构成的复杂安全攸关系统,其组件常表现出反应式、周期性和状态相关行为,错误的组件组合会导致组件被动等待永不到来的初始化消息等异常。基于模型的分析可借助组件状态机检查行为组合的正确性,但为数百个组件手工编写状态机成本极高。本文提出一种针对基于 ROS(Robot Operating System)的系统的行为模型推断方法,通过对 ROS API 与生态使用方式的假设进行静态分析,搜索 ROS 开发者实现反应式、周期性和状态相关行为的常见模式,从而自动推断组件行为模型。作者在 5 个复杂真实 ROS 系统(共 534 个组件)上评估 ROSInfer,并人工构建 155 个组件模型作为 ground truth 及公开数据集。结果显示,ROSInfer 能为 534 个组件中 87% 的组件架构行为推断出因果触发关系。
Robotics systems are complex, safety-critical systems that can consist of hundreds of software components that interact with each other dynamically during run time. Software components of robotics systems often exhibit reactive, periodic, and state-dependent behavior. Incorrect component composition can lead to unexpected behavior, such as components passively waiting for initiation messages that never arrive. Model-based software analysis is a common technique to identify incorrect behavioral composition by checking desired properties of given behavioral models that are based on component state machines. However, writing state machine models for hundreds of software components manually is a labor-intensive process. This motivates work on automated model inference. In this paper, we present an approach to infer behavioral models for systems based on the Robot Operating System (ROS) using static analysis by exploiting assumptions about the usage of the ROS API and ecosystem. Our approach is based on searching for common behavioral patterns that ROS developers use for implementing reactive, periodic, and state-dependent behavior using the ROS framework API. We evaluate our approach and our tool ROSInfer on five complex real-world ROS systems with a total of 534 components. For this purpose we manually created 155 models of components from the source code to be used as a ground truth and available data set for other researchers. ROSInfer can infer causal triggers for 87% of component architectural behaviors in the 534 components.
@inproceedings{paperbot11445,
title = {ROSInfer: Statically Inferring Behavioral Component Models for ROS-based Robotics Systems},
author = {Tobias Dürschmid and Christopher Steven Timperley and David Garlan and Claire Le Goues},
booktitle = {ICSE},
year = {2024},
doi = {10.1145/3597503.3639206}
}