Skip to content

Latest commit

 

History

History
173 lines (138 loc) · 8.18 KB

appendix.adoc

File metadata and controls

173 lines (138 loc) · 8.18 KB

Appendix A: Terminology

Ball Manipulation

Shooting and dribbling is considered as manipulating the ball, the ball accidentally bouncing off the hull is not.

Appendix B: Game States

@startuml
state Halted {
    state Halt {
    }
    state Timeout {
    }
}

state Stopped {
    state Stop {
    }
    state BallPlacement {
    }
    state PrepareKickoff {
    }
    state PreparePenalty {
    }
}

state Running {
    state Run {
    }
    state FreeKick {
    }
    state Kickoff {
    }
    state Penalty {
    }
}

Halt: Robots are not allowed to move
Timeout: Both teams can do what ever they want
Stop: Both teams have to keep distance to the ball
PrepareKickoff: Teams have to move to their sides
BallPlacement: One team places the ball,\nthe other keeps distance to ball
PreparePenalty: Keeper on goal line,\nattacker behind ball,\nother robots on legal positions
Kickoff: One team may kick the ball\nwithin 5 (A) or 10 (B) seconds
FreeKick: One team may kick the ball\nwithin 5 (A) or 10 (B) seconds
Penalty: Execute a penalty kick within 10 seconds
Run: Both teams may manipulate the ball

[*] -> Halt: (from any state) Halt

Halt --> Stop: Stop
Stop --> Timeout: Timeout
Timeout --> Stop: Stop

Stop --> BallPlacement: Ball Placement
BallPlacement --> Stop: Stop
BallPlacement --> FreeKick: Continue

Stop --> PrepareKickoff: PrepareKickoff
PrepareKickoff --> Kickoff: NormalStart
Kickoff --> Run: after x seconds or if ball moved

Stop --> FreeKick: FreeKick
FreeKick --> Run: after x seconds or if ball moved

Stop --> Run: ForceStart

Stop --> PreparePenalty: PreparePenalty
PreparePenalty --> Penalty: NormalStart
Penalty --> Stop: after 10 seconds

Run --> Stop: Stop
@enduml

Appendix C: Game Events

The following 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
The information shown in this table here may be incomplete. Please read the sections of the respective events for the full definitions.
Event Applicability Consequence Increments Foul Counter Initiated By

While Match is Running

NO_PROGRESS_IN_GAME

ball in play

[Stop][Force Start]

no

game controller

ATTACKER_DOUBLE_TOUCHED_BALL

ball in play

[Stop][Free Kick]

no

auto referee

Ball Leaving the Field

POSSIBLE_GOAL

ball in play

[Halt]

no

auto referee

BALL_LEFT_FIELD_TOUCH_LINE

ball in play

[Stop][Free Kick]

no

auto referee

BALL_LEFT_FIELD_GOAL_LINE

ball in play

[Stop][Free Kick]

no

auto referee

AIMLESS_KICK

ball in play

[Stop][Free Kick]

no

auto referee

Fouls

DEFENDER_IN_DEFENSE_AREA

ball in play

[Stop][Penalty Kick]

no

auto referee

KEEPER_HELD_BALL

ball in play

[Stop][Free Kick]

yes

game controller

BOUNDARY_CROSSING

ball in play

[Stop][Free Kick]

yes

auto referee

BOT_DRIBBLED_BALL_TOO_FAR

ball in play

[Stop][Free Kick]

yes

auto referee

ATTACKER_TOUCHED_BALL_IN_DEFENSE_AREA

ball in play

-

yes

auto referee

BOT_KICKED_BALL_TOO_FAST

ball in play

-

yes

auto referee

Penalty Kick

PENALTY_KICK_FAILED

during [Penalty Kick]

[Stop][Free Kick]

no

auto referee, game controller

Always

BOT_CRASH_UNIQUE

always

-

yes

auto referee

BOT_CRASH_DRAWN

always

-

yes

auto referee

During Free Kick and While Match is Stop

ATTACKER_TOO_CLOSE_TO_DEFENSE_AREA

during [Stop] and [Free Kick]

[Stop][Free Kick]

yes

auto referee

While Match is Stopped

Fouls

BOT_TOO_FAST_IN_STOP

during [Stop]

-

yes

auto referee

DEFENDER_TOO_CLOSE_TO_KICK_POINT

ball out of play

timer for bringing the ball into play is reset

yes

auto referee

Ball Placement

BOT_INTERFERED_PLACEMENT

during [Ball Placement]

placement timer increased by 10 seconds

yes

auto referee

PLACEMENT_SUCCEEDED

during [Ball Placement]

continue

no

auto referee

PLACEMENT_FAILED by team in favor

during [Ball Placement]

[Stop][Free Kick] (div A) / previous command (div B)

no

game controller

PLACEMENT_FAILED by opponent

during [Ball Placement]

[Stop]

no

game controller

Informational

MULTIPLE_FOULS

-

[Yellow Card]

no

game controller

MULTIPLE_CARDS

-

[Red Card]

no

game controller

TOO_MANY_ROBOTS

-

[Stop]

no

game controller

INVALID_GOAL

-

[Stop][Free Kick]

no

game controller

BOT_SUBSTITUTION

during [Stop]

[Halt] (after next stoppage), then [Stop]

no

remote control

CHALLENGE_FLAG

always

-

no

remote control

EMERGENCY_STOP

always

[Halt]Timeout + [Yellow Card]

no

remote control

Manual

GOAL

-

[Stop][Kick-Off]

no

human referee

BOT_PUSHED_BOT

always

[Stop][Free Kick]

yes

human referee

BOT_HELD_BALL_DELIBERATELY

ball in play

[Stop][Free Kick]

yes

human referee

BOT_TIPPED_OVER

always

[Stop][Free Kick]

yes

human referee

UNSPORTING_BEHAVIOR_MINOR

always

[Stop][Yellow Card]

no

human referee

UNSPORTING_BEHAVIOR_MAJOR

always

[Stop][Red Card]

no

human referee

A visualized graph of the game events is stored as graphml and can be viewed at yed-live.

Appendix D: Overview of Timings

Situation Div A Time Div B Time

Remove robot for [Yellow Card]

10 s

10 s

penalty kick

10 s

10 s

kick-off

10 s

10 s

free kick

5 s

10 s

[Keeper Held Ball] inside [Defense Area]

5 s

10 s

[No Progress In Game]

5 s

10 s

Appendix E: Differences Between Divisions

This is a complete list of differences between division A and division B.

  • Division A plays on a larger field with larger goals than division B. As a result, a penalty kick is taken from a greater distance as well.

  • Division A plays with more robots than division B.

  • The automatic ball placement procedure is mandatory for division A and optional for division B.

  • The aimless kick rule only applies to division B.

  • Division A has shorter timeouts in some situations.