在使用poine版本的ORB_SLAM2时遇到的一些问题

首先声明:

  我是想通过这个来实现save and load 功能。

  感谢原作者与poine所做的贡献。

poine版本的请参考该链接下载:http://recherche.enac.fr/~drouin/slam/orbslam2/poine_orbslam2_04_07_16.tgz

原版请参考该链接下载:https://github.com/raulmur/ORB_SLAM2


我使用的计算机配置是ubuntu 14.04, ROS indigo ,i5-7300HQ,8G内存,机械硬盘(大体上是这个样子)

不说的太复杂,只说一下我遇到的一些问题:

1.编译

编译呢,要把各个build文件全部删掉(为了不出问题,全都删了吧),然后重新那个啥,都懂。。。

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
make的过程,在我的电脑上不可以使用make -j,会卡死,,,诸君不介意可以尝试一下,,,据说有的是没问题的。

各种依赖的库请参考原作者的github:https://github.com/raulmur/ORB_SLAM2


2.运行

请参考原作者github文章;

我使用的是xTion摄像头,运行的Mono没什么太大问题,但是 Example/Monocular/TUM1.yaml 的内容要小小改一下,我记得似乎是加入图像的长宽,,,似乎。

ros订阅的topic当然要改。

然后跑RGBD相机的时候会出现闪退,如果深度或者RGB信号中,有一个特征点丢失,那么,就导致slam系统崩溃,似乎是opencv中一个矩阵的问题,我也没弄明白,难道是我的版本不对?我用的是3.3.

mono的运动剧烈之后会lost,改nFeature会好一点,治标不治本。

3.save and load

作者的代码中有save的函数,但是不知道为什么没有去调用。save 的部分好像在map.cc中,load和save在一起。这些都是作者写好的。

我的save过程进行的比较顺利,直接在system.cc中调用了这个函数,在一个107键键盘范围内的slam大约生成了十几兆的文件,保存在运行rosrun ORBSLAM2命令的目录下。

load过程,出现segmentation fault(core dumped),网上查阅资料说,这个问题可能存在的原因比较多,gdb定位,发现是

unique_lock lock(mpMap->mMutexPointCreation);

这一句出的问题。后来发现属于我调用函数的时候传入参数的问题,mpMap是空的。



这篇博客写的很敷衍,很不走心,凑活着看看吧,,,以上。。。

你可能感兴趣的:(ORBSLAM2)