本文按照ORB-SLAM2官方配置步骤进行,总结了过程中可能遇到的问题。各位在配置前可以先阅读一下github仓库中Readme的第2、3部分,对于整个配置流程有个大体认识,再结合下面内容进行配置,或许可以提高效率。
ORB-SLAM2的github项目网址为:https://github.com/raulmur/ORB_SLAM2。
0. 版本
#–2023/4/13–#
OS: Ubuntu 18.04.6 LTS
Pangolin: 0.5
OpenCV: 3.2.0
Eigen: 3.3.7
1. Pangolin
(1)Pangolin的依赖项
sudo apt install libgl1-mesa-dev # OpenGL
sudo apt install libglew-dev #glew
(2)Pangolin
从Pangolin的github仓库下载Pangolin-0.5.zip
,解压、编译。
网址: https://github.com/stevenlovegrove/Pangolin/releases/tag/v0.5
# 编译Pangolin
cd Pangolin-0.5
mkdir build && cd build
cmake ..
make
2. OpenCV
sudo apt install libopencv-dev
3. Eigen
sudo apt install libeigne3-dev
4. ORB-SLAM2
(1)下载源代码
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
(2)修改头文件
在.../ORB_SLAM2/include/System.h
中加入
#include<unistd.h>
注:由于ORB-SLAM2用到了usleep()函数,属于<unistd.h>这个库,如果不加则会报错:error: 'usleep' was not declared in this scope
(3)使用官方提供的脚本build.sh
编译
cd ORB_SLAM2
chmod +x build.sh
./build.sh
注:如果CPU性能不够,则容易在编译过程中卡死。这时需要修改build.sh
,将其中的多线程编译make -j
改成单线程编译make
(build.sh
脚本在编译g2o、DBoW2和ORB_SLAM2这三处都是用的make -j
,如果需要修改,注意不要漏)
5. 测试
当build.sh
运行结束后,会在.../ORB_SLAM2/lib/
目录下生成一个共享库libORB_SLAM2.so
,这代表编译成功了。
可以将KITTI数据集下载到ORB_SLAM2目录下,比如我们要测试03数据集,则测试代码为:
./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTI03.yaml ./dataset/sequences/03