forked from helios-base/helios-base
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathservice.proto
1207 lines (1064 loc) · 27.6 KB
/
service.proto
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
syntax = "proto3";
package protos;
enum ViewWidth {
NARROW = 0;
NORMAL = 1;
WIDE = 2;
}
message Vector2D {
float x = 1;
float y = 2;
float dist = 3;
float angle = 4;
}
message Ball {
Vector2D position = 1;
Vector2D relative_position = 2;
Vector2D seen_position = 3;
Vector2D heard_position = 4;
Vector2D velocity = 5;
Vector2D seen_velocity = 6;
Vector2D heard_velocity = 7;
int32 pos_count = 8;
int32 seen_pos_count = 9;
int32 heard_pos_count = 10;
int32 vel_count = 11;
int32 seen_vel_count = 12;
int32 heard_vel_count = 13;
int32 lost_count = 14;
int32 ghost_count = 15;
float dist_from_self = 16;
float angle_from_self = 17;
}
enum Side {
UNKNOWN = 0;
LEFT = 1;
RIGHT = 2;
}
enum LoggerLevel{
None = 0;
SYSTEM = 0x00000001;
SENSOR = 0x00000002;
WORLD = 0x00000004;
ACTION = 0x00000008;
INTERCEPT = 0x00000010;
KICK = 0x00000020;
HOLD = 0x00000040;
DRIBBLE = 0x00000080;
PASS = 0x00000100;
CROSS = 0x00000200;
SHOOT = 0x00000400;
CLEAR = 0x00000800;
BLOCK = 0x00001000;
MARK = 0x00002000;
POSITIONING = 0x00004000;
ROLE = 0x00008000;
TEAM = 0x00010000;
COMMUNICATION = 0x00020000;
ANALYZER = 0x00040000;
ACTION_CHAIN = 0x00080000;
PLAN = 0x00100000;
// TRAINING = 0x80000000;
// LEVEL_ANY = 0xffffffff;
}
message Player {
Vector2D position = 1;
Vector2D seen_position = 2;
Vector2D heard_position = 3;
Vector2D velocity = 4;
Vector2D seen_velocity = 5;
int32 pos_count = 6;
int32 seen_pos_count = 7;
int32 heard_pos_count = 8;
int32 vel_count = 9;
int32 seen_vel_count = 10;
int32 ghost_count = 11;
float dist_from_self = 12;
float angle_from_self = 13;
int32 id = 14;
Side side = 15;
int32 uniform_number = 16;
int32 uniform_number_count = 17;
bool is_goalie = 18;
float body_direction = 19;
int32 body_direction_count = 20;
float face_direction = 21;
int32 face_direction_count = 22;
float point_to_direction = 23;
int32 point_to_direction_count = 24;
bool is_kicking = 25;
float dist_from_ball = 26;
float angle_from_ball = 27;
int32 ball_reach_steps = 28;
bool is_tackling = 29;
int32 type_id = 30;
}
message Self {
Vector2D position = 1;
Vector2D seen_position = 2;
Vector2D heard_position = 3;
Vector2D velocity = 4;
Vector2D seen_velocity = 5;
int32 pos_count = 6;
int32 seen_pos_count = 7;
int32 heard_pos_count = 8;
int32 vel_count = 9;
int32 seen_vel_count = 10;
int32 ghost_count = 11;
int32 id = 12;
Side side = 13;
int32 uniform_number = 14;
int32 uniform_number_count = 15;
bool is_goalie = 16;
float body_direction = 17;
int32 body_direction_count = 18;
float face_direction = 19;
int32 face_direction_count = 20;
float point_to_direction = 21;
int32 point_to_direction_count = 22;
bool is_kicking = 23;
float dist_from_ball = 24;
float angle_from_ball = 25;
int32 ball_reach_steps = 26;
bool is_tackling = 27;
float relative_neck_direction = 28;
float stamina = 29;
bool is_kickable = 30;
float catch_probability = 31;
float tackle_probability = 32;
float foul_probability = 33;
ViewWidth view_width = 34;
int32 type_id = 35;
float kick_rate = 36;
}
enum InterceptActionType {
UNKNOWN_Intercept_Action_Type = 0;
OMNI_DASH = 1;
TURN_FORWARD_DASH = 2;
TURN_BACKWARD_DASH = 3;
}
message InterceptInfo {
InterceptActionType action_type = 1;
int32 turn_steps = 2;
float turn_angle = 3;
int32 dash_steps = 4;
float dash_power = 5;
float dash_dir = 6;
Vector2D final_self_position = 7;
float final_ball_dist = 8;
float final_stamina = 9;
float value = 10;
}
message InterceptTable {
int32 self_reach_steps = 1;
int32 first_teammate_reach_steps = 2;
int32 second_teammate_reach_steps = 3;
int32 first_opponent_reach_steps = 4;
int32 second_opponent_reach_steps = 5;
int32 first_teammate_id = 6;
int32 second_teammate_id = 7;
int32 first_opponent_id = 8;
int32 second_opponent_id = 9;
repeated InterceptInfo self_intercept_info = 10;
}
enum GameModeType {
BeforeKickOff = 0;
TimeOver = 1;
PlayOn = 2;
KickOff_ = 3;
KickIn_ = 4;
FreeKick_ = 5;
CornerKick_ = 6;
GoalKick_ = 7;
AfterGoal_ = 8;
OffSide_ = 9;
PenaltyKick_ = 10;
FirstHalfOver = 11;
Pause = 12;
Human = 13;
FoulCharge_ = 14;
FoulPush_ = 15;
FoulMultipleAttacker_ = 16;
FoulBallOut_ = 17;
BackPass_ = 18;
FreeKickFault_ = 19;
CatchFault_ = 20;
IndFreeKick_ = 21;
PenaltySetup_ = 22;
PenaltyReady_ = 23;
PenaltyTaken_ = 24;
PenaltyMiss_ = 25;
PenaltyScore_ = 26;
IllegalDefense_ = 27;
PenaltyOnfield_ = 28;
PenaltyFoul_ = 29;
GoalieCatch_ = 30;
ExtendHalf = 31;
MODE_MAX = 32;
}
message WorldModel {
InterceptTable intercept_table = 1;
string our_team_name = 2;
string their_team_name = 3;
Side our_side = 4;
int32 last_set_play_start_time = 5;
Self self = 6;
Ball ball = 7;
repeated Player teammates = 8;
repeated Player opponents = 9;
repeated Player unknowns = 10;
map<int32, Player> our_players_dict = 11;
map<int32, Player> their_players_dict = 12;
int32 our_goalie_uniform_number = 13;
int32 their_goalie_uniform_number = 14;
float offside_line_x = 15;
int32 ofside_line_x_count = 16;
int32 kickable_teammate_id = 17;
int32 kickable_opponent_id = 18;
Side last_kick_side = 19;
int32 last_kicker_uniform_number = 20;
int32 cycle = 21;
GameModeType game_mode_type = 22;
int32 left_team_score = 23;
int32 right_team_score = 24;
bool is_our_set_play = 25;
bool is_their_set_play = 26;
int32 stoped_cycle = 27;
int32 our_team_score = 28;
int32 their_team_score = 29;
bool is_penalty_kick_mode = 30;
map<int32, Vector2D> helios_home_positions = 31;
}
message State {
AgentType agent_type = 1;
WorldModel world_model = 2;
WorldModel full_world_model = 3;
}
enum AgentType {
PlayerT = 0;
CoachT = 1;
TrainerT = 2;
}
message InitMessage {
AgentType agent_type = 1;
bool debug_mode = 2;
}
message Dash {
float power = 1;
float relative_direction = 2;
}
message Turn {
float relative_direction = 1;
}
message Kick {
float power = 1;
float relative_direction = 2;
}
message Tackle {
float power_or_dir = 1;
bool foul = 2;
}
message Catch {
}
message Move {
float x = 1;
float y = 2;
}
message TurnNeck {
float moment = 1;
}
message ChangeView {
ViewWidth view_width = 1;
}
message BallMessage {
Vector2D ball_position = 1;
Vector2D ball_velocity = 2;
}
message PassMessage {
int32 receiver_uniform_number = 1;
Vector2D receiver_point = 2;
Vector2D ball_position = 3;
Vector2D ball_velocity = 4;
}
message InterceptMessage {
bool our = 1;
int32 uniform_number = 2;
int32 cycle = 3;
}
message GoalieMessage {
int32 goalie_uniform_number = 1;
Vector2D goalie_position = 2;
float goalie_body_direction = 3;
}
message GoalieAndPlayerMessage {
int32 goalie_uniform_number = 1;
Vector2D goalie_position = 2;
float goalie_body_direction = 3;
int32 player_uniform_number = 4;
Vector2D player_position = 5;
}
message OffsideLineMessage {
float offside_line_x = 1;
}
message DefenseLineMessage {
float defense_line_x = 1;
}
message WaitRequestMessage {
}
message SetplayMessage {
int32 wait_step = 1;
}
message PassRequestMessage {
Vector2D target_point = 1;
}
message StaminaMessage {
float stamina = 1;
}
message RecoveryMessage {
float recovery = 1;
}
message StaminaCapacityMessage {
float stamina_capacity = 1;
}
message DribbleMessage {
Vector2D target_point = 1;
int32 queue_count = 2;
}
message BallGoalieMessage {
Vector2D ball_position = 1;
Vector2D ball_velocity = 2;
Vector2D goalie_position = 3;
float goalie_body_direction = 4;
}
message OnePlayerMessage {
int32 uniform_number = 1;
Vector2D position = 2;
}
message TwoPlayerMessage {
int32 first_uniform_number = 1;
Vector2D first_position = 2;
int32 second_uniform_number = 3;
Vector2D second_position = 4;
}
message ThreePlayerMessage {
int32 first_uniform_number = 1;
Vector2D first_position = 2;
int32 second_uniform_number = 3;
Vector2D second_position = 4;
int32 third_uniform_number = 5;
Vector2D third_position = 6;
}
message SelfMessage {
Vector2D self_position = 1;
float self_body_direction = 2;
float self_stamina = 3;
}
message TeammateMessage {
int32 uniform_number = 1;
Vector2D position = 2;
float body_direction = 3;
}
message OpponentMessage {
int32 uniform_number = 1;
Vector2D position = 2;
float body_direction = 3;
}
message BallPlayerMessage {
Vector2D ball_position = 1;
Vector2D ball_velocity = 2;
int32 uniform_number = 3;
Vector2D player_position = 4;
float body_direction = 5;
}
message Say {
oneof message {
BallMessage ball_message = 1;
PassMessage pass_message = 2;
InterceptMessage intercept_message = 3;
GoalieMessage goalie_message = 4;
GoalieAndPlayerMessage goalie_and_player_message = 5;
OffsideLineMessage offside_line_message = 6;
DefenseLineMessage defense_line_message = 7;
WaitRequestMessage wait_request_message = 8;
SetplayMessage setplay_message = 9;
PassRequestMessage pass_request_message = 10;
StaminaMessage stamina_message = 11;
RecoveryMessage recovery_message = 12;
StaminaCapacityMessage stamina_capacity_message = 13;
DribbleMessage dribble_message = 14;
BallGoalieMessage ball_goalie_message = 15;
OnePlayerMessage one_player_message = 16;
TwoPlayerMessage two_player_message = 17;
ThreePlayerMessage three_player_message = 18;
SelfMessage self_message = 19;
TeammateMessage teammate_message = 20;
OpponentMessage opponent_message = 21;
BallPlayerMessage ball_player_message = 22;
}
}
message PointTo {
float x = 1;
float y = 2;
}
message PointToOf {
}
message AttentionTo {
Side side = 1;
int32 unum = 2;
}
message AttentionToOf {
}
message AddText{
LoggerLevel level = 1;
string message = 2;
}
message AddPoint{
LoggerLevel level = 1;
Vector2D point = 2;
string color = 3;
}
message AddLine{
LoggerLevel level = 1;
Vector2D start = 2;
Vector2D end = 3;
string color = 4;
}
message AddArc{
LoggerLevel level = 1;
Vector2D center = 2;
float radius = 3;
float start_angle = 4;
float span_angel = 5;
string color = 6;
}
message AddCircle{
LoggerLevel level = 1;
Vector2D center = 2;
float radius = 3;
string color = 4;
bool fill = 5;
}
message AddTriangle{
LoggerLevel level = 1;
Vector2D point1 = 2;
Vector2D point2 = 3;
Vector2D point3 = 4;
string color = 5;
bool fill = 6;
}
message AddRectangle{
LoggerLevel level = 1;
float left = 2;
float top = 3;
float length = 4;
float width = 5;
string color = 6;
bool fill = 7;
}
message AddSector{
LoggerLevel level = 1;
Vector2D center = 2;
float min_radius = 3;
float max_radius = 4;
float start_angle = 5;
float span_angel = 6;
string color = 7;
bool fill = 8;
}
message AddMessage{
LoggerLevel level = 1;
Vector2D position = 2;
string message = 3;
string color = 4;
}
message Log {
oneof log {
AddText add_text = 1;
AddPoint add_point = 2;
AddLine add_line = 3;
AddArc add_arc = 4;
AddCircle add_circle = 5;
AddTriangle add_triangle = 6;
AddRectangle add_rectangle = 7;
AddSector add_sector = 8;
AddMessage add_message = 9;
}
}
message DebugClient {
string message = 1;
}
message Body_GoToPoint { // todo more variables
Vector2D target_point = 1;
float distance_threshold = 2;
float max_dash_power = 3;
}
message Body_SmartKick { // todo more variables
Vector2D target_point = 1;
float first_speed = 2;
float first_speed_threshold = 3;
int32 max_steps = 4;
}
message Bhv_BeforeKickOff {
Vector2D point = 1;
}
message Bhv_BodyNeckToBall {
}
message Bhv_BodyNeckToPoint {
Vector2D point = 1;
}
message Bhv_Emergency {
}
message Bhv_GoToPointLookBall {
Vector2D target_point = 1;
float distance_threshold = 2;
float max_dash_power = 3;
}
message Bhv_NeckBodyToBall {
float angle_buf = 1;
}
message Bhv_NeckBodyToPoint {
Vector2D point = 1;
float angle_buf = 2;
}
message Bhv_ScanField {
}
message Body_AdvanceBall {
}
message Body_ClearBall {
}
message Body_Dribble {
Vector2D target_point = 1;
float distance_threshold = 2;
float dash_power = 3;
int32 dash_count = 4;
bool dodge = 5;
}
message Body_GoToPointDodge {
Vector2D target_point = 1;
float dash_power = 2;
}
message Body_HoldBall {
bool do_turn = 1;
Vector2D turn_target_point = 2;
Vector2D kick_target_point = 3;
}
message Body_Intercept {
bool save_recovery = 1;
Vector2D face_point = 2;
}
message Body_KickOneStep {
Vector2D target_point = 1;
float first_speed = 2;
bool force_mode = 3;
}
message Body_StopBall {
}
message Body_StopDash {
bool save_recovery = 1;
}
message Body_TackleToPoint {
Vector2D target_point = 1;
float min_probability = 2;
float min_speed = 3;
}
message Body_TurnToAngle {
float angle = 1;
}
message Body_TurnToBall {
int32 cycle = 1;
}
message Body_TurnToPoint {
Vector2D target_point = 1;
int32 cycle = 2;
}
message Focus_MoveToPoint {
Vector2D target_point = 1;
}
message Focus_Reset {
}
message Neck_ScanField {
}
message Neck_ScanPlayers { // todo min/max_angle
}
message Neck_TurnToBallAndPlayer {
Side side = 1;
int32 uniform_number = 2;
int32 count_threshold = 3;
}
message Neck_TurnToBallOrScan {
int32 count_threshold = 1;
}
message Neck_TurnToBall {
}
message Neck_TurnToGoalieOrScan {
int32 count_threshold = 1;
}
message Neck_TurnToLowConfTeammate {
}
message Neck_TurnToPlayerOrScan {
Side side = 1;
int32 uniform_number = 2;
int32 count_threshold = 3;
}
message Neck_TurnToPoint {
Vector2D target_point = 1;
}
message Neck_TurnToRelative {
float angle = 1;
}
message View_ChangeWidth {
ViewWidth view_width = 1;
}
message View_Normal {
}
message View_Synch {
}
message View_Wide {
}
message HeliosGoalie {}
message HeliosGoalieMove {}
message HeliosGoalieKick {}
message HeliosShoot {}
message HeliosChainAction {
bool direct_pass = 1;
bool lead_pass = 2;
bool through_pass = 3;
bool short_dribble = 4;
bool long_dribble = 5;
bool cross = 6;
bool simple_pass = 7;
bool simple_dribble = 8;
bool simple_shoot = 9;
}
message HeliosBasicOffensive {}
message HeliosBasicMove {}
message HeliosSetPlay {}
message HeliosPenalty {}
message HeliosCommunicaion {}
message PlayerAction {
oneof action {
Dash dash = 1;
Turn turn = 2;
Kick kick = 3;
Tackle tackle = 4;
Catch catch = 5;
Move move = 6;
TurnNeck turn_neck = 7;
ChangeView change_view = 8;
Say say = 9;
PointTo point_to = 10;
PointToOf point_to_of = 11;
AttentionTo attention_to = 12;
AttentionToOf attention_to_of = 13;
Log log = 14;
DebugClient debug_client = 15;
Body_GoToPoint body_go_to_point = 16;
Body_SmartKick body_smart_kick = 17;
Bhv_BeforeKickOff bhv_before_kick_off = 18;
Bhv_BodyNeckToBall bhv_body_neck_to_ball = 19;
Bhv_BodyNeckToPoint bhv_body_neck_to_point = 20;
Bhv_Emergency bhv_emergency = 21;
Bhv_GoToPointLookBall bhv_go_to_point_look_ball = 22;
Bhv_NeckBodyToBall bhv_neck_body_to_ball = 23;
Bhv_NeckBodyToPoint bhv_neck_body_to_point = 24;
Bhv_ScanField bhv_scan_field = 25;
Body_AdvanceBall body_advance_ball = 26;
Body_ClearBall body_clear_ball = 27;
Body_Dribble body_dribble = 28;
Body_GoToPointDodge body_go_to_point_dodge = 29;
Body_HoldBall body_hold_ball = 30;
Body_Intercept body_intercept = 31;
Body_KickOneStep body_kick_one_step = 32;
Body_StopBall body_stop_ball = 33;
Body_StopDash body_stop_dash = 34;
Body_TackleToPoint body_tackle_to_point = 35;
Body_TurnToAngle body_turn_to_angle = 36;
Body_TurnToBall body_turn_to_ball = 37;
Body_TurnToPoint body_turn_to_point = 38;
Focus_MoveToPoint focus_move_to_point = 39;
Focus_Reset focus_reset = 40;
Neck_ScanField neck_scan_field = 41;
Neck_ScanPlayers neck_scan_players = 42;
Neck_TurnToBallAndPlayer neck_turn_to_ball_and_player = 43;
Neck_TurnToBallOrScan neck_turn_to_ball_or_scan = 44;
Neck_TurnToBall neck_turn_to_ball = 45;
Neck_TurnToGoalieOrScan neck_turn_to_goalie_or_scan = 46;
Neck_TurnToLowConfTeammate neck_turn_to_low_conf_teammate = 47;
Neck_TurnToPlayerOrScan neck_turn_to_player_or_scan = 48;
Neck_TurnToPoint neck_turn_to_point = 49;
Neck_TurnToRelative neck_turn_to_relative = 50;
View_ChangeWidth view_change_width = 51;
View_Normal view_normal = 52;
View_Synch view_synch = 53;
View_Wide view_wide = 54;
HeliosGoalie helios_goalie = 55;
HeliosGoalieMove helios_goalie_move = 56;
HeliosGoalieKick helios_goalie_kick = 57;
HeliosShoot helios_shoot = 58;
HeliosChainAction helios_chain_action = 59;
HeliosBasicOffensive helios_basic_offensive = 60;
HeliosBasicMove helios_basic_move = 61;
HeliosSetPlay helios_set_play = 62;
HeliosPenalty helios_penalty = 63;
HeliosCommunicaion helios_communication = 64;
}
}
message PlayerActions {
repeated PlayerAction actions = 1;
}
message ChangePlayerType {
int32 uniform_number = 1;
int32 type = 2;
}
message DoHeliosSubstitute {}
message DoHeliosSayPlayerTypes {}
message CoachAction {
oneof action {
ChangePlayerType change_player_types = 1;
DoHeliosSubstitute do_helios_substitute = 2;
DoHeliosSayPlayerTypes do_helios_say_player_types = 3;
}
}
message CoachActions {
repeated CoachAction actions = 1;
}
message DoKickOff {}
message DoMoveBall {
Vector2D position = 1;
Vector2D velocity = 2;
}
message DoMovePlayer {
bool our_side = 1;
int32 uniform_number = 2;
Vector2D position = 3;
float body_direction = 4;
}
message DoRecover {}
message DoChangeMode {
GameModeType game_mode_type = 1;
Side side = 2; //some of the game mode need to know the side
}
message DoChangePlayerType {
bool our_side = 1;
int32 uniform_number = 2;
int32 type = 3;
}
message TrainerAction {
oneof action {
DoKickOff do_kick_off = 1;
DoMoveBall do_move_ball = 2;
DoMovePlayer do_move_player = 3;
DoRecover do_recover = 4;
DoChangeMode do_change_mode = 5;
DoChangePlayerType do_change_player_type = 6;
}
}
message TrainerActions {
repeated TrainerAction actions = 1;
}
message ServerParam {
AgentType agent_type = 1;
float inertia_moment = 2;
float player_size = 3;
float player_decay = 4;
float player_rand = 5;
float player_weight = 6;
float player_speed_max = 7;
float player_accel_max = 8;
float stamina_max = 9;
float stamina_inc_max = 10;
float recover_init = 11;
float recover_dec_thr = 12;
float recover_min = 13;
float recover_dec = 14;
float effort_init = 15;
float effort_dec_thr = 16;
float effort_min = 17;
float effort_dec = 18;
float effort_inc_thr = 19;
float effort_inc = 20;
float kick_rand = 21;
bool team_actuator_noise = 22;
float player_rand_factor_l = 23;
float player_rand_factor_r = 24;
float kick_rand_factor_l = 25;
float kick_rand_factor_r = 26;
float ball_size = 27;
float ball_decay = 28;
float ball_rand = 29;
float ball_weight = 30;
float ball_speed_max = 31;
float ball_accel_max = 32;
float dash_power_rate = 33;
float kick_power_rate = 34;
float kickable_margin = 35;
float control_radius = 36;
float control_radius_width = 37;
float max_power = 38;
float min_power = 39;
float max_moment = 40;
float min_moment = 41;
float max_neck_moment = 42;
float min_neck_moment = 43;
float max_neck_angle = 44;
float min_neck_angle = 45;
float visible_angle = 46;
float visible_distance = 47;
float wind_dir = 48;
float wind_force = 49;
float wind_angle = 50;
float wind_rand = 51;
float kickable_area = 52;
float catch_area_l = 53;
float catch_area_w = 54;
float catch_probability = 55;
int32 goalie_max_moves = 56;
float corner_kick_margin = 57;
float offside_active_area_size = 58;
bool wind_none = 59;
bool use_wind_random = 60;
int32 coach_say_count_max = 61;
int32 coach_say_msg_size = 62;
int32 clang_win_size = 63;
int32 clang_define_win = 64;
int32 clang_meta_win = 65;
int32 clang_advice_win = 66;
int32 clang_info_win = 67;
int32 clang_mess_delay = 68;
int32 clang_mess_per_cycle = 69;
int32 half_time = 70;
int32 simulator_step = 71;
int32 send_step = 72;
int32 recv_step = 73;
int32 sense_body_step = 74;
int32 lcm_step = 75;
int32 player_say_msg_size = 76;
int32 player_hear_max = 77;
int32 player_hear_inc = 78;
int32 player_hear_decay = 79;
int32 catch_ban_cycle = 80;
int32 slow_down_factor = 81;
bool use_offside = 82;
bool kickoff_offside = 83;
float offside_kick_margin = 84;
float audio_cut_dist = 85;
float dist_quantize_step = 86;
float landmark_dist_quantize_step = 87;
float dir_quantize_step = 88;
float dist_quantize_step_l = 89;
float dist_quantize_step_r = 90;
float landmark_dist_quantize_step_l = 91;
float landmark_dist_quantize_step_r = 92;
float dir_quantize_step_l = 93;
float dir_quantize_step_r = 94;
bool coach_mode = 95;
bool coach_with_referee_mode = 96;
bool use_old_coach_hear = 97;
float slowness_on_top_for_left_team = 98;
float slowness_on_top_for_right_team = 99;
int32 start_goal_l = 100;
int32 start_goal_r = 101;
bool fullstate_l = 102;
bool fullstate_r = 103;
int32 drop_ball_time = 104;