Prof. Davide Brugali
University Of Bergamo
Home, Email
M.Sc. Nico Hochgeschwender
Bonn-Rhein-Sieg University
Home, Email
Prof. Roland Philippsen
Halmstad University
Home, Email

Workshop Theme : Robot Software Architectures

The architecture of a robot software system can be conveniently described from three points of view, namely the robot functionalities, the software implementation, the computational resources.
A robot functional architecture describes how the functionalities of a robot control system are partitioned into a collection of functional units that collaborate to fulfil the purpose of the system. This includes descriptions of the system's control and data flows, data sources (e.g. the sensors), data stores (e.g. the world model), data processing (i.e. the control algorithms), and data sinks (e.g. the actuators).
A robot component architecture describes, how a robot functional control architecture is implemented in software and how this software is structured. This includes specifying how the robot functionalities are structured into components, the dependencies between each other and external libraries, and utilities to account for specific aspects like communication middleware, quality of service, and others.
A robot runtime architecture describes how software components are mapped onto processes and threads, and how they are built and deployed onto the computational resources available on a particular robot.

Designing the software architecture of a robot control system is the process of maximizing internal cohesion of components in such a way that their responsibilities are fulfilled effectively and minimizing coupling between components in order to enhance system modularity. Better modularity is a prerequisite for better reusability.
The race towards performance pushes robotic engineers to neglect software quality attributes of a robot control system, such as maintainability, interoperability, scalability, and reusability. Software that is nicely encapsulated often simply runs slower than software that breaks encapsulation. Experience in software architecture design is about knowing when to break encapsulation to make the code run faster, and when not to do that.

This workshop focuses on several topics closely related to robot software architectures, which include:

  • Analysis of issues and challenges in robotic software development

  • Architectural models that lead to reusable robotic software design

  • Application of metrics to measure nun-functional properties (e.g., robustness, availability, etc.)

  • Identification and description of structural and behavioral patterns and design principles in robot software architectures

  • Description of lessons learned in the development and deployment of large-scale, real-world integrated robot software architectures

  • Description and analysis of design principles promoting quality of service (e.g., performance) attributes

  • Tools and approaches for automatic validation and verification of robot software architectures

  • Description of state-of-the-art research projects, innovative ideas, and field-based studies


An editorial project on the workshop theme (Springer STAR book / JOSER Special Issue) will be planned with the participants during the workshop.