文章目录
-
- 函数System::TrackRGBD的执行流程
- 函数System::TrackStereo的执行流程
- 函数System::TrackMonocular的执行流程
- 函数Tracking::GrabImageRGBD的执行流程
- 下面是可以验证上述代码的可执行程序
- Frame::Frame()
- 参文件中参数的理解
- Frame::ComputeStereoFromRGBD
- 针孔相机成像原理双目图像生成视差图和点云图
- 双目相机模型 双目采集图片 视差图(disparity map) UV-视差(UV-disparity)
- 针孔相机成像原理双目图像生成视差图和点云图源码解读
- Frame::AssignFeaturesToGrid()
- void Tracking::Track()
- 结束线程RequestFinish->isFinished
- 启动线程LocalMapping::Run->CheckFinish->SetFinish
- 重置Tracking::Reset()->RequestReset()->ResetIfRequested()
- 停止线程RequestStop、isStopped、Stop、Release
- 释放Release()
- LoopClosing::CorrectLoop、LoopClosing::RunGlobalBundleAdjustment
- Tracking::Reset、Viewer
- Tracking::Replace
- Tracking::CheckReplacedInLastFrame
- mpFrameDrawer->Update(this)函数功能
- 类间数据共享
- 执行流程
函数System::TrackRGBD的执行流程
ORB_SLAM2实际上是四个线程,我觉得可视化Viewer线程可以实时检验Tracking、LocalMapping、LoopClosing的结果这很重要不是吗?
我以线程的启动和停止为主线,模拟了一下程序执行的过程中函数的调用和变量值的改变,这个过程可以干掉很多ORB_SLAM2的代码。
接下来执行System::TrackRGBD函数, 依次执行Tracking::GrabImageRGBD Frame::Frame Frame::ExtractORB ORBextractor::operator()等函数 。添加微信 slamshizhanjiaocheng 邀请加入 SLAM实战教程 微信交流群
给SLAM对象的TrackRGBD函数传入初始值分别是:彩色图 深度图 时间戳
// Pass the image to the SLAM system
SLAM.TrackR