纯小白实践ORB-SLAM2保姆级运行教程Ⅱ

一. 前记

        书接上回本人大一小白实践ORB-SLAM2代码,通过了中期答辩之后,在学习本专业课程的同时,又着手开展新的内容。此前是从​​​​​​​0到1,在虚拟机上成功实现了单目视觉的数据集与实时数据的实践;本博客更新的内容是:将相机数据从“单目”提升至“RGBD”层级,实现视觉SLAM对深度信息的提取与处理。具体效果呢,当然就是可以实现心心念念的点云地图而不仅仅是离散数据点啦!!!当然,这次我也只是做到了RGBD的数据集运行,并没有实现实时相机的功能,还有待进一步探索,不过我相信这也不太困难了。

        我在做的时候,也是步步受阻,翻阅了无数网络资料,最终解决问题,写下博客,希望能对同为新手的你们有所帮助,少走弯路

       

二. 实现过程

1.基础       

首先呢,我们得站立在已经实现了ORB-SLAM2的单目应用的基础上(详情请见鄙人上一篇博客),然后便是我的实现过程:

2.扩容

 由于此前并未考虑内存问题,于是下载下载到现在,内存已经不够啦!!!  更新前:

 扩容之后:

首先理清楚两个概念:一个是在物理机上的硬盘给虚拟机划拨的势力范围,一个是虚拟机给自身内存划拨的圈地。在网上找了些扩容的教程,总结来看,还是这个最简单: 

  【虚拟机扩容】简单快速完成Ubuntu虚拟机扩容_Tyfrank的博客-CSDN博客 

也就是,进虚拟机的页面,点一下“硬盘”按钮,再点一下下图右下角的扩展按钮

 需要注意的是,有快照的话是无法扩容的!!!所以得把快照删干净(悲,背水一战)

我就之前不想删快照,想搞克隆机,结果克隆机和本体机都进不去系统了……还是靠进快照存档进去的。最终我也没搞克隆,删了快照,成功扩容。

3.无法联网问题

这是这种情况:(我怎么这么倒霉总是步步受挫)

无法定位软件包,要么是库里没及时更新,更新一下就好了

sudo apt-get update

 要么就是网络问题,你会发现你在ubuntu里上个知乎都上不了……

网络问题也是源的问题,如果你去搜CSDN肯定好多都是让你更新源呀阿巴阿巴。

不过其实完全没必要!!!你只要重启系统,重新进行操作,就会发现它可以定位软件包了……

亲测有效,量子玄学

4.下载依赖项

由于我们需要处理深度depth信息也就是进行稠密建图,所以原来那个ORBSLAM2的包是不够滴,下载高翔博士的代码:GitHub - gaoxiang12/ORBSLAM2_with_pointcloud_map 到~/catkin_ws/src 目录

然后就把这个新的ORBSLAM2_modified当作原来的ORBSLAM2文件夹一样,需要去编译。

至于细节,详情参见这篇博客:高翔ORB-SLAM2稠密建图编译(添加实时彩色点云地图+保存点云地图)_摆烂女侠的博客-CSDN博客​​​​​​​x需要注意的是,想运行数据集,首先你得有这个数据集,详情请见Computer Vision Group - Dataset Download

5.__ __ ,启动!!!

也就是上面博主里的操作,跟着做就好,不多说。

 其次啊,输入命令得自己根据自己文件在电脑上的路径输入,切不可直接复制粘贴。

比如我的路径就是

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml ~/rgbd_dataset_freiburg1_desk Examples/RGB-D/associations/fr1_desk.txt

给新手们解释一下啊,上述意思分别是,1.rgbd数据集,启动!2.找启动文件 3.索引数据集位置

6.得到结果

虽然但是,咦,为啥我觉得使用了RGB-D数据集跟没使用一个样呢?

 奥,原来是我没有安装关键的PCL依赖项进行稠密建图!!!

安装PCL参见博客

ubuntu从零到一跑通ORB_SLAM2及其ORBSLAM2_with_pointcloud稠密建图_libqt5x11extras5_野马AS的博客-CSDN博客

源码地址:https://github.com/PointCloudLibrary/pcl,选择1.8.1的tag下载

(1)安装相关依赖,

sudo apt-get install git build-essential linux-libc-dev cmake cmake-gui libusb-1.0-0-dev libusb-dev libudev-dev mpi-default-dev openmpi-bin openmpi-common libflann1.9 libflann-dev libeigen3-dev libboost-all-dev libvtk6.3-qt libvtk6.3 libvtk6-dev libqhull* libgtest-dev freeglut3-dev pkg-config libxmu-dev libxi-dev mono-complete openjdk-8-jdk openjdk-8-jre libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev

(2)终端进入PCL源码文件夹,编译安装

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON-DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr .. 
make -j4  
sudo make install

(3)安装openni可视化库依赖

sudo apt-get install libopenni-dev 
sudo apt-get install libopenni2-dev

(4)随便找个地方新建文件夹,在文件夹内创建main.cc和CMakeLists.txt,进行cmake编译测试

        main.cc

编译结束后再来一次就好啦!!!

 三.后记

这一路自是一路的波折坎坷,似有九九八十一难横亘于前,每前行一段,便会遇见意料之外的失败与Error,我们不得不驻足修理,穿梭于茫茫互联网之海,打开一个又一个漂流瓶,满怀期待,期待里面装着解决问题的答案。我们依葫画瓢,很遗憾,问题并未解决,它在那里,它依然在那里,我们又开始翻阅资料,一遍一遍的尝试,直到柳暗花明,重焕前行的希望。不知多少次一小步一小步的前进,我们终究到达彼岸,心旷神怡,热血难凉,所以写下这篇博客,权作纪念,纪念我们在科研领域的第一个尝试,蛮笨,幼稚,且拙劣,但也凝结了我们的努力,热情与经验

谨以此篇,献给我们行将结束的大一。

猜你喜欢

转载自blog.csdn.net/Meditator_Logic/article/details/131263889