关注分享主机优惠活动
国内外VPS云服务器

了解RoboMaster Vision Group(三)Vision Group使用的软件(Visual Slam)

总结:视觉团队在视觉开发中处理的软件使用了各种软件开发环境辅助工具,因此需要了解几个相关快捷键命令的使用技巧。 不存在这样的保姆级别,也没有任何软件可以自动生成它。 这是一款录屏软件。

--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少。 在没有打开任何应用程序的情况下,我的电脑在运行 Windows 10 时占用 4.2G 内存,CPU 使用率约为 10-20%。 然而,运行Ubuntu20.04LTS时,仅使用2.2G内存。 ,CPU占用率低于10%。 这样,在运行视觉算法程序时,这时,您可以更好地利用您的系统资源,最大限度地发挥计算机的性能。 (测试后实际操作时,也可以关闭图形界面,只留下终端。这种方法大概会降低CPU占用1[,系统内核是唯一需要运行的基础程序。k4]2%)

Linux 比 Windows 更适合深度学习。 经常有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 命令。

至少掌握非 GUI 文本编辑器(例如 vi、vim 或 nano)的基本用法。 这对于快速更改某些配置很有用。 如果您的系统有问题,请创建一个文件;如果您想使用 SSH 连接,则只需创建一个程序。 当然,作者不建议使用这些文本编辑器作为你的主要IDE(即使你安装了各种插件)。 例如,一个擅长vim的程序员和一个擅长Eclipse的程序员可能具有相同的开发经验和效率,但是不过,学习vim的成本比学习Eclipse的成本高很多。

Linux 的设计理念是“一切皆文件”。 它将网络接口、USB接口、显示器、摄像头、键盘、鼠标、应用程序等所有IO设备都视为文件,与这些“文件”的交互就是按照预定的方式读写它们。 因此,你需要了解Linux的基本目录。 目录结构请参见Linux文件目录结构列表。

在使用系统时,我们建议您养成正确分类文件以及对代码库、软件和开发环境进行分类的习惯。 将它们单独存储以避免弄乱您的主目录。

本文是使用 Ubutnu markdown 编辑器编写的。完全的。

p>

3.2. IDE

如果你想写代码,你不能只依赖文本编辑器+gcc+gdb。 我们必须充分利用技术进步带来的便利。 谁不喜欢这样? 懒惰。 以下是一些在 Linux 上编写 C++ 程序的推荐 IDE。

VSCode:微软最小的孩子,可以在任何系统上使用。 丰富的插件生态超乎你的想象,也无法找到。 设置后使用起来非常方便。 例如,C++ 有一个 C++ 扩展包。 重要的是看起来不错! 借助两个插件片段和 Visual Sutdio Intellicode,智能提示也可以变得非常智能。 如果你想编写其他语言,你也可以在一个包中获得所有内容。 这意味着它很容易上手并且高度可定制。

Clion:JetBrain 的 IDE 拥有漂亮的界面和智能的提示。 之前使用过PyCharm或者其他基于JB的IDE的同学可以继续使用。 带有 .edu 后缀的学校电子邮件可以免费索取和使用教育折扣。

Qt:Qt也是一个跨平台的C/C++ IDE ,用Qt编写的GUI程序可以在所有平台上运行,可以在Qt中轻松创建一些图形程序,例如串口调试助手和参数调优助手。

这里值得特别一提的是CMakeList的创建,Linux没有像Visual Studio这样的保姆级别的IDE,所以makefiles也没有自动生成它的软件,所以你需要学习: qmake 和 cmake 之间至少有一个工具,但是 cmake 非常强大并且跨平台,它还可以帮助你更好地理解程序的编译和链接过程,它是如何从源代码到机器代码,最后在计算机上运行的。有关使用 cmake 的基本说明,请参阅程序的生与死 - Cmake - noob-。 》-NeoZng这篇文章。

它是一个IDE,但工具链是全部集成的,非常容易使用越来越容易了。 仍然鼓励作者学习如何使用 GNU 工具链,并至少熟悉编译、汇编和链接过程。 这将帮助您更好地了解软件的操作并更好地使用它。 如果开发过程中出现问题,我们能够快速识别问题并找到解决方案。

3.3.Git

团队协作开发需要一个好的代码管理工具,而Git不适合你。 至于第二种选择,我们都听说过最大的同性恋交友平台 GitHub。 这是一个基于Git的代码托管平台。 我在这里给你讲一个小故事。 Git 资深人士 Linus 已被禁止在 Linux 社区使用 BitKepter。 控制创建软件后,我在一周内疯狂地用 C 语言编写程序。

我们实验室刚开始的时候,都是用U盘来拷贝程序的。 时间和版本在文件夹上标准化,但我在某人的计算机上写了一点,在迷你电脑上写了一点。 但这没有帮助。 因此,一次合并代码可能会产生超过 10 个版本的代码。 不知道哪些可以用,哪些不能用。 那时我还不知道什么是旅行差速器,所以我的眼睛都快模糊了。 。

学习Git,推荐以下网站:廖雪峰的git教程 git简单指南- 无需太深。 GitHub指南

学习Git时,必须遵循它。 不要只是看,还要一起练习。

git 符号图标,分叉图标代表强大的分支功能。

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

Linux 版 Microsoft Edge DEV:一个 Linux 版本,可让您轻松同步 Windows 收藏夹、设置、插件等。收藏功能非常实用。

SimpleScreenRecorder:用于录制屏幕的软件。

qv4l2:Linux 上相机驱动程序的图形界面,它可以在 Ubuntu 软件商店中找到,对于调整相机参数很有用。

Meld:diff 软件的便捷图形界面比较文件当使用 Git 进行合并或拉取时,可以利用这种差异。 这可以在 Ubuntu 软件商店找到。

Fsearch:与所有 Windows 功能一样,提供以下功能特征: 超快速的文件搜索功能。

Typora:看起来很棒并且易于导航。 - 使用 Markdown 编辑器。 本文是使用 Typora 编写的。 使用 Markdown 记录代码是一个很好的做法。 这使得其他人更容易阅读您编写的代码,并且还有助于代码共享和代码继承。 同时,你还可以使用Markdown来记录你的学习过程或解决疑难问题。 Markdown 提高了记录效率。 vscode 还有一个配套插件,提供 Markdown 支持。

TigerVNC:可在 LAN 软件 Desktop、VNCViewer 中远程使用也可以用作替代方案。 我们强烈建议使用远程桌面分流器。 所有电子控制装置都有无线调试器,那么你如何落地(喘气和颤抖)? 在机器人上安装好计算平台后,我蹲在地上,拿着小屏幕、键盘和鼠标,与机器人亲密交流。 这不仅加深了我与机器人的感情,也让我的颈椎病、腰椎病更加恶化。 键盘伸出来了 (最可怕的是,如果Cheche的云台或底盘出了问题,所有的电线都会和机器人缠在一起!!机器人甚至会伤害你!一切都是电子控制的。为什么我的云台又表现得很奇怪?)使用VNC后,只要你的迷你电脑和笔记本电脑连接到同一个局域网,你就可以在笔记本电脑上优雅地切换汽车。 如果校园网带宽不够,建议购买路由器或与搭建裁判系统的路由器共用。

提交作品的学生将这个问题发挥到了极致。 他们直接通过网页修改了机器人的各个方面。 设置参数并获取反馈信息。 无需使用远程桌面即可实时调整参数,这是一个好主意。

未经允许不得转载:主机频道 » 了解RoboMaster Vision Group(三)Vision Group使用的软件(Visual Slam)

评论 抢沙发

评论前必须登录!