厦门大学嘉庚学院 TCR 战队的 RoboMaster 2026 雷达站正式开源版。ground_vision 负责地面识别、定位、融合和裁判链路,radar/CombatRadarSdr 负责单块 AD9361 的无线电收发与解码,二者通过本机 TCP 交换信息波、干扰密钥、阵营和干扰等级;counter_drone 是独立的长焦视觉反制进程,通过 A7 链路接收地面端统计的反制次数。当前无线电稳定主线是已经过实战验证的单板、单通道、分阶段切换方案;双波同时解析和三板融合均只作为实验代码与未来方向保留。
当前状态:Stable v1.1.0。v1.1.0 在 v1.0.0 地面视觉与无线电主线之上补充完整反制源码、A7 次数联动、独立依赖、脱敏权重附件和无硬件测试。单板单通道无线电与默认反制前三次具有实战依据;第 3 次后的模型/曝光切换已实现软件链路,但仍列为待实机验证能力。
- 在 HKUST ENTERPRIZE 2025 地面视觉方案上,接入无线电信息波、干扰密钥、非坐标信息转发以及视觉/无线电坐标的新鲜度融合。
- 在南理工江阴 Combat 2026 无线电方案上,重构地面程序通信角色,加入低延迟软判决信息波解码、连接代次隔离和按命令优先级的 latest-value 发送队列。
- 固化单板单通道比赛链路:同一块 AD9361 先接收一级干扰波,一级成功后切到二级干扰波,二级成功后再切到信息波;严格解码后的
0x0A01坐标直接进入地面融合模块。该分阶段方案已完成实战验证。 - 提供单板比赛模式以及用于研发联调的收发同时、仅收、仅发、数据监控和比赛控制模拟器。研发工具的存在不表示双波同时解析已经过实战验证。
- 完整公开独立无人机反制进程:长焦 YOLO 检测、Boresight 标定、云台角度协议、视频录制,以及地面端
0x020C计数到反制端 A7 状态机的双机通信。
在当前比赛配置中,新鲜有效的信息波坐标为主要来源,地面视觉负责无线电过期或暂时失效时的回退。按战队现有实战统计口径,正常状态下单场最高达到 2070+ 秒,正常场次平均稳定在 2050+ 秒。这些秒数是累计性能统计值,不等同于单局自然时长;仓库仅陈述已经留有比赛截图或日志证据的结论。
官方展示中的厦门大学嘉庚学院 TCR 战队成绩:2071.7 秒。
赛场雷达 MVP 展示:易伤时长 2056.7 秒、最多锁定 5 个单位、解析成功 2/2、有效反制时长 135.0 秒。以上作为整套雷达站的比赛表现展示,不用于拆分个人模块贡献。
当前可由官方截图、保存日志、赛场录包或自动测试核对的结果。详细口径与证据边界见 实验结果。
flowchart LR
CAM[工业相机] --> VIS[车辆/装甲板识别与跟踪]
VIS --> VF[视觉坐标]
R0[单块 AD9361] --> DEC0[单通道状态机<br/>一级 → 二级 → 信息波]
DEC0 --> RS[无线电 TCP Server\n127.0.0.1:5000]
RS -->|0x0A01~0x0A06 裁判帧| RB[ground_vision RadioBridge Client]
RB --> PF[视觉/无线电位置融合]
VF --> PF
PF --> REF[裁判系统串口/雷达数据]
RB --> AUX[非坐标信息转发]
CTRL[地面端阵营与等级] -->|0xFD/0xFF 控制包| RS
REF -->|0x020C 次数 → A7| CD[独立 counter_drone<br/>长焦检测与配置切换]
CCAM[长焦工业相机] --> CD
CD -->|目标角度 / 独立串口| GIMBAL[云台控制板]
EXP[实验性三板融合/0x0A07] -. 未来方向 .-> RS
当前比赛状态机只走单通道“一级成功 → 二级成功 → 信息波”,任一时刻不同时解析两种波形:
完整的进程关系、帧格式与故障隔离策略见 系统架构。
.
├── ground_vision/ # 地面识别、定位、显示、裁判系统与无线电桥
├── radar/CombatRadarSdr/ # 单板无线电 PHY、协议、解码、GUI及实验代码
├── counter_drone/ # 长焦反制、Boresight、A7次数联动与云台控制
├── docs/ # 架构、部署和射频安全文档
│ ├── MODEL_TRAINING.md # 港科数据集三模型训练、验证与 TensorRT 导出
│ ├── PRIVACY_REVIEW.md # 公开前敏感信息、图片与比赛参数复核
│ ├── EXPERIMENT_RESULTS.md # 现有录包/日志结果与证据边界
│ ├── PUBLIC_IQ_SAMPLES.md # 公开赛场 IQ 测试包下载与一键复现
│ ├── assets/ # 系统图、状态机、实战证明和可复现绘图源
│ └── DEPLOYMENT_RECORD.md # 正式版软件验证结果
├── tools/release_audit.sh # 大文件、私有路径、损坏源码和媒体门禁
├── tools/license_audit.sh # mixed-license 范围与许可证完整性门禁
├── tools/docs_audit.py # 文档相对链接和 README 必备章节检查
├── LICENSES/ # 上游许可副本及许可状态说明
├── LICENSE # TCR 原创贡献 Apache-2.0 许可及适用范围
├── CHANGES_FROM_UPSTREAM.md # 与南理工江阴原始压缩包的可审计差异
├── CHANGES_FROM_HKUST.md # 地面视觉与反制相对港科上游的主要修改
├── CHANGELOG.md # 公开版本变更记录
├── CITATION.md # TCR 整体项目与两项上游的引用格式
├── CONTRIBUTORS.md # 核心开发者、角色与项目归属
├── THIRD_PARTY_NOTICES.md # 第三方代码、SDK、媒体和场地素材清单
├── MODEL_MANIFEST.md # 模型产物、类别和自行训练发布策略
└── NOTICE.md # 来源、署名与修改声明
| 模块 | 已开发/验证配置 | 说明 |
|---|---|---|
| 地面视觉 | Ubuntu 22.04、Python 3.10、NVIDIA GPU、海康机器人 USB3 工业相机 | 相机内参、畸变参数和序列号必须重新标定/填写 |
| 视觉推理 | PyTorch 2.7.1+cu128、Ultralytics 8.3.163、TensorRT 10.12 | TensorRT engine 与 GPU/版本强相关,建议在目标机重新导出 |
| 无线电 | AD9361 ×1,pyadi-iio/libiio |
当前主线为单板单通道分阶段切换,不同时解析两种波形 |
| 裁判链路 | 115200 baud 串口 | 设备路径应使用本机 /dev/serial/by-id/ 配置 |
| 无人机反制 | 长焦海康工业相机、独立计算平台、云台控制板、两条独立串口 | 默认配置实战结论覆盖前三次;第 3 次后的配置切换待实机验证 |
先按照 部署指南 建立视觉和无线电两个独立 Python 环境。视觉权重不随仓库分发,可按 模型训练指南 使用港科大公开数据集自行训练,再按 模型清单 放置产物。仓库已经采用真实包结构,不再需要原工程文档中的手工软链接。
无线电比赛模式先启动 TCP Server:
cd TCR-RM2026-Radar-OpenSource
export RADIO_PYTHON="$PWD/radio-venv/bin/python3"
./radar/CombatRadarSdr/start.sh
# 菜单选择 1:单板比赛模式(推荐、实战验证)然后启动地面视觉;客户端会连接 127.0.0.1:5000,断开后自动重连:
export GROUND_VISION_PYTHON="$PWD/vision-venv/bin/python3"
./ground_vision/run.sh反制模块使用独立环境和进程;先完成相机、Boresight、机械限位、急停和串口方向检查,再启动:
source /opt/ros/humble/setup.bash
python -m pip install -r counter_drone/requirements-core.txt
cd counter_drone
./run.sh权重通过 v1.1.0 Release 附件分发,下载后放入 counter_drone/weights/。完整接线、A7 双机联动和配置说明见 反制模块 README。
首次上机前必须修改:
ground_vision/config/device.yaml:相机序列号、内参、畸变和采集参数。ground_vision/config/params.yaml:场地图、关键点、裁判串口、模型路径与录制开关。- AD9361 有线网卡地址和 Pluto URI;程序不读取或保存 sudo 密码,配网方式见部署指南。
无需 SDR 硬件的无线电单元测试:
cd TCR-RM2026-Radar-OpenSource
PYTHONPATH="$PWD" python3 -m pytest -q radar/CombatRadarSdr/tests地面视觉逻辑测试(部分导入需要 ROS 2 Humble 环境):
source /opt/ros/humble/setup.bash
cd TCR-RM2026-Radar-OpenSource/ground_vision
PYTHONPATH="$PWD:$PWD/..:${PYTHONPATH:-}" python3 -m unittest discover -s tests -p 'test_*.py'反制协议与状态机测试:
python -m pip install -r counter_drone/requirements-test.txt
PYTHONPATH="$PWD" python3 -m unittest discover -s counter_drone/tests -p 'test_*.py'2026-08-11 在独立环境重新执行结果为:无线电 33 tests passed(另含 47 个子测试),地面视觉 102 tests passed,反制模块 13 tests passed。
发布卫生检查:
./tools/release_audit.sh
./tools/license_audit.sh公开 Release 提供从一份 9.9 GB 赛场单通道录包裁剪的三级短样例及 SHA-256。测试包约 19 MB,解压后包含一级 2 秒、二级 1 秒、信息波 2 秒的 complex64 IQ,不连接 SDR、不会发射。
2026-08-10 使用锁定无线电依赖重新验证:
| 样例 | 验证结果 |
|---|---|
| 一级干扰波 | PASS,211 个有效密钥帧 |
| 二级干扰波 | PASS,112 个有效密钥帧 |
| 信息波 | PASS,97 个有效信息帧,其中 0x0A01 20 帧 |
下载、完整性校验、一键回放命令和完整控制台输出见 公开 IQ 测试包说明。
- 按战队现有实战性能统计口径,正常运行时单场最高可达 2070+ 秒,正常场次平均稳定在 2050+ 秒。该“秒数”为累计性能统计值,不等同于单局自然时长;README 展示现有比赛证明,未分发完整逐场后台数据。
- 战队对国赛异常场次的复盘结论是:较差数据均由软件外部因素造成,包括电源线未插导致电脑关机,以及 3-pin 线问题导致与裁判系统失联;未发现能够据此归因于当前软件算法或无线电解码稳定性的异常。该结论属于战队赛后复盘,仓库不提供逐场硬件事故复现实验。
- 单板生产解码路径在选定旧录包片段中恢复 35 个 CRC 有效信息帧,其中 7 个
0x0A01;生产解码耗时 0.161 s,实时倍率 0.2143。 - 正式比赛窗口的主板现场日志与 IQ 离线严格解码得到 8,650/8,650 帧一致结果;三级信息波段内估算缺失 57 个周期,占 0.655%。该分析用于说明修复前的问题机制,不作为当前融合修复后的效果证明。
- 研究性双波数字分路回放:选定片段在 -30 dB 至 +30 dB 合成功率比下均保持既有有效帧;两路 DDC+FIR+抽取平均 9.749 ms/32.768 ms RF 块。这只是数字合成离线实验,既没有实战验证,也不属于当前单通道主线。
双波分路、三板回放脚本和 0x0A07 兼容代码保留用于研究,但不作为当前比赛方案的效果结论。后续准入条件见 RoadMap。
完整数字和证据边界见 现有录包与日志实验结果;机器可读 JSON 和回放报告位于 radar/CombatRadarSdr/experiments/results/。
本项目明确属于二次开发,不将上游工作宣称为 TCR 原创:
- 地面视觉基础:HKUST ENTERPRIZE / RM2025-Radar-Algorithm,MIT License。
- 无线电基础:南京理工大学江阴校区 CombatRadarSdr2026;对应 RoboMaster 论坛开源帖。
我们保留了上游 README,并分别在 无线电变更说明 与 地面视觉/反制变更说明 中记录 TCR 修改。许可边界见 NOTICE、许可证说明 与 第三方清单。
- 发射功率设置极低,当前实际有效接收距离约 1 m,但低功率不等于无需合规;任何发射测试仍须遵守当地频谱法规、比赛规则和场地要求。
- 开源包不包含 100+ GB 的现场 IQ、运行日志、缓存、规则手册副本、个人照片、虚拟环境和机器绝对路径。
- 仓库不附带比赛权重或 TensorRT engine;港科大公开数据集、三模型训练和目标机导出流程已经给出。缺少自行训练的权重时可以运行协议/融合测试,但不能完成视觉实机推理。
- 保存的回放结果是特定录包与参数下的实验数据,不应泛化为所有硬件、距离和干扰环境下的性能承诺。
- 当前实战结论只覆盖单板单通道“一级成功 → 二级成功 → 信息波”流程;不宣称双波同时解析经过实战验证。
- 三板融合尚未达到当前单板方案同等的实战验证水平,因此不作为 v1.1 默认部署或稳定性承诺。
- 反制模块默认配置的实战结论覆盖前三次;第 3 次后的曝光、增益或模型切换虽已补齐通信和状态机,仍需完成第 4~5 次的整机验证。
TCR 原创贡献由以下两位核心开发者完成:
- 范以恒:无线电再开发与程序融合。
- 徐琰欢:港科大地面识别方案调教与反制模块开发。
二人是 TCR 原创贡献与修改的共同著作权人,相关内容采用 Apache License 2.0;具体范围见 许可证说明 和 贡献者名单。
感谢以下战队公开并分享基础方案:
- 南京理工大学江阴校区 Combat 战队:公开
CombatRadarSdr2026雷达无线电链路代码和赛场经验,为本项目的无线电模块提供基础。TCR 在此基础上进行了通信角色、软判决解码、单板比赛流程、稳定性和测试体系等大量修改与重写。原项目见 GitHub 与 RoboMaster 社区开源帖。 - HKUST ENTERPRIZE 战队:公开
RM2025-Radar-Algorithm地面视觉方案,为本项目的相机、定位和雷达框架提供基础。原项目见 GitHub。
上游署名不表示上游战队对 TCR 修改内容、实验结论或发布版本作出背书。逐项来源和改动范围见 NOTICE 与 变更说明。
引用时请同时注明厦门大学嘉庚学院 TCR 战队及相应上游项目。推荐写法:
徐琰欢、范以恒,厦门大学嘉庚学院 TCR 战队,
"TCR RoboMaster 2026 Radar: Ground Vision and Radio Fusion System", 2026.
Derived from HKUST ENTERPRIZE RM2025 Radar Algorithm and
NJUST Jiangyin CombatRadarSdr2026; see NOTICE for details.
引用或二次开发无线电部分时,请同时保留以下来源:
Nanjing University of Science and Technology Jiangyin Campus Combat Team,
"CombatRadarSdr2026: RoboMaster 2026 Radar Radio Link", 2026.
https://github.com/qianchuan-wys/CombatRadarSdr2026
https://bbs.robomaster.com/article/1884180?source=1
问题、复现记录和改进建议请通过 GitHub Issues 提交。






