网上有很多运行的博客,我参照的来运行自己的,在最后一步运行ORB_SLAM2的时候竟然一直在卡住,很是头疼啊,经过几天的查找和询问各种大牛,问题算是解决了,打卡记录下。
问题一:在执行./build.sh这一步的时候出现下列问题:
问题的原因是虚拟机内存不够,关闭虚拟机,将虚拟机的内存扩大(我扩大到3G就可以了)
问题二:出现/ws/ORB_SLAM2/src/LoopClosing.cc: In member function ‘void ORB_SLAM2::LoopClosing::Run()’:
/ws/ORB_SLAM2/src/LoopClosing.cc:84:20: error: ‘usleep’ was not declared in this scope
usleep(5000);
^
/ws/ORB_SLAM2/src/LocalMapping.cc: In member function ‘void ORB_SLAM2::LocalMapping::Run()’:
/ws/ORB_SLAM2/src/LocalMapping.cc:94:28: error: ‘usleep’ was not declared in this scope
usleep(3000);
^
/ws/ORB_SLAM2/src/LocalMapping.cc:108:20: error: ‘usleep’ was not declared in this scope
usleep(3000);
需要打开相应的代码,在头文件里面添加usleep 的头文件unistd.h
,问题就解决了!
问题三:在运行最后一步单目和rgbd数据的时候出现了下面的问题:
terminate called after throwing an instance of 'std::runtime_error'
what(): Pangolin X11: Unable to retrieve framebuffer options
已放弃 (核心已转储)
网上的这位大牛解决了这个问题:
http://blog.csdn.net/aaron121211/article/details/51804609
问题四:[rospack] Error: could not call python function 'rosdep2.rospack.init_rospack_interface'
在Ubuntu16.04下安装ROS版本的ORB_SLAM2的时候发生的,原因是系统默认python版本被改成了python3,可以查看系统默认版本:python --version,而ORB_SLAM2需要的是python2,这时候系统里面应该有两个版本的Python,使用Python2 --version查看Python2的版本,使用Python3 --version查看Python3的版本,更改版本号到Python2:
echo alias python=python2 >> ~/.bashrc
最后还需要修改更新下ros的依赖:
sudo rosdep fix-permissions
rosdep update
下面再cmake即可。