|Prof. Davide Brugali
University of Bergamo
|Dr. Luca Gherardi
|Dr. Issa A.D. Nesnas
Caltech, Jet Propulsion Laboratory
|Prof. Ulrik P. Schultz
University of Southern Denmark
The utility of a robotic system is dependent on its robustness, which in turn is critically dependent on software robustness.
The implications of software failure include simple malfunctioning of the robot, damages to the robot itself, or harming
persons in the environment. Causes of failure could be due to e.g.: failure of hardware, residual bugs in software, incorrect
assumptions, or incomplete models.
A key issue is that even when the robot behaviour has been correctly specified, bugs or software misconfigurations might cause the robot controller to deviate from its specification. The ever-increasing complexity of software platforms is likely to make this issue even more pressing. Moreover, the current trend in robotics towards flexible software architectures (e.g., ROS) and the use of dynamic scripting languages (e.g., Python) might potentially also contribute to affect software robustness; this however remains an open question.
Software robustness in robotics can, at a technical level, be addressed in different ways, for example, at the level of
software architecture design or at the level of programming and modelling languages. Robot software architectures must
explicitly address robustness as a key quality, potentially impacting attributes such as efficiency or maintainability.
Programming languages and model-based approaches normally employ a high-level (specification) language that protect
against certain kinds of errors. However, such approaches may not scale well or be optimal for all layers of a complex
cyber-physical system. Technical approaches by themselves may not be sufficient without addressing robustness in the
software development process. Experimental methodology must provide useful means to reason about software robustness
in realistic scenarios.
The issue of software robustness is critical to the success of robots in complex scenarios involving humans, such as service robotics. In software development for robotics there is a particularly acute tension between the long-term need for robustness and the immediate needs for efficiency and flexibility for adding new features. The goal of this workshop is to explicitly address this tension and provide a direction for future research in the area.
This workshop focuses on several topics closely related to robot software robustness, which include:
Analysis of issues and challenges in increasing robot software robustness
Architectural models that lead to robust robotic software design
Experimental methodology for quantifying the robustness of robot software
Language- and model-based approaches for increasing software robustness
Flexibility and openness versus robustness in languages and frameworks for robots
Analysis of root causes for lack of robustness in robot software
Description of lessons learned in the robustness of large-scale, real-world integrated robot software
Description and analysis of design principles promoting robustness-related attributes
Tools and approaches for automatic validation and verification of robot software
Techniques for maximizing validation and verification coverage of tests of robotic software
Simulated and physical approaches to systematically testing robotic software
Description of state-of-the art research projects, innovative ideas, field-based studies