Robotic software frameworks have major impact on development effort and quality of robot control systems. This paper provides a condensed overview on the complex topic of robotic framework design. Important areas of design are discussed -together with design principles applied in state-of-the-art solutions. They are related to software quality attributes with a brief discussion on their impact. Based on this analysis, the approaches taken in the framework Finroc are briefly presented.
MotivationSoftware frameworks have major impact on development effort and quality attributes of robot control systems -especially when systems grow beyond a certain size. Hence, how to design such frameworks is an important question of research in order to make progress in robotics. Researchers and engineers spend a significant amount of time in software development and integration. Many authors have shared their views and insights on this topic, as well as presenting approaches and implementations to cope with this complex challenge. Numerous solutions following different design philosophies have been developed and it is time-consuming to get an accurate overview on the state of the art. Many notable approaches get only limited attention in the community and are not easy to find.From extensive literature research as well as from our own experience with the development of complex robot control systems and frameworks, we attempt to provide a condensed overview in this paper -with a focus on the following questions: -What are important and central areas of design? -Which practices and principles are proposed? -What is their impact on software quality?Derived from this overview, the design choices we have taken in the Finroc [23] framework¹ are briefly presented and discussed. They were systematically evaluated with respect to their impact on relevant quality attributes of robot control systems and of the framework itself. Figure 1 lists quality attributes that we consider especially relevant across a wide range of control systems for service robots [23]. Furthermore, a selection of important areas in robotic framework design is presented -as well as a range of design principles, methodologies, and policies proposed in literature. These design decisions and principles have an impact on many quality attributes of robot control systems. Important relations are illustrated. In order to keep the figure clear, this is a very limited selection per item. In this chapter, many of these areas, principles, and relations are discussed.
Design aspects and principles
System decompositionFor system decomposition, all popular robotic frameworks follow a modular approach -aiming at reusable software artifacts that applications are constructed from. "It is both desirable and necessary to develop robotic software in a modular fashion without sacrificing performance" [6]. Robot controls commonly consist of soft-1