Positions are defined as flexible regions within which the player attempts to move towards the ball. For example, a robot playing the ``right-wing'' (or ``right forward'') position remains on the right side of the field near the opponents' goal until the ball comes towards it. Positions are classified as defender/midfielder/forward based on the locations of these regions. They are also given behavior specifications in terms of which other positions should be considered as potential pass-receivers (see Section 3.2.2).
At any given time each of the robots plays a particular position on the field. However, each robot has all of the knowledge necessary to play any position. Therefore the robots can--and do--switch positions on the fly. For example, robots A and B switch positions when robot A chases the ball into the region of robot B. Then robot A continues chasing the ball, and robot B moves to the position vacated by A.
The pre-defined positions known to all players are collected into formations, which are also commonly known. An example of a formation is the collection of positions consisting of the goalkeeper, one defender, one midfielder, and two attackers. Another possible formation consists of the goalkeeper, two defenders and two attackers. For illustration, see Figure 6.
Figure 6: Two different defined formations. Notice that several of the
positions are reused between the two formations.
As is the case for position-switches, the robots switch formations based on pre-determined conditions. For example, if the team is losing with very not much time left in the game, the robots would switch to a more offensive formation. On the other hand, if winning, they might choose a defensive formation. The precise conditions for switching positions and formations are decided upon in advance, in what we call a ``locker-room agreement,'' [10] in order to eliminate the need for complex on-line negotiation protocols.
Although the default action of each robot is to go to its position and face the ball, there are three active modes from which the robot must choose. The default position-holding behavior occurs when the robot is in an inactive state. However, when the ball is nearby, the robot changes into an active state. In the active state, the robot moves towards the ball, attempting either to pass it to a teammate or to shoot it towards the goal based on an evaluation function that takes into account teammate and opponent positions (see Section 3.2.2). A robot that is the intended receiver of a pass moves into the auxiliary state in which it tries to intercept a moving ball towards the goal. Our current decision function sets the robot that is closest to the ball into the active state; the intended receiver robot (if any) into the auxiliary state; and all other robots into the inactive state.