Mailing List
Open Source

RoboCup 2017

Soccer Rules

RoboCup 2016


SoftBank NAO

2014 Drop-in Player Strategies

Austrian Kangaroos

The Austrian Kangaroos conform to the standard message packet. We report anything but kick target and walk target positions. We listen to other players intention and ball information. Our player tactics start in an offensive stance. When chasing the ball, we listen to team communication, and if another player declares himself striker while we are out of kick range, we switch to a supporting role. If not we try to kick the ball. The supporter is either looking for a free spot within shooting range to the opponent's goal, which he will be heading to, or it tries to cover its own goal if located on its own half.

Berlin United - Nao Team Humboldt

Don't rely much on communicated information. Try to stay out of the pile of robots by smart positioning and obstacle avoidance. Always try to go to the ball and score a goal.


The Drop-In Player Competition games are mainly played with the same behavior as the regular games. However, some of the information that is usually exchanged between B-Human players is not part of the standardized section of the SPL standard message. Therefore, it is not available in Drop-in Player games. We cope with that fact by constructing the information we need and handle it separately. A B-Human player would, for instance, send its current role. In a Drop-in Player game, this is constructed locally from the intention and the positions, which are given in the SPL standard message.

As some information given by other players might be imprecise, wrong, or even missing, the reliabilities of all teammates are estimated during a game. This is done by continuously analyzing the consistency, completeness, and plausibility of the received data. In addition, we check, whether communicated balls are compatible to our own perceptions. Depending on the information given by other players and the reliability of each of them, we decide whether we try to play the ball or take a supporting role in a game situation.


There are two basic roles of the robot: Chaser and Supporter. When robot perceives the ball, it compares the distance of the ball with the other teammates. The robot which is the closest to the ball takes the role of the Chaser and directly walks to the ball. It reevaluates its role at every 5 seconds. If another robot is closer to the ball, robot takes the Supporter role, and walks to keep itself aligned with the ball and also keeps its distance to the ball fixed.


DAInamite's drop-in-players used the same behavior as in the games of the regular tournament. Initially players assume static kick-off positions based on their uniform number (lower numbers in back, higher numbers in front). Role-selection is based on player number (1=goalie) and communicated information.

The main metric used is "distance of player to ball" and, (if available) the teammates' behavior states / intentions (i.e. if they are going for the ball):
IF closer to the ball than any other teammate OR no striker is present in the team
THEN pursue ball and dribble/kick towards opponent's goal
OTHERWISE assume closest one of four predefined, static home-positions along the main axis of the field.

During positioning and pursuit of the ball the robot will try to not collide with obstacles detected by sonar or vision, and will immediately interrupt the walk when bumper contact is detected to not continuously walk into another player/obstacle. Correction of robot's orientation relies on the custom data section and hence was not used in drop-in-games. Accordingly, received information by the team concerning the ball was only used if the robot has not seen any ball (including false positives) for more than 10 seconds.


Our approach to designing an ad-hoc player was to prioritise three factors: ball advancement, maximising assistance and minimising disruption of team members. On our half, long range kicking allows our robot to pass ahead in case there are better placed strikers. On the opponent half this kick permits scoring without engaging defending robots that may attempt to block us.

Pushing is a penalised offence and thus obstacle avoidance was specially important, minimising disturbance for other friendly players attempting to align to the ball. The player avoided becoming a goal-keeper since looking active, passing and scoring were better rewarded. However, the player assumes a defensive position if need be when the ball is near our own goal.

In order to find the ball effectively we combine own knowledge of the ball's last seen position with information sent by team-mates that can see the ball. Once the ball cannot be found locally the robot relocates to the most likely position where the ball may be found.

We contributed to the knowledge shared by the team by broadcasting the current player pose as well as the estimated position of the ball. Overall we were considered a good team player shown by the above average score from judges.


Our strategy in the drop-in challenge is mostly defensive. To achieve this we try to hold the position behind the center circle and wait for passes of our teammates. However, if we realize that the situation is dire and we can't determine that any of our teammates is going for the ball, we become active and dribble into the goal. Since we have to skip most of the information provided by other teams, due to the fact that most of them aren't of any use, we don't attempt any passes. Additionally, if we can't see the ball, we rely partly on ball positions communicated by the other players to find it.


Our this year's drop in player was selected after evaluating the performance of our normal player roles in the first preliminary games. It showed, that the so called support Striker performed best. The strategy of the support striker is, to place at an intelligent position in the enemies half of the field. It then patrols in an area around 1.5m behind the enemies goal area and waits for the ball. If it sees the ball, the patrolling will be stopped and the robot tries to score a goal.

During this process, we permanently create the standardized SPL Message with data in the correct format and broadcast it to all team mates. As it showed, that other teams sent wrong or not standard conform messages we drop the other team members messages most of the time.


We admit we didn't implement the communication protocol. Thus, we didn't listen to other players localisation information, neither did we broadcast out location information.

We simply tried to stay in a designated position when we didn't see the ball. Unfortunately, a mistake by a referee who places us in one side of the field after a penalty and moves us to the other before pressing un-penalized resulted in our player in one game being disoriented towards its own goal, so we did score a goal but in our own net.

The video shows it is actually a mistake of the entire team. The 5 blue players carry the ball back and it is our player who takes the two shots (one approaching) and one final in.

We expect to implement all the communication protocol in the future, we also plan to use it for a simulator.

Nao Devils

Team Nao Devils' team strategy is not significantly different from our ordinary behavior and team play. We will ignore any communication from the other teams as they are unreliable. We use image processing for detecting other robots and their movements instead. This is the natural way how you play in real soccer as well.

Northern Bites

This summer we hoped to implement a special player specifically for the drop-in challenge. This player would monitor the communications traffic of his team-mates and decide (1) how effective team-mates were being and (2) what role team-mates were trying to play. Our drop-in player would then choose his role based on what roles no one else on the team wanted to play. If everyone was playing striker, our drop-in player would become a defender. If everyone was playing defender, our drop-in player would become striker. If a team-mate was playing a position but doing poorly at it, our drop-in player might choose to ignore that team-mate and play the same position as him.

Unfortunately this player was never tested enough to be played in the drop-in challenge this year. Instead we used our standard field player with some modifications. Because role assignment in our behaviors system is more static than in most SPL behaviors systems -- we role switch but only when penalties or dead robots make it necessary to do so -- our standard player actually performed quite well in the drop-in challenge in terms of team strategy. We would not clump the ball nearly as much as other teams because our player was playing a position where he was only responsible for part of the field.

We plan on finishing up the drop-in player for the next drop-in challenge.


The RoboCanes players do not use a special behavior or strategies for the drop-in games. We use the same behavior as in games with own agents as teammates.

Using perceptions and the positions from the standard messages our player either walks to the ball or positions as supporter next to the striker or behind. Since our decision making does not adjust to other players behavior sometimes our agent started to go to the ball, but went back when another teammate interfered and reached the ball faster. If other drop-in players always go to the ball faster, our behavior is more passive and does not go to the ball.

Since we use our regular behavior, we only use the parts of the standard message that correspond to the values we already use for our own team communication. Our player trusted those values, which might have caused some oscillation in the positioning (when our robot was connected to the wifi). We send the complete standard messages to provide all our information to teammates.


Our drop-in player is a defensive player who has been assigned a zone from where it is not allowed to leave, unless the ball is really close to the player. When the ball enters the playerís zone it will shoot the ball towards opposing teamís goal. The size of the zone can vary from ľ of the field to Ĺ of the field and it can be changed during the game. During the competition we changed the size and location of the zones. We got the best results when the zone was the whole our teamsí half of the field. Player did broadcast data about its status and location to the teammates, but discarded all information sent by the teammates.


We conformed to the SPLStandardMessage and reported useful information to our teammates, such as our position, the ball position, and our intention. The only information we neglected to report was our shootingTo and walkingTo fields, which were simply reported as our robot position instead. In most games, we took into account our teammates' reported positions and calculated whether it was better for us to attack the ball or to leave it for another player. In the latter case, we assumed a different role, be it an upfielder to receive a pass from a down-field player, or a defender to help protect the goal. If we were player 1 we assumed the goalie role.


In drop-in player competition, we try to avoid all the robots playing the same role. In case of that, when more than 2 robots intend to be defender or striker, our robot will play different roles from them. If no more than 2 teammates are on the field, the robot should focus on attacking. When the ball is near the robot, kicking the ball towards the reasonable direction should be considered as the first choice. The reasonable direction means where there are more teammates and less opponents.


The UnBeatables team was born in December of 2013 and despite the process of purchasing the NAO had started in January, we had only received the product 3 weeks before the RoboCup competition. Before that, we only worked using simulations. We decided to use ROS as our main framework.


The UPennalizers uses a simply role-switching strategy during the drop-in games. Based on the packages received from their teammates, our robots calculate the estimated time of approaching the ball (ETA) for each of our teammates and compare them with our own approaching time. Our robots will approach the ball as an "Attacker" if our ETA is the shortest, and they will go back to the defending goal as a "Defender" if our ETA is the longest. Additionally, since not all the teammate packages are reliable, we make our robots more aggressive by adding negative constant to our ETA.

UT Austin Villa

For the 2014 drop-in player challenge, UT Austin Villa used the same low level skills as in the main competition. However, rather than assigning shared roles to all of the players as in the main competition, our robots used a potential-based positioning system. Specifically, our robots were repelled by their teammates to ensure spreading over the field. Additionally, they were attracted by the ball to ensure that they stayed relevant to the play. Finally, they were attracted by a position between the ball and the goal in order to limit opponents' shots on goal. This system was used to adapt online to our teammates' positions without expecting them to act in any particular fashion. In addition, the robots needed to decide which robot was going to handle the ball. To make this decision, our robots calculate a bid for each teammate based on their distance to the ball, angle to the ball, whether they were upfield of the ball, and whether they were currently avoiding opponents. If a robot said that it intended to chase the ball, they were given a bonus to their bid. Finally, we expected that player 1 would play as goalie as in the main competition.