Abstract
Robotic systems are becoming pervasive and adopted in increasingly many domains, such as manufacturing, healthcare, and space exploration. To this end, engineering software has emerged as a crucial discipline for building maintainable and reusable robotic systems. Robotics software engineering research has received increasing attention, fostering autonomy as a fundamental goal. However, robotics developers are still challenged trying to achieve this goal given that simulation is not able to deliver solutions to realistically emulate real-world phenomena. Robots also need to operate in unpredictable and uncontrollable environments, which require safe and trustworthy self-adaptation capabilities implemented in software. Typical techniques to address the challenges are runtime verification, field-based testing, and mitigation techniques that enable fail-safe solutions. However, there is no clear guidance to architect ROS-based systems to enable and facilitate runtime verification and field-based testing. This paper aims to fill in this gap by providing guidelines that can help developers and QA teams when developing, verifying or testing their robots in the field. These guidelines are carefully tailored to address the challenges and requirements of testing robotics systems in real-world scenarios. We conducted a literature review on studies addressing runtime verification and field-based testing for robotic systems, mined ROS-based application repositories, and validated the applicability, clarity, and usefulness via two questionnaires with 55 answers. We contribute 20 guidelines formulated for researchers and practitioners in robotic software engineering. Finally, we map our guidelines to open challenges thus far in runtime verification and field-based testing for ROS-based systems and, we outline promising research directions in the field.
Abstract (translated)
机器人系统正在变得无处不在并逐渐应用于越来越多的领域,如制造业、医疗保健和太空探索。因此,工程软件已成为构建可维护和可重用的机器人系统的关键学科。机器人软件工程研究受到了越来越多的关注,推动了自主作为一个基本目标。然而,机器人开发人员仍然面临着实现这一目标的压力,因为仿真无法解决现实世界现象。机器人还需要在不可预测和不可控的环境中操作,这需要软件中实现安全可靠的自我适应能力。解决这些挑战的典型方法包括运行时验证、现场测试和缓解技术,以实现容错解决方案。然而,在构建基于ROS的系统时,缺乏明确的指导以帮助开发人员和测试团队在现场开发、验证或测试机器人。本文旨在填补这一空白,通过提供有助于开发人员在现场开发、验证或测试机器人时使用的指南来填补这一空白。这些指南是针对现实世界场景中测试机器人系统的挑战和要求的精心制定的。我们对基于ROS的机器人系统的运行时验证和现场测试的研究进行了文献综述,挖掘了ROS基于应用程序的存储库,并通过两个问卷回答了55个问题。我们为研究人员和实践者提供了20个关于机器人软件工程研究的指南。最后,我们将这些指南与ROS基于系统的前沿挑战进行了映射,并为该领域勾勒出有前景的研究方向。
URL
https://arxiv.org/abs/2404.11498