Fig. 1. The eight tracks. Notice how tracks 1 and 2 (at the top), 3 and
4, 5 and 6 differ in the clockwise/anti-clockwise layout of waypoints and
associated starting points. Tracks 7 and 8 have no relation to each other
apart from both being difficult.
damaging such cars in collisions is harder due to their low
weight.
The dynamics of the car are based on a reasonably detailed
mechanical model, taking into account the small size of the
car and bad grip on the surface, but is not based on any actual
measurement [13][14]. The model is similar to that used in
[4], and differs mainly in its improved collision handling;
after more experience with the physical R/C cars the collision
response system was reimplemented to make collisions more
realistic (and, as an effect, more undesirable). Now, a collison
may cause the car to get stuck if the wall is struck at an
unfortunate angle, something often seen in experiments with
physical cars.
A track consists of a set of walls, a chain of waypoints,
and a set of starting positions and directions. When a car
is added to a track in one of the starting positions, with
corresponding starting direction, both the position and angle
being subject to random alterations. The waypoints are used
for fitness calculations.
For the experiments we have designed eight different
tracks, presented in figure 1. The tracks are designed to
vary in difficulty, from easy to hard. Three of the tracks
are versions of three other tracks with all the waypoints
in reverse order, and the directions of the starting positions
reversed.
The main differences between our simulation and the
real R/C car racing problem have to do with sensing. As
reported in Tanev et al. as well as [4], there is a small but
not unimportant lag in the communication between camera,
computer and car, leading to the controller acting on outdated
perceptions. Apart from that, there is often some error
in estimations of the car’s position and velocity from an
overhead camera. In contrast, the simulation allows instant
and accurate information to be fed to the controller.
how to evolve controllers that provide robust performance
over several tracks. These controllers are then validated on
tracks for which they have not been evolved. Finally, these
controllers are further evolved to provide better fitness on
specific tracks, conclusions are drawn, and further research
is suggested.
II. The car racing model
The experiments in this article were performed in a
2-dimensional simulator, intended to qualitatively if not
quantitatively, model a standard radio-controlled (R/C) toy
car (approximately 17 centimeters long) in an arena with
dimensions approximately 3*2 meters, where the track is
delimited by solid walls. The simulation has the dimensions
400*300 pixels, and the car measures 20*10 pixels.
R/C toy car racing differs from racing full-sized cars in
several ways. One is the simplified controls; many R/C cars
have only three possible drive modes (forward, backward,
and neutral) and three possible steering modes (left, right
and center). Other differences are that many toy cars have
bad grip on many surfaces, leading to easy skidding, and that
III. Evolvable intelligence
A. Sensors
The car experiences its environment through two types
of sensors: the waypoint sensor, and the wall sensors. The
waypoint sensor gives the difference between the car’s cur-
rent orientation and the angle to the next waypoint (but not
the distance to the waypoint). When pointing straight to a
waypoint, this sensor thus outputs 0, when the waypoint is
to the left of the car it outputs a positive value, and vice versa.
As for the wall sensors, each sensor has an angle (relative to
the orientation of the car) and a range, between 0 and 200
pixels. The output of the wall sensor is zero if no wall is
encountered along a line with the specified angle and range
from the centre of the car, otherwise it is a fraction of one,
depending on how close to the car the sensed wall is. A small
amount of noise is applied to all sensor readings, as it is to
starting positions and orientations.
In some of the experiments the sensor parameters are
mutated by the evolutionary algorithm, but in all experiments
they start from the following setup: one sensor points straight
forward (0 radians) in the direction of the car and has