RoboCup-SSL / ssl-rules

Official RoboCup Small Size League Rule Book
https://robocup-ssl.github.io/ssl-rules/
GNU General Public License v3.0
12 stars 13 forks source link

Possible Stuck Game due to blocked Robot Substitution #72

Closed mickmack1213 closed 5 months ago

mickmack1213 commented 5 months ago

Take a look at the following Situation:

screenshot_2024-02-03_07-55-07

There is a direct Free Kick happening and the Ball is already placed correctly, but Yellow just gathered it's second yellow card with the foul, and therefore wants to remove it's robot automatically.

Sadly our AI confirms perfectly to the rules:

Robots can always be taken in and out during game play without notifying the referee if all the following conditions are met:

  1. The robot is at least partially inside the field margin.

  2. The robot is at a distance from the halfway line that must not exceed 1 meter.

  3. The ball must be at least 2 meters away from the halfway line.

It is therefore not allowed to remove the robot, as the ball is too close to the middle line. I want to point out, this problem will most likely never arise in a real world game, as there is a human ref overlooking the game, but still I feel like it's a bug in the rules that can be fixed rather easily.

I can think of 3 different solutions:

  1. Remove the constrictions for removing a robot, (maybe only while Stop)
  2. Allow to continue playing with too many robots on the field
  3. Automatically trigger a robot substitution if one team has too many robots and it's a STOP.

I personally think, triggering a robot substitution is the best solution, as this will also help with other situations that can cause confusion in tournaments: The game is stopped, one team has too many robots, and no one realizes why the game is not continuing. Especially with inexperienced GCOs, Refs and Teams this can happen rather often.

g3force commented 5 months ago

(1) is addressed in #73 (this was already planned anyways)

(3) Should already be the case. The GC will automatically set the substitution flag for corresponding teams, when there are too many robots.