Control systems for autonomous robots are concurrent, distributed, embedded, real-time and data intensive software systems. A real-world robot control system is composed of tens of software components. For each component providing robotic functionality, tens of different implementations may be available. The difficult challenge in robotic system engineering consists in selecting a coherent set of components, which provide the functionality required by the application requirements, taking into account their mutual dependencies. This challenge is exacerbated by the fact that robotics system integrators and application developers are usually not specifically trained in software engineering. Current approaches to variability management in complex software systems consists in explicitly modeling variation points and variants in software architectures in terms of Feature Models. The main contribution of this paper is the definition of a set of models and modeling tools that allow the hierarchical composition of Feature Models, which use specialized vocabularies for robotic experts with different skills and expertise.
['Davide Brugali', 'Mauro Valota']
Software Variability Composition and Abstraction in Robot Control Systems