ITAndroids 2D Soccer Simulation Team Description 2015

Alexandre Muzio, Caique Lira, Luiz Ramos, Rodrigo Roim

Technological Institute of Aeronautics, São José dos Campos, São Paulo, Brazil

http://www.itandroids.com/


Abstract ITAndroids 2D Soccer Simulation team was reestablished in 2011 by a group of undergraduate students at Technological Institute of Aeronautics. Despite the long period of inactivity, resulting in loss of expertise, the team is recovering fast and has already placed 10th in Robocup Mexico 2012 and 13th in Robocup Eindhoven 2013 (the best position ever achieved by a brazilian soccer simulation team). This paper includes our recent developments, including our string attraction-repulsion model for defense, goalie behaviour enhancement based on MarliK source code, ITAndroids wiki and attempts on improving the lower level aspects of the team. Lastly, we expose our ideas for future development.

1 Introduction

ITAndroids was created in 2005 by Jackson Paul Matsuura, who was a graduate student at Technological Institute of Aeronautics (ITA) at the time. The group rapidly consolidated itself in Brazil and Latin American, winning several competitions, including brazilian versions of 2D and 3D Soccer Simulation leagues. However, due to a personal decision of Matsuura to focus his efforts on building up the whole brazilian robotics competitions scenario, the team faded with time and dismantled.

By mid-2011, a group of undergraduate students reestablished ITAndroids 2D Soccer Simulation team, intending to participate in Brazilian Robotics Competition (CBR) 2011. Unfortunately, due to the short development time and lack of experience, the team placed last in CBR 2011.

With the experience acquired in CBR 2011 and more development time, ITAndroids 2D was able to qualify for RoboCup Mexico 2012, where it placed 10th, the best position ever achieved by a brazilian soccer simulation team in RoboCup. Later, ITAndroids 2D participated in Robocup Eindhoven 2013 where, once again, achieved a significant result amongst the Latin American teams, where it placed 13th. Due to internal problems, we were not able to take part on RoboCup 2014. The table below sumarizes results achieved in the last years by our team:

  • 10th place in RoboCup 2D Soccer Simulation in RoboCup 2012;
  • 1st place in RoboCup 2D Soccer Simulation in Latin American Robotics Competition (LARC) 2012;
  • 12th place in RoboCup 2D Soccer Simulation in RoboCup 2013;
  • 1st place in RoboCup 2D Soccer Simulation in Brazilian Robotics Competition (CBR) 2013;
  • 1st place in RoboCup 2D Soccer Simulation in LARC 2014;
  • 2nd place in RoboCup 3D Soccer Simulation in LARC 2014;

Nowadays, our group is multidisciplinary and contains about 30 students from different undergraduate engineering courses. Besides soccer 2D, we also participate in the following robotics categories:

  • RoboCup 3D Soccer Simulation League;
  • RoboCup Humanoid Kid Size League;
  • IEEE Humanoid Robot Racing;
  • IEEE Very Small Size Soccer;
  • IEEE Standard Educational Kit.

Since the beginning, the progress of our soccer 2D teams was largely supported by the RoboCup community. Our current code is based on agent2d [10] and a large amount of our work was focused on improving mechanisms already present in agent2d framework. Also, many of our ideas were inspired by other teams work, specially HELIOS [1] and Nemesis [2]. In order to try to suport for the development of soccer 2D simulation in Latin America, we have develped a wiki. Our recent contribuions to the wiki will be further in sec. 8.

This paper describes our development efforts in the last three years and points out some improvements we want to implement in a near future. Sec. 2 describes a new system based on string atraction-repulsion model. Sec. 3 presents our recent improvements to the action chain. In Sec. 4 we discuss the denfense heuristics we have implemented. In Sec. 5 our new stamina model is described. Sec. 7 presents a goalie behavioral enhancement. Sec. 6 details our latest attempt on understanding and improving the lower level aspects of the team.

2 Spring Model

One of our attempts to improve the team's defense was to build a whole new system based on the attraction and repulsion of springs. The idea was to first triangulate the players (both teammates and opponents) and connect with springs the edges of the triangulation. This way if two teammates were really close together they would repel each other. If an opponent would run away to an open space the players would be attracted towards him (as the spring would get tensioned). If a player tries to run after an opponent the teammates would get attracted towards him (as the springs would get tensioned).

The triangulation used was the Delaunay triangulation (already implemented in librcsc). Only the closest players were used (as it turned out that players that are far away don't affect much in the triangulation, and their positions are also more uncertain). It turned out that the triangulation (together with some hysteresis) was a good way to determine the teammates and opponents to which attach the springs. This conclusion was based on soccerwindow2 visual debug.

This model may seem good in theory but faced lots of problems. Firstly, it turned out that it was not a good idea to attach the springs exactly where the players were, as this made the defenders run always towards a past good position. To solve this problem we started to compute the future position of the players considering the balls interception point. The teammates future position was pretty easily determined as we know our own formation. The opponents future position was computed assuming its displacement is similar to ours (and using some heuristics).

This approach gave much better results than the first one, but was still not good. We found out that a spring is not a good way to describe the relationship between players. For example, when an opponent came too close it would push the player away (which sometimes is not a good decision). So we generalized the interaction to a generic function (f(x) = a+bx+cx−1 ). Then we tried to adjust these coefficients (with different coefficients for teammates and opponents).

Unfortunately, we could not make this model work better than the previous defense (which is a mix of helios 2012 formation with heuristics to decide when to tackle as described in [5]. But our team with this new defense was still winning 75% of the matches against agent2d (the one with the old one currently wins 96%), so it is not really bad. We are still working on improving the model so that it can become better than the previous one (the idea is to fix some clear bugs that are leading to opponent's goals and then optimize the coefficients).

3 Improvements to Action Chain Search Framework

Agent2d has a built-in framework to search for a sequence of actions (action chain) online as described in [1]. In our last year's TDP [4], we described our work in improving this framework, which consisted mainly in adding new features to the sample action chain evaluator and using optimization techniques, in specific Particle Swarm Optimization (PSO) [7], to optimize the weights given to each feature.

Continuing on this track, we added a new feature calculated as following: take straight lines from the player to all teammates; then, for each line compute the distance from it to the nearest opponent; finally, sum all the distances computed. After optimizing with this feature on, we observed that the player holding the ball was positioning itself better for pass. On the other hand, the feature was also making the team less offensive, spoiling its attack.

3.1 Choosing between an offensive or a deffensive strategy

Later, we developed a neural network to predict the probability of scoring a goal given a game state (considering the positions of all players and the ball). This mechanism was then used to choose between deactivate (defensive strategy) or activate (offensive) the described feature when the probability of scoring a goal was low or high, respectively. After manually tweaking the thresholds, the team with the neural network showed a better performance.

4 Defense Heuristics

In order to improve the team's defense we preferred to use heuristics based on statistics and domain knowledge instead of formal AI.

Basically the defender has to decide whether or not to tighten his marking. The advantage of doing that is to decrease the opponent's space and create more chances to tackle. The problem arises when the forward gets to dribble around the defender.

To make this decision properly we analyzed a lot of parameters including the position of the ball in the field, the danger of the play, the position of the offside trap, the distance between the defender and the ball, etc.

Every time a new set of conditions were added to the decision-making process, the team was tested against its old version. The tests consisted of 50 matches. After that it was possible to decide if the modifications were worth it by plotting the mean goal difference against the number of matches. This plot usually converges when the team is actually improving.

After a lot of hard working the team was able to maintain an average goal balance of 0.5 in 100 matches against its version without the modifications, which is a pretty good result.

5 New Stamina Model

The default agent2d stamina model is too simple. We analyzed this model and improved it including new conditions, specially for the defenders (that used to save needlessly too much stamina). The new model allows defenders to dash in dangerous situations (preventing through balls for example) without compromising their stamina capacity.

6 Improvements to World Model

Agent2d is founded upon the base library librcsc [11], which contains low level implementations that models the team's viewing of the game. This past year, after some extensive analysis on the library, we have greatly increased our understanding on the way the team functions and therefore focused on adding some new parameters and variables to better model the world. E.g. the agent2d intercept model is fairly simple as it does not account for the possibility of tackle. We have been dealing with this issue for some time.

Unfortunately, we haven't extensively tested the results of such work, but understanding the key factors that make up agent2d has taken us one step further to perfecting the team's world model. We expect to have these modifications tested and integrated in our team until the competition.

7 Goalie

During the CBR 2013 competition, our team was consistently losing to team UAI Soccer, due to last minute changes they made to their team during the competition. Since in CBR we can submit new versions of the code every day, we decided to improve our defense by changing the goalkeeper behavior, in an attempt to turn the game and win the competition.

To improve our goalkeeper, we watched several games from team MarliK during RoboCup 2012. Being an agent2d based team, MarliK released their source code for that competition [15] so we also went through their code to see what was going on. We decided to implement a similar system to our goalkeeper. The basic principle is that the goalkeeper now moves more freely in the defensive field when it is safe to do so. As a consequence, several offensive algorithms developed by other teams can fail, because they were devised considering that the goalkeeper always stays near to the goal. We noticed that the MarliK goalie has a very good offensive positioning, but does a poor job participating in back plays by receiving the ball outside the goal area and then passing it.

To fix this, we made the goalkeeper execute the Agent2D action chain when he safely receives the ball outside the goal area. Also, we modified the goalie behavior inside the goal area by mixing the agent2d code and the MarliK goalie code, while also implementing some heuristics that we devised.

8 Wiki Project

In 2011, when ITAndroids was restablished, it was very difficult to find informations about Soccer 2D Simulation and how to start a new team, specially in the brazilian scenario. Besides that, one of the biggest obstacles to the long term development of the team is the transfer of knowledge between senior and junior members of the team, often, the new members would waste dozen of hours performing basic introductory tasks like tweaking the team formation and configuring team files, this made the incorporation of new members very time consuming.

The internet is lacking in tutorials related to soccer2D, what makes it more difficult to introduce the robocup competition to new students or to introduce it in universities new to it, so we decided to make our own wiki to fill that gap.Currently, our wiki is only in Portuguese(our native language) and covers only very basic topics from the installation and configuration of the necessary tools, to the main aspects of agent2D. We plan to translate it to English in the near future.

In National and Latin American competitions, we have received a very positive feedback concerning the wiki. Many new teams have reported that they have used our tutorials and that it has helped their development.

9 Conclusions and Future Work

This paper presented the most recent efforts of team ITAndroids Soccer 2D. Despite being reestablished in mid-2011, the team has already placed 10th in RoboCup Mexico 2012 and 1st in Latin American Robotics Competition 2012.

Our current code is based on agent2d. We have been experimenting with the low level aspects of the agent2d and new models to improve defense.

Currently, our efforts are focused on: improving the spring model and the world model, we expect to have these modification done and integrated in our team until the competition.

Acknowledgements

We would like to acknowledge the RoboCup community for sharing their developments and ideas. Specially, we would like to acknowledge Hidehisa Akiyama for agent2d [10], librcsc [11], soccerwindow2 [12] and fedit2 [13] softwares. Also, we would like to acknowledge Luís Paulo Reis for his PhD thesis [9] , UvA Trilearn [14] for their base code and team MarliK [15] for their source code.

References

  1. Akiyama, H., Shimora, H.: HELIOS2010 Team Description (2010)
  2. Norouzitallab, M., Javari, A., Noroozi, A., Salehizadeh, S.M.A., Meshgi, K.: Nemesis Team Description 2010 (2010)
  3. Bai, A., Zhang, H., Lu, G., Jiang, M., Chen, X.: WrightEagle 2D Soccer Simulation Team Description 2012 (2012)
  4. Mello, F., Ramos, L., Maximo, M., Ferreira, R., Moura, V.: ITAndroids 2D Team Description 2012 (2012)
  5. Mello, F., Ramos, L., Maximo, M., Ferreira, R., Moura, V.: ITAndroids 2D Team Description 2013 (2013)
  6. Lau, N., Reis, L.P., Mota, L., Almeida, F.: FC Portugal 2D Simulation: Team Description Paper (2011)
  7. Eberhart, R.C.; Kennedy, J.: A New Optimizer Using Particle Swarm Theory. In: Sixth International Symposium on Micro Machine and Human Science (MHS'95). Nagoya, Japan (1995)
  8. Alsabti, K., Ranka, S., Singh, V.: An Efficient K-Means Clustering Algorithm. Electrical Engineering and Computer Science, Paper 43 (1997)
  9. Reis, L.P.: Coordenação em Sistemas Multi-Agente: Aplicações na Gestão Universitária e Futebol Robótico, PhD Thesis, FEUP (2003)
  10. agent2d-3.1.1, 2012, online, avaliable at: http://pt.sourceforge.jp/projects/ rctools/downloads/51943/agent2d-3.1.0.tar.gz/, consulted on February 2012.
  11. librcsc-4.1.0, 2011, online, avaliable at: http://pt.sourceforge.jp/projects/ rctools/downloads/51941/librcsc-4.1.0.tar.gz/, consulted on February 2012.
  12. soccerwindow2-5.1.0, 2011, online, avaliable at: http://pt.sourceforge.jp/ projects/rctools/downloads/51942/soccerwindow2-5.1.0.tar.gz/, consulted on February 2012.
  13. fedit2-0.0.0, 2010, online, avaliable at: http://pt.sourceforge.jp/projects/ rctools/downloads/48791/fedit2-0.0.0.tar.gz/, consulted on February 2012.
  14. UvA Trilearn 2003, 2005, online, avaliable at: http://staff.science.uva.nl/ ~jellekok/RoboCup/2003/index_en.html, consulted on February 2012.
  15. MarliK source code, 2012, online, availiable at: http://www.socsim.robocup.org/ files/2D/binary/RoboCup2012, consulted on February 2014