Although we plan to participate in both the real and simulated events of the planned RoboCup event at IJCAI'97 [Kitano et al. 1995], the real system of model cars remotely controlled from off-board computers is still under development. Our research is currently conducted in a simulator of the physical system.
Both the simulator and the real-world system are based closely on systems designed by the Laboratory for Computational Intelligence at the University of British Columbia [Sahota et al. 1995]. The simulator facilitates the control of any number of cars and a ball within a designated playing area. Care has been taken to ensure that the simulator models real-world responses (friction, conservation of momentum, etc.) as closely as possible. Sensor noise of variable magnitude can be included to model more or less precise real systems. A graphic display allows the researcher to watch the action in progress, or the graphics can be toggled off to speed up the rate of the experiments. Figure 1(a) shows the simulator graphics.
Figure: (a) The graphic view of our simulator. Eventually
teams of five or more cars will compete in a real-time game of robotic
soccer. (b) The interface between the clients and the simulator.
The simulator is based on a client-server model in which the server
models the real world and reports the state of the world while the
clients control the individual cars (see Figure 1(b)).
Since the moving objects in the world (i.e. the cars and the ball) all
have a position and orientation, the simulator describes the
current state of the world to the clients by reporting the x, y, and
coordinates of each of the objects indicating their positions
and orientations. The clients periodically send throttle and
steering commands to the simulator indicating how the cars should
move. It is the simulator's job to correctly model the motion of the
cars based on these commands as well as the motion of the ball based
on its collisions with cars and walls.
For the purposes of this paper, the only path planning needed is the ability to steer along a straight line. This task is not trivial since the client can only control the car's motion at discrete time intervals. Our algorithm controls the car's steering based on its offset from the correct heading as well as its distance from the line to be followed. This algorithm allows the car to be steering in exactly the right direction within a small distance from the line after a short adjustment period. Thus the car is able to reliably strike the ball in a given direction.