92 lines
6.0 KiB
Markdown
92 lines
6.0 KiB
Markdown
# RoboMaster 2026 机甲大师高校系列赛通信协议
|
|
|
|
**版本**: V1.2.0
|
|
**发布日期**: 2026年02月
|
|
|
|
---
|
|
|
|
## 1. 串口协议
|
|
|
|
### 1.1 串口协议格式
|
|
|
|
通信方式为串口,配置为:
|
|
- **常规链路波特率**: 115200
|
|
- **图传链路波特率**: 921600
|
|
- **数据位**: 8位
|
|
- **停止位**: 1位
|
|
- **硬件流控**: 无
|
|
- **校验位**: 无
|
|
|
|
#### 表 1-1 通信协议格式
|
|
|
|
| 字段 | 长度 | 说明 |
|
|
|:---|:---:|:---|
|
|
| frame_header | 5-byte | 帧头 |
|
|
| cmd_id | 2-byte | 命令码 |
|
|
| data | n-byte | 数据 |
|
|
| frame_tail | 2-byte | CRC16 整包校验 |
|
|
|
|
#### 表 1-2 frame_header 格式
|
|
|
|
| 字段 | 长度 | 说明 |
|
|
|:---|:---:|:---|
|
|
| SOF | 1-byte | 起始字节 |
|
|
| data_length | 2-byte | 数据长度 |
|
|
| seq | 1-byte | 包序号 |
|
|
| CRC8 | 1-byte | 帧头 CRC8 校验 |
|
|
|
|
#### 表 1-3 帧头详细定义
|
|
|
|
| 域 | 偏移位置 | 大小(字节) | 详细描述 |
|
|
|:---|:---:|:---:|:---|
|
|
| SOF | 0 | 1 | 数据帧起始字节,固定值为 0xA5 |
|
|
| data_length | 1 | 2 | 数据帧中 data 的长度 |
|
|
| seq | 3 | 1 | 包序号 |
|
|
| CRC8 | 4 | 1 | 帧头 CRC8 校验 |
|
|
|
|
> **数据链路说明**: 裁判系统串口数据链路有三种:**常规链路**、**图传链路**、**雷达无线链路**。
|
|
|
|
---
|
|
|
|
### 1.2 命令码 ID 和常规链路数据说明
|
|
|
|
#### 表 1-4 命令码 ID 一览
|
|
|
|
| 命令码 | 数据段长度 | 说明 | 发送方/接收方 | 所属数据链路 |
|
|
|:---|:---:|:---|:---|:---:|
|
|
| 0x0001 | 11 | 比赛状态数据,固定以 1Hz 频率发送 | 服务器→全体机器人 | 常规链路 |
|
|
| 0x0002 | 1 | 比赛结果数据,比赛结束触发发送 | 服务器→全体机器人 | 常规链路 |
|
|
| 0x0003 | 16 | 机器人血量数据,固定以 3Hz 频率发送 | 服务器→全体机器人 | 常规链路 |
|
|
| 0x0101 | 4 | 场地事件数据,固定以 1Hz 频率发送 | 服务器→己方全体机器人 | 常规链路 |
|
|
| 0x0104 | 3 | 裁判警告数据,己方判罚/判负时触发发送,其余时间以 1Hz 频率发送 | 服务器→被判罚方全体机器人 | 常规链路 |
|
|
| 0x0105 | 3 | 飞镖发射相关数据,固定以 1Hz 频率发送 | 服务器→己方全体机器人 | 常规链路 |
|
|
| 0x0201 | 13 | 机器人性能体系数据,固定以 10Hz 频率发送 | 主控模块→对应机器人 | 常规链路 |
|
|
| 0x0202 | 14 | 实时底盘缓冲能量和射击热量数据,固定以 10Hz 频率发送 | 主控模块→对应机器人 | 常规链路 |
|
|
| 0x0203 | 16 | 机器人位置数据,固定以 1Hz 频率发送 | 主控模块→对应机器人 | 常规链路 |
|
|
| 0x0204 | 8 | 机器人增益和底盘能量数据,固定以 3Hz 频率发送 | 服务器→对应机器人 | 常规链路 |
|
|
| 0x0206 | 1 | 伤害状态数据,伤害发生后发送 | 主控模块→对应机器人 | 常规链路 |
|
|
| 0x0207 | 7 | 实时射击数据,弹丸发射后发送 | 主控模块→对应机器人 | 常规链路 |
|
|
| 0x0208 | 6 | 允许发弹量,固定以 10Hz 频率发送 | 服务器→己方英雄、步兵、哨兵、空中机器人 | 常规链路 |
|
|
| 0x0209 | 5 | 机器人 RFID 模块状态,固定以 3Hz 频率发送 | 服务器→己方装有 RFID 模块的机器人 | 常规链路 |
|
|
| 0x020A | 6 | 飞镖选手端指令数据,固定以 3Hz 频率发送 | 服务器→己方飞镖机器人 | 常规链路 |
|
|
| 0x020B | 40 | 地面机器人位置数据,固定以 1Hz 频率发送 | 服务器→己方哨兵机器人 | 常规链路 |
|
|
| 0x020C | 2 | 雷达标记进度数据,固定以 1Hz 频率发送 | 服务器→己方雷达机器人 | 常规链路 |
|
|
| 0x020D | 6 | 哨兵自主决策信息同步,固定以 1Hz 频率发送 | 服务器→己方哨兵机器人 | 常规链路 |
|
|
| 0x020E | 1 | 雷达自主决策信息同步,固定以 1Hz 频率发送 | 服务器→己方雷达机器人 | 常规链路 |
|
|
| 0x0301 | 118 | 机器人交互数据,发送方触发发送,频率上限为 30Hz | - | 常规链路 |
|
|
| 0x0302 | 30 | 自定义控制器与机器人交互数据,发送方触发发送,频率上限为 30Hz | 自定义控制器→选手端图传连接的机器人 | 图传链路 |
|
|
| 0x0303 | 15 | 选手端小地图交互数据,选手端触发发送 | 选手端点击→服务器→发送方选择的己方机器人 | 常规链路 |
|
|
| 0x0305 | 24 | 选手端小地图接收雷达数据,频率上限为 5Hz | 雷达→服务器→己方所有选手端 | 常规链路 |
|
|
| 0x0306 | 8 | 自定义控制器与选手端交互数据,发送方触发发送,频率上限为 30Hz | 自定义控制器→选手端 | - |
|
|
| 0x0307 | 103 | 选手端小地图接收路径数据,频率上限为 1Hz | 哨兵/半自动控制机器人→对应操作手选手端 | 常规链路 |
|
|
| 0x0308 | 34 | 选手端小地图接收机器人数据,频率上限为 3Hz | 己方机器人→己方选手端 | 常规链路 |
|
|
| 0x0309 | 30 | 自定义控制器接收机器人数据,频率上限为 10Hz | 己方机器人→对应操作手选手端连接的自定义控制器 | 图传链路 |
|
|
| 0x0310 | 300 | 机器人发送给自定义客户端的数据,频率上限为 50Hz | 己方机器人→图传链路→对应操作手选手端连接的自定义客户端 | 图传链路 |
|
|
| 0x0311 | 30 | 自定义客户端发送给机器人的自定义指令,频率上限为 75Hz | 对应操作手选手端连接的自定义客户端→图传链路→己方机器人 | 图传链路 |
|
|
| 0x0A01 | 24 | 对方机器人的位置坐标,频率上限为 10Hz | 信号发射源→雷达 | 雷达无线链路 |
|
|
| 0x0A02 | 12 | 对方机器人的血量信息,频率上限为 10Hz | 信号发射源→雷达 | 雷达无线链路 |
|
|
| 0x0A03 | 10 | 对方机器人的剩余发弹量信息,频率上限为 10Hz | 信号发射源→雷达 | 雷达无线链路 |
|
|
| 0x0A04 | 8 | 对方队伍的宏观状态信息,频率上限为 10Hz | 信号发射源→雷达 | 雷达无线链路 |
|
|
| 0x0A05 | 36 | 对方各机器人当前增益效果,频率上限为 10Hz | 信号发射源→雷达 | 雷达无线链路 |
|
|
| 0x0A06 | 6 | 对方干扰波密钥,频率上限为 10Hz | 信号发射源→雷达 | 雷达无线链路 |
|