Skip to content

Commit

Permalink
Minor fixes and updates (#35)
Browse files Browse the repository at this point in the history
* Clarification of robot substitution when putting robots in

It is possible to temporally exceed the number of robots now,
e.g. through yellow cards.
The 'any time' should be related to putting robots in.

* Reset timer on event only for Defender Too Close To Ball

This makes it easier to handle in the autoRefs and GC and should
not make a significant difference in practice.

* Fix a spelling mistake

* Add the possible goal event to the appendix

* Add missing link to free kick section

* Update game event tables in appendix

* Keeper held ball event is triggered by GC
  • Loading branch information
g3force committed Jul 29, 2020
1 parent 1a94bb7 commit d836365
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 29 deletions.
66 changes: 42 additions & 24 deletions chapters/appendix.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,18 @@
=== Ball Manipulation
Shooting and <<Dribbling Device, dribbling>> is considered as manipulating the ball, the ball accidentally bouncing off the hull is not.


[appendix]
== Game Event Table
The game event table is a compilation of the different game events and their consequences. It also lists what all <<Automatic Referee>> implementations must be capable of handling.

NOTE: Note that the information shown in this table here is incomplete. Please read the sections of the respective events for the full definitions.

=== Events For Match Proceeding
|===
| Event | Applicability | Command | Handled By

| Prepared | during <<Kick-Off>>, <<Penalty Kick>> | <<Normal Start>> | auto referee
| <<Ball Placement>> failed by team in favor | during <<Ball Placement>> | <<Stop>> -> <<Free Kick>> (div A) / previous command (div B) | auto referee
| <<Ball Placement>> failed by opponent | during <<Ball Placement>> | <<Stop>> | auto referee
| <<Ball Placement>> successful | during <<Ball Placement>> | continue | auto referee
| <<Robot Substitution>> Intent | always | <<Halt>> (after next stoppage), then <<Stop>> | game controller
| <<Number Of Robots>> exceeded | always | <<Stop>> | auto referee
|===


=== Events For Ball Leaving The Field
|===
| Event | Applicability | Command | Handled By

| <<Throw-In>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee
| <<Goal Kick>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee
| <<Corner Kick>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee
| <<Touch Line Crossing>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee
| <<Goal Line Crossing>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee
| <<aimless-kick, Aimless Kick>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee
|===

Expand All @@ -38,8 +23,9 @@ NOTE: Note that the information shown in this table here is incomplete. Please r
|===
| Event | Applicability | Command | Handled By

| <<Scoring Goals, Goal>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Kick-Off>> | (auto referee) footnote:[the game controller operator has to continue the game]
| <<Scoring Goals, Invalid Goal>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee
| <<Scoring Goals, Possible Goal>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Kick-Off>> | auto referee
| <<Scoring Goals, Goal>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Kick-Off>> | referee -> game controller
| <<Scoring Goals, Invalid Goal>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | game controller
|===


Expand All @@ -64,13 +50,14 @@ All <<Stopping Fouls>> result in:
| Event | Applicability | Action | Handled By

| <<Robot Too Close To Opponent Defense Area>> | during <<Stop>> and <<Free Kick>> | <<Stop>> -> <<Free Kick>> | auto referee
| <<Pushing>> | always | <<Stop>> -> <<Free Kick>> | referee -> game controller
| <<Ball Holding>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | referee -> game controller
| <<Tipping Over Or Dropping Parts>> | always | <<Stop>> -> <<Free Kick>> | referee -> game controller
| <<Multiple Defenders>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Penalty Kick>> | auto referee
| <<Boundary Crossing>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee
| <<Keeper Held Ball>> in <<Defense Area, defense area>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee
| <<Keeper Held Ball>> in <<Defense Area, defense area>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | game controller
| <<Excessive Dribbling>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee

| <<Pushing>> | always | <<Stop>> -> <<Free Kick>> | referee -> game controller
| <<Ball Holding>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | referee -> game controller
| <<Tipping Over Or Dropping Parts>> | always | <<Stop>> -> <<Free Kick>> | referee -> game controller
|===


Expand Down Expand Up @@ -100,12 +87,43 @@ All <<Fouls While Ball Out Of Play>> result in:
|===
| Event | Applicability | Action | Handled By

| <<Defender Too Close To Ball>> | <<Ball In And Out Of Play, ball out of play>> | - | auto referee
| <<Defender Too Close To Ball>> | <<Ball In And Out Of Play, ball out of play>> | timer for bringing the ball into play is reset | auto referee
| <<Robot Stop Speed>> | during <<Stop>> | - | auto referee
| <<Ball Placement Interference>> | during <<Ball Placement>> | placement timer increased by 10 seconds | auto referee
|===


=== Events For Scoring Goals
|===
| Event | Applicability | Command | Handled By

| <<Scoring Goals, Possible Goal>> | <<Ball In And Out Of Play, ball in play>> | <<Halt>> | auto referee
| <<Scoring Goals, Goal>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Kick-Off>> | referee -> game controller
| <<Scoring Goals, Invalid Goal>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | game controller
|===


=== Other events

|===
| Event | Applicability | Command | Handled By

| <<Double Touch>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Free Kick>> | auto referee
| <<Ball Placement>> successful | during <<Ball Placement>> | continue | auto referee
| <<Penalty Kick>> failed | during <<Penalty Kick>> | <<Stop>> -> <<Free Kick>> | auto referee, game controller

| <<No Progress In Game>> | <<Ball In And Out Of Play, ball in play>> | <<Stop>> -> <<Force Start>> | game controller
| <<Ball Placement>> failed by team in favor | during <<Ball Placement>> | <<Stop>> -> <<Free Kick>> (div A) / previous command (div B) | game controller
| <<Ball Placement>> failed by opponent | during <<Ball Placement>> | <<Stop>> | game controller
| Multiple <<Fouls>> | always | <<Yellow Card>> | game controller
| Multiple <<Yellow Card, Yellow Cards>> | always | <<Red Card>> | game controller
| <<Robot Substitution>> Intent | always | <<Halt>> (after next stoppage), then <<Stop>> | game controller
| <<Number Of Robots>> exceeded | always | <<Stop>> | game controller

| <<Unsporting Behavior>> | always | <<Stop>> -> <<Yellow Card>>, <<Red Card>>, <<Penalty Kick>>, <<Forced Forfeit>> or <<Disqualification>> | referee -> game controller
|===


[appendix]
== Overview of Timings
|===
Expand Down
2 changes: 1 addition & 1 deletion chapters/offenses.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ NOTE: If a robot keeps committing a foul, it will be punished again after the gr

===== Defender Too Close To Ball
A robot's distance to the ball must be at least 0.5 meters during an opponent <<Kick-Off, kick-off>> or <<Free Kick, free kick>>.
While the foul is being committed, the timer of the opponent team for bringing the ball into play is reset.
When the foul is committed, the timer of the opponent team for bringing the ball into play is reset.

The <<Referee, human referee>> may decide to repeat the <<Kick-Off, kick-off>> or <<Free Kick, free kick>> on significant disturbances.

Expand Down
2 changes: 1 addition & 1 deletion chapters/playingenvironment.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ Besides the shared vision equipment, teams are not allowed to mount their own ca
A game is controlled by the community-maintained ssl-game-controller (https://github.com/RoboCup-SSL/ssl-game-controller).
It is operated by the <<Game Controller Operator, game controller operator>>. The software translates decisions of the <<Referee, referee>> and the <<Automatic Referee, automatic referee>> into Ethernet communication signals that are broadcast to the network. It maintains the state of the game, tracks all events and acts as a proxy between all participating parties in the game.

The game-controller has a network interface for the playing teams. They can automatically <<Choosing Keeper Id, change their keeper id>> and they can signal a robot substitution intent for the next opportunity.
The game controller has a network interface for the playing teams. They can automatically <<Choosing Keeper Id, change their keeper id>> and they can signal a robot substitution intent for the next opportunity.

==== Automatic Referee
One or more automatic referee applications can supervise a game and report <<Offenses, offenses>> to the <<Game Controller, game controller>>.
Expand Down
4 changes: 2 additions & 2 deletions chapters/refereecommands.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ A ball is considered placed successfully by the robots if

No further commands will be issued by the <<Game Controller, game controller>> until the automatic placement is complete.
The game will be continued by the <<Game Controller, game controller>> as soon as the ball is successfully placed, but not earlier than 2 seconds after the ball placement command has been issued.
A failed placement will result in a free kick for the opposing team.
A failed placement will result in a <<Free Kick, free kick>> for the opposing team.
If this team failed to place the ball as well, the ball is placed by the <<Referee, referee>> and game continues with the original command.

For each team a ball placement failure counter is incremented on each placement failure and decremented for successful placements. It can not get negative.
Expand Down Expand Up @@ -113,7 +113,7 @@ When the free kick command is issued, robots of the attacking team are allowed t
When the ball is <<Ball In And Out Of Play, in play>>, the kicker may not touch the ball until it has been touched by another robot or the game has been stopped (see <<Double Touch, double touch>>). Also, the restrictions regarding the robot positions are lifted.

.Usage
free kicks are used to restart the game after a <<Fouls, foul>> has occurred. Additionally, <<Goal Kick, goal kicks>> and <<Corner Kick, corner kicks>> are mapped to free kicks.
Free kicks are used to restart the game after a <<Fouls, foul>> has occurred. Additionally, <<Goal Kick, goal kicks>> and <<Corner Kick, corner kicks>> are mapped to free kicks.

==== Force Start
.Definition
Expand Down
2 changes: 1 addition & 1 deletion chapters/substitution.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Additionally, robots can be taken out from any position during <<Stopping The Ga
. When both teams finished the robot substitution, the <<Referee, referee>> informs the <<Game Controller Operator, game controller operator>>.
. The <<Game Controller Operator, game controller operator>> performs a <<Stop, stop>> followed by continuing the game.

The maximum allowed number of robots of the team on the field must not be exceeded at any time.
The maximum allowed number of robots of the team on the field must not be exceeded at any time when putting robots in.

.Usage
Robots can be substituted for any reason. There is no limit on the number of substitutions.
Expand Down

0 comments on commit d836365

Please sign in to comment.