Software

During the games, the rules of the league prohibit human intervention, so software has been developed that can react fully autonomously to every possible scenario in the game. This central software of TIGERs Mannheim is called Sumatra. It controls and coordinates the robots in the real game and applies the team’s strategy 100 times per second, i.e. 100 Hz. Sumatra assigns different tasks to the robots, which are divided into four categories:

  • Keeper: One robot is the goalkeeper.
  • Attacker: One or two robots take care of the ball directly, they accept passes or intercept them from the opponents, play passes themselves, dribble the ball or shoot at goal.
  • Defence: These robots close the back and cover opponents to prevent passes.
  • Supporter: The remaining robots are constantly running free to create passing lanes.

How do we manage to get this strategy onto the field? To answer that, we follow the data. What goes into Sumatra as input, how do we process it and what comes out at the end as a command to the robot.

Input Data

Cameras are suspended above the pitch to record the action from above. A positioning system for the robots and the ball works on the basis of the camera images. This system is provided centrally by the league and transmits the raw positioning information to the teams. Sumatra filters this data and processes it, as there is always a lot of noise. We also have additional information from our own robot. Pacers can measure the wheel speed, or a light barrier on the dribbler recognises ball contact, just to name a few of the existing sensors that are built into the robots. All this information is then used to create the best possible image of reality, which Sumatra then uses to carry out the next steps.

Calculation of the strategy

Based on the recorded status of the field, general calculations are first carried out to determine the tactics. This starts with simple things such as which of our or the opponent’s robots is closest to the ball and how far away they are. Based on this, we then determine which team is currently in possession of the ball. Hundreds of other pieces of information are calculated and combined in exactly the same way so that complex decisions can be made at the end. An example from defence is the decision as to which of the opponent’s robots is dangerous enough to be defended and which of our robots should take care of it. This still has to be coordinated with the attack, which has to decide what our ball-carrying robot should do. Should it play a pass, and if so, what is a good pass that cannot be intercepted? Or should the robot dribble with the ball instead? The answers to all these questions and more are collected and form the tactics for Sumatra’s approach to the current situation. The answers to all the questions and more are collected and form the tactics on how Sumatra wants to approach the current situation. As mentioned, Sumatra runs at 100 Hz, which on the one hand allows the team to react to a changing situation every 10 ms, but on the other hand, if the tactic changes every time, the robots have no time to execute the tactic at all. Striking the perfect balance between reactivity and stability has often cost too many sleepless nights.

Execution of the strategy

The execution of the tactics is based on a three-level hierarchy. Starting with Plays, which coordinate and harmonise several robots, through the roles of an individual robot to its Skills. Skills are the most basic abilities of our robots, such as ‘drive to a target position’, ‘shoot the ball’ or ‘dribble with the ball’. These are then used in various roles. Both a blocking defender, who stands between the opponent and our goal, and a man-to-man defender, who stands between the ball and the opponent, use the same skill to drive to their target positions. Sumatra’s output at the end are target positions for the robots, where they should go in combination with additional information, e.g. whether the shooting mechanism should be activated.