The Robot Auto Racing Simulation (RARS) is a simulation of auto racing
in which the cars are driven by robots. Its purpose is two-fold: to
serve as a vehicle for Artificial Intelligence development and as a
recreational competition among software authors. The host software,
including source, is available at no charge. It currently runs under
MSDOS and UNIX, including Linux, and on the Amiga. This announcement
introduces the sixth release of the software, which we call version
0.50. New features of ver. 0.50 are summarized below.
The April 30 races will be run on version 0.50. It has been tested
to assure that the robots have the same lap times as they do on
version 0.39. (Get race.ann from the ftp site, see below.)
The Robot Auto Racing Simulation
A Challenge for Evolutionary Programming
A Competition for Programmers
by Mitchell E. Timin
Version 0.50 of RARS is ready. It is written in C++. The DOS
version was compiled and tested with Borland C++ ver. 3.1. It should
be easy to port to any C++ that has functions for drawing lines and
arcs, a flood-fill or color fill function, and text output to the
graphic screen. Hence it will not be difficult to make it run on a
Macintosh or Windows system. C++ is not required for the robot
"driver" programs.
New features introduced with version 0.45 were:
- The drivers which are to race can be named on the command line.
- The computer can generate a random starting order.
- The race can be run with no graphics display.
- A series of races can be run, on the same track with the same drivers.
- A report is generated in a file, giving the results of all races in
a series. Points are accumulated using the F1 scoring system.
- Degrees or radians may be used in any track definition file.
- Clockwise tracks will work now.
Version 0.50 introduces a digital "instrument panel". Any of the racers may
be cursor-selected using the up & down arrow keys. Six key variables
for the selected car are shown during the race, updating every .25 sec.
The race tracks are defined by ASCII files. Many pre-defined tracks
are supplied. The desired track is named on the command line. Users
can create their own tracks using any text editor, although this is
not a trivial process unless a CAD program is used to find the exact
lengths, angles, and radii for the track segments. It is possible to
do it by trial and error, however.
There is a RARS anonymous ftp site: magdanoz.mcafee.com in
directory /bin/ftp/rars. Anyone can get any RARS stuff there,
code, announcements, car controllers, documentation, and tracks.
There is a listserver so that interested parties may discuss
RARS by e-mail. To subscribe to the list service send e-mail to
subscribe rars-list
(To unsubscribe, send "unsubscribe rars-list" to the same address.)
We have a page for the www at http://www.veryComputer.com/~bsr/rars.html.
Ben Rometsch in England is taking care of the www part of the project.
RARS consists of a simulation of the physics of cars racing on a
track, with a simple bird's-eye view of the race. The unique feature
is that each car is controlled by a separate and independent control
program. Each car is "driven" by its own control program, which
receives information from the simulation telling it about the car's
local situation. The "driver" (control program) adjusts the steering
and throttle, and then the physics simulation moves the car a little.
This happens many times per second, of course. Every car has exactly
the same physical characteristics, only the "drivers" are different.
Hence, the result is a competition between the control programs.
Furthermore, the competition is visible as an auto race, with
acceleration, passing, cornering, braking, etc.
It is intended that many users will write their own robot "drivers".
Thir* similar, but not identical, examples are supplied. These
are meant to serve as examples for programmers wishing to develop
their own. The control programs may be written in other languages if
they are linker-compatible on the the intended platform. To date
the robot "driver" programs have used C++ or ANSI C.
For genetic programming, the races will be between several programs
selected from an evolving population of programs. The racing may
take place continuously for long periods of time, with the graphic
display disabled for faster execution. Of course losers will be
eliminated and winners will breed. Genetic Algorithm proponents will
probably design robot drivers with a vector of parameters to be
determined by evolution. Neural nets are also candidate "drivers".
It will be up to the experimenter to decide if human-designed robots
are allowed to compete with the evolving population.
Wanted - People to do or help with any of the following:
Porting to other platforms
Testing the software and suggesting enhancements
Improving the graphics
Locating a corporate or university sponsor
Act as a race director to manage a "race meet"
Reporting, both to academic journals and popular magazines
Improving the software in any of dozens of ways
Adding sound effects
(and of course, building "drivers" to compete in the races!)