Third place in the Running Robot Competition 2020

Last year we got the opportunity to participate in the Running Robot Competition in China. Since we enjoyed getting to participate in it last year, we wanted to attend again this year.

The Running Robot Competition is not a part of the RoboCup tournaments we usually participate in. It is a tournament where Robots have to go through a course, overcoming multiple obstacles to reach their goal. These obstacles are for example having to wait until a barrier has moved out of the way and only then walk past it, or having to climb a few stairs.

Due to Covid-19 we did not get the opportunity to participate in person, but we were glad to participate over the internet. For this purpose, the organizers prepared a simulation environment.

We discussed a few options on how to solve this.
Starting from a more conventional approach to solve the challenges. In this approach, we would start with developing a vision that can e.g. see the yellow and black from the barrier and as soon as it reaches a certain angle, we would program the robot to start walking.

However we wanted to use this opportunity to learn about something that most of our team had less experience with. This is why we decided to use reinforcement learning for our approach.

Reinforcement learning is an approach where we use neural networks so the robot can learn how to overcome the obstacles without us telling it how to solve them. This can lead to more efficient ways of solving the problem than we would have thought of. This could include finding a bug in the physics of the simulator to achieve normally impossible things or something as simple as walking another way that we did not think of.

We used only the robot’s camera image as an input to the reinforcement learning algorithm. Based on this information the robot had to figure out what it had to do now. Does it have to wait for the barrier to rise or is it already up and it can start walking?
This sounds trivial for us as a human, but the robot starts out with no concept of a barrier being an obstacle. In the beginning, it does not know the difference between the ground which it can step on and an obstacle that it should avoid.

To ease the robot to learn these things, we provided points as a reward to the robot if it came closer to the goal and deducted points if it walked into an obstacle like the barrier.

The robot could control the direction in which it walked. We used the same program to let the robot walk as we use on our soccer-playing robots. However since a different robot was used in this competition, we had to change a few parameters. However, we were able to use a script from our existing walking to let the robot learn the best way to walk in this new simulation.

With this approach, we were able to solve the first obstacles. Due to a misunderstanding, we had less time and were not able to solve the full course.

However we still had a lot of fun in developing our approach to solve the problems the Running Robot Competition presented. We also had the opportunity to learn a lot about reinforcement learning.

As you probably have figured out from reading the headline already, we did not only have a lot of fun during the competition, we even managed to finish in third place in the competition!


RoboCup 2020 Application

We want to participate in the world championship of 2020 again. For this application the conditions were a bit different compared to last year.

Instead of writing a Team Description Paper, this year we were required to write an Extended Abstract. In it we described what we learned in the world championship in Sydney, the most important problems we have to address for the next championship and what we want to develop in time for the world championship in Bordeaux. Our Extended Abstract can be found in our publications and here.

We have also created a video which shows the abilities of our robots:


German Open 2019 – Starting Soon

On Tuesday it will start for us. We will be going to the German Open 2019!

The German Open is the German championship in the RoboCup. There are competitions in the 6 Major Leagues, so all kinds of robots, from helping in crisis situations to save lives to our soccer playing robots. 40 teams from 16 countries will be there to fight to win the German Open competitons.

We will get the opportunity to try out and present the changes to our Software and Hardware which we have made since the last world cup in official games. With the new insight we can give the finishing touches to our robots before we fly to the next world cup.

The other teams in our league, which we will play against, are:
WF Wolves (Ostfalia Hochschule für angewandte Wissenschaften, Germany)
Rhoban FC (Université de Bordeaux, France)
Starkit (Moscow institute of physics and technology, Russia)
ZJUDancer (Zhejiang University, China)

Visitors are invited to the German Open from Friday (3.5) to Sunday (5.5.). There is no entrance fee for our fans (or other visitors).
More Information is available here:
We will continue to report from the German Open on this blog and our social media channels.


Qualified Teams for the RoboCup 2019 Championship in Sydney

The qualified teams for the championship in RoboCup for 2019 have been published. We are happy to be one of the 20 teams which is allowed to participate in the Humanoid Kid Size League.

We are one of the 19 Teams, which is fully qualified. This means we are allowed to play in the regular games as well as in the Drop-in games. One team is only qualified to play the Drop-in games.
Drop-in games are a special game mode. In this game mode multiple teams provide one robot each to form a temporary joint team. These teams are randomly chosen. While cooperation between teams is the main focus of this form of competition, each robot is scored individually based on their performance.

The Drop-in games might be especially relevant in this year, because it is currently being voted on to use the results of the Drop-in games for the seeding for the group phase of the tournament.

In the Humanoid Teen Size League 10 teams are qualified. We are taking part in this league with our cooperation partner the WF Wolves. In this league 8 teams are fully qualified and 2 teams are only qualified for the Drop-in games.

All teams, their qualification videos, Team Description Paper as well as the robot specifications can be seen here:

We are very excited to take part in the championship in Sydney and are very hopeful to be very successful in this year!


Bit-Bots go to Sydney

We have applied for the world cup of RoboCup, which will be in Sydney this year. We have written a Team Description Paper for this purpose, in which we are presenting our research of the last year. We have also made a video for our application. We are very happy to have been accepted and to be able to fly to Sydney in juli and for the exciting games we will get to play.

We are already preparing a lot for the world cup. We have had multiple integration tests in the last few months. In the integration tests we have tested all of our hard- and software. We are also already planning the next integration test.

By changing to our new robot platform, from our Minibots to our new Wolfgang robots, we have had to fight with some new problems. On the other hand we also were more motivated and that is why we managed to accomplish a lot of progress in our software as well as in the continued development of the Wolfgang hardware platform.

As part of working on our software, we have overhauled our vision. It is now better able to process and calculate the results of our CPU and graphics card in parallel.
At the moment multiple bachelor thesis are being worked on, which aim to use Fully Convolutional Neural Networks, to detect additional objects on the field. We aim to also detect robots and goalposts with this method.
The localization of our robot is being completely changed and improved right now. For this we use AMCL, a particle filter, to transform linepoints which have been found by our vision. A live demonstration video is available at:
Additionally to our localization we are also working on a world model. We aim to process the sensor input data from multiple robots and use the data to look at how the ball moved over time, which allows us to filter if we detect e.g. the ball in one place where it couldn’t possible be based on our previous measurements.
We have completely rewritten our behavior. We have developed a new description language which will allow us easier continued development of our behavior. For this we have developed our Dynamic Stack Decider and are currently working on publishing a paper about it.
For our path planning, the calculation which route our robot should take, we have switched to move_base.
For our animations and our walking we have switched to using splines. By using splines we are able to calculate smaller steps between the start of the motion and finishing the motion. This allows us to have less jerky movements.
We managed to send our motors significantly more signals per second. This way we are able to decide in more detail how the motor should move and thus accomplish a more precise movement in general.
We have built new foot sensors into our robots. By looking at the additional data we are generating this way we can stabilise our walking and our animations.
In the context of a bachelor thesis we are currently working on a system to calibrate our motors. Small inaccuracies between a measurement and the reality lead to large differences in how the robot is actually oriented. With this method large differences have already been found and fixed.

For the Symposium of the RoboCup world cup we are planning on a few more scientific papers. We will talk about these more at a later point in time and upload them on our publications page.

Our code is open source and can be viewed on Github:

We will take part in the German Open before we fly to Sydney. We will test our hard- and software there in detail and are excited for games we will get to play in Magdeburg.

Additionally to this Blog, Facebook and Twitter we will also publish images on Instagram. Our new Instagram page can be found here:


New Foot Sensors

Our robots have gotten new foot sensors. We were inspired by Team Rhoban from Bordeaux. ( )

We have improved on the original implementation. The possible update rate has been improved from the original 80 Hz to a theoretically possible 9.5 kHz. Our transfer rate through the bus is limited and thus we filter the output from the load cells and only transfer with a speed of 1 kHz.

We have put the Sensors  on the top side of the feet of our robots.

The feet of our robot with sensors on top.

We have implemented the sensors to help us gather more data and use this data to improve our walking and our animations by making them more stable.
We have put the sensors on our robots on the RoHOW. The sensors are able to measure 40 KG each without breaking. Of course we took that as a challenge and used two thumbs to create as much pressure as possible. There was not enough space near the sensors to use more than just two thumbs.

In the future we plan to scientifically compare how our measured center of pressure compares to an industrial 6 axis force torque sensor and publish our results. In the near future we also plan to release our improved version of the ForceFoot as opensource hardware.FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

The World Cup In Retrospect

Even though our last article was a while ago, a lot has happened. After the group phase we were eliminated from the regular competition of the world cup in a match against Rhoban from France.
We were more successful in the Drop-In Challenge: because of our stable goal keeper we managed to finish in the 4. place.

Afterwards we supported our collaboration partners in the team WF Wolves from Wolfenbüttel, who played in the TeenSize League. They finished the group phase in the third place and thus got directly to the semi final. There we cooperatively lost against the team Ichiro from Indonesia. The match for the third place against the Nubots from Australia ended in a penalty shootout which we unfortunately lost. In the Drop-In Challenge in the TeenSize League we were more successful and managed to finish in third place.

In the KidSize League Rhoban has managed to become World  Cup champion for the third time. In the TeenSize League Ichiro became the World Cup champion for the ninth time.

After the competition many members of our team spent a few more days in Canada before we went back to Hamburg. In the near future we plan to extend our cooperation with the Wolves. In September they will visit us and we will play test games and work together on scientific papers.FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

FØld – now available

[originally written by:
The last two days were accompanied with intense preparations: At 8:00 AM we arrived at the exhibition on saturday, in order to prepare our tables, repair our robots, which were slightly damaged during the flight, and, as we mentioned in the previous article, to record some images for our vision.
Unfortunately, when we arrived, we had to face an unpleaseant surprise: The registration was not prepared yet, so we got to stand in line, and wait. And wait. Some time later the organizers decided to let us in without the registration (and our badges) for now. The registration was postponed to some time later.
This inconvenience was promptly followed by another minor problem: Apparently, the organizers had a slightly different idea on what the term “Setup Days” is supposed to mean. Usually, the setup days are used to prepare the robots and adjust them to the different circumstances at the venue. This year, however, they were also used to set up the hall: Apart from the junior league (for schools/pupils), no league was completely prepared yet. In our league, there was nothing except for the wooden foundation for the fields. Everything else was scattered around. There were not even chairs yet! The organizers did not seem to be able to provide enough manpower to fix this soon, therefore we decided to DIY our fields (as known from this swedish furniture store). Except there was no manual this time. Likewise to products bought from said furniture store, there also were parts missing. Nonetheless, we made up a humanoid-league setup team and took matters in our own hands. This meant we had to lay the grass field, place the markings and perform several other tasks on our own. Especially team Rhoban pulled out all the stops. It still took us until the end of the second setup day to finish all fields. The TC (technical committee) and EC (executive committee) usually are very busy during setup, even without these circumstances, so it came to no surprise when many decisions and announcments about the competition were delayed while coordinating the setup.
One event during the preparation time before the world cup seems to take its revenge now: Pressure from the outside forced the whole local committee to be exchanged, leaving almost every position with someone inexperienced.  
The organizers are mostly experienced in the junior leagues only and the required materials and man hours were vastly misjudged. Especially severe, as the participation fee for the world cup is not minor and thus setup infrastructure and prepared fields would be expected.

Daniel Polani (President of the RoboCup Federation) at the Opening Ceremony

When the world championship was officially started with the opening ceremony on sunday, the president of the RoboCup federation found proper words when he thanked the attending teams for their effort in setting up the required materials and fields.

We are confident that this kind of chaos will not occur again at future RoboCup competitions, because the RoboCup federation will hopefully find ways and means to to support future organizers and demand better terms for the teams.

Marc checks the walking

Regardless of all that, our team, of course, also worked on our robots and software. Seeing how our robots walked was great, because of how stable it is compared to last year. They are now able to walk all across the field without any trouble. On the first setup day, Marc was the first to put a robot onto the field. Accompanied by astonishment from the whole team, the robot just strolled across the field. He was not even bothered by any twists and turns or a side step. What a difference to last year! This strongly contributed to the motivation of our team. A lot of work over the last year went into our vision and ball detection, which also has paid off. We were also able to demonstrate our ImageTagger to other teams and make it attractive to them. The paper that was written about the ImageTagger by Niklas, Marc, and Norman Hendrich was also accepted for the RoboCup Symposium (a short conference ensuing the RoboCup). Other than that, we are working on all kinds of small problems and are looking forward to the rest of the RoboCup.


Setting up the team table


Our new robot for our vision!

We have a new robot.
It has been built completely by us. It sadly does not quite adhere to the rules of our league, because it is not humanoid. It can not even move by it self. It can only move its head.
He is not designed to play in our league though. We wanted a robot that is not complex to use it to generate images for our Imagetagger or to test our vision algorithms. In this robot only three actuators are used. Usually our robots only have two actuators for the head, but with the third actuator we are able to gain another degree of freedom for the head. This allows us the bring the head in a sidewards leaning position. This is not necessary for our robots in a game, but they still move the head in the same way in a normal game, because for example the way they walk. This robot allows us to capture pictures with this in mind and have even more realistic pictures.
The few actuators also allow us to not be dependant on any other parts of the robot and thus reduce the complexity for our use case. We also do not need to use a robot while testing or calibrating and we can work at the same time on our robots that are allowed to play.
Another feature is the height adjustable pole which allows us to take pictures from the perspective of many different robots.

Even though this robot is very simple, it still opens up many new possibilities for our vision.