Robotic systems react to different environmental stimuli, potentially resulting in the dynamic reconfiguration of the software controlling such systems. One effect of such dynamism is the reconfiguration of the software architecture reconfiguration of the system at runtime. Such reconfigurations might severely impact the runtime properties of robotic systems, e.g., in terms of performance and energy efficiency. The ROS \emph{rosbag} package enables developers to record and store timestamped data related to the execution of robotic missions, implicitly containing relevant information about the architecture of the monitored system during its execution. In this study, we discuss about our approach for statically extracting (time-windowed) architectural information from ROS bag files. The proposed approach can support the robotics community in better discussing and reasoning the software architecture (and its runtime reconfigurations) of ROS-based systems. We evaluate our approach against hundreds of ROS bag files systematically mined from 4,434 public GitHub repositories.
翻译:机器人系统会对不同环境刺激做出反应,这可能导致控制此类系统的软件发生动态重构。这种动态性的一个效应是系统在运行时发生软件架构重构。此类重构可能会严重影响机器人系统的运行时属性,例如性能和能效。ROS的rosbag软件包使开发者能够记录和存储与机器人任务执行相关的时间戳数据,其中隐含了所监测系统在执行过程中的架构相关信息。在本研究中,我们探讨了从ROS bag文件中静态提取(基于时间窗口的)架构信息的方法。所提出的方法能够帮助机器人社区更好地讨论和推理基于ROS的系统的软件架构(及其运行时重构)。我们通过在从4,434个公共GitHub存储库中系统挖掘出的数百个ROS bag文件上评估了该方法。