Proc of the International Conference on Intelligent Robots and Systems (IROS) San Diego, California, October 2007 Dynamic Self-Configuration of an Ecology of Robots Robert Lundh, Lars Karlsson, Alessandro Saffiotti AASS Mobile Robotics Lab ¨ Orebro University, 70182 ¨ Orebro, Sweden {robert.lundh,lars.karlsson,alessandro.saffiotti}@aass.oru.se Abstract— There is a tendency today toward the study of dis- tributed systems consisting of many heterogeneous, networked, cooperating robotic devices. We refer to a system of this type as an ecology of robots. We call functional configuration of this ecology a way to allocate and connect functionalities among its robots. In general, the same ecology can perform different tasks by using different configuration. Moreover, the same task can often be solved using different configurations, and which is the best one depends on the available resources. This potential flexibility of a robot ecology is reduced by the fact that, in most current approaches, configurations are pre-programmed by hand. In this paper, we propose a plan-based approach to automatically generate a preferred configuration of a robot ecology given a task, environment, and set of resources. In contrast to previous approaches, the state of the ecology is automatically acquired at planning time, and it is monitored during execution in order to reconfigure if a functionality fails. We illustrate these ideas on a specific instance of an ecology of robots, called PEIS Ecology. We also show an experiment run on our PEIS Ecology testbed, in which a robot needs to reconfigure when the original configuration fails. I. I NTRODUCTION The field of cooperative robotics is maturing, and there is now a tendency to consider complex systems which are fully distributed and highly heterogeneous. A particularly interest- ing case of this tendency is the emergence of a paradigm in which many robotic devices, pervasively distributed in everyday environments, cooperate in the performance of possibly complex tasks. This paradigm has been spelled out under different names, including network robot systems [13], intelligent spaces [9], sensor-actuator networks [4], ubiquitous robotics [8], and PEIS-Ecology [17]. Common to these systems is the fact that the term “robotic device” is taken in a wide sense, including both mobile robots, static sensors or actuators, and automated home appliances. These heterogeneous devices rely on a distributed middleware to communicate and cooperate. In this paper, we generically refer to a system of this type as an “ecology of robots”. Robotic devices in a robot ecology can be organized to cooperate in many different ways. For instance, an au- tonomous vacuum cleaner can get location information from tracking cameras in the ceiling, and ask doors to open when moving from one room to the next. In this paper, we call configuration any way to instantiate and connect the different functionalities available in the robotic devices who participate in the ecology. Different configurations typically correspond to the performance of different tasks. Moreover, the same task can often be performed using different con- figurations depending on the availability and cost of the functional resources. The ability to configure a robot ecology in different ways is the key to its flexibility and robustness. However, in most current approaches to robot ecologies, configurations are static and they are programmed by hand. In this paper, we propose a first step in the direction of automatic, dynamic self-configuration of an ecology of robot. The approach presented here builds upon our previous work [11], in which we used techniques derived from the field of AI task planning to automatically synthesize and deploy a configuration (in fact, a sequence of configurations). In that work, the planner relied on static and hand-coded information about the robot ecology (which functional re- sources are available, and at what cost). As a consequence, the generated configurations were not sensitive to the current state of the robot ecology, and could not adapt to changes in this state. In this paper, we extend that work in two important ways. First, we let the system acquire in real-time the current state of the robot ecology, in terms of availability and cost of functional resources. Second, we monitor the execution of a configuration in order to detect failures (resources which become unavailable) and to automatically re-configure the system to account for it. In order to make our discussion concrete, we apply our approach to a specific kind of robot ecology, called PEIS- Ecology [17]. In this approach, each robotic device (called PEIS) contains a number of functional modules, and robots can help each-other by borrowing functionalities from one another. In the above example, the cleaner PEIS would borrow a functionality to self-localize from the cameras, and actuation functionalities from the doors. A configuration of aPEIS-Ecology is, roughly speaking, a way to connect some of the functionalities in the PEIS-Ecology to solve a task. The rest of the paper is organized as follows. In section 2 we remind the notion of a configuration in the PEIS-Ecology framework. In section 3 we give an overview of the approach. Sections 4 to 7 detail the different steps of this approach: state acquisition, configuration generation, deployment, and monitoring. Section 8 presents experiments. Section 9 dis- cusses some related work and Section 10 concludes. II. CONFIGURATIONS A. The PEIS-Ecology Approach The concept of PEIS-Ecology, originally proposed by Saffiotti and Broxvall [17], puts together insights from the fields of autonomous robotics and ambient intelligence to