The Brains of the operation


Larissa Seegemann


Fabrice Zeug


Max Känner


Jorge Lobaton



Our Software is built with the help of ROS. The Robot Operating System provides software libraries and tools which contribute to our development. It allows for easy synchronization and communication between our different programs. The programs themselves are called Nodes, as the entirety of the system is a network, with our programs as the connecting points. There are three inputs and two outputs in our network. The first input is the position data of all robots on the field and additionally the ball. The data is provided by the tournament organizer. The second input is the information we receive from our own robots and the third input is the information given by the referee. The referee is also one of our outputs, as we have to send timeouts and robot-swaps to the referee. The commands we send to our own robots is the other output.

Our Network can be divided into three main categories: Connection, Navigation and Strategy. The following diagram shows a brief overview over our network of Nodes.

Software Modules


The strategy is the 'intelligent' part of the network and it decides what to do next. For the strategy to decide what is best, it needs a lot of data which has to be filtered or calculated from all the inputs we receive. We use the concept of a threat level evaluator which indicates how likely it is for the enemy to score a goal and to win the game. If the enemy is leading, the threat level is always a bit higher and if we are in the lead it is always lower. Dependent on this threat level, we decide whether to be more aggressive or defensive.


The navigation includes the localization of the robots and the ball on the field. We do this by displaying them as individual coordinate systems in a global coordinate system. This makes it easier to calculate the rotation and position of two robots to each other. This data is used by the strategy and the navigation modules equally. The main goal of the navigation system is the planning of the best route for the robot to reach the desired destination.


The connection module handles the communication with everything outside our own Network. It receives data and formats it to our network internal messaging format for further use. It also converts data from the internal messaging format to the format used by the external device. Lastly establishing and maintaining connection to the external devices is a task of the connection module.