-
视觉惯性三大模块
视觉惯性是指通过视觉和惯性传感器(如陀螺仪和加速度计)相结合,实现对机器人或无人驾驶车辆的定位、导航和环境感知的技术。视觉惯性通常由以下三个模块组成:
-
视觉模块:视觉模块主要利用摄像头或激光雷达等传感器获取环境中的图像或点云数据。通过对图像或点云数据的处理和分析,可以提取出环境中的特征信息,如地面平面、障碍物、道路标记等。视觉模块还可以进行目标检测、目标跟踪和图像识别等任务,以实现对环境的感知和理解。
-
惯性模块:惯性模块主要利用陀螺仪和加速度计等传感器获取机器人或车辆的姿态和加速度等信息。通过对姿态和加速度数据的积分和滤波处理,可以得到机器人或车辆的位置、速度和姿态等状态信息。惯性模块可以提供高频率、低延迟的定位和导航信息,对于快速运动或信号不稳定的情况下具有较好的鲁棒性。
-
融合模块:融合模块将视觉和惯性两个模块的信息进行融合,以得到更准确和可靠的定位、导航和环境感知结果。融合模块通常采用滤波器(如卡尔曼滤波器或扩展卡尔曼滤波器)或优化算法(如非线性优化)来融合不同传感器的信息。通过融合视觉和惯性数据,可以克服各自的局限性,提高定位和导航的精度和鲁棒性。
-
ORB-SLAM发展历程
-
如何学习开源代码
- 安装部署,运行(很重要!)
- 运行简单Example例子
- 认真细致的看文档,看单元测试用例
- 尽情的玩耍
- 阅读源代码
- 写笔记记录想法,促进思考和总结
- 抄写项目源代码
- 仔细研读开发文档,了解整个开源项目的架构
- 下载完整的代码,包括之前贡献者贡献的代码以及修改记录
- 阅读源码之前,查看该项目是否提供架构和设计文档,阅读这些文档可以了解该项目的大体设计和结构
- 阅读源码之前,一定要能构建并运行该项目,有个直观感受
项目学习
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
- 最开头含义./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 数据的名字,到时候存储轨迹的时候,会按照这个名字来存储
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 版权协议,转载请附上原文出处链接和本声明。