【自己动手做一台SLAM导航机器人】第一章:Linux基础
本专栏目录:
前言
第一章:Linux基础
【资料图】
第二章:ROS入门
第三章:感知与大脑
第四章:差分底盘设计
第五章:树莓派3开发环境搭建
第六章:SLAM建图与自主避障导航
第七章:语音交互与自然语言处理
附录A:用于ROS机器人交互的Android手机APP开发
附录B:用于ROS机器人管理调度的后台服务器搭建
附录C:如何选择ROS机器人平台进行SLAM导航入门
视频教程
https://www.bilibili.com/video/BV1jS4y1a7Lz
由于机器人SLAM、自动导航、语音交互、机械臂控制这一系列的算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码;而ROS又是安装在Linux发行版ubuntu系统之上的,先学一些Linux命令行相关的知识,对后续ROS教程的快速上手会大有帮助。由于后续ROS的开发都是在Linux发行版ubuntu系统上进行,所以本章节就以ubuntu系统为例,对Linux命令行相关的知识进行展开讲解,本章节主要内容:
1.Linux简介
2.安装Linux发行版ubuntu系统
3.Linux命令行基础操作
下面这本书是本篇文章的参考文献,大家有需要可以入手一本:
1.Linux简介
Linux是一个开源、免费的操作系统,它以强大的安全、稳定、多并发性能得到业界的广泛认可,目前linux被使用在很多中大型,甚至巨型项目中。很多软件公司考虑到开发成本,都选用linux,在中国软件公司得到广泛的使用。
1.1.Linux系统组成
Linux操作系统的核心为Linus Torvalds开发的内核(Kernel),Linux内核之上的组件分为几部分:一部分是GNU的组件(如gcc、bash等);另一些重要组成部分则来自UC Berkeley分校的BSD Unix项目和麻省理工学院的X Windows项目,以后在这之后成千上万的程序员开发的应用程序等,Linux代码贡献者见图2。
1.2.Linux的版本
Linux的发行版就是将Linux内核和应用软件打成一个包。内核版并不能直接使用,需要进行包装后用户才能更直接的使用。各个厂商针对Linux的内核所发布的各自的发行版,用户可以直接使用操作。几种常见的发行版见图3所示。
2.安装Linux发行版ubuntu系统
如果已经在物理机电脑上安装了ubuntu系统的朋友,可以直接跳过这一节的讲解,直接看下一节关于Linux命令行的讲解。
考虑到大部分朋友平时都使用windows系统进行学习和办公,方便起见,强烈推荐在windows系统中用虚拟机运行ubuntu系统,进行ubuntu的体验和学习。这样做的好处是,在同一个电脑上使用ubuntu系统的同时,又不妨碍使用物理机原来的windows系统,两个系统之间还可以实现文件的共享,不用担心因初学没经验损坏ubuntu系统后难以重装的麻烦。下面就以VMware虚拟机+ubuntu16.04为例,跟大家介绍安装ubuntu的过程。
2.1.安装VMware虚拟机
首先去VMware的官网https://www.vmware.com/cn.html下载安装包,在页面中找到“下载”按钮,如图4,并点击进入。
选择Workstation Pro这个版本,如图5。
选着一个合适自己系统的安装包,我准备在windows系统上安装VMware,本文写作时对应的最新版本是Workstation 15 Pro for Windows,点击“立即下载”,如图6,等待下载完成。
下载完成后,找到文件名为“VMware-workstation-full-15.0.2-10952284.exe”的安装包,以管理员权限运行此安装包,安装方法和其他软件安装方法类似,首先是一个欢迎界面,如图7,直接点击“下一步”就好了。
接下来是许可证,如图8,勾选“我接受许可协议中的条款”栏,然后点击“下一步”。
接下来是安装路径,使用默认的路径就行了,如图9,直接“下一步”。
接下来,询问用户体验设置,建议都不要勾选,如图10,然后“下一步”。
接下来,快捷方式创建,如图11,默认创建就行了,直接“下一步”。
接下来,就可以点击“安装”,开始安装了。
接下来,进入安装等待界面,如图13,等待安装进度完成后,点击“下一步”。
接下来,这一步需要特别说明一下,如果只是想临时试用一下VMware的话,直接点击“完成”按钮,就可以完成试用版的安装了;如果是想要长期使用VMware的话,就需要点击“许可证”按钮,进行接下来的注册流程,我这里选择点击“许可证”按钮。
接下来,输入您购买的许可秘钥,或者稍后输入。
到这里,VMware的安装就完成了,点击桌面上的VMware图标便可以使用了。
2.2.在VMware虚拟机中安装ubuntu系统
在VMware虚拟机中安装操作系统的原理很简单,其实就是VMware虚拟机给你先虚拟一个物理机资源(CPU,内存,硬盘,网卡等)出来,然后你在这个虚拟出来的物理机资源上安装你想运行的操作系统。其实就是两步,第一步创建虚拟机资源,第二步在虚拟机资源上安装自己的操作系统。好了,接下来就来看看怎么具体操作了。
首先要下载好ubuntu系统的安装镜像文件(ubuntu-16.04.4-desktop-amd64.iso),这里推荐去ubuntu的官网下载ubuntu 16.04 Desktop这个版本,因为ubuntu 16.04 Desktop这个版本现在最稳定,下载链接(https://www.ubuntu.com/download/alternative-downloads),如图16,推荐迅雷进行下载,下载完成后得到ubuntu-16.04.4-desktop-amd64.iso文件备用。
接下来,点击桌面上的VMware图标,进入后点击“创建新的虚拟机”按钮,如图17。
选择典型配置,然后点击“下一步”,如图18。
选择“稍后安装操作系统”,然后点击“下一步”,如图19。
选择“Linux”和“Ubuntu 64位”选项,然后点击“下一步”,如图20。
这一步是给新建的虚拟机取名称并保存虚拟机,“虚拟机名称”栏填上你取得虚拟机名称,“位置”栏填保存新建虚拟机的路径,然后点击“下一步”,如图21。
这一步是给新建的虚拟机指定磁盘容量,默认分配20GB,将虚拟磁盘拆分成多个文件,然后点击“下一步”,如图22。
这一步是确认硬件参数设置,点击“自定义硬件”可以查看硬件的详细参数(比如内存:2GB,网络适配器:NAT,显示器:自动检测),这些参数默认参数就行了,退出查看硬件窗口,点击“完成”,如图23。
最后,看到图24,第一步创建虚拟机资源的操作便完成了,接下来就是第二步在虚拟机资源上安装自己的操作系统ubuntu-16.04.4-desktop-amd64.iso。
在左侧栏中找到刚刚创建的虚拟机“Ubuntu 64位”,右键单击此处后在弹出的选项中选择“设置”,在弹出的选项中选择“CD/DVD(SATA)”,在对应右边栏中选择“使用ISO映像文件”,并点击“浏览”找到之前下载好的文件ubuntu-16.04.4-desktop-amd64.iso,点击“打开”,点击“确定”,这个时候便已经将ubuntu镜像文件插入虚拟机了,如图25。
接下来,点击虚拟机的“开机”按钮,ubuntu镜像便开始载入,正式进入ubuntu系统的安装过程了,如图26,接下来安装ubuntu过程的设置和在物理机上安装ubuntu是一样的了。
在ubuntu开机载入完成后,弹出的选项中,选择“中文(简体)”,然后点击“安装Ubuntu”,如图27。
这里直接使用默认选项,然后点击“继续”,如图28。
选择“清除整个磁盘并安装Ubuntu”,这里不是真的清除物理机磁盘上的内容,只是清除虚拟机申请的20GB虚拟磁盘空间,所以可以放心清除,然后点击“现在安装”,如图29。
这一步是给你展示清除磁盘的具体内容,直接点击“继续”,如图30。
这一步是选择时区,用鼠标在地图中点击中国区域,会自动锁定到Shanghai时区,然后点击“继续”,如图31。
这一步是选择键盘布局,默认设置就行了,点击“继续”,如图32。
这一步是用户名和登录密码设置,由于是用来做实验用,所以用户名设置为:ubuntu64,密码设置为:123456,选择“自动登录”,然后点击“继续”,如图33。
最后,如图34,看到这个画面,安装设置就算完成了,接下来就是漫长的安装过程了,安装全程请保证物理机网络连接良好且能上外网,因为安装过程中需要从网络中下载一些更新包,安装进度完成后,重启虚拟机电源,便完成安装了。
最后,提一提鼠标在物理机与虚拟机之间的切换技巧,鼠标放入虚拟机窗口区域点击后便进入虚拟机操作,Ctrl+Alt+Esc便可以将鼠标从虚拟机切回到物理机操作了。
最后的最后,还需要安装一个非常重要的工具VMware Tools,这个工具帮助虚拟机自动适应屏幕分辨率、实现物理机与虚拟机之间的文件复制与粘贴等重要功能。
左侧栏中找到虚拟机“Ubuntu 64位”,右键单击此处后在弹出的选项中选择“安装VMware Tools”,这时候会弹出安装VMware Tools的详细方法步骤,如图35。
首先,点击左侧栏DVD图标,将DVD中的VMwareTools-10.3.2-9925305.tar.gz拷贝到Home目录中来,拷贝文件的方法和windows系统的一样,如图36。
双击Home目录下的VMwareTools安装包,在弹出来的窗口中点击“提取”,来完成对VMwareTools安装包的解压,如图37。
接下来,ctrl+alt+t组合键打开ubuntu的命令行终端,在终端中用命令行完成VMwareTools的安装。
$ cd vmware-tools-distrib/
$ ls
$ sudo ./vmware-install.pl
$ yes
$ 接下来一路[回车],直到安装完成
VMwareTools的安装完成后,重启虚拟机电源,VMwareTools的屏幕分辨率自适应和物理机与虚拟机之间拷贝文件等功能便生效了。
3.Linux命令行基础操作
通过上面的安装操作,我们现在就可以在虚拟机上体验ubuntu系统的奥妙了,按下虚拟机中的“电源”按钮便可以给ubuntu系统开机了,赶紧去试试吧。
3.1.打开终端命令行
虽然也能像windows系统中用图形交互的方式使用ubuntu系统,但是终端命令行的交互方式在ubuntu系统中使用的更广泛。所以我们得知道如何打开ubuntu系统中的终端命令行,其实很简单:
方法一:右键->打开终端。
方法二:Ctrl+Alt+t 或者 Ctrl+Shift+t
3.2.常用快捷键
(1)tab键
tab键是有两个功能,一个一次tab命令补齐,另一个两次tab提示内容,如果我们不记得一个命令的全拼,或者不记得某个路径的全拼,可以输入命令的前面几个字母,然后使用tab键自动补齐命令或查看提示信息。
(2)Ctrl+c组合键
Ctrl+c中断,强行打断进程,如果终端命令行正在执行某个进程的程序,这时想要中断掉该进程就可以使用Ctrl+c。
(3)Ctrl+d组合键
Ctrl+d退出,相当于exit和quit,比如用python命令进入python交互环境后,就可以用Ctrl+d退出python交互。
(4)Ctrl+Shift+c组合键和Ctrl+Shift+v组合键
在终端中复制粘贴时,先用鼠标选中需要复制的内容,然后用Ctrl+Shift+c进行复制,再用Ctrl+Shift+v进行粘贴。
(5)图形界面和纯文本交互模式切换
Ctrl+Alt+F1~F6:纯文本交互模式登入tty1~tty6终端机;
Ctrl+Alt+F7:切回图形界面。
3.3.终端命令行中一些常用符号了解
(1)用户主目录:~
(2)系统根目录:/
(3)一般用户提示符:$
(4)root用户提示符:#
3.4.关机与重启命令
(1)关机
$ sudo poweroff
(2)重启
$ sudo reboot
3.5.目录与文件相关命令
(1)显示文件和目录列表
$ ls
(2)切换目录
$ cd <目标目录>
(3)显示当前所在工作目录
$ pwd
(4)创建文件
$ touch <文件名>
(5)复制文件
$ cp <源文件路径> <目标文件路径>
(6)移动文件
$ mv <源文件路径> <目标文件路径>
(7)删除文件
$ rm <文件名>
(8)显示文件内容
$ cat <文件名>
(9)创建文件夹
$ mkdir <文件夹名>
(10)删除文件夹
$ rmdir <文件夹名>
3.6.文件权限
(1)修改文件读写可执行权限,具体权限由掩码值决定,如777权限全开
$ sudo chmod 777 <文件名>
(2)修改文件所有者
$ sudo chown <用户名>:<组名> <文件名>
3.7.文件查找
(1)locate命令查找文件
$ sudo updatedb
$ locate <待查找文件名>
(2)find命令查找文件
$ find -name <待查找文件名>
3.8.网络相关命令
(1)网络连接与否测试
$ ping <待测目标主机IP或域名>
(2)本地IP地址查看
$ ifconfig
(3)远程登录到目标主机
$ ssh <目标主机用户名>@<目标主机IP地址>
3.9.系统软件安装与软件运行方法
(1)系统默认的软件安装方法apt-get
$ sudo apt-get update
$ sudo apt-get install <软件包名称>
(2)source方法执行系统脚本,比如执行用户默认配置脚本.bashrc
$ source ~/.bashrc
(3)./方法执行一般可执行文件
$ ./<可执行文件>
3.10.文本编辑器vim使用
(1)vim查看文件内容
$ vim <文件名>
(2)vim进入编辑模式
在vim查看文件内容的界面中,按i键进入编辑模式,然后就可以编辑文件的内容了
(3)vim退出编辑模式
在vim编辑文件内容的界面中,按Esc键退出编辑模式,然后就又回到查看文件内容的界面了
(4)vim编辑内容保存
vim在编辑完文件内容,退出到查看文件内容的界面后,可以输入“:w”对编辑内容进行保存,也可以输入“:wq”对编辑内容进行保存并退出vim
3.11.关于Linux命令行知识的学习方法建议
上面介绍的Linux命令是一些平时用的频率比较高的,但是Linux命令的数量非常的多,并且很多命令都不常用,而且每个命令都有很多额外的参数,所以想要一下子记住所有的Linux命令和使用方法是不现实的,也是没有必要的。
建议大家对常用的一些Linux命令进行学习后,Linux命令有了一个大概的整体了解。对在日后的实际工作中遇到不会的的命令,通过上网查找使用教程来学习和使用。
后记
为了防止后续大家找不到本篇文章,我同步制作了一份文章的pdf和本专栏涉及的例程代码放在github和gitee方便大家下载,如果下面给出的github下载链接打不开,可以尝试gitee下载链接:
github下载链接:https://github.com/xiihoo/DIY_A_SLAM_Navigation_Robot
gitee下载链接:https://gitee.com/xiihoo-robot/DIY_A_SLAM_Navigation_Robot
技术交流
QQ技术交流群:117698356
参考文献
[1] 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.
关键词:
为您推荐
-
近日,普林斯顿大学团队已经开发出一种钙钛矿型太阳能电池设备,工作时间长达30年,传统太阳能电池寿命门槛约为20年,其性能远超业内标准。
22-07-05
-
3月15日,中来股份发布公告称,公司与太原市人民政府、古交市人民政府签署了《战略合作与投资协议》,公司拟在山西省古交市投资年产20万吨
22-03-18
-
中新网8月28日电 据健康北京微信公众号消息,北京中康时代康复医院、北京四惠中医医院等多家医疗机构,存在工作人员未严格落实定期进
21-08-30
-
中新网兰州8月28日电 (记者 殷春永 冯志军)“刚开始说待三年,但三年之后又三年……”14年前受上级“委派”,在大漠戈壁深处的峡谷
21-08-30
-
中新网上海8月28日电 (张践)阿依古丽来自新疆阿勒泰地区,2009年来到上海创业。十余年来,阿依古丽身边的小伙伴们都亲切地称呼她为“
21-08-30
-
新华社郑州8月28日电(记者翟濯)记者从河南省政府新闻办28日举办的“河南省加快灾后重建”周口专场新闻发布会上获悉,本次洪涝灾害共造
21-08-30
-
中新网防城港8月28日电(陈思华 罗婕 李尚珍)8月28日上午,广西防城港火车站增加4条到发线工程正式开工。该工程系广西“十四五”规划
21-08-30
-
河南第一产粮大市近800万亩未受灾秋粮长势喜人 有望以丰补歉 中新网郑州8月28日电 (记者 李贵刚)记者28日从“河南省加快灾后重建
21-08-30
-
今天(8月28日)下午,河南省郑州市召开疫情防控新闻发布会,介绍疫情防控最新情况。 记者从发布会上获悉,郑州市居民小区继续落实查
21-08-30