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)绪论 的相关文章

  • 【RoboMaster】我是这样搞定第一次单目相机测距的

    之前在做一个单目测距的小项目 xff0c 大概需要就是用单目相机 xff0c 对一个特定的目标进行识别并测算相机与该目标的距离 所以便去网上找了一堆教程 xff0c 这里给大家总结一下 xff0c 希望给小白们一个参考 首先是基本需求了 x
  • robomaster视觉规则细谈

    目录 攻击与检测 弹丸参数 增益点增益 升级效果 击打检测 涂装要求 裁判系统 机器人端各模块 赛事引擎各部分 客户端 服务器 能量机关 小能量机关 大能量机关 算法归纳 攻击与检测 弹丸参数 如图所示 xff0c 赛场中我们使用的弹丸有两
  • RoboMaster视觉教程(0)绪论

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

    ROBOMASTER机甲大师赛视觉学习方案 视觉技能学习踩坑硬件平台环境配置个人修为坑 机甲大师 xff08 RoboMaster xff09 是由大疆创新 xff08 DJI xff09 的创始人汪滔发起并承办 由共青团中央 全国学联 深
  • 了解CV和RoboMaster视觉组(一)摘要

    NeoZng neozng1 64 hnu edu cn 1 摘要 在阅读本文之前 xff0c 你需要有计算机科学的基本知识并至少掌握一门编程语言 xff0c 同时对robomaster比赛规则和过程有大致的了解 若只是希望知道视觉组的基本
  • 了解CV和RoboMaster视觉组(四)视觉组使用的硬件

    NeoZng neozng1 64 hnu edu cn 4 视觉组接触的硬件 虽然别人总觉得视觉组就是整天对着屏幕臭敲代码的程序员 xff0c 实际上我们也会接触很多的底层硬件与传感器 xff0c 在使用硬件的同时很可能还需要综合运用其他
  • 了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法

    neozng1 64 hnu edu cn 5 3 滤波器 观测器 估计器和预测方法 这些装置之间的区别在于面对不同场景时候的不同解释 xff08 是否考虑信号的统计学特性 随机特点 参数是否变化等 xff09 滤波器在信号与系统中的定义为
  • 了解CV和RoboMaster视觉组(五)运动建模与预测

    neozng1 64 hnu edu cn 5 3 2 预测方法 运动预测是自瞄击打装甲板的关键一步 xff0c 如果没能预测目标的移动 xff0c 那么我们的解算输出用于只会跟在目标的屁股后面 xff0c 使得打出的弹丸始终落后于目标 x
  • ROBOMASTER机甲大师赛视觉组学习方案

    ROBOMASTER机甲大师赛视觉学习方案 视觉技能学习踩坑硬件平台环境配置个人修为坑 机甲大师 xff08 RoboMaster xff09 是由大疆创新 xff08 DJI xff09 的创始人汪滔发起并承办 由共青团中央 全国学联 深
  • 【Robomaster-ICRA-AI挑战赛跳坑篇】(二、TX2刷机)

    TX2刷机与程序下载 TX2安装在步兵车上作为机载计算机使用 xff0c 跑上层代码 xff0c RoboRTS代码托管在github上 xff1a https github com RoboMaster RoboRTS xff0c 目前一
  • RoboMaster步兵机器人简介

    RoboMaster步兵机器人简介 湖北工业大学 蔡饶 如下图所示 xff0c 设计的是一个基于麦克纳姆轮的四轮全向越障平台 xff0c 纵臂式独立悬挂 xff0c 搭载两轴云台和弹丸发射机构 xff0c 是大疆承办的RoboMaster机
  • robomaster麦轮运动解算

    1 资源与代码 1 1 参考文章 本文主要参考的三篇文章如下 xff1a 麦轮运动特性分析 xff1a https mp weixin qq com s biz 61 MzI3MTIyMjQwNQ 61 61 amp mid 61 2247
  • Robomaster上位机视觉摘要——比赛规则篇

    本文是笔者多日来总结的2023赛季中针对上位机组的比赛规则摘要 xff0c 力求一文让你看懂上位机在赛场中的飒爽身影 目录 电力元件 电池 遥控器 激光 涂装 机器人 飞镖 雷达 空中机器人 工程机器人 哨兵机器人 英雄与步兵机器人 视觉应
  • Robomaster云台,底盘,陀螺仪校准

    文章目录 前言一 云台校准二 底盘校准三 陀螺仪校准 前言 本文主要介绍了Robomaster云台 xff0c 底盘 xff0c 陀螺仪怎么校准 一 云台校准 1 将开关 S2 和开关 S1 都拨到最下面 2 将两侧拨杆打成内八字 xff0
  • RoboMaster怎么设计新步兵悬挂

    流程 xff1a 明确需求 gt 提出可量化目标 gt 方案提出与评估 gt 细化方案 gt 任务分配 gt 画图设计 gt 图纸提交与验收 gt 加工 gt 装配 gt 机械调试 需求 xff1a 性能优越的悬挂 目标 xff1a 1 任
  • 【RoboMaster】舵机驱动&蓝牙模块教程

    本文是为参加2021赛季北京理工大学机器人队校内赛所写的简单教程 xff0c 意在帮助参赛选手快速了解校内赛所需模块的使用方法 xff0c 以及其与薪火培训知识的联系 舵机驱动 硬件接线 舵机是由直流电机 减速齿轮组 传感器和控制电路组成的
  • RoboMaster视觉 深度相机(1):Ubuntu20.04上安装Intel D435深度相机SDK与ROS

    RoboMaster视觉 深度相机 xff08 1 xff09 xff1a Ubuntu20 04上安装Intel D435深度相机SDK与ROS 1 安装RealSense SDK 先去下载 librealsense 可以在GitHub下
  • 了解CV和RoboMaster视觉组(四)视觉组使用的硬件

    NeoZng neozng1 64 hnu edu cn 4 视觉组接触的硬件 虽然别人总觉得视觉组就是整天对着屏幕臭敲代码的程序员 xff0c 实际上我们也会接触很多的底层硬件与传感器 xff0c 在使用硬件的同时很可能还需要综合运用其他
  • RoboMaster机甲大师比赛入门?我们从STM32开始!

    同步博客地址 xff1a 从STM32开始的RoboMaster生活 xff1a 入门篇 项目 amp 教程仓库 xff1a STM32 RoboMaster 1 0 STM32是什么 1 1 定义 ST 43 M 43 32 61 STM
  • RoboMaster机甲大师:裁判系统服务器搭建助手(RMServer Aid)

    RoboMaster机甲大师 裁判系统服务器搭建助手 RMServer Aid 更新 2022 03 28 写在前面 使用教程 软件简介 软件下载 软件安装 软件使用 打开软件 首次使用 1 组建局域网 2 配置RM环境 3 启动RM服务

随机推荐

  • 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