Ubuntu 20.04 测试 ORB SLAM3
一些参考信息:
- 撰写日期:2024-01-09
- 操作系统:Ubuntu 20.04 LTS 64-bit
- ORB SLAM3 commit: 4452a3c4ab75b1cde34e5505a36ec3f9edcdc4c4
- Pangolin commit: c1d3a6858321b858fd6ab94324460d2c30acb201
安装依赖
安装编译器和 git
sudo apt install cmake gcc g++ git
安装依赖库
sudo apt install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libpng-dev libssl-dev
安装 Pangolin
cd ~
git clone --recursive https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make
sudo make install
安装 OpenCV
sudo apt install libopencv-dev
安装 Eigen3
sudo apt install libeigen3-dev
编译 ORB SLAM3
下载源码
cd ~
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
修改编译信息
首先需要查看已安装的 OpenCV、Eigen3 的版本信息:
pkg-config --modversion opencv4
pkg-config --modversion eigen3
这里我的 OpenCV 版本是 4.2.0
,Eigen3 的版本是 3.3.7
。
打开 ORB_SLAM3/CMakeLists.txt
,找到这两个部分,将 OpenCV 和 Eigen3 的版本号修改为自己本地的版本号:
然后运行:
sed -i 's/++11/++14/g' CMakeLists.txt
这一步是为了将 CMakeLists.txt
中的所有 C++11 都替换成 C++14,修正编译中的一些问题。
接着打开 build.sh
,有四个 make -j
,将核数加/改到 j
后面。例如,我希望 make
创建 4 个任务,我就将 make -j
改成 make -j4
。
最后打开 Examples/Monocular/mono_euroc.cc
,找到大约第 83 行的 ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);
,将 false
改为 true
,这是为了等下我们运行这个例子时能够显示可视化窗口。
然后运行 ./build.sh
开始编译。过程中不应出现任何红色的 "error",但会出现很多 "warning"。
测试运行
下载数据集
这个数据集有点大,这里也提供一份拷贝:MH_01_easy.zip
# wget http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_01_easy/MH_01_easy.zip
wget https://blog.tofu.icu/media/5076cd8923429f1c51c72ae172e14aea.zip -O MH_01_easy.zip
unzip MH_01_easy.zip
mkdir datasets && mkdir datasets/MH01
mv mav0 datasets/MH01
开始运行
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./datasets/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
如果碰到了这样的报错:
./Examples/Monocular/mono_euroc: error while loading shared libraries: libpango_windowing.so: cannot open shared object file: No such file or directory
则先执行 sudo ldconfig
,再运行即可。
No comments yet...