ORB_SLAM3环境搭建及demo演示
github:https://github.com/UZ-SLAMLab/ORB_SLAM3
本文教程部分参考:
https://www.ybliu.com/2020/07/ORB-SLAM3-demo.html
https://www.bilibili.com/video/BV1nR4y1W7mt?spm_id_from=333.880.my_history.page.click&vd_source=01da08e4487b8e450cf16063029887c6
安装依赖
编译前需要安装相关依赖,相关可以查看README,安装依赖都是
mkdir build
cd build
cmake ..
make -j8
sudo make install
注意README中有一个没有提到,也是需要安装的,是
Pangolin
Pangolin github: https://github.com/stevenlovegrove/Pangolin
可选安装依赖:https://github.com/IntelRealSense/librealsense
编译
下载源码后直接执行 ./build.bash
./build.bash
文件中也就是一些编译执行指令
**注意:**由于编译内容众多,中间很可能会报错,这样建议手动执行build.bash一遍,然后默认的make核心比较少,可以自行改多一点
下载数据集:EuRoc
网址:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets
下载网址:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads
注意下载ASL Dataset Format
可以直接选图中的链接下载,大约1.5G
下载后解压出来,改个名字,改成MH01
,路径可以参考下面的图片
测试数据集
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
在ORB_SLAM3根目录下执行上面代码,注意其中"$pathDatasetEuroc"/MH01
是之前下载的数据集路径
如果是我上面那样的路径,代码就是
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml /home/kt/data/Dataset/EuRoc/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
正常的输出:
num_seq = 1
file name: dataset-MH01_mono
Loading images for sequence 0...LOADED!
-------
ORB-SLAM3 Copyright (C) 2017-2020 Carlos Campos, Richard Elvira, Juan J. Gómez, José M.M. Montiel and Juan D. Tardós, University of Zaragoza.
ORB-SLAM2 Copyright (C) 2014-2016 Raúl Mur-Artal, José M.M. Montiel and Juan D. Tardós, University of Zaragoza.
This program comes with ABSOLUTELY NO WARRANTY;
This is free software, and you are welcome to redistribute it
under certain conditions. See LICENSE.txt.
Input sensor was set to: Monocular
Loading settings from ./Examples/Monocular/EuRoC.yaml
Camera1.k3 optional parameter does not exist...
-Loaded camera 1
-Loaded image info
-Loaded ORB settings
Viewer.imageViewScale optional parameter does not exist...
-Loaded viewer settings
System.LoadAtlasFromFile optional parameter does not exist...
System.SaveAtlasToFile optional parameter does not exist...
-Loaded Atlas settings
System.thFarPoints optional parameter does not exist...
-Loaded misc parameters
----------------------------------
SLAM settings:
-Camera 1 parameters (Pinhole): [ 458.65399169921875 457.29598999023438 367.21499633789062 248.375 ]
-Camera 1 distortion parameters: [ -0.28340810537338257 0.073959067463874817 0.00019359000725671649 1.7618711353861727e-05 ]
-Original image size: [ 752 , 480 ]
-Current image size: [ 600 , 350 ]
-Camera 1 parameters after resize: [ 365.94735717773438 333.44500732421875 292.99069213867188 181.10678100585938 ]
-Sequence FPS: 20
-Features per image: 1000
-ORB scale factor: 1.2000000476837158
-ORB number of scales: 8
-Initial FAST threshold: 20
-Min FAST threshold: 7
Loading ORB Vocabulary. This could take a while...
Vocabulary loaded!
Initialization of Atlas from scratch
Creation of new map with id: 0
Creation of new map with last KF id: 0
Seq. Name:
There are 1 cameras in the atlas
Camera 0 is pinhole
First KF:0; Map init KF:0
New Map created with 271 points
注意:如果没有报错,也没有图像输出,需要修改下源码:
找到mono_euroc.cc文件,修改第83行:
ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);
讲false改成true就行了
别忘了重新编译,不然是不会生效的