Evolutionary Robotics: The Biology, Intelligence, and Technology of Self-Organizing Machines
by Stefano Nolfi and Dario Floreano
MIT Press; 1st edition (Nov. 13, 2000)
We typically control robots with digital ones and zeroes using imperative programming languages. This makes it difficult to codify what we do naturally—generalize. Our brains quickly assimilate and discard irrelevant items and generally avoid those that are an immediate threat without even really acknowledging what they are. An ant can do this. Now turn that into a C++ program. We can certainly come close but it isn’t easy.
Now imagine if you could teach your robot what to do. Evolutionary Robotics seeks to present a method of doing just that. The book was published in 2000; a bit ahead of its time, but the then advanced concepts are now starting to become necessary in the mainstream. The book will challenge you to make a leap in thinking about how you build control programs for your robots.
Traditionally we think of “how” the robot will operate. This book will shift your paradigm to thinking about “why” the robot will operate.
Stefano Nolfi and Dario Floreano take you through the process of breeding your control program. It is a fascinating journey where you watch your robot first learn to crawl, then walk, then run! By the time your robot is achieving your dreams it is likely it is doing it far more robustly and efficiently than if you tried to code everything yourself. Depending upon how you “trained” it, you will find it can adapt to different situations and still get the job done.
The authors first take you through a heady overview of organization and control from not so much a logical viewpoint, as robots are used to, but from a biological viewpoint. Neural networks are discussed then genetic algorithms are presented. This is a method by which your control systems are “evolved.” Many “programs” are loaded up and run. The more successful ones are combined to create new “programs.” The cycle continues until there appears to be little or no improvement in the result.
You cannot have everything all at once. In the early stages of the concept the first step is simple navigation. The robot goes from a bumbling, jerking wreck to near-optimally traversing a simple track. The authors even discuss why they can’t make the robot go any faster despite putting faster motors on it. The robot “knows” that if it goes too fast it cannot react quickly enough to avoid a crash so it tempers its speed accordingly.
The authors demonstrate using a simulation environment (such as the Player-Stage project at http://playerstage.sourceforge.net) to perform the training. Then the result is loaded onto a real robot for testing. Surprisingly, this worked very well.
The authors then demonstrate how to train the robot to perform further behaviors such as seeking out certain situations or areas, or modifying the environment. From there, different approaches to evolution are described such as co-evolution and different forms of competitive evolution. Finally, they address different methods of encoding and mapping your control systems, and how the evolutionary concept is presented and managed.
The authors then have a bit of fun extrapolating the technique to different morphologies such as legged and slithering robots. Lastly, the authors explore evolvable hardware such as field programmable gate arrays.
Although neither a quick nor easy read, I was unable to put this book down. There is a lot of fascinating and exciting possibilities in its almost 300 pages. At the end you cannot help but envision a robot that is not programmed but taught; a robot that does not operate because you tell it to but because it wants to.
I would enjoy hearing your comments or experiences with approaches such as this in the forums of Robot Magazine at http://www.botmag.com/bulletin.
—Doug Thom (aka The Duck)
From Issue 2 of Robot Magazine on Page 39
Evolutionary Robotics is available from Amazon.com used and new, from $23.98.