RoboHobbyPlugin



RoboHobbyPlugin - Java-based brain for small hand-made robot.

You can think of this project as of very simple implementation of Java brain for small hand-made robot.

It is supposed that robot is able to see the World, analyze the image and make decision where to go on the next step.
No data of any other sensors, like touch, ultra sonic, etc. are not processed yet.

Robot is very simple and stupid. You can do it your self from standard toy car.
The robot can move forward, backward, right (turn clockwise), left (contra-clockwise).

The purpose of the RoboHobbyPlugin software is to analyze incoming picture and generate commands.

List of possible commands:

forwardCommand
rightCommand
backCommand
leftCommand


Current algorithm is very easy: The application is trying to find all points of target color in the input image, then calculate center of array of these points.

Found resulting coordinates X and Y will be the result of the calculation.
Then the application calculates where this point is located in comparison with the center of the image.

The application is suppose that robot see some place right forward from the robot.
It can not turn its head to right or left and if the robot see the target on the left, it should go left, if it see target on the right, it should go to the right.
If the target is on the center of the image, robot should go forward.

The RoboHobbyPlugin is able to analyze block of input images (directory inputimages) and write resulting images to output directory outimages.

To run application you should have installed on your PC:

1) JRE (1.5 or 1.6 is OK)
2) Ant (Java-based utility, something like make) See: http://ant.apache.org/
3) JUnit ( See: http://www.junit.org )

To run tests you should go to /RoboHobbyPlugin/build
And type ant test.

This test is based on JUnit idea - run a lot of tests, check special condition, get answer - yes or no, failed current test if no and stop all the set of tests if one test failed.

Current test checks - what command is generated from current image and compare generated command with pre-defined for this very image.

We put some test images to inputimages directory.
The list of pre-defined commands for this set of images is located in /RoboHobbyPlugin/test/test.properties

The format of the file is compatible with Java properties format.
It is very simple and looks like:

2006-11-09_13-26-30.jpg=forwardCommand
2006-11-09_13-28-25.jpg=leftCommand
. . .
etc.

RoboHobbyPlugin is designed to run bulk tests, where we have a lot if input images in inputimages directory.
Main purpose of this project is to run tests to polish your own action algorithm and see how good your own algorithm is.

Original algorithm is very simple and stupid - just find center of block points of pre-defined color.

I hope you can implement much more clever algorithm.
For example, it would be interesting to implement line-follow and wall-follow algorithms.


Also this appplication is ready to be used with Java project RoboHobby
www.RoboHobby.com,
where you can see on-line visualization of the RoboHobbyPlugin job.

We will place some more comments with print-screens (how to use RoboHobbyPlugin with NetBeans and Eclipse, examples of input and output pictures, etc.)

See:
http://www.robohobby.com/RoboHobbyPlugin