We propose a modular architecture for autonomous robots which allows for the implementation of basic behavioral modules by both programming and training, and accommodates for an evolutionary development o f t h e i n terconnections among modules. This architecture can implement highly complex controllers and allows for incremental shaping of the robot behavior. Our proposal is exempli ed and evaluated experimentally through a number of mobile robotic tasks involving exploration, battery recharging and object manipulation. Modern approaches to behavior engineering of autonomous robots have stressed the importance of modular and distributed architectures composed of simple and interconnected elements (Brooks, 1990Dorigo & Schnepf, 1991, 1993 Dorigo & C o l o m betti, 1994 where each component has full or partial access to sensory data and can a ect the actions taken by the robot. Distributed modular control has several potential advantages: it is an open system, it is intrinsically robust to local failures, and it is suitable for gradual \shaping", that is, incremental training of independent behavioral competencies (Dorigo & Colombetti, 1998). With modular architectures, relatively complex behavioral patterns can be built bottom-up from a set of simple basic behaviors. Two aspects are of key importance for the success of such a n a p p r o a c h: (i) the set of basic behaviors, A preliminary version of this paper was published in the proceedings of the Genetic Programming Conference, Madison, Wisconsin, 1998. 1 Incremental Robot Shaping 2 and (ii) the mutual interactions among them. As regards the rst point, the choice of which behavioral modules to assume as basic is typically made by a human designer. Once such a choice has been made, however, it is often feasible to use machine learning techniques as an aid to the implementation of the basic modules. Machine learning methods can also be exploited to develop the interactions among modules.
Incremental Robot ShapingA problem which is often di cult to solve is nding the optimal balance between human design and the use of machine learning techniques. To n d a reasonable solution, one should always have a clear idea of why learning is used in a speci c application (Floreano, 1997). In fact, a robot's ability to learn its own behavior can be exploited to: (i) cut development costs by relieving human designers of part of their burden (ii) bypass the practical impossibility to completely describe the robot's environment and task a priori (iii) endow the robot with capacities for self-adaptation, which m a y p l a y an essential role in both optimizing behavior with respect to some performance measure, and in coping with unforeseen changes in the environment.However, to exploit machine learning techniques at their best, the whole development activity has to be conceived and organized in the appropriate way. In the course of our research, we have developed a methodology to assist an engineer in the process of designing and training an autonomous robot. The...