ROBOMASTER机甲大师赛视觉组学习方案

2023-05-16

ROBOMASTER机甲大师赛视觉学习方案

  • 视觉技能
  • 学习踩坑
    • 硬件平台
    • 环境配置
    • 个人修为

机甲大师(RoboMaster)是由大疆创新(DJI)的创始人汪滔发起并承办、由共青团中央、全国学联、深圳市人民政府联合主办的年度机器人竞技赛事,为全国大学生机器人大赛旗下的四大赛事之一,并且是全球首个射击对抗类的机器人比赛。其在2015年诞生伊始就凭借其颠覆传统的机器人比赛方式、震撼人心的视听冲击。

视觉技能

  1. C++/python程序语言学习
    **按照机甲大师官方参赛攻略要求视觉(算法)组应当掌握一门熟悉一门汇编语言,对此个人建议如果自身有编程基础(理工科一般会要求学习C语言,但视各高校专业情况而定)可以直接入手C++,编程语言众多但是C++还是有其优势存在的,例如众多比赛强队的开源程序还是C++为主,它对于各参赛队来说是必不可少的语言。如果没有基础的同学可以从python入手学习,然后再过渡到学习C++。避免出现从入门到放弃的惨剧。
    python可以在深度学习和日常生活中使用,简洁是其极大的优势。正所谓人生苦短,我用python。python语言的学习资料可以在哔哩哔里网站上找到很多,个人推荐小甲鱼,或者大学慕课北京理工大学的python语言程序设计;也可以通过借阅图书馆相关书籍来学习,一定要勤加练习!!!
    C++可以选择哔哩哔里清华大学的课程或者其他课程、相关书籍都可以。刚开始学到“类”就可以着手解决问题了。要有解决问题的算法意识,一开始写不出来是正常的,可以模仿可以学习但是不能畏难不能放弃。
    软件可以使用pythonIDE,pycharm,vs2019等等,python安装应当注意版本要求不是越高越好,推荐python3.5/3.6。

    GitHub与robomaster论坛都是学习算法的好地方,有着大量优秀的开源程序。**
    opencv3推荐

    ** 无论是对于什么程序的学习都不要试图在全部学习完语言后再入手解决问题,这是很多新人会有的想法。我们作为参赛队员是以解决实际问题为目的的,根本不会有足够的时间让你学习完一门语言。对于程序语言的学习也不应当追求全知全能,无论python/C++都只是语言想要实现任务还需要对相应的“库”进行学习,最基础的装甲、风车识别程序都是通过opencv库来实现的,但是编程语言强大的拓展性使得它几乎无所不能,如网络编程,网络爬虫,数据库等等。**

    **切记明白自己需要用什么,再去学习什么。我们是做比赛,不是做研究,但基础和底层知识也是重要的。**
    
  2. Ubuntu操作系统
    视觉成员应当熟悉LINUX操作系统,程序的运行环境一般都以ubuntu16.04为主,其他版本的系统稳定性较差,但并不绝对。应该熟悉linux不同于windows的命令行操作,并熟记常用的执行命令。
    新队员无论是否接触过Linux系统都应该实际安装使用一下。这就要求应该掌握Windows系统的安装备份以防笔记本崩溃。对于ubuntu建议采用双系统方式,个人也可以尝试虚拟机但是他会限制性能,不利于程序的调试。
    ubuntu/windows :一般需要准备一个专门的系统U盘,将系统镜像写入。在笔记本刚开机状态下按特定功能键进入BIOS,设置U盘为第一启动项安装程序。安装系统应当注意做好系统引导保证系统的切换。
    推荐引导软件
    3.机器学习与深度学习方面
    对于RM比赛来说,视觉方面的识别还是具有明显光学特征的单一识别,使用传统的视觉识别方案即可,但是也可以尝试机器学习与深度学习的方案。关于机器学习主要涉及到线性代数,高等数学与概率论方面的知识;

       机器学习推荐哔哩哔哩吴恩达机器学习系列课程[机器学习](https://www.bilibili.com/video/BV164411b7dx?from=search&seid=3561708656840252423) 该课程对于机器学习方面的初学者来说是较为友好的。
    

    深度学习方面主要涉及到的是目标检测部分,对于目标检测有多种识别模型个人所接触过的主要是YOLO系列。对于YOLO目标检测从配置环境到训练模型,网上也已经有许多详细的教程可供参考。当然后期也将会开辟YOLO系列的文章,敬请期待。
    4.操作软件
    QT4、VMware虚拟机、anaconda(你们一定会喜欢的软件)、cmake、ipython、OpenMV IDE、Visual Studio 2019、jupyter、spyder(以上为windows平台)
    QT4、qq、cmake、pythonIDE(ubuntu)
    5.摄像头
    具有一定的摄影方面的知识
    可以参考如下链接进行学习
    在这里插入图片描述

https://www.cnblogs.com/harrypotterjackson/p/11431782.html
6. ROS机器人操作系统
ROS机器人操作系统是参加ICRA人工智能挑战赛所广泛采用的,也广泛应用于高校科研和工业生产之中。使用ROS可以快速的搭建出一套功能完备的机器人。
以下为复旦大学人工智挑战赛链接
https://www.bilibili.com/video/BV1Lr4y1F7Qp?p=1&share_medium=android&share_plat=android&share_source=COPY&share_tag=s_i&timestamp=1613789062&unique_k=2WZ7vs

学习踩坑

硬件平台

  1. 树莓派
    作为新成员在学习之余还应该有一定的硬件平台用来实验和练手,个人建议可以从基础的树莓派入手学习安装系统和命令行的使用,价格一般在四百元左右。树莓派有自己完整的硬件系统可以根据自身需要搭配,但不要试图用它来参加robomaster比赛,首先线排摄像头的延迟过高,图像质量不高;其次树莓派性能较低不适合运行大型程序。作为入门装备还是不错的,也可以做一些自己感兴趣的小东西或者参加其他比赛项目,可以降低成本预算。
  2. openmv
    openmv是不错的硬件平台,集成度高,兼容性好,入手简单。可以考虑使用在导弹等对设备重量大小有限制的设备上。openmv作为一个开源项目任何人都可以使用,如果有条件可以在GitHub上找到有关它的所有资料,openmv在许多比赛中都可以拿来使用,但是不建议通过它来学习视觉,因为openmv的集成度太高,只了解它是学习不到干货的。
  3. TX2
    tx2是优秀并且强大的运算平台,传统视觉,深度学习都可以胜任,但是售价较为昂贵。ARM架构系统的安装可能会遇到各种各样的问题,有条件可以直接让商家装好程序。自己安装出现问题的话建议上网谷歌或者百度,一般你遇到的问题大家都遇到过。
    但是TX2的性能也并没有很强,256颗流处理器只能在运行yolo-tiny版本时可以到实时性的要求,完整版运行起来基本就是PPT状态,在运行yolov4-tiny时效果最好的,但后续优化应该尽可能想办法去提高模型运行速度,提高视频解码速率。
    运行效果如下
    https://blog.csdn.net/weixin_46214675/article/details/114092553
    https://www.bilibili.com/video/BV1tv411Y7Rt
  4. NUC
    英特尔NUC是极为友好的计算平台,许多参赛队伍都有使用,可以安装黑苹果,windows,Ubuntu等系统。对于NUC它拥有强大的cpu,但是个人尝试在其上面运行yolov3模型纯CPU跑,视频帧率极低。并不了解其他参赛队的使用方式。但是NUC对于机甲大师来说其性能是绝对够用的,不够的很大原因可能来源于使用者自身。
    该链接为加州伯克利大学 Robomaster视频,使用设备为NUCI5
    加州伯克利大学 Robomaster

环境配置

在计算机视觉的学习和使用过程中最最麻烦和最应该担心的事情就是环境配置的问题,学习语言和程序编写相对于此则更为容易一下,环境配置难在他的不确定性太多。
需要考虑的环境有:
1.ubuntu与windows双系统的环境配置,尽量避免系统崩溃
2.(Windows与Ubuntu)python环境下的opencv配置,注意版本对应
3.(windows) C++一般使用Visual Studio 编译,每一个项目都需要进行一次配置较为繁琐
4.(Windows与Ubuntu) tensorflow或者pytorch与python的环境配置
5. Ubuntu下ros机器人操作系统的环境配置
6. 深度学习各个模型所需的环境配置需要自己摸索

个人修为

  1. 对于学习最重要的是要掌握学习方法,作为视觉组长面对新人很多时候都感觉到他们似乎并不会学习。一旦遇到无论怎样的问题都会向组长寻求解决方法,这并不是最好的解决方案。
    遇到问题一定要首先尝试自己解决问题,可以思考,可以百度,可以谷歌;尝试自己解决不了之后再与其他组员讨论,开阔思路后再进行尝试;最后请求组长援助。程序报错并不可怕,找到原因都可以解决

  2. 对于比赛我们要求使用程序,但是对于自己我们需要学习程序
    单从语言来说在写程序的过程中我们会对问题进行分析,然后按照流程来解决问题,我们要编写出可以满足我们需要的功能函数。但是由于时间有限我们仅仅学习了基础的语言并没有了解其内在的数据结构,所以一旦有需要就应该继续学习更高级的语言部分了。
    再者许多问题的解决化解后都是数学问题,包括弹道问题,大风车的击打,反小陀螺的实现等等,对于这些问题需要有一定的数学能力,要相信一切知识都可以学习,一切问题都可以解决。
    下面分享一个学习宝典,你可以搜索到任何自己想要的学习资料!!!
    学习宝典
    搜索网站

在个人的备赛经历中遇到的数不尽的问题,系统安装问题、软件崩溃问题、环境配置问题、相机标定问题、视觉测距问题、坐标系转换问题、装甲板识别问题、卡尔曼滤波使用问题、串口通信问题、深度学习问题等等。后续我将针对我所遇到到的坑以及相关问题解决方案做出整理。

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

ROBOMASTER机甲大师赛视觉组学习方案 的相关文章

随机推荐

  • Windows10下Vmware开机蓝屏解决办法,亲测有效

    前言 虚拟机蓝屏的原因有很多 xff0c 这里我结合了网上的方法测试了三种 xff0c 建议大家三种都试一下 题外话 xff1a 其中有一台虚拟机蓝屏 xff0c 我把下面三种方法都用了才解决 xff1b 而另一台虚拟机我三种方法都用却解决
  • 3. 51——LCD1602显示 字符、字符串、数字

    51 LCD1602显示 字符 字符串 数字 LCD1602简介LCD1602相关引脚LCD1602写命令 写数据相关操作图 写指令 代码写数据 代码LCD1602显示程序步骤及如何初始化显示开关控制指令进入模式设置指令功能设定指令清屏指令
  • 12. STM32——硬件IIC驱动OLED屏幕显示

    STM32 硬件IIC驱动OLED屏幕显示 OLED屏幕OLED屏幕特点OLED屏幕接线说明OLED屏幕显存OLED屏幕原理OLED屏幕常用指令OLED屏幕字模软件的使用 写命令写数据OLED 初始化 xff08 厂家提供的代码 xff09
  • 15. STM32——软件IIC驱动OLED屏幕显示字符、字符串、数字、汉字

    STM32 软件IIC驱动OLED屏幕显示 OLED屏幕写命令写内容对OLED写入一个字节设置光标启动OLED关闭OLED全屏填充 xff08 清屏 xff09 显示字符显示字符串获取次方显示数字显示中文OLED驱动代码整合代码oled h
  • 16. STM32——测量空气的温度和湿度(STM32 + DHT11温湿度 + OLED显示)

    STM32 测量空气的温度和湿度 xff08 STM32 43 DHT11温湿度 43 OLED显示 xff09 DHT11温湿度相关介绍初始化GPIOB11启动DHT11获取一个字节获取数据代码整合DHT11 hDHT11 coled h
  • 17. STM32——SPI硬件

    STM32 SPI SPI协议SPI接口SPI接口框图SPI工作原理时钟信号的相位和极性CPHA 61 0CPHA 61 1 SPI中断状态标志发送缓存器空闲标志 xff08 TXE xff09 接收缓冲器非空 RXNE 忙BUSY标志 S
  • 关于anaconda下载之后在开始菜单找不到快捷方式的问题

    这是我在安装anaconda时犯的错误 xff0c 安装之后在开始菜单没有找到关于anaconda的文件夹 jupyter notebook spyder anaconda prompt 安装了好多遍 xff0c 最后才知道方法如此简单 第
  • 对帧率、I/P率、I帧间隔的理解2021-11-16

    对帧率 I P率 I帧间隔的理解 码率就是数据传输时单位时间传送的数据位数 一般我们用的单位是kbps即千位每秒 通俗一点的理解就是取样率 xff0c 单位时间内取样率越大 xff0c 精度就越高 xff0c 处理出来的文 件就越接近原始文
  • java读取jar包内的配置文件

    java读取jar包内的配置文件 span class token class name Properties span p span class token operator 61 span span class token keywor
  • 3、Proteus仿真STM32定时器TIM2与中断来控制流水灯的定时闪烁。

    一 实验说明 本次实验建立在上两次实验上 xff0c 稍加修改 xff0c 通过TIM2定时器中断控制LED流水灯的闪烁时间 xff0c 并且增加两个按键PA1 PA2 xff0c 其中PA1控制LED流水灯的启动 xff0c 8个灯先依次
  • HDFS基础知识(个人总结)

    HDFS存储优缺点 优点 高容错 因为它有多个副本可处理大数据 文件数量可达百万 缺点 HDFS可以追加 但不能修改某一条数据 若实在想修改 只能下载下来原文件进行修改后重新上传覆盖 不适合低延迟数据访问 如毫秒级 无法高效存储大量小文件
  • 校招笔试题1

    编码题 字符串S由小写字母构成 xff0c 长度为n 定义一种操作 xff0c 每次都可以挑选字符串中任意的两个相邻字母进行交换 询问在至多交换m次之后 xff0c 字符串中最多有多少个连续的位置上的字母相同 xff1f 输入描述 第一行为
  • 【Linux】c++创建新线程执行sh脚本

    Linux c 43 43 创建新线程执行sh脚本 前情提要 Linux profile d加入循环shell脚本 xff0c 重启登录黑屏system函数可以运行 sh脚本 需要包含stdlib h因为我的 sh脚本里有循环 不能放在主程
  • pip下载路径查看,解决在pycharm导入问题

    今天在学习图表数据可视化时 xff0c 用到了pyecharts包 xff0c 在cmd中输入pip install pyecharts xff0c 显示下载成功 xff0c 如下所示 xff1a 但在pycharm中仍不能导入pyecha
  • C语言学习笔记:函数递归-斐波那契数列

    什么是递归 在数学和计算机科学中 xff0c 递归指由一种 xff08 或多种 xff09 简单的基本情况定义的一类对象或方法 xff0c 并规定其他所有情况都能被还原为其基本情况 递归就是在运行的过程中调用自己 xff0c 递归关系就是实
  • python3安装教程

    前言 xff1a 建议使用3 6版本及以上 xff0c 系统自带的python2不要卸载 xff0c 一些系统命令要用 xff0c 2和3可以共存 一 Linux安装python3 Python 3 6 8 1 查看是否已安装python3
  • windows通过xrdp协议远程centos桌面

    windows通过xrdp协议远程连接centos图形化桌面 系统远程试验环境Centos7 9远程环境检查Xrdp服务包安装开放访问端口启用远程服务开始访问测试其他注意事项 系统远程试验环境 远控端 xff1a Windows10 被控端
  • 深度相机的障碍物检测

    深度相机的障碍物检测 这里简单备份一下 xff0c 有关深度相机障碍物检测的学习内容 1 准备相机的驱动 Ubuntu18 04 43 ROS 43 ros astra camera master 采用的是astra深度相机 xff0c 安
  • [转载]windows搭建cloudreve对接OneDrive教程

    文章转载于我的博客GoodBoyboy 39 s Blog xff5c 惬意小屋 点滴记忆 GoodBoyboy 39 s Blog 惬意小屋 点滴记忆 https blog goodboyboy top 36 html 一 前言 clou
  • ROBOMASTER机甲大师赛视觉组学习方案

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