RoboCup Season 2019 - A Summary

, :

The year 2019 is over and the preparations for the 2020 RoboCup competitions have already been started by our new team. During 2019, there have been plenty of social media posts, articles, and other media, each covering only some snippets or a very compressed description of what happened in this season. This article is written to provide a comprehensive overview of B-Human 2019 and its developments and achievements.

The Team

The core of the team consisted of 14 students who participated in a project course of our university's Computer Science Master program. The project started in October 2018 and officially ended in September 2019. Most of the participants already participated in the previous B-Human Bachelor project or had some other robotics background. In addition to these 14 students, two advisors as well as some former project members contributed to the project.

Besides these humans, the quality of the robot team members is quite important, too. The 2019 competitions were played by eight brand-new NAO V6 robots. These robots have far more computing power than their predecessors, allowing us to run more sophisticated algorithms and to log way more data during each game. Fun fact: For our old robots, we used names from the sitcom Big Bang Theory. After about 10 years, we became bored by this naming scheme and switched to characters from Marc-Uwe Kling's Känguru-Chroniken. Say "Goodbye!" to Penny and Leonard, say "Welcome!" to Herta and Krapotke!

B-Human team members and robots of the 2019 season. B-Human team members and robots of the 2019 season.

Research and Development Focuses

As every year, we took our previous year's software as a base for new developments and replaced several of its modules. This time, many of our changes have been caused by the availability of much more computing power on our new robots. This includes, for instance, a new framework that allows us to distribute our software over multiple CPU cores. However, there have been two major areas of research that stand out: real-time object detection with Convolutional Neural Networks as well as a new behavior framework along with a number of new robot behaviors.

For some years now, starting with the Outdoor Competition at RoboCup 2016, the Standard Platform League aims for natural lighting conditions on the playing fields. This means possible changes of the ambient brightness during a game as well as the possibility of dark shadows, caused by structures in the environment or by the robots themselves, or bright spots. Although at RoboCup 2017 and RoboCup 2018, only very few games actually happened under such conditions, mostly due to the architecture of the venues, one definitely has to expect an increasing number of games under such conditions in the future (at RoboCup 2019, B-Human actually played a majority of games close to huge windows). Thus, we decided to increase our development efforts towards more lighting independent vision approaches. One currently very popular and successful approach for object detection in such environments is the application of Convolutional Neural Networks (CNNs). We have created and trained networks for ball classification, robot detection, and robot segmentation. Furthermore, we developed a library for fast neural network inference on NAO robots. We wrote two research papers about these topics, both have been presented at this year's RoboCup Symposium (see subsection below)!

In 2018 and 2019, multiple Standard Platform League rule changes directly affected the implementation of the robots' behavior by introducing new set-pieces such as corner kicks and kick-ins. Their proper handling - when being in defense as well as when being in offense - together with reasonable transitions to the normal game behavior significantly increases the complexity of the overall behavior. As our previously used C-based Agent Behavior Specification Language (CABSL) showed some software engineering shortcomings, led to too complex code and duplicated lines of code, a new behavior framework has been developed during the winter. Subsequently, it was used to reimplement the whole set of robot behaviors, from individual skills such as dribbling to coordinated team actions such as passes after set-pieces.

A B-Human robot taking a kick-in in the RoboCup 2019 semifinal. A B-Human robot taking a kick-in in the RoboCup 2019 semifinal.

RoboCup German Open

As in almost every RoboCup year, the German Open are our first big milestone. Most major changes are integrated into the system and can be tested against other teams. For many team members, it is also the first RoboCup tournament at all. In 2019, the RoboCup German Open took place at the Messe Magdeburg, the same venue (which we really like!) as in most previous years.

However, in this year, there was a premiere: We did not come to Magdeburg as defending champion but as contender! In 2018, we only became third, despite conceding only one goal in the whole competition. Nao-Team HTWK won the German Open as well as the RoboCup 2018, both for the first time. Congratulations to them, but our obvious plan was to prevent such a result this year.

The preliminary round went quite smooth with three clear wins: 7:0 against Berlin United - Nao Team Humboldt, 5:0 against the Nao Devils Dortmund, and 7:0 against the Bembelbots. In the semifinal, we also achieved a very good result: 5:0 against rUNSWift from Sydney (probably a good candidate for the team that traveled the longest distance ever to participate in a German Open!), although the game was much closer and tougher than the final score indicates. Overall, our whole software appeared to work as nicely as intended.

In the final, we faced the Nao-Team HTWK from Leipzig, again! The game started as good as the previous games ended and we led with a safe 2:0 at halftime. However, in the second half, the game became way more thrilling than planned: Our robots confused the referee's voice with the whistle multiple times before kickoff. This never happened before (and will not happen again -> bug fixed) and led to time penalties for all of our robots at once. In all cases, the Nao-Team HTWK used this huge advantage to bring the ball close to our goal and to eventually score. Half a minute before the end of the game, the score was 3:3, a huge contrast to last year's games between these two teams, which ended 0:0 and 0:1. But our robots kept on showing a really strong performance (despite the whistle issue) and scored the 4:3! We became German champions again!

All results of the competition can be found on the corresponding event page in the SPL Wiki.

Kickoff in the round robin game against the Nao-Devils Dortmund at the RoboCup German Open 2019. Kickoff in the round robin game against the Nao-Devils Dortmund at the RoboCup German Open 2019.

RoboCup 2019 in Sydney

This year's RoboCup host city was the farthest ever for all members of the team (as nobody of us went to RoboCup 2000 in Melbourne ;-)). Thirteen humans as well as the eight robots (plus one guest robot, which we named Else Kling) had a long but safe trip to Sydney (and back).

In contrast to the German Open, a RoboCup world championship does not only consist of a single competition but also features a mixed team tournament, technical challenges, as well as a conference. Everything took place at Sydney's new International Convention Centre (ICC), located downtown close to the harbor.

Our mascots, the Bremen Town Musicians, always travel with us. Our mascots, the Bremen Town Musicians, always travel with us.

Main Competition

The goal for the main competition was the same as for the RoboCup German Open: Regaining the title from Nao-Team HTWK. However, first of all, the first two round robin stages of the Champions Cup had to be passed. In 2019, a total of 20 teams participated in the RoboCup, of which the twelve strongest ones were seeded in the Champions Cup and the other eight teams in the Challenge Shield.

In these rounds, B-Human played against the HULKs from TU Hamburg, the UPennalizers from the University of Pennsylvania, UT Austin Villa from the University of Texas in Austin and SPQR from La Sapienza University in Rome. We clearly won all round robin games with a total score of 31:0 goals! This qualified us for the quarter final, in which we had to play against the Bembelbots from Goethe University Frankfurt, who we were able to defeat by 10:0.

In the semifinal, we met - like at the German Open - the home team of RoboCup 2019: rUNSWift. As one would expect, it was a really tough game against a strong opponent. Furthermore, during this particular game, more set pieces than during the whole RoboCup German Open had to be executed. After an intense first half, the score was still 0:0. However, in the second half, we gained more control over the game and the performance of our opponents decreased, maybe due to the lighting conditions (rUNSWift now had to play towards the huge windows), maybe also due to overheating robots. This gave us the opportunity to score multiple times. In the end, we managed to win 3:0!

In the final, we faced the Nao-Team HTWK. Who else? This was the third RoboCup final between these two teams in a row. The previous two finals were very close and exciting. This one was not different! We started with some good chances to score, but were not able to move the ball over the opponent goal line. In football, you have to use your chances, otherwise, the opponent does: Nao-Team HTWK took the lead. A quick shot out of a group of robots hit our goalpost and rolled over the line without letting our goalkeeper any chance. In the course of the game, we had a lot of ball possession but the Nao-Team HTWK was always close to the ball, too. With only a few minutes remaining on the clock, the referee called a foul on one HTWK robot in midfield and we were awarded a free kick. This was carried out as a long pass deep into the opponent half, where one of our robots was able to almost directly kick the ball into the goal from a short distance! At the following kickoff, the Leipzig player lost control over the ball and one of our players decided to take a long shot towards the goal, which is quite typical for B-Human. The opponent defense was not aligned well for a short amount of time and the ball rolled straight into the goal: 2:1 for us! We turned the game! Some suspenseful minutes later, the game was over. We were World Champions again!

All results of the main competition can be found on the corresponding event page in the SPL Wiki.

Kickoff for the Champions Cup final. Kickoff for the Champions Cup final.

Mixed Team Tournament

In 2019, the Mixed Team Tournament was held for the third time. After two successful participations in 2017 (together with the HULKs) and 2018 (together with rUNSWift), we again took the opportunity to cooperate with a different team as this always leads to a worthwhile exchange of ideas. Thus, for this year's competition, we teamed up with Berlin United - Nao Team Humboldt from the Humboldt University of Berlin, who have participated in the Standard Platform League since the very beginning. The name of our mixed team was B & B (it remains up to the reader to decide which B refers to which team).

At RoboCup 2019, the tournament consisted of a preliminary round in which all five participating mixed teams played games against each other team. The two best teams proceeded to the final. We clearly won three of our preliminary round games and played one draw against Team Team, which was formed by Nao-Team HTWK and the Bembelbots. As they also won their other games, we met them again in the final. In that game, the equal strength of both mixed teams became obvious: the final game as well as the following penalty shootout ended in a draw, too. Thus, it needed a sudden death shoot-out, in which we finally won!

As both parts of B & B have robust implementations of all required basic abilities, such as stable walking, ball recognition, and self-localization, all robots on the field were able to play together reliably according to our intended strategy. We are very happy about our success and thank Berlin United - Nao Team Humboldt for playing with us!

All members of the B & B mixed team! All members of the B & B mixed team!

Technical Challenges

The purpose of technical challenges is to foster the development of robot skills that are not yet needed for the actual games. This year, two challenges were held: the Directional Whistle Challenge and the Open Research Challenge.

In the main competition, the robots already need to be capable of detecting the sound of the referee's whistle at kickoff. In the Directional Whistle Challenge, this was extended by the computation of the direction as well as of the rough distance to the sound's origin. Having this information, the robots could be able to distinguish the whistle of the current game's referee from the whistles on other fields at the RoboCup venue (there are many!). Our robot successfully detected multiple whistles during this challenge but unfortunately computed their direction with an error of 180 degrees many times. Some of the others teams performed better. Thus, we finished this challenge with a medium score.

In the Open Research Challenge, all teams can show their current RoboCup-related research in a short demonstration on an SPL pitch. We decided to present our advances in robot detection and state estimation by letting two robots guide a blindfolded robot towards the ball and letting it score a goal! This is a really challenging task, as for being able to properly hit a ball, an error of only a few centimeters will already let the robot fail. A video of a trial attempt can be found on our YouTube channel. The score of the Open Research Challenge is based on a vote of the SPL teams. The other seemed to have liked our demonstration, as we received a quite high score and finished second in this challenge.

Overall, we reached the second place in this year's technical challenges. Congratulations to our mixed team partner Berlin United, who became first! All results of the challenges can be found in the SPL Wiki.


Each RoboCup ends with a conference, the RoboCup Symposium, at which recent RoboCup-related research results are presented. We are quite happy that for this year's symposium, our two submitted papers were both accepted for presentation. In JET-Net: Real-Time Object Detection for Mobile Robots (read our PDF or the original at Springer), we describe our new Deep-Learning-based robot detection, which has been used by us throughout the whole competition. Our new library for fast neural network inference on NAO robots is described in A JIT Compiler for Neural Network Inference (read our PDF or the original at Springer). To make it available to other researchers, its implementation has been released as open source on GitHub.

Summary and Outlook

Overall, 2019 was an excellent year for B-Human! We regained our beloved titles: RoboCup world champion and RoboCup German Open champion. Furthermore, we succeeded in additional competitions and advanced our research activities. The time of most old team members ended in September. We released most of our code. You can download it for free from our repository at GitHub, including a beautiful and very detailed documentation of almost 200 pages! Furthermore, as the winner of the 2019 Champions Cup, we were invited to submit a paper for the proceedings of the RoboCup Symposium (read our PDF or the original at Springer). The paper, titled B-Human 2019 – Complex Team Play Under Natural Lighting Conditions includes, among other things, a description of our new and previously unpublished CNN-based approach for ball classification.

In the meanwhile, a new group of 16 students has joined the B-Human team as their Bachelor project. Bold plans have been made and coding for the 2020 competitions has begun. We are looking forward to a great new RoboCup year. Stay tuned!


The B-Human team would like to thank:

Our departments at the University of Bremen and the German Research Center for Artificial Intelligence (DFKI).

Our main sponsor CONTACT Software, the leading vendor of open standard software and open source pioneer for the product engineering process and the digital transformation.

Our sponsors and supporters engineering people, TME, igus, neuland, Alumni der Universität Bremen e.V., and sysGen.

RoboCup Champions! RoboCup Champions!


If you are interested in more information, you might want to have a look at our