/ Projects / The development of autonomous virtual robot on the basis of the finite state machine method (example of "CodeRally" game, given on ACM international collegiate programming contest 2003)
(версия для печати)
The development of autonomous virtual robot on the basis of the finite state machine method (example of "CodeRally" game, given on ACM international collegiate programming contest 2003)
(C) 2003. E.M.Yuzhakov, A.A.Shalyto
Saint-Petersburg State University of Information Technologies, Mechanics and Optics
During ACM (Association for Computing Machinery) International Collegiate Programming Contest participants are offered to develop an application to control the robot in some virtual environment for the training tour. Annually both robot and its environment are changed. Java language is the only allowed programming language for the implementation. After the program is finished, robots are competing with each other. That's why the competition is called "Java Challenge".
Every team gets and emulator, which calculates the game situation and displays the current state of the game world. Also, this emulator includes elementary functions for controlling the robot. Existing number of functions gives the participants full control of the robot in the borders of rules and gives an opportunity to see the behaviour of other objects on the field.
The result to be acheived is to write the most sophisticated robot controlling system (making its AI). Robot is virtual and autonomous. Under autonomity we understand that during competition robot is the only controlled by its AI (after beginning of the contest robot author does not have an ability to interact with it).
For the research and implementation of high program level it is sensible to use the method, based on SWITCH-technology. This technology is based on the usage of finite state machines and can be effectively used to solve tis task, because there is a natural way to separate states of controlled object (robot).
This work contains the analysis of the "CodeRally" task (Java Challenge 2003)  and one probable solution. As of features, diversing from the solution given by our team (SPb IFMO) on the world championship is the usage of finite state machine method and taking care of the properties of the environment of the robot world (virtual world).
Effectiveness of the given solution is displayed in the competition with other robots, included in the emulator delivery and with robots made during world championship. Developed robot gets up to 350 scores - the value near to the theoretical maximum.
This work is made in the "Open project documentation initiative" . It is one of the solutions to the problem, described in the forum of CodeRally task site , made from the absence of realisticly complex examples of it's solution, more than that the miss of any project documentation for these solutions.
For the run, the project needs Eclipse platform and game emulator. Installation procedure is detaily described in its documentation.