Last summer, RoboTeam Twente traveled to Sydney, Australia, to participate in the RoboCup, the world championship of robot soccer. The RoboCup consists of many different leagues where all kinds of robots compete in different challenges.
The Humanoid League competes with walking soccer robots, the @Home League builds domestic robots for day-to-day tasks, the Rescue League builds all-terrain robots with a range of tools. The Middle Size League builds large soccer robots focused on independence, and the Small Size League builds compact soccer robots and focuses on tight control, quick plays, and heavy teamwork. RoboTeam Twente competes in the Small Size League at the highest division with teams from all over the world. This summer was successful, with the team rising from 14th place in 2017, to 7th place in 2018, to 5th place in 2019. As is usual, this success didn’t come without some bumps in the road.
Simen - Control team
“During the game against the German team Tigers Mannheim, the communication with the robots was delayed by 50ms to 500ms due to an error in the code, which was the side effect of fixing a more crucial feature. Due to this delay in communication, the control loops on the robot had to work with ‘outdated’ commands. A delay of 50ms to 500ms may not seem like a lot, but the commands are sent at 60Hz and the control loop runs at 100Hz. Still, the robots managed to perform the required actions, albeit in a little more wiggly manner.”
Lukas - Artificial Intelligence team
“Before the RoboCup we had tested all software extensively, but a real match is always different. During our first game we unexpectedly got a segmentation fault. We managed to reproduce it by simulating against other (real-life) matches. It appeared that in one edge case, there could be 0 instances of a shared pointer, subsequently freeing the memory. We also learned that we received many yellow cards because we interfered when other teams had to place a ball. It is a strict rule that when one team places a ball, the other team should back off and clear a path for the robot with the ball. To do this we used a force model. Unfortunately, with so much robots on the field, a robot would sometimes get stuck in local maxima and block the path for the other team. After a few games we realized that we could simply put the robots in specific formations, which also gave us more protection during free kicks.”
Cas - Mechatronics team
During the RoboCup, not much could be done on the hardware front as we only had limited replacement parts. Therefore, much more effort was put into protecting our robots from wear and tear. This was accomplished by swapping and cleaning the robots after every game. During the 10 days, robots were driving almost nonstop, giving a constant flow of robots with (small) malfunctions. This resulted in a short time frame for fixing them in order to keep a healthy selection of robots up. During games something will break or lose performance as a result of pushing the robots to the edge of their capabilities at a relentless pace. Having 8 robots in the field playing meant improving the other robots at the same time at the sideline. As such in the mechatronics team there was never a boring moment.”