配置PCL开发环境到Virtualbox Ubuntu18.04虚拟机
写在前面
Why Ubuntu
Point Cloud Library也可以在Windows中安装使用,但是在Ubuntu中安装配置比较方便,不需要像在Windows上一样手动添加到系统环境中,不容易出现错误,且网上可参考内容较多,因此我个人选择用Ubuntu。当然,Ubuntu的配置也会遇到问题。自行取舍。
Ubuntu是Linux的一个发行版。有完善的图形系统界面,使用较为友好。
Ubuntu内置了官方的包管理器,可以方便快捷地下载安装很多软件及大型项目编译好的包,节省了自己下载编译及安装管理的时间、存储空间和精力。
Ubuntu中设置文件位置、软件包文件储存位置等都是一致的。我们在引用库文件、调整设置时,可以比较容易在网上找到相关内容的参考,且不易产生错误。
许多Point Cloud Library项目开发环境都是在Ubuntu中,使用Ubuntu可以方便我们的环境与多数项目保持一致,方便直接参照项目教程运行项目。
直接使用CMakeLists.txt和cmake指令编译PCL项目,不用像在Visual Studio上一样修改大量的设置。
Why 虚拟机
经常可以看到,一些有用的项目指定了运行系统为Linux,而我们日常使用的电脑系统通常为Windows或macOS。使用虚拟机即在我们现有的系统中再创建一个虚拟的电脑,我们可以在其中装需要的系统来使用指定系统的项目,免去了另外专门购置一台电脑的烦恼。
在参考其他人的项目时,往往会看到里面注明了运行环境,如Ubuntu16.04
,Ubuntu18.04
等,如果直接在未经测试的系统版本环境上使用这些项目,有时会出现难以预料的未知错误。创建多个虚拟机,在不同虚拟机中配置不同的系统,方便我们保持系统环境与项目要求的相一致,减少不明bug。
当然,虚拟机也会带来一些内部性能下降问题和硬件通讯不便的问题,不过在普通的工作学习中不会有太大感觉。
VirtualBox虚拟机管理器的安装
安装包下载
本次教程采用的虚拟机管理器为VirtualBox。VirtualBox是一个比较常用的开源免费的虚拟机管理器,功能基本满足常见的需求。
官网下载地址在下面,可以自行根据所使用系统下载安装包,Windows选择Windows hosts,macOS选择OS X hosts。
https://www.virtualbox.org/wiki/Downloads
演示的安装包版本为VirtualBox 6.1.18
Windows安装步骤
双击打开安装包,点下一步
点击浏览
,自行选择安装位置。功能全选或保持默认即可。完成后点下一步。
注册文件关联
建议选择,其他保持默认或根据需要自行选择。点下一步。
点“是”,开始安装。等待安装完成。
安装完成后,打开
在虚拟机中安装Ubuntu18.04
比较多的Point Cloud Library项目都是在Ubuntu18.04上开发的,因此建议直接使用18.04保持环境一致性,不要还没入门就在处理bug上纠结。我在Ubuntu20.04中使用一些Ubuntu18.04开发的项目时就出现了错误,于是转用18.04。
其他版本的Ubuntu安装过程大同小异,也可以参考下面的步骤。
Ubuntu-desktop镜像下载
Ubuntu18.04官方下载地址 https://releases.ubuntu.com/18.04/
可以直接点击ubuntu-18.04.5-desktop-amd64.iso下载,也可以下载ubuntu-18.04.5-desktop-amd64.iso.torrent种子使用BT下载。直接下载速度可能较慢,而作为热门资源使用BT下载可能较快。
注意下载desktop版的镜像,不要用server的。
Ubuntu最新版的下载地址在 https://ubuntu.com/download/desktop 。如果想自己学习尝试也可以下载使用试试。
修改虚拟机存储位置(可选)
虚拟机需要使用较多的存储空间,我运行PCL项目使用的虚拟机占用了21.3G的空间,如果使用快照功能则所需空间更大。
因此,建议把虚拟机存储位置移动到空间较为充足的位置。
点击管理
→全局设定
在默认虚拟电脑位置
里点其它
,自行选择喜欢的存储空间充足的位置。点OK
保存。
新建虚拟电脑
点击控制
→新建
。或工具
→新建
。
选择专家模式
名称
根据喜好输入,类型选择Linux
,版本选择Ubuntu (64-bit)
。内存我一般设置4096MB即4GB,具体使用可根据自身情况进行调整。虚拟硬盘选择现在创建虚拟硬盘
。设置完成后点击创建
。
弹出创建虚拟硬盘界面。虚拟硬盘文件位置可以默认自动生成,也可以按喜好调整。文件大小可以设置大点,40GB左右,因为选择动态分配创建的虚拟硬盘文件会自动根据内容调整大小,而不是直接占据设置的大小,大小设大点可以避免虚拟机内空间不足时扩容遇到的设置麻烦。设置完成后点击创建
。
我们可以看到左侧出现刚刚创建的虚拟电脑。
在设置
里还可以对虚拟机性能作一些调整,可自行查看,注意有些选项要虚拟机关机时才可以调整。
安装Ubuntu18.04
选择刚刚创建的虚拟机,点击启动
。弹出选择启动盘窗口。点击选择虚拟光盘文件按钮。
点击注册
按钮,选择前面下载的Ubuntu desktop的iso镜像。
点击ubuntu-18.04.5-desktop-amd64.iso
,点击选择
回到此界面,确认选择了正确的镜像,点击启动
开始安装,左侧找到并选择中文(简体)
,然后点击安装Ubuntu
屏幕上方可能有VirtualBox的一些提示,阅读后可以关掉,不影响
一般键盘布局默认即可,点继续
选择正常安装
,安装Ubuntu时下载更新
可选可不选,不选可节约安装过程时间。点击继续
安装类型默认选择清除整个磁盘并安装Ubuntu即可,其它选项不清楚就保持不变。然后点击现在安装
点继续
输入Shanghai,选择,点继续
您的姓名
处可按喜好输入用户名,下面会自动填写,密码也可按喜好输入。填写完后点继续
这里的用户名和密码一定要记好!!!
接下来进入漫长的等待安装完成阶段,安装过程中最好保持网络通畅
安装完毕,重启。按Enter
重启完成,确认开机提示,完成安装
注意不要确认升级到20.04!!!
Ubuntu18.04设置调整
调整屏幕大小
常规设置
找到设置
,进入。找到并进入设备
,点击分辨率
,选择喜欢的分辨率,点击窗口右上角应用
。虚拟机窗口大小会相应变化。觉得合适的话点击保存更改
注意设置窗口右侧可能被遮挡,按住设置窗口上边框并拖动即可。
自动调整分辨率
**需要VirtualBox增强功能,见虚拟机与主机交互中增强功能安装部分
安装增强功能后,可以在打开虚拟机后在窗口上方的“视图”菜单中选择“自动调整显示尺寸”,调整外侧窗口大小后内部Ubuntu虚拟机分辨率自动调整
调整字体大小
Ubuntu并没有自带内容放大到125%,可能看起来字体比较小,比较吃力,可以调大点
设置
→通用辅助功能
→大号文本
修改软件包下载源
默认的Ubuntu软件包下载源速度有时比较慢,换成阿里云的镜像源或者清华的镜像源通常会比较快。
在应用程序菜单中进入软件和更新
,在Ubuntu 软件
选项卡中的下载自
点击其他站点
可以看到,有很多不同的服务器供选择。mirrors.aliyun.com
就是阿里云的源,mirrors.tuna.tsinghua.edu.cn
就是清华的源,其他镜像源的效果和速度也可以自行尝试。协议一般直接选择http。
关闭自动熄屏锁定
进入设置
→电源
。空白屏幕选从不
,自动挂起全部改为关闭。
关闭更新Ubuntu大版本更新提示
避免提示从18.04升级到20.04
在应用程序菜单中找到软件和更新
,点击更新
,有新版本时通知我中选择从不
,认证账户密码,确定。
虚拟机与主机交互
这些内容不是都必须的,可自行选择是否设置
安装增强功能
(仅第一次使用要执行此步骤)
首先点击设备
→安装增强功能
,弹出类似下图界面,点运行
,认证账户密码进行安装
完成安装
共享文件夹
(需要先安装增强功能)
点击设备
→共享文件夹
点击添加共享文件夹
按钮
共享文件夹路径选择主机电脑上的文件夹
共享文件夹名称可以默认自动填写
挂载点填 /home/自己的虚拟机用户名
/喜欢的文件夹名称
勾选自动挂载和固定分配
填写完成后确定
可以发现喜欢的文件夹名称
出现在了Ubuntu虚拟机文件中的主目录
下
**必须!**打开虚拟机终端,输入下面的指令,获取共享文件夹权限,重启虚拟机
|
|
共享文件夹设置成功,里面文件完全相同
注意:对于虚拟机来说,在共享文件夹中进行操作可能遇到奇怪的权限问题,因此建议只将共享文件夹用于文件传输,不要在里面编译或运行可执行文件
共享粘贴板及拖放
在VirtualBox管理器中打开虚拟机设置
进入常规
→高级
,共享粘贴板和拖放选择双向,确定,重启
之后主机和虚拟机文字可以直接复制粘贴,可以直接从主机拖放文件进入虚拟机
网络通讯
IP通信
虚拟机完全关机(不是休眠),VirtualBox管理器里打开虚拟机设置
打开网络
选项卡
网卡1
设置Host-Only网络,混杂模式选全部允许
网卡2设置NAT网络
打开VirtualBox管理器管理
→主机网络管理器
记住这里的IPv4地址
打开虚拟机,进入虚拟机内设置→网络
设置第一个网卡,IPv4方式改为手动,地址填写192.168.56.x
,192.168.56这个前缀必须与VirtualBox Host-Only Ethernet Adapter的IPv4地址前缀一致,x
可以在2~254里挑个喜欢的,但不能与已存在的重复。
子网掩码填255.255.255.0
设置完成后点应用
设置完成后,主机可通过刚刚设置的192.168.56.x
地址访问虚拟机,虚拟机可以通过192.168.56.1
访问主机
端口转发
VirtualBox管理器里打开虚拟机设置→网络
在连接方式为NAT的网卡中打开高级,设置端口转发,可根据需要自行设置
Point Cloud Library 的安装
在应用程序菜单中找到终端
,打开
输入
|
|
然后输入用户密码,更新软件源信息
其中sudo
指令表示作为管理员运行指令。
接下来开始安装Point Cloud Library库。我们需要安装下面几个软件包
|
|
其他相关的依赖软件包会一起自动完成下载安装,如果想了解这些软件包的更多信息,或是想查询其他软件包,可以到Ubuntu官方软件包网站https://packages.ubuntu.com/查询
安装的命令为
|
|
输入后会询问是否继续,输入y确定即可。
也可以直接一行命令完成,这里-y
参数表示直接确认继续执行,不弹出提示
|
|
等待直到全部安装完成,如果报错,重新执行上面的指令
输入下面的指令,执行。pcl_logo.pcd为点云示例文件,运行时要根据实际输入正确的路径
|
|
成功打开pcd文件,证明安装成功
配置Visual Studio Code
VSCode是一个轻量级的代码编辑器,挺好用的
本地安装
安装
- 更新于2021年6月4日19点02分
Ubuntu虚拟机中应用程序菜单打开Ubuntu 软件
,搜索Visual Studio Code,安装。第一个就是
在ubuntu 软件中安装的Visual Studio Code不是完整版,会出现无法输入中文的情况,不建议采用这种方法安装
解决方法参考下面的网址,直接从Microsoft官方网站安装VSCode官方版本
https://blog.csdn.net/qq_35092399/article/details/105526908
|
|
|
|
|
|
|
|
|
|
由于Microsoft服务器在国内访问服务质量较差,需要等待较长时间或者自行设置代理
安装完成,打开
安装扩展程序
点击扩展,安装Chinese (Simplified)语言,安装C/C++扩展,安装CMake,安装CMake Tools
配置Visual Studio Code
打开存放项目的文件夹
在项目文件夹根目录创建一个叫.vscode
的文件夹,该文件夹内的文件用于设定此项目中VSCode及其扩展软件的功能及行为
在.vscode
里面创建c_cpp_properties.json
该文件用于提供智能补全功能
|
|
setting.json
|
|
这样就配置好了基本的编辑环境,更多的设置可自行搜索
远程开发(进阶)
除了在Ubuntu中安装VSCode直接本地开发以外,还可以通过ssh连接到Ubuntu,进行远程开发
VSCode中内置了Remote - SSH
扩展程序,安装后即可ssh连接到Ubuntu虚拟机,打开项目工作区进行开发。开发体验基本相同,且输入体验和显示效果更加舒服,符合日常习惯。不过终端执行命令不支持直接远程弹出图形显示窗口,如果想要看到图形效果建议直接在虚拟机内执行命令。
Ubuntu安装ssh-server
一般输入下面的命令安装完即可,无需额外设置
|
|
Windows生成密钥
**默认Windows里已经装了Git
可参考git的教程
打开Git Bash,输入下面的命令生成公钥和私钥
|
|
-t
参数指定了加密方法,可自行搜索其它加密方法,如果不指定则默认rsa
-f
参数用于自行指定密钥存放路径,可以填相对路径,如果不设置-f
参数,会出现提示输入密钥存放路径,这里要写绝对路径,如果不输入则密钥默认生成于 /c/Users/你的用户名/.ssh/id_rsa
出现提示设置密码,如果不需要密码,留空
完成密钥创建
在上面自行设定的/path/to/
里面可以看到下面两个文件
|
|
key_name是私钥,不要给别人
key_name.pub是公钥,要传输到服务器上
发送公钥到ssh服务端上
|
|
这里UserName是服务器上的用户名,AddressOfServer是服务器地址,可以是IP或域名
修改SSH config files
SSH config files位于C:/Users/你的用户名/.ssh/config
,在里面加入如下内容
|
|
VSCode进行远程开发
VSCode安装好Remote - SSH
扩展
打开VSCode远程资源管理器,看到在SSH config files里设置好的服务端,鼠标放上面点击按钮,打开一个新的远程开发窗口,完成