概述:
本人为桂林电子科技大学Evolution战队视觉组成员,在2021赛季负责视觉代码框架的维护以及能量机关预判部分的编写。
2021赛季我队在南部分区赛以小组第一出线,在16进8中成功晋级,进入南部十强。在技术交流中小组赛以小组第二出线,淘汰赛中于败者组进入全国八强,8进4中惜败止步八强。
我队视觉起步时间较晚,19年第一年在机器人上应用视觉。本赛季视觉组前期按照功能分配任务,完成了装甲板识别,角度解算及预判,能量机关识别,能量机关预判,识别特定ID等功能。后期以兵种分配调试,实现了英雄自瞄远程吊射前哨站,无人机远程吊射哨兵,哨兵远程狙击吊射,哨兵不击打工程等功能。这些也都在2021赛季赛场上有了不同程度的体现。
我们的视觉开发相比于强队来说还不够成熟,在对场地的适应性这方面做的实为欠缺。
框架结构
├─include //包含路径
├─build //生成路径
├─log //日志文件
├─Src
│ │ main.cpp //主函数(拉流,创建线程)
│ │
│ ├─angle
│ │ │ angleFactory.cpp //角度解算服务
│ │ │ angleFactory.h
│ │ │
│ │ ├─CoordinateSolver
│ │ │ ArmorCoordinateSolver.cpp //装甲板解算
│ │ │ ArmorCoordinateSolver.h
│ │ │ BuffCoordinateSolver.cpp //神符解算
│ │ │ BuffCoordinateSolver.h
│ │ │
│ │ ├─KalmanPredict
│ │ │ KalmanPredict.cpp
│ │ │ KalmanPredict.h
│ │ │
│ │ └─PNP
│ │ PNPSolver.cpp //PNP解算
│ │ PNPSolver.h
│ ├─armor
│ │ │ armorDistinguish.cpp //装甲板识别
│ │ │ armorDistinguish.h
│ │ │
│ │ └─bpPredict
│ │ net.cpp
│ │ net.h
│ │
│ ├─buff
│ │ buffDistinguish.cpp //能量机关识别
│ │ buffDistinguish.h
│ │ buffTest.cpp
│ │ buffTest.h
│ │
│ ├─camera
│ │ │ modifyCamera.cpp //相机设置工具类
│ │ │ modifyCamera.h
│ │ │ streamRetrieve.cpp //相机拉流
│ │ │ streamRetrieve.h
│ │ │
│ │ └─calibration
│ │ cameraCalibration.cpp
│ │ cameraCalibration.h
│ │
│ ├─decisionLevel
│ │ decisionLevel.cpp //决策层
│ │ decisionLevel.h
│ │
│ ├─serial
│ │ CRC.h //CRC工具
│ │ serial.cpp //串口
│ │ serial.h
│ │
│ └─tool
│ autoSaveSample.cpp //自动保存机器学习样本
│ autoSaveSample.h
│ Conf.h //配置文件
│ fileOperation.cpp //文件操作辅助类
│ fileOperation.h
│ PointUtil.h //常用操作工具类
│ RMDefine.h //常用定义
│ RMLOG.h //日志服务
│ systemChoose.h
│
├─Tools //工具文件夹
│ │ autoPull.sh //自动代码更新脚本
│ │ dog.sh //进程守护脚本
│ │ Baldr.sh //强制退出代码脚本
│ └─SVM //SVM训练代码
├─trainData //机器学习训练结果
│ │
│ ├─armor //装甲板样本
│ ├─buff //能量机关样本
│ └─circle //能量机关圆心样本
├─visionData
│ │ armorData.yml //装甲板尺寸数据
│ │ armorPara.yml //装甲板识别参数
│ │ buffPara.yml //能量机关识别参数
│ │ cameraConfigurationData.yml //不同识别模式下的相机参数
│ │ codeSet.yml //代码设置
│ │ installData.yml //相机安装参数
│ │
│ ├─AVISave //相机录制的视频
│ ├─cameraCaliData
│ │ │ serialNumber.txt
│ │ │ 标定棋盘图.jpg
│ │ │
│ │ └─caliResults //相机标定结果
│ └─imgSave //相机拍的照片
解析
项目解析详见github仓库:代码传送门
效果展示
总结
本队视觉方面还有很多的不足之处,希望能与各个参赛队伍多进行技术交流,一起提高队伍水平。