从零开始学习SLAM(五):极几何与极约束

文章参考计算机视觉life

前备知识

概念

在这里插入图片描述

几何关系:

上图中:
极平面(Epipolar plane):点c0, c1, p三点确定的平面;
极点(Epipoles): c0 c1 连线与两个平面的交点
基线(Baseline):c0 c1的连线
极线(Epipolar line):极平面与两像平面的交线
旋转矩阵:R
平移矩阵:t
旋转平移矩阵:T
内参:焦距,归一化坐标
外参:旋转、平移矩阵

向量叉乘和点乘的概念:

叉乘只在三维空间中有定义,比如两个向量 a和b 的叉乘写作 a x b,它是与向量 a, b都垂直的向量,其方向通过右手定则决定。
在这里插入图片描述
点乘:
a * b = ||a||* ||b|| *cos(θ)
因此如果两个互相垂直的向量点乘,cos(θ) = 0,点乘结果也为0。
在这里插入图片描述

极约束推理

上图表示的是一个运动的相机在两个不同位置的成像,其中:

左右两个平行四边形分别是相机在不同位置的成像平面C0, C1分别是两个位置中相机的光心,也就是针孔相机模型中的针孔P是空间中的一个三维点,p0, p1分别是P点在不同成像平面上对应的像素点。

如果将点P沿着C0-P0所在的直线移动,你会发现P在左边相机的成像一直不变,都是P0,这时候P在右边相机的成像点p1是一直在变化的

现在我们把极平面中C0-C1-P0-P1单拎出来,看下面的图,由于C0-C1-P-P0-P1都是共面的,所以得到结论一:
结论1
也就是说 一个同时垂直于C0C1与C1P1的向量也垂直于C0P0
p0, p1都是图像上的二维点,不过,这里我们会把它变成三维的方向向量来考虑我们假设一个归一化的图像平面,该平面上焦距f =1 ,因此我们可以定义在以C0为原点的坐标系下
在这里插入图片描述
而在以C1为原点的坐标系下
在这里插入图片描述
事实上,你在C0-C1-p0-p1组成的极平面上,保证在这里插入图片描述的方向不变,在极平面上随便移动,结论1中等式都成立。同样的道理,在极平面上,保证
在这里插入图片描述

方向不变,在极平面上随便移动,结论1中等式仍然都成立。

p0在以C0为原点的参考坐标系,p1在以C1为原点的参考坐标系,所以我们还是需要转换坐标系。这里我们把所有点的坐标都转换到以C0为原点的坐标系。前面说过这些向量都是方向向量和向量起始位置无关,所以这里坐标系变换只考虑旋转就可以。我们记 R 为从C1坐标系到C0坐标系的旋转矩阵

小白:那么 RP1 就是P1在以C0为原点的C0坐标系了,所以在C0坐标系下结论一可以改写为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

已知:p0TEP1 = 0

本质矩阵 (Essential Matrix) 和基本矩阵 (Fundamental Matrix)

在这里插入图片描述

学习SLAM(Simultaneous Localization and Mapping)是一个相对复杂的过程,但是你可以按照以下步骤开始学习: 1. 学习基础知识:首先,你需要了解机器人感知、运动控制和地图构建的基本概念。熟悉概率和统计的基本概念也是非常有帮助的,因为SLAM经常使用到这些方法。 2. 学习传感器:了解常用的传感器,如激光雷达、摄像头和惯性测量单元(IMU),以及它们的工作原理、数据处理方法和误差模型。 3. 学习SLAM算法:掌握常见的SLAM算法,如扩展卡尔曼滤波(EKF)、粒子滤波(PF)和图优化。理解这些算法的原理和实现方式是非常重要的。 4. 编程实践:选择一种编程语言(如C++或Python)并开始实践编写SLAM算法的代码。使用开源库,如ROS(Robot Operating System)或PCL(Point Cloud Library)可以加速你的学习过程。 5. 实验和调试:通过实验和调试来验证你的SLAM算法。使用模拟器或真实的机器人进行实验,分析结果并调整算法参数以优化性能。 6. 阅读论文和参考资料:定期阅读与SLAM相关的最新研究论文和参考资料,了解最新的算法和技术发展。 7. 实际项目:最终,尝试应用你所学的知识到实际项目。参与开源项目或者参加机器人比赛等活动,将帮助你更深入地理解和实践SLAM技术。 需要注意的是,SLAM是一个广泛而复杂的领域,需要持续学习和实践才能真正掌握。所以,耐心和持之以恒的学习态度是非常重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值