Soccer Simulation Demo 2021 - Issues and questions

Hello, everyone.

It seems that the behavior reported by @thomastseng0380, @Leo and @Zvono points to the same issue. Thanks to all of you for reporting the problem, and special thanks to @Leo and Jerry for their excellent report with the videos!

After investigating the problem, we identified a bug in the script we used to automate the simulation process. Indeed, robot 2 from the Yellow team was pointing to the wrong code. In this particular case, because of the way we changed team sides, all teams played with Yellow in one half of each match, which means that there was some balance at the end.

We are going to invite all teams to a meeting in the next few weeks, in which we plan to explain how we ran the competition and collect feedback and suggestions from all of you.

I must point out that we cannot re-run matches now, as mentioned before. Identifying problems and solving them before the actual competition in June is one of the goals of this Demo Competition, and you are contributing a lot!

Thanks again for your collaboration and understanding!

On behalf of the RCJ Soccer TC and RCJ Soccer Simulation OC.

1 Like


We found an interesting moment when the ball apparently left the field, and a few seconds later one of the teams got a goal scored. The screenshot shows the match and the time when this happened.

This is rather kind of funny, and probably earns just a low priority as a very rare issue. Maybe RCJSoccerReferee.check_progress() could check if the ball’s coordinates are out of the field, and if so, just mark it as lack of progress for the ball (before the ball reach check_goal() 's GOAL_X_LIMIT thresholds). To make the referee code absolute fool safe, the same check could run for all robots as well, because if any of the robots would somehow get out of the field, it would not have the chance to get back unless for lack of progress.

Best regards,

1 Like

Thanks @rlaszlo for reminding us of this, I have created an issue ( on the GitHub repository, most likely solution is to reset the ball as you suggested but maybe also to increase the tick rate so the ball cannot pass through the wall in one tick and thus avoid collision detection.
Best Regards,

1 Like

@thomastseng0380 you were affected by the bug mentioned below, my apologies for looking in the wrong place first when investigating.
Best Regards,

Hello all,

Firstly, we understand that this is a demo competition, and that there is only so much time the TC/OC has allocated for this demo.

However, that does not nullify the time and effort spent by teams preparing for this competition. Since the rules/game are likely to change substantially for the non-demo, it’d be nice to get to see our robots playing real matches in which all robots are functional.

Considering how differently teams approached strategy, it affected all teams in a different way. A team that statically assigned a goalkeeper role to the Y2 robot would be in a significant disadvantage. Strategies (like the one that we built) that dynamically switch robots are essentially punished, since they rely on the fact that every robot is doing its job, otherwise certain positions are not covered, and all robots are severely handicapped in their decision making by assuming that all robots are functional, while in reality one is not.

While its is our opinion that the finals should be re-matched (the results in the group phase were pretty significant in margin, this would also be a lower workload for the TC/OC). We understand that the TC/OC does not wish to rematch games, and respect that.

Once again, thank you for bringing robocup to us, the students, despite the crisis,


1 Like

@Zvono We will release all of the submissions so you can easily download them and run your code against any team on your machine. Stay tuned! :slight_smile:

Dear teams,

During the meeting on Sunday (7th of March 2021) we will use the tool below to collect questions. You can already enter your questions and vote for the ones you find interesting!

We hope to talk to you on Sunday!

Hello @Felipe,

Will the meeting be recorded either in Word form or video form? Because of time zone issues, we may not be able to actively participate during the meeting time.

Thank you!

Sincerely, Thomas

Hi, @thomastseng0380.

We will have the same meeting in two different moments, as explained in the e-mail invitation. You can participate in either one. In any case, we will try to record the meeting to make it available to those that are not able to attend.


If anyone is looking for the meeting link for the Q&A:


Hello @Zvono,

the code @adrianmatejov spoke of is available on GitHub ( now if you want to try to re-run any matches. We will try and improve documentation (Questions welcome, Pull Requests even more welcome) for you to be able to run the code, our main focus will be on making improvements for the June tournament however so issues specific to running old code again you will have to overcome on your own. If you fix any bugs on the way or document the process so that other teams can do the same we will of course happily merge and publish that work.

Best Regards,

Hello everyone!

During this week we managed to fix a couple of issues in the simulator.

  1. If the robot or the ball leaves the field, lack of progress will be called immediately. (Related PR:
  2. In case of lack of progress, picking nearest neutral spot has been made non-deterministic. We now pick 3 nearest spots and choose randomly from one of them where the ball is going to be placed. (Related PR:

One more bug I found during testing is that the ball was always being put to the center neutral spot after lack of progress. That is now fixed within point 2.

If you find more bugs, please report them, so we can fix it as soon as possible.

1 Like

Hello again!

We have changed the structure of robot controller folders. From now on, there are just two folders, one for blue team and the second one for yellow team.
It is now easier to import shared code between robots and you don’t have to use “path” hacks to do so. Check the docs here

If you have further questions, do not hesitate to ask.


1 Like

Hello @adrianmatejov,

After downloading the updated code (with the new rules and fixes) from Github, we noticed quite a few problems that appear in the simulation.

Firstly, the robots all seem to run the same program. When we changed both of the motor speeds from left_speed and right_speed to 0 in, all of the robots, not just robot3, stopped moving. Additionally, when we edited the code in and, the changes do not seem to have any effect on the robot as robot1 and robot2 continue to run robot3’s code. We are assuming that this problem could have something to do with the new structure of the robot controller folders.

Secondly, since the simulation runs pretty slowly at regular speed, when we do testing, we usually press the Run as fast as possible button. However, not only do all of the robots run at a much faster speed compared to before the demo competition when the original code was being used (which may not really be a problem), the match time does not speed up as it should be doing. Previously, if the simulation was run at double its original speed, the match time would also change at double its original speed. However, now, when the simulation is run at 7 times its original speed, the match time only runs at its original speed.

Thirdly, when the robots do not move at all, the ball moves automatically. Previously, this issue wasn’t as significant, but now, it ball does move quite a bit (having some velocity) without having any contact with the robots at the beginning of the match.

Lastly, we would like to readdress the issue of the robots slowing down. After having the opportunity to run the simulation with our robots playing against other robots (teams from the demo competition), we realized that the issue of the robots slowing down did not only occur for our robots. However, the slowing down of robots varied in degree in different matches (by chance) and on different teams, and worsens as the match lengthens (usually doesn’t occur in the first few minutes). This does affect the result of the simulation since the ball, quite strangely, does not appear to be slowing down. On a side note, when recording a video using the Record Button in Webots, even though the robots still slow down, it is not obvious in the recorded videos. So we do not think, as previously mentioned, that this issue is intrinsic to our code, and would like to know if other teams are experiencing the same problem and if the problem has something to do with the system itself.

Videos regarding these issues could be found with the link below:

Thank you!


1 Like

@thomastseng0380 Thanks for reporting the issues.

  1. The first problem (robots running the same code) is my fail :man_facepalming:, the fix is on its way to be merged soon (

  2. Created the pull request for this to make supervisor synchronous (note we made robots run asynchronously, so if one robot enters infinite loop, it won’t stuck other robots) –

  3. Yeah, when robots are not moving, the ball moves just a bit. I’ll play with it and try to fix it if possible, but at first it looks like a Webots issue.

  4. Regarding robots slowing down. Not sure what could be causing this. It might be that the code is inefficient, storing more and more data, which could cause the computation to be slower and slower. We will investigate this. Please, let us know if you happen to find the reason why robots slow down during the game :slight_smile:

Thanks again!


Dear teams,

We need your help to test some changes in the simulator. Please, check out this thread:



Hello @adrianmatejov

For question 3, we found a workaround, the patch file is located at

Junior Robotics TFA

1 Like

@Leo Thanks. Could you please create a pull request with your fix to our repository? :slight_smile:

However, this is still a workaround and I’ll most probably create an issue in Webots repository.

@adrianmatejov I have created a pull request on the repository with the fix.


Hey, SoccerSim teams!

I am posting on this thread to try to reach more people.

After a successful Demo competition in February, the next event will be the official Qualification Tournaments in May 2021, open for participation to any team that would like to register.

  • Qualification Registration deadline: May 17’th 2021
  • Qualification Code submission deadline: May 24’th 2021

For more information, check out the link below: