ITANDROIDS-3D 2005 - Team Description

Samuel Carrijo, Jackson P. Matsuura, Jorge Gripp, Thomás Dias, Diego Kallut

Instituto Tecnológico de Aeronáutica São José dos Campos, SP, Brazil


Abstract RoboCup is an international initiative which objective is to promote scientific and technical progress in the fields of Robotics and Artificial Intelligence. To accomplish its objectives RoboCup promotes a series of scientific and competition events, the last divided in many robotics and simulated Leagues and categories. One of such categories is the Soccer Simulation 3D, where teams of 11 autonomous software agents per side play each other using a 3D server simulator and standard soccer rules. This paper gives an overview of the work done by the ITANDROINDS-3D team in the initiative of implementing the software to control each of the 11 autonomous agents, making them act as a team and not only as individuals. The research done up to the moment and each of the skills implemented are briefly explained. Such skills are the memory, the prediction of future situations, the decision of who is the fastest player to reach the ball, the prediction of how much turns it will take to adversaries reach the ball, the calculus of the best trajectory to intercept the ball, the calculus of the best position of the agents, and the decision of what to do with the ball. Some results of the already implemented algorithms are shown to illustrate them.

1 Introduction

RoboCup is an international initiative organised by the International RoboCup Federation and supported by the national committees. The aim of RoboCup is to promote scientific and technical progress in the fields of Robotics and Artificial Intelligence.

The concept of soccer-playing robots was first introduced in 1993. Following a two-year feasibility study in August 1995, an announcement was made for the introduction of the first international conferences and football games. In July 1997, the first official conference and games were held in Nagoya, Japan.

The popular game of soccer is used because it provides both challenges for scientific progress and a concrete evaluation testbed. Further, the concept of RoboCup soccer offers a good starting point for university education.

The aim of the RoboCup initative is to build a team consisting of completely autonomous humanoid robots that have a realistic chance of winning against the human world champion soccer team by the year 2050.

The RoboCup federation is a non-profit organisation; the main office is in Geneva, Switzerland. Roughly 4.000 researchers from nearly 40 countries contribute towards the goals of RoboCup.

2 3D Soccer Simulation

The game of soccer was the original motivation for RoboCup. Besides being a popular worldwide sport, therefore an appropriate medium to attract people to an event, it contains a significant set of challenges for researchers:

  • A collective game, in which more than one agent/robot is required to play.
  • Both individualistic (each agent/robot must identify relevant objects, self-localize, dribble) and cooperative (passes, complementary roles) elements
  • A dynamic and adversarial environment, with moving objects, some of them rational agents that play against your team.

RoboCup Simulation League consists of a number of competitions with simulated soccer matches as the main event.

There are no actual robots in this league, but spectators can watch the action on a large screen, which looks like a giant computer game. Each simulated robot player may have its own play strategy and characteristic and every simulated team actually consists of a collection of programs. Many computers are networked together in order for this competition to take place. The games last for about 10 minutes, with each half being 5 minutes duration.

The 3D competition makes use of the simulator that is based on the simulation system introduced at the RoboCup 2003 symposium [1].

The rcssserver3D provides a platform for programming simulated robots playing soccer in a physical environment.

Robots are represented as spheres. The diameter of all robots is 0.44m, and each robot weighs 75kg.

Robots possess a kind of omnidrive, which adds some physical force to the robot body. By using the omnidrive, it is possible to accelerate into any x-y direction. The robots can't jump. If you stop accelerating, robots will still move for a while, and you also cannot suddenly stop when moving with full speed. To use the omnidrive, you have to use the "driveeffector", which takes a cartesian vector with a maximum length of 100 units. With the driveeffector, you set a kind of motor force, i.e. if you want to drive full speed for a while, it is sufficient to use the driveeffector once. The force you set is applied at each simulator step until you change it again.

Using the omnidrive consumes battery. If the battery is empty, the omnidrive will stop working.

It is also possible to push away other robots. Using this feature to push away opponents is discouraged, and considered unfair play.

The kickeffector can accelerate the ball radially away from the robot body. The kickeffector takes an angle as first argument (this is the latitudal angle (in degrees) for accelerating the ball, a number between 0 and 50). The second argument indicates the kicking power and this is a number between 0 and 100 (meaning % of the maximum available power). The kickeffector adds a force and a torque to the ball (over a fixed number of simulation steps, currently 10 (i.e. 1/10s with the current settings).

To kick the ball, the ball has to be very close to the robot (0.04m).

You cannot change the kicking angle in the x-y plane, i.e. you have to move the robot so that it can kick into the desired direction. The kickeffector is very strong; it is almost possible to kick the ball quarter of the field lengh. The kickeffector does only work if the robot touches the soccer field.

The robots possess a special omnicam with some smart image processing software attached. Robots have a 360 degrees view. The visionperceptor delivers lists of seen objects, where objects are either others robots, the ball, or markers on the field (there are currently 8 markers on the field: 4 flags and 4 goal posts). With each object you get its distance, the angle in the x-y plane (0 degrees into direction of the opponent half) and the latitudinal angle (0 degrees means horizontally). The vision system does not deliver object velocities. All distances and angles are given relative to the camera position (currently at the center of the robot sphere).

It is important to remember that the kick and vision system are affected by noise, so the commands aren't executed exactly as ordered.

3 Techniques

Fist of wall it was necessary to determine the simulation dynamics, i.e. how the soccer server updates the position and the velocities of the players and the ball, with and without the effect of the driveeffector and the kickeffector.

To determine the simulation dynamics a series of experiments were done. The fist experiment was to determine the player velocity decaying dynamics, i.e., how players stop when the omnidrive force is set to zero. Each player was instructed to run using a predetermined vetor for the driveeffector. After some simulation steps the driveeffector was set to zero, so the decaying dynamics of the players should be observed. From the measures of the position and estimative of the velocities a good model was obtained.

With the decaying model, the acceleration model (dynamics of the player with a driveeffector different from zero) was then obtained. Each player was instructed to apply a different driveeffector vector and using mathematical tools and the decaying model it was possible to infer the acceleration model.

Then the ball decaying model was obtained. Players where instructed to kick the ball with a variety of angle and power combinations. The decaying of the ball velocity in air and in the ground was then also available.

These models were the base for the implementation of the player's skills.

The ITANDROIDS-3D team developed several skills for the Soccer Simulation 3D agents. Some of them are explained below:

The first thing that an Intelligent Agent must have is memory. So the first skill of the ITANDROIDS-3D is the memory skill. Some decisions, like who will intercept the ball, or where is the best position to go do not need to be taken at each simulation step. If a player already estimated that he is the fastest player to reach the ball and that he will reach the ball in 11 simulation steps, why will he verify who is the fastest player to reach the ball in the next 10 simulation steps? If the model of the players' dynamics and the model of the ball dynamics are correct, for the next 11 simulation steps the result will be the same. So, not to waste processing time retaking the same decisions, the players store all the already-made decisions and their validity, so we would not have to spend processor time to reanalyze a situation that did not change.

So, ITANDROIDS-3D players have memory!

The player sees the ball, calculates the ball's speed, predicts the ball's position some time ahead, and estimates when and where the fastest player to the ball will reach it. Once this information is acquired, the player makes his decision, and does not worry about the ball until the estimated time of ball interception. It is similar to the real world: after a kick a player projects the ball trajectory, estimates interception time and point and then acts, running to his desired position, meanwhile looking at the ball a few times, just to confirm or alter his predictions. He does not, however, need to project the ball trajectory and estimate the ball interception all over again.

The memory skill isolated would not appear so necessary, and it really wouldn't be if only simple and fast algorithms were used in the players' implementation, but for the use of more elaborated and precise algorithms in the prediction and decisions, the memory should be an essential skill.

The second skill is the prediction of future situations, mainly the ball's position and attitude prediction. The use of this skill was already illustrated above in the usage of the memory skill example. The player compares the difference in position of the ball in two consecutive cycles. With this information, and information about the ball dynamics, the player can calculate the ball's speed and estimate the ball's position some cycles ahead. These estimations are largely used to take decisions.

Our players use this prediction skill and an approximation of the players' dynamics, in the third skill: the decision of who is the fastest player to reach the ball. The prediction is used to calculate the instant that the ball will be reachable, so the player knows where he should go to in order to get the ball. At the same algorithm the number of cycles to reach the ball and the number of cycles needed to the fastest adversary reach the ball are also estimated.

The fourth skill developed by the ITANDROIDS-3D team was an algorithm created to determine the best trajectory to intercept the ball. This skill is divided in two algorithms, one used when the ball is far away from the players, and the other used for close approximation to the ball. The first algorithm's objective is to make the player reach the ball as fast as possible and the objective of the second algorithm is to not allow the player reach the ball with such a speed that they would collide with it. The ball prediction skill are used again with the model obtained for the player dynamics to determine the best trajectory and the best driveeffector commands to reach the ball from the appropriate angle without colliding with it.

Finally, among other skills, players are capable of determining their best position, like the position to receive the ball (in an attack situation), or the best defensive position (in a defense situation) [2, 3]. And decide what the best action to take is: long pass, wait until teammates are in better positions, dribble, etc.

4 Results

By testing our skill algorithms, we had really satisfying results.

Comparing the prediction of the position of the ball and the players made by the players with the real ones, in most cases the prediction error was below 5%. The prediction error for the ball behavior was greater than 5% just one or two cycles after a kick from the players or after a collision of the ball with the floor. For players, the error was greater than 5% just after a change in the driveeffector vector. For most situations these errors was acceptable, considering the inherent noise of the server.

The memory skill lowered the mean processing time by 30%. More adjustments still can be made to have even better results in processing optimization. Also as more powerful algorithms are used the time saved for the memory should also raise.

As observed from the simulations the decision of the fastest player to reach the ball was always perfect. The decision of the players about who would go after the ball and where he should intercept it was always considered as correct by human spectators.

Visually the trajectory to intercept the ball was also adequate, with effective approximations from various angles. The closest approximation needs some improvement, but is adequate enough for now. On less than 10% of the kick situations the player visible miss the ball, i.e. takes one more turn than really necessary to reach and kick the ball, and in less than 20% of the kick situations the player collide with the ball before kicking it.

Also, the Situation Based Strategic Positioning [2, 3], and the decision of what to do with the ball was considered adequate.

Finally, playing against the 2005 World Champion, ITANDROIDS-3D was capable of winning with a score of 1 x 0.

5 Conclusions

The implementation of the ITANDROIDS-3D skills improved dramatically the team performance and considerably reduced the processor time spent (and consequently processed more information). In only a few weeks of work, ITANDROIDS-3D was capable of having a highly competitive team; and day after day improvements are being made in the team performance. ITANDROIDS-3D techniques were effective even when playing against the 2005 World Champion.

The work also helped the team members to develop their personal skills in research, development and teamwork, and improved their knowledge in many areas, like discrete time models, noise filtering, decision making, and geometry, among others.

References

  1. Robocup 2003 Symposium Homepage, http://www.cs.cmu.edu/~RoboCupSymposium/
  2. Luis Paulo Reis, Nuno Lau and Eugénio Oliveira. Situation Based Strategic Positioning for Coordinating a Simulated RoboSoccer Team, in M. Hannebauer, J. Wendler and E. Pagello eds, Balancing React. and Social Delib. in MAS, Springer, LNAI, Vol. 2103, pp.175-197, Berlin, 2001
  3. Nuno Lau and Luis Paulo Reis, FC Portugal Homepage, Http://www.ieeta.pt/robocup