package SSLProto

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message AutoRefCiInput

ssl_autoref_ci.proto:15

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.

message AutoRefCiOutput

ssl_autoref_ci.proto:30

The AutoRefCiOutput contains any new data created by the auto-referee for further processing

message AutoRefConfig

ssl_gc_engine_config.proto:42

The config for an auto referee

Used in: Config

enum AutoRefConfig.Behavior

ssl_gc_engine_config.proto:48

Behaviors for the game events reported by this auto referee

Used in: AutoRefConfig

message Ball

ssl_gc_engine.proto:88

The ball state

Used in: GcStateTracker

enum Capability

ssl_vision_detection_tracked.proto:11

Capabilities that a source implementation can have

Used in: TrackedFrame

message Change

ssl_gc_change.proto:30

A certain change

Used in: Input, ProtocolEntry, StateChange

message Change.AcceptProposalGroup

ssl_gc_change.proto:126

Accept a proposal group (that contain one or more proposals of the same type)

Used in: Change

message Change.AddGameEvent

ssl_gc_change.proto:104

Add a new game event

Used in: Change

message Change.AddPassiveGameEvent

ssl_gc_change.proto:112

Add a new passive game event (that is only logged, but does not automatically trigger anything)

Used in: Change

message Change.AddProposal

ssl_gc_change.proto:119

Add a new proposal (i.e. from an auto referee for majority voting)

Used in: Change

message Change.AddRedCard

ssl_gc_change.proto:88

Add a new red card

Used in: Change

message Change.AddYellowCard

ssl_gc_change.proto:79

Add a new yellow card

Used in: Change

message Change.ChangeStage

ssl_gc_change.proto:65

Switch to a new stage

Used in: Change

message Change.NewCommand

ssl_gc_change.proto:58

New referee command

Used in: Change

message Change.NewGameState

ssl_gc_change.proto:209

Change the current game state

Used in: Change

message Change.Revert

ssl_gc_change.proto:202

Revert a certain change

Used in: Change

message Change.SetBallPlacementPos

ssl_gc_change.proto:72

Set the ball placement pos

Used in: Change

message Change.SetStatusMessage

ssl_gc_change.proto:215

Used in: Change

message Change.SwitchColors

ssl_gc_change.proto:199

Switch the team colors

Used in: Change

(message has no fields)

message Change.UpdateConfig

ssl_gc_change.proto:135

Update some configuration

Used in: Change

message Change.UpdateTeamState

ssl_gc_change.proto:149

Update the current state of a team (all fields that should be updated are set)

Used in: Change

message Change.YellowCardOver

ssl_gc_change.proto:97

Trigger when a yellow card timed out

Used in: Change

message CiInput

ssl_gc_ci.proto:11

The input format to the GC

message CiOutput

ssl_gc_ci.proto:24

The output format of the GC response

message Command

ssl_gc_state.proto:33

Used in: Change.NewCommand, ManualGCCommand, State

enum Command.Type

ssl_gc_state.proto:38

Used in: Command

message Config

ssl_gc_engine_config.proto:6

The engine config

Used in: Input, Output

enum Config.Behavior

ssl_gc_engine_config.proto:24

Behaviors for each game event

Used in: Config

message ContinueAction

ssl_gc_engine.proto:107

Used in: GcState, Input

enum ContinueAction.State

ssl_gc_engine.proto:149

Used in: ContinueAction

enum ContinueAction.Type

ssl_gc_engine.proto:124

Used in: ContinueAction

message ContinueHint

ssl_gc_engine.proto:160

Used in: GcState

enum Division

ssl_gc_common.proto:26

Division denotes the current division, which influences some rules

Used in: Change.UpdateConfig, State

message Foul

ssl_gc_state.proto:26

Used in: Change.UpdateTeamState, TeamInfo

message GameEvent

ssl_gc_game_event.proto:16

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: Change.AddGameEvent, Change.AddPassiveGameEvent, Change.AddRedCard, Change.AddYellowCard, Foul, GameEvent.MultipleFouls, GameEventProposalGroup, Proposal, RedCard, Referee, State, YellowCard

message GameEvent.AimlessKick

ssl_gc_game_event.proto:132

the ball left the field via goal line and a team committed an aimless kick

Used in: GameEvent

message GameEvent.AttackerDoubleTouchedBall

ssl_gc_game_event.proto:375

an attacker touched the ball multiple times when it was not allowed to

Used in: GameEvent

message GameEvent.AttackerTooCloseToDefenseArea

ssl_gc_game_event.proto:386

an attacker was located too near to the opponent defense area during stop or free kick

Used in: GameEvent

message GameEvent.AttackerTouchedBallInDefenseArea

ssl_gc_game_event.proto:325

an attacker touched the ball inside the opponent defense area

Used in: GameEvent

message GameEvent.AttackerTouchedOpponentInDefenseArea

ssl_gc_game_event.proto:363

an attacker touched the opponent robot inside defense area

Used in: GameEvent

message GameEvent.BallLeftField

ssl_gc_game_event.proto:122

the ball left the field normally

Used in: GameEvent

message GameEvent.BotCrashDrawn

ssl_gc_game_event.proto:220

two robots crashed into each other with similar speeds

Used in: GameEvent

message GameEvent.BotCrashUnique

ssl_gc_game_event.proto:239

two robots crashed into each other and one team was found guilty to due significant speed difference

Used in: GameEvent

message GameEvent.BotDribbledBallTooFar

ssl_gc_game_event.proto:351

a bot dribbled to ball too far

Used in: GameEvent

message GameEvent.BotDroppedParts

ssl_gc_game_event.proto:285

a bot dropped parts

Used in: GameEvent

message GameEvent.BotHeldBallDeliberately

ssl_gc_game_event.proto:400

a bot held the ball for too long

Used in: GameEvent

message GameEvent.BotInterferedPlacement

ssl_gc_game_event.proto:412

a bot interfered the ball placement of the other team

Used in: GameEvent

message GameEvent.BotKickedBallTooFast

ssl_gc_game_event.proto:337

a bot kicked the ball too fast

Used in: GameEvent

message GameEvent.BotPushedBot

ssl_gc_game_event.proto:259

a bot pushed another bot over a significant distance

Used in: GameEvent

message GameEvent.BotSubstitution

ssl_gc_game_event.proto:515

bots are being substituted by a team

Used in: GameEvent

message GameEvent.BotTippedOver

ssl_gc_game_event.proto:273

a bot tipped over

Used in: GameEvent

message GameEvent.BotTooFastInStop

ssl_gc_game_event.proto:196

a bot moved too fast while the game was stopped

Used in: GameEvent

message GameEvent.BoundaryCrossing

ssl_gc_game_event.proto:559

a robot chipped the ball over the field boundary out of the playing surface

Used in: GameEvent

message GameEvent.ChallengeFlag

ssl_gc_game_event.proto:527

A challenge flag, requested by a team previously, is flagged

Used in: GameEvent

message GameEvent.ChallengeFlagHandled

ssl_gc_game_event.proto:533

A challenge, flagged recently, has been handled by the referee

Used in: GameEvent

message GameEvent.ChippedGoal

ssl_gc_game_event.proto:181

the ball entered the goal, but was initially chipped

Used in: GameEvent

message GameEvent.DefenderInDefenseArea

ssl_gc_game_event.proto:298

a defender other than the keeper was fully located inside its own defense and touched the ball

Used in: GameEvent

message GameEvent.DefenderInDefenseAreaPartially

ssl_gc_game_event.proto:311

a defender other than the keeper was partially located inside its own defense area and touched the ball

Used in: GameEvent

message GameEvent.DefenderTooCloseToKickPoint

ssl_gc_game_event.proto:208

a bot of the defending team got too close to the kick point during a free kick

Used in: GameEvent

message GameEvent.EmergencyStop

ssl_gc_game_event.proto:541

An emergency stop, requested by team previously, occurred

Used in: GameEvent

message GameEvent.ExcessiveBotSubstitution

ssl_gc_game_event.proto:521

A foul for excessive bot substitutions

Used in: GameEvent

message GameEvent.Goal

ssl_gc_game_event.proto:144

a team shot a goal

Used in: GameEvent

message GameEvent.IndirectGoal

ssl_gc_game_event.proto:169

the ball entered the goal directly during an indirect free kick

Used in: GameEvent

message GameEvent.KeeperHeldBall

ssl_gc_game_event.proto:486

a keeper held the ball in its defense area for too long

Used in: GameEvent

message GameEvent.KickTimeout

ssl_gc_game_event.proto:442

timeout waiting for the attacking team to perform the free kick

Used in: GameEvent

message GameEvent.MultipleCards

ssl_gc_game_event.proto:422

a team collected multiple yellow cards

Used in: GameEvent

message GameEvent.MultipleFouls

ssl_gc_game_event.proto:428

a team collected multiple fouls, which results in a yellow card

Used in: GameEvent

message GameEvent.MultiplePlacementFailures

ssl_gc_game_event.proto:436

a team failed to place the ball multiple times in a row

Used in: GameEvent

message GameEvent.NoProgressInGame

ssl_gc_game_event.proto:452

game was stuck

Used in: GameEvent

message GameEvent.PenaltyKickFailed

ssl_gc_game_event.proto:567

the penalty kick failed (by time or by keeper)

Used in: GameEvent

message GameEvent.PlacementFailed

ssl_gc_game_event.proto:460

ball placement failed

Used in: GameEvent

message GameEvent.PlacementSucceeded

ssl_gc_game_event.proto:496

a team successfully placed the ball

Used in: GameEvent

message GameEvent.Prepared

ssl_gc_game_event.proto:509

both teams are prepared - all conditions are met to continue (with kickoff or penalty kick)

Used in: GameEvent

message GameEvent.TooManyRobots

ssl_gc_game_event.proto:547

a team has too many robots on the field

Used in: GameEvent

enum GameEvent.Type

ssl_gc_game_event.proto:577

Used in: GameEvent

message GameEvent.UnsportingBehaviorMajor

ssl_gc_game_event.proto:478

a team was found guilty for major unsporting behavior

Used in: GameEvent

message GameEvent.UnsportingBehaviorMinor

ssl_gc_game_event.proto:470

a team was found guilty for minor unsporting behavior

Used in: GameEvent

message GameEventProposalGroup

ssl_gc_referee_message.proto:230

List of matching proposals

Used in: Referee

message GameState

ssl_gc_state.proto:54

Used in: Change.NewGameState, State

enum GameState.Type

ssl_gc_state.proto:59

Used in: GameState

message GcState

ssl_gc_engine.proto:11

The GC state contains settings and state independent of the match state

Used in: Output

message GcStateAutoRef

ssl_gc_engine.proto:65

The GC state of an auto referee

Used in: GcState

message GcStateTeam

ssl_gc_engine.proto:30

The GC state for a single team

Used in: GcState

message GcStateTracker

ssl_gc_engine.proto:72

GC state of a tracker

message Input

ssl_gc_api.proto:51

Message format that can be send from the client to the GC

Used in: CiInput

message KickedBall

ssl_vision_detection_tracked.proto:35

A ball kicked by a robot, including predictions when the ball will come to a stop

Used in: TrackedFrame

message ManualGCCommand

manual_gc_command.proto:8

enum MatchType

ssl_gc_referee_message.proto:241

MatchType is a meta information about the current match for easier log processing

Used in: Change.UpdateConfig, Referee, State

message Output

ssl_gc_api.proto:13

Message format that is pushed from the GC to the client

message Proposal

ssl_gc_state.proto:73

Used in: Change.AddProposal, ProposalGroup

message ProposalGroup

ssl_gc_state.proto:81

Used in: State

message Protocol

ssl_gc_api.proto:26

The game protocol

Used in: Output

message ProtocolEntry

ssl_gc_api.proto:38

A protocol entry of a change

Used in: Protocol

message RedCard

ssl_gc_state.proto:20

Used in: Change.UpdateTeamState, TeamInfo

message Referee

ssl_gc_referee_message.proto:8

Each UDP packet contains one of these messages.

Used in: AutoRefCiInput, CiOutput, SensorProto

enum Referee.Command

ssl_gc_referee_message.proto:81

These are the "fine" states of play on the field.

Used in: Referee

message Referee.Point

ssl_gc_referee_message.proto:186

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: Referee

enum Referee.Stage

ssl_gc_referee_message.proto:24

These are the "coarse" stages of the game.

Used in: Change.ChangeStage, Referee, State

message Referee.TeamInfo

ssl_gc_referee_message.proto:135

Information about a single team.

Used in: Referee

message Robot

ssl_gc_engine.proto:98

The robot state

Used in: GcStateTracker

message RobotId

ssl_gc_common.proto:17

RobotId is the combination of a team and a robot id

Used in: KickedBall, Robot, TrackedRobot, SSLSimulationProto.RobotSpecs, SSLSimulationProto.TeleportRobot

message SSL_BallModelChipFixedLoss

ssl_vision_geometry.proto:110

Fixed-Loss model for chipped balls. Uses fixed damping factors for xy and z direction per hop.

Used in: SSL_GeometryModels

message SSL_BallModelStraightTwoPhase

ssl_vision_geometry.proto:98

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: SSL_GeometryModels

message SSL_DetectionBall

ssl_vision_detection.proto:7

Used in: SSL_DetectionFrame

message SSL_DetectionFrame

ssl_vision_detection.proto:30

Used in: AutoRefCiInput, SSL_WrapperPacket, SSLSimulationProto.SimulationSyncResponse

message SSL_DetectionRobot

ssl_vision_detection.proto:18

Used in: SSL_DetectionFrame

message SSL_FieldCircularArc

ssl_vision_geometry.proto:34

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: SSL_GeometryFieldSize

message SSL_FieldLineSegment

ssl_vision_geometry.proto:18

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: SSL_GeometryFieldSize

enum SSL_FieldShapeType

ssl_vision_geometry.proto:133

Used in: SSL_FieldCircularArc, SSL_FieldLineSegment

message SSL_GeometryCameraCalibration

ssl_vision_geometry.proto:71

Used in: SSL_GeometryData, amun.SimulatorSetup

message SSL_GeometryData

ssl_vision_geometry.proto:126

Used in: AutoRefCiInput, CiInput, SSL_WrapperPacket, SSLSimulationProto.SimulatorConfig

message SSL_GeometryFieldSize

ssl_vision_geometry.proto:52

Used in: SSL_GeometryData

message SSL_GeometryModels

ssl_vision_geometry.proto:120

Used in: SSL_GeometryData

message SSL_WrapperPacket

ssl_vision_wrapper.proto:10

Used in: SensorProto, world.State

message ShootoutState

ssl_gc_state.proto:141

Used in: State

message State

ssl_gc_state.proto:116

Used in: Output, StateChange

message StateChange

ssl_gc_change.proto:15

A state change

enum Team

ssl_gc_common.proto:6

Team is either blue or yellow

Used in: Change.AddRedCard, Change.AddYellowCard, Change.UpdateConfig, Change.UpdateTeamState, Change.YellowCardOver, Command, ContinueAction, GameEvent.AimlessKick, GameEvent.AttackerDoubleTouchedBall, GameEvent.AttackerTooCloseToDefenseArea, GameEvent.AttackerTouchedBallInDefenseArea, GameEvent.AttackerTouchedOpponentInDefenseArea, GameEvent.BallLeftField, GameEvent.BotCrashUnique, GameEvent.BotDribbledBallTooFar, GameEvent.BotDroppedParts, GameEvent.BotHeldBallDeliberately, GameEvent.BotInterferedPlacement, GameEvent.BotKickedBallTooFast, GameEvent.BotPushedBot, GameEvent.BotSubstitution, GameEvent.BotTippedOver, GameEvent.BotTooFastInStop, GameEvent.BoundaryCrossing, GameEvent.ChallengeFlag, GameEvent.ChallengeFlagHandled, GameEvent.ChippedGoal, GameEvent.DefenderInDefenseArea, GameEvent.DefenderInDefenseAreaPartially, GameEvent.DefenderTooCloseToKickPoint, GameEvent.EmergencyStop, GameEvent.ExcessiveBotSubstitution, GameEvent.Goal, GameEvent.IndirectGoal, GameEvent.KeeperHeldBall, GameEvent.KickTimeout, GameEvent.MultipleCards, GameEvent.MultipleFouls, GameEvent.MultiplePlacementFailures, GameEvent.PenaltyKickFailed, GameEvent.PlacementFailed, GameEvent.PlacementSucceeded, GameEvent.TooManyRobots, GameEvent.UnsportingBehaviorMajor, GameEvent.UnsportingBehaviorMinor, GameState, RobotId, ShootoutState, State

message TeamAdvantageChoice

ssl_gc_engine.proto:49

The choice from a team regarding the advantage rule

Used in: GcStateTeam

enum TeamAdvantageChoice.AdvantageChoice

ssl_gc_engine.proto:55

possible advantage choices

Used in: TeamAdvantageChoice

message TeamInfo

ssl_gc_state.proto:92

Used in: State

message TrackedBall

ssl_vision_detection_tracked.proto:20

A single tracked ball

Used in: TrackedFrame

message TrackedFrame

ssl_vision_detection_tracked.proto:75

A frame that contains all currently tracked objects on the field on all cameras

Used in: TrackerWrapperPacket

message TrackedRobot

ssl_vision_detection_tracked.proto:54

A single tracked robot

Used in: TrackedFrame

message TrackerWrapperPacket

ssl_vision_wrapper_tracked.proto:9

A wrapper packet containing meta data of the source Also serves for the possibility to extend the protocol later

Used in: AutoRefCiInput, AutoRefCiOutput, CiInput

message Vector2

ssl_gc_geometry.proto:6

A vector with two dimensions

Used in: Change.SetBallPlacementPos, GameEvent.AimlessKick, GameEvent.AttackerDoubleTouchedBall, GameEvent.AttackerTooCloseToDefenseArea, GameEvent.AttackerTouchedBallInDefenseArea, GameEvent.AttackerTouchedOpponentInDefenseArea, GameEvent.BallLeftField, GameEvent.BotCrashDrawn, GameEvent.BotCrashUnique, GameEvent.BotDribbledBallTooFar, GameEvent.BotDroppedParts, GameEvent.BotHeldBallDeliberately, GameEvent.BotInterferedPlacement, GameEvent.BotKickedBallTooFast, GameEvent.BotPushedBot, GameEvent.BotTippedOver, GameEvent.BotTooFastInStop, GameEvent.BoundaryCrossing, GameEvent.ChippedGoal, GameEvent.DefenderInDefenseArea, GameEvent.DefenderInDefenseAreaPartially, GameEvent.DefenderTooCloseToKickPoint, GameEvent.Goal, GameEvent.IndirectGoal, GameEvent.KeeperHeldBall, GameEvent.KickTimeout, GameEvent.NoProgressInGame, GameEvent.PenaltyKickFailed, GameEvent.TooManyRobots, KickedBall, ManualGCCommand, Robot, State, TrackedRobot

message Vector2f

ssl_vision_geometry.proto:8

A 2D float vector.

Used in: SSL_FieldCircularArc, SSL_FieldLineSegment

message Vector3

ssl_gc_geometry.proto:13

A vector with three dimensions

Used in: Ball, KickedBall, TrackedBall

message YellowCard

ssl_gc_state.proto:13

Used in: Change.UpdateTeamState, TeamInfo