The embodied evolutionary process that slowly adapts
a robot's motion pattern can be visualized as a cyclic flow of data between
several components. The software, that connects the individual parts, starts
the iterated procedure by selecting a parent patterns out of a pool of motion
patterns. The cloned and modified offspring pattern is downloaded onto the
Arduino platform and its execution causes the activation of the robot's muscle
elements. The dynamic motion behavior, that is the product of the activation
pattern, the robot's hardware and environmental conditions, is monitored by
the camera. The software captures images from the camera and analyzes them
according to specific fitness criteria. The resulting fitness is then assigned
to the pattern and used in the decision whether the pattern is successful
enough to replace a weaker member of the pattern population. After the survival
selection, the software routine restarts to handle a new motion pattern. The
evolutionary run continues autonomously until it is terminated by the human
supervisor based subjective reasons.

Evolutionary Algorithms
Every evolutionary run starts with the initialization of its start population.
10 individual motion patterns are generated and their parameters are set randomly
with a Gaussian distribution operator.
A steady state evolution has an offspring population size of 1. Every
new successful pattern is immediately included in the parent population. Reproduction
solely based on asexual operators is carried out by cloning a parent pattern
and mutating its parameters. The software chooses one parent among the population
by using a rank-proportional selection mechanism. The mutation operators are
responsible for exploiting the possible search space by producing slight variations
of successful patterns. After evaluating its performance the steady state
evolution adds the new pattern to the parent population. Offspring and parents
compete with each other for survival as the population size has to be reduced
to its fixed value of 10. In a simple truncation action the pattern with the
weakest fitness value is extracted from the ranked population.
Fitness Evaluation
The fitness value that determines the future of every motion pattern is the
sum of several weighted fitness functions.
fitness = w1 * motion value + w2 * motion continuity
+ w3 * energy usage + w4 * cycle time
The motion value indicates the degree of the pattern's visible physical
movements by applying a motion detection operator to the captured image sequence.
A positive weight steers the evolution towards more and more articulated motion
patterns.
The motion continuity value judges each time steps activity in comparison
to the whole cycle's average motion. This allows identifying smooth and continuous
movements from abrupt and jerky ones.
The energy usage value is determined by adding up the the heating
time in seconds for each individual spring element during one activation cycle.
By weighing it negatively the evolution tries to create efficient motion patterns
that achieve high fitness while employing less energy.
The cycle time value is included into the fitness evaluation to allow
additional influence on the time character of evolved patterns. By weighing
it negatively the evolution can be steered towrads faster motion loops.
(c) 2007 - Thesis project by Eva Schindling
Completed in the MSc. programme Art & Technology