跳转至

视觉组入门基础

引言

各位来到视觉组纳新的同学,我相信你们一定是抱着不同的目的来到我们实验室的,有的可能是想提升自己的能力,有的单纯是热爱机器人,有的可能是希望了解开发工作。无论如何,我们最终都是要为了干好一件事---成为一位合格的robomaster。为此,我希望你们先了解我们到底是做什么的,以及怎么做。然后再次基础上学习怎么做,最终成为合格的robomaster,并完善这份提纲,为后来的robomaster开辟出一条路。 ----前视觉组成员

解惑篇

robomaster是什么,视觉的工作是什么

RoboMaster是由共青团中央、全国学联、深圳市人民政府联合主办的一系列赛事。主要由超级对抗赛(RMUC)和高校联盟赛(RMUL)两个赛事组成。经过地方(省赛)到决赛(国赛),获得的奖也由省奖到国奖。在我们厦理属于A类竞赛。

RoboMaster的超级对抗赛(RMUC)和高校联盟赛(RMUL)差别不大,主要是参加机器人和胜利方式的不同。这里不做展开。其本质是参赛队伍带着机器人与其他队伍对抗(菜鸡互啄)

那么机器人从哪里来呢,~(主要靠学长祖传),~一开始当然是由学长从零手搓,这就是每个队伍的传承了,每个队伍都多多少少有自己的绝活(我们视觉组学长的雷达全国第一,链接放在下面)。https://www.bilibili.com/video/BV1jD421g7ab/?spm_id_from=333.1387.search.video_card.click

但是这并不意味着我们只靠传承就够了。事实上,每年赛事都会有新技术诞生,如果不在学长已有的技术方案上更新,迭代。那么就会落后,而落后就会挨打,因为落后挨打然后导致队伍越来越退步,甚至传承断了的事也不是没有。我希望各位看到这里要有自信---能在往届基础上迭代的自信。也请对我有自信,让各位学会基础,成为一个合格成员的能力

而我们PFA主要由机械组,硬件组,电控组,视觉组构成。我们视觉组的工作流一般是等前面三个组的工作完成后,在机器人工期的中后期才开始与其他人的合作,进行机器人的联合调试。那么在工作还没推到我们前做什么呢?(摸鱼当躺赢狗)。当然不是摸鱼当躺赢狗,而是不断提升自己的能力,积极的搜索资料实现迭代更新,也要积极的参与到其他组的工作进度,参与沟通和讨论。

其实与其叫视觉组,我们更应该叫算法组。我们所需要掌握的东西是很多的,多到你一看这份提纲就知道要学多少了。掌握的东西也是很难的,大部分视觉遗传的都是已经有的开源方案,我们大多学长也只有部署应用的能力,我们视觉组的历史也不长。同时在学习过程中坑也是很多的,我所写出来的都是我踩过的坑。但是,视觉组也是传承最多的,我们前辈跑通的代码,流程,往往在方案不大改,只需要简单的维护调试。甚至是大改了,也不需要耗费多少精力就能跑通的。我们也往往是组里最闲的。

但希望你们记住一件事:不要当躺赢狗。即使我们没有能力去更新迭代,但也请尽力去设想,或者是让代码更加已读或者去解耦合优化。至少至少要做好下一代的传承。别的组员不给我们压力,但我们是应该明白自己的责任的。

PFA的视觉组在各兵种的运用

步兵、英雄机器人:自动瞄准系统 哨兵机器人:导航 工程机器人:兑换槽自动识别

一名合格的视觉组成员应有的素质和能力

一个合格的视觉组成员应该是具有基础的调整不同机器的自瞄参数,能读懂python和c++(别看两种语言很难,慢慢来,会学会的),能熟练使用linux,了解会使用opencv库,会训练yolo神经网络。我们视觉组成员是学的广,但只在单一方向精(你跟的机器人)。学的广不难的,学的精才是难的

同时,我们应该注意代码的规范(变量名和文件名),以及注释的标注,还有类的编写,以便于后续的迭代和维护。

实操篇

一轮

CPP的基础操作和使用(一轮)

cpp特性介绍

视觉的c++运用在我们组内其实不多,但c++拥有比python更快的运行速度,占用更小的内存(写的好的话),更严谨的语法,等等优点。而且其实一轮用c++过的话,你们能获得更好的代码基础,后面学python也是会更快。(不合格的本人一二轮c++过,一周学会python)。

环境配置

我们主要使用vscode作为IDE(不理解记住就行了,可以理解为可以编写不同语言的工具,提供给方便开发者编译,调试的平台而已)。 (你足够强大的话,记事本也是一种IDE(?))

然后c++的环境配置主要是gcc和g++的配置(即编译器的配置)。编译器就是语言的解释器。(如下面图示)

我们接下来教你一步步如何完成从vscode的下载到gcc,g++的配置。

{width="5.768055555555556in" height="4.259722222222222in"}

vscode的初步配置

第一步:浏览器用bing搜索,找寻vscode官网,下载并安装。(浏览器搜索会是以后相当常用的技能,试试,找不到或者想要对答案点https://code.visualstudio.com/

{width="5.768055555555556in" height="2.2180555555555554in"}

再不会摇学长

{width="5.768055555555556in" height="3.1243055555555554in"}第二步:点开来后发现是一片英文.

不要怕,点击这个图标,{width="5.768055555555556in" height="3.529166666666667in"}

在上面搜索chinese,安装中文插件,并点击蓝色的install安装。{width="5.65625in" height="6.708333333333333in"}

{width="5.541666666666667in" height="2.3645833333333335in"}

然后安装之后还是没有,不要急。读一下插件页面

{width="5.768055555555556in" height="3.4166666666666665in"}

按下ctrl+shift+P,呼出vscode命令后在上面输入configure display(可以不输入完整,会自动跳出),按下,然后会提示你重启,按下确认。然后我们就配置好了中文界面。

{width="6.270875984251968in" height="1.7169805336832895in"}

{width="5.763888888888889in" height="0.8583333333333333in"}

点击中文

{width="5.763888888888889in" height="1.6229166666666666in"}

重启切换语言

Mingw(gcc,g++的配置)

这里的话我们提供两种方式,

第一种,浏览器搜索mingw,找到它的代码托管网站。{width="5.763888888888889in" height="1.6229166666666666in"}

但这个网站并不是我们的最终目标页面,这个页面是源码,需要自己编译。

我们点进去的目的是为了点击这个页面。exe安装页面。

{width="5.763888888888889in" height="2.7736111111111112in"}

当然你也可以在浏览器直接搜索该页面或点击该链接https://sourceforge.net/projects/mingw/files/

为什么不在前面直接给这个链接呢,或者说我不希望呢,因为学会在浏览器检索并发现,其实是一种很重要的能力。

然后点击那个大大的绿色download。双击点开。然后安装它。

{width="5.598405511811023in" height="4.326531058617673in"}

Install

{width="4.163265529308837in" height="3.2294630358705163in"}

然后这里是路径选择页面,这里只建议默认路径(防报错),或者在c盘或d盘创建个目录名为third_party(第三方库),然后放在third_party里,参考路径为

C:\third_party\MinGW

D:\third_party\MinGW

C:\MinGW

(这里自己设置的路径需要记住,后面需要)

设置完后点击contiune。

{width="5.768055555555556in" height="2.9965277777777777in"}

等待完成后会有如下页面,对于红框框出的两项鼠标右键点击。

{width="5.768055555555556in" height="2.826388888888889in"}

选择“Mark for Installation” {width="5.028472222222222in" height="2.6791666666666667in"}

勾选完成后,在菜单栏中选择 Installation -> Apply Changes,

{width="5.768055555555556in" height="3.8201388888888888in"}

弹出窗口后选择apply

到这里就暂时完成了mingw的安装。如果你安装失败或者有步骤不一样的报错,首先确保网络通畅,然后删除原本的mingw文件夹,重新安装。如果还是不行,请摇学长

这里提供第二种安装方法,在群里提供的教学压缩包有已经安装好的mingw文件夹,解压到以下路径选择其一(没有的创建)。

C:\third_party\

D:\third_party\

C:\

环境变量配置以及vscode配置开发环境
# 环境变量

首先还记得之前的路径吗

C:\third_party\MinGW

D:\third_party\MinGW

C:\MinGW

接下来我们要告诉电脑我们的mingw在这里。{width="4.302083333333333in" height="2.4715277777777778in"}

按下win+R,输入sysdm.cpl

{width="5.131944444444445in" height="6.302083333333333in"}

{width="5.131944444444445in" height="6.302083333333333in"}

接下来的是重点

{width="5.763888888888889in" height="6.075694444444444in"}

选中系统变量里的“PATH”,然后点击编辑

{width="5.631944444444445in" height="5.934027777777778in"}

点击新建,然后添加进你的mingw路径,[记得加上“\bin”]{.ul}

跟我一样默认安装的话就应该是“C:\MinGW\bin”

{width="5.754861111111111in" height="2.8583333333333334in"}

然后切记,一步一步退出,点击确定

然后让我们来验证是否安装好了。按下win+R,输入cmd。

{width="5.763888888888889in" height="3.245138888888889in"}

弹出一下画面

输入gcc -v或者g++ -v(-v 为检查版本的意思,这里可以用来检测是否安装成功)

{width="5.763888888888889in" height="3.245138888888889in"}

应出现类似的一段话,然后最后一段有gcc或g++ version=xxx的一段话。

# vscode的开发环境配置

让我们回到vscode,在插件页面搜索c++。

{width="5.763888888888889in" height="3.122916666666667in"}

让我们安装c/c++ extension pack(扩展包)和c/c++ Compile Run这两个插件。

{width="5.763888888888889in" height="3.122916666666667in"}

然后打开vscode的设置(左下角齿轮)。

{width="5.754861111111111in" height="2.292361111111111in"}

然后搜索edit configurations

(没有的重启vscode,还是没有去插件页面启用之前安的插件)

{width="5.763888888888889in" height="3.9055555555555554in"}

看看编译器路径有没有搜索到,没有的话去之前安的mingw文件夹里的gcc.exe路径复制到里面,我的是“C:\MinGW\bin\gcc.exe”

然后别急的走,往下滑,顺便介绍一下这个,包含路径。{width="5.754861111111111in" height="1.6791666666666667in"}

c/c++的依赖问题是比较麻烦的,后面你们会学cmake去管理环境。但如果以后编译能通过,vscode却不认,记得来这边添加路径。

到这里,所有的环境就设置完毕了。

使用vscode,编写第一个文件

打开vscode,面对这个空空如也的画面,我们应该做的事是。

{width="5.763888888888889in" height="3.122916666666667in"}

空空如也

当然是关闭vscode,创建我们的代码文件夹,它可以叫code,repositories或者cpp_codes。。。。。。总之别用中文,空格用下划线替代,然后自己记住目录,这是好的编程习惯的开始。

然后再打开vscode,点击打开文件夹。然后看到如下。

{width="5.763888888888889in" height="2.9902777777777776in"}

文件目录不必和我完全一样

在左半边,也就是资源管理器里创立第一个文件,命名为Hello_world.cpp,在其中”.cpp”几个字十分重要,因为.cpp是告诉vscode这是个c++文件,同理,如果命名为.py相当于告诉vscode是python文件。当然,vscode内置了猜测系统,但是为什么要让vscode猜测呢。

{width="5.763888888888889in" height="3.3208333333333333in"}

然后在空白的文件里输入:

#include\<iostream>

int main()

{

std::cout\<\<"Hello World"\<\<"\n";

return 0;

}

我并不打算现在解释,后面大家会看懂的

{width="5.763888888888889in" height="1.7452821522309712in"}

然后我们需要做的就是点击右上角的播放号,但是会发现有很多个不知道点哪个

{width="5.763888888888889in" height="1.8298611111111112in"}

点框起来的上面那个,下面那个是调试,调试就是可以在代码中添加断点,一步步运行,运行我们在报错或者查看变量的变化。(没有的回到插件配置那一步

然后我们就可以看到我们的代码运行结果啦

{width="5.763888888888889in" height="4.886805555555555in"}

你的c++学习路径,以及第一个力扣题目

应该说c++本质上是c的扩展,所以在你没有任何代码能力,包括连基础的hello_world都不会写的时候,这里建议是先从c语言学起。

https://www.bilibili.com/video/BV1Vm4y1r7jY/?spm_id_from=333.337.search-card.all.click&vd_source=ad7910830a2ee7ccfc95f301d6f02a83

学到85,结构体学完后再来学习c++的一些重要概念,然后就可以刷力扣题目,准备过一轮考核了。

当然,以练代学也是可以的,也可以跟着下面学会力扣刷题后,边刷边学。代码永远是敲了才会。

C++的重要概念

命名空间 STL容器 类 迭代器

参考资料:

命名空间:https://www.runoob.com/cplusplus/cpp-namespaces.html

(如果实在不理解的话,可以粗浅的理解为一种区分语法)\ STL容器:https://blog.csdn.net/2203_75327677/article/details/136080887

(常用的vector,set,map要掌握,其他的可以知道有这么个东西,然后在去查怎么用)

类:https://www.runoob.com/cplusplus/cpp-classes-objects.html

(粗浅的说是一种可扩展的大结构体(当然远比结构体方便的多))

迭代器:https://www.runoob.com/cplusplus/cpp-libs-iterator.html

(迭代器相当方便,c++的stl标准库相当多封装函数都是用的迭代器)

你的第一道力扣题目

看到这里的同学我默认你已经具有一定的电脑能力了,因此接下来我只会在关键的位置展现图片

搜索力扣,点击https://leetcode.cn/,注册账户,点击题库,点击第一题“双数和”

{width="5.763888888888889in" height="3.122916666666667in"}

好,现在怎么解题呢

别急,我来解释。可以看到的是,在代码窗口页面,有已经预创建好的类Solution,而solution里有public属性的函数twoSum,而该函数输入一个vector数组nums作为实参和一个int类型的target,然后要返回一个vector数组,储存的是int

现在让我再来读题

“给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 *target  的那 *两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

你可以按任意顺序返回答案。“

现在你就明白了,nums是给定的待处理数据,target是参数,你要做的就是按要求求出ans(答案),并return ans。

那么我们就可以,打开vscode,把题目复制到文件里注释掉(快捷键ctrl+/),并且复制预创建好的类Solution,并在solution里解题啦。

Like:{width="5.754861111111111in" height="4.641666666666667in"}

但是啊但是,当我们把写完的复制粘贴回网页后,发现报错了或者跑某个测试错误了,要改正就需要调试,在网页调试居然byd要钱。那我们当然是充

“主播主播,你的vscode写题很好,但是还是太吃经济了,有没有不需要充钱就能调试的方法。“

有的,有的兄弟。那就是我们自己写个main函数,然后调用类里的解题函数,然后就能本地调试了。{width="5.754861111111111in" height="3.3868055555555556in"}

注释写的挺清楚了,可以模仿类似的格式,同时题目具体情况具体分析

进阶

这部分内容是给过完一轮的人看到,当然,你没过完也可以看,只是一般来说现阶段学不到

Cmakelist的简单使用

Cmakelist是用来管理项目依赖的框架,毫无疑问,它真的很难用,但我们也真的有用到。在后面的ros中,cpp功能包的colcon编译就是基于cmake的。所以至少应该要会查。

https://zhuanlan.zhihu.com/p/371257515

(待完善)

python的基础操作和使用(一轮)

python特性介绍

优点,跑深度学习神经网络有不可比拟的优势,开源库多,环境方便(掌握虚拟环境后),学习简单,上手难度低,语法不严谨,流程不清晰,内存占用大。。。。。。但至少在我还在组里的时候,那会python在我们组有统治性的地位。(能理解拿c++过完一二轮然后面对祖传python代码一周速成python并看懂的痛吗)。

但其实不论是那种语言,我们需要做的就是通过现象看本质,了解到编程的核心,像是变量,类,容器,循环结构,函数,这种基本概念并不会变化,我们在学会这些核心后,对于不同的语言无非就是熟悉语法+语言特性罢了。

环境配置

我们会使用pycharm作为我们的IDE,python作为(解释器)。更详细的介绍在c++部分,可以参考那边。这里就简单放个图片了。{width="5.768055555555556in" height="4.259722222222222in"}

Python的安装

首先让我们上浏览器搜索python。并找到python的官方网站(惯例,找不到的点这里:https://www.python.org/。)

点击那个很明显的download。

{width="5.763888888888889in" height="3.1131944444444444in"}

然后点那个黄澄澄的下载~。

{width="5.763888888888889in" height="2.3680555555555554in"}

(如果你留心,你会发现下面有蓝色的pre-release,那个是先行版。有不稳定的可能性)

如果你下载速度慢,还不想等,同样的,在群里的教学压缩包会提供python的安装包,用那个也可以。

然后就可以开始我们的安装了。这里给大家提供两种选择,一种直接默认安装,另一种是自定义安装。有信心搞定自定义的可以跟着后面的教学一起自定义。如果没有信心的那就直接继续吧(二者的最终差别也只在路径上,无论那种都要记住安装路径,我们可以对路径进行一个图的截,记不得可以截图

在此之前,不论是哪种安装,都先把框起来的两个点上。

{width="5.763888888888889in" height="3.547222222222222in"}

# 直接安装

唯一需要注意的点是,记住这个路径,记住这个路径,记住这个路径

重要的话说三遍。

{width="5.763888888888889in" height="3.547222222222222in"}

记住路径之后,按下按钮,没什么说的,just do it!

{width="5.763888888888889in" height="3.547222222222222in"}

# 自定义安装

首先让我们回答个问题,为什么要自定义安装?

答:为了自定义路径。

对,其实自定义路径才是主要目的。总所周知,就像我们一般安装软件不会安在c盘一样,我们大多数时候在管理开发环境的时候也会统一管理,而不是随地大小安装。

尤其是像python这种存在炸环境风险,常态开发会有多个python解释器的语言。像后期,我们基本上都会使用conda虚拟环境去配置管理开发环境。不过那是在linux章节才会教的事。(当然有信心自学也可以了解)

我们这里只是简单的创建个文件夹(如D:\python_env\)来养成开发的习惯。(其实我开发常态用linux,windows就比较摆烂(指随地大小安)

好,让我们正式开始安装

首先按下框起来的客制化安装

{width="5.763888888888889in" height="3.547222222222222in"}

这边建议是直接默认安装(全部勾上)。

{width="5.763888888888889in" height="3.547222222222222in"}

翻译下大意就是:

Documentation: 本地安装 Python 的官方离线文档(查询函数balabala的)

pip:python环境管理的重要组件,让你不为第三方库头疼的重要宝具

tcl/tk:python的图形用户界面支持库 Tkinter 及其依赖的底层 Tcl/Tk 工具包

python test suite:Python 的官方测试套件

py launcher:.py后缀的文件用python启动。

for all users:对该计算机所有用户生效

继续安装,点上勾,记得注意路径

{width="5.763888888888889in" height="3.547222222222222in"}

等待安装完毕

{width="5.763888888888889in" height="3.547222222222222in"}

# 安装是否成功检测

无论你按那种方式安装好了。这步都是一样的。按下win + R,输入cmd,按下确定唤出控制台。

{width="4.302083333333333in" height="2.4715277777777778in"}

然后输入python,回车。

{width="5.763888888888889in" height="3.245138888888889in"}

应该会出现下面的页面{width="5.763888888888889in" height="3.245138888888889in"}

如果你没有,请按下面对号入座:

一:检查python安装程序是否有中途退出或崩溃,如有则重新安装

二:中途无异常,就是没反应,在对应的路径文件夹也有东西存在(一堆文件)。

这里主要对情况二进行说明。这种情况是没有添加环境变量导致的。

按下面教程的一步步操作

按下win+R,输入sysdm.cpl{width="4.302083333333333in" height="2.4715277777777778in"}

点击高级

{width="5.131944444444445in" height="4.084905949256343in"}

点击环境变量

{width="5.131634951881015in" height="3.8396227034120733in"}

接下来的是重点

{width="5.763888888888889in" height="4.188678915135608in"}

选中系统变量里的“PATH”,然后点击编辑

这个时候还记得我们安装的路径吗

默认安装大概率为:C:\Users\POOU\AppData\Local\Programs\Python\Python313(里面的“POOU”是你自己的用户名,别无脑复制)

{width="5.631944444444445in" height="5.934027777777778in"}

默认安装

自定义安装则为:“你自己自定义的路径/ Python313”

(如果自定义路径和文档教学一样的话就是:D:\python_env\Python\Python313)

{width="5.631944444444445in" height="5.934027777777778in"}

自定义安装

设置好之后,切记一步步返回。

{width="5.754861111111111in" height="2.8583333333333334in"}

设置好之后,就可以按照检测方法再次检测了。如果还是没好,摇学长。

Pycharm的安装和配置

打开浏览器,搜索pycharm(我们使用的IDE)(对ide的介绍在c++那边更详细哦,可以参考那边的),点击官方网站(如何找到官方网站可以挑战一下,不想找的点这里:https://www.jetbrains.com/zh-cn/pycharm/

找到后点击下载,会跳转到下载界面。

{width="5.763888888888889in" height="3.122916666666667in"}

然后别急着下载,往下滑,找到pycharm community。这才是我们需要的版本(免费的版本)

{width="5.763888888888889in" height="3.122916666666667in"}

点击选择.exe下载。

下载好后双击启动安装程序。对应的选项都有中文。看不懂的跟着下面操作就是了。

{width="5.236111111111111in" height="3.7736111111111112in"}

点击框起来的

{width="5.236111111111111in" height="3.7736111111111112in"}

一般我们是建议有个专门的文件夹放软件,如果没有或者不打算的话就默认罢,记得多少记住在哪个位置,起码记住在哪个盘

{width="5.236111111111111in" height="3.7736111111111112in"}

这边一般建议是都点,不过我来翻译一下选项的意思

  1. 创建快捷方式,没什么好说的。

  2. 更新path变量,相当于告诉系统这里有pycharm

  3. 更新上下文,相当方便的功能,可以把创建的文件夹当作工作空间(好比是工作箱,程序就是里面的工具,只会在工作箱里找工具)

  4. 创建关联,.py文件默认用pycharm打开

然后等待安装。安装完成后,接下来我们可以先重启,然后再打开pycharm继续设置。

{width="5.763888888888889in" height="4.5569444444444445in"}

选择对应语言,然后下一步。

{width="5.763888888888889in" height="4.415277777777778in"}

点同意协议。

{width="5.763888888888889in" height="4.688888888888889in"}

安装完成了。

然后,点击左下角的设置{width="6.428471128608924in" height="3.3812489063867015in"}

选择解释器

{width="5.763888888888889in" height="8.565972222222221in"}

接着点击添加解释器

{width="5.763888888888889in" height="4.065972222222222in"}

选择添加现有

{width="5.763888888888889in" height="4.575694444444444in"}

如果你环境变量设置正确,这里应该会自动补全。

如果你没有,那么我们也可以在确认有正确安装的情况下自己填入路径。

{width="4.584722222222222in" height="5.273611111111111in"}

要选择到一样命名的文件

使用pycharm,编写第一个文件

好的,第一步我们先创建文件夹作为我们的工作空间。创建我们的代码文件夹,它可以叫code,repositories或者cpp_codes。。。。。。总之别用中文,空格用下划线替代,然后自己记住目录,这是好的编程习惯的开始。

创建好之后,打开pycharm。

{width="5.768055555555556in" height="3.0409722222222224in"}

{width="5.763888888888889in" height="4.688888888888889in"}

让我们点击“打开“,然后选择我们的code文件夹。

{width="5.763888888888889in" height="3.122916666666667in"}

然后他就会自动创立一个“main“文件。它里面有一些基础快捷键,我们可以稍微记一下。然后用下面的代码复制替换:

print("Hello_world")

{width="5.721125328083989in" height="1.5849059492563429in"}

是的,就这么一行

然后我们就可以点击右上角的运行{width="5.763888888888889in" height="1.1791666666666667in"}

并看到输出结果

你的python学习路径,以及第一个力扣题目

首先应该说的是,本人并非系统性的学习python,学习python时已经有了较为系统的编程基础。所以对于用python从零接触编程的人,我并不完全清楚会有什么样具体的,对于python独特的困难或者难点。

不过,其实某种意义,python反而是最适合完全没接触过编程的人的第一种语言。因为python较为宽松的语法(指缩进作为代码块等等)和带小孩般的替你进行内存管理等,可以关注在编程更为本质核心的部分像是算法和数据结构上,

所以,这里我找了个教程作为完全没有接触过编程语言的人。

https://www.bilibili.com/video/BV1Jgf6YvE8e?spm_id_from=333.788.videopod.episodes&vd_source=ad7910830a2ee7ccfc95f301d6f02a83&p=19,学到第25,引用模块。

或者

是适合有一定基础的

https://www.bilibili.com/video/BV1Sz4y1U77N/?spm_id_from=333.337.search-card.all.click&vd_source=ad7910830a2ee7ccfc95f301d6f02a83,学完。

如果你接触过一定的编程,拥有一定基础。那么你可以速通下面的部分来学会pyhon,然后以练代学,通过力扣刷题学会python并通过一轮。

Python重要概念

基本语法,四大容器,__name__

参考资料:

基本语法:https://www.runoob.com/python/python-basic-syntax.html

  1. 不用写 ;作为语句结束

  2. 用缩进来定义语句块 如

while true:

print(”循环内”)

print(“循环外”)

3.用def fuction_name: 定义一个函数,不需要定义返回类型

4.不需要定义变量的类型,直接对变量进行赋值如 a = 1系统会自动将a变为int整型

四大容器:https://blog.csdn.net/m0_73995538/article/details/133046112

_name_:https://www.cnblogs.com/leetao94/p/13259043.html

你的第一个力扣题目

二轮

Linux-Ubuntu的了解和学习

为什么要配linux

一般说起Linux,稍微懂的人会把它与Windows macOS并称为计算机三大操作系统。但严格来说,Linux 只是一个开源的内核,而在一个完整的,可运行的操作系统中,内核只是其中最重要的一部分。“Linux系统”更准确的名称是所以基于Linux内核的系统。所以Linux系统实际上是一个大家族。(Debian Ubuntu Arch Linux……)

好,现在我们知道Linux实际上是一系列系统。而由标题可知我们要安装的是Ubuntu这一系统。可我们为什么要使用Linux,其跟windows比有什么区别,又为什么要用Ubuntu呢。要知道,Linux看着就觉得难(实际上确实)。

一句话解释:写代码的绕不开Linux(起码得会用),Linux在开发和部署环境极具优势,而Ubuntu又是最适合新手使用学习的。首先提到Linux系统就是其无与伦比的自由度,比如十分出名的 sudo rm -rf / 命令。这个命令的具体作用就是删除整个系统,电脑直接寄。其次则是Linux的高效,利用资源能力强,比如我们机器人的小电脑就都是Linux系统,它精简了很多windows冗余的部分(为使用体验,美观等服务的组件)。最后则是方便开发的优化和发达的社区体系,在Linux部署和配置环境往往是比windows简单的。

本文档仅以教会最基础的使用和安装为目的。所以一切仅为知道和掌握为目的使用。如果你有自己的理解和追求,那么是本菜鸟编者的水平低了。

至于学习Linux的核心抓手就是掌握命令行,用命令操作系统,这也是其与windows体感上最大的不同。

本文将生动详细的介绍怎么安装,和最后一些常见问题的答疑。

{width="5.768055555555556in" height="3.045138888888889in"}

Ubuntu系统

{width="5.768055555555556in" height="3.6305555555555555in"}

终端,也就是输入命令行的地方

系统安装

系统安装我们提供两种方式,一种是虚拟机,另一种是双系统。这里详细对双系统安装进行介绍。嫌麻烦不想折腾的就安装虚拟机,参考进行安装https://zhuanlan.zhihu.com/p/1929964505674257811

双系统成功后可以在开机的时候自由选择windows和ubuntu启动。电脑萤幕 AI
生成的内容可能不正确。{width="5.102040682414698in" height="3.8243810148731407in"}

双系统成功页面

这里首先前期准备进行介绍。你需要准备一个大于32GB的U盘用作启动盘,电脑上空出100GB空间,同时需要下载Ubuntu的系统映像,以及制作启动盘的软件balena etcher。

[https://etcher.balena.io/]{.ul}启动盘链接

[https://cn.ubuntu.com/downloa]{.ul}d/ 系统映像链接

这里着重讲解一下系统映像的下载。我们点击上述链接后,会发现摆在面前的是两个版本。

{width="3.448358486439195in" height="3.58292760279965in"}

也就是24.04和24.10这两个版本。所以我们现在要做的事情是关掉这个页面,因为这两个版本都不是我们要的。如果你选错版本会导致很严重的后果。

这是为什么呢,这里有个很大的误区就是。新手在认知不深的前提下很容易认为选择Ubuntu系统的不同版本是影响不大的,一般不明白选什么的版本就会选最新的。毕竟官网都只提供了这两个版本。但事实是我们容易发现不同Linux的系统差异,却容易忽视同一个系统内的版本差异。

{width="6.496062992125984in" height="2.4438713910761156in"}

那么具体来说有什么差异呢。有的,有的。简直跟Windows10 和 Windows11差别一样大。比如说ros1就只能在Ubuntu 20.04及一下运行,而ros2则在22.xx和24.04上部分支持。在具体到电脑来说,则是不同电脑在不同版本有不同程度的掉驱动和报错。

所以现在让我们点击https://www.releases.ubuntu.com/链接,然后去选择对应的版本(依据当前纳新要求)。这里我们先选择22.04作为示例。

{width="4.56134186351706in" height="1.9608902012248468in"}

点进去

{width="4.978008530183727in" height="4.124394138232721in"}

然后我们不去管下面的一堆,点击上面的64-bit PC(AMD64) desktop image。解释下大意就是64位的,AMD64指令集的,桌面级的。其中需要关注的是AMD64,在今后使用Linux我们将多次面对选择AMD64或者ARM64,好奇的可以自己探索指令集相关知识。总之我们这里选择AMD64,只要你不打算换成什么安卓电脑(),我们往后也一贯选择AMD64。

然后这里讲一下网络问题。如果遇到下载网速过慢可以通过如下链接替换

https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/

{width="4.486110017497813in" height="2.443378171478565in"}

[https://changjiu365.cn/download/etcher]{.ul}(启动盘制作软件)

{width="3.7685181539807524in" height="2.992209098862642in"}

两者都下载好后,我们就可以启动软件。

{width="2.883101487314086in" height="1.8207174103237096in"}

左边选择光盘映像,中间选择U盘,点击flash启动。

{width="2.7210640857392825in" height="1.730676946631671in"}

然后我们就可以耐心等待。等上述工作准备好,我们就可以正式开始了。

那么首先我们要做的是清理出一个无分区的存粹的磁盘空间。让我们按下Win+X,选择磁盘管理。在对应的磁盘(你已经准备好100GB空间的磁盘)

{width="3.174250874890639in" height="5.6431135170603675in"}

点击压缩卷。然后压缩出100GB空间,里面单位是mb,1gb是1024mb,可以敲下计算器。

{width="2.958332239720035in" height="2.0895559930008747in"}

点击压缩后耐心等待,直至界面出现未分配的空间。{width="4.264698162729659in" height="1.8920570866141733in"}

如图

然后我们需要做的是上浏览器,查询我们电脑进入bios的按键(通常是F1,del,有些邪门的是F7或者一些键位组合)。然后插入U盘,关机,再开机,狂按那个键,直至进入bios页面。

我们进入bios的目的是为了切换启动项为启动盘,从而进入系统安装程序。所以我们要进入bios的启动它调整选项(boot)。

{width="4.583332239720035in" height="2.570057961504812in"}

按下键盘十字键,往下切换。

这里大家的页面可能因为电脑品牌而各不相同,但大体上都是要进入boot页面,同时也切记不要乱动别的选项。

{width="5.208333333333333in" height="2.9296872265966756in"}

这里可以看到我们默认的第一启动项是UEFI,也就是我们windows的系统。我们需要做的是将第一的选项切换成我们的启动盘。

{width="4.96744750656168in" height="2.4665944881889765in"}

这里下面有个Ubuntu的选项是因为编者电脑里已经有一个Ubuntu系统了

确认完之后保存退出。电脑就会出现这个页面

{width="4.485377296587926in" height="2.5230249343832023in"}。

回车确认选择第一个

然后耐心等待,直至出现这个页面。

{width="4.332472659667541in" height="3.2480839895013123in"}

当然 也可能是这个

{width="5.390624453193351in" height="4.0413877952755906in"}

似亮非亮,非常十分纯净的黑屏。

让我们先关机,然后我猜遇到上述情况的一定是40-50系显卡。这里就让我们把上述情况作为一个契机,讲解一下Linux的一部分普遍问题。掉驱动。

像上述会黑屏的原因就是因为缺失了显卡驱动,而在你安装完成后,你还会遇到各种各样的掉驱动,(声音,蓝牙,wifi,屏幕亮度调整不了等等)(可怜的编者在配完Linux系统后屏幕亮度调整不了,修好显卡驱动后蓝牙和wifi驱动掉了)。这是无法避免的。所以学会如何查找问题并解决十分重要。

回到上述黑屏问题,在查询Ubuntu 22.04 安装黑屏后得知,我们需要在安装页面按E,然后删去splash后面的 - - -,并键入nomodeset,按下F10保存。

(删错了或者写错了直接按esc退出重新按e就好)

((https://blog.csdn.net/m0_46100803/article/details/140401165))

{width="4.450975503062117in" height="2.5036734470691164in"}

按e

{width="3.6710345581802275in" height="2.39957239720035in"}

删去- - -

{width="4.834202755905512in" height="2.4171008311461066in"}

按F10保存 这里手抖了()

然后我们也进入到正常的页面了。

{width="5.781248906386701in" height="4.334242125984252in"}

现在我们在左边语言栏选择中文,然后点击试用Ubuntu。

{width="5.27994750656168in" height="2.969970472440945in"}

在这里,我们先检查分辨率是否正常,因为我们可能会遇到页面太大无法点击因为者屏幕分辨率错误的问题而导致无法继续安装(通常是上面黑屏的那帮人)。

{width="5.585937226596675in" height="3.142088801399825in"}

没有后续的按钮

在这里,也是同样的查询得知,我们点击设置里的显示,却发现我们不仅无法调整分辨率,亮度通常也调整不了。于是我们查询发现,还是上面显卡驱动问题导致我们无法调整分辨率和亮度。

https://blog.csdn.net/qq_43368044/article/details/147273702

{width="5.468748906386701in" height="4.099959536307962in"}

无法调整

这里让我们选择一个最简单直接的解决方法,按住alt+f7 然后就可以拖动窗口到上面。

{width="5.514321959755031in" height="3.1018055555555555in"}

点击继续

{width="5.755207786526684in" height="3.2373042432195978in"}

选择网络并连接上

{width="5.2342279090113735in" height="3.9241371391076116in"}

按图中选项继续

{width="5.511451224846894in" height="4.131972878390202in"}

选择第三个,从而安装双系统

{width="5.58910542432196in" height="4.1901913823272094in"}

这里是关键点,我们选中之前压缩出来的空间,点击左下角的加号

{width="5.826821959755031in" height="2.8557195975503062in"}

这里

{width="5.742187226596675in" height="4.428421916010499in"}

上面大小我们就默认全部,然后下面的挂载点选择根目录‘/’

{width="5.659079177602799in" height="4.242649825021872in"}

最后是这个效果

{width="5.416665573053368in" height="4.0609120734908135in"}

点击继续安装

{width="5.416665573053368in" height="4.0609120734908135in"}

选择时区

{width="4.895211067366579in" height="3.66997375328084in"}

设置账户,这里没什么讲究,需要提醒的就是密码最好简短,越短越好,除非你不嫌输入麻烦。因为你后面会无数次的输入密码。(个人密码是单大写字母,仅供参考)

{width="5.729165573053368in" height="4.295195756780402in"}

然后继续,并且耐心等待

{width="5.807291119860017in" height="4.353766404199475in"}

漫长的等待

{width="5.141376859142607in" height="3.8545253718285215in"}

等待完毕,点击现在重启

{width="5.058593613298338in" height="3.7924617235345583in"}

黑屏ing,等待出提示

{width="5.052083333333333in" height="3.787580927384077in"}

提示我们拔掉U盘,然后按下回车。

{width="5.3190102799650045in" height="3.987697944006999in"}

黑屏

{width="5.683593613298338in" height="4.261029090113736in"}

{width="5.527343613298338in" height="4.143887795275591in"}

成功运行

并且我们发现,奇迹般的,分辨率正常运行了,亮度也能调整了。这是因为在安装过程中他自动更新了驱动,使得硬件正常运行了。

然后我们可能会问,当我们想进入windows该怎么办。让我们从右上角点击重启电脑。然后我们会进入grub界面,按十字键切换至windows,回车进入windows。从上到下分别是Ubuntu系统,第二个是一些启动选项(不同内核版本和安全模式)第三个就是Windows,第四个是UEFI的设置。电脑萤幕
AI
生成的内容可能不正确。{width="5.768055555555556in" height="4.323611111111111in"}

这里放一些话作为本章完结。虽然我们初用Ubuntu,觉得很不习惯,很不好用。但其实Linux系的系统都是与程序员共同成长共建的。Linux拥有相当多允许程序员更改自定义的地方。比如说这个默认启动页面,我们可能初期用windows用的多,觉得默认启动Linux很麻烦。所以我们去搜索如何更改默认启动,然后学会文本编辑器NANO或者地表最强VIA,而在这其中我们又逐渐学习命令行的使用。Linux初始使用也会有很多BUG比如掉驱动,或者是程序偶尔崩溃等情况(其实已经很稳定了,一般情况不会崩溃)。每一次折腾修复bug,重新装系统其实都是对自我的锻炼。算上这次写文档时使得编者又重新安装了次系统,编者至今已经安装了十几次Ubuntu系统,也折腾过相近的树莓派系统,解决过无数的驱动bug。笔者自认借此从而对计算机的底层的理解有加深,同时也学到很多实际应用的解决技巧。Linux是你迈出只在ide上编辑运行代码到实际应用中的第一步,也请走好这一步。