Experiments in evolutionary collective robotics - Bastos, André González Amor de (2011)
Evolutionary robotics is a technique that aims to create controllers and sometimes morphologies for autonomous robots by using evolutionary computation techniques, such as genetic algorithms. Inspired by the Darwinian principle of survival of the fittest through reproductive success, the genetic algorithms select the fittest individuals of each generation in order to create the next one and so forth, until a suitable controller for the designated task is found or for a certain number of generations. The main goal of this work is to study the emergence of collective behaviors in a group of autonomous robots by using artificial evolution techniques to evolve suitable controllers. The emergence of explicit communication protocols in the experiments is also studied in order to understand its influence on the behaviors the controllers evolved. Since artificial evolution can be a time consuming task, and because of the random nature of the controllers produced in early generations can damage real robots, a simulator is often used to evolve and test the controllers. The controllers used in this study are Continuous Time Recurrent Neural Networks whose weights of the synaptic connections, bias and decay rates are encoded into chromosomes. The chromosomes are produced by using a genetic algorithm and evaluated by an evaluation function designed specifically for the task that simulated robots have to perform. The controllers produced through artificial evolution are tested in terms of performance and scalability. The components of the simulator, such as evaluation functions, environments, experiments, physical objects and so forth are described. Some guidelines of how to create such components, as well as some code examples, are available in the report to allow future users to modify and improve the simulator.