How we’re using Darwin’s theory of evolution to build robots that can adapt and learn on their own
- By David Howard
- Jun 01, 2018
This article was first posted on The Conversation.
The uptake of robotics technology is increasing at a startling rate.
In the U.S., robot sales are predicted to increase by at least 15 percent per year between 2017 and 2020. Contrasting that to the human race, with an annual population increase of approximately 1.1 percent, has led some to predict that the number of robots in the world will surpass the number of humans within 30 years.
Most of these robots will perform repetitive tasks that require little or no intelligence, but a huge range of useful jobs need robots that can adapt and learn on their own. That’s why we’re using Darwinian evolution as the basis of our robot design process.
Structured and unstructured environments
Robots are often used in what we might call a “structured” environment -- somewhere that conditions are predictable and controllable, with no hidden surprises.
Think of a robot arm on an assembly line. It can perform a repetitive task, for example mounting a door onto a chassis, with relative ease because the environment it works in is tightly controlled. Intelligence is not required here, and it is easy for us to design robots for these types of tasks.
But robots struggle when we take them outside. Australia is a prime location for deploying robots outdoors, whether performing long term biodiversity studies in rain forests or providing vital information to first responders following a natural disaster. Robots would be incredibly helpful in these “unstructured” environments, which are unpredictable and uncontrollable.
To build robots that are ready to handle the challenges of unstructured environments, we need a design process that focuses on adaptation and intelligence. Luckily, we know of an incredibly powerful algorithm that creates intelligent, robust, and adaptive machines already: evolution.
The vast richness and complexity of flora and fauna observed on our planet is the result of genetics and Darwinian evolution. Creatures thrive in the most challenging and unexpected of environments, adapting themselves over numerous generations to become masters of the niche in which they reside.
Let’s consider a high level description of evolution: genes define creatures, and creatures exist in an environment. Creatures automatically adapt to their environmental niches because genes that allow them to survive and procreate in that environment are passed on to the next generation.
Instead of a population of birds or plants, what if we used Darwin’s principles to evolve a population of robots that automatically improve their performance in an environment?
We can do this either by creating a computer simulation of the robots -- which saves time and money -- or by creating them in real life. Either way, we need the following components:
Genome. A genome defines what the robot looks like and how it behaves. It is made up of a list of numbers, or genes. A leg might be defined by three genes -- the numbers 250, 3, 2 -- which gives us a leg 250mm in length, with three joints and two toes. Further numbers might tell us how many legs the robot has, where they are placed in relation to the body, what sensors the robot has and how they are wired up, and how the robot translates its sensor readings into movements to produce a behavior.
A population of robots. We make our robots according the instructions in their genomes. Each robot initially has random numbers in its genome.
A task. Let’s say we want our robots to count wombats in a certain region. We define an equation called a fitness function. Fitness is a score that tells us how well the robot is performing -- for instance, how many wombats it counts per hour. The robots attempt the task, which gives us a fitness score for each robot. Some robots will be fitter than others, and the fittest robots are more likely to be picked as “parents.”
Variation. Our parents create children. Crossover combines genes from both parents into a new “child” genome. Mutation slightly changes some of these genes as they pass from parent to child. We can make the children and get a fitness score for each, as before. Because the genomes of the children are similar to the genomes of fit parents, they are likely to be good at the task.
Generations. We perform this loop many times, incrementally optimizing the population of robots to be suited to their task and environment.
‘Endless forms most beautiful’
This is an exciting time to be evolving robots -- advances in 3D printing help us create a huge range of different robot designs, and new types of sensors and actuators only add to this burgeoning field of research.
Although we aren’t yet at a stage to match the wonderful complexity of natural life, artificial evolution can generate simulated robots that are adapted to their environments and perform simple tasks, and can quickly adapt to damage during a mission.
Evolution can also assist a designer by quickly finding good combinations of a robot’s physical attributes.
The image below is a “feature map” for a legged robot performing a simple mapping task in an environment with uneven terrain. Each pixel represents a combination of six parameters related to the shape of the robot, such as leg length, body mass, and number of joints per leg. Lighter colors represent fitter combinations. More of this map is filled in as evolution proceeds and new combinations are discovered. This kind of map helps designers to locate good body designs.
Author provided image
Different environments change how this map is filled in.
Crucially, artificial evolution gives us a tool to adapt robots to their environmental niches, which might be key to successfully deploying robots for useful tasks in the harshest environments Australia has to offer.
David Howard is a research scientist with CSIRO's Data61, Australia’s data innovation network.