Bahia2D 2009: Team Description

Marco A. C. Simões, Bruno Vinicius Silva, Alexsandro B. das V. Cerqueira, Luciana P. das V. Silva

Bahia State University (ACSO/UNEB), Salvador, BA, Brazil; Bahia University Center (FIB), Salvador, BA, Brazil


Abstract This paper describes the history of Bahia2D team and other work from Bahia Robotics Team related to RoboCup. We describe the first abilities implemented on Bahia2D and recent work as the new coach. We also describe work in progress: the new generic agent that will be the base for new version of Bahia2D team.

Introduction

The Bahia2D team has been developed by Bahia Robotics Team (BRT) consortium since the second semester of 2006. BRT represents the union of the Computer Architecture and Operating Systems Group (ACSO in Portuguese) and the Intelligent Computing Research Group (GPCI), in order to investigate the application of artificial intelligence methods to autonomous robots, as proposed by RoboCup international research initiative. Since 2007, BRT also started working on RoboCup's Mixed Reality sub league (MR) with BahiaMR team[1]. This year, for the first time, the group also has a 3D simulation team: Bahia3D.

Within Brazil, our work has achieved some good results. At RoboCup Brazil Open 2007 we won the third place with 2D, and were the champions for MR. In 2008, our 2D team was vice champion, and achieved championship again on MR.

This TDP focuses on the Bahia2D. The present team represents a first moment of this project, in which we looked for acquiring experience with the environment and some renowned AI techniques. Therefore we addressed our efforts on improving the UvA trilearn ability layer[2], used as our base agent, and took our first steps on developing the coach. For such activities we applied geometric, logic, fuzzy logic and neural networks approaches. The next section explores main results achieved with our soccer players agents. Section 3 refers to our work implementing the coach. In section 4 is described our current work and conclusions.

Abilities

Zadeh proposed Fuzzy Logic in 1965 to represent uncertain and imprecise knowledge [11]. Fuzzy Sets Theory is a way to specify how much an object satisfies a vacant description [9]. Fuzzy logic strengths come from its capacity to derive conclusions and answers based on vacant, ambiguous, incomplete and imprecise information [4].

In the beginning of the project, for reasons described on [3], we've decided applying fuzzy logics[4] to improve Bahia2D performance. Primarily we focused on offensive behaviors: positioning without ball, passing quality evaluation and scoring possibility evaluation are examples of routines developed; the two latter form the basis for decision making routine when on the offensive zone.

Next, defensive behaviors turned the goal. We thus implemented a marking routine that proved a good opportunity to apply neural networks[5]. In addition, a fuzzy controller for goalie positioning, which also had ball reposition improved.

Finally, several advances were achieved through an intuitive way, from geometric analyses that increased several routines, such as goal kicks and crossings. This allowed us improve global performance in a short period of time. Some of the above routines are described in next subsections.

Scoring Possibility Evaluation

To this routine was implemented a fuzzy controller that indicates scoring possibility. Its output is the variable Kick Possibility, which ranges from 0 to 10 and has the following terms: Low (0 to 3.75), Average (3.75 to 7.5) and High (7.5 to 10). Factors that affect the output are the distance and angle from the agent to the goal and opponents number within goal trajectory.

Some linguistic variables used for analyses are: Close (0.0 to 35.125), Average (35.125 to 50.25) and Far (50.25 to 67.0) to distance, Best Angle (-45.0 to 45.0) to the angle and Few (0 to 3), Average (3 to 6) and Many (6 to 11) to the amount of opponents.

Fig. 1. Domain for variable: Distance from agent to opponent goal
Fig. 1. Domain for variable: Distance from agent to opponent goal

Passing Possibility Evaluation

Through another fuzzy controller, we gave the agent the capability to measure success chances of passing the ball to a given agent. The controller's output is the variable Pass Possibility, which ranges from 0 to 10 and has as terms Low (0 to 3.75), Average (3.75 to 7.5) and High (7.5 to 10). Factors that influence such measure are distance, amount of possible interceptors and teammate's position.

Some linguistic variables used are Close (0.0 to 14.25), Average (14.25 to 25.5) and Far (25.5 to 30.0) to the distance, Few (0 to 3), Average (3 to 6) and Many (6 to 11) to amount of interceptors and Before (-30 to 0), Equal (0) and After (0 to 30) to teammate's position. When this controller informs that there is a low possibility to a successful pass, the agent carries the ball. All agents, except goalkeeper, are using this controller.

Fig. 2. Analysis to see if a teammate is marked or not
Fig. 2. Analysis to see if a teammate is marked or not

Marking

Two fuzzy controllers has been developed aiming support opponents' marking. One is responsible for deciding whether the agent should mark an opponent or find a good position and the other decides which opponent should be marked. In order to decide which kind of marking must be performed, a neural network was implemented; currently, there are two options: Mark Ball and Mark Bisector. This neural network has three levels: input, intermediate and output.

The input variables used are:

  • Distance from agent to ball, varying up to simulated field size;
  • Amount of opponents within agent's field of view;
  • Amount of teammates within agent's field of view;
  • Distance from agent to his own goal.

This neural network uses a linear transfer function and has fixed number of neurones for input and output leves, and changeable for the intermediate one. It was trained using an algorithm with backpropagation learning[6].

Fig. 3. The number one represents MarkBall application. Number two shows MarkBisector
Fig. 3. The number one represents MarkBall application. Number two shows MarkBisector

Kick to goal

To the decision about where to kick the agent looks for the best balls trajectory into goal avoiding opponents' interceptions. In order to do so, the goal is sliced into 14 zones and for each one chances of reaching the goal are analysed. The projections of ball's trajectory and velocity are contrasted with the best set of possible opponent's decisions, from the stand point of the agent. Then, the analysis is done. If the player doesn't find a good opportunity for successfully concluding the move, i.e., scoring, the routine returns to the calling procedure, so another decision can be made.

Coach improvements

Among the projects developed recently in the team, there is the routine for the initial selection made by the coach. To each new match the server generates a group of different heterogeneous players and the coach agent must define the most prepared types to be the team's players. The strategy to decide this question was the use of a production system (a system based on production rules that consists of an inference engine, a database and a set of rules). The project was divided in 2 stages: (1) definition of the characteristics referring to each player and, (2) rules development, implementation and final tests. The first stage consists of:

  • Characteristics analysis that must be prioritized in each player;
  • Research of a random seed (that is used for testing) that generates a set of heterogeneous more suitable to the proposal;
  • Tests to validate the proposal.

The firsts results of tests evidenced that the initial proposal wasn't good enough. When prioritizing a characteristic, the agent suffers with loss of performance in others, what in some cases is not good for the team. Therefore, the proposal had that to be reviewed, the priority of certain characteristics was balanced and a new random seed was searched to fit to the new requirements. After defined the final proposal, it was time to implementing rules and selection routine. The structure of the inference engine is from the Expert-Coop++, a C++ library that offers an architecture model to the Concurrent Autonomous Agents[7].

The set of rules is implemented by the user and supplies all the rules necessary to classify each type and to choose which one is the most suitable to a specific player. The current rules format is from the agents' communication language Parla[8]. The routine has two parts:

  • All heterogeneous types are classified in accordance with the requirements in the set of rules. This classification can be attack (1, 2, 3 or 4), defense (1, 2, 3 or 4) or NULL;
  • With all the classified types, the team selection is done, considering that the less classified numbers indicate that more recommendable is the type.

After being completed the routine, new tests were done in order to verify its performance. Although it now works well, the strategy is not excellent. For some heterogeneous sets, the number of types classified as NULL is very high. This way, some players have types chosen by the server, which many times it is not ideal. To overcome this situation a strategy is being developed, now based on optimizing algorithms.

Work in progress and Conclusion

Currently the group is commited to the development of a generic agent, featuring a basic and category-independent framework that will enable a clearer agent design based under well-known design patterns and algorithms. The agent intends to be a common trunk of development for some Robocup categories and provide a basis for upcoming implementations. Based on the generic agent architecture, our goal is making our 2D agent from scratch. Thus this is the last competition in which Bahia2D will take part using UvA trilearn as its base team.

The first phase of this project is the creation of the PEAS (acronym for Performance, Environment, Actuators and Sensors) document [9] for each category. Supported by information acquired on this document similarities and differences between each category will be analysed. The aim is identifying generic issues (hot spots) that are central to the architecture being designed. One major challenge consists in achieving an architecture that allows the use of components with little or even no coupling to the specific structure of each environment.

References

  1. Simões, M.A.C., da S. Filho, J.G., Jr., A.J.C., Reichow, J.F., Pimental, F., Casaes, E.M.R.J.: Bahiamr team description. In: CD Robocup 2008, Suzhou, China, Springer-Verlag (October 2008)
  2. de Boer e J. R. Kok, R.: The incremental development of a synthetic multi-agent system: The uva trilearn 2001 robotic soccer simulation team. Master's thesis, University of Amsterdam, The Netherlands (Feb 2002)
  3. Simões, M.A.C., Aragão, H.G., Souza, V., Viegas, S., da L. Silva, H., Meyer, J.: Bahia2d team description. In: CD Robocup 2007, Atlanta, EUA, Springer-Verlag (July 2007)
  4. Zadeh, L.: Fuzzy sets. Information and Control 8(3) (1965) 338–353
  5. Kasabov, N.K.: Foundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering. Massachusetts Institute of Technology (1998)
  6. Oliveira, D., Simões, M.A.C.: Controladores nebulosos e rede neural para a marcação de um agente jogador de futebol do ambiente simulado 2d (in portuguese). Undergraduation Conclusion Work, UNEB (2007)
  7. Costa, A.L., Bittencourt, G.: From a concurrent architecture to a concurrent autonomous agents architecture. In: IJCAI 99, Third International Workshop in Robocup, Springer (1999) 85–90
  8. Costa, A.L., Bittencourt, G.: Parla: A cooperation language for cognitive multi-agent systems. In Spring-Verlag, ed.: Portuguese Meeting on Artificial Inteligence (in Portuguese), Coimbra (1997) 207–215
  9. Russel, S., Norvig, P.: Inteligência Artificial. Campus/Elsevier (2004) Tradução da segunda edição original.