环境搭建第一步:安装cmake, gcc, g++

sudo apt-get install cmake gcc g++

第二步:安装Eigen

此处安装的是Eigen3.2.1版本,一开始安装Eigen3.4.0,在最后所有环境配置完成后,运行ORBSLAM2时,运行一小段时间就自动退出。不同版本可以在该网站找到

cd Eigenmkdir buildcmake ..makesudo make installsudo cp /usr/local/include/eigen3 /usr/include/eigen3

第三步:安装Pangolin

0.6版本

cd Pangolinmkdir buildcmake ..makesudo make install

安装时报错:

error: ‘AVFMT_RAWPICTURE’ was not declared in this scope

参考该链接在Pangolin/include/pangolin/video/drivers/ffmpeg.h开头加上

#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22) #define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER #define AVFMT_RAWPICTURE 0x0020

编译安装成功,会有很多的警告,这里可以忽略掉。

测试是否安装成功

cd Pangolincd examples/HelloPangolincmake ..make./HelloPangolin

出现一个显示由红、绿、蓝三个色块拼成的立方体的窗口则说明安装成功。

第四步:安装OpenCV3

3.4.15版本

安装依赖(有些可以不装)sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev编译安装opencv(时间比较久)cd opencv3mkdir buildcd buildcmake ..make -jsudo make install 

测试是否安装成功

cd opencv3/samples/cpp/example_cmake./opencv_example

出现一个窗口,上面显示Hello OpenCV则说明安装成功

第五步:安装其他第三方库以及ORB_SLAM2本体

cd ORB_SLAM2chmod +x build.sh  (给执行权限)./build.sh

在源码处有一处改动
参考第二个报错
报错:

error: static assertion failed: std::map must have the same value_type as its allocator       static_assert(is_same::value,

解决:打开LoopClosing.h
将原代码中的

typedef map<KeyFrame*,g2o::Sim3,std::less,        Eigen::aligned_allocator<std::pair > > KeyFrameAndPose;

修改为

typedef map<KeyFrame*,g2o::Sim3,std::less,        Eigen::aligned_allocator<std::pair > > KeyFrameAndPose;

测试

1、进入[网页](Computer Vision Group – Dataset Download (tum.de)),下载对应的数据(点击tgz,就会开始下载对应的数据)

2、进入ORB_SLAM2创建文件夹data,然后将下载好的数据压缩包提取到data中,然后打开终端执行以下命令(此处下载的数据为网页中第一个):

cd ORB_SLAM2./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml data/rgbd_dataset_freiburg1_xyz

若成功搭建,则会显示如下两个窗口

参考

(75条消息) Ubuntu20.04配置ORBSLAM2并运行(保姆级教程)_orbslam2运行_9527风先生的博客-CSDN博客

(75条消息) ORB-SLAM2环境配置以及运行详解(一):ROS与非ROS环境下的安装、编译、离线数据集测试_FrozenFreak的博客-CSDN博客