vslam
文章平均质量分 93
vslam
陋室逢雨
leatherwang@foxmail.com
欢迎交流!
展开
-
【SVO代码】(二)角点评分
SVO中FastDetector::detect()中再提取角点后,会使用shiTomasiScore()计算一下这个角点评分,这个得分越高,则特征越优先,那这个得分是怎么得到的呢?下面进行推导.harris角点 在介绍Shi-Tomasi之前需要了解下harris角点,这里只给出关键的点以便于后面理解. 自相关函数: c(x,y;Δx,Δy)=∑(u,v)∈W(x,y)w(u,v)(I...原创 2018-08-07 16:35:13 · 1579 阅读 · 6 评论 -
【SVO代码】(一)从头到尾
基于帧间`4x4`的图像块的灰度不变形来优化相机位姿,这与直接法很像,直接法使用的是一个像素点,接着使用`8x8`的光流进一步优化关键点的位置,经过这一步特征点的位置就很精确了,最后通过构造重投影误差优化相机的位姿和路标点的深度,这与特征点法很像,SVO结合了直接法和特征点法,因此,称它为半直接法原创 2018-08-05 15:12:39 · 6501 阅读 · 0 评论 -
【ORB-SLAM2代码】(五)DBoW2词袋模型
参考:【泡泡机器人SLAM原创专栏-回环检测】DBoW2库详解、SLAM笔记(七)回环检测中的词袋BOWorb-slam在SearchByBoW()函数中做特征匹配时,用到词袋模型BoW来加速匹配过程,不仅如此,在重定位和闭环检测中,也要使用这个BoW,所以很有必要搞明白其原理.1、视觉词袋模型特征点是由兴趣点和描述子表达的,把具有某一类特征的特征点放到一起就构成了一个单词(word)...原创 2018-10-28 21:19:15 · 7540 阅读 · 2 评论 -
ORB-SLAM2代码(四)特征点匹配
orb-slam作为一款优秀的特征点slam方法,其特征点匹配好坏相当重要,直接关系到建图和定位的准确度。1、特征点提取orb特征点是对fast角点的改进,通过加入尺度和旋转的属性,使得orb特征点具备了尺度和旋转不变性.1.1 特征点数目每一金字塔层选取特征点理论总数目nfeatures,随着金字塔层数越高(分辨率越低),按照等比数列下降.1.2 fast角点在提取特征之前,先要获...原创 2018-10-26 20:56:17 · 14103 阅读 · 1 评论 -
【ORB-SLAM2代码】(三)定位
设置当前帧的参考关键帧 TrackLocalMap() 函数,UpdateLocalKeyFrames() 函数选择共视程度最高的关键帧作为当前帧的参考关键帧.UpdateConnections过程 首先获得该关键帧的所有MapPoint点,统计观测到这些3d点的每个关键与其它所有关键帧之间的共视程度,对每一个找到的关键帧,建立一条边,边的权重是该关键帧与当前关键帧公共3d点的个数。 ...原创 2018-09-13 20:46:13 · 4042 阅读 · 1 评论 -
【ORB-SLAM2代码】(二)建图
mDescriptor属性ComputeDistinctiveDescriptors() 由于一个MapPoint会被许多相机观测到,因此在插入关键帧后,需要判断是否更新当前点的最适合的描述子. 先获得当前点的所有描述子,然后计算描述子之间的两两距离,最好的描述子与其他描述子应该具有最小的距离中值Visible属性表示: * 1. 该MapPoint在某些帧的视野范围内,通过Fram...原创 2018-09-04 14:28:12 · 6527 阅读 · 0 评论 -
【ORB-SLAM2代码】(一)线程调度
local mapping线程停止(进入睡眠状态) 需要满足以下两个条件时:loop closing请求停止local mappingtracking已经完成关键帧的插入标志位:mbStopRequested 用于local mapping与loop closing线程之间的调度 LoopClosing线程,CorrectLoop()函数体执行前先调用RequestStop...原创 2018-05-29 10:45:46 · 3646 阅读 · 1 评论 -
【basalt】(一)3D点参数化
basalt 使用2D-dir和inverse-depth对3D点进行参数化,相比VINS只优化逆深度的方式,这种参数化方式更加合理,host帧对点的方向观测确实应该优化一下1、3D点参数化XYZ形式的3D点参数化:P=[XYZ1]P=\begin{bmatrix}X\\ Y\\ Z \\1\end{bmatrix}P=⎣⎢⎢⎡XYZ1⎦⎥⎥⎤表示成逆深度的形式:P=[X/dY/dZ/d1/d],d=X2+Y2+Z2P=\begin{bmatrix}X/d \\ Y.原创 2020-11-15 12:43:32 · 932 阅读 · 0 评论 -
【刚体运动几何】(一)刚体速度转换
参考:《A Mathematical Introduction to Robotic Manipulation》疑问:刚体的速度只有在选定坐标系时才有谈论意义,比如一台小车可以看作是一个刚体,其上有三个传感器,Camera有一个速度,IMU有一个速度,轮子有一个速度,首先它们的速度是不同的(比如把地球看作一个刚体,地心的速度与地球表面的速度是不同的),那么这些速度的关系是什么呢?VIO中为何不使用Camera系而是IMU作为body系,如果使用Camera作为body系,IMU的测量值(角速度和.原创 2020-10-07 15:38:38 · 6708 阅读 · 3 评论 -
点、向量与旋转向量
参考: 矩阵分析,slam十四讲向量 表示从原点指向某处的一个箭头,不要将向量和它的坐标两个概念混淆,向量是空间中一样东西,比如 aa\boldsymbol a,这里 aa\boldsymbol a 并不是与若干实数相关联的,只有当我们指定这个三维空间中某个坐标系时,才可谈论该向量在此坐标系下的坐标. 即,在取定一组基后,线性空间中的元素与坐标(也就是一个向量)一一对应.旋...原创 2020-10-07 14:53:31 · 2236 阅读 · 1 评论 -
欧拉角与旋转矩阵的转换关系
欧拉角因为其奇异性,虽然在优化和插值的不会使用,但是当我们对别人描述一个旋转的过程是怎么样的时候,欧拉角还是很有用的,比如,做无人机姿态控制的时候使用的就是欧拉角,但是搞明白欧拉角是怎么回事确实是一件头疼的事,所以就写下了这篇总结,希望对大家理解欧拉角有所帮助需要区分每次旋转是绕固定轴旋转的,还是绕旋转之后的轴旋转的,如果不特殊指明,下面的讨论都是指:绕旋转之后的轴旋转的。不要局限于表示旋...原创 2019-10-16 20:24:22 · 47869 阅读 · 17 评论 -
里程计航迹推演与IMU预积分
IMU预积分,难以理解的地方主要是,雅可比的计算、怎么通过迭代的方式得到协方差的、使用deltaBias更新预积分是什么鬼其实,这与...原创 2019-09-15 13:27:42 · 3091 阅读 · 1 评论 -
【MVG】(二)RANSAC计算单应矩阵
多视图几何、orb-slam2注释版、【程序员眼中的统计学(11)】卡方分布的应用orb-slam2中在初始化的时候会同时估计H矩阵和F矩阵,使用的都是DLT算法,即根据一组匹配点(如,八点法、四点法),直接使用SVD求得线性解,而不是使用优化的方式,所以求得H举着或者F矩阵,跟选取的这组点有很大关系,如果这组点全部都是内点还好,如果存在外点那么得到H矩阵就会偏差很大,而这种情况是很常见的,...原创 2018-10-31 14:39:40 · 4552 阅读 · 2 评论 -
VSLAM小结
>> 经典vSLAM模型 参考:slambook p24(slam问题形成) 1. 运动方程 2. 观测方程>> 整个视觉slam分为前端、原创 2018-07-11 10:06:07 · 2014 阅读 · 0 评论 -
VSLAM之单目相机选型
相机选型时出现的参数的含义 1) 像元尺寸(Pixel size) 像元尺寸指芯片像元阵列上每个像元的实际物理尺寸,通常的尺寸包括14um,10um, 9um , 7um , 6.45um ,3.75um 等。像元尺寸从某种程度上反映了芯片的对光的响应能力,像元尺寸越大,能够接收到的光子数量越多,在同样的光照条件和曝光时间内产生的电荷数量越多。对于弱光成像而言,像元尺寸是芯片灵敏度的一种表...原创 2018-06-07 17:50:01 · 8630 阅读 · 1 评论