Ubuntu20.04配置ORB-SLAM3环境并运行
1.安装依赖
如果你之前已经成功安装过ORB-SLAM2的话,可以跳过这一步:
①安装Pangolin
(这个在之前的文章中有提到的,这里不再叙述,)
详见:https://blog.youkuaiyun.com/qq_49331639/article/details/115024110?spm=1001.2014.3001.5501
②安装OPENCV
(要求是3.2以上,我用的是3.4.1版本的,具体可以百度安装)详见:
https://blog.youkuaiyun.com/qq_49331639/article/details/121158125
③安装Eigen
sudo apt-get install libeigen3-dev
④安装Python
sudo apt install libpython2.7-dev
⑤DBow2和g2o
在对应的文件夹下执行
mkdir build
cd build
cmake ..
make -j4
即可,也可以在安装环境完成后执行./build.sh,不过这里大概率会出现问题,问题凡在最后部分解决。
2.源码下载
从GitHub下载源代码
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
安装:
cd ORB_SLAM3
chmod +x build.sh
./build.sh
3.遇到的问题
1.编译第三方库出现问题,安装Boost
在安装第三方库的时候大概路会出现问题,一般就是相关依赖安装不完全,你大概需要安装Boost,安装方法如下:
去官网下载:http://www.boost.org/users/download/
然后解压,在解压后的文件夹下
./bootstrap.sh
然后安装:
sudo ./b2 install
再去编译之前的文件一般就好啦
2.DBow安装问题,缺少依赖
sudo apt-get install libcanberra-gtk-module
sudo apt-get install libssl-dev
3.代码中的问题
在编译ORB-SLAM3时出现:
LocalMapping.cc:628:49: error: no match for ‘operator/’ (operand types are ‘cv::Matx<float, 3, 1>’ and ‘float’) 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));
主要这样的地方有两处,注意修改呀
这是目前遇到的所有安装问题,欢迎大家补充!
这里以EuRoC数据集为例进行测试:
http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets
MH02数据集
./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml (数据集路径) ./Examples/Stereo/EuRoC_TimeStamps/MH02.txt dataset-MH02_stereo