Home /Research /Checking consistency of robot software architectures in ROS
OTHER

Checking consistency of robot software architectures in ROS

Thomas Witte, Matthias Tichy

Year
2018
Citations
12

Abstract

Context: The software architecture of complex robot systems is usually divided into components. The software is then the configuration and combination of those components and their connectors. Objective: In the Robot Operating System (ROS), this architectural configuration, the ROS node graph, is partly defined in code and created at run-time. The static information about the architecture in the configuration is limited and checking the consistency at development time is not possible. The full software has to be manually executed to check the consistency and debug configuration errors. Method: We propose an approach and a corresponding tool to analyze ROS nodes and their launch files to check consistency and issue warnings if potential problems are detected. The approach uses both static analysis of the launch files as well as dynamic analysis of individual ROS nodes to reconstruct the node graph without executing the whole launch configuration. The nodes are executed in a sandbox to prevent side effects and enable the integration of the analysis tool, e.g., into automated testing systems. Results: The evaluation on internal and publicly available ROS projects shows that we are able to reconstruct the complete architecture of the system if the nodes implement a common lifecycle. Conclusion: The approach enables ROS developers to avoid creating incompatible architectures and check consistency already at development time. The approach can be extended to also monitor architectural consistency at run time.

Keywords

Computer scienceDebuggingConsistency (knowledge bases)Distributed computingSoftwareEmbedded systemContext (archaeology)Software bugNode (physics)Graph

Related papers

Browse all OTHER papers