Mock Competition

Last weekend, the mock competition, a first trial for the real world cup, took place. Unlike the usual competitions, this year the games will be simulated. We all were very excited to finally try out our software stack against real opponents and get used to the unfamiliar processes that come with this new type of competition. We all met up on Friday afternoon to prepare for the first practice penalty shootouts. After uploading our software and starting the calculating process, we eagerly waited for the footage of the game to be streamed. The calculating process is necessary, because the simulation happens very slowly and would not be fun to watch. And so we waited…

Nothing happened for quite a while. The reason? A bug in the automated referee caused all robots to be incapable of moving. After watching two very boring games, all remaining were postponed indefinitely until the issue was resolved. We used the free time to fix some issues in our own code, and in the process discovered some additional problems in the automated referee.

On Saturday the intended schedule had to be changed entirely: Instead of the intended full games, a series of challenges were put in place to guide all teams to a point where they are able to compete. After getting the robot model inspected and successfully connecting to the game server, the first challenge was simply to walk. This should ensure that the robots were actually capable of moving and a problem like Friday evening would not occur again. After that, the next challenges were playing a penalty shootout, playing a short game and finally playing a full game. Our software stack worked very reliably and thus we quickly progressed through the challenges. On Saturday, we also managed to shoot the first goal of the mock competition. Admittedly, we did so by first falling onto the ball and thus moving it closer to the goal line. But after that a dynamic kick managed to dodge the goalkeeper and score the first point.

On Sunday we moved on to play the first short game versus the 01. RFC Berlin. The first half was looking very good for our team. We managed to score another goal and almost scored a second time, when the half time ran out and we couldn’t quite pass the goal line.

Then the second half started and hell broke loose. The game controller spawned the robots in the wrong configuration, which caused all eight robots to fall over and get penalized. Nonetheless we managed to recover and untangle from the ball of robots that was caused by spawning all penalized robots in the same position. After localizing themselves for a few seconds, our robots promptly ran off to defend the ball that was still lying in our goal area from our last attempt at scoring a goal, as it was not reset properly. We were able to defend our goal until the ball was reset. Shortly after, however, the automated referee got stuck in an impossible state, which caused the game to be aborted.

Despite all the chaos and issues that we found, we are confident, that most of the problems that could occur have been discovered by now and that the competition can run undisturbed thanks to this early test. We have seen that our software stack runs as expected and are excited to see interesting games at the real competition starting on June 24th.



Don’t worry, we haven’t suddenly decided to compete in a different league. But since out team was also affected by the ongoing pandemic, we had to make due with the new regulations. Here is a short update on what we’ve been doing for the past couple weeks:

Today, three weeks ago, we should have been in the middle of our preparation camp for the world cup. When we got the message, that that is cancelled, that all non-necessary activities are postponed until further notice and that we’re not allowed to enter our lab for at least the next few weeks, we were unsure how our team would go on. Nevertheless we quickly recovered from the initial shock, built an digital infrastructure, re-prioritized our goals and moved all essential tools and components to our apartments. Despite these challenges, we managed to use the Hamburg Closed effectively and solve a lot of problems.

Since we cannot use our real world robots at the moment, these changes were also a motivation to improve our simulation technologies. By using a more precise robot model and swapping to PyBullet as our simulation framework, we will be able to solve many problems completely without a robot in the future. Additionally, we have decided to release our current software stack as software version 2.0. Even though some of the features we initially planned couldn’t be completed in time, we are very happy with the results. Version 2.0 includes a lot of new features, such as a heavily improved walking algorithm, as well as the second version of our localization.

By now we’ve pretty much gotten used to the new circumstances. The initial chaos slowly changes back to normal day to day life, we’re having regular meetings (online, of course), and are eagerly working on the code that will win us the next world cup.


Running Robot Beijing

Sometimes something unexpected happens and suddenly one finds himself on the other side of the world. Something like that just happened to four brave Bit-Bots: Last Week Jasper and Sebastian (human), as well as Rory and Jack (humanoid) were informed that they were supposed to fly to Beijing a few days later to give a presentation at the first Running Robot Competition…

This message left us with a lot of excitement, but also a lot of stress: There was so much to do in such little time; and so all gears were set in motion to ensure that we got our visa by wednesday evening, so we could board our flight on thursday morning. The flight went pretty uneventful, and just 19 hours later we found ourselves at the convention centre, ready to set up. Our presentation was supposed to be on Saturday, so there was more than enough time to prepare everything and everything should be smooth sailing, right? Wrong! Turns out, packing in a hurry leads to chaos and so we stood in Beijing with two charged and two empty batteries and without a charging cable, and with a very short LAN cable. But we arranged and everyone seemed to have liked our presentation. In fact, it went so well, that chinese television decided to have an interview with us (link).

But we hadn’t just taken this journey to give a short talk. We also wanted to see the other presentations and, of course, the competition. While, sadly, most of the other demonstrations turned out to be dancing robots that play keyframe animations, which is not really interesting for our research, we still met many new, and surprisingly a few known faces. The competition consisted of several parcour elements the robot had to cross. They had eight minutes to solve eight different tasks. Most of these tasks could be solved rather easily with a decent colour recognition, but for a first year it still was a challenge and we hope the difficulty will improve in the next years and drive the competition towards new smart solutions. Maybe reducing the colours of the parcour elements would be a good start to force the participants to use artificial intelligence.

Lastly we also found some time to look around in Beijing. Thanks to our amazing guides we got to see the Forbidden City, the Olympic Park and Tian’anmen Square. We also went to visit the campus of the Tsinghua University and get to see our guides’ lab.

And suddenly, just three days after our arrival it was already time to leave. It were stressful, yet very interesting days. And maybe we will come back one day.


RoboCup 2019 in Sydney – Group Phase, First Day.

After our arrival, the setup days were very busy while we prepared our hard- and software, which is why we didn’t have the time to publish another article yet. Today we put our hard work of the last days to the test in the first games of this years world championship.

During the preparation days we spontaneously decided to switch out parts of our modular vision pipeline with a neural network based on the YOLO architecture – with surprising results: We were able to detect balls across the whole field. The goalpost detection was also greatly improved by these changes. We were expecting some improvements by exchanging the module, but still everyone was very surprised by just how good it actually worked.

Another thing we changed: We’re dynamic. We introduced DynUp™ and a reworked version of the dynamic kick that was initially developed by a group of students in one of our bachelor courses. These modules allow our robots to stand up even faster while being more stable and to kick the ball in different directions without falling over.

Finally, we also made some changes to our tactics, and improved some visualization tools to help us keep an overview of what the robot is doing during the games.

Today, we had a lot of chances to test out, whether our changes actually work out: With 6 Drop-in, and 4 regular games we were busy all day. Luckily, thanks to our cooperation with the WF Wolves, together we were able to have our robots play in all games, while also covering several referee duties.

However, not everything went perfect today and at one point it looked really dark for us: When we replaced our cameras earlier this year, we did not keep in mind the additional weight. While our modified head stayed intact, the part connecting the head to the body wasn’t made for the additional forces and broke. After our game against ZJLabers, the heads of three of our four robots were detatched from their bodies. Things looked dire, until a smart idea saved the day. We repurposed one of our metal parts, which were less likely to break, and attached the head to it. This way we were able to keep on playing with the new camera and perform many great moves in the remaining games. Unfortunately we haven’t been rewarded with any wins yet, but we keep on trying our best and are excited for the coming days.


German Open 2019 – Semi Finals

an article by Sebastian Stelter and Jonas Hagge
After an exciting group phase we got a place in the semi final!
We have used the days before the group phase sucessfully to prepare our robots for the competition. In the group phase we were able to in detail test our soft- and hardware changes, which we have made in this season. We have discovered a few problems in the communication between the software modules, but in the end our components communicated successfully with each other. We were really happy about our hardware. After our work on our cable management, we only had one broken cable and only had to invest very little time in hardware problems.
To be honest we only qualified for the semi final by a small margin. In the end we had a very exciting game against the world champion and managed to qualify successfully.
We are not finished yet though. The semi final is coming up in a few minutes and we are preparing as much as we can to raise our chances to qualify for the final.


Try out Students

In the last few days, interested teenagers got to try out, what it is like to study computer science at our university. And like the last years, we offered one of the three projects the pupils could choose from.  During this week, they did not just get a look at our daily lifes, but instead got to experience hands on, what it takes to make a robot play soccer.

Our new friend Cozmo, a robot produced by Anki, joined us for this years project, and thanks to its intuitive programming environment made it rather easy for the students to solve various problems and to programm and play games with or against Cozmo. Step by step they helped Cozmo to reach his dream goal to become a soccer star player.

In contrast to the last years, this time we tried a different learning concept, developed by a master student at our university. In various tasks the 13 children first learned how to work with the robot and his graphical programming environment, before later going on to use a “real” programming language. The main goal was to make Cozmo shoot a goal on friday.

Even though this was a challenging task, the students quickly recognized how to use Cozmos sensors to find the ball in the camera image, then calculate the position in the real world, to then figure out where he is supposed to move.

Besides working on the project, the pupils were also keen to see our campus, so we showed them around in the labs of TAMS. They got to control a robotic arm with a HoloLense and watch as Trixie searched for interestingly colored objects.FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Iran Open 2018: Aftermath

The IranOpens are over and everything is back to normal again. Time for us to look back at the last few weeks and draw some conclusions: Many of our modules have been used for the first time and we could gladly see, that most of them worked even better than we expected them to do under real life circumstances.

Our new vision and walking algorithms perfectly work together with older modules and brought us some very successful plays. We found and removed many huge and tiny mistakes and bugs, that existed undetected for a long time. The exchange with the other teams broadened our horizont, gave us the possibility to discuss human-league problems, inspired us to new ideas and let us make new friends. Last but not least, this years IranOpen was the first chance for three of our members to experience working at a RoboCup competition.

Of course, we also realized what doesn’t work that well yet and we are working on fixing these problems as soon as possible. We are mainly focusing on getting our new robots to work, so that we can run four robots at the same time for the world championship, which draws nearer and nearer. We are looking forward to see our robots score some goals.

All in all the competition was a huge success and lets us confidently work towards the world championship.FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Iran Open 2018: Knockout Games

Our last day started as chaotically as we already anticipated it to be: 10 minutes before our semifinals-game was supposed to start, the exhibition halls doors were still locked. As the referees and the TC didn’t show up on time aswell, luckily we still had enough time to prepare.

Playing against Rhoban was a challenge, as always, but with our vision working perfectly and optimized walking algorithms we did pretty good. A few minutes before the game was over chaos took over once again: Due to unknown reasons the power was cut and therefor all game events stored in the Gamecontroller were lost. The referees and the TC took some time to deliberate about what to do now and then decided to continue the game anyways.

In the end Rhoban beat us, leaving us on the third place out of eight competitors. The first place goes to MRL-HSL.

After the games were over, we had some time to visit a temple with some members of Rhoban and ZJUDancer, and to show them around on the bazaar. The rest of the day was used to attend the very exciting closing ceremony. After the banquette, where we could once again talk and joke with our – sometimes long known, sometimes new – friends, it was already time to say goodbye.

13 hours of flight later, completely exhausted but very very happy, Hamburg had us back. We won’t have much time to rest on our success, though. The world championship is getting closer and today the lab was as crowded as always again.FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Iran Open 2018: Second Group Phase

Today began as early as the days before. Our first game against MRL-HSL was scheduled for 8:30 AM. Until then we still had to fix some hardware components. As we were working on our code until late in the night, one could see our exhaustion in our faces. Nonetheless we played a good game, which, unfortunately ended in a loss, but proved that our hard work during the last days was a success.

Our robots fell very badly during the game, damaging parts of our hardware beyond repair and causing major problems during our second game. Therefor Frankenbot now inherited Minibots arm aswell, making him more and more a patchwork-beast. Between the other teams, Frankenbot made himself a name as “Killer” or “Terminator” and is well known. Because there is one thing we could prove during the last days: We are very good at not getting tipped over.

In our free time after the games we went out to explore Teheran. We bought lots of food, spices and sweets at the bazaar and visited a mosque nearby.

During our third game the hardware problems lingered. By now everything seems to be working again and we hope, our robots won’t get hurt again tomorrow.

After the games we had some time to talk to the other teams. We introduced our ImageTagger to the other teams, Rhoban held an interesting presentation about decisionmaking processes during goalshots and ZJUDancer and MRL-HSL showed a part of their works aswell.

We are now making our last preparations for our semifinal-game against Rhoban. We are curious to see the outcome.FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Iran Open 2018: First Group Phase

The first match day is coming to an end. Our enemies being three of the four bestplaced teams in last years world championship, our competition couldn’t be much tighter: We’ve got to face MRL-HSL, Rhoban and ZJUDancer. Especially Rhoban demonstrated clever teamplay and clean goalshots with their three robots and beat all three enemies. The other two teams played very good aswell, leading to many exciting moments. Even though we lost all three of our games today, we made great advances aswell: For the first time since our big hardware modifications we are able to walk long distances again. Our ball recognition works perfectly and huge parts of our behaviour are already functioning normally.

Playing against some of the best teams in our league was a good oportunity for us to learn. The knowledge exchange between the teams and the games provide great insights into new tactics and different gamemoves, many of which we are looking forward to try out. The huge amount of games also provides lots of data for our image tagger under realistic conditions.

The hardware wasn’t working in our favour today, and so Frankenbot happened to lose a leg – just a few minutes before our last game was about to start. Luckily the damage could be repaired quite easily. Unfortunately we needed one spare part, that we couldn’t replace. So we had to remove it from the other Minibot, which means, that we can only use one of them for the rest of the competition. At least we can focus our work on that one now.

We are now working on fixing the behaviour completely and optimizing some parts, in order to get better results in our next games.FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail