Conceptos Básicos
The study systematically curated and analyzed 221 software bugs across 7 popular and diverse ROS software systems, providing insights into the nature of faults and failures in robotics software.
Resumen
The study analyzed 221 software bugs across 7 popular and diverse ROS software systems, including robotics applications, robot drivers, and specialized libraries. The analysis followed a grounded theory approach to examine and categorize the faults, failures, and fixes associated with these bugs.
The key findings include:
Build, deployment, and orchestration issues are the second most common type of fault, suggesting significant challenges with modularity, dependencies, and distribution in robotics software.
The dynamic, stringly-typed nature of ROS's runtime architecture leads to many configuration-related faults, where incorrect remappings, namespaces, and parameters cause unexpected behavior.
Concurrency-related faults, such as lack of synchronization and incorrect signal handling, are prevalent due to ROS's distributed architecture.
Evolution-related faults occur due to changes in dependencies, programming languages, operating systems, and hardware, which are not always reflected in the software.
Many faults are general programming mistakes that could occur in any software, including logical errors, input validation issues, and memory management problems.
Inaccurate models of the robot and its environment, encoded in files like URDF and STL, can lead to failures in planning, visualization, and simulation.
The study provides valuable insights to guide the development of effective quality assurance techniques for robotics software, such as better support for managing dependencies, runtime configuration, and model consistency.
Estadísticas
"Due to an error in velocity calculations, when Kobuki was issued a very low negative linear speed (slow backwards movement), it would also inadvertently invert its turning direction."
"A missing run-time dependency on eigen_conversions in the depth_image_proc package crashes the TurtleBot's image processing node, causing no images to be received from the camera."
"A library may alter, remove or deprecate parts of its API or ABI, leading to build failures or unexpected behavior at runtime."
Citas
"To fully realize the benefits of robotic systems, we need effective quality assurance (QA) techniques for robotics software that allow developers to build advanced applications without compromise to safety."
"ROS, colloquially known as the 'Linux of Robotics,' is a highly modular and distributed open-source platform for building robotics systems with a rich ecosystem of thousands of reusable software packages."
"The dynamic, stringly-typed nature of ROS's run-time architecture forces nodes to rely heavily on conventions and assumptions, which are typically neither enforced nor checked."