enum Version {
V1_0 = 0;
V1_1 = 1;
}
enum Team {
Self = 0;
Opponent = 1;
Nobody = 2;
}
message Vector2 {
float x = 1;
float y = 2;
}
message TeamInfo {
string team_name = 1;
Version version = 2;
}
message Ball {
Vector2 position = 1;
}
message Wheel {
float left_speed = 1;
float right_speed = 2;
}
message Robot {
Vector2 position = 1;
float rotation = 2;
Wheel wheel = 3;
}
message Field {
repeated Robot self_robots = 1;
repeated Robot opponent_robots = 2;
Ball ball = 3;
int32 tick = 4;
}
message Placement {
repeated Robot robots = 1;
Ball ball = 2;
}
enum ControlType {
Continue = 0;
Reset = 1;
}
message ControlInfo {
ControlType command = 1;
}
上述字段含义如下
- team_name:己方队伍名。
- version:仿真平台版本号。
- left_speed:左轮速(-125 ~ 125)。
- right_speed:右轮速(-125 ~ 125)。
- position:球员位置。
- rotaion:球员指向(采用角度制,取值为-180 ~ 180,逆时针角度减小,顺时针角度增大,在右攻假设的前提下,正右方始终为0°)。
- wheel:球员轮速
- self_robots:己方球员序列(要求长度为5)。
- opponent_robots:对方球员序列(要求长度为5)。
- ball:足球对象。
- tick:比赛时间(单位为1/66秒)。
- robots:己方球员摆位(要求为长度为5的数组)。
- ball:球的摆位。
- Continue:比赛继续。
- Reset:重新摆位。
- command:控制比赛启停。
可能的事件类型如下:
enum EventType {
JudgeResult = 0;
MatchStart = 1;
MatchStop = 2;
FirstHalfStart = 3;
SecondHalfStart = 4;
OvertimeStart = 5;
PenaltyShootoutStart = 6;
}
- JudgeResult:当平台公布裁判结果时发送。参数类型为
JudgeResultEvent
。 - MatchStart:当比赛开始时发送。没有参数。
- MatchStop:当比赛结束时发送。没有参数。
- FirstHalfStart:当上半场开始时发送。没有参数。
- SecondHalfStart:当下半场开始时发送。没有参数。
- OvertimeStart:当加时赛开始时发送。没有参数。
- PenaltyShootoutStart:当点球大战开始时发送。没有参数。
可能的事件参数如下:
message JudgeResultEvent {
enum ResultType {
PlaceKick = 0;
GoalKick = 1;
PenaltyKick = 2;
FreeKickRightTop = 3;
FreeKickRightBot = 4;
FreeKickLeftTop = 5;
FreeKickLeftBot = 6;
}
ResultType type = 1;
Team offensive_team = 2;
string reason = 3;
}
上述字段含义参考。
该项目当前由 西北工业大学V5++团队 编写和维护。保留相应权利。