![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
SLAM 基础
文章平均质量分 54
基础知识
yaoyaoqiekenaoo
这个作者很懒,什么都没留下…
展开
-
orb 初始化 如何计算H矩阵?
H矩阵的原理是什么?为什么利用这4个点就可以求解H矩阵? 因为一对点提供两个方程,H矩阵是8自由度。求解方程是怎么得到的?这个讲的比较透。https://zhuanlan.zhihu.com/p/138266214slam14讲还是更加容易记住。入手点是这个点可以被两个相机看到,所以可以由针孔模型得到像素坐标。再替换掉里面的世界系坐标即可。共面信息提供了一个约束。如何理解slam14讲中说的,等式是在非零因子下成立的。意思是,这个等式,应该是少了一个非零因子,这个因子就是点在两个相.原创 2021-03-05 14:21:49 · 539 阅读 · 1 评论 -
为什么orb中初始化要同时计算 F 和 H矩阵呢?
两个是要竞争,看哪个分数比较高。分数怎么计算?粗略的说,谁重投影误差小,分数就高。至于这个分数怎么计算,可以再看一下。为什么要竞争呢?难道F矩阵计算的不准确吗?是的,特别是在:1. 纯旋转: 实际t=0, 但是计算的结果肯定不是 0 ,导致错误;2. 视差比较小:这个时候计算结果也不理想,因为F矩阵的原理的对集几何。现在没有视差了,就不成立了。在以上两种情况下,F矩阵效果不好,只能通过H矩阵计算了。如果,也没有共面的点,那么H矩阵计算的结果也不好。会在checkRT阶段,三角化特原创 2021-03-04 20:19:47 · 251 阅读 · 1 评论 -
齐次线性方程组和非齐次线性方程组
定义齐次线性方程组:等式右侧常数项全部为0非齐次线性方程组: 等式右侧常数项不全部为02.齐次方程组的求解将系数矩阵化为行阶梯形矩阵,记全为0的行数量为r=n-R(A)。将后r个未知数分别取值为1和0,对应的形成r个解。这些r个解的线性组合即为基础解系。3.非齐次方程组的求解分为两步:1.计算特解。将增广矩阵化为行阶梯形矩阵,将r个未知数全部取值为0,得到一个特解。...原创 2018-12-05 15:09:38 · 18731 阅读 · 0 评论 -
卡尔曼滤波之公式推导
卡尔曼滤波之公式推导首先,大家都知道很熟悉的五个基本公式,但是公式背后的原理,是怎么得到的这五个公式,这个五个公式代表的具体含义是什么,本文对这部分内容进行说明。卡尔曼滤波是针对两种符合高斯分布的数据进行处理高斯分布有两个代表参数:均值和方差(如果未知数x为多变量的向量,则变成协方差矩阵)。卡尔曼滤波的核心就是利用已知的两组数据获得更加接近真实值的最优估计,卡尔曼滤波其实是一个最优估计即...原创 2019-02-11 11:21:04 · 705 阅读 · 0 评论 -
ORB 中的三角化原理 以及 如何生成新的地图点
orb初始化阶段,从E H矩阵分解得到的 R t 如何选择?checkRt 函数,计算在该Rt 情况下,三角化成功的点的数量。三角化:slam14讲中思路是:未知数只是该点在两个相机中的深度,两个未知数。只要满足对极几何,就可以求解。多视图几何,以及orb中的思路:实际的像素坐标 , 和 重投影得到的像素坐标,肯定是同向的。叉乘为0。待求解未知数为 Pw ,是4维的,因为尺度等价性。而且,在构建方程的时候,因为像素坐标是齐次,所以一个点可以提供2个方程,因为第三个可以由前面两个方程.原创 2021-03-05 11:17:25 · 759 阅读 · 1 评论 -
pnp算法
pnp算法是解决什么问题的?PnP(Perspective-n-Point)是求解 3D 到 2D 点对运动的方法。它描述了当我们知道n 个 3D 空间点以及它们的投影位置时,如何估计相机所在的位姿。2D-2D点对,就用对极几何方法求解相机姿态;3D-3D 就是ICP。当orb重定位时候,就是pnp算姿态,用的是EPNP方法。pnp算法都有哪些方法,各有什么优劣?pnp最少需要3对点就可以计算出结果。例如用三对点估计位姿的 P3P[45],直接线性变换(DLT),EPnP(Efficien原创 2021-03-05 14:42:43 · 3188 阅读 · 0 评论 -
F矩阵的自由度是多少?
E 矩阵的自由度是 5 , 线性求解条件下,自由度是 8H矩阵自由度是?F矩阵的自由度是?方阵不满秩,行列式当然是0。不满秩就是奇异,奇异就是行列式为0相比本质矩阵E,基础矩阵包含了相机内参信息K。基础矩阵F的自由度为7,9个位置参数满足尺度统一性并且F的行列式为0。为什么F的行列式为0?因为的秩为2,并且K矩阵满秩可逆。矩阵乘以可逆矩阵,该矩阵的秩不变。为什么的秩为2?因为R可逆,矩阵的秩为2。为什么矩阵的秩为2?对其进行初等变换如下:初等变换不改变矩阵的秩。也可以直接用定理.原创 2021-03-04 20:51:58 · 1738 阅读 · 1 评论 -
常见的旋转插值
1. 四元数slerp插值 - slerp 插值的原理:这里- slerp 插值的工程实现:eigen 的 slerp 函数Eigen::Quaterniond q = q0.slerp(x0,q1);2. 轴角插值已知 R1 R2,以及插值尺度 s .1) 先计算 deltaR = R1.t * R22) deltaR = ( axis, theta)3) 插值结果 = R1 * (axis, theta * s )...原创 2022-01-25 11:33:38 · 3522 阅读 · 2 评论 -
Eigen 库使用的注意事项--- 运行时报错
因为eigen库分配内存的问题,所以使用eigen库时,如下两种情况要注意1. 自定义的类中包含 eigen::Matrix4d 等固定尺寸的类型参考:eigen官方说明例如:class Foo{ ... Eigen::Vector2d v; ...}; ... Foo *foo = new Foo;需要将 EIGEN_MAKE_ALIGNED_OPERATOR_NEW 插入到代码中:class Foo{ ... Eigen::Vector4原创 2022-01-18 14:27:17 · 1798 阅读 · 0 评论 -
sim3 求解
参考吴博的ORB讲解,以及 这个网页:https://blog.csdn.net/weixin_39373577/article/details/86030981需要注意的一点是:orb代码中 虽然只有三个点,但是还是采用 特征向量的办法, 像吴博 讲解中说的。 而且,orb 代码中计算尺度的时候,使用的是非对称性的结果。...原创 2021-08-06 09:15:43 · 494 阅读 · 0 评论 -
catkin_make, cmake, catkin build区别
文章目录 1 catkin的历史1.1 Legacy Catkin Workflow1.2 Isolated Catkin Workflow 1.3 Parallel Isolated Catkin Workflow and catkin build2 cmake和cat...转载 2021-04-16 15:11:45 · 767 阅读 · 0 评论 -
cmake常用命令的一些整理
cmake常用命令的一些整理小小菜鸟程序猿关注他10 人赞同了该文章CMake 是什么我就不用再多说什么了,相信大家都有接触才会看一篇文章。对于不太熟悉的开发人员可以把这篇文章当个查找手册。1.CMake语法1.1 指定cmake的最小版本cmake_minimum_required(version 版本号)例如:cmake_minimum_required(version 2.8)1.2 定义工程名称#定义工程名称 project(项目名称)例如:project(MyTest)1.3 显示定义变量se转载 2021-04-16 14:38:09 · 262 阅读 · 0 评论 -
关于g2o编译的总结
今天主要说两个问题:1. -O3 2. 顶点是否必须被边包含1. -O3这个是编译器对你的代码进行优化,可以让代码运行的更快。 -O后面的数字越大,优化的效果越好。不过,有的编译器不支持 -O优化。g2o 使用了 -O3 优化,那么 调用g2o的库 libslam 编译时也要 -O3 对应起来,否则运行slam时候报错。2. 顶点是否必须包含比如:optimizer优化器中定义了10个vertex,但是,只有6个vertex被edge连接,剩下4个vertex没有任...原创 2021-04-15 17:43:14 · 558 阅读 · 0 评论 -
orb中删除KF的逻辑
一共涉及到三个函数:SetNotErase、SetErase、SetBadFlag两个状态量:mbNotErase、mbToBeErasedSetBadFlag只是在localmapping线程调用,SetNotErase、SetErase只是在loopclosing线程调用。SetErase内部操作其实是SetBadFlag举例如下:1.KF_a 在localmapping中被第一次执行SetBadFlag,mbToBeErased变成true,表明该KF是可以被删除的,即将被删除原创 2021-04-12 18:26:27 · 117 阅读 · 0 评论 -
pnp之 Epnp
Epnp 算法可以说在计算精度和计算成本上,已经是state of art 的算法了。参考 :【1】 https://blog.csdn.net/liu502617169/article/details/90403283【2】这个有epnp的原理详解,包括icp:https://blog.csdn.net/qq_30356613/article/details/80588134【3】这个包括orb中epnp求解部分的代码详解:https://zhuanlan.zhihu.com.原创 2021-03-05 14:44:52 · 980 阅读 · 0 评论