Back to the Non-Standard Computation group page
In my research I am working on making the process of evolving a working swarm behaviour faster.
I work as part of the CoSMoS Project within the Non-Standard Computation (NSC) research group. I am studying evolutionary swarm robotics to try and make them learn faster and more efficiently. In swarm robotics the aim is to get a group of robots to cooperate towards achieving some task, like pulling large objects, clustering items or forming themselves into larger robots.
Figure 2. A swarm of 3 robots which are physically connected together have evolved the ability to move together and to avoid falling into holes. In this picture, one of the robots is communicating to its neighbours that it is above a hole, and the other robots then moved in a direction away from the hole. You can also see a video of this swarm.
Swarm robotics is a difficult problem because the individual robots in the swarm do not know what other robots in the swarm are doing or what they will do. This means that a robot must decide what to do next depending only on information it can observe (like if there are any obstacles near it, or where its neighbouring robots are), or information it has recorded over time (for example, the change in the number of neighbours or how far it has travelled).
So for tasks like robots combining into larger robots, it is very hard for a single robot to know if it is the centre of the larger robot or its foot or any other part and act accordingly.
The robots have to coordinate themselves by following simple behaviour rules and using basic communication mechanisms. The challenge of swarm robotics research is knowing what those rules and the communicated information should be.
One solution that is used to get round this problem is to use evolutionary algorithms to get the robots to evolve their own behavioural rules. To do this each robot must assess its behaviour and assign it a fitness value. It then shares its behavioural rules and fitness with other robots in the swarm. Then the robot changes its behaviour based on its current behaviour and that of other robots with good fitness. This process is repeated indefinitely. Figure 1 shows an example of some evolved swarm behaviour.
The challenge of this approach is making the robots capable of assessing their own fitness. Usually this is done by having the robot follow its ruleset for a few minutes, and then assessing how many times it did things related to what the swarm is meant to do and giving that some score.
In my research I am working on making the process of evolving a working swarm behaviour faster. In a traditional evolutionary algorithm fitness may be measured many thousands of times, but in swarm robotics each fitness measure takes minutes to complete. This makes the process of evolving a robotic swarm very slow.
Currently I am working on a simulation in Player/Stage that will test whether giving the swarm robots pre-designed communication actually helps speed up the evolution of the swarm. When we have a working simulation the experiment will be implemented on the university's swarm of 18 robots (Figure 3).
Figure 3. One of the university's swarm robots. This is an E-Puck, an open-source robot designed at the EPFL institute in Switzerland.
I am investigating the benefits of designing the communication between the robots, so the medium of communication and the data that is transmitted, before we begin the evolution. This has two benefits which can help speed up the evolutionary process:
Want to know more?
Visit Jenny's Personal Page or our Non-Standard Computation research group web pages.
There is also an interesting video on swarm robotics by the BBC News Technology reporter, Jason Palmer.