Package khepera



This is an unofficial Java-package to control a simple Khepera robot-configuration either using the RoboWorld-simulator (developed by Henrik Lernmark and Tim Portnoff for the Department of Computer Sciende at Lund University) or by communicating directly with the robot using a serial connection.

See:
          Description

Interface Summary
KheperaConstants Contains all constants used with arrays returned from the Khepera class and also a couple of status constants.
MapPainter  
 

Class Summary
FollowWallController  
GridPainter  
Khepera Provides a simple representation of the Khepera-robot making it easy to read the sensors and control the behaviour of the motors.
KheperaConnection This abstract class is the foundation of the interface between a Khepera, in any form, and the Khepera class.
LEDController This class provides simple methods to flash the khepera base LEDs in a preset pattern.
LocationPainter  
LocationTracker  
MapViewer This is the foundation (this class is far from done) of a map making system for the Khepera.
RoboWorldConnection Provides a client connection to the RobotWorld simulator controlling the robot using the Khepera class.
SensorTracker  
SensorViewer This is a simple class to see the sensor readings generated from the robot.
SerialConnection Allows communication with the Khepera robot via the serial-port using the via the KheperaConnection class.
TestConnection This class only exists for test purposes.
TrailMaker  
 

Exception Summary
KheperaException This exception is generated everytime a problem with the interface to the Khepera robot occurs.
 

Package khepera Description



This is an unofficial Java-package to control a simple Khepera robot-configuration either using the RoboWorld-simulator (developed by Henrik Lernmark and Tim Portnoff for the Department of Computer Sciende at Lund University) or by communicating directly with the robot using a serial connection. This class library makes the difference minimal and provides a simple abstract way to control the robot and a couple of its extension-turrets.

DOWNLOAD
You can download this package right here as khepera.jar. This file also contains the source-code for the package. Feel free to use it as you seem apropriate.

COMPARISONS
This package is not just a re-implementation of Pallbo's Khepera package or the client skeleton provided with RoboWorld; it is aimed to be easier to cope with by removing low-level commands from the Khepera communication. Therefore, if you want to experiment on a low level with the robots rather use Pallbo's version. Also the RoboWorld skeleton provides a fast way to make small experimental control programs in a simulated environment. This package has no such functionality inonality in itself.

INSTALLATION
If you are just going to use the RoboWorld simulator you do not have to install anything else than this package. If you are going to use the serial interface you have to install additional software though (or make sure it is already present) i.e. the Java Communications API. To make the package available add the JAR-file to your classpath, eg. in csh:

   setenv CLASSPATH ${CLASSPATH}:~/mylibs/khepera.jar:
IMPORTANT NOTICE
The simulator does, as this is written, not have support for extension-turrets nor does it mimic the robot mechanical behaviour in a very exact way. Therefore it is recommended to use the simulator only to try AI-concepts out when the robots are unavailable.

CREDITS TO
Robert Pallbo from which package I got most of the base sourcecode for the serial Khepera interface.
Henrik Lernmark and Tim Portnoff from which client code I got the RoboWorld server-handshaking.

VERSION HISTORY
1.6Removed the motion counters and instead provide a coordinate system telling where the robot is currently located. Also made made the class more compact by making methods take indexing parameters instead of having many methods of the same type. Constants for this purpose can be found in the new interfain the new interface KheperaConstants.
1.5Changed the wheel speed to be in units of mm/s. Also remade the way you control the robot; you now set the speed separately from when telling it how to move. The sensors and camera image are now downloaded into an external array instead of internal.
1.1Made the entire Khepera class synchronized for total thread safety. Remade the connection interface to make it easy to construct your own customized (higher level maybee) control system as a subclass of Khepera. Some new utility mehtods were also added.
1.01Removed the listener capabilities from the Khepera class to ensure maximum performance and some thread safety.

SUPPORT
Limited support (hey, this is a free package) on the implementation and usage of this package can be obtained by e-mail to Pär Spjuth.
@author Pär Spjuth @version 1.5