Get desktop application:
View/edit binary Protocol Buffers messages
the current advantage choice of the team the choice is valid until another choice is received if the team disconnects, the choice is reset to its default (STOP) teams may either send their current choice continuously or only on change
Used in:
stop the game
keep the game running
The AutoRefCiInput contains all packets/messages that would otherwise be received through multicast by the auto-referee It may contain either a raw or a tracked SSL-vision packet. If both are given, the implementation may choose either one.
Latest referee message
A tracked SSL-Vision packet to be processed without filtering
A list of unfiltered SSL-Vision packets (for multiple cameras) to be filtered and processed
Current geometry data, to be sent at least once at the beginning of the connection
The AutoRefCiOutput contains any new data created by the auto-referee for further processing
A resulting tracked SSL-Vision packet for input into the ssl-game-controller. The auto-referee will either generate it from the unfiltered SSL-Vision packets or simply return the tracked packet from the input.
The config for an auto referee
Used in:
The game event behaviors for this auto referee
Behaviors for the game events reported by this auto referee
Used in:
Not set or unknown
Accept the game event
Log the game event
Silently ignore the game event
AutoRefRegistration is the first message that a client must send to the controller to identify itself
identifier is a unique name of the client
signature can optionally be specified to enable secure communication
AutoRefToController is the wrapper message for all subsequent messages from the autoRef to the controller
signature can optionally be specified to enable secure communication
game_event is an optional event that the autoRef detected during the game
The ball state
Used in:
ball position [m]
ball velocity [m/s]
Capabilities that a source implementation can have
Used in:
A certain change
Used in: , ,
An identifier of the origin that triggered the change
Is this change revertible?
Accept a proposal group (that contain one or more proposals of the same type)
Used in:
The id of the group
An identifier of the acceptor
Add a new game event
Used in:
The game event
Add a new passive game event (that is only logged, but does not automatically trigger anything)
Used in:
The game event
Add a new proposal (i.e. from an auto referee for majority voting)
Used in:
The proposal
Add a new red card
Used in:
The team that the card is for
The game event that caused the card
Add a new yellow card
Used in:
The team that the card is for
The game event that caused the card
Switch to a new stage
Used in:
The new stage
New referee command
Used in:
The command
Change the current game state
Used in:
The new game state
Revert a certain change
Used in:
The id of the change
Set the ball placement pos
Used in:
The position in [m]
Used in:
The new status message
Switch the team colors
Used in:
(message has no fields)
Update some configuration
Used in:
The division to play with
the team that does/did the first kick off
The match type
The number of robots per team
Update the current state of a team (all fields that should be updated are set)
Used in:
The team
Change the name of the team
Change the number of goals that the teams has at the moment
The id of the goal keeper
The number of timeouts that the team has left
The timeout time that the team has left
Does the team play on the positive or the negative half (in ssl-vision coordinates)?
The number of ball placement failures
Can the team place the ball, or is ball placement for this team disabled and should be skipped?
The number of challenge flags that the team has left
The number of bot substitutions left by the team in this halftime
Does the team want to substitute a robot in the next possible situation?
Does the team want to take a timeout in the next possible situation?
Does the team want to challenge a recent decision of the referee?
Does the team want to request an emergency stop?
Update a certain yellow card of the team
Update a certain red card of the team
Update a certain foul of the team
Remove the yellow card with this id
Remove the red card with this id
Remove the foul with this id
The color of the hull
Trigger when a yellow card timed out
Used in:
The team that the card was for
The input format to the GC
New unix timestamp in [ns] for the GC
New tracker packet with ball and robot data
(UI) API input
Update geometry
The output format of the GC response
Latest referee message
Used in: ,
Used in:
The engine config
Used in: ,
The behavior for each game event
The config for each auto referee
The selected tracker source
The list of available teams
Enable or disable auto continuation
Behaviors for each game event
Used in:
Not set or unknown
Always accept the game event
Accept the game event if was reported by a majority
Only propose the game event (can be accepted in the UI by a human)
Only log the game event to the protocol
Silently ignore the game event
Used in: ,
type of action that will be performed next
for which team (if team specific)
list of issues that hinders the game from continuing
timestamp at which the action will be ready (to give some preparation time)
state of the action
Used in:
Used in:
Used in:
a reply that is sent by the controller for each request from teams or autoRefs
Used in: , ,
status_code is an optional code that indicates the result of the last request
reason is an optional explanation of the status code
next_token must be send with the next request, if secure communication is used the token is used to avoid replay attacks the token is always present in the very first message before the registration starts the token is not present, if secure communication is not used
verification indicates if the last request could be verified (secure communication)
Used in:
Used in:
ControllerToAutoRef is the wrapper message for all messages from controller to autoRef
a reply from the controller
wrapper for all messages from controller to a team's computer
a reply from the controller
current team state
wrapper for all messages from controller to a team's computer
a reply from the controller
Division denotes the current division, which influences some rules
Used in: ,
Used in: ,
GameEvent contains exactly one game event Each game event has optional and required fields. The required fields are mandatory to process the event. Some optional fields are only used for visualization, others are required to determine the ball placement position. If fields are missing that are required for the ball placement position, no ball placement command will be issued. Fields are marked optional to make testing and extending of the protocol easier. An autoRef should ideally set all fields, except if there are good reasons to not do so.
Used in: , , , , , , , , , , , ,
A globally unique id of the game event.
The type of the game event.
The origins of this game event. Empty, if it originates from game controller. Contains autoRef name(s), if it originates from one or more autoRefs. Ignored if sent by autoRef to game controller.
Unix timestamp in microseconds when the event was created.
the event that occurred
replaced by ready_to_continue flag
obsolete
replaced by the meta-information in the possible_goal event
obsolete
rule removed
obsolete
obsolete
can not be used as long as autoRefs do not judge pushing
rule removed
the referee msg already indicates this
the ball left the field via goal line and a team committed an aimless kick
Used in:
the team that last touched the ball
the bot that last touched the ball
the location where the ball left the field [m]
the location where the ball was last touched [m]
an attacker touched the ball multiple times when it was not allowed to
Used in:
the team that found guilty
the bot that touched the ball twice
the location of the ball when it was first touched [m]
an attacker was located too near to the opponent defense area during stop or free kick
Used in:
the team that found guilty
the bot that is too close to the defense area
the location of the bot [m]
the distance [m] of the bot to the penalty area
the location of the ball at the moment when this foul occurred [m]
an attacker touched the ball inside the opponent defense area
Used in:
the team that found guilty
the bot that is inside the penalty area
the location of the bot [m]
the distance [m] that the bot is inside the penalty area
an attacker touched the opponent robot inside defense area
Used in:
the team that found guilty
the bot that touched the opponent robot
the bot of the opposite team that was touched
the location of the contact point between both bots [m]
the ball left the field normally
Used in:
the team that last touched the ball
the bot that last touched the ball
the location where the ball left the field [m]
two robots crashed into each other with similar speeds
Used in:
the bot of the yellow team
the bot of the blue team
the location of the crash (center between both bots) [m]
the calculated crash speed [m/s] of the two bots
the difference [m/s] of the velocity of the two bots
the angle [rad] in the range [0, π] of the bot velocity vectors an angle of 0 rad ( 0°) means, the bots barely touched each other an angle of π rad (180°) means, the bots crashed frontal into each other
two robots crashed into each other and one team was found guilty to due significant speed difference
Used in:
the team that caused the crash
the bot that caused the crash
the bot of the opposite team that was involved in the crash
the location of the crash (center between both bots) [m]
the calculated crash speed vector [m/s] of the two bots
the difference [m/s] of the velocity of the two bots
the angle [rad] in the range [0, π] of the bot velocity vectors an angle of 0 rad ( 0°) means, the bots barely touched each other an angle of π rad (180°) means, the bots crashed frontal into each other
a bot dribbled to ball too far
Used in:
the team that found guilty
the bot that dribbled too far
the location where the dribbling started [m]
the location where the maximum dribbling distance was reached [m]
a bot dropped parts
Used in:
the team that found guilty
the bot that dropped the parts
the location where the parts were dropped [m]
the location of the ball at the moment when this foul occurred [m]
a bot held the ball for too long
Used in:
the team that found guilty
the bot that holds the ball
the location of the ball [m]
the duration [s] that the bot hold the ball
a bot interfered the ball placement of the other team
Used in:
the team that found guilty
the bot that interfered the placement
the location of the bot [m]
a bot kicked the ball too fast
Used in:
the team that found guilty
the bot that kicked too fast
the location of the ball at the time of the highest speed [m]
the absolute initial ball speed (kick speed) [m/s]
was the ball chipped?
a bot pushed another bot over a significant distance
Used in:
the team that pushed the other team
the bot that pushed the other bot
the bot of the opposite team that was pushed
the location of the push (center between both bots) [m]
the pushed distance [m]
bots are being substituted by a team
Used in:
the team that substitutes robots
a bot tipped over
Used in:
the team that found guilty
the bot that tipped over
the location of the bot [m]
the location of the ball at the moment when this foul occurred [m]
a bot moved too fast while the game was stopped
Used in:
the team that found guilty
the bot that was too fast
the location of the bot [m]
the bot speed [m/s]
a robot chipped the ball over the field boundary out of the playing surface
Used in:
the team that has too many robots
the location of the ball [m]
A challenge flag, requested by a team previously, is flagged
Used in:
the team that requested the challenge flag
A challenge, flagged recently, has been handled by the referee
Used in:
the team that requested the challenge flag
the challenge was accepted by the referee
the ball entered the goal, but was initially chipped
Used in:
the team that tried to shoot the goal
the bot that kicked the ball
the location where the ball entered the goal [m]
the location where the ball was kicked [m]
the maximum height [m] of the ball, before it entered the goal and since the last kick [m]
a defender other than the keeper was fully located inside its own defense and touched the ball
Used in:
the team that found guilty
the bot that is inside the penalty area
the location of the bot [m]
the distance [m] from bot case to the nearest point outside the defense area
a defender other than the keeper was partially located inside its own defense area and touched the ball
Used in:
the team that found guilty
the bot that is partially inside the penalty area
the location of the bot
the distance [m] that the bot is inside the penalty area
the location of the ball at the moment when this foul occurred [m]
a bot of the defending team got too close to the kick point during a free kick
Used in:
the team that was found guilty
the bot that violates the distance to the kick point
the location of the bot [m]
the distance [m] from bot to the kick point (including the minimum radius)
An emergency stop, requested by team previously, occurred
Used in:
the team that substitutes robots
A foul for excessive bot substitutions
Used in:
the team that substitutes robots
a team shot a goal
Used in:
the team that scored the goal
the team that shot the goal (different from by_team for own goals)
the bot that shot the goal
the location where the ball entered the goal [m]
the location where the ball was kicked (for deciding if this was a valid goal) [m]
the maximum height the ball reached during the goal kick (for deciding if this was a valid goal) [m]
number of robots of scoring team when the ball entered the goal (for deciding if this was a valid goal)
The UNIX timestamp [μs] when the scoring team last touched the ball
An additional message with e.g. a reason for invalid goals
the ball entered the goal directly during an indirect free kick
Used in:
the team that tried to shoot the goal
the bot that kicked the ball - at least the team must be set
the location where the ball entered the goal [m]
the location where the ball was kicked [m]
a keeper held the ball in its defense area for too long
Used in:
the team that found guilty
the location of the ball [m]
the duration [s] that the keeper hold the ball
timeout waiting for the attacking team to perform the free kick
Used in:
the team that that should have kicked
the location of the ball [m]
the time [s] that was waited
a team collected multiple yellow cards
Used in:
the team that received multiple yellow cards
a team collected multiple fouls, which results in a yellow card
Used in:
the team that collected multiple fouls
the list of game events that caused the multiple fouls
a team failed to place the ball multiple times in a row
Used in:
the team that failed multiple times
game was stuck
Used in:
the location of the ball
the time [s] that was waited
the penalty kick failed (by time or by keeper)
Used in:
the team that last touched the ball
the location of the ball at the moment of this event [m]
an explanation of the failure
ball placement failed
Used in:
the team that failed
the remaining distance [m] from ball to placement position
the distance [m] of the nearest own robot to the ball
a team successfully placed the ball
Used in:
the team that did the placement
the time [s] taken for placing the ball
the distance [m] between placement location and actual ball position
the distance [m] between the initial ball location and the placement position
both teams are prepared - all conditions are met to continue (with kickoff or penalty kick)
Used in:
the time [s] taken for preparing
a team has too many robots on the field
Used in:
the team that has too many robots
number of robots allowed at the moment
number of robots currently on the field
the location of the ball at the moment when this foul occurred [m]
Used in:
triggered by autoRef
triggered by autoRef
triggered by autoRef
triggered by autoRef
triggered by autoRef
triggered by autoRef
triggered by GC
triggered by autoRef
triggered by human ref
triggered by human ref
triggered by human ref
triggered by human ref
triggered by autoRef
triggered by autoRef
triggered by autoRef
triggered by autoRef
triggered by autoRef
triggered by autoRef
triggered by autoRef
triggered by GC
triggered by autoRef
triggered by GC
triggered by GC
triggered by autoRef
triggered by autoRef
triggered by GC and autoRef
triggered by GC
triggered by GC
triggered by GC
triggered by GC
triggered by GC
triggered by GC
triggered by GC
triggered by GC
triggered by GC
triggered by human ref
triggered by human ref
a team was found guilty for major unsporting behavior
Used in:
the team that found guilty
an explanation of the situation and decision
a team was found guilty for minor unsporting behavior
Used in:
the team that found guilty
an explanation of the situation and decision
List of matching proposals
Used in:
Unique ID of this group
The proposed game events
Whether the proposal group was accepted
Used in: ,
Used in:
The GC state contains settings and state independent of the match state
Used in:
the state of each team
the states of the auto referees
the attached trackers (uuid -> source_name)
the next actions that can be executed when continuing
the next actions that can be executed when continuing
The GC state of an auto referee
Used in:
true: The autoRef connected via TLS with a verified certificate
The GC state for a single team
Used in:
true: The team is connected
true: The team connected via TLS with a verified certificate
true: The remote control for the team is connected
true: The remote control for the team connected via TLS with a verified certificate
the advantage choice of the team
GC state of a tracker
Name of the source
UUID of the source
Current ball
Current robots
HullColor is the color of the hull of the robots of a team
Used in: , ,
not set
dark hull color
light hull color
Message format that can be send from the client to the GC
Used in:
A change to be enqueued into the GC engine
Reset the match
An updated config delta
Continue with action
A ball kicked by a robot, including predictions when the ball will come to a stop
Used in:
The initial position [m] from which the ball was kicked
The initial velocity [m/s] with which the ball was kicked
The unix timestamp [s] when the kick was performed
The predicted unix timestamp [s] when the ball comes to a stop
The predicted position [m] at which the ball will come to a stop
The robot that kicked the ball
MatchType is a meta information about the current match for easier log processing
Used in: , ,
not set
match is part of the group phase
match is part of the elimination phase
a friendly match, not part of a tournament
Message format that is pushed from the GC to the client
The current match state
The current GC state
The protocol
The engine config
Used in: ,
The timestamp when the game event proposal occurred
The proposed game event.
Used in:
Unique ID of this group
The proposals in this group
Whether the proposal group was accepted
The game protocol
Used in:
Is this a delta only? Entries that were already sent are not sent again, because the protocol is immutable anyway. But if the game is reset, the whole protocol must be replaced. That's what this flag is for.
The (delta) list of entries
A protocol entry of a change
Used in:
Id of the entry
The change that was made
The match time elapsed when this change was made
The stage time elapsed when this change was made
Used in: ,
Each UDP packet contains one of these messages.
Used in: ,
A random UUID of the source that is kept constant at the source while running If multiple sources are broadcasting to the same network, this id can be used to identify individual sources
The match type is a meta information about the current match that helps to process the logs after a competition
The UNIX timestamp when the packet was sent, in microseconds. Divide by 1,000,000 to get a time_t.
The number of microseconds left in the stage. The following stages have this value; the rest do not: NORMAL_FIRST_HALF NORMAL_HALF_TIME NORMAL_SECOND_HALF EXTRA_TIME_BREAK EXTRA_FIRST_HALF EXTRA_HALF_TIME EXTRA_SECOND_HALF PENALTY_SHOOTOUT_BREAK If the stage runs over its specified time, this value becomes negative.
The number of commands issued since startup (mod 2^32).
The UNIX timestamp when the command was issued, in microseconds. This value changes only when a new command is issued, not on each packet.
Information about the two teams.
Information about the direction of play. True, if the blue team will have it's goal on the positive x-axis of the ssl-vision coordinate system. Obviously, the yellow team will play on the opposite half.
The command that will be issued after the current stoppage and ball placement to continue the game.
The time in microseconds that is remaining until the current action times out The time will not be reset. It can get negative. An autoRef would raise an appropriate event, if the time gets negative. Possible actions where this time is relevant: * free kicks * kickoff, penalty kick, force start * ball placement
A message that can be displayed to the spectators, like a reason for a stoppage.
These are the "fine" states of play on the field.
Used in:
All robots should completely stop moving.
Robots must keep 50 cm from the ball.
A prepared kickoff or penalty may now be taken.
The ball is dropped and free for either team.
The yellow team may move into kickoff position.
The blue team may move into kickoff position.
The yellow team may move into penalty position.
The blue team may move into penalty position.
The yellow team may take a direct free kick.
The blue team may take a direct free kick.
The yellow team may take an indirect free kick.
The blue team may take an indirect free kick.
The yellow team is currently in a timeout.
The blue team is currently in a timeout.
The yellow team just scored a goal. For information only. Deprecated: Use the score field from the team infos instead. That way, you can also detect revoked goals.
The blue team just scored a goal. See also GOAL_YELLOW.
Equivalent to STOP, but the yellow team must pick up the ball and drop it in the Designated Position.
Equivalent to STOP, but the blue team must pick up the ball and drop it in the Designated Position.
The coordinates of the Designated Position. These are measured in millimetres and correspond to SSL-Vision coordinates. These fields are always either both present (in the case of a ball placement command) or both absent (in the case of any other command).
Used in:
These are the "coarse" stages of the game.
Used in: , ,
The first half is about to start. A kickoff is called within this stage. This stage ends with the NORMAL_START.
The first half of the normal game, before half time.
Half time between first and second halves.
The second half is about to start. A kickoff is called within this stage. This stage ends with the NORMAL_START.
The second half of the normal game, after half time.
The break before extra time.
The first half of extra time is about to start. A kickoff is called within this stage. This stage ends with the NORMAL_START.
The first half of extra time.
Half time between first and second extra halves.
The second half of extra time is about to start. A kickoff is called within this stage. This stage ends with the NORMAL_START.
The second half of extra time.
The break before penalty shootout.
The penalty shootout.
The game is over.
Information about a single team.
Used in:
The team's name (empty string if operator has not typed anything).
The number of goals scored by the team during normal play and overtime.
The number of red cards issued to the team since the beginning of the game.
The amount of time (in microseconds) left on each yellow card issued to the team. If no yellow cards are issued, this array has no elements. Otherwise, times are ordered from smallest to largest.
The total number of yellow cards ever issued to the team.
The number of timeouts this team can still call. If in a timeout right now, that timeout is excluded.
The number of microseconds of timeout this team can use.
The pattern number of this team's goalkeeper.
The total number of countable fouls that act towards yellow cards
The number of consecutive ball placement failures of this team
Indicate if the team is able and allowed to place the ball
The maximum number of bots allowed on the field based on division and cards
The team has submitted an intent to substitute one or more robots at the next chance
Indicate if the team reached the maximum allowed ball placement failures and is thus not allowed to place the ball anymore
The team is allowed to substitute one or more robots currently
The number of bot substitutions left by the team in this halftime
The number of microseconds left for current bot substitution
The color of the hull of the robots of this team
a registration that must be send by the remote control to the controller as the very first message
the team to be controlled
signature can optionally be specified to enable secure communication
All possible request types that the remote control can make
Used in:
Current team state from Controller for remote control
Used in:
the team that is controlled
list of all currently available request types that can be made
list of all currently active request types that are pending
currently set keeper id
number of seconds till emergency stop is executed zero, if no emergency stop requested
number of timeouts left for the team
number of seconds left for timeout for the team
number of challenge flags left for the team
max number of robots currently allowed
current number of robots visible on field
list of due times for each active yellow card (in seconds)
if true, team is allowed to substitute robots
number of bot substitutions left by the team in this halftime
number of seconds left for current bot substitution
wrapper for all messages from the remote control to the controller
signature can optionally be specified to enable secure communication
send a request to the GC
request a new desired keeper id
true: request to substitute a robot at the next possibility false: cancel request
true: request a timeout with the next stoppage false: cancel the request
true: initiate an emergency stop false: cancel the request
Used in:
Ping the GC to test the connection. The GC will respond with OK and the current team state
Raise a challenge flag (this is not revocable)
Stop an ongoing timeout
Fail a ball placement
The robot state
Used in:
robot id and team
robot position [m]
RobotId is the combination of a team and a robot id
Used in: , ,
the robot number
the team that the robot belongs to
Fixed-Loss model for chipped balls. Uses fixed damping factors for xy and z direction per hop.
Used in:
Chip kick velocity damping factor in XY direction for the first hop
Chip kick velocity damping factor in XY direction for all following hops
Chip kick velocity damping factor in Z direction for all hops
Two-Phase model for straight-kicked balls. There are two phases with different accelerations during the ball kicks: 1. Sliding 2. Rolling The full model is described in the TDP of ER-Force from 2016, which can be found here: https://ssl.robocup.org/wp-content/uploads/2019/01/2016_ETDP_ER-Force.pdf
Used in:
Ball sliding acceleration [m/s^2] (should be negative)
Ball rolling acceleration [m/s^2] (should be negative)
Fraction of the initial velocity where the ball starts to roll
Used in:
Confidence in [0-1] of the detection
X-coordinate in [mm] in global ssl-vision coordinate system
Y-coordinate in [mm] in global ssl-vision coordinate system
Z-coordinate in [mm] in global ssl-vision coordinate system Not supported by ssl-vision, but might be set by simulators
X-coordinate in [pixel] in the image
Y-coordinate in [pixel] in the image
Used in: ,
monotonously increasing frame number
Unix timestamp in [seconds] at which the image has been received by ssl-vision
Unix timestamp in [seconds] at which this message has been sent to the network
Camera timestamp in [seconds] as reported by the camera, if supported This is not necessarily a unix timestamp
Identifier of the camera
Detected balls
Detected yellow robots
Detected blue robots
Used in:
Confidence in [0-1] of the detection
Id of the robot
X-coordinate in [mm] in global ssl-vision coordinate system
Y-coordinate in [mm] in global ssl-vision coordinate system
Orientation in [rad]
X-coordinate in [pixel] in the image
Y-coordinate in [pixel] in the image
Height, as configured in ssl-vision for the respective team
Represents a field marking as a circular arc segment represented by center point, a start angle, an end angle, and an arc thickness.
Used in:
Name of this field marking.
Center point of the circular arc.
Radius of the arc.
Start angle in counter-clockwise order.
End angle in counter-clockwise order.
Thickness of the arc.
The type of this shape
Represents a field marking as a line segment represented by a start point p1, and end point p2, and a line thickness. The start and end points are along the center of the line, so the thickness of the line extends by thickness / 2 on either side of the line.
Used in:
Name of this field marking.
Start point of the line segment.
End point of the line segment.
Thickness of the line segment.
The type of this shape
Used in: ,
Used in:
Used in: , ,
Used in:
Field length (distance between goal lines) in mm
Field width (distance between touch lines) in mm
Goal width (distance between inner edges of goal posts) in mm
Goal depth (distance from outer goal line edge to inner goal back) in mm
Boundary width (distance from touch line centers to boundary walls) in mm
Boundary width at the goal lines (distance from goal line centers to boundary walls) in mm
Generated line segments based on the other parameters
Generated circular arcs based on the other parameters
Depth of the penalty/defense area (measured between line centers) in mm
Width of the penalty/defense area (measured between line centers) in mm
Radius of the center circle (measured between line centers) in mm
Thickness/width of the lines on the field in mm
Distance between the goal center and the center of the penalty mark in mm
Goal height in mm
Ball radius in mm (note that this is a float type to represent sub-mm precision)
Max allowed robot radius in mm (note that this is a float type to represent sub-mm precision)
Width of the goal substitution area (distance from goal line center plus boundary width to boundary walls) in mm
Used in:
Used in:
Used in:
Signature can be added to a request to let it be verfied by the controller
Used in: , , , , ,
the token that was received with the last controller reply
the PKCS1v15 signature of this message
Used in: ,
The maximum number of bots per team (overwrites the division config)
A state change
A unique increasing id
The previous state
The state after the change was applied
The change itself
The timestamp when the change was triggered
Team is either blue or yellow
Used in: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
team not set
yellow team
blue team
The choice from a team regarding the advantage rule
Used in:
the choice of the team
possible advantage choices
Used in:
stop the game
keep the match running
Used in:
a registration that must be send by teams to the controller as the very first message
the exact team name as published by the game-controller
signature can optionally be specified to enable secure communication
the team (relevant only if a team plays against itself)
wrapper for all messages from a team's computer to the controller
signature can optionally be specified to enable secure communication
request a new desired keeper id
response to an advantage choice request
request to substitute a robot at the next possibility
send a ping to the GC to test if the connection is still open. the value is ignored and a reply is sent back
A single tracked ball
Used in:
The position (x, y, height) [m] in the ssl-vision coordinate system
The velocity [m/s] in the ssl-vision coordinate system
The visibility of the ball A value between 0 (not visible) and 1 (visible) The exact implementation depends on the source software
A frame that contains all currently tracked objects on the field on all cameras
Used in:
A monotonous increasing frame counter
The unix timestamp in [s] of the data If timestamp is larger than timestamp_captured, the source has applied a prediction already
The list of detected balls The first ball is the primary one Sources may add additional balls based on their capabilities
The list of detected robots of both teams
Information about a kicked ball, if the ball was kicked by a robot and is still moving Note: This field is optional. Some source implementations might not set this at any time
List of capabilities of the source implementation
A single tracked robot
Used in:
The position [m] in the ssl-vision coordinate system
The orientation [rad] in the ssl-vision coordinate system
The velocity [m/s] in the ssl-vision coordinate system
The angular velocity [rad/s] in the ssl-vision coordinate system
The visibility of the robot A value between 0 (not visible) and 1 (visible) The exact implementation depends on the source software
A wrapper packet containing meta data of the source Also serves for the possibility to extend the protocol later
Used in: , ,
A random UUID of the source that is kept constant at the source while running If multiple sources are broadcasting to the same network, this id can be used to identify individual sources
The name of the source software that is producing this messages.
The tracked frame
A vector with two dimensions
Used in: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
A 2D float vector.
Used in: ,
X-coordinate in mm
Y-coordinate in mm
A vector with three dimensions
Used in: , ,
Used in: ,