ORB_SLAM2源码小记0
程序员文章站
2024-03-24 23:44:46
...
ORB_SLAM源码小记
基本思路
ORB_SLAM:概括为基于稀疏特征点的间接法
**ORB_SLAM基本由三个线程实现,
1. Tracking,负责估计每帧的相机位姿,判断关键帧;
2. Mapping,实现Bundle Adjustment,对新增加的关键点搜索关键点并重构,筛选并删除部分关键点。
3. Loop-closing,对每个关键帧实施闭环检测,若发现,进行环首尾的对准;进行pose的图优化。优化中利用了提出的Essential Graph概念。
数据结构
- 特征点与关键帧
- Covisibility Graph and Essential Graph
主要变量
以kitti_mono为例
ORB_SLAM2::System SLAM(argv[1],argv[2],ORB_SLAM2::System::MONOCULAR,true);
System在主循环调用TrackMonocular(…)
class System {
//Main function
cv::Mat& TrackMonocular(const cv::Mat& image, const double time_stamp);
}
在TrackMonocular(…)函数中调用Tracking类指针的GrabImageMonocular(…)
class Tracking {
//main function
cv::Mat& GrabImageMonocular(const cv::Mat& image, const double time_stamp);
}
```shell
./ORB_SLAM2/Examples/Monocular/mono_tum /home/<your computer>/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/<your computer>/ORB_SLAM2/Examples/Monocular/TUM1.yaml /home/<your computer>/ORB_SLAM2/Examples/Monocular/rgbd_dataset_freiburg1_xyz
推荐阅读
-
ORB_SLAM2 源码阅读 ORB_SLAM2::Initializer::ComputeF21 (OpenCV 细节)
-
ORB_SLAM2 源码阅读 ORB_SLAM2::ORBextractor
-
「ORB_SLAM2源码解读」之函数ORBmatcher::SearchForInitialization()
-
ORB_SLAM2源码小记0
-
「ORB_SLAM2源码解读」
-
wordpress源码:get_terms 中 exclude_tree 里的 $taxonomies[0]
-
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的_PHP
-
MySQL源码学习:关于慢查询日志中的Rows_examined=0
-
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
-
koa源码阅读[0]