Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
Used in:
Whether we should run or stop ai
Override the existing play with the Play enum provided
Interfaces for various network listeners
Used in:
threshold to decide if ball hasn't been kicked
Used in: , , , , , , , , ,
the angle in radians
Used in: , , ,
the angular velocity in radians
Used in:
The best pass so far
whether we have committed to the pass and will be taking it
The point the robot will chip towards if it is unable to shoot and is in danger of losing the ball to an enemy
Used in:
The radius of the circle around a friendly robot around which we think an enemy is about to steal the ball
The minimum open angle to the goal that we require before taking a shot
needs the _ because pass is a keyword in python
Used in: , , ,
Used in: ,
Used in:
Used in: ,
Used in: ,
The robot avoids stealing ball/getting possession
The robot can steal the ball/try to get possession of the ball
Used in:
The location where the chip will be taken from
The direction the Robot will chip in
The distance the robot will chip to
Data about the status of the chipper and kicker
Used in:
Indicates the time elapsed since chipper was last fired in ms
Indicates the time elapsed since kicker was last fired in ms
Used in: , ,
Used in:
Whether we should generate sample passes for the cost visualization
cost functions
Used in:
Used in:
Unique steal config for crease defenders
The additional buffer length for each side of the goal to determine if crease defender chipping is "towards goal"
Used in:
The origin point of the enemy threat
The crease defender alignment with respect to the enemy threat
The maximum allowed speed mode
The crease defender's aggressiveness towards the ball
Unique ID to a named shape
Used in:
Unique ID to identify the shape
Text to display next to the shape
Used in: ,
Max ratio between distances (defender and ball) / (nearest enemy and ball) for defender to chase ball. Threshold = 1.0 results in defenders chasing the ball even if the ball is equidistant to nearest enemy. Threshold < 1.0 results in defenders chasing the ball only when it is at least (threshold)% closer to our bot than the nearest enemy. ┌──────────────────────────────────────────┐ | Defender <────> Ball <───────────> Enemy | | () x () | └──────────────────────────────────────────┘
Max distance that the defender will try and get possession of a ball
Max speed of ball that pass defender will try and get possession
Used in:
The distance at which a threat is considered "immediate" if there is only 1 "immediate" threat the defense play will swarm that robot with shadowers
The DefenderAssignmentConfig for tuning defender assignments
Used in:
The minimum distance in meters between two threats for them to be considered non-similar
The minimum difference between two threats in angle to the primary threat for them to be considered non-similar
Multiplier to ensure that goal lanes are scored higher (in threat rating) than passing lanes
Max percent difference between two goal lanes' angles to goal for them to be considered a dense lane cluster
Bonus added to coverage rating if the goal lane is not part of a dense cluster
The max number of crease defender can be created at a moment
Used in:
Used in:
The destination for dribbling the ball
The final orientation to face the ball when finishing dribbling
whether to allow excessive dribbling, i.e. more than 1 metre at a time
Used in:
If ball and front of robot are separated by this amount, then we've lost possession (in m)
Threshold to determine if the ball is at the destination determined experimentally (in m)
Threshold to determine if the robot has the expected orientation when completing the dribble (in degrees)
Maximum distance to continuously dribble the ball, slightly conservative to not break the 1 meter rule (in m)
Robot speed at which the robot is done dribbling (in m/s)
The maximum amount of additional time that the robot should reach the interception point prior to the ball.
The additional offset from the regular ball interception point that the robot should aim for when the robot's dribbler is not aligned with the ball.
The maximum angular velocity the robot can have when it is about to get possession of the ball. This is used to avoid the robot from trying to get possession of the ball when it is turning too fast.
Used in:
Used in: ,
Data about the status of the dribbler Note that the rotation is from the perspective of rear of the motor, looking down the shaft starting from the motor body
Used in:
The current speed of the dribbler in RPM
Used in:
The current RPM of the wheel
certain drive faults cause the motor to be disabled
Used in:
The distance to keep from the enemy ball placement stadium
Used in:
This value should be set based on whether or not the team we are playing against can pass the ball. This will affect how we defend against the team.
Used in:
The enemy robot
Whether or not this robot has possession of the ball
How much of the goal the enemy robot can see This does not account for obstacles For example, robots in the corner would have a very small angle while robots directly in front of the net would have a large angle
The largest angle the robot has to shoot on the friendly net, taking obstacles into account
The target the robot would shoot at
How many passes it would take for this robot to get the ball 0 - The robot already has the ball 1 - The robot needs 1 pass to get the ball 2 - ...etc
The robot that would pass to this robot if necessary
Error codes are to be displayed in the visualizer
Used in:
Default message required for proto enums
Level triggered events
Used in:
Used in:
The maximum time that we will wait before committing to a pass
Used in:
Used in:
Used in:
Used in:
Used in:
The location where the chick will be taken, i.e. where we expect the ball to be when we chip or kick it
The direction the Robot will chick in
Used in:
The maximum allowed speed mode
Used in:
At what speed of the ball should the goalie panic and stop the ball
The radius to wedge the robot into the cone
How much to deflate the defense area by, larger value means closer to the net
Depth goalie should be at for plays close to the defense area (potential lateral play, rebounds)
Depth goalie should be at to aggressively narrow the angle the ball has to the goal as it enters the friendly half
Distance in meters to inset the target area for finding chip targets
Minimum distance in meters that a chip target must be away from the front defense area crease
Distance threshold multiplier used for calculating whether or not an enemy robot is a safe distance away
Used in:
(message has no fields)
Used in:
The location where the kick will be taken from
The direction the Robot will kick in
How fast the Robot will kick the ball in meters per second
the severity level of the log
Used in:
Special Fatal log for if a CHECK fails
Used in: , , ,
The physical limit of the robots
Move at speed limit for the stop command
Move at speed at which collisions are allowed
The box around the friendly goal
The box around the enemy goal
The inflated box around the enemy defense area
The center circle
The enemy half of the field
The friendly half of the field
Region around the playable zone
A half meter radius around the ball
Path between ball and placement point in ball placement
The enemy half of the field without the centre circle
The friendly goal
The enemy goal
Used in:
Used in:
Used in:
********** TMC Faults ***********
Used in: ,
Refer to Trinamic 6100 datasheet for precise definitions of motor faults. https://trinamic.com/fileadmin/assets/Products/ICs_Documents/TMC6100_datasheet_Rev1.00.pdf (Section 5.1, p22-23)
for the sake of consistency with the TMC 6100, "7" is unused
for the sake of consistency with the TMC 6100, "11" is unused
********** STSPIN Faults ***********
Data from all four drive units and the dribbler
Used in:
Used in:
(message has no fields)
Used in:
Used in:
The point the robot is trying to move to
The orientation the robot should have when it arrives at its destination
How to run the dribbler
How to navigate around the ball
The command to autochip or autokick
The maximum allowed speed mode
The obstacle avoidance mode to use while moving
Used in:
The robot communication interface
The referee interface
The vision interface
Data about the network connection with the robots, including network-derived values
Used in:
Indicates the time elapsed since the last vision packet was received in ms
Indicates the time elapsed since the last primitive packet was received in ms
Indicates the percentage of primitive packets lost during communication
Used in: ,
Used in:
The robot avoids obstacles in a safe manner
The robot is more aggressive in reaching its destination and may be less safe when avoiding obstacles
Used in: , , ,
The location of the passer
The location of the receiver
The speed of the pass in meters/second
Used in:
Unique steal config for pass defenders
Used in:
The location on the field to block enemy passes from
The pass defender's aggressiveness towards the ball
Used in:
Used in:
needs the _ because pass is a keyword in python
Note that the order the fields are defined here is the order that they are displayed in Thunderscope's Parameters widget, and the order is independent of the field's numbering.
Used in:
The number of passes to sample per robot.
The minimum standard deviation (in meters) of the normal sampling distribution used to generate passes around robots. This STD is used when the robot is stationary.
The rate of growth of the STD as the robot velocity increases.
The rate of growth of the distance offset of the center of the normal distribution as the robot velocity increases. If set to 0, the center of the sampled receiving positions will be the same as the robot's position.
The minimum pass speed (in m/s)
The maximum pass speed (in m/s)
The max speed at which a pass should be received
The number of steps of gradient descent to perform in each iteration
The offset from the sides of the field to place the rectangular sigmoid we use to determine what areas to pass to
The offset from the sides of the field to place the rectangular sigmoid we use to determine what areas to pass to
The weight that being close to the goal will have on the static position quality. Lower, more negative weights result in the distance to the goal having less of an effect.
The estimated delay in seconds between the time we commit to a pass and the time the pass is taken.
The extra time added to the minimum time that it will take a friendly robot to reach the receiving position and orientation.
This controls how heavily we weigh an enemy robot being near the pass receiver when calculating enemy risk to a pass
A value multiplied by the duration that our enemy robot model predicts will take an enemy robot to intercept a pass. 1 implies that our enemy robot model is exactly correct, with higher values meaning that the enemy will take longer to intercept the pass, and lower values meaning that the enemy will intercept the pass earlier than we anticipate.
This controls how heavily we weigh the time the enemy team has to intercept a pass. Increasing this value increases the risk (decreasing the score) associated with a pass that the enemy could intercept.
The distance in meters along the x-axis from the passer that we prefer the receiver to be when receiving a pass on the friendly half. Note that this is a soft limit and the receiver may be further back.
The max distance in meters that the receiver can be from the passer when receiving a pass.
The min distance in meters that the receiver can be from the passer when receiving a pass.
The minimum open angle (in degrees) for an ideal shot on enemy goal from the receiver's position. Any angle greater than this is also considered ideal, where as angles below this are considered less ideal and are given a lower score.
The min score that ratePassShootScore return. Used to limit the cost function from returning a very low score, causing the rest of the cost functions to be ignored.
Cost function visualization parameters
Pass generator visualization parameters
**** Receiver position generation parameters ****
Used in:
Used in:
(message has no fields)
Used in:
The location where the kick will be taken from
The direction the Robot will kick in
How the robot will chip or kick the ball
Used in:
Used in:
Used in: ,
Used in: , , , , , , , , , , , , , , , , , , , , , ,
x coordinate
y coordinate
Used in: , ,
list of polygon vertices
Used in:
Max distance in meters between robot and ball for robot to be considered near the ball
Min distance in meters between robot and ball for robot to be considered far away from the ball
Min time in seconds that robot must stay close to ball for it to be considered near
Min time in seconds that robot must stay away from ball for it to be considered far away
This is only used for simulation. Similar proto in power_frame_msg.proto but with pulse width instead of m_per_s
Used in:
Used in:
This is used on the robots. Similar proto in primitive.proto but with m_per_s instead of pulse width
Used in:
Used in:
Used in:
Battery and capacitor voltages
Used in: ,
The voltage on the robot’s battery, in volts.
voltage on the robot’s capacitor, in volts.
Used in:
Sequence number for the primitive
Epoch timestamp when primitives were assigned
Used in:
Epoch timestamp when primitives were assigned
Whether robots should stay away from the ball (eg. during stop play)
Robot ID to RadioPrimitive map
Used in:
A multiplier to incentivize using the same receiver position as the previous iteration
The number of samples to generate initially for each zone to get a sense of the best zones.
The number of additional samples to generate for the top zones after the initial samples. Used to get a more accurate max score.
The minimum angle (in degrees) between a receiver, the ball, and a previously selected receiver.
Used in:
Used in:
The pass to receive
If set to true, we will only receive and dribble
Used in:
Whether one touch kicks should be enabled or not
The minimum open angle to the goal that we require before taking a one touch kick
TODO (#2570): try to make it as big as possible when tuning The maximum deflection angle that we will attempt a one-touch kick towards the enemy goal
Used in: ,
Used in:
Used in:
Comma-separated list of numbers of robots with broken dribblers
Comma-separated list of numbers of robots with broken chippers
Comma-separated list of numbers of robots with broken kickers
the id of the robot that is logging
the timestamp of when the log was generated
the severity level of the log
the line number of where the log was generated
Used in:
The additional inflation amount (in meters) for the enemy defense area
The minimum velocity of an enemy robot for it to be considered as a dynamic obstacle. Below this speed, the robot is considered to be stationary.
The maximum time into the future that we will predict the enemy robot's position for obstacle avoidance
Used in: ,
Used in: ,
Used in: , ,
Used in:
Ignores frames if our goalie appears in the opponent defense area
Whether or not to ignore invalid camera data. If this value is true, any ball or robot detections that are not within the min and max valid x coordinates will be ignored. If this value is false, all data is collected as normal and not ignored.
When ignoreInvalidCameraData is true, any robot or ball detection with an x-coordinate less than this value is ignored.
When ignoreInvalidCameraData is true, any robot or ball detection with an x-coordinate greater than this value is ignored.
The id of the friendly goalie
The id of the enemy goalie
Yellow if selected, Blue if unselected
Overrides the friendly goalie id provided by the game controller, with FriendlyGoalieId parameter
Overrides the enemy goalie id provided by the game controller, with EnemyGoalieId parameter
Number of dropped detections before we consider the ball not to be in the dribbler
Possession tracker for determining which team has possession of the ball
Max distance between the ball and front of the robot for the robot to be considered touching the ball (in m)
Used in:
The Enemy Threat indicating which enemy to shadow
How far from the enemy the robot will position itself to shadow. If the enemy threat has the ball, it will position itself to block the shot on goal. Otherwise it will try to block the pass to the enemy threat.
Used in:
Used in:
The absolute minimum pass quality we're willing to attempt
The minimum pass quality we're willing to attempt before ramping down the score to abs_min_pass_score
When we're choosing a pass, we start by looking for a pass with a perfect score of 1, and then over time lower the score we're will to accept. This parameter how fast we ramp down to abs_min_pass_score. This is in seconds.
threshold to decide if the ball has been kicked by a robot
threshold to decide if the ball has been kicked by a robot
threshold for the distance between passer and receiver
Used in:
The duration to step the simulation
Used in: , ,
Used in:
(message has no fields)
Used in:
Used in:
Used in:
Used in: , , , , , , , ,
Total seconds of UTC time since Unix epoch
Used in:
Used in:
Used in:
Intermediate destination for the trajectory path to travel to prior to going to the destination.
The time at which a new trajectory is branched off of the last trajectory in path to go towards the sub_destination.
Visual representation of the Validation
Used in:
Used in:
Used in:
Used in:
Used in: , , , , ,
x component
y component
Robot ID to RobotState map for both teams
(message has no fields)