In a robotic soccer team there is a crucial resource, namely the ball, that one single agent is in control of or aiming at being in control of. A precise objective in robotic soccer is the scoring of goals, i.e. kicking the ball into the opponent's goal. We say that the agent in control is active if it is the team member currently in charge of directly controlling the achievement of the team goal. All the other teammates are said to be passive.
We have previously created an action selection algorithm for an active agent in a team that allows for the run-time evaluation of what action to take when in possession of the ball: passing the ball to one of the teammates or shooting it directly towards the goal [16]. The interesting question we address here is what should the passive agents do? Anticipation allows the passive agents to actually not be ``passive,'' but to position themselves with the concrete objective of trying to maximize the chances of a successful pass in case the active agent chooses to pass to them.
This strategic position takes into account the position of the other robots--both teammates and adversaries--and the positions of the ball (and active teammate) and of the opponent's goal. This becomes a multi-objective function with repulsion and attraction points.
Let's introduce the following variables:
Given these defined variables, we can then formalize the concrete robotic soccer anticipation algorithm, which we call SPAR for Strategic Positioning with Attraction and Repulsion. This extends similar approaches of using potential fields for highly dynamic, multi-agent domains [6]. The probability of collaboration in the robotic soccer domain is directly related to how ``open'' a position is to allow for a successful pass. SPAR then maximizes the repulsion from other robots and minimizes attraction to the ball and to the goal, namely:
This is a multiple-objective function. To solve this optimization problem, we restate this function into a single-objective function. As each term may have a different relevance (e.g. staying close to the goal may be more important than staying away from opponents), we want to consider each term with a different weight, namely , , , and , for the weights for opponents, teammates, the ball, and the goal, respectively. Our anticipation algorithm uses then a weighted single-objective function:
This optimization problem is then solved under the constraints which are specific to each team environment. We now present the set of constraints for both the simulator and the real robots environments. We used this anticipation algorithm in both of these platforms.