
ORB-SLAM
文章平均质量分 84
雨幕丶
这个作者很懒,什么都没留下…
展开
-
ORB-SLAM2源码学习:总结篇(二)三大线程
图像金字塔和灰度质心法保证特征点的尺度不变性和旋转不变性,四叉树筛选保证特征点均匀分布。原创 2025-03-11 23:25:42 · 966 阅读 · 0 评论 -
ORB-SLAM2源码学习:总结篇(一)
跟踪线程中的SLAM模式和纯定位模式就是在可视化界面进行修改的。③然后计算图一特征点和在图二找到的最佳匹配点的角度差,通过直方图统计 特征点的角度差值主流的前三个区域(因为所有的特征点的角度变化应该是一致的),其余的匹配认为是误匹配。对pKF和F中的特征点进行快速匹配,不属于同一node的特征点直接跳过匹配(只有属于同一node,才有可能是匹配点);对当前关键帧和 共视关键帧 中的特征点进行快速匹配,不属于同一node的特征点直接跳过匹配(只有属于同一node,才有可能是匹配点);原创 2025-03-11 00:38:46 · 868 阅读 · 0 评论 -
ORB-SLAM2源码学习(八):LoopClosing线程
目录1.回环检测 DetectLoop()2.Sim3 计算 ComputeSim3()2.1 构造Sim3Solver对象2.2 Sim3具体计算2.3 将闭环匹配上的关键帧以及相连关键帧的MapPoints投影到当前关键帧进行投影匹配 SearchByProjection()3.闭环矫正 3.1 矫正当前帧的共视关键帧位置和地图点3.2 地图点融合 SearchAndFuse()3.3 更新共视图3.4 本质图优化3.5 全局BA优化loopclosing线程在 实例化 ORB_SLAM2::Sys原创 2025-03-09 17:06:51 · 996 阅读 · 0 评论 -
ORB-SLAM2源码学习(七):LocalMapping线程
LocalMapping线程在实例化ORB_SLAM2::System对象的时候就已经运行了。线程函数Run()中会一直执行死循环(因为这个时候等待处理的关键帧为空)。直到Tracking线程的最后生成了关键帧,并且放到等待处理的关键帧列表mlNewKeyFrames,才真正开始LocalMapping线程。1.将关键帧插入地图中 ProcessNewKeyFrame()①从 mlNewKeyFrames 中取出列表最前面的关键帧,随后马上把列表中的该关键帧删除,然后对该关键帧进行处理;原创 2025-03-08 01:00:01 · 889 阅读 · 0 评论 -
ORB-SLAM2源码学习(六):相机跟踪(局部地图跟踪和关键帧创建)
目录1.局部地图跟踪1.1 更新局部关键帧UpdateLocalKeyFrames1.2 更新局部地图点(来自局部关键帧)UpdateLocalPoints()1.3 投影匹配2. 对比四种跟踪方式以及使用的投影匹配3.关键帧创建3.1 判断是否需要创建新关键帧: NeedNewKeyFrame()3.2 关键帧的创建CreateNewKeyFrame()当初始位姿估计成功(参考关键帧来跟踪、恒速模型跟踪、重定位跟踪跟踪成功)后需要进行局部地图跟踪TrackLocalMap()。初始位姿估计只是跟踪一帧得到原创 2025-03-06 00:04:36 · 1069 阅读 · 0 评论 -
ORB-SLAM2源码学习(四):单目初始化
从代码框架中知道GrabImageMonocular()函数主要做了两件事:对当前帧进行构造(Frame)和调用Track()对当前帧进行跟踪。前者已经介绍过了,本篇博客是对Track()函数中单目初始化的介绍。函数主要分为三步:Code:Tracking.cc初始化成功条件:①前后两帧提取的特征点大于100 ②两帧匹配的特征点对大于100ORB-SLAM2中特征点匹配均采用了各种技巧减小特征点匹配范围,特征点通过描述子匹配后会进行旋转一致性检测,并且要求最佳匹配特征点要明显优于次优匹配点。关键点匹配原创 2023-10-18 16:55:07 · 97 阅读 · 0 评论 -
ORB-SLAM2源码学习(二):Tracking跟踪
这篇文章是对Tracking内容的介绍。原创 2025-02-27 02:44:29 · 402 阅读 · 0 评论 -
ORB-SLAM2源码学习(三):构造Frame
目录1.提取OBR特征ExtractORB()1.1计算图像金字塔ComputePyramid()1.2 提取特征点ComputeKeyPointsOctTree()1.2.1 CELL网格1.2.2 四叉树筛选特征点1.3计算描述子computeDescriptors()2.去畸变UndistortKeyPoints()3.计算去畸变后图像边界ComputeImageBounds()4.特征点分配AssignFeaturesToGrid()提取图像的ORB特征点,提取的关键点存放在mvKeys,描原创 2023-07-16 20:37:35 · 49 阅读 · 0 评论 -
点云地图变为八叉树地图
上图是对fr1_desk数据集进行八叉树地图的结果。不知道为什么我这里生成的地图只有蓝色(octomap提供了。原创 2023-03-02 10:49:16 · 1891 阅读 · 4 评论 -
SLAM面试笔记
本质矩阵:尺度等价性,5个自由度,最少可以用5对点求解;基础矩阵:尺度等价性、秩为2,7个自由度,八对点求基础矩阵;单应性矩阵:尺度等价性,8个自由度,一对点提供两个约束方程,需要四对点求单应性矩阵。描述了两个平面的映射关系,已知两个平面的图像坐标p1和p2,则p2 = H p1:只有旋转没有平移的时候可以用单应性矩阵求R。因为t为0,E也将为0,导致无法求解R。PnP(P3P)是3D-2D的位姿求解方式,即需要已知匹配的3D点和图像2D点。估计相机位姿时通常需要PnP给出相机初始位姿,原创 2022-10-12 19:20:18 · 564 阅读 · 0 评论 -
ORB-SLAM2源码学习(五)相机跟踪(位姿估计)
本篇博客对Track()中的第二部分,相机跟踪(位姿估计)进行介绍。这部分代码嵌套了大量if-else,根据下图可以理清跟踪的具体流程:1.第一个阶段是初始位姿估计,用,它们的目的 是保证能够“跟的上”,但估计出来的位姿可能没那么准确。2.第二个阶段是,将当前帧的局部关键帧对应的局部地图点投影到该帧,得到更多的特征点匹配关系,对第一阶段的位姿再次优化得到相对准确的位姿。3.第三个阶段是对关键帧的插入。原创 2022-05-22 18:22:04 · 1102 阅读 · 0 评论 -
ORB-SLAM2源码学习(一):代码框架
Code// step 1 读取时间戳文件while(!string s;if(!double t;ss >> t;// 保存时间戳i<nTimes;i++)原创 2022-05-13 16:52:50 · 2059 阅读 · 0 评论 -
evo的使用
记录evo的一些命令:1.画轨迹图 evo_traj tum FrameTrajectory.txt -p多个轨迹图画到一起evo_traj tum FrameTrajectory.txt FrameTrajectory_TUM_Format.txt --ref FrameTrajectory.txt -p2.绝对位姿误差的计算evo_ape tum 数据1.txt 数据2txt -va -p3.相对位姿误差的计算evo_rpe tum 数据1.txt 数据2tx原创 2022-04-24 18:08:50 · 1611 阅读 · 0 评论 -
Octomap在ros中显示
参考:Octomap 在ROS环境下实时显示_熊猫飞天的博客-优快云博客_rviz显示maphttps://blog.youkuaiyun.com/crp997576280/article/details/74605766关于代码以及相关依赖的安装参考上述博客,记录运行命令:roscorerosrun publish_pointcloud publish_pointcloud//运行正确的话会显示相机和话题信息:path = /home/hope/test/test_octomap/test.原创 2022-04-18 10:21:21 · 1118 阅读 · 0 评论 -
ORB-SLAM2在线构建稠密点云图
参考:ORB-SLAM2 在线构建稠密点云(室内RGBD篇)_Maxen0604的博客-优快云博客ORB-SLAM2 在线构建稠密点云(二)_熊猫飞天的博客-优快云博客_orbslam2稠密点云①在src中的orb_slam2打开终端②返回到有build devel src 的目录打开终端: cd ../..③播放TUM数据集的rosbagrgbd_dataset_freiburg1_xyz 数据集打开点云,如果只看到红绿蓝三个方块,按R重置视角如果点云没有颜色,请按5显示颜色。原创 2022-04-16 20:39:12 · 3416 阅读 · 5 评论 -
ORB-SLAM2 稠密点云地图
ORB-SLAM2构建的是稀疏点云图,这篇文章是复现高博关于ORB-SLAM2的稠密点云地图参考:ORB SLAM 2 + 构建点云地图 复现 - 简书 (jianshu.com)https://www.jianshu.com/p/5e7b8358893f关于代码下载参考上面文章,主要是在编译的时候遇到一些问题。(编译前把ORB-SLAM2中的Vocabulary文件夹和他里边的 ORBvoc.txt.tar.gz文件拷贝过来)首先把ORB_SLAM2_modified/Thir...原创 2022-04-08 20:43:22 · 4354 阅读 · 0 评论 -
运行ORB-SLAM2
关于使用数据集运行ORB-SLAM3的一些笔记参考:GitHub - raulmur/ORB_SLAM2: Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilitieshttps://github.com/raulmur/ORB_SLAM2相关的库文件和数据集下载参考readmeORB-SLAM3的 example 文件下有单目、双目、RG..原创 2022-04-07 20:57:08 · 1692 阅读 · 7 评论 -
在ROS使用usb深度相机跑ORBSLAM3
关于orbslam3的代码以及安装配置参考下面这篇文章(12条消息) 在ROS中使用usb摄像头跑ORB SLAM2_Goding_learning的博客-优快云博客https://blog.youkuaiyun.com/Goding_learning/article/details/52950993上面文章使用的是单目相机 我使用的是乐视深度相机 关于驱动安装参考下面文章(12条消息) Uubuntu16.04安装华硕ASUS Xti...原创 2021-11-02 09:44:08 · 2785 阅读 · 9 评论