The software in this directory is currently covered under the
following copyright.
 
  Copyright 1994 by Kurt Konolige
 
  The author hereby grants to SRI permission to use this software.
  The author also grants to SRI permission to distribute this software
  to schools for non-commercial educational use only.
 
  The author hereby grants to individuals or organizations
  permission to use this software for non-commercial
  educational use only.  This software may not be distributed to others
  except by SRI, under the conditions above.
 
  Other than these cases, no part of this software may be used or
  distributed without written permission of the author.
 
  Neither the author nor SRI make any representations about the 
  suitability of this software for any purpose.  It is provided 
  "as is" without express or implied warranty.
 
  Kurt Konolige
  Senior Computer Scientist
  Artificial Intelligence Center
  SRI International
  333 Ravenswood Avenue
  Menlo Park, CA 94025
  E-mail: konolige@ai.sri.com

-------------------------------------------------------------------------------

The necessary tools needed for setting up this system are a C compiler
(preferably gcc) and Motif.  The Motif code is isolated in several
files; it is possible that a future version will use a public domain
widget set.

There are two programs, the simulator (erratic) and the handler.  You
must compile both of them.

To compile the programs, untar the distribution in an appropriate
directory (say, XX).  Your directory structure should look like:

XX
  ver1
    README
    handler
      src
      include
    erratic
      src
      include
      worlds
    app-defaults

There are Makefile's in the src directories.  Edit these to use the
correct C compiler (default is gcc) and to have the correct
directories (Motif and the executable file directories are the main
ones).  You should also put the app-defaults in your Motif path, and
edit it to have the appropriate path to the "worlds" directory.

Then, in both src directories, run "make".  This will create the
object and exec files.

To run the system, first fire up the simulator by executing "erratic"
from the executable directory.  Erratic will normally listen for TCP
connections; if you want it to connect by tty port A, use:

	"erratic /dev/ttya"

To load a world, invoke the "world" button in the simulator, and load
a file using the dialogue box.  Currently there is just one world,
"moran.wld".  You can write your own, the format is simple and should
be documented eventually...

The left mouse button moves Erratic to the cursor position.  The
middle mouse button moves the world position under the cursor to the
center of the screen.


Similarly, start up the handler by executing "handler".  This can run
on a different machine from the simulator.  The "connect" button on
the top right brings up a dialogue asking for the connection; type the
name of the machine on which Erratic is running (or the tty port if
that is appropriate).  A connection dialogue will ensue, and the
system should be up and running.

The handler starts out running two fuzzy control behaviors, one for
obstacle avoidance and one for moving forward at 300 mm/sec.  By
pressing the left button on the mouse, a control point is placed at
the cursor position, and the go-to-position behavior is invoked.
Multiple points can be added using the mouse; they are used as
successive control points.

Behaviors can be temporarily turned on and off by clicking on the
buttons in the control window.  If the button is activated, the
behavior is on.

Teleoperation is possible using the keyboard.  "i" causes the robot's
forward velocity to be incremented, "m" causes it to be decremented.
"j" and "l" cause left and right turns, respectively.  Pressing
"space" stops the robot.

