RoboMaster 视觉自瞄系统技术文档
1. 项目定位与背景
1.1 项目定位
本项目是 RoboMaster 战队视觉自瞄系统的一部分,旨在为机器人提供实时、稳定的目标检测与追踪能力。系统通过相机采集 → 装甲板识别(基于灯条与数字分类)→ 目标追踪(IMM-3D 融合)→ 串口通信的完整流程,将视觉结果(yaw、pitch、shoot_flag)传递给电控,实现精准打击。
1.2 参考与取舍
参考了多个开源 RoboMaster 战队实现(如 PB_RM_Vision、HNUVISION_ROS2、FYT2024_vision),最终选择传统 OpenCV 灯条识别结合 ONNX 数字分类器的方案,辅以 IMM-3D 追踪算法。
- 优点:
- 轻量级,实时性强,适合嵌入式设备;
- ONNX 数字分类器提升装甲板识别精度;
- IMM-3D(CV+CA 模型)增强追踪稳定性;
- 易于调试,参数可动态调整。
- 缺点:
- 灯条检测依赖光照条件和阈值调节;
- 数字分类器依赖预训练模型,需适配不同环境;
- IMM 模型较为简单,未引入非线性滤波。
1.3 项目目标
- 实现实时装甲板检测(基于灯条与数字分类);
- 提供稳定的目标追踪(基于 IMM-3D,单位:毫米);
- 支持多种相机(USB、Hik、MindVision);
- 通过串口与电控交互,传输 yaw、pitch 和射击指令;
- 提供完善的调试工具链(rqt、Foxglove、动态调参)。
1.4 实现思路
- 相机驱动:采集图像与相机内参(
/image_raw
, /camera_info
)。
- 装甲板检测:
- 使用 OpenCV 进行图像预处理(二值化、轮廓检测);
- 提取灯条(
Light
类),基于面积、角度、颜色比等筛选;
- 配对灯条形成装甲板(
Armor
类),通过数字分类器(ONNX 模型)识别装甲板 ID;
- 使用 PnP 解算 3D 位姿(dx, dy, dz)。