-
Notifications
You must be signed in to change notification settings - Fork 128
Expand file tree
/
Copy pathtactic.proto
More file actions
169 lines (148 loc) · 5.24 KB
/
Copy pathtactic.proto
File metadata and controls
169 lines (148 loc) · 5.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
syntax = "proto2";
package TbotsProto;
import "proto/geometry.proto";
import "proto/primitive.proto";
import "proto/world.proto";
message AssignedTacticPlayControlParams
{
map<uint32, Tactic> assigned_tactics = 1;
}
message Tactic
{
reserved 2, 7;
oneof tactic
{
AttackerTactic attacker = 1;
CreaseDefenderTactic crease_defender = 3;
DribbleTactic dribble = 4;
GetBehindBallTactic get_behind_ball = 5;
GoalieTactic goalie = 6;
MoveGoalieToGoalLineTactic move_goalie_to_goal_line = 8;
MoveTactic move = 9;
PenaltyKickTactic penalty_kick = 10;
PivotKickTactic pivot_kick = 11;
ReceiverTactic receiver = 12;
ShadowEnemyTactic shadow_enemy = 13;
HaltTactic halt = 14;
PassDefenderTactic pass_defender = 15;
KickOrChipTactic kick_or_chip = 16;
}
}
message AttackerTactic
{
// The best pass so far
optional Pass best_pass_so_far = 1;
// whether we have committed to the pass and will be taking it
required bool pass_committed = 2;
// The point the robot will chip towards if it is unable to shoot and is in danger
// of losing the ball to an enemy
optional Point chip_target = 3;
}
enum CreaseDefenderAlignment
{
LEFT = 0;
RIGHT = 1;
CENTRE = 2;
}
enum BallStealMode
{
// The robot avoids stealing ball/getting possession
IGNORE = 0;
// The robot can steal the ball/try to get possession of the ball
STEAL = 1;
}
message CreaseDefenderTactic
{
// The origin point of the enemy threat
required Point enemy_threat_origin = 1;
// The crease defender alignment with respect to the enemy threat
required CreaseDefenderAlignment crease_defender_alignment = 2;
// The maximum allowed speed mode
required MaxAllowedSpeedMode max_allowed_speed_mode = 3;
// The crease defender's aggressiveness towards the ball
required BallStealMode ball_steal_mode = 4;
}
message DribbleTactic
{
// The destination for dribbling the ball
optional Point dribble_destination = 1;
// The final orientation to face the ball when finishing dribbling
optional Angle final_dribble_orientation = 2;
// whether to allow excessive dribbling, i.e. more than 1 metre at a time
required bool allow_excessive_dribbling = 3;
}
message GetBehindBallTactic
{
// The location where the chick will be taken, i.e. where we expect the ball to be
// when we chip or kick it
required Point ball_location = 1;
// The direction the Robot will chick in
required Angle chick_direction = 2;
}
message GoalieTactic
{
// The maximum allowed speed mode
required MaxAllowedSpeedMode max_allowed_speed_mode = 1;
}
message MoveGoalieToGoalLineTactic {}
message MoveTactic
{
// The point the robot is trying to move to
required Point destination = 1;
// The orientation the robot should have when it arrives at its destination
required Angle final_orientation = 2;
reserved 3, 8;
// How to run the dribbler
required DribblerMode dribbler_mode = 4;
// How to navigate around the ball
required BallCollisionType ball_collision_type = 5;
// The command to autochip or autokick
required AutoChipOrKick auto_chip_or_kick = 6;
// The maximum allowed speed mode
required MaxAllowedSpeedMode max_allowed_speed_mode = 7;
// The obstacle avoidance mode to use while moving
required ObstacleAvoidanceMode obstacle_avoidance_mode = 9;
}
message PassDefenderTactic
{
// The location on the field to block enemy passes from
required Point position_to_block_from = 1;
// The pass defender's aggressiveness towards the ball
required BallStealMode ball_steal_mode = 2;
}
message PenaltyKickTactic {}
message PivotKickTactic
{
// The location where the kick will be taken from
required Point kick_origin = 1;
// The direction the Robot will kick in
required Angle kick_direction = 2;
// How the robot will chip or kick the ball
required AutoChipOrKick auto_chip_or_kick = 3;
}
message ReceiverTactic
{
// The pass to receive
optional Pass pass = 1;
// If set to true, we will only receive and dribble
required bool disable_one_touch_shot = 2;
}
message ShadowEnemyTactic
{
// The Enemy Threat indicating which enemy to shadow
optional EnemyThreat enemy_threat = 1;
// 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.
required double shadow_distance = 2;
}
message HaltTactic {}
message KickOrChipTactic
{
// The location where the kick or chip will be taken from
required Point kick_or_chip_origin = 1;
// The direction the Robot will kick or chip in
required Angle kick_or_chip_direction = 2;
// How the robot will chip or kick the ball
required AutoChipOrKick auto_chip_or_kick = 3;
}