ORB-SLAM3配置颇为麻烦,本文是对官方教程的扩展补充。
目录
1 C++11 or C++0x Compiler
2 Eigen3
3 Pangolin
4 OpenCV
5 boost
6 ORB-SLAM3
测试
参考链接
安装c++编译环境。
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install build-essential
sudo apt-get install cmake
此处顺序与官方教程不同,因为Pangolin也需要Eigen,故先安装Eigen。到Eigen官网,下载3.1.0以上版本的压缩包,解压进入该目录后,输入以下指令安装即可。
mkdir build && cd build
cmake ..
make
sudo make install
Pangolin官方教程对本人来说并不直观,根据以下指令即可安装成功。
首先安装依赖。
sudo apt-get install libglew-dev
sudo apt-get install libpython2.7-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev
sudo apt-get install libdc1394-22-dev libraw1394-dev
sudo apt-get install libjpeg-dev libpng-dev libtiff5-dev libopenexr-dev
先下载代码,推荐网络不好的同学下载zip再解压,而不是使用git clone指令。
安装指令如下。
mkdir build && cd build
cmake ..
cmake --build .
sudo make install
OpenCV的安装较复杂且耗时,可参考另一篇博客。需要注意的是,尽管官方在文档中声称只需要版本在3.0以上即可,但实测需要版本4.4.0以上。原因应该是官方更新了代码但疏于维护文档,后面测试的时候还会遇到类似的情况。
同样是在boost官网下载压缩包,解压后输入以下指令安装。
./bootstrap.sh
sudo ./b2 install
安装过程可能会出现fatal error: openssl/opensslv.h: No such file or directory的错误,需要安装依赖。
sudo apt-get install libssl-dev
对电脑性能足够自信的同学可以在下载好的ORB-SLAM3代码目录下直接输入如下指令完成安装。
chmod +x build.sh
./build.sh
该安装过程很容易出现内存不足的问题,会中途报错internal computer error。如果读者的电脑本身性能很好,但是使用虚拟机安装出现了该问题,那么将虚拟机的内存分配到16G及以上即可解决此问题。
对于电脑性能更一般的情况,则需要修改build.sh文件,将build.sh中的所有make -j改为make -jx,其中x应取处理器个数-1,当然也可以直接改为make -j1基本上就不会出问题。
ORB-SLAM3安装时间较长,需耐心等候。
ORB-SLAM3安装至此结束,下面进行测试。
首先在kmavvisualinertialdatasets – ASL Datasets下载ASL格式的数据集,解压到自己喜欢的位置。该网站的可能出现下载链接跳转失败的情况,复制链接地址在新窗口打开即可。复制官方文档提到一个测试用的euroc_examples.sh脚本,但是在最近的更新中不知道为什么删除了。euroc_examples.sh脚本中提供了各种大同小异测试指令,读者可以很容易根据本文给出的指令做出相应修改。以下给出的是单目的测试指令。
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml /你喜欢的位置/MH_01_easy ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
单目的测试脚本有个坑,能够成功运行,但不显示图像。其原因是/Examples/Monocular/mono_euroc.cc 中不知道为什么禁用了UI,将如下代码中false改为true即可。
测试结果如下图。
未出现在正文的参考链接:
1.https://blog.csdn.net/hhz_999/article/details/120473659
2.https://rupingcen.blog.csdn.net/article/details/115690725
3.https://blog.csdn.net/shakeme/article/details/80911441