RoboMaster
江达小记
这个作者很懒,什么都没留下…
展开
-
RoboMaster视觉教程(0)绪论
背景大四就要毕业了,想着大学四年也需要总结一下。就从RoboMaster这个比赛写起吧。我是大二参加的比赛,做视觉识别部分。当时的想法很简单,因为很喜欢Linux不想焊板子调电控就参加了视觉部分(说句题外话,我是从初二开始接触的Linux但一直就是瞎折腾,不知道Linux能干嘛)。做视觉可以用妙算可以开发一些很有趣的东西,学到很多前沿的知识。大二时做视觉真的是从零开始的。虽然队里之前有研究生做...原创 2019-05-30 15:32:40 · 25154 阅读 · 17 评论 -
RoboMaster视觉教程(1)摄像头
RoboMaster视觉教程(1)摄像头摄像头的选型卷帘曝光和全局曝光摄像头曝光摄像头Gamma摄像头的选型摄像头应该是机器视觉中最重要的部分了,选择一款成像质量好稳定可靠的摄像头可以极大地减少识别算法设计的难度。主流的摄像头分为CMOS摄像头和CCD摄像头。一般而言CCD摄像头体积大造价高精度高,而CMOS摄像头由于集成度高造价远低于CCD摄像头,同时CMOS摄像头的体积功耗等参数也相应地优...原创 2019-06-08 21:15:48 · 26118 阅读 · 9 评论 -
RoboMaster视觉教程(2)妙算(Nvidia Tegra K1)系统配置
RoboMaster视觉教程(2)妙算(Nvidia Tegra K1)系统配置概览妙算资料链接汇总妙算系统重置/克隆/恢复妙算安装系统后要做的事妙算通过网线直连电脑并共享电脑网络妙算远程调试妙算安装 FTP妙算配置软件源妙算系统标题栏一跳一跳解决方案妙算安装 OpenCV / CUDA妙算安装 GCC5妙算安装配置Qt Creator概览这里所说的妙算是大疆的第一代妙算,核心处理器为 Teg...原创 2019-07-05 04:45:24 · 9126 阅读 · 3 评论 -
RoboMaster视觉教程(3)视觉识别程序整体框架
RoboMaster 视觉教程(3)视觉识别程序框架概览多线程除了多线程,还可使用多进程接下来以东南大学的开源程序为例讲一下他们的整体架构下面进入正题项目配置文件概览ImgProdCons 类主函数用类来包装算法概览RoboMaster 视觉识别是一个比较大的项目了,综合性太强。这里从程序框架的角度来粗略讲一下需要怎么做。比较好的框架有官方开源的视觉程序,东南大学开源的视觉程序,其中东南大学开...原创 2019-07-10 08:45:20 · 13472 阅读 · 12 评论 -
RoboMaster视觉教程(4)装甲板识别算法
RoboMaster视觉教程(4)装甲板识别算法概览装甲板识别是RoboMaster视觉识别中比较成熟的了,到现在有很多战队开源了他们的算法。基本上的思路都是一样的:利用装甲板灯条发光的特性将摄像头曝光值调低屏蔽环境光干扰,二值化处理图像得到只含灯条的二值图,根据装甲板灯条的几何特征来设置约束筛选灯条,灯条匹配筛选装甲板。每年都有很多战队将他们的算法开源,善于利用他人的成果可以极大地减少自...原创 2019-07-18 11:58:08 · 41140 阅读 · 110 评论 -
RoboMaster视觉教程(5)目标位置解算(通过像素点获取转角)
RoboMaster视觉教程(5)目标位置解算(通过像素点获取转角)概览直接使用像素坐标的缺陷摄像头标定根据小孔成像原理得到需要的转角角度测量验证概览在识别到目标后,有一个很重要的问题:我们的最终目的是瞄准、跟踪、打击,怎样利用识别到目标后得到的目标在图像中的像素坐标来确定在真实世界中目标的位置呢?更清楚点说就是我识别得到的是图像中点的坐标,而我要输出告诉下位机的是它应该旋转或者移动到的目的地...原创 2019-07-29 16:00:30 · 14215 阅读 · 20 评论 -
RoboMaster视觉教程(6)目标位置解算(PnP求解目标与摄像头间的相对位置)
RoboMaster视觉教程(6)目标位置解算(PnP求解目标与摄像头间的相对位置)概览算法原理solvePnP的使用流程实验:测量二维码相对于摄像头的位置RoboMaster视觉程序中的位置解算扩展概览上篇文章讲到了可以用小孔成像原理得到图像中某点相对于摄像头的转角,可以用这个来对所需要转角的测量。但是这个方法有很大的局限性,它只能得到相对于摄像头中心的转角。而在实际应用中摄像头肯定不会在...原创 2019-08-04 12:36:58 · 21104 阅读 · 24 评论 -
RoboMaster视觉教程(7)风车能量机关识别
RoboMaster视觉教程(7)风车能量机关识别今年的能量机关在识别的难度上降低了,难在怎么打中。能量机关我只写了识别部分,因为没有道具可以做测试,焊灯条的同学焊的千辛万苦也没焊出可以用的灯条。当然纯手工焊这么大面积的灯条非常困难,前几天打算做一个迷你版的风车能量机关,只焊了一个扇叶就放弃了,太耗时间了。因为关于风车能量机关的教程已经有很多了,而且我自己写的程序没有经过实战不好说好不好使,这...原创 2019-08-05 17:53:09 · 10041 阅读 · 5 评论 -
RoboMaster视觉教程(8)串口通讯
RoboMaster视觉教程(8)串口通讯概览这几天一直在做一个小车打算做好了再往下写的,但是由于我两年没写stm32的程序了,写好程序还是很吃力的。再加上这几天要准备考科目三(考驾照好辛苦 T_T )准备开学考试(没错!开学就要考试,还要考三门我没学过的课 T_T )事比较多,就停更了两个星期,下一篇我也不清楚什么时候发不过有时间会一点一点地写。在视觉识别中一般是用妙算或者其他迷你电脑作上...原创 2019-08-21 21:19:23 · 11130 阅读 · 13 评论 -
RoboMaster视觉教程(9)风车能量机关识别2
RoboMaster视觉教程(9)风车能量机关识别2之前说能量机关的教程有很多了打算不写了,但是总有同学来问,想了想还是写一下吧。风车能量机关我只做了识别,因为准备分区赛的时候没有实物可以测试就一直搁置了,之后复活赛视觉的打击预测都是学弟们做的。所以如果问我预测方面的事我也只能给个大概的方向,因为毕业后就没有再做这个了。风车能量机关识别的示例代码我放在了我的GitHub上 https://g...原创 2019-09-14 12:38:38 · 14253 阅读 · 23 评论 -
RoboMaster视觉教程(10)目标预测
RoboMaster视觉教程(10)目标预测目标预测应该是RM视觉中最难也是最重要的部分了,预测直接决定了子弹发射后的命中率,实话实说我预测做得不好。预测之所以难做有很多原因,我觉得最困难的地方在于预测是需要上下位机配合的,也就是妙算/微型电脑与战车上的STM32需要配合起来才可以达到比较好的效果。我虽然也会写一些嵌入式上的程序对STM32也比较了解,但水平太差。17年比赛的时候基地的自瞄和电...原创 2019-09-27 21:33:11 · 7532 阅读 · 2 评论 -
RoboMaster视觉教程(11)总结
RoboMaster视觉教程(11)总结这一系列教程终于写到最后一篇了,最开始设想还有两篇「程序自启以及进程守护」和「OpenCV GPU模块的使用与妙算 GPU 的 Zero Copy 」。但是「程序自启」没什么好写的, Linux 程序自启无非就是在/etc/rc.local中添加我们的视觉程序的执行路径或者在bashrc里把路径放进去达到登陆自动运行的效果。而「进程守护」之前想做但一直...原创 2019-10-15 14:56:25 · 6215 阅读 · 10 评论