Managing Variability as a Means to Promote Composability: A Robotics Perspective

Managing Variability as a Means to Promote Composability: A Robotics Perspective

Matthias Lutz (Ulm University of Applied Sciences, Germany), Juan F. Inglés-Romero (Biometric Vox, S.L., Spain), Dennis Stampfer (Ulm University of Applied Sciences, Germany), Alex Lotz (Ulm University of Applied Sciences, Germany), Cristina Vicente-Chicote (QSEG, Universidad de Extremadura, Spain) and Christian Schlegel (Ulm University of Applied Sciences, Germany)
Copyright: © 2019 |Pages: 22
DOI: 10.4018/978-1-5225-7271-8.ch012

Abstract

Complex systems usually have to deal with a huge number of potential situations and contingencies. Therefore, a mechanism is required that enables the expression of variability at design-time so that it can be efficiently resolved at run-time. As composability plays an increasingly relevant role in building systems in an economic way, variability management should also contribute to and be taken into account in terms of composability. This chapter presents a variability management workflow aimed at supporting different developer roles in an ecosystem context. Two kinds of variability are addressed: in system operation and associated with quality of service. The former provides robustness to contingencies, while the latter focuses on the quality of the application (in terms of non-functional properties) under changing situations and limited resources. The concepts introduced in this chapter conform to the structures and principles of the H2020 European Project RobMoSys, which consolidates composability in the robotics domain.
Chapter Preview
Top

Introduction

With more and more mature robotic technology available (e.g. real-world capable localization systems, cheap and safe robotic manipulators and mobile platforms, etc.) and an increasing number of robotic systems being visible, the push on the expectations to bring robotic technology into application is getting stronger. However, robotic software development is still challenging and expensive. Actually, the need for systematic software engineering and development approaches in robotics has been recognized by the Strategic Research Agenda for Robotics in Europe (euRobotics aisbl, 2013-2014).

Nowadays, assembling applications out of existing components remains an open challenge. Integrating pre-existing building blocks usually requires extensive adaptations to make them fit together and fulfill the overall user and system requirements. These adaptations are not only costly, but also hinder reusability and maintainability. As a result, a paradigm shift from integration to composability is being increasingly demanded. Composability is the ability to combine and recombine building blocks as-is into different systems for different purposes. Composability requires that (i) the building blocks make their properties explicitly available, and that (ii) the system guaranties that these properties remain invariant under composition.

In this vein, the H2020 European Project RobMoSys (RobMoSys, 2017-2020) aims at providing composable models and software for robotic system development applying model-driven methods and tools. RobMoSys aims at coordinating the whole community’s best and consorted efforts to realize a step-change towards an ecosystem for open and sustainable industry-grade robotics software development. Apart from composability, separation of roles and concerns, and “freedom from choice” (Lee 2010) (as an alternative to the more conventional “freedom of choice”) are key design principles at the core of RobMoSys. It is worth mentioning that the contributions presented in this chapter conform with the RobMoSys structures and principles.

With these principles in mind, it is worth noting that service robots (e.g., companion, health care, or co-working robots) are expected to robustly and efficiently fulfill different tasks in complex environments. Being able to cope with the inherent complexity of open-ended environments (e.g., domestic, outdoor or crowded public spaces), together with the growing demand of more and more complex and “intelligent” (e.g., adaptive) behaviors, requires taking variability into account from the very beginning, throughout the whole system design and development process and, even beyond, at run-time. In fact, variability modeling and management, spanning from design-time to run-time, across different roles and building blocks in an ecosystem, needs to be faced in order to achieve composability.

Dealing with variability is nothing new neither in robotics nor in other application domains. However, it has been traditionally addressed in an ad-hoc way, that is, trying to predict future execution conditions and implementing specific mechanisms to deal with each particular situation. Among other issues, this approach tends to spread the variability management rationale throughout the application code, leading to increased complexity, poor reuse and difficult maintenance.

In this chapter we deal with variability from two different perspectives. On the one hand, variability in operation relates to how robots flexibly plan the sequence of actions they have to perform in order to fulfill their tasks, taking into account changes in the environment, noisy perception and potential execution failures. Managing variability in operation provides the robot with a high degree of robustness and allows it to maintain a high success rate in task fulfillment. On the other hand, variability in quality relates to the wide range of alternatives typically available to succeed in a task. Among these possibilities, some might be better than others according to quality criteria defined by the designer (e.g., in terms of resource consumption, safety, performance, etc.). Thus, managing variability in quality aims at improving the overall service robot performance.

Complete Chapter List

Search this Book:
Reset