The Robot Operating System (ROS) is a popular framework and ecosystem that allows developers to build robot software systems from reusable, off-the-shelf components. Systems are often built by customizing and connecting components via configuration files. While reusable components theoretically allow rapid prototyping, ensuring proper configuration and connection is challenging, as evidenced by numerous questions on developer forums. Developers must abide to the often unchecked and unstated assumptions of individual components. Failure to do so can result in misconfigurations that are only discovered during field deployment, at which point errors may lead to unpredictable and dangerous behavior. Despite misconfigurations having been studied in the broader context of software engineering, robotics software (and ROS in particular) poses domain-specific challenges with potentially disastrous consequences. To understand and improve the reliability of ROS projects, it is critical to identify the types of misconfigurations faced by developers. To that end, we perform a study of ROS Answers, a Q&A platform, to identify and categorize misconfigurations that occur during ROS development. We then conduct a literature review to assess the coverage of these misconfigurations by existing detection techniques. In total, we find 12 high-level categories and 50 sub-categories of misconfigurations. Of these categories, 27 are not covered by existing techniques. To conclude, we discuss how to tackle those misconfigurations in future work.
翻译:机器人操作系统(ROS)是一个流行的框架与生态系统,使开发者能够通过可复用的现成组件构建机器人软件系统。系统通常通过配置文件定制和连接组件来构建。尽管可复用组件理论上支持快速原型开发,但确保正确的配置与连接具有挑战性,开发者论坛中大量相关问题印证了这一点。开发者必须遵循各个组件通常未经检查且未明示的假设。若未能做到这一点,可能导致配置错误,这些错误往往仅在实地部署时才会被发现,而此时可能引发不可预测的危险行为。尽管配置错误已在更广泛的软件工程背景下得到研究,但机器人软件(尤其是ROS)带来了领域特有的挑战,并可能造成灾难性后果。为理解并提升ROS项目的可靠性,识别开发者面临的配置错误类型至关重要。为此,我们研究了ROS Answers(一个问答平台),以识别和分类ROS开发过程中出现的配置错误。随后,我们进行了文献综述,评估现有检测技术对这些配置错误的覆盖情况。我们共识别出12个高层级类别和50个子类别的配置错误。其中,有27个子类别未被现有技术覆盖。最后,我们讨论了未来工作中如何解决这些配置错误。