吉林大学TARS-GO战队视觉代码
介绍本代码是吉林大学TARS-GO战队Robomaster2020赛季步兵视觉算法 , 主要模块分为装甲板识别、大风车能量机关识别、角度解算、相机驱动及串口/CAN通信 。
1.功能介绍
- 装甲板识别 ,检测敌方机器人装甲板位置信息并识别其数字
- 大风车能量机关识别 ,检测待激活大风车扇叶目标位置信息
- 角度解算, 根据上述位置信息解算目标相对枪管的yaw、pitch角度及距离
- 相机驱动 ,大恒相机SDK封装 , 实现相机参数控制及图像采集
- 串口/CAN通信 ,与下位机通信 , 传输机器人姿态信息及操作手反馈视觉的控制信息
**EnemyColor = BLUE; TargetNum = 1**
文章插图
**EnemyColor = RED; TargetNum = 2**
文章插图
在640*480图像分辨率下 , 装甲板识别帧率可达340fps左右 , 引入ROI之后可达420fps 。 但考虑到识别帧率对于电控机械延迟的饱和 , 取消引入ROI操作 , 以此避免引入ROI之后无法及时探测全局视野情况的问题 , 加快机器人自瞄响应 。
【吉林大学TARS-GO战队视觉代码】**640\*480(峰值可达340FPS)**
文章插图
**320\*240(峰值可达1400FPS)**
文章插图
装甲板数字识别采用SVM , 通过装甲板位置信息裁剪二值化后的装甲板图像并透射变换 , 投入训练好的SVM模型中识别 , 数字识别准确率可达98% 。
文章插图
大风车能量机关识别
文章插图
角度解算角度解算方面使用了两种解算方法分距离挡位运行 。 第一档使用P4P算法 , 第二档使用小孔成像原理的PinHole算法 。 此外还引入了相机-枪口的Y轴距离补偿及重力补偿 。 使用标定板测试 , 角度解算计算的距离误差在10%以内 , 角度基本与实际吻合 。
文章插图
文章插图
/** *@brief: detect and delete error armor which is caused by the single lightBar 针对游离灯条导致的错误装甲板进行检测和删除 */void eraseErrorRepeatArmor(vectorvector::iterator it = armors.begin(); for (size_t i = 0; i < length; i++)for (size_t j = i + 1; j < length; j++){if (armors[i].l_index == armors[j].l_index ||armors[i].l_index == armors[j].r_index ||armors[i].r_index == armors[j].l_index ||armors[i].r_index == armors[j].r_index){armors[i].getDeviationAngle() > armors[j].getDeviationAngle() ? armors.erase(it + i) : armors.erase(it + j);}}}
- 装甲板数字识别匹配好装甲板后 , 利用装甲板的顶点在原图的二值图(原图的灰度二值图)中剪切装甲板图 , 使用透射变换将装甲板图变换为SVM模型所需的Size , 随后投入SVM识别装甲板数字 。
推荐阅读
- 日本工程师:潘多拉魔盒被美国打开,中国办芯片大学只为打破禁令
- 卡内基梅隆大学提出了更好的强密码设置建议
- 建设|校地合作 绵阳涪城区携手浙江大学发布5g创新成果
- 又是别人家的孩子?宿舍串门请先刷指纹 西电大学生自制趣味智能锁成“网红”
- 普通大学计算机专业的本科生,该选择主攻前端还是Java
- 浙江携手英国西苏格兰大学共建创新基地
- 导航|攻坚“卫星导航信号弱”难题,高德程序员联手武大学子夺得国际室内定位大赛冠军
- 清华大学研究院出手!擦一次,持续24小时防雾,改变眼镜党体验
- 北大最大单体建设项目封顶
- 首家"芯片大学"即将落成,盖茨:中国芯将崛起,美国将大量失业