Scientists from the University of Cambridge have built a mother robot that independently builds its own children and then tests their performance to inform the design of the next generation. By analyzing the data it collects from observing the child, the mother robot ensures that preferential traits are passed down to the next iteration, while letting weaknesses fall by the wayside.
"We developed a robot that creates robots, and basically we have a mother robot that combines active and passive modules using glue to make other children robots, and these robots, as the mother creates them and puts them to work, she evaluates how they're behaving and she uses the data from this behavior to create the next generation of robots," explained Andre Rosendo, who worked on the project at the University's Department of Engineering.
With no human intervention beyond a simple computer command to build a robot capable of locomotion, the mother constructs a design using between one and five plastic cubes that are stuck together using glue. Each cube has a small motor inside, so when they are attached to each other in slightly varying formations it produces a different rate of locomotion when the motors are activated. Each robot child is tested on how far it moves from a starting position in a given amount of time, with the best individuals' traits carried over into the next generation.
"The mother robot can actually build hundreds of child robots and see the performance of these child robots and, if their performance is good, keep their design for the next generation, and if bad, just let it go, and just repeating this iterative design improvement processes, the mother robot can actually gradually improve the performance of the child robot," said lead researcher Dr Fumiya Iida.
While the idea of a robot that autonomously builds better and better robots sounds like the premise for a science fiction film, the motivation for the mother robot to build better children is determined by the reward program controlled by the research team.
"We program the robot based on some functions that define the reward that the robot is going to get depending on the construction that they make. They cannot change their own reward, and as the robot evolves, trying to maximize the reward that we give them, they try to reach better behaves (behavior). In the case of children robot, it's distance. So the longer the distance that the robot walks, the better the reward that it receives," added Rosendo.
The results from five separate experiments, recently published in scientific journal PLOS One, showed how the mother robot improved the performance of the children robots over ten generations. Fine-tuning of the design parameters by the mother robot also produced some surprising results, including designs that a human designer would not have been able to build.
"The largest experiment that we did so far, we built 500 robots; the mother robot generated 500 robots to see what one is good and which one is bad. And after all, we found quite an interesting design, the design of the child robots, that is very difficult for humans to design," Iida said.
The growing field of evolutionary robotics aims to build autonomous robots without human intervention. The research team in Cambridge says that their robot is mimicking nature's evolutionary mechanism of survival of the fittest; a method that could be applied to such robots used in factories.
"When you go to industries and you have, for example, a factory that makes cars; if you could have robot cameras evaluating how each car is being created, and from the mistakes that you had in the operation you could just re-do for the next car and for the next car, and you keep re-doing it - at the end you're going to have amazing cars."
While their current automaton takes about ten minutes to design, build and test a robot that it creates, they eventually want to use a computer simulation to pre-select the best robot designs, and use real models for actual testing.
Watch the robot in this video posted online by the University of Cambridge: