From 24-27 June, the 3d Soccer Simulation League will be taking place, as part of RoboCup 2021. The league first started in 2004 and teams compete in simulated soccer matches, with an emphasis on the low-level control of humanoid robots.
Executive committee member Marco Simões told us about the league, how the competition will work, and how they strive to advance research every year.
The 3d Soccer Simulation League is part of the RoboCup Soccer Simulation League, which is a larger league that includes two sub-leagues: the 2d Simulation League and the 3d Simulation League.
The 2d Simulation League is about high-level research, AI and the strategies of soccer. The robots are represented in the simulator as small circles; they are not a real robot. In this league the main focus is on the movements of the robots on the field, the cooperation and strategy in a multi-agent system.
The 3d Simulation League is supposed to be a kind of bridge between the 2d Simulation League and real soccer robot leagues. In the 3d Simulation League we use humanoid robots as a model. We use a model inspired by the Nao robot. In the 3d Simulation League we have 11 vs 11 robots – that is different to the real robot leagues, which have fewer players.
The teams have two main challenges. They must use high-level AI like multi-agent coordination and strategies, as in the 2d simulation. But, they also need to control their robots on a low level. They need to control each joint, and each motor that is responsible for each joint. We have a robot with 25 joints, so there are 25 independent motors to be controlled as for a real humanoid robot. So, the same problems there are with controlling a real humanoid robot, you have in the simulation. So, there are both challenges presented in the league: the high-level AI challenge and the low-level hardware control challenge.
One of the main goals of this league is to investigate what kind of developments in AI can be used in humanoid robots.
Yes, during our history, some teams have released their base code. At the moment we have two good base codes available that work in our simulation. One of these is from Team UT Austin Villa from USA and the other from Team magmaOffenburg from Germany.
The first code uses C++ and the second uses Java, so are options for people depending on which language they prefer. Even if you want to use another language, you can use the base code to get ideas. You can use any programming language to build your team.
It’s not a rule to share the code, but we do suggest that they do. Teams that have had good performance release base codes. UT Austin Villa (the league champions eight times in the last nine competitions) and magmaOffenburg (runners up for the last three years) are very good teams, and they always release their base code. This means that new teams that join can get off to a good start.
Actually, this year, we developed a set of four tutorial sessions. These are publicly available. Each session is about two hours long and we teach and demonstrate step-by-step what a new team needs to do to start from scratch. They can find out how to set up the simulator, how to use the base codes.
Here are the links to the tutorials:
3D Simulator complete setup
3D Simulator: running in containers
mamgaOffenburg’s new base code Release
Creating a new team using UT Austin Villa’s base code
This year we had a new team from South Africa. Also, we had some teams return to the competition after a break of a few years.
For the simulation leagues the impact is not so high, because we can run the simulators and livestream the matches on YouTube. Teams and spectators can watch the matches on these livestreams and follow the event.
In terms of the rules, we did not need to change anything about that aspect of the competition. We can use the same rules and the same simulator.
In addition to the matches, at our event we hold meetings between the teams, where we discuss the technical points of the league. This year we will do this virtually. The main thing we are lacking at the moment is the interaction between people. When the competition is held physically there is more of an interaction between the teams and they can share knowledge and experience.
Every year we make changes to the simulator and to the rules, to foster the development of the league and to promote more challenging games for the teams.
For this year, we have changed how we treat fouls in the game. In previous years, everytime a player was charged by some types of foul, such as touching, the player was transported off the field. However, this was bad for fouls that were generated as a result of the limitations of the simulator. For example, you have a kind of foul called touching that occurs when lots of players are too close to each other. This leads to lots of collisions – too many to be processed by the physics underlying the simulator. And, if you want to run the simulator using a single computer, as we do, then we cannot deal with lots of collisions.
In the past, to deal with this, when a player approached a group of two players together, this player was beamed off the field. Now, we’ve changed this so that the approaching player isn’t beamed off the field, rather they are beamed to a safe distance, but still nearby.
We’ve also created a new challenge to try and close the gap between the 2d and 3d simulation leagues. We’ve added software (like that used in the 2d league) that can understand commands like “kick” and can translate each to a real movement in the simulator and perform a perfect kick. We want to know how the 3d robots work with this. It’s a challenge that will be played by the teams this year. I think this is the main research innovation in the league this year.
The Humanoid League are running their competition on a new simulator that has been customised for them. We will be following this closely. We have plans to change our current simulator to a more robust simulator. If it works well, one option could be to move to the simulator they are using. This would move us closer to the physical leagues.
I’ve been an executive member for a long time and I’ve always tried to understand the role of each league and how they fit with the overall RoboCup goals. As executives we must always have in mind what the contribution of our league is to the global RoboCup federation. We must always be paying attention to how our league interacts with other leagues.
This year, in the 3d Simulation League, we have 12 teams.
We have a preliminary round where we draw teams in two groups of six teams. They play against each other inside the groups. This is just a seeding round to generate equal strength groups for the first round.
Round one is the first round that counts towards the classification. In this round, the teams play against each other in their groups and the one team is knocked out from each group.
In round two there are two groups of five teams. Once again they all play against each other and the two lowest ranked teams are knocked out.
In round three there are two groups of four teams. The top two teams from each of these groups qualify for the semi-finals. Then, the winners of these semi-finals contest the final.
For the teams that were knocked out earlier in the competition, they play an extra round to determine their ranking. This gives the teams the chance to play more matches and helps them to develop and get more involved in the league.
Yes, our main competition will happen from 24-27 June. We will also have some additional challenges on 23 June.
The teams will be able to change their codes throughout the competition. They can work, often through the night, to update and make any modifications. The new code needs to be sent to the organising committee at least 30 minutes before the beginning of the next round. In the past we’ve seen that some teams improve massively during the competition.