
SLAM
雪天枫
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解决cv_bridge和opencv之间版本匹配问题
在机器人、无人机项目中会用到ROS,linux下安装ROS时,cv_bridge默认连接的opencv版本是4.0+。但。。。很多开源项目支持的opencv版本是2.0+、3.0+,会导致编译失败。比如:error: ‘CV_RGB2GRAY’ was not declared in this scope那就需要安装新版本的opencv,并且让cv_bridge和新版本opencv正常连接匹配。网上大多数经验都是让你找到cv_bridge的cmake文件,修改opencv新版本的路径,但这种方法治转载 2021-08-22 23:04:36 · 2742 阅读 · 1 评论 -
编译kalibr踩坑之路
使用Eigen库时,遇到Eigen/***: No such file or directory的情况通常Eigen3在/usr/include或者/usr/local/include目录下;在工程使用#include <Eigen/***>时,就会遇到上述问题;解决方案:拷贝Eigen3目录下的Eigen目录到上一级目录或者使用cd /usr/local/include sudo ln -sf eigen3/Eigen EigenNUMPY宏定义为NULLnumpy/core/原创 2021-08-22 22:58:49 · 1262 阅读 · 1 评论 -
ORB-SLAM2之线程间数据传递
线程间数据传递System.cc入口函数System::System中初始化跟踪线程 //Initialize the Tracking thread //(it will live in the main thread of execution, the one that called this constructor)mpTracker = new Tracking(this, //当跟踪丢失后,用于系统复位 mpVocabulary, //字典原创 2020-05-17 22:53:34 · 685 阅读 · 0 评论 -
ORB-SLAM2之局部地图SearchInNeighbors函数
SearchInNeighbors函数数据来源:与当前关键帧共视程度最高的相邻关键帧,以及与邻帧共视程度最高的相邻关键帧;更新的信息:更新融合后的3D点,并更新共视关系;Step 1 获取数据1、获取与当前关键帧共视程度最高的相邻关键帧;2、获取与相邻关键帧共视程度最高的相邻关键帧,添加到待融合的关键帧向量中。Step 2 将当前帧的所有地图点与所有的待融合关键帧融合融合函数matcher.fuse(关键帧,地图点向量)投影当前帧的MapPoints到相邻关键帧pKFi中,并判断是否有重复的原创 2020-05-17 22:52:24 · 664 阅读 · 0 评论 -
ORB-SLAM2之局部地图CreateNewMapPoints
CreateNewMapPoints函数数据来源:与当前关键帧共视程度最高的相邻关键帧;更新的信息:成功三角化的3D点,添加到成员变量mpMap局部地图句柄。另外将生成的3D点添加到待检验的地图点队列中,进行地图点检验。Step 1 获取数据1、在处理新的关键帧函数中更新连接关系函数已经将与当前关键帧具有共视关系的关键帧进行排序,因此,此处只需要获取权值最高的几组关键帧数据即可。2、获取当前关键帧的变换矩阵:由旋转矩阵和平移矩阵组成3、获取相机中心计算世界坐标系到相机坐标系的平移向量:Rcw原创 2020-05-11 15:17:08 · 1529 阅读 · 2 评论 -
ORB-SLAM2之LocalMapping::ProcessNewKeyFrame()
LocalMapping::ProcessNewKeyFrame()函数需要处理的变量:私有成员变量std::list<KeyFrame*> mlNewKeyFrames;数据来源:Tracking::createNewKeyFrame()函数调用了局部地图中LocalMapping::InsertKeyFrame(KeyFrame *pKF)此函数,将关键帧插入到列表中,同时将终止局部BA的标志置为true。更新的信息:私有成员变量KeyFrame* mpCurrentKeyFrame原创 2020-05-11 15:15:08 · 663 阅读 · 0 评论 -
回环检测-入门词袋模型
回环检测的意义前端提供特征点的提取和轨迹、地图的初值,而后端负责对所有这些数据进行优化。回环检测解决整个SLAM过程中的累计误差,形成全局一致的轨迹和地图。回环检测的方法:基于外观(Appearance based)的几何关系。需要理解的概念:感知偏差(Perceptual Aliasing)又称假阳性(False Position FP):不一样的地点,看起来很像的两张图像;感知变异(Pe...原创 2020-04-18 23:32:39 · 1310 阅读 · 0 评论 -
从ORB-SLAM2的源码工程中学习C++编程——关键帧二
关键帧(共视图)——更新连接关系(和流程相关)/** * @brief 更新图的连接 * * 1. 首先获得该关键帧的所有MapPoint点,统计观测到这些3d点的每个关键与其它所有关键帧之间的共视程度 * 对每一个找到的关键帧,建立一条边,边的权重是该关键帧与当前关键帧公共3d点的个数。 * 2. 并且该权重必须大于一个阈值,如果没有超过该阈值的权重,那么就只保留权重最大的边...原创 2020-04-05 11:40:51 · 402 阅读 · 0 评论 -
从ORB-SLAM2的源码工程中学习C++编程——关键帧
首先会看到long unsigned int类型的数据:long占四个字节;int的尺寸和平台有关系:①在16位的系统中,int 占据2个字节②在32位系统中,占用4个字节const与static的关系关键帧——初始化函数初始化:关键帧数据库,地图,帧ID,网格用于快速匹配,位姿。KeyFrame::KeyFrame(Frame &F, Map *pMap, KeyFra...原创 2020-04-05 00:09:31 · 595 阅读 · 0 评论 -
从ORB-SLAM2的源码工程中学习C++编程——关键帧数据库
关键帧数据库构建关键帧数据库,可以联系链表等常用数据结构的构建过程:创建、增加元素、删除元素、清理。首先需要明确数据存储的数据类型:以关键帧作为数据库的元素。这个地方需要理解两个概念:单词(词库)和关键帧。单词(词库):预先构建好的。...原创 2020-04-04 14:08:01 · 625 阅读 · 0 评论 -
g2o图优化应用
参考链接那么,g2o最基本的类结构是怎么样的呢?我们如何来表达一个Graph,选择求解器呢?我们祭出一张图: 这个图第一次看,可能觉得有些混乱。但是随着g2o越用越多,你会发现越来越喜欢这个图……现在请读者跟着我的顺序来看这个图。先看上半部分。SparseOptimizer 是我们最终要维护的东东。它是一个Optimizable Graph,从而也是一个Hyper Graph。一...转载 2020-02-22 11:45:07 · 245 阅读 · 0 评论 -
相机标定——单目、双目
双目标定https://www.cnblogs.com/polly333/p/5013505.html#include "opencv2/calib3d/calib3d.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include <vector>#incl...原创 2020-02-18 15:20:54 · 485 阅读 · 1 评论 -
单目相机成像模型——针孔相机模型
本节主要注意四个坐标:世界,相机,归一化相机,像素。针孔相机模型相机坐标转换成像素坐标,由内参数矩阵决定。相机位姿决定世界坐标转换成相机坐标:即外参数矩阵内参数矩阵K为3X3矩阵,对于三维空间点,旋转矩阵R和平移矩阵t构成的外参数矩阵T为4X4矩阵,为了统一维度信息,对相机坐标进行归一化处理,得到归一化相机坐标。注:归一化的Z有可能小于1,因此此处归一化处理时,应该注意。流程:世...原创 2020-01-01 00:15:30 · 2208 阅读 · 0 评论 -
ORB-SLAM: a Versatile and Accurate Monocular SLAM system---阅读笔记(one)
ORB-SLAM: 一种多功能、高精度的单目SLAM系统摘要 本文提出一种无论在大场景、小场景,室内、室外环境下都能实时运算的基于特征的单目SLAM系统。原创 2019-09-10 21:47:15 · 2444 阅读 · 0 评论 -
ORB-SLAM: a Versatile and Accurate Monocular SLAM system---阅读笔记(two)
TRACKING跟踪这一部分,描述跟踪线程的步骤,处理来自相机的每帧图像。在几个步骤中提到的相机位姿优化包含在附录中描述的单纯的运动BA中。A ORB Extraction ORB特征提取我们以尺度因子为1.2的8个尺度级别提取FAST角点。对于512x384到752x480像素的图像分辨率,适合提取1000个角点,对于更高像素,例如在KITTI数据集中1241x376像素,适合提取2000...原创 2019-09-10 22:59:11 · 254 阅读 · 0 评论 -
ORB-SLAM: a Versatile and Accurate Monocular SLAM system---阅读笔记(three)
VI Local Mapping 局部映射这部分,我们描述了使用每个新关键帧 KiK_iKi 的本地映射执行的步骤。A KeyFrame Insertion关键帧插入首先我们更新可视图,为关键帧集 KiK_iKi 增加一个新的节点,并利用其他关键帧更新从共享映射点产生的边。我们更新生成树,利用带有最多公共点的关键帧链接关键帧集 KiK_iKi 。然后计算关键帧的代表词袋,这将有助于数据...原创 2019-09-11 23:35:22 · 230 阅读 · 0 评论 -
ORB-SLAM: a Versatile and Accurate Monocular SLAM system---阅读笔记(four)
VII LOOP Closing回环检测原创 2019-09-12 22:57:10 · 247 阅读 · 0 评论 -
ORB-SLAM: a Versatile and Accurate Monocular SLAM system---阅读笔记(five)
Experiments不详细介绍试验过程!A. System Performance in the NewCollege DatasetB. Localization Accuracy in the TUM RGB-D BenchmarkC. Relocalization in the TUM RGB-D BenchmarkD. Lifelong Experiment in the TU...原创 2019-09-12 23:20:06 · 171 阅读 · 0 评论 -
ORB-SLAM2:an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras——阅读笔记(一)
ORB-SLAM2:一个用于单目、双目、RGB-D的开源SLAM系统摘要:我们提供ORB-SLAM2,一个用于单目、双目、RGB-D的完整SLAM系统,包括地图重用、回环检测、重定位。从室内的小型手持设备到工厂中的无人机和城市中的汽车等多样性的环境中,ORB-SLAM2都能够在标准CPU中实时运行。基于BA(束调整)的后端优化能够实现精度达到公制尺度的精确轨迹估计,用于单目和双目。系统包含一个轻...原创 2019-09-23 21:47:51 · 422 阅读 · 0 评论 -
ORB-SLAM2:an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras——阅读笔记(二)
III ORB-SLAM2用于双目和RGB-D相机的ORB-SLAM2建立在单目基于特征的ORB-SLAM上,其主要组成被总结。Fig. 2显示系统的概述图。系统包含三个并行线程:tracking跟踪 通过寻找和局部地图的特征匹配以及应用纯运动BA最小化重投影误差,利用每帧图像定位相机位姿;Local mapping局部建图 执行局部BA,管理局部地图并优化局部地图;loop clo...原创 2019-09-24 22:25:49 · 400 阅读 · 0 评论 -
Bags of Binary Words for Fast Place Recognition in Image Sequences------阅读笔记
Bags of Binary Words for Fast Place Recognition in Image Sequences摘要一种新的方法用于基于FAST+BRIEF特征词袋的视觉位置识别。首先,建立了一个离散二值描述符空间的词汇树,并使用该树来加速几何验证的对应关系。使用完全一样的词汇和设置,在不同的数据集中呈现没有假阳性的竞争性结果。包含特征提取在内,在拥有26300张图片...原创 2019-09-05 23:29:54 · 2970 阅读 · 0 评论