ORBSLAM2理论与实战(8) ORBSLAM2整体框架(下)

自己一点理解,欢迎纠错哈

ORBSLAM2 代码框架:

├── build_ros.sh                                    --使用ROS接口编译,支持ROS;
├── build.sh                                           --非ROS接口,编译;
├── CMakeLists.txt                                --使用CMake工具构建代码;
├── cmake_modules                              --使用第三方库;
│   └── FindEigen3.cmake     
├── Examples                                        --开发实例,包含ROS接口和非ROS接口,针对双目,单目,RGBD相机
│   ├── Monocular
│   │   ├── EuRoC_TimeStamps
│   │   │   ├── MH01.txt
│   │   │   ├── MH02.txt
│   │   │   ├── MH03.txt
│   │   │   ├── MH04.txt
│   │   │   ├── MH05.txt
│   │   │   ├── V101.txt
│   │   │   ├── V102.txt
│   │   │   ├── V103.txt
│   │   │   ├── V201.txt
│   │   │   ├── V202.txt
│   │   │   └── V203.txt
│   │   ├── EuRoC.yaml
│   │   ├── KITTI00-02.yaml
│   │   ├── KITTI03.yaml
│   │   ├── KITTI04-12.yaml
│   │   ├── mono_euroc.cc
│   │   ├── mono_kitti.cc
│   │   ├── mono_tum.cc
│   │   ├── TUM1.yaml
│   │   ├── TUM2.yaml
│   │   └── TUM3.yaml
│   ├── RGB-D
│   ├── ROS
│   └── Stereo                                 
├── include                                        --生成ORBSLAM2库所需要的头文件;
│   ├── Converter.h                            --生成数据格式的装换,涉及到给g2o,Eigen,OpenCV;
│   ├── FrameDrawer.h                      --当前图像帧的显示
│   ├── Frame.h                                 --帧的对象,通用的帧属性和成员函数
│   ├── Initializer.h                             --单目相机的初始化
│   ├── KeyFrameDatabase.h           --关键帧数据库
│   ├── KeyFrame.h                           --关键帧
│   ├── LocalMapping.h                     --局部地图线程,关于插入关键帧的处理,地图点剔除,关键帧剔除
│   ├── LoopClosing.h                       -- 回环检测线程,关于回环检测和回环校正
│   ├── MapDrawer.h                        --地图的绘制,采用的pangaolin
│   ├── Map.h                                   -- 包含地图点和关键帧
│   ├── MapPoint.h                           --地图点属性及其函数
│   ├── Optimizer.h                            --优化主要是各种BA
│   ├── ORBextractor.h                     --ORB特征点的提取
│   ├── ORBmatcher.h                      --ORB特征点匹配
│   ├── ORBVocabulary.h                 --引入词典 
│   ├── PnPsolver.h                          --主要是EPnP,3D-2D匹配,实现重定位
│   ├── Sim3Solver.h                        --相似变化,主要是和回环检测有关
│   ├── System.h                              --系统入口文件,开启三个主要线程和可视化线程,还有一些词袋和配置文件等
│   ├── Tracking.h                            --主要是关于Tracking线程
│   └── Viewer.h                               --可视化主线程


├── src                                              --对应于相应的头文件,见include文件夹                                
│   ├── Converter.cc
│   ├── Frame.cc
│   ├── FrameDrawer.cc
│   ├── Initializer.cc
│   ├── KeyFrame.cc
│   ├── KeyFrameDatabase.cc
│   ├── LocalMapping.cc
│   ├── LoopClosing.cc
│   ├── Map.cc
│   ├── MapDrawer.cc
│   ├── MapPoint.cc
│   ├── Optimizer.cc
│   ├── ORBextractor.cc
│   ├── ORBmatcher.cc
│   ├── PnPsolver.cc
│   ├── Sim3Solver.cc
│   ├── System.cc
│   ├── Tracking.cc
│   └── Viewer.cc
├── Thirdparty                                 --第三方库文件:后端优化库g2o和场景识别DBOW2            
│   ├── DBoW2
│   └── g2o
└── Vocabulary                              --存放字典库

 每个文件初略了解一下功能,下面进行较为详细解读

你可能感兴趣的:(ORBSLAM2,VSLAM)