下面为我的安装过程,在已有帖子的基础上,加上百度搜索,解决了安装中的问题,并跑通了公开数据集。主要参考了Ubuntu20.04配置ORB-SLAM3环境并运行_宁小健的博客-CSDN博客_orbslam3环境
步骤如下:
1、安装依赖
1.1 pangolin
安装参考了下面博客,安装时我还安装了boost、g++、cmake,其中boost、pangolin是下载后安装的,g++与cmake是直接安装的。
Ubuntu20.04安装Pangolin(视觉SLAM十四讲)_宁小健的博客-CSDN博客_ubuntu20安装pangolin
1.2 opencv
我安装的是3.4.1版本,详见:
Ubuntu20.04安装OpenCV3.4.1_宁小健的博客-CSDN博客_ubuntu20.04安装opencv
1.3 安装Eigen
sudo apt-get install libeigen3-dev
1.4 Python2 安装,一定要安装2,不是3.
sudo apt install python2
1.5 ORB-SLAM3文件包里自带的第三方库,DBow2和g2o
在DBow2和g2o各自文件夹下
mkdir build
cd build
cmake ..
make -j4
2 、orbslam3下载与安装
在github或gitee上下载orbslam3包,多下载几个,我是从gitee下载的。比较不同包大小,大小一样的几个为原始的包。安装时有问题,换了另外一个(大小一样几个包中的另一个),就没有问题了。
安装:
cd ORB_SLAM3
chmod +x build.sh
./build.sh
问题及解决方法:
1) opencv 3.4.1出现如下问题,opencv 3.4.15没有如下问题
/home/xxxx/programfile/orbslam/ORB_SLAM3-master_3/ORB_SLAM3-master/src/LocalMapping.cc:628:49: error: no match for ‘operator/’ (operand types are ‘cv::Matx<float, 3, 1>’ and ‘float’)
628 | x3D = x3D_h.get_minor<3,1>(0,0) / x3D_h(3);
| ~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~
| | |
| | float
| cv::Matx<float, 3, 1>
解决方法
opencv版本不匹配,改动如下
改前:x3D = x3D_h.get_minor<3,1>(0,0) / x3D_h(3);
改后:x3D = cv::Matx31f(x3D_h.get_minor<3,1>(0,0)(0) / x3D_h(3),x3D_h.get_minor<3,1>(0,0)(1) / x3D_h(3),x3D_h.get_minor<3,1>(0,0) (2)/ x3D_h(3));
2)
orbslam/src/System.cc:26:10: fatal error: openssl/md5.h: 没有那个文件或目录
26 | #include <openssl/md5.h>
解决方法
sudo apt-get install libssl-dev