BahiaRT 2016: Team Description Paper for RoboCup 3D Soccer Simulation League

Marco A C Simões, Claudia Elizabete Ramos, Emmanuel Argollo, Sérgio Souza Jr., Josemar Rodrigues de Souza, Diego Frias

State University of Bahia (UNEB/ACSO), Salvador, BA, Brazil

http://www.acso.uneb.br/bahiart/


Abstract For this year our main enhancements are related to pass strategy and defensive model. We extended our previous approaches to deal with different kind of kicks and also with the new foul model. We have also improved our movements to adapt to all heterogeneous types. Some minor optimizations in trajectory generator were also implemented to avoid some inconvenient collisions against our own goal.

Introduction

In last few years, team BahiaRT has experienced a remarkable evolution in RoboCup competitions. In the world championship, BahiaRT was ranked fifth in 2014 and was ranked fourth in 2015. Last year, we also were Champions of Portuguese Open. We won the last three editions of Brazilian Open and last two editions of Latin American Open.

These results allow us to conclude by a team maturity situation. At this time, our goal is to fix the main vulnerabilities detected during last competitions.

We keep working both on low-level skills - such as walking, get up and kick movements - and mid-level and high-level skills. We have enhanced our defense model and also our pass strategy.

This TDP describes this work and also our work in progress. Since 2013, team BahiaRT is based on a source base code named FCPBase 2013, as part of an international scientific cooperation partnership with team FC Portugal from Universities of Aveiro, Minho and Porto in Portugal.

Team Strategy

Since 2012, the 3D league reached the maximun number of players in a real soccer game, which also required increasing the size of the field compared to the previous year. Since then, the teams had to improve both their strategy and their low level skills (movements).

Believing artificial intelligence is capable of overcoming movement disadvantages, BahiaRT focuses on developing an efficient team strategy, serving one of the main goals of the league: cooperation between players. For this purpose, two main works were developed: (1) a defense strategy, focused on regaining possession of the ball; (2) strategic pass plays, strengthening the team as a group.

Improvements in Defense Strategy

The BahiaRT's agents have four behavioral states defined from the state's analysis, direction and agent's position, allies, opponents and ball's position. Every behavior has a defined goal:

  • (1) Limited: Retrieve your ability to participate in the game.
  • (2) Active: Gain or maintain possession of the ball.
  • (3) Cooperative: Take a strategic position according with formation of the team.
  • (4) Defensive: Support the active player.

The defense module[1] developed during RoboCup 2014 created a behavioral state named defensive. Whenever the opponent team has possession of the ball, the defensive module chooses an agent between the ones currently behaving as cooperative to take the defensive position, the player who assumes this role behaves as a marker, supporting the active player and positioning itself in order to assume the active role if required, he is the one with better chances of intercepting the opponent. The agent assumes the active role just who's not limited and is the player with the best possibility to take or keep control of the ball.

The module predicts that when trying to retrieve the ball, the defensive agent probably will clash with opponent who detain possession of the ball, knocking him to the ground and consequently scoring fault, in this situation the agent most likely to retain possession of the ball is the active.

Aiming to inhibit the marking of faults, the improvements in defense strategy establishes some distance between the defender and opponent, this ensures that the defender try to intercept the ball without colliding with the opponent. This new approach can also be adapted to mark the opponent who doesn't hold possession of the ball, for example by changing the focus of the marking to an opponent who is free to receive a pass.

Strategic Pass

In soccer the pass involves two major players: the kicker player who is in possession of the ball responsible for kicking the ball for an ally who is in a better position in the field, and the receiver, responsible to intercept the ball and take it to the goal.

Our pass model considers two situations kicking the ball directly into the goal or for an ally, both cases aim advance the ball for the opponent goal. First, the trajectories are calculated using points that were marked in the field, according with the position of the ball, the numbers of trajectories can change. The markers and the angle between two trajectories define the quantity of targets.

The first case consider just the trajectory which crosses the goal, the kick to goal happens because strategically is preferable to score a goal than passing the ball to an ally, in that case, the coordination between agents is unnecessary since the target of kick is the opponent's goal.

For paths that do not cross the goal takes into account a value (quality) depending on the number of agents intercepting the trajectory and distance of the path to the goal. The figure 1 shows the mapping of trajectories. The new pass strategy proposes that the allies coordinate themselves by choosing who is more apt to intercept the ball and then go to strategic position aiming to protect the player will receive the ball. Choosing the best receiver involves the analysis of the current environment for each ally, taking the allies and opponents as obstacles that block the arrival of the receiver to the passing point, therefore the ally that has fewer obstacles in its path is chosen as best receiver.

The new pass strategy also considers high kicks, high kicks for there is no risk that an opponent intercepts the ball during it's shift, so just your final destination is taken into account in the analysis of opponents able to intercept it.

Fig. 1. Mapping of trajectories using our model.
Fig. 1. Mapping of trajectories using our model.

Low Level Skills

The introduction of mandatory use of heterogeneous players has demanded several adjustments and enhancements on existing movements, due to poor adaptation to the physical characteristics of the new agents. Although some of the movements did work, it was also necessary to enhance them to get better performance.

We also have developed a new movement named superkick. It is used in kickoffs to perform a long distance kick that can score a goal or give a good offensive advantage in the kikcoff playmode. This section describes all enhancements in low level skills.

Heterogeneous dynamic walking

The introduction of new types of agents led the competition to a level where it is necessary for low-level movements and team strategies can be used without depending on the type of the agent but our low-level skills, such as walking and dynamic kicking, did not work very well for the heterogeneous types[2][3]. Through a thorough analysis, we find out which modules of our dynamic walking were not being well used by robots with different body parts size.

The main modules of our walking that were not well adapted to heterogeneous types, primarily because they are build to fixed body parts of sizes are:

  • the inverse kinematics module
  • Center of mass generator
  • Foot step generator

In our inverse kinematics module, we found that the size of the thigh and the shank were been set as the size of the stander NAO upper and lower leg, and this was not being modified when we change the robot heterogeneous type. We've made a configuration file that contains all of the body parts size, mass and the relative position to the nearby joints and use it to set the values of the thigh and shank that should be used on the inverse kinematics module to the robot types with different leg sizes.

The center of mass generator depends on a fixed value determining the agent's center of mass when it's stopped and this value is used as a base to calculate the real center of mass of the robot. Also, it's used to know the next center of mass so the robot can walk properly.

The foot step generator was working fine for the heterogeneous robots, but they wasn't using their full potential because the foot generator limits the range of the step so the robot can't try to execute steps that he won't reach. Since the step size depends on the limitation of the hip joints and the leg length, and the hip joints don't change for the heterogeneous robots, we can assume that the length of the leg are the decisive factor in the step size, so, we changed the limit of the foot generator using it as the change factor and managed to get better speeds for the heterogeneous types with higher legs.

After that changes, we managed to get the robots to walk like the standard NAO and, following the model, . All of the changes here take into account that only the size of some parts of the robot body changes. If they haves a extra joint ( like the toe model ) or an different velocity in some of they joints, new changes are necessary to better use their differences.

New get up verification method

During the Robocup 2015, we noticed that our team's get up was not being as effective than it should because the robot ends up missing which script it would use or try to get up before it was completely fallen, not fulfilling the purpose of this strategy and losing the time it would normally take to get up. That occurs because the old verification not always correctly identifies what type of fallen the agent has committed.

Thus, it has become necessary to improve the falling verification to reduce the occurrences of wrong fallen verifications while also identify completely falls, which the robot's torso is on the ground, so the agent can get up from a more well defined position.

Our new get up verification uses the accelerometer and the gyro rate of the robot to classify if the robot is standing, falling or fallen and which type of fallen ( lateral, frontal or back ) the robot is suffering [4]. To verify if the robot is falling, we use the magnitude of difference between the last gyro rate and accelerometer values and the new one, to check if these values underwent major changes, classifying that as a instability in the robot's torso, or just falling. If the robot is falling, it goes into a standard pose and waits until it's completely fallen, and then start trying to get up. This strategy is very useful as it ensures good conditions for getting up quickly.

Mid-level Skills

In order to accomplish a successful pass, the players must be able to kick the ball to their allies before any opponent reaches them. With the inclusion of our passing strategies we realized that the transition between the walking and kicking movements was taking valuable time from the movement, resulting in lost pass opportunities. To increase the possibilities of a successful pass or kick to goals during the competition we optimized the walk to kick transition.

Dynamic Planning and Kick

With our previous technique to approach the ball to kick it, the agent would start reducing its walking speed, in order to stop with precision in a position to kick. That would lead to a movement of almost 20% of its regular speed. From there, the robot would come to a full stop, before starting the kick movement, as can be seen in figure 2.

Once the approach was done, and the robot was prepared to kick, it would start the dynamic kick action. This however, wasn't solely responsible for the kick movement, but for the preparatory states and post-kick stabilization as well, as seen in figure 3. Leading the stages of motion responsible for preparation to take 70% of the execution time, leaving only 30% for the actual kick. This means that not only was the robot taking an extensive amount of time during the approach for the kick, the behavior of the kick movement was also not efficient. This lead us to create a transitional state responsible for the approach and preparation for the kick, along with an optimization of the post-kick stabilization.

We created this transitional movement by firstly using a footstep planning approach for its first step, instead of reducing the ZMP walk speed. Once the agent decides it has an intention to kick the ball, and it's within a certain distance to it, it will begin the transitional state, using this instance of the footstep planning module. With this, the agent is able to approach the ball with large steps and avoid obstacles, such as the ball itself, reaching a position to kick taking less time than previously observed.

The next step to improve this transition as a whole was to determine that instead of reaching a stable position with both feet on the ground, the transition module would try to end its movement with a pose similar to what we would have in the previous Raise pose from the kick movement (figure 3). As such, we were able to eliminate all preparatory movements before the actual kicking movement. Since the kick is a dynamic movement, it won't need perfect positioning or fine adjustment of the agent's pose to be executed. This way, we were able to use the footstep planning own single support state to reach a pose similar to Raise, with no need to incorporate a full stop or static scripts, thus, reducing the time it would take to reach this state.

Finally, we adjusted the final transition, to return from the kick, back to the walking movement, by using the ZMP's own dynamic stabilization. However, in order to do so, we had to return the kicking foot back to a reachable position for the ZMP to use it in relation to the other foot. Therefore, we were able to eliminate both the Unraise and Unshift stages, but kept using the Return stage. Along with all previous modifications, this resulted in an improvement of over 20% on the time spent from the decision to kick the ball to the end of the kicking movement. The final representation of the full movement, from walk to kick, can be seen in figure 4.

Fig. 2. Original flux of the movements, with the inefficient steps in gray.
Fig. 2. Original flux of the movements, with the inefficient steps in gray.
Fig. 3. Flux of the Kick action, with ineffective steps in gray.
Fig. 3. Flux of the Kick action, with ineffective steps in gray.
Fig. 4. Final flux of the movements, after the optimization described.
Fig. 4. Final flux of the movements, after the optimization described.

Considering our goal as a walking obstacle

In recent competitions, we noticed that our players were running into the goalpost and also we had players who lost in the area behind the allied goal and collided with it while trying to return to the field and ends up falling, leaving the goal defenseless. After a deep analysis, we discovered that our previous path generator algorithm hasn't seen the goal as an obstacle, instead of, it was seen as a normal walking terrain and it ends up generating paths that collides with the goal.

To check the collision between the path chosen by our agent and the allied goal we need to check if there is intersection between the path and some point in the goal and mark an obstacle at that point, giving to the player two secondary paths to dodge that obstacle and choosing the less expensive and the primary trajectory to generate a third trajectory to reach the desired point. This third trajectory is retained until the player get out of the danger zone ( behind the goal or near the goalposts ). Figure 5 illustrates this strategy to avoid collisions agains our own goal.

Thus, its possible to avoid colliding with our own goal while ensuring that the player will reach its target because he will stop following the secondary trajectory in the moment that primary trajectory can't clash with the target anymore.

Fig. 5. Nao getting back on the field. Blue = secondary trajectories, Red = primary trajectory colliding with the goal, Green = third trajectory that will be used to avoid colliding with the goal.
Fig. 5. Nao getting back on the field. Blue = secondary trajectories, Red = primary trajectory colliding with the goal, Green = third trajectory that will be used to avoid colliding with the goal.

Work in Progress

Since the addition of the heterogeneous models, we have been curious about the Toe model, which has the same configurations as the standard simulated NAO with the addition of an extra DoF in the foot. But, like most teams, we had only been using it as the standard version, without actually using this new joint actively. Our future project is to put this joint to use, trying to emulate an humanoid running movement, by stabilizing the robot on its toe, and using it as an extra propulsion to move the robot forward. This work could be very useful to us, by allowing these robots to move faster than the other models, reaching the ball faster, and giving our team a great advantage during the competition.

Another addition we must make to our team is to improve our collision avoidance to opponents, due to the new foul model introduced this year. If we maintain our current collision avoidance, our agents will indiscriminately collide with other agents, causing fouls that will be strategically disadvantageous for us. Therefore, we will adapt our high-level functions, such as the defense model, to avoid committing fouls.

Conclusions

Team BahiaRT is working hard to prove our scientific developments using 3D Soccer Simulation as a good testbed. This way we have contributed to evolution of the simulator by developing a new foul model. This will force teams to enhance their strategies to avoid illegal collisions against opponents during matches.

Considering the new developments described in this paper, we expect to reach the finals match in the next RoboCup edition and try to win the world championship. We also plan generating relevant knowledge both in robots AI area and in advanced movements using the toes robot type.

Acknowledgements

This project is partly funded by CNPq/PIBIC, FAPESB/IC and Uneb/PROFORTE. We thank team FCPortugal for their cooperation and partnership.

References

  1. Camila Laranjeira, Alan Soares, Emmanuel Argollo, Diego Frias, Marco A C Simões, and Josemar Rodrigues de Souza. Uma abordagem multiagentes para sistema defensivo em um time de futebol de robôs bípedes. Revista de Sistemas e Computação - RSC, 5(1):38–49, Jan–Jun 2015.
  2. Nima Shafii, Abbas Abdolmaleki, Rui Ferreira, Nuno Lau, and Luís Paulo Reis. Omnidirectional walking and active balance for soccer humanoid robot. In Progress in Artificial Intelligence, pages 283–294. Springer, 2013.
  3. Rui Ferreira, Luís Paulo Reis, António Paulo Moreira, and Nuno Lau. Development of an omnidirectional kick for a nao humanoid robot. In Advances in Artificial Intelligence–IBERAMIA 2012, pages 571–580. Springer, 2012.
  4. Alan Santos, Ayran Cruz, Diego Frias, Emmanuel Argollo, Josemar Rodrigues De Souza, Lorena Pereira, Marco A C Simões, and Murilo Alves. Bahia3D - A Team of 3D Simulation for Robocup. In Proceedings of RoboCup 2013, Eindhoven, Netherlands, 2013. Robocup Federation.