Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert sentence from 740673adcfe #123

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

ahasselbring
Copy link
Member

The rewrite of this sentence in 2021 led teams to believe that transitions from finished to anything else can never happen, but they can due to the undo feature. This is exactly what the sentence was there for.

@rvilling
Copy link

"any transition possible" -- how are readers to know the possible transitions since they clearly include transitions not explicitly shown in the state machine (E.g. finished->playing or ready->playing in case of undo). Do you simply mean a transition from any to any state, or do you mean any transition shown in the state machine plus the undo (reverse traversal) of any of those transitions?

@PatrickGoettsch
Copy link
Member

Hi, I would phrase it differently: However, any transition possible should be sent by the GameController. Be aware that a transition can be reverted by the GameController operator by clicking the UNDO button.

I think that makes the situation clearer as it shows the usual transitions and makes the read aware that due to mistakes an tranition can be reverted and that they should handle this in their software.

@rvilling
Copy link

rvilling commented Jul 14, 2023 via email

@ahasselbring
Copy link
Member Author

ahasselbring commented Jul 18, 2023

I think that for a real solution all of this needs to be expressed in a different way that makes clear that the GameController generally does not report the true state of the game. The diagram is also incomplete because it doesn't show transitions from Ready/Set to Initial (timeouts), from Ready/Set to Finished (when time is over), from Finished to Initial (second half / penalty kick shoot-out), and from Finished to Set (penalty kick shoot-out). On the other hand, with those arrows the diagram would become more confusing than helpful.

by clicking the UNDO button

There is not really an undo button. I think the rule book should be agnostic of the GameController's UI.

@rvilling
Copy link

rvilling commented Jul 18, 2023 via email

@ahasselbring
Copy link
Member Author

I don't think readers would find it helpful to read that the GC does not report the true state of the game. Is it not true that it reports the state signalled by the operator except for the specified delays (playing, goal)?

It is correct from the software perspective, but there is the question if the "true" state of the game is what the referee believes the state is, or what the GameController operator has entered. Going back to the example of the GameController operator pressing Finished in the middle of a half: Is the game really in the Finished state just because the GameController operator pressed the button? From a philosophical point of view it is not, because the head referee makes decisions, and ending the half was not a decision by the head referee. On the other hand, from a practical point of view the robots can't really know better (apart from looking at the remaining time).

Another example with actual consequences is when there is a free kick and shortly after, the referee calls an illegal defender, but the GameController operator has not entered the free kick yet. What is the true game state in this situation and is the referee's decision correct?

Anyway, I think your suggestion is good.

As a final comment/question, is penalized really a primary state like the others in the figure?

No. I worked on that topic before RoboCup but didn't finish it. The current state is available here: https://github.com/RoboCup-SPL/Rules/tree/ahasselbring/future
I'm not sure if I'm going to continue to work on it, but I suggest the new TC to look into this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants