视觉SLAM - ORBSLAM2 原理解析
文章平均质量分 86
介绍ORBSLAM2原理,逐行代码解析。
APS2023
视觉SLAM、激光SLAM、自动驾驶博主
技术支持:海鲜频道 水城杰出锅巴 上下求索
展开
-
ORB-SLAM2 --- LoopClosing::Run 回环检测线程解析
LoopClosing::Run 回环检测线程解析原创 2023-01-12 17:09:02 · 2255 阅读 · 0 评论 -
ORB-SLAM2 --- LoopClosing::CorrectLoop函数
调整位姿、融合地图点、全局优化原创 2023-01-12 16:48:18 · 1310 阅读 · 0 评论 -
ORB-SLAM2 --- LoopClosing::SearchAndFuse函数
将闭环相连关键帧组mvpLoopMapPoints 投影到当前关键帧组中,进行匹配,新增或替换当前关键帧组中KF的地图点。原创 2023-01-12 12:17:39 · 529 阅读 · 0 评论 -
ORB-SLAM2 --- LoopClosing::ComputeSim3 函数
从候选关键帧中挑选出闭环关键帧原创 2023-01-07 13:33:43 · 1242 阅读 · 1 评论 -
ORB-SLAM2 --- ORBmatcher::SearchBySim3函数
通过Sim3变换,搜索两个关键帧中更多的匹配点对原创 2023-01-07 11:47:56 · 952 阅读 · 0 评论 -
ORB-SLAM2 --- LoopClosing::DetectLoop 函数
经过一系列筛选操作筛选出当前帧mpCurrentKF的闭环候选关键帧,并将闭环候选关键帧存储在容器mvpEnoughConsistentCandidates中供其他函数使用,更新连续组关系mvConsistentGroups。原创 2023-01-06 17:58:58 · 1103 阅读 · 0 评论 -
ORB-SLAM2 --- KeyFrameDatabase::DetectLoopCandidates函数
在闭环检测中找到与该关键帧可能闭环的关键帧原创 2023-01-06 12:30:22 · 781 阅读 · 0 评论 -
ORB-SLAM2 --- LocalMapping::Run 局部建图线程解析
局部建图线程解析:处理追踪线程传来的关键帧,剔除质量不好的地图点、新增观测地图点、去除冗余关键帧,为回环检测线程传送关键帧。原创 2023-01-05 22:01:19 · 927 阅读 · 0 评论 -
ORB-SLAM2 --- LocalMapping::KeyFrameCulling函数
检测当前关键帧在共视图中的关键帧,根据地图点在共视图中的冗余程度剔除该共视关键帧。原创 2023-01-05 21:47:27 · 728 阅读 · 1 评论 -
ORB-SLAM2 --- KeyFrame::SetBadFlag函数
真正地执行删除关键帧的操作原创 2023-01-05 21:44:15 · 864 阅读 · 0 评论 -
ORB-SLAM2 --- LocalMapping::SearchInNeighbors函数
检查并融合当前关键帧与相邻帧(两级相邻)重复的地图点。原创 2023-01-05 17:52:16 · 535 阅读 · 0 评论 -
ORB-SLAM2 --- ORBmatcher::Fuse函数 --- 局部建图线程调用重载版
将地图点投影到关键帧中进行匹配和融合原创 2023-01-05 17:11:25 · 440 阅读 · 0 评论 -
ORB-SLAM2 --- MapPoint::Replace函数
替换地图点,更新观测关系。原创 2023-01-05 17:09:32 · 536 阅读 · 0 评论 -
ORB-SLAM2 --- LocalMapping::CreateNewMapPoints
本函数主要是根据词典向量匹配局部建图线程传来的关键帧与其共视程度最高的几帧进行匹配,利用这些匹配生成地图点,并将地图点存储在mlpRecentAddedMapPoints向量中待检验。原创 2023-01-05 11:21:33 · 838 阅读 · 2 评论 -
ORB-SLAM2 --- LocalMapping::MapPointCulling 函数
检查新增地图点,根据地图点的观测情况剔除质量不好的新增的地图点。原创 2023-01-04 17:32:53 · 602 阅读 · 0 评论 -
ORB-SLAM2 --- KeyFrame::UpdateConnections 函数
更新关键帧之间的连接图。更新变量mConnectedKeyFrameWeights、mvpOrderedConnectedKeyFrames、mvOrderedWeights、mpParent、mspChildrens原创 2023-01-04 11:34:21 · 694 阅读 · 0 评论 -
ORB-SLAM2 --- KeyFrame::AddConnection函数
为当前关键帧新建或更新和其他关键帧的连接权重原创 2023-01-04 10:07:18 · 411 阅读 · 0 评论 -
ORB-SLAM2 --- MapPoint::ComputeDistinctiveDescriptors 函数
计算地图点最具代表性的描述子原创 2023-01-01 21:36:09 · 642 阅读 · 0 评论 -
ORB-SLAM2 --- Tracking::Track 追踪线程解析
ORBSLAM2跟踪线程解析原创 2022-12-29 22:18:51 · 2060 阅读 · 0 评论 -
ORB-SLAM2 --- Tracking::CreateNewKeyFrame函数
创建新的关键帧。对于非单目的情况,同时创建新的MapPoints。原创 2022-12-28 22:19:55 · 819 阅读 · 1 评论 -
ORB-SLAM2 --- Tracking::NeedNewKeyFrame函数
判断当前帧是否需要插入关键帧。原创 2022-12-28 20:57:31 · 744 阅读 · 1 评论 -
ORB-SLAM2 --- Tracking::TrackLocalMap函数
在跟踪得到当前帧初始姿态后,现在对local map进行跟踪得到更多的匹配,并优化当前位姿。原创 2022-12-27 20:04:06 · 920 阅读 · 0 评论 -
ORB-SLAM2 --- Tracking::SearchLocalPoints函数解析
ORB-SLAM2 --- Tracking::SearchLocalPoints函数解析原创 2022-12-19 20:48:47 · 625 阅读 · 0 评论 -
ORB-SLAM2 --- ORBmatcher::SearchByProjection函数
ORB-SLAM2 --- ORBmatcher::SearchByProjection函数解析原创 2022-12-19 20:46:52 · 991 阅读 · 0 评论 -
ORB-SLAM2 --- Frame::isInFrustum函数
判断地图点是否在视野中。原创 2022-12-18 20:03:18 · 676 阅读 · 0 评论 -
ORB-SLAM2 --- FrameDrawer::Update函数
将跟踪线程的数据拷贝到绘图线程(图像、特征点、地图、跟踪状态)原创 2022-12-15 08:41:32 · 366 阅读 · 0 评论 -
ORB-SLAM2 --- Tracking::UpdateLocalPoints函数
更新局部关键点。先把局部地图清空,然后将局部关键帧的有效地图点添加到局部地图中。原创 2022-12-15 08:40:21 · 399 阅读 · 0 评论 -
ORB-SLAM2 --- Tracking::UpdateLocalKeyFrames函数
更新局部关键帧mvpLocalKeyFrames原创 2022-12-13 21:15:34 · 779 阅读 · 0 评论 -
ORB-SLAM2 --- Tracking::GrabImageMonocular函数解析
介绍了 Tracking::GrabImageMonocular函数的作用以及一帧如何到达追踪线程的。原创 2022-12-11 20:40:51 · 854 阅读 · 0 评论 -
ORB-SLAM2 ---- ORBmatcher::SearchForInitialization函数
单目初始化中用于参考帧和当前帧的特征点匹配。原创 2022-12-09 22:15:51 · 826 阅读 · 0 评论 -
ORB-SLAM2 ---- Frame::GetFeaturesInArea函数
单目初始化中特征点匹配函数的一个子函数,作用是利用投影法找到与第一帧中位置相近的候选匹配特征点。原创 2022-12-08 21:05:51 · 547 阅读 · 0 评论 -
ORB-SLAM2 ---- Tracking::TrackWithMotionModel函数
用最近的普通帧来跟踪当前的普通帧。根据恒速模型设定当前帧的初始位姿,通过投影的方式在参考帧中找当前帧特征点的匹配点,优化每个特征点所对应3D点的投影误差即可得到位姿。原创 2022-12-06 21:14:23 · 801 阅读 · 0 评论 -
ORB-SLAM2 ---- Tracking::UpdateLastFrame函数
ORB-SLAM2 ---- Tracking::UpdateLastFrame函数解析:更新上一帧位姿,在上一帧中生成临时地图点。原创 2022-12-05 21:34:46 · 904 阅读 · 0 评论 -
ORB-SLAM2 ---- Tracking::Relocalization函数
Tracking::Relocalization函数 重定位跟踪解析原创 2022-12-05 19:57:10 · 953 阅读 · 3 评论 -
ORB-SLAM2 ---- KeyFrameDatabase::DetectRelocalizationCandidates函数
用词袋找到与当前帧相似的候选关键帧。原创 2022-11-29 21:01:12 · 846 阅读 · 0 评论 -
ORB-SLAM2 ---- Tracking::TrackReferenceKeyFrame函数
用参考关键帧的地图点来对当前普通帧进行跟踪。原创 2022-11-25 21:51:12 · 993 阅读 · 0 评论 -
ORB-SLAM2 ---- Frame::ComputeBoW函数(TrackReferenceKeyFrame调用版)
Frame::ComputeBoW函数,以及FeatVec、BowVec解释原创 2022-11-25 21:41:13 · 1298 阅读 · 2 评论 -
ORB-SLAM2 ---- Tracking::CreateInitialMapMonocular函数
单目相机成功初始化后用三角化得到的点生成MapPoints原创 2022-11-20 21:42:42 · 878 阅读 · 0 评论 -
ORB-SLAM2 ---- Initializer::ReconstructF函数
从基础矩阵F中求解位姿R,t及三维点。原创 2022-11-20 10:54:19 · 846 阅读 · 0 评论 -
ORB-SLAM2 ---- Initializer::CheckRT函数
用位姿来对特征匹配点三角化,从中筛选中合格的三维点。原创 2022-11-20 10:04:58 · 641 阅读 · 2 评论