Introduction Participants Results Documentation Download Links


Several results which have been achieved through the one year of the project can be found here. This includes the program itself, the results of evolutions which have been done with the program, but also the two reports which have been written during the year.

The program

One of the main results of the project is of course the program itself. The program was split into two parts, to make it possible to run the evolution in parallel on a network of computers. One part is the so called "Master" the other the "Slave".


The master can be seen as a central place where experiments are managed. An experiment consists of everything that is needed to evolve a walking program for a certain robot architecture. This incorporates (roughly) a robot model, several robot walking programs (individuals) as well as several paramters which are needed for the simulation and the evolution of the individuals. A collection of individuals is called a "pool". The management of the pool is another task of the master.

The master program has the ability to manage more than one experiment at once. All options for an experiment can be altered via the graphical user interface. These are some of these options:

  • Loading and saving of robots.
  • Adjustment of the robots language parameters.
  • Adjustment of the GP parameters.
  • Adjustment of the simulation parameters.
  • Adjustment of the environment settings.
  • Creation of random indidividuals.
This is a picture of the master:

Der Sigel-Master.
The master. Click to enlarge.

The slave

The slave is used to simulate the run of a robot walking program. It can be used for two different purposes. During a running evolution the slave is used to calculate the fitness value of an individual. But it can also be used to visualize the simulation of an individual. For efficiency reasons the slave does not visualize when it is used to calculate the fitness value.
This is a picture of the slave while visualizing:

Der Sigel-Slave.
The slave. Click to enlarge.

Parallel evolution

The advantage of splitting the program (or problem) in two programs is, that the evolution can be done in parallel. The master is only used to manage the pool and to make some settings, while the slave is only used to calculate the fitness values.

The master send the individuals with the parameters of the experiment to several slaves.

Every slave sends the calculated fitness value back to the master.

The program can be found in the download section as a source version as well as a binary version for Linux and Solaris.

Evolution results

Some results of several evolutions can be found here. For every experiment there is a screenshot of the used robot architecture as well as a plot of the evolutions progress. The experiment-files and robot models can be downloaded here and if there is a movie it can be found here, too. Last but not least each experiment is commented.

Hammer (Nice walking fitness function)

MoviehammerNiceWalkingFitness.mpg (3.25 MB)
ExperimenthammerNiceWalkingFitnessExperiment.tar.gz (45.8 KB)
Robot modelhammer.tar.gz (18 KB)

The "Hammer" was the first robot model which worked with the simulator. There is a variant of the "Hammer": The "Short Hammer".

Short Hammer (Nice walking fitness function)

ExperimentshortHammerNiceWalkingFitnessExperiment.tar.gz (423 KB)
Robot modelshortHammer.tar.gz (17 KB)

The "Short Hammer" is a variant of the "Hammer". The motivation behind the construction of the robot was to test, whether the "Hammer" is able to walk with less links.

Octopus (Nice walking fitness function)

MovieoctopusNiceWalkingFitness.mpg (4.6 MB)
ExperimentoctopusNiceWalkingFitnessExperiment.tar.gz (69.7 KB)
Robot modeloctopus.tar.gz (19 KB)

In this experiment the "Octopus" was evolved with help of the "Nice-Walking"-fitness function. In contrast to the evolution with the "Simple"-fitness function it shows a behaviour which can be called a controlled walk.

Octopus (Simple fitness function)

MovieoctopusSimpleFitness.mpg (5.29 MB)
ExperimentoctopusSimpleFitnessExperiment.tar.gz (27 KB)
Robot modeloctopus.tar.gz (19 KB)

This "Octopus" was evolved with help of the "Simple"-fitness function, which means that it was allowed to touch the ground with its torso. The resulting walk is not very elegant, but more effective than the results achieved with the "Nice Walking"-fitness function.

Insect (Nice walking fitness function)

MovieinsectNiceWalkingFitness.mpg (3.52 MB)
ExperimentinsectNiceWalkingFitnessExperiment.tar.gz (26 KB)
Robot modelinsect.tar.gz (32 KB)

The insect is a symmetric robot with six legs. But unlike the "Walker" it is not axially symmetrical.

Walker (Nice walking fitness function)

MoviewalkerNiceWalkingFitness.mpg (3 MB)
ExperimentwalkerNiceWalkingFitnessExperiment.tar.gz (46 KB)
Robot modelwalker.tar.gz (42 KB)

The "Walker" is an axially symmetrical robot.

Runner (Nice walking fitness function)

FilmerunnerNiceWalkingFitness.mpg (3,6 MB)
ExperimentrunnerNiceWalkingFitnessExperiment.tar.gz (471 KB)
Roboter-Modellrunner.tar.gz (36 KB)

The "Runner" is a two legged robot which learned to walk without falling to the side in this experiment. This was accomplished with help of the nice walking fitness function, which does not allow the torso to go beyond a certain height level.

Runner (Simple fitness function)

FilmerunnerSimpleFitness.mpg (4 MB)
ExperimentrunnerSimpleFitnessExperiment.tar.gz (51 KB)
Roboter-Modellrunner.tar.gz (36 KB)

During this experiment the "Runner" was allowed to fall onto the side. It used this permission instantly.

Two Bases 1 (Simple fitness function)

MovietwoBasesSimpleFitness1.mpg (2.71 MB)
ExperimenttwoBasesSimpleFitness1Experiment.tar.gz (41 KB)
Robot modeltwoBases.tar.gz (12 KB)

This architecture is one of the simplest designed during the project.

Two Bases 2 (Simple fitness function)

MovietwoBasesSimpleFitness2.mpg (1.25 MB)
ExperimenttwoBasesSimpleFitness2Experiment.tar.gz (88 KB)
Robot modeltwoBases.tar.gz (12 KB)
The influence of importing individuals during the evolution process was tested in this experiment. As one can see in the plot, there is a fast rise at an early point, but after that the maximal fitness remains rather constant.

Two Bases (with a reduced instruction set)

ExperimenttwoBasesReducedInstructionSetExperiment.tar.gz (87 KB)
Robot modeltwoBases.tar.gz (12 KB)

An evolution with a reduced instruction set.

Two Bases (with a hardly reduced instruction set)

ExperimenttwoBasesHardlyReducedISExperiment.tar.gz (42 KB)
Robot modeltwoBases.tar.gz (12 KB)

An experiment with a hardly reduced instruction set.

Two Bases (High crossover rate)

ExperimenttwoBasesHighCrossOverRateExperiment.tar.gz (41 KB)
Robot modeltwoBases.tar.gz (12 KB)

In this experiment the crossover rate was set to a very high level.

Two Bases (High mutation rate)

ExperimenttwoBasesHighMutationRateExperiment.tar.gz (59 KB)
Robot modeltwoBases.tar.gz (12 KB)

In this experiment the mutation rate was set to a very high level.

Reports (Written in german)

  • "Zwischenbericht" (1.7 MB). The "Zwischenbericht" is a report, that was written after six months, to reflect what has already been achieved during this time.
  • "Endbericht" (3.15 MB). The "Endbericht" was written at the end of the project. Some useful information can be found here.