RoboCup 2021
This is the GameController that will be used for the Passing Challenge and 1vs1 Challenge at RoboCup 2021.
RoboCupGameControlData
Format
The overall message format is still the same as 2019, however some macros have been added/removed/redefined.
The changes with respect to the 2019 release are:
GAMECONTROLLER_STRUCT_VERSION
increased from12
to13
COMPETITION_TYPE_MIXEDTEAM
removedCOMPETITION_TYPE_1VS1
addedCOMPETITION_TYPE_PASSING_CHALLENGE
addedSET_PLAY_GOAL_FREE_KICK
renamed toSET_PLAY_GOAL_KICK
SET_PLAY_PENALTY_KICK
addedPENALTY_SPL_KICK_OFF_GOAL
removed- this changed some of the other penalty macro values
PENALTY_SPL_ILLEGAL_DEFENDER
renamed toPENALTY_SPL_ILLEGAL_POSITION
PENALTY_SPL_ILLEGAL_POSITIONING
renamed toPENALTY_SPL_ILLEGAL_POSITION_IN_SET
- In 1vs1 games (
RoboCupGameControlData::competitionType == COMPETITION_TYPE_1VS1
),TeamInfo::penaltyShot
indicates whether the team used autonomous calibration (=1
) and therefore gets the1.5
score multiplier or not (=0
). This was done in order to avoid makingscore
afloat
because that would have broken the alignment and binary compatibility.
For those who already had adapted to the 2020 version (which was never officially released), the only changes are:
COMPETITION_TYPE_GENERAL_PENALTY_KICK
removedCOMPETITION_TYPE_1VS1
addedCOMPETITION_TYPE_PASSING_CHALLENGE
added- In 1vs1 games (
RoboCupGameControlData::competitionType == COMPETITION_TYPE_1VS1
),TeamInfo::penaltyShot
indicates whether the team used autonomous calibration (=1
) and therefore gets the1.5
score multiplier or not (=0
). This was done in order to avoid makingscore
afloat
because that would have broken the alignment and binary compatibility.
In particular, the version number has not been increased again!
Passing Challenge
The Passing Challenge mode allows to select one team, the other team is automatically set to "Invisibles" and the corresponding panel in the main screen is empty. Since the robots are already put on their starting positions, there is no ready phase, instead it is possible to switch to set immediately. From then on, the game is started as usual with the "Playing" button (the signal is still delayed by 15 seconds). The "+" button in the top left corner can be used to count passes; it does not switch the game state. The referee still needs to manually track the 30 second limit for leaving the red zone.
1vs1
In the start screen, besides selecting both teams, you have to select the checkbox "Uses Autonomous Calibration" below the respective team(s). This way, the GameController calculates and displays the adjusted score.
The main screen displays only the penalties that are possible in this competition. The "Global Game Stuck" button is centered because Global Game Stuck is not called on a specific team in this competition. The "+" button which normally awards a goal only increases the score; the game state is not changed.
The number in parentheses next to the robot name indicates the number of hardware penalties (fallen/inactive and request for pick-up) the robot has left. After more than 3 hardware-related penalties (e.g. on the fourth penalty), the robot is ejected, i.e. its penalty never ends.
Due to the rule that 1vs1 games must always have a winner, the "Finish" button is disabled during the last 10 seconds of the second half if the score is equal. Instead the "+" button next to the remaining time becomes available to extend the game by one minute. After five extensions, the "Finish" button stays available because the rules demand a coin toss then.
Because the team colors depend on the hosting arena and not on the teams playing, the configuration files in this release do not specify team colors. I would advise teams not to rely on TeamInfo::teamColour
because every seen robot is an opponent. Still, in order to disambiguate communication between the GameController operator and head referee, it is advantageous for the hosting teams to set their jersey colors in their local copy of the GameController. The relevant file is config/spl_1vs1/teams.cfg
in the binary release (in the source code it is located under resources
). In each line, you should append ,<home color>,<away color>
. Then the left team will always have your home jersey color preselected and the right team the away color.