Overview

The latest distribution is version 1.9b

In this document:

Related information:

Introduction

Welcome to the JavaBots information page, located at http://www.cc.gatech.edu/~tucker/JavaBots
JavaBots was developed at Georgia Tech's Intelligent Systems and Robotics Group by Tucker Balch.

JavaBots is a system for developing and running multi-robot control systems on mobile robots and in simulation. JavaBots is freely distributable. It may be used for education and research without restriction. Please see the EDU/gatech/cc/is/COPYRIGHT.html for detailed copyright information.

The document you are reading is also included with the JavaBots distribution in EDU/gatech/cc/is/docs/index.html .

The distribution is composed of several Java packages and applications for multiagent mobile robotics research. Except for the applications, our packages are named EDU.gatech.cc.is.*, following the Java standard to avoid conflicts with other people's classes and methods.

Example JavaBot applications:

Real-time Control of Mobile Robots
The JavaBotHard application can be used to control Nomadic Technologies' Nomad 150 robots. These robots, Lewis and Clark, won the multiagent "Find Life on Mars" event at the AAAI-97 Mobile Robot Competition using JavaBot software.
Simulation
The same control systems can be tested in simulation and run on mobile robots. In this simulation two Nomad 150 robots (black) forage for red and blue attractors, which they collect and return to the color-coded bins. They are running the same control system used on Lewis and Clark.
RoboCup JavaSoccer
Two teams of five robots attempt to kick and push a golf ball across the opposing team's goal. This simulation follows the RoboCup specifications for small real robot league play
IS Robotics Pebbles Simulation
A simulation of the Pebbles was recently completed. Support for Pebbles hardware was recently completed, but is not yet included in the distribution.

How to Install JavaBots

Note: these instructions are the same as for installing JavaSoccer. If you install JavaBots, you have installed JavaSoccer as well.
  1. Required software: make sure you have Java 1.1 or later installed on your computer. The distribution will not run with earlier versions. If you have Java, but aren't sure of the version, type "java -version". You also need unzip to unpack the distribution. You will need gmake if you want to modify and recompile.

  2. Make a directory for the distribution.

  3. Put the distribution ( distribution.zip) in the directory.

  4. unzip distribution.zip . Don't use the "-a" option, sometimes unzip will confuse class files as text. If, later on you find the source looks garbled, try 'unzip -a distribution.zip "*.java"' to just unzip the source. Not sure if Winzip supports this (if you have trouble, get the real unzip).

  5. Set your CLASSPATH environment variable to point to the directory where you unzipped the distribution. So, for example, if you installed the distribution in /home/you/java and you use csh you would set CLASSPATH with the following command:

            setenv CLASSPATH .:/home/you/java
            
    Other shells and/or operating systems use similar commands to set the CLASSPATH.

  6. Run the demos.
            cd /home/you/java/JavaSoccer
            ./demo
    
    	cd /home/you/java/Forage
    	./demo
    
    	cd /home/you/java/Pebbles
    	./demo
            

Troubleshooting

  1. If you get the error message:
           error:  zipfile probably corrupt
    
    while trying to unzip the distribution, you probably either got a bad copy while downloading, or your version of unzip is too old. Unzip v5.12 works properly while v5.1 has been known to complain, but still unpack the distrbution. The distribution was compressed with Zip v2.1, please let me know if you have this problem.

  2. If you get the error message:
           Can't find class JavaBotSim.JavaBotSim
    
    then your CLASSPATH probably doesn't point properly to the /home/you/java directory. Try Step 5 again.

  3. If you get the error message:
           java.lang.NoClassDefFoundError: JavaBotSim/SimulationCanvas
                   at JavaBotSim.JavaBotSim.(JavaBotSim.java:79)
                   at JavaBotSim.JavaBotSim.main(JavaBotSim.java:199)
    
    This was a known problem on v1.3 and earlier, get the latest distribution. If you have 1.4 or later, you may have one of these problems: your CLASSPATH may not point properly to the /home/you/java directory. Try Step 5 again. This might also be caused by a corrupted download or unzip operation. Try getting a new copy of the distribution from the webpage or just unzipping again. You may have unzipped with the "-a" option, try it without.

  4. If you get the error message:
           Unable to initialize threads: cannot find class java/lang/Thread
    
    then you are probably running Java 1.0.2 instead of Java 1.1.
    You can check that by typing "java -version".

  5. If you get the error message:
           ./demo: java: not found
    
    make sure java is in your PATH somewhere, and that Java 1.1 is installed on your system.

  6. If the program runs but the source code looks like gibberish, try unzipping again using the -a option (Step 4). This option may not be available on older versions of unzip or on WinZip. I suggest you get the real unzip.

  7. Finally, try typing the contents of the demo file directly as a command line:
           java JavaBotSim robocup.dsc 511 300
    

Compatiblity and Customization

As the name implies, most of the software is written in Java. Standard Java coding practices and conventions apply. We have compiled and run all the software on Linux, Solaris and Irix. Although the native code compiles in all these places, we've only tested it under Linux.

To make compiling with dependencies little easier, the distribution includes a gmake-based Makefile with the following functionality:

Documentation

Currently JavaBots is documented primarily using javadoc. A more complete user guide is a future goal. Here are links to the javadoc-generated documentation:

JavaBots E-mail List

If you think you'll be using JavaBots for a long time, subscribe to the JavaBots list by sending mail to majordomo@cc.gatech.edu with the line
subscribe javabots-help
in the body. You can unsubscribe by sending the message:
unsubscribe javabots-help
If you have any problems, send e-mail to the list and we'll see what we can do. javabots-help@cc.gatech.edu