RoboMaster视觉教程(0)绪论

2023-05-16

背景

大四毕业了,想着大学四年也需要总结一下。就从RoboMaster这个比赛写起吧。我是大二参加的比赛,做视觉识别部分。当时的想法很简单,因为很喜欢Linux不想焊板子调电控就参加了视觉部分(虽然最终还是负责了一大部分的电控。。。)。做视觉可以用妙算可以开发一些很有趣的东西,学到很多前沿的知识。

大二时做视觉真的是从零开始的。虽然队里之前有研究生做视觉,但是却没有技术传承,连个问问题的人都没有。虽然名义上视学组有三个人,一个研究生一个大三学长还有我,但是他们都跑路了。所以我很能理解一些新接触RM视觉的人心中的迷茫。今年我考完研后去帮这一届做了下视觉,发现了很多问题,很多之前踩过的坑大家依然在踩,所以依然是各自为政天天拖拉最后赶工的状态。

我打算将RoboMaster视觉的各个方面的技术要点写成一系列的教程,帮助新手入门,也希望对其他战队有一些参考的价值。代码主要参考了东南大学SuperNova战队的开源代码(传送门:GitHub),他们的代码写得一级棒,搭建了一个很好的项目框架。很佩服他们将这么好的代码分享出来的魄力。

最近申请了一个微信公众号,名字叫江达小记。作为一个工科男起名字很头疼,就参照妍喵的网易云音乐电台妍喵小记起了个江达小记,打算将自己的学习研究的经验总结下来帮助他人也方便自己。感兴趣的朋友可以关注一下。
本系列教程会不断更新。

RoboMaster视觉教程目录

1. 摄像头

  • 摄像头参数
    卷帘曝光与全局曝光
    曝光
    Gamma矫正
    帧率与摄像头选型
  • 镜头
  • 滤光片
  • Linux摄像头驱动
    摄像头调试工具
    使用RMVideoCapture类调用摄像头
    使用OpenCV的VideoCapture来调用摄像头

2. 妙算(Nvidia Tegra K1)系统配置

  • 概览
  • 妙算资料链接汇总
  • 妙算系统重置/克隆/恢复
  • 妙算安装系统后要做的事
    妙算通过网线直连电脑并共享电脑网络
    妙算远程调试
    妙算安装 FTP
    妙算配置软件源
    妙算系统标题栏一跳一跳解决方案
    妙算安装 OpenCV / CUDA
    妙算安装 GCC5
    妙算安装配置Qt Creator

3.视觉识别程序框架

  • 概览
  • 多线程
  • 除了多线程,还可使用多进程
  • 接下来以东南大学的开源程序为例讲一下他们的整体架构
    下面进入正题
    项目配置文件概览
    ImgProdCons 类
    主函数
    用类来包装算法

4. 装甲板识别算法

  • 概览
    下面是一些资料链接,篇篇经典!
  • 装甲板识别
  • test_infantry.cpp
  • 分析一下装甲板
  • 识别函数 int ArmorDetector::detect()

5. 目标位置解算(通过像素点获取转角)

  • 概览
  • 直接使用像素坐标的缺陷
  • 摄像头标定
  • 根据小孔成像原理得到需要的转角
  • 角度测量验证

6. 目标位置解算(PnP求解目标与摄像头间的相对位置)

  • 概览
  • 算法原理
  • solvePnP的使用流程
  • 实验:测量二维码相对于摄像头的位置
  • RoboMaster视觉程序中的位置解算
  • 扩展

7. 风车大符识别

  • 分享一些资料链接

8. 串口通讯

  • 概览
  • DJI开源代码串口部分
  • 东南大学开源代码串口部分
  • Qt编写串口助手
  • 说一点题外话

9. 风车大符识别2

  • 图像预处理
  • 装甲板轮廓识别
  • 识别要打击的装甲板
  • 风车定位

10. 目标预测

  • 为什么要进行目标预测
  • 预测问题的几种情况及分析
  • 怎样做预测

11. 总结

申请了一个自己的公众号江达小记,打算将自己的学习研究的经验总结下来帮助他人也方便自己。感兴趣的朋友可以关注一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RoboMaster视觉教程(0)绪论 的相关文章

随机推荐

  • MySQL索引介绍

    索引主要是用来提高数据库的查询效率的 xff0c 它对指定的列或列的集合生成索引 xff0c 然后可以通过索引来检索目标数据 xff0c 就像目录一样 xff0c 缩小了扫描范围 xff0c 大大提高了查询效率 如果不使用索引 xff0c
  • 第二、UIScrollView的使用大全

    UIScrollView 原理详解 ScrollView UIScrollView UIScrollView 为了显示多于一个屏幕的内容或者超过你能放在内存中的内容 Scroll View 为你处理缩小放大手势 xff0c UIScroll
  • 持续集成平台Jenkins:docker镜像升级

    Jenkins 2 357 及 LTS 2 361 1之后的版本要求Java 11 或者 17 xff0c 如果使用的是Java 8 xff0c 要升级最新版本的Jenkins xff0c 就需要升级Java JDK版本 xff0c 本文记
  • 持续集成:通过Jenkins API创建项目和节点

    我在持续集成 xff1a Jenkins API使用方法详细介绍中介绍了jenkins API的使用方法 xff0c 比如使用API读取jenkins项目相关信息 触发构建等操作 xff0c 除此之外 xff0c 还可以直接使用API来创建
  • Android APP稳定性测试工具Fastbot

    我在 自动遍历测试之Monkey工具 和 AppCrawler自动遍历测试 分别介绍了APP稳定性测试工具monkey和AppCrawler xff0c 它们各有优缺点 xff0c 本文介绍另一款也比较好用的稳定性测试工具Fastbot 目
  • 持续集成:使用Jenkins API创建视图

    持续集成 xff1a 通过Jenkins API创建项目和节点介绍了使用jenkins API来创建项目和新建节点 xff0c jenkins API也可以创建视图 xff08 view xff09 目录 1 获取视图配置文件2 创建视图3
  • Fiddler抓取手机APP报文

    Http协议代理工具有很多 xff0c 比如Burp Suite Charles Jmeter Fiddler等 xff0c 它们都可以用来抓取APP报文 xff0c 其中charles和Burp Suite是收费的 xff0c Jmete
  • 使用Jmeter抓取手机APP报文并进行APP接口测试

    Jmeter是一个比较常用的接口测试工具 xff0c 尤其是接口性能测试 当然它也可以用来测试手机APP的HTTP接口 xff0c 我在Fiddler抓取手机APP报文 和 接口测试代理工具charles mock测试 分别介绍了Fiddl
  • 禅道二次开发技巧

    本文记录一些进行禅道二次开发的技巧 目录 代码调试方法1 xff1a error log方法方法2 xff1a file put contents方法方法3 xff1a a var 方法 禅道扩展技巧1 读取当前用户2 读取当前模块方法名3
  • git merge 和 git rebase 的区别

    Git版本控制中 xff0c git rebase 和 git merge 这两个命令都可以用来集成从一个分支和另一个分支的更改 它们是两种不同的合并方法 xff0c 本文将介绍它们的差异 git rebase 和 git merge 主要
  • SVN项目迁移到Git方法

    本文记录如何将SVN项目迁移到Git xff0c 并保留提交日志信息 目录 Git和SVN差异环境准备Git安装 配置 项目迁移1 将源SVN库转换到Git本地仓库2 添加Git远程库地址3 推送代码到Git 常见错误参考文档 Git和SV
  • Python日志系统logging使用介绍

    日志记录对于软件开发调试和运行都非常重要 Python标准库提供了一个日志记录系统 xff0c 可以很方便的在python项目中添加日志记录 本文将详细介绍如何使用python的 logging 模块来记录日志 目录 基础使用日志级别基本配
  • xrdp连接太多后,连接不上的解决方法

    因为每次都是新建连接 xff0c 端口不断被占用 默认session个数10个 有一个最简单的 xff0c 但是不推荐的办法 xff0c 就是把最大连接数改大 xff0c 比如原来是10 xff0c 就改为100 这种方式治标不治本 xff
  • Python中 os.popen、os.system和subprocess.popen方法介绍

    Python 提供了多种与操作系统交互的方法 xff0c 比如os模块中的popen和system方法 xff0c 此外 xff0c Python subprocess模块中的Popen类也提供了与操作系统交互的方法 xff0c 使用起来更
  • 性能测试工具 IxChariot:Tcl脚本调用方法介绍

    ixChariot是一款功能强大的性能测试软件 xff0c 可用来测试有线和无线性能 xff0c 可以模拟真实应用程序流量 xff0c 并提供关键性能指标 xff0c 包括吞吐量 丢包 抖动 延迟 MOS等 本文简单介绍如何使用IxChar
  • 代码评审平台Gerrit安装配置方法介绍

    Gerrit是一款开源免费的基于 web 的代码审查工具 xff0c 是基于 Git 的版本控制系统 在代码入库之前对开发人员的提交进行审阅 xff0c 检视通过的代码才能提交入库 本文记录如何安装部署gerrit平台 目录 Gerrit简
  • Windows远程执行进程工具psexec和wmiexec介绍

    在自动化测试或者自动化工具开发中 xff0c 通常需要向其它电脑或者服务器发送指令 xff0c 比如Windows发送命令到Linux服务器开启某个服务进程 xff0c 或者读取状态信息 xff0c 我们可以使用ssh协议实现 如果Wind
  • ubuntu下连接小米2

    一 usb连接 xff1a 在Ubuntu挂载使用MTP设备步骤如下 xff1a 1 将MTP设备连接至PC机 2 如果是第一次使用MTP设备需要安装以下软件 xff0c 否则可以跳过此步骤 xff1a sudo apt get insta
  • interp2函数

    interp2 功能 二维数据内插值 格式 1 ZI 61 interp2 X Y Z XI YI X Y是原始数据 xff0c 相当于坐标 xff0c 类似于meshgrid的坐标范围 Z是在上述坐标下的数值 xff0c 也就是在坐标 x
  • RoboMaster视觉教程(0)绪论

    背景 大四毕业了 xff0c 想着大学四年也需要总结一下 就从RoboMaster这个比赛写起吧 我是大二参加的比赛 xff0c 做视觉识别部分 当时的想法很简单 xff0c 因为很喜欢Linux不想焊板子调电控就参加了视觉部分 xff08