Mithras2006-3D Team Description Paper

Zahra Khakpour, Mahsa Mokhtarzadeh, Arghavan Modiri

Farzanegan High-School of Tehran (NODET), Iran


Abstract Mithras is RoboCup Soccer Simulation 3D team of Farzanegan High-School of Tehran (NODET), Iran and started its activities since 2004. Last year, the team focused more on basic skills and designing a general structure for the team based on defining Roles and Situations, but implementation of a specific strategy or method for coordination between different layers of the team was left. Based on last year experiences, we have focused more on intercept, high-level skills and development of team strategy.

1 Introduction

Mithras team has been working on Soccer Simulation 3D since 2004 and chose it as a test-bed to learn more about Multi-Agent Systems and to implement Machine Learning Methods. This team is based on 8MHM8's last year activities [1].

Rcssserver3D is based on sense-think-act cycle [2]. In each sense, agent receives information from server and updates its world model. Agent decides according to the state of world model and then sends its action to server. In rcssserver3D, noise functions are implemented on agents vision and kick. As seen in RoboCup 2005 competitions, because of these noises many teams were not able to kick properly. We improved our localization to decrease this problem. This will be explained more in Section 2.

The most important factor to achieve a better result and to perform the team strategy is the quality of intercept. To decrease the interception time, we have improved our physical approximation and made a two-sided relation between intercept and decision layer. This makes our intercept considerably quicker.

We have defined fuzzy scoring functions to evaluate shoot, pass and dribble in different parts of the field. In Sec. 4, we will describe this scoring system.

2 Basic Skills

2.1 Localization

It is necessary to know the position of all objects in the field to make decision and to do proper actions. The distance of agent from markers around the field is used for its localization. As mentioned in introduction, the information that is sent from vision preceptor is noisy and this has effect on the precision of localization. There are introduced lots of methods for localization like using information from two nearest flags. To make the localization more precise, we use weighted sum of agent's distance from all 8 markers.

2.2 Prediction

In different layers of the team especially intercept and decision it is needed to have an anticipation of the game state including ball, opponents and teammates position and velocity in the next few senses. Therefore it is specified ball and agent prediction in world model. Two points should be considered about prediction: quality and time complexity. So, we use direct solution of physical equations and numeral approximation algorithms with less time complexity.

2.3 Intercept

To control the agents motion, intercept is used. Intercept has two parts: Finding the interception point and planning a path to reach that point in an optimized time.

It seems that the best path to intercept the ball is a curve one with a variable force during the agent's motion. To plan an interception path, we have to calculate the force in each sense to drive agent so as to optimize the interception time. Therefore, to find the force which should be applied in each sense, we use a numerical estimation algorithm. The Interception time and position of the opponent's interceptor is also influenced on this calculation. For instance, in some cases the best path is less important because the interception time of the opponent's Interceptor is much more than us. So, we find another way to block the opponent's path and to prevent it from reaching to ball.

3 High-level Skills

In the kickable area of ball, agent has to shoot, pass or dribble. Decision layer is responsible to choose between these skills. In high-level skill layer, a point or area is found as a target for kick. Considering this point and type of the chosen skill, Basic Skill layer finds a proper kick to send the ball there in a desired time.

3.1 Shoot

Because of the high density of opponent defenders, our agent has to shoot toward their goal as quickly as possible. We consider these parameters to check the possibility of shoot:

  • Position and velocity of opponents in the cone from ball to goal flags
  • Opponents distance from ball
  • The angles that ball makes with agent and goal flags

Shoot point is calculated with a simple Fuzzy scoring function.

3.2 Pass

The main high-level skill is passing. Different kinds of pass should be considered in different situations. For example, in spite of the region near our goal, in the region near opponents goal precision of pass is more important than its quickness.

A pass point and tolerance are calculated for passing. Tolerance indicates the precision of the pass. Doing pass with low tolerance needs more time and rotation around the ball. Therefore we have defined 5 kinds of pass: exact, regular, emergence, kick out and backward pass.

Pass point calculation process is based on finding an area or a point on the field in spite of choosing among passable teammates positions. To find this area, we use a scoring function to value passable areas of the field; then, the more valuable area will be chosen to pass to it. The result of the scoring function depends on team strategy, current game state, prediction of world model in the next senses.

3.3 Dribble

Dribble is a short pass of agent to itself. Usually this skill is chosen whenever the score of pass and shoot is low. Since kick in z-axis is possible in rcssserver3D, agent can do a lofted-kick to save the ball through opponent defenders and pass it across them.

4 Decision

In soccer, players are passive or active. Passive player does positioning while active player is the one who intends to intercept the ball. According to the estimation of the game state, the decision layer chooses the action from some senses before reaching to the kickable area. When he arrives to the kickable area behind the ball, he will shoot, pass or dribble.

It is calculated a score for each part of the field with a fuzzy function .This score indicates the order of skill priority in that part. Team strategy is considered in this scoring system. The idea of partitioning is based on what is mentioned in UvA Trilearn 2001 [3]. These partitions are defined considering the facts below:

  • In the area near our goal it is necessary to remove the ball from dangerous region and avoid the ball from entering to the penalty area
  • In the middle area of the field, team tries to advance the ball to the opponent's goal with forward passes
  • Near opponent's goal, shoot and precision of pass are more important

Coordination between decision and positioning is very important for the success of a team.

5 Positioning

The agent who does not own the ball, positions itself relative to other players to increase the success of the action selected by the decision layer. For instance, to have a successful pass, players should distribute in the field in a way to receive the ball. Positioning depends on the current formation, team strategy, role and situation. The initial formation of the team is 1-3-2-4 but it will change according to the result of the game. To find the situation, ball state, opponent's density, and teammate's state are considered. Defender, midfielder, attacker and goalie are the roles. Defenders are two types: Blocker and Angle Narrower. Goalie positioning is completely different from other players and will be explained later. For each agent, we define a home position which can change during the game. These changes can cause the team to become compressed or directed to left or right side of the field.

5.1 Goalie

The main duty of goalie is to prevent the ball from entering the goal. To fulfill this duty he should act differently related to each situation:

  • Catch the ball if he is interceptor or the ball is shot
  • Do positioning in other situations

To catch the ball, goalie has to intercept it before the ball enters the goal. Interception of the goalie is different from other players. Goalie should only intercept a point behind the ball without any rotation in order to kick the ball away from the goal.

A shot ball has a high velocity and there is only a few opportunities to intercept it, unless goalie has positioned himself in a proper place before shooting. The shootable area for an opponent is the area between the two lines from ball to the goal flags. So, one of the proper locations for positioning is the bisector of the angle between these two lines.

If situation is offensive goalie comes out of the goal up to the middle of our side field. This can prevent possible anti-attacks of the opponent team.

6 Future Works

In High-Level Skill layer, one point or area is found to send the ball. The purpose of kick action is to send the ball to that point in a desired time. To do this, we have to specify kick's power and angle. In rcssserver3D, kick effector, converts the power to force and applies it on ball in 10 steps. Since force is changed during these 10 steps and constraints on the physical equations of ball motion are not enough, so the direct solution of the problem is complex. Now, we are using an approximate function which works reasonable but a good idea to choose angle and power is to use Neural Networks. We have designed a back propagation neural network but it has not been implemented yet.

As said before, the teams intercept uses a numerical estimation to find force that should be applied in each sense but this is not ideal. Reinforcement Learning is a good method for improvement of intercept and we intend to use it.

In version 0.4 of the server which has been released recently, 2-legged agents with say and hear effectors are added. The 2-legged agent has joints in its feet and considering its center of mass, more complex structure is needed to control its movement. Also hear and say effectors give communication ability among agents. According to these changes, it seems that team needs a base code with more flexible and adaptive structure. We have some ideas that need more work to become developed; but, we hope to implement it for this year competitions.

References

  1. Vosoughpour, H., Abbasi, F., Abnar, S., YousefZadeh, M., Team Description of 8MHM8 Soccer Simulation 3D (2005)
  2. Riley, P., Riley, G.: SPADES A Distributed Agent Simulation Environment with Software-in-the-Loop Execution. In: Winter Simulation Conference Proceedings (2003) 817–825
  3. de Boer, R., Kok, J.: The Incremental Development of a Synthetic Multi-Agent System: The UvA Trilearn 2001 Robotic Soccer Simulation Team. M.S. Thesis. Faculty of Science, University of Amsterdam (2002) Section 9.5.3