RoboCup-SPL / Rules

Public version of the SPL rules
5 stars 2 forks source link

Add game state between "initial" and "ready" #152

Closed roefer closed 1 month ago

roefer commented 2 months ago

According to the new rules, the referee signals the beginning of the game with a gesture. While we managed to implement this feature and it always worked at the RoboCup German Open 2024, it makes the phase before the game more complicated. The problem is that if teams place their robots early on the field, they risk that the robots might detect a false gesture by accident, e.g. if someone is setting up a camera on a very long tripod right a the halfway line, lifting up both arms in the process, only half a meter behind the position where the referee would later show the gesture. Theoretically, teams could rely on the red gloves, but since it was already announced that they might not be used anymore in the future, it does not make sense to just integrate them for this year in the detection.

Our solution was to place the robots on the field, check whether they can see the ball, let them sit down afterwards, and letting them get up again when the referee arrives, so that they only then start to wait for the gesture. It would be lot easier, if the GameController signaled when the referee and the GameController operator are present and the game will start soon (basically a "set" state between "initial" and "ready").

With the current rules, it can happen (and it actually happened for at least one team) that the robots start moving by accident, but the referees are not yet ready to penalize them for "forbidden motion in initial". This should be avoided.

sseering commented 2 months ago

I agree and others. Others during the German Open and me thought of a similar changes. I talked to Arne Hasselring. Accoeding to him, the effort to implement it in the GameController would be not too big.

In my Idea the addition game state would be before "initial" (so teams don't have to insert an new gamestate in the middle of the gamstate-transition-code, making the new gamestate less error prone to implement?). It could be called "pre-initial" or "setup-time" or similar.

sseering commented 2 months ago

Dear Teams, a small heads up: due to feedback from the German Open we will be introducing a new GameState in the rules and GameController before the 2024 World Championship.

The new GameStatse will likely be called "Setup" and happen before the Initial in match. It gives teams time to set up on the side on the field. It will be the same as Initial (thus, easy to implement), but the robots will not be penalized for the "Motion in Initial" penalty.

We are changing the rules soon and will publish a new GameController (thanks to AH). We will notify as soon as the details are set in stone.

rvilling commented 2 months ago

Hi Stefan, are all teams subscribed to the github rules repo? I wonder if your message below should be sent directly to the participating teams (is there a mailing list?) or even just notified on discord. Best regards, Rudi


From: sseering @.> Sent: Tuesday 30 April 2024 11:29 To: RoboCup-SPL/Rules @.> Cc: Subscribed @.***> Subject: [EXTERNAL] Re: [RoboCup-SPL/Rules] Add game state between "initial" and "ready" (Issue #152)

Warning

This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.

Dear Teams, a small heads up: due to feedback from the German Open we will be introducing a new GameState in the rules and GameController before the 2024 World Championship.

The new GameStatse will likely be called "Setup" and happen before the Initial in match. It gives teams time to set up on the side on the field. It will be the same as Initial (thus, easy to implement), but the robots will not be penalized for the "Motion in Initial" penalty.

We are changing the rules soon and will publish a new GameController (thanks to AH). We will notify as soon as the details are set in stone.

— Reply to this email directly, view it on GitHubhttps://github.com/RoboCup-SPL/Rules/issues/152#issuecomment-2084939078, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA56EEXBT7NGGM5MBGCSNNDY75XBLAVCNFSM6AAAAABG27J6WOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBUHEZTSMBXHA. You are receiving this because you are subscribed to this thread.Message ID: @.***>

sseering commented 2 months ago

Hi Rudi,

the heads up notice was posted in the SPL wide discord first.

Best regards, Rudi

rvilling commented 2 months ago

[like] Rudi Villing reacted to your message:


From: sseering @.> Sent: Thursday, May 2, 2024 3:41:15 PM To: RoboCup-SPL/Rules @.> Cc: Rudi Villing @.>; Comment @.> Subject: [EXTERNAL] Re: [RoboCup-SPL/Rules] Add game state between "initial" and "ready" (Issue #152)

Warning

This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.

Hi Rudi,

the heads up notice was posted in the SPL wide discord first.

Best regards, Rudi

— Reply to this email directly, view it on GitHubhttps://github.com/RoboCup-SPL/Rules/issues/152#issuecomment-2090839665, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA56EEQ3GEGLRLR2WGIKTPTZAJNBXAVCNFSM6AAAAABG27J6WOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJQHAZTSNRWGU. You are receiving this because you commented.Message ID: @.***>

roefer commented 1 month ago

I think adding a new state before INITIAL was a bad idea. What we end up with is a new state SETUP that is basically the previous state INITIAL. The new INITIAL is what I would have called WAIT_FOR_READY. At the beginning of a half, during a timeout, before a penalty shootout, and at the beginning of technical challenges, the game is now in the state SETUP (instead of INITIAL). Only when robots actually have to look for the referee (which robots in the Challenge Shield never have to do), the state is INITIAL.

So all teams have to do a lot of renaming in their code, even if the rule that initiated these changes is not even applied in their competition.

ben47955 commented 1 month ago

You are probably right. When we discussed this internally, we didn't have strong preferences to add it before or after INITIAL. I personally don't mind to updating this, but considering the last input from another TC was like two week ago and because we are already running over time with the PR (according to Rudi), it's taking the risk of not having new state at all. So, I'm not sure what to do with that.

In the long run I think the current signal should be removed with the integration of others in-game signals, but this would be in hands of the next comities.

However, the visual referee signal apply to both CC and CS. I know it wasn't used at GO, but I hope that most CS teams will at least use this opportunity to gather data at RoboCup.

rvilling commented 1 month ago

Hi Benjamin,

As I indicated in a previous message to you, I agree with Thomas' input in this case. Just rename the states in your edits so that INITIAL reverts to the way it was before and insert the new state to wait for the ref ready signal for champions cup only seems a cleaner way to go for teams to minimize unnecessary code changes. I don't think such a change should add any extra time onto getting the PR finalized.

As a comment, I haven't had time to follow the full conversation regarding delays etc., but I would recommend keeping the changes as simple as possible. If there is a lot of discussion about a point, it is often a signal that some (possibly unnecessary) complexity is being introduced.

I doubt that CS teams will attempt visual ref if they do not need to. Mostly CS teams are busy getting their basic architecture and gameplay working well.

Best regards, Rudi


From: ben47955 @.> Sent: Monday 3 June 2024 22:51 To: RoboCup-SPL/Rules @.> Cc: Rudi Villing @.>; Comment @.> Subject: [EXTERNAL] Re: [RoboCup-SPL/Rules] Add game state between "initial" and "ready" (Issue #152)

Warning

This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.

You are probably right. When we discussed this internally, we didn't have strong preferences to add it before or after INITIAL. I personally don't mind to updating this, but considering the last input from another TC was like two week ago and because we are already running over time with the PR (according to Rudi), it's taking the risk of not having new state at all. So, I'm not sure what to do with that.

In the long run I think the current signal should be removed with the integration of others in-game signals, but this would be in hands of the next comities.

However, the visual referee signal apply to both CC and CS. I know it wasn't used at GO, but I hope that most CS teams will at least use this opportunity to gather data at RoboCup.

— Reply to this email directly, view it on GitHubhttps://github.com/RoboCup-SPL/Rules/issues/152#issuecomment-2146187306, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA56EES3J36IHTEUSKT5BSDZFTQOJAVCNFSM6AAAAABG27J6WOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBWGE4DOMZQGY. You are receiving this because you commented.Message ID: @.***>

ben47955 commented 1 month ago

I have reverted the setup and created a Visual state between initial and ready. I also explicitly stated the possibility to move the head in this state as it's kinda non-sense to ask to look for something when robots are stiffen.

ben47955 commented 1 month ago

Closing as now added to rules