了解CV和RoboMaster视觉组(三)视觉组使用的软件

2023-05-16

--NeoZng【neozng1@hnu.edu.cn】

3.视觉组接触的软件

进行视觉开发会用到各种各样的软件、开发环境、辅助工具等,所以很有必要了解一些相关的快捷键、命令、使用技巧。选择一款适合自己的IDE能够提高开发效率,方便版本管理。

3.1.Ubuntu

  • 为什么使用Ubuntu?

    • Ubuntu是一个Debian系分支的第一大系统,是用户量最大的linux发行版。因此,遇到任何问题一般都能够在用户社区askubuntu中得到解答。它的安装也非常的方便,并且在更新到20.04后,ubuntu的桌面美观性也有提升。同时,ROS是在Ubutnu之下开发的。如果要使用ROS,Ubuntu是你的不二之选。

ubuntu的21.04已经发布了

  • Linux的内核和系统比Windows更加精简,故在运行时占用的各类资源都要小于Windows。在不打开任何应用的情况下,笔者的电脑在运行Windows10时占用的内存为4.2G,cpu占用率在10-20%左右,而运行Ubuntu20.04LTS的时候,只使用了2.2G的内存,cpu占用率只有10%不到。这样,在运行我们的视觉算法程序时,可以更充分地利用系统资源,最大程度压榨电脑的性能。(甚至可以在测试结束后实际运行时关闭图形界面,只保留终端!这样,系统内核作为唯一需要运行的基础程序,大概能将cpu占用率缩小到1-2%)

  • Linux对于深度学习的支持比Widnows更加友好,经常有sh脚本能够一键配置开发环境。此外Linux对一些设备驱动的支持也更完善,我们可以选择挂载自己需要的驱动和IO,并且精简属于自己的内核。

  • 想要安装Ubutnu,可以参阅这篇教程:Ubutnu的安装-排除各种问题!-NeoZng

  • 提到Linux就不得不提到命令行的使用,在Linux上进行开发常会使用到命令行,有些软件甚至只有命令行界面的版本。在一些时候,直接在命令行中用键盘操作可能要比数不清的鼠标点击快得多。你需要学习:

    • cd、ls 、pwd、mv、cp、touch、diff、rm、cat、mkdir、rmdir、echo、tar等文件系统的基本操作,grep、find 查找文件和目录

    • 帮助手册man和-help参数。

    • sudo、su、chmod等权限相关的操作。

    • ping、ifconfig、wget等网络相关的操作。

    • 一定要亲手熟悉命令行的基本命令,切忌只看不动手!学习以上命令,戳这里Linux Commands.

  • 至少掌握一个无GUI的文本编辑器的基本使用,如vi,vim,nano等。这能够帮助你在系统出现问题的时候快速修改一些配置文件,或是在使用ssh连接的时候简单地编写一些程序。当然,笔者不推荐你将这些文本编辑器作为主力IDE使用(即使是安装了各种各样的插件!)例如,虽然一个熟练使用vim的程序员和一个熟练使用eclipse的程序员拥有相同的开发效率,但是vim的学习成本可不知道比eclipse高多少!

  • Linux的设计哲学是“一切皆文件”。它将所有的IO设备如网络接口、usb接口、显示屏、相机、键盘鼠标、应用都视为文件,和这些“文件”的交互就是以规定的方式进行读写。因此,有必要了解Linux的基本目录,目录结构请参考:Linux文件目录结构一览表

  • 在使用系统的时候,建议大家有良好的文件分类习惯,把代码库、软件、开发环境分开存放,避免出现home目录乱糟糟的情况。

 这篇文章就是在Ubutnu下使用markdown编辑器完成的

3.2.IDE

想要编写代码,光靠文本编辑器+gcc+gdb可不行,我们要充分利用技术进步带来的便利,谁不喜欢做懒人呢。这里推荐几款Linux下编写C++程序使用的IDE:

  • VSCode:微软的小儿子,啥系统都能用。丰富的插件生态只有你想不到没有你找不到,配置完之后使用起来非常方便,比如C++就有一个C++ extensions pack关键是好看啊!在使用了snippets和Visual Sutdio Intellicode这两个插件之后,智能提示也很智能。想要写其他的语言也能够一条龙配齐,总之,上手容易且可定制化程度极高。

  • Clion:JetBrain家的IDE,界面也很美观,智能提示也很智能。以前用过PyCharm或者其他jb系的IDE的同学可以继续使用。用.edu后缀的学校邮箱可以免费申请教育优惠,就可以免费用了。

  • Qt:Qt也是一款跨平台的C/C++ IDE,在Qt上编写的GUI程序能够在所有平台上运行。用Qt可以方便地编写一些图形化的程序,比如串口调试助手、调参助手等。他的整体界面也算是比较清爽。

这里需要特别提及的是CMakeLists的编写。Linux没有Visual Studio这样保姆级的IDE,并不存在一款能够自动为你生成makefile的软件。所以至少要学习qmake和cmake中的一种工具。这里推荐cmake,虽然比qmake的语法稍微复杂一些,但是cmake的功能非常强大,拥有非常优良的跨平台支持。学习cmake还能帮助你进一步了解程序的编译、链接过程。关于程序是怎么从源代码到机器代码最后在电脑上运行起来和cmake的基本使用,请参考《程序的生前死后-Cmake-noob-in》-NeoZng这篇文章。

虽然IDE把工具链都集成在了一起,极大地方便了我们的使用,笔者还是推荐你学习一下GNU工具链的使用,至少熟悉编译、汇编、链接的过程。这样可以更深入的了解软件的运行,以便在开发过程中出现问题的时候,快速定位问题所在并找到解决方法。

3.3.Git

团队协作开发需要一款优秀的代码管理工具,那Git就是不二之选,大家肯定都听过GitHub这个最大的同性交友平台,它便是一个基于Git的代码托管平台。这里有个小故事,Git是Linux的元老Linus因为Linux社区被禁止使用BitKeepter这款版本控制软件后,一怒之下在一周之内用C写出来的程序哦。

我们实验室开始的时候都是用u盘拷贝程序,有时候在某个人的电脑上写一点有时候又在minipc上写一点,虽然在文件夹上标准了时间和版本号,然而这并没有什么用,这导致一次合并代码的时候有十多个版本的代码,根本不知道哪个能用哪个不能用,那时候又还不知道diff这个工具,弄得眼睛都快无了。

要学习Git,推荐这几个网站:廖雪峰的git教程 git简易指南-no deep shits! GitHub Guides

在学习Git的时候,一定要动手跟着一起实践,切忌光看不动!

git的标志性图标,分岔的icon表示强大的分支功能

3.4. 其他常用软件和小工具

  • Microsofot Edge DEV for Linux :Edge浏览器Linux版,可以方便同步windows下的收藏夹、设置、插件等。集锦的功能非常好用。

  • SimpleScreenRecorder :一款录制屏幕的软件。

  • qv4l2:linux下相机驱动的图形界面,在Ubuntu软件商店可以找到,方便调节相机参数。

  • Meld:一款diff软件的图形界面,方便对比文件的不同,在Git使用merge或pull的时候可能会用上,在Ubuntu软件商店可以找到。

  • Fsearch:和Windows下的everything类似,提供超快速的文件搜索功能。

  • Typora:好看好用的markdown编辑器,本文就是使用typora编写的。使用markdown编写代码的说明文档是一个很好的习惯,这可以降低其他人阅读你编写的代码的难度,也有利于代码分享和代码的传承。同时,你的也可以使用markdown来记录自己的学习历程、一次艰难的问题解决之路。使用markdown可以提高你的记录效率。vscode内也有相关插件提供对markdown支持。

  • TigerVNC:一款局域网内可用的远程桌面软件,VNCViewer也可以作为替代。强烈推荐使用远程桌面调车!电控都有无线调试器,我们怎么能跪在地上呢(气抖冷)。在把运算平台安装到机器人上之后,我也曾经拿着一块小屏幕和键鼠,蹲在地上和机器人进行亲密交流,这不仅加深了我和机器人的感情,也加重了我的颈椎病和腰椎键盘突出。(最恐怖的是车车的云台或者底盘疯了的时候,线全部缠到机器人上!!机器人甚至有可能对你造成伤害!!都是电控的锅,你云台怎么又疯了)使用了vnc后,只要将minipc和你的笔记本连接到同一个局域网,你就可以优雅地拿着笔记本调车了。如果校园网的带宽不够,建议买一个路由器,或者和搭建裁判系统的路由器公用也可以。

上交的同学更是把这件事做到了极致,他们直接通过网页来修改机器人的各种参数并得到反馈信息,能做到不需要任何远程桌面就能实时调参,此想法以为妙绝!

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

了解CV和RoboMaster视觉组(三)视觉组使用的软件 的相关文章

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

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

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

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

    ROBOMASTER机甲大师赛视觉学习方案 视觉技能学习踩坑硬件平台环境配置个人修为坑 机甲大师 xff08 RoboMaster xff09 是由大疆创新 xff08 DJI xff09 的创始人汪滔发起并承办 由共青团中央 全国学联 深
  • RoboMaster机甲大师——视觉组——计算平台的选型与感想(主流几款)

    RoboMaster机甲大师 视觉组 计算平台 xff08 工控机 xff09 的选型与感想 xff08 主流几款 xff09 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介 xff1
  • 大疆RoboMaster技术总监:我是如何成为一名机器人工程师的

    作者 大疆创新RoboMaster技术总监YY硕 前言 很多朋友私信问我对机器人和人工智能感兴趣 xff0c 该怎么展开学习 最近稍微有点空 xff0c 我写写我的看法 两年前 xff0c 我在知乎回答如何定义 机器人 xff1f YY硕的
  • RoboMaster视觉教程(1)摄像头

    观文有感 之 RoboMaster视觉教程 xff08 1 xff09 摄像头 闲来垂钓碧溪上 今天钓到一篇RM视觉摄像头的好文 xff0c 记录一下笔记 xff1a 文章目录 观文有感 之 RoboMaster视觉教程 xff08 1 x
  • 了解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 应用举例 降噪 网络上能找到非常多自适应滤波器用于降噪的例子 xff0c 尤其是AEC xff08 自适应回声消除 xff09 常常被作为样例 xff0c 但是却存在大量的缺解 讹误和疏漏 xff
  • 了解CV和RoboMaster视觉组(五)运动建模与预测

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

    ROBOMASTER机甲大师赛视觉学习方案 视觉技能学习踩坑硬件平台环境配置个人修为坑 机甲大师 xff08 RoboMaster xff09 是由大疆创新 xff08 DJI xff09 的创始人汪滔发起并承办 由共青团中央 全国学联 深
  • 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怎么设计新步兵悬挂

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

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

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

    1 环境配置 系统 xff1a ubuntu16 04 xff0c 安装ROS 2 基础学习 需要C 43 43 和python基础 xff0c 和ROS的基础知识 xff0c 网上有很多教程 xff0c 推荐知乎大佬教程 xff1a 我的
  • RoboMaster机甲大师:裁判系统服务器搭建助手(RMServer Aid)

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

随机推荐

  • 树莓派3B首次安装

    下载系统 xff1a 树莓派官网https www raspberrypi org downloads raspbian 从该系统下载相关的镜像文件 xff0c 我这里用的是 2017 09 07 raspbian stretch lite
  • LightPC: Hardware and Software Co-Design for Energy-Efficient Full System Persistence(论文阅读翻译)

    xff08 注 xff1a 课程作业要求 xff0c 机翻自己看的 xff09 Abstract 我们提出了LightPC xff0c 一种轻量级的持久性中心平台 xff0c 以使系统对电源故障具有鲁棒性 LightPC由硬件和软件子系统组
  • LINUX 常用命令

    LINUX 常用命令 1 cd命令 这是一个非常基本 xff0c 也是大家经常需要使用的命令 xff0c 它用于切换当前目录 xff0c 它的参数是要切换到的目录的路径 xff0c 可以是绝对路径 xff0c 也可以是相对路径 如 xff1
  • Linux 下安装 WordPress

    Linux 下安装 WordPress 1 下载 WordPress wget i https cn wordpress org wordpress 5 0 3 zh CN zip 2 解压 wordpress 5 0 3 zh CN zi
  • 注册表操作,reg脚本简单编写

    注册表操作 xff0c reg脚本简单编写 添加项 Windows Registry Editor Version 5 00 HKEY CURRENT CONFIG System CurrentControlSet SERVICES TSD
  • EUI-64格式生成

    EUI 64 IEEE EUI 64地址表示有一个用于网络接口寻址的新标准 在IPV6中 xff0c 无状态自动配置机制使用EUI 64格式来自动配置IPV6地址 无状态自动配置是指在网络中没有DHCP服务器的情况下 xff0c 允许节点自
  • Git使用

    Git使用 生成RSA密钥对 ssh keygen t rsa C email t 指定生成的加密方式 C 添加注释 xff0c 一般来说是邮箱 注 xff1a 如果指定了文件名字为github rsa xff0c 需要配置config 内
  • maven 常用镜像仓库

    maven 常用镜像仓库 lt mirror gt lt id gt alimaven lt id gt lt mirrorOf gt central lt mirrorOf gt lt name gt aliyun maven lt na
  • 面向对象的语言主要有哪些

    面向对象程序设计 Object Oriented Programming xff0c OOP 的实质是选用一种面向对象程序设计语言 OOPL xff0c 采用对象 类及其相关概念所进行的程序设计 主要有Smalltalk Eiffel C
  • Python如何自制包、如何安装自己的包并导入

    首先科普一下包和模块的概念 xff1a 在Python中 xff0c 包是一个包含多个模块的目录 xff0c 而模块则是一个单独的文件 一个包可以包含多个模块 xff0c 也可以包含其他的子包 当一个目录下面有一个 init py文件时 x
  • 使用OpenFeign代替RestTemplate来请求接口

    在使用RestTemplate来调用接口服务的时候 xff0c 需要写一个调用地址的参数 xff0c 这样做不太好管理接口地址 xff0c OpenFeign就提供了一个比较好的管理方式 xff0c 类似于写一个Mapper的接口 xff0
  • 手把手教你如何一键备份和恢复微信聊天记录

    相信大家的聊天记录都非常重要 xff0c 怎么能说没就没 xff01 xff01 今天就分享一个备份聊天记录的方法 备份聊天记录 首先在电脑版微信上 xff0c 点击左下角 三条横杠标志 按钮 xff0c 选择 备份与恢复 在弹出的 备份与
  • MonoSDF: Exploring Monocular Geometric Cues for Neural Implicit Surface Reconstruction论文翻译

    机翻的 这篇属实看不懂 Abstract 近年来 xff0c 神经隐式表面重建方法已成为多视图三维重建的流行方法 与传统的多视图立体方法相比 xff0c 由于神经网络的归纳平滑偏差 xff0c 这些方法往往会产生更平滑和更完整的重建 最先进
  • SPSS入门教程—相关性分析使用方法

    IBM SPSS Statistics为用户提供了三种相关性分析的方法 xff0c 分别是双变量分析 偏相关分析和距离分析 xff0c 三种相关分析方法各针对不同的数据情况 xff0c 接下来我们将为大家介绍如何使用SPSS相关性分析中的距
  • 使用IBM SPSS Statistics的新手应该如何入门

    一 什么是IBM SPSS Statistics xff1f IBM SPSS Statistics 是一款强大的统计软件平台 xff0c 它所提供的数据分析功能 xff0c 可以帮助企业 个人对各类数据进行切实可行的洞察分析 xff0c
  • linux 下清空回收站命令

    linux 下清空回收站命令 sudo rm fr root Trash
  • 了解CV和RoboMaster视觉组(目录和大纲)

    NeoZng neozng1 64 hnu edu cn 全网最最最全的RoboMaster视觉组入门教程和概览来啦 xff01 0 Catalogue 摘要 视觉组在不同兵种中的作用 2 1 装甲板识别 2 2 能量机关 2 3 哨兵 2
  • 了解CV和RoboMaster视觉组(一)摘要

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

    NeoZng neozng1 64 hnu edu cn 2 视觉在各兵种中的作用 2 1 装甲板识别 xff08 步兵 英雄 无人机 xff09 由于机器人上安装的图传模块到操作手看到的第一视角的延迟加上操作手反应速度的延迟 xff0c
  • 了解CV和RoboMaster视觉组(三)视觉组使用的软件

    NeoZng neozng1 64 hnu edu cn 3 视觉组接触的软件 进行视觉开发会用到各种各样的软件 开发环境 辅助工具等 xff0c 所以很有必要了解一些相关的快捷键 命令 使用技巧 选择一款适合自己的IDE能够提高开发效率