视觉惯性三大模块

orb-slam算法发展历程

orb-slam3算法流程

如何学习开源代码




vscode代码高亮,todo tree 插件、注释
orb-slam3代码运行
build.sh
build.sh编译文件
build_ros.sh ros接口下编译文件
Examples 包含了很多对应模式的接口,里面有运行示例,评测示例

Examples_old 更新代码后遗留的产物,暂且不管
include 核心,头文件
src 核心,源文件
lib 编译之后形成的文件夹,相当于动态链接库
Thirdparty 需要的动态第三方库
Vocabulary 放的是词袋
Changelog.md 各版本更新的内容
调用命令:
/home/ys/文档/orb_slam3_20230131/ORB_SLAM3_detailed_comments-master
路径下:euroc_examples.sh文件,去找对应的命令
然后在根目录:
/home/ys/文档/orb_slam3_20230131/ORB_SLAM3_detailed_comments-master
下进行运行。

echo "Launching V103 with Monocular-Inertial sensor"
./Examples/Monocular-Inertial/mono_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular-Inertial/EuRoC.yaml "$pathDatasetEuroc"/V103 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/V103.txt dataset-V103_monoi
第一个参数 Vocabulary/ORBvoc.txt 词袋模型
第二个参数 Examples/Monocular-Inertial/EuRoC.yaml 相机配置文件
第三个参数 "$pathDatasetEuroc"/V103 数据的位置
第四个参数 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/V103.txt 数据里面的时间戳
dataset-V103_monoi 数据的名字,到时候存储轨迹的时候,会按照这个名字来存储
echo "Launching MH01 with Monocular-Inertial sensor"
./Examples/Monocular-Inertial/mono_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular-Inertial/EuRoC.yaml /home/ys/文档/orb_slam3_20230131/data/MH_01_easy ./Examples/Monocular-Inertial/EuRoC_TimeStamps/MH01.txt dataset-MH01_monoi
MultiSession Monocular Examples
MultiSession 指一次跑多个数据,orb-slam3更新了多地图功能,指同一个场景下,可以跑多个数据。场景一样,理论上地图也应该是一样的

# MultiSession Monocular Examples
echo "Launching Vicon Room 1 with Monocular sensor"
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml "$pathDatasetEuroc"/V101 ./Examples/Monocular/EuRoC_TimeStamps/V101.txt "$pathDatasetEuroc"/V102 ./Examples/Monocular/EuRoC_TimeStamps/V102.txt "$pathDatasetEuroc"/V103 ./Examples/Monocular/EuRoC_TimeStamps/V103.txt dataset-V101_to_V103_mono
第一个参数 Vocabulary/ORBvoc.txt 词袋模型
第二个参数 Examples/Monocular/EuRoC.yaml 相机配置文件
第三个参数"$pathDatasetEuroc"/V101 数据集录入
第四个参数 /Examples/Monocular/EuRoC_TimeStamps/V101.txt 数据里面的时间戳文件
第五个参数 "$pathDatasetEuroc"/V102 第二个数据集录入
第六个参数 ./Examples/Monocular/EuRoC_TimeStamps/V102.txt 第二个数据里面的时间戳文件
第七个参数 "$pathDatasetEuroc"/V103 第三个数据集录入
第八个参数 ./Examples/Monocular/EuRoC_TimeStamps/V103.txt 第三个数据里面的时间戳文件
其中这个多数据集,可以是三个,也可以是两个,可以进行删减
此文件运行不出?单目文件没有开显示,改成单目IMU模式
# MultiSession Monocular Examples
echo "Launching Machine Hall with Monocular-Inertial sensor"
./Examples/Monocular-Inertial/mono_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular-Inertial/EuRoC.yaml "$pathDatasetEuroc"/MH01 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/MH01.txt "$pathDatasetEuroc"/MH02 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/MH02.txt "$pathDatasetEuroc"/MH03 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/MH03.txt "$pathDatasetEuroc"/MH04 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/MH04.txt "$pathDatasetEuroc"/MH05 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/MH05.txt dataset-MH01_to_MH05_monoi
红线表示时序上关键帧相邻的轨迹,绿线表示共视关系(共视的点达到100多个的时候)。