RARS for UNIX/Linux (Robot Auto Racing Sim)

RARS for UNIX/Linux (Robot Auto Racing Sim)

Post by Mitchell E. Tim » Wed, 12 Apr 1995 04:00:00

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!)


RARS for UNIX/Linux (Robot Auto Racing Sim)

Post by Gregory Pro » Sat, 15 Apr 1995 04:00:00

I tried to compile the 0.50 version the other day under Linux.  It
failed with PARSE error before PI 3.1415... Sorry, I can't remember
the exact error and I removed the source tree and tarfile to save
space.  The problem occurs in the gi(something).h file.  Also, have
you guys updated the graphics?  Looks like Borland C++ DOS graphics
calls - I guess I don't need to make the obvious remark that they
don't work under UNIX and that Linux has it's own special VGA library
called Svgalib for that kind 'o stuff.  Or you use X ;-) Sounds really
cool though - Maybe the Linux-0.39 version would work?

| Greg Propf, Towson State Univ   |  "First things first, not necessarily |
| Towson, MD (physics '96)        |    in that order" - Dr. Who           |



RARS for UNIX/Linux (Robot Auto Racing Sim)

Post by Robert W. Brew » Sat, 15 Apr 1995 04:00:00

    Gregory> though - Maybe the Linux-0.39 version would work?

Try the 0.45 UNIX version.  It works fairly well on my linux system.

Robert W. Brewer KB3BEH   A thorough knowledge of the Bible is worth more


RARS for UNIX/Linux (Robot Auto Racing Sim)

Post by Gregory Prop » Mon, 17 Apr 1995 04:00:00

>     Gregory> though - Maybe the Linux-0.39 version would work?

> Try the 0.45 UNIX version.  It works fairly well on my linux system.

OK, I can't find a 0.45 version for UNIX but there is a 0.45 zip file.  
That's for DOS I assume.  I tried the 0.39linux version.  The compile
dies with:

g++ -g   -c carz.cc -o carz.o
carz.cc:62: parse error before `)'
carz.cc: In method `void Car::move_car()':
carz.cc:514: warning: float or double assigned to integer data type
carz.cc:515: warning: float or double assigned to integer data type
carz.cc: In method `Car::Car(colors, double, double, double, int)':
carz.cc:596: `drivers' undeclared (first use this function)
carz.cc:596: (Each undeclared identifier is reported only once
carz.cc:596: for each function it appears in.)
carz.cc: In function `int main(int, char **)':
carz.cc:877: `drivers' undeclared (first use this function)
make: *** [carz.o] Error 1

I also tried the fix to version 0.50 suggested Jeff (can't remember
lastname) here in this newsgroup regarding PI.  The fix worked but the
compile still dies later with:

gcc  -L/usr/X11/lib  -o rars carz.o draw.o gi.o os.o track.o report.o
cntrl0.o bill.o cntrlb.o dynamic.o cntrl1.o cntrl2.o cntrl3.o cntrl4.o
cntrl5.o ramdu2.o arelys.o cntrlb0.o cntrlr.o tut3.cpp -lm -lX11 -lg++
ld: malformed input file (not rel or archive) tut3.cpp
make: *** [rars] Error 1

Are you linking with a .cpp file?  Seems odd. Both sets of error were
generated in response to my typing 'make'.  Hope this helps a bit with
future versions.

| Greg Propf, Towson State Univ   |  "First things first, not necessarily |
| Towson, MD (physics '96)        |    in that order" - Dr. Who           |



1. 30 pin sim to 72 pin sim adaptors

I am interested in using one of these adaptors in my system. There seem
to be 2 types:

     type A:    4 - 30 pin simm sockets that connect directly to 72 pin connector

     type B:    4 - 30 pin simm sockets with buffer chips between them and the
                72 pin connector.

The buffers are there to prevent excessive loading of the motherboard
signals (address, we, cas, ras, etc). This seems to be desirable, but
how much delay would this cause in signals getting to the memory, and
would I have to downgrade the speed of the memory (add wait states) to

The type B adaptor is only $5 more.



2. Linksys NAT/firewall--good or bad?

3. RAR for Linux/Unix?

4. POP3

5. Robots! What Robots?

6. NATA lost connection: Answer!

7. Using robots.txt to selectively allow robots but not users?

8. Kernel internals question for the gurus

9. SHAREWARE: RAR v2.01 For UNIX - archiver

10. RAR on unix shell

11. Fix vmtruncate race and distributed filesystem race

12. nis, nfs, autofs: auto.master, auto.misc, auto.home help please

13. How can I auto-reboot a SUN, then auto-login, then auto-start a program?