Robots have existed in one form or another for many centuries, but only in the last few decades have we seen a major advance in this field. Although we have waited a long time for robotic intelligence, most current robots are less intelligent than a cockroach. Even sophisticated robots such as Asimo are quite limited in terms of what actions they can perform and how they perform them.
Programming robots by hand can quickly escalate in complexity because traditional computer programs are inherently limited: they do only and exactly what you tell them to do. Not only do robots need to be able to generalize and deal with many different situations, but the programmer also needs to make sense of all the input data from the robot's sensors.
To overcome some of these problems, researchers started using evolutionary algorithms to automatically create controllers for robots. An evolutionary algorithm uses the same principles as Darwinian evolution: you have a population of individuals (in this case, an individual is a robotic controller) which compete for survival. The individuals are evaluated based on how well they can solve a task. The fittest individuals are selected and reproduce to create a new (and potentially better) generation of individuals. By giving robots a small "brain" and by using evolutionary algorithms, we can automatically make them adapt to the task and progressively learn how to solve it without (much) human intervention.
In this talk, I will cover the basics of evolutionary algorithms, the main challenges of using evolutionary techniques in real robots, and give you some tips on how you can build your own army of killer robots.
This talk was presented by Miguel Duarte (http://miguelduarte.pt) at Codebits VI (http://codebits.eu). Video available here: https://www.youtube.com/watch?v=K4EPsM2JuC8