Figure 4 shows a simplified top-level external behavior used by a team agent. The agent's top priority is to locate the ball. If the ball's location is known, it moves towards the ball or goes to its position (i.e., to assume its role), depending on its internal state. It also responds to any requested communications from teammates.
Figure 4: An example of a simplified top-level external behavior for a
robotic soccer player.
The referenced ``handle ball'' and ``passive offense'' behaviors may be affected by the agent's current role and/or formation. Such effects are realized by references to the internal state either at the level of function arguments (args1, args2), or within sub-behaviors. None of the actions in the condition-action pairs here are action primitives; rather, they are calls to lower level behaviors.
The definition of a position includes home coordinates, a home range, and a maximum range, as illustrated in Figure 5. The position's home coordinates are the default location to which the agent should go. However, the agent has some flexibility, being able to set its actual home position anywhere within the home range. When moving outside of the max range, the agent is no longer considered to be in the position. The home and max ranges of different positions can overlap, even if they are part of the same formations.
Figure 5: Different positions with home coordinates and home and max
ranges.
A formation consists of a set of positions and a set of units (as defined in Section 4.2). The formation and each of the units can also specify inter-position behavior specifications for the member positions, as illustrated in Figure 6(a). In this case, the formations specify inter-role interactions, namely the positions to which a player should consider passing the ball. We use decision tree learning to help players decide where to pass [36]. Figure 6(b) illustrates the units, the roles involved, and their captains. Here, the units contain defenders, midfielders, forwards, left players, center players, and right players.
Figure 6: (a) A possible formation (4-3-3) for a team of 11
players. Arrows represent passing options. (b) Positions can belong
to more than one unit.
Since the players are all autonomous, in addition to knowing its own role, each one has its own belief of the team's current formation along with the time at which that formation was adopted, and a map of teammates to positions. Ideally, the players have consistent beliefs as to the team's state, but this condition cannot be guaranteed between synchronization opportunities.
For example, consider the passive offense behavior in Figure 4. This external behavior references the agent's internal state via a series of function calls. Specifically, the agent is to move to some location within the home range of its current position in the team's current formation:
where HomeRange(p) returns the home range of position p; MyPosition(f) returns a player's own current position in formation f; and CurrentFormation() returns the player's own opinion of the team's current formation. Thus the internal behaviors that determine the player's current position and formation affect its external behavior. Notice that by specifying a range of possible locations, the role leaves some flexibility to the autonomous player: it can choose which specific TargetLocation to move to within the range.
Different roles can also have entirely different external behaviors. As presented in Section 4.1, each role could have an entirely different external behavior subgraph.
Our teamwork structure for PTS domains allows for several significant features in our simulated soccer team. These features are: (i) the definition of switching among multiple formations with units; (ii) flexible position adjustment and position switching; (iii) and pre-defined special purpose plays (set-plays).