orb-slam3学习笔记

  • 视觉惯性三大模块

视觉惯性是指通过视觉和惯性传感器(如陀螺仪和加速度计)相结合,实现对机器人或无人驾驶车辆的定位、导航和环境感知的技术。视觉惯性通常由以下三个模块组成:

  1. 视觉模块:视觉模块主要利用摄像头或激光雷达等传感器获取环境中的图像或点云数据。通过对图像或点云数据的处理和分析,可以提取出环境中的特征信息,如地面平面、障碍物、道路标记等。视觉模块还可以进行目标检测、目标跟踪和图像识别等任务,以实现对环境的感知和理解。

  2. 惯性模块:惯性模块主要利用陀螺仪和加速度计等传感器获取机器人或车辆的姿态和加速度等信息。通过对姿态和加速度数据的积分和滤波处理,可以得到机器人或车辆的位置、速度和姿态等状态信息。惯性模块可以提供高频率、低延迟的定位和导航信息,对于快速运动或信号不稳定的情况下具有较好的鲁棒性。

  3. 融合模块:融合模块将视觉和惯性两个模块的信息进行融合,以得到更准确和可靠的定位、导航和环境感知结果。融合模块通常采用滤波器(如卡尔曼滤波器或扩展卡尔曼滤波器)或优化算法(如非线性优化)来融合不同传感器的信息。通过融合视觉和惯性数据,可以克服各自的局限性,提高定位和导航的精度和鲁棒性。

  • ORB-SLAM发展历程

  • 如何学习开源代码

  1. 安装部署,运行(很重要!)
  2. 运行简单Example例子
  3. 认真细致的看文档,看单元测试用例
  4. 尽情的玩耍
  5. 阅读源代码
  6. 写笔记记录想法,促进思考和总结
  7. 抄写项目源代码
  8. 仔细研读开发文档,了解整个开源项目的架构
  9. 下载完整的代码,包括之前贡献者贡献的代码以及修改记录
  10. 阅读源码之前,查看该项目是否提供架构和设计文档,阅读这些文档可以了解该项目的大体设计和结构
  11. 阅读源码之前,一定要能构建并运行该项目,有个直观感受

项目学习

Examples        示例

Examples_old 更新代码后遗留的产物,暂且不管

include            核心,头文件

src                   核心源文件

lib                    编译之后形成的文件夹,相当于动态链接库

Thirdparty        需要的动态第三方库

Vocabulary      放的是词袋

Changelog.md 各版本更新的内容

调用命令:路径下:euroc_examples.sh文件,去找对应的命令

脚本:build.sh   

           build.sh编译文件

           build_ros.sh ros接口下编译文件

Examples 包含了很多对应模式的接口,里面有运行示例,评测示例

标定        单目        单目+IMU        深度        深度+IMU        ROS        双目        双目+IMU        euroc评估指令        euroc示例指令        自述        tum评估指令        示例指令

命令示意

Monocular Examples

单目

MultiSession Monocular Examples

多地图单目

Stereo Examples

双目

MultiSession Stereo Examples

多地图  双目

Monocular-Inertial Examples

单目+IMU

MultiSession Monocular Examples

多地图  单目+IMU

Stereo-Inertial Examples

双目+IMU

MultiSession Stereo-Inertial Examples

多地图  双目+IMU

Monocular-Inertial Examples

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

  1. 最开头含义./Examples/Monocular-Inertial/mono_inertial_euroc  可执行文件(理解为节点) 
  2. 第一个参数 ./Vocabulary/ORBvoc.txt 词袋模型
  3. 第二个参数 ./Examples/Monocular-Inertial/EuRoC.yaml 相机配置文件
  4. 第三个参数 ./"$pathDatasetEuroc"/V103 数据的位置
  5. 第四个参数 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/V103.txt 数据里面的时间戳
  6. dataset-V103_monoi 数据的名字,到时候存储轨迹的时候,会按照这个名字来存储

MultiSession Monocular Examples

MultiSession 指一次跑多个数据,orb-slam3更新了多地图功能,指同一个场景下,可以跑多个数据。场景一样,理论上地图也应该是一样的。

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 第三个数据里面的时间戳文件

其中这个多数据集,可以是三个,也可以是两个,可以进行删减

————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值