Espadana Simulation 2005 Team Description

Navid Gharineh, Faraz Faghri, Nader Nikbakht Nasrabadi, Milad Hosseinipour, Kourosh Sartipi

Shahid Ejei High School, Isfahan, Iran; Isfahan University of Technology (IUT)


Abstract As it's the first experience of our team in 3D league and no base code is existed, most of the team's work has been spent on developing a powerful and developmental base code with primary skills.

Introduction

Our group consists of 4 students from Shahid Ejei High School and one student of Computer Engineering in Isfahan University of Technology (IUT) as the team's leader. Several teams from our high school have taken part in previous RoboCup competitions and proved to be powerful teams in the competitions. We have been focused on Soccer Simulation 3D league and proved our researches on this case since a year ago.

In this paper we present and specify the agent's primary skills and some low level strategies. At last we will describe our formation and some features which we plan to do till competitions. Also at the end we describe our improvements which we have implement and plan to implement them for Soccer Simulation Development league.

Localization

Since the Server3D gives all the information relative to the agent's omni-camera, we need a global localization. As flags are fixed objects we used flags relative and global positions to calculate the agent global position, so the agent choose the nearest flag and by using the size of length and width of pitch gets the flag global position and then calculates the agent global position:

Agent.GlobalPos = Flag.GlobalPos – Flag.RelativePos

Estimation

Since the Simulator doesn't get the object's velocity to the agent, the agent calculates the velocity itself by the two last positions and the passed time for moving between these positions and by these velocities it calculates the acceleration.

Skills

Agent Breaking

For stopping the agent rapidly, we have designed an algorithm in which by the least error, shortest time and the least movement of agent after breaking, stops the agent. In this case we force a power to the agent, in its direction. The size of this power depends on the different velocity of the agent.

Stop Ball

When the agent is on the way of the ball's movement and we want to stop the ball with the least movement of the ball after stopping the ball we used an algorithm similar to Agent Breaking which it will force a power to the ball when the ball reaches to the agent. The amount of this power depends on the ball's velocity.

Ball Interception

For reaching and getting the mobile ball, the agent should choose the best way to reach the ball before other players. So we designed an algorithm which used Neural Networks to choose the best and the most nearest point in the way of ball by using the physical rules and mostly before the ball stopped and prevents from the agent's bad movements.

Kick Pos

One of the most important problems in the game is calculating the position- called firstPos- which agent needs to kick the ball to the specified target. In this way there are several problems. One of these problems is how to determine the agent's path way to the position behind the ball which agent needs to kick the ball to a target. If ball is located between the agent and firstPos agent with a circular path orbits the ball until reaches to the firstPos. Among these actions we use a method to solve collisions between agent and other objects in the way [6].

Kick Power

To kick the ball to the sufficient distance, we use Fuzzy logic and Neural Net abilities to determine the corresponded kick power. We calculate 10 equations based on kick distance and its power and with linear interpolation method, we select the proper equation.

Using this way we can kick the ball to the specified target in passing and dribbling algorithms.

Running

To go on a position agent may be conflict with other agents or ball in its path way. To solve this problem we have implemented a method, which helps the agent to detect the objects in its path to the target and calculate the shortest path to cross the object without any collisions with it. It is very important in dribbling and running actions.

Strategic Area

For covering all the ground by agents, we divided the ground to some areas in which the players should play in their special areas but not for danger situations in which they have permission of getting of this areas.

Formation

For making a collaborative play, we find out some ways, and one of them is using some different formations, in which we had assigned different role to each player and it would change in different situations. We have located four players as defenders and four as forward and two free middle players which will join whether defenders or forwards in different game situations. In addition to these players we have introduced a semi-developed Goalie which can change its position depending on relative position of ball and opponent attackers. The formation setup depends on the team which will start the game after kick off; if we start the game we choose the attacking formation and if the opponent team is the beginner of the game we choose defending formation.

Formation diagram
Formation diagram

Future Work

Passing

We plan to implement some different ways of passing, and specially using air passes more in the future.

Dribbling

Also the dribble technique, a very important and primary basic which is necessary for a good game is in our program and it will be completed very soon.

Developing Soccer Simulation Server

We have been started our research works on Developing Soccer Server since the committee decided to create this competition, and we have two aim in this case, first we want to develop the server as will be mentioned below and second we want to change the server as will be able to use it on real robots (especially on middle sized robots).

Some of our ideas that have been implemented and will be implemented:

  • Change the server as the team players can use all physics rules, because at the league's server we see that it's impossible to use some physics rules i.e. using movement equation for mobile objects in some different situations, etc.
  • We implement the Stamina as had been described in rcssserevr2d but just basically, as it calculates the stamina for players movements not for kicking or other players activities. We plan to develop this feature as soon as possible.
  • At the moment the player doesn't have the jump ability, so we plan to add this feature as it is in real world, after implementing this feature we plan to change the height of the goal so the players can use kicks with height more in games.
  • As there is no relation between the ball and the player when the player reaches the ball to controlling and getting it we plan to implement the Dribbling skill so the players can control and play better.
  • When we implement the dribble skill we plan to implement the Tackle skill so other players can reaches the controlled ball as it is in rcssserver2d.

References

  1. Patrick Riley , SPADES System for Parallel Agent Discrete Event Simulation User's Guide and Reference Manual, December 7 ,2003.
  2. Kogler, M., Simulation and Visualization of Agents in 3D Environments.