ORB-SLAM2的安装和运行流程

Posted excellentlhw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORB-SLAM2的安装和运行流程相关的知识,希望对你有一定的参考价值。

一、ORB-SLAM2安装

1.在https://github.com/raulmur/ORB_SLAM2上git clone到当前文件夹内,若想下载到指定文件夹内,就需要cd进入指定文件内,然后再git clone https://github.com/raulmur/ORB_SLAM2

2.安装ORB-SLAM2的依赖项:

sudo apt-get install libopencv-dev libeigen3-dev libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxspares3.1.2 libcholmod-dev

如果运行上述命令终端显示未找到该指令,可以输入部分名字然后用Tab键自动识别或者显示选项。

3.运行build.sh,我会出现以下情况:

(1)编译无法通过,错误信息显示未找到opencv2/cv.h

通过https://blog.csdn.net/sinat_24143931/article/details/78488833,了解到opencv从2.2版本以后<opencv root>include下有两个文件夹 opencv 和opencv2 。从官方的意思来看,它逐渐喜欢用opencv2里面的那种包含头文件的方式。
但是cv.h highgui.h是opencv目录下的头文件。

因此,解决方案就是在/ORB_SLAM2/include/ORBextractor.h里将头文件路径#include<opencv2/cv.h>改为#include<opencv/cv.h>就可以了。

(2)由于电脑配置太低,显示virtual memory exhausted: Cannot allocate memory,编译时会卡住,无法使用多线程编译模式,需要将build.sh中的最后一行make -f改为make -l:

cd Vocabulary
tar -xf ORBvoc.txt.tar.gz
cd ..
 
echo "Configuring and building ORB_SLAM2 ..."
 
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -l

 (3)在双目.cpp编译时,出现error: ‘CV_LOAD_IMAGE_UNCHANGED’ was not declared in this scope

这是因为opencv在3.0之后把CV_LOAD_IMAGE_UNCHANGED改成了IMREAD_UNCHANGED,它定义在cv命名空间内,所以需要加上作用域c::IMREAD_UNCHANGED

详细解释可以看http://docs.opencv.org/3.0.0/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56

二、运行

待更。。

 

以上是关于ORB-SLAM2的安装和运行流程的主要内容,如果未能解决你的问题,请参考以下文章

基于ORB-SLAM2的图片识别

Ubuntu20.04下运行VINS-MonoGVINS

Ubuntu16.03配置安装及运行ORB-SLAM3(含遇到的坑与注意事项)

ORB-SLAM2 运行 —— ROS + Android 手机摄像头

ORB-SLAM(单目版本)编译与运行

Docker下运行ORB-Slam2