RoboCup
(Robot Soccer) is a standard problem from Artificial Intelligence. Its
goal is to let teams of cooperating autonomous agents play a soccer
match, using either real robots or simulated players. We constructed
a VR environment in which humans in CAVEs at different geographic locations
can play along with a running RoboCup simulation in a natural way. A
central role is played by the so called Soccer Server, which keeps track
of the state of the game and provides the players with information on
the game. The players are individual processes that can request state
information from the server and autonomously compute their behavior.
The server also enforces the rules of RoboCup and ignores invalid commands
from the players.
Our
RoboCup VR system uses the unmodified existing server software. The
players communicate with the server by sending soccer commands. The
commands are expressed in a simple language, consisting of accelerations,
turns, and kicks. The server discretizes time into slots and only the
last command of a player within a time slot is executed. Also, the kick
command requires the player to be close to the ball. We run such a system
on a Myrinet cluster computer.
The
CAVE program allows the user to be immersed in the game and to interact
with it. We implemented a proxy which uses the same information and
communication as the existing 2D visualization. The data set described
in our CAVEStudy configuration file consists mainly of the player positions
and the ball position. From successive states of the game, the visualization
system computes several quantities such as direction, velocity and acceleration
of the players. We built a virtual stadium and a parameterized soccer
player whose movements are interpolated between three different modes:
standing still, walking, and running. We developed software to track
the behavior of a human in the CAVE. One tracker is connected to the
viewing glasses and monitors positional changes of the human player
inside the CAVE. The second tracker is connected to the wand, which
is used for global movements over the soccer field. The third tracker
is attached to the foot of the human player and is used to recognize
a kick. We convert tracker changes into soccer commands and transmit
these to the server. Finally, we coupled two CAVEs located in Amsterdam
and Stockholm. The two CAVEs are connected to the same proxy, so the
two humans participate in the same game.
The
most difficult problem in realizing a virtual RoboCup system is caused
by the latency of the simulation program. If the human player moves
over the virtual soccer field, these moves happen almost instantaneously
for the human. In contrast, the soccer server will require some time
to process the change of position. Also, the wide-area (Internet) connection
causes a substantial delay. This problem is a typical example of how
a delay introduced by a simulation program can harm a natural and real-time
interaction. We are currently developing accurate and low-bandwidth
algorithms for the navigation (walking across the soccer field) and
the interaction (kicking detection) that generate commands to the server.
The
first implementation of this system was done without CAVEStudy. We had
to program the communication between the different components, which
is tedious and error prone. Using CAVEStudy, the communication is automatically
generated. More generally, the case study with RoboCup shows the applicability
of CAVEStudy on the large class of agent/server systems.