Soccer Simulation Demo 2021 - Issues and questions

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

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,

GJH_team

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!
Felipe.

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.

Regards,
Felipe.

If anyone is looking for the meeting link for the Q&A: https://meet.google.com/zqt-ircp-oan

Regards,
David

Hello @Zvono,

the code @adrianmatejov spoke of is available on GitHub (https://github.com/RoboCupJuniorTC/rcj-soccer-sim-tournament-utils) 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,
David

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: https://github.com/RoboCupJuniorTC/rcj-soccer-sim/pull/82)
  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: https://github.com/RoboCupJuniorTC/rcj-soccer-sim/pull/84)

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 https://robocupjuniortc.github.io/rcj-soccer-sim/how_to/

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

Adrian

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 robot3.py, all of the robots, not just robot3, stopped moving. Additionally, when we edited the code in robot1.py and robot2.py, 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:

https://drive.google.com/drive/folders/1SWcilGJeMwMDShFlEagDM_RcQP_0RoRg?usp=sharing

Thank you!

Thomas

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 (https://github.com/RoboCupJuniorTC/rcj-soccer-sim/pull/88)

  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) – https://github.com/RoboCupJuniorTC/rcj-soccer-sim/pull/89

  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!

Adrian

Dear teams,

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

Thanks!
Felipe.

2 Likes

Hello @adrianmatejov

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

https://git.tfacademy.ca/leo.w/ball_moving_fix/-/raw/master/patch.diff

Regards,
Leo
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.

2 Likes

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:

https://robocupjuniortc.github.io/rcj-soccer-sim/

Cheers!
Felipe.

Hello everyone,

To follow-up on @Felipe’s announcement, more information on how to register can be found on the link below:

https://robocupjuniortc.github.io/rcj-soccer-sim/registration/

Thanks!

– Marek

Hi,

My team has found an interesting and funny ending scene when one of their simulation finished:

image

Since this was just the finishing scene of a simulation, we only can assume that until a replacement to a neutral spot would not happen for any other reason, the traveling robot probably would be trapped on the top of the other robot (having a nice panoramic overview of the field and conserving some fuel though :smiley: ). This issue seems to be extremely rare (has only occurred once that we managed to notice), so probably the issue’s severity is quite low.

Anyway, as a nice to have bug fix solution, maybe the referee.utils is_outside(x, z) should be extended by a 3rd dimension? Like is_outside(x, z, y)?

Best regards,
Robert

1 Like

Thanks @rlaszlo, that’s a very nice bug report!

It seems we won’t make it to a hotfix but we’ll try to clean it up after the craziness of the June competition passes.

Thanks again!

1 Like