goevo -- an application for evolutionary robotics with neural controllers

| back to framework main page |

What is goevo?

goevo is an application that can be used to evolve neural circuits for controlling real or simulated robots. It is jointly developed by Laboratory of Intelligent Systems, EPFL, Lausanne and Adaptive Intelligence Lab, University Utrecht (see this link for a complementary description) and written in C++ using the wxWindows framework.

The first public release contains three types of neural networks (basic perceptron, sigmoid, and spiking), a few robot interfaces (Khepera, Koala, etc.) that can also be used as reference for developing custom robot interfaces, and support for different communication methods (serial, Bluetooth, TCP/IP). Also a few basic experiment files are available for reference. The software also allows to manually control a robot with a joystick and display a bunch of sensor inputs in real time. Of course, it will let you run evolutionary experiments in order to evolve neural networks for a task of your choice (defined by your environment, fitness function, robot, etc.).

goevo running on a PC works as master and the robot as slave. goevo is responsible for the real time. It will take care of initiating the communication with the robot (e.g. sending motor speeds and reading sensor data), then running the neural network, and finally waiting for a pre-specified amount of time (e.g. 100ms) before resuming the sensory-motor cycle. The simple communication protocol is made of packets (whatever the basic layer is: RS232, Bluetooth, TCP/IP).



OS: goevo compiles both under Windows and Linux (and MacOS X with minor changes), using the GNU C++ compiler and wxWindows. Under Windows, the MinGW compiler is used as GNU compiler. Microsoft Visual C++ or Metrowerks CodeWarrior can also be used.

Robots: goevo is fully compatible and well tested with the well-known Khepera robot that can be equipped, e.g., with either a K-Team vision turret or our open extension turret kevopic. Other K-Team robots like the Koala are also supported. The software has been used with custom-made aerial robots like blimps and indoor slow flyers using Bluetooth wireless communication as well. It is also possible to connect goevo to a simulator using TCP/IP. In particular, a Webots controller, kevobot, is provided within this framework that enable 3D simulation of robots.


The program is released under the GNU Public License. The authors of any publication arising from research using this software are asked to add the following reference: goevo; http://lis.epfl.ch/resources/evo/goevo.php; Laboratory of Intelligent Systems, EPFL, Lausanne & Adaptive Intelligence Lab, University Utrecht.


The package contains a /docs folder with a number of interesting files to install and understand goevo (in particular, an UML diagram "classes.gif" of the overall architecture of the software). Practical documentation can be automatically generated using Doxygen and the file evorobo.doxy (in the /docs directory).


Version 1.0:


The developers do not provide any support for the application.


Antoine Beyeler
Arne Koopman
Brice Legrand
Christophe Millet
Jilles Vreeken
Jean-Christophe Zufferey
Mathieu Scherz
Matthijs van Leeuwen
Tiphaine Martin
... and a few LIS students during their semester or diploma projects.


| back to framework main page |

Published: 10.10.03/jcz      Last update: 04.02.05/jcz