A Software System for Robotic Learning by Experimentation Iman Awaad, Ronny Hartanto, Beatriz Leon and Paul Pl¨ oger Abstract— The goal of the work presented here is to develop a robotic software system which enables robotic learning by experimentation within a distributed and heterogeneous setting. To meet this challenge, the authors specified, defined, devel- oped, implemented and tested a component-based architecture called XPERSIF. The architecture comprises loosely-coupled, autonomous components that offer services through their well- defined interfaces and form a service-oriented architecture. The Ice middleware is used in the communication layer. Addition- ally, the successful integration of the XPERSim simulator into the system has enabled simultaneous quasi-realtime observation of the simulation by numerous, distributed users. I. INTRODUCTION Software solutions have developed from a simple al- gorithm to programs that might contain more than one algorithm, to groups of programs forming an application. Nowadays, these solutions might encompass numerous ap- plications running on a number of machines. More often, these applications are developed independently and must be integrated into a single architecture. Along with these de- velopments, the complexity in the task of designing and ab- stracting (or architecting) these architectures has also grown. Principles that guide the structuring of such distributed applications are necessary, as is the use of technology which facilitates their development. The test bed for the software system presented in this work is the XPERO project, the goal of which is robot learning by experimentation. The task at hand is the integration of required applications, such as planning of experiments, perception of parametrized features, robot motion control and knowledge-based learning, into a coherent cognitive architecture. This allows a mobile robot to use the methods involved in experimentation in order to learn about its environment. The software applications are distributed due to both the processing power needed and the multidisciplinary cooperation inherent in robotics research. The results of this work demonstrate that the architecture is robust and flexible, and can be successfully scaled to facilitate the complete integration of the necessary applica- tions, thus enabling robot learning by experimentation. The design supports composability, thus allowing components to be grouped together in order to provide an aggregate service. Distributed simulation enables real time tele-observation of the simulated experiment by users and applications. I. Awaad, R. Hartanto and P. Pl¨ oger are with the Faculty of Autonomous Systems, Bonn-Rhein-Sieg University of Applied Sciences, Grantham Allee 20, 53757 Sankt Augustin, Germany ronny.hartanto@fh-bonn-rhein-sieg.de B. Leon is with the Universitat Jaume I, Robotic Intelligence Laboratory, Castellon de la Plana, Spain The following section will discuss and compare related work. Next, the necessary background information on the chosen approach is provided in the form of an overview of service-oriented architecture (SOA) and component-based software engineering (CBSE). The XPERSIF [1] system architecture and the component model which forms the basis for all components within the loop is then presented. An overview of the resulting architecture follows. As simulation was used from the start to speed up the pace of research [2] the novel solution used to distribute the simulation to numerous clients simultaneously is then presented. The results are presented in section VI along with a discussion of the work. II. RELATED WORK In this section, we present an overview of robotic software systems (RSS) and relate them to this work. As laid out in [3], RSS tend to fall within one of three cat- egories, driver and algorithm implementations, communica- tion middleware, and robotic software frameworks. Often, the borders between these categories are blurred. Comparisons between RSS within different categories is misleading as each is motivated differently and serves a different function – i.e. they are simply unlike each other except in their shared goal of increasing reusability in robotics. An attempt is made here to present an example RSS from each of the three categories above, and relate them to this work. The Player project [4] is an excellent example of the first type of RSS described above (driver and algorithm imple- mentations). It includes a robot device interface which serves as a hardware abstraction layer (HAL) for robotic devices, as well as the robot simulators Stage and Gazebo. They are all open source and free. Player allows the same interface to be used to control the robot by providing ‘drivers’ which translate the abstract commands available in the interface into robot-specific commands. Middleware for Robotics (Miro) is a distributed object ori- ented framework for mobile robot control, based on CORBA [5]. The overhead in terms of memory and processing power which results from the use of CORBA is a disadvantage of this solution. In addition, the complexity involved in understanding and learning to use it is also a hurdle. In comparison, the use of the much simpler and more efficient Ice middleware by XPERSIF precludes such problems. Miro is an example of the second type of RSS. Orca [6] is very much a robotic software framework. It is an open-source framework for developing component- based robotic systems. It uses a CBSE approach which allows building-blocks (components) to be developed and