slam学习笔记

视觉slam框架


1、读取传感器信息,视觉slam中主要为相机图像信息的读取和预处理。
2、视觉里程计。视觉里程计的任务是估算相邻图像间相机的运动,以及局部地图的样子。
3、后端非线性优化,后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。
4、回环检测,回环检测判断机器人是否到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。
5、建图。它根据估计的轨迹,建立与任务要求对应的地图。

三维空间刚体运动

1、理解三维空间的刚体运动描述方式:旋转矩阵、变换矩阵、四元数和欧拉角。
2、掌握 Eigen 库的矩阵、几何模块,熟练编写代码实现刚体三维空间旋转平移运动。

旋转矩阵

:空间中最基本的元素,没有长度没有体积,空间中两个点连接起来就构成了向量。
:以三维空间维例(e1, e2, e3),一组线性无关的向量,即不存在全为0的实数x1,x2,x3使得x1e1+x2e2+x3e3=0,空间的基就是该空间内的一组线性无关向量组,空间内的任意一个向量都可以由该向量组线性表示,向量组内向量的个数称为该空间维数。
基底坐标:任意向量a在一组基下就有一个坐标,这里 (a1, a2, a3)T 称为 a 在此基下的坐标。坐标的具体取值,一是和向量本身有关,二是和坐标系中基的选取有关。

向量的内积:也被称为向量的点乘,结果为一个数

在这里插入图片描述

在这里插入图片描述

向量的外积:外积的结果是一个向量,它的方向垂直于这两个向量,大小为 |a| |b|sin ⟨a, b⟩,是两个向量张成的四边形的有向面积。

在这里插入图片描述
以三维空间为例e1,e2,e3为基中的线性无关向量,简化为e1(1,0,0),e2(0,1,0),e3(0,0,1)

公式中∧ 符号是反对称符号,a∧ 为反对称矩阵,反对称矩阵 A 满足 AT = −A。
在这里插入图片描述

坐标系间的欧式变换

相机视野中某个向量 p,它在相机坐标系下的坐标为 pc,而在世界坐标系下看,它的坐标为 pw,那么,这两个坐标之间是如何转换的呢?这时,就需要先得到该点针对机器人坐标系的坐标值,再根据机器人位姿变换到世界坐标系中。
在这里插入图片描述
在这里插入图片描述
矩阵 R描述了旋转本身。因此称为旋转矩阵(Rotation matrix)。SO(n) 是特殊正交群的意思。通过旋转矩阵,我们可以直接谈论两个坐标系之间的旋转变换,而不用再从基开始谈起。
在这里插入图片描述
由于旋转矩阵为正交矩阵,它的逆(即转置)描述了一个方向相反的旋转。按照上面的定义方式

/n/n
在欧氏变换中,除了旋转之外还有平移。

在这里插入图片描述
实际当中,我们会定义坐标系 1、坐标系 2,那么向量 a 在两个系下坐标为 a1, a2,它们之间的关系,按照完整的写法,应该是:

在这里插入图片描述
R12 是指“把坐标系 2 的向量变换到坐标系1

变换矩阵与齐次坐标

通过欧式变换我们可以完整地表达了欧氏空间的旋转与平移,不过还存在一个小问题:这里的变换关系不是一个线性关系。假设我们进行了两次变换:R1, t1 和 R2, t2:

那么,从 a 到 c 的变换为:
在这里插入图片描述

这样的形式在变换多次之后会显得很啰嗦。因此引入齐次坐标和变换矩阵,这是一个数学技巧:我们在一个三维向量的末尾添加 1,将其变成了四维向量,称为齐次坐标。对于这个四维向量,我们可以把旋转和平移写在一个矩阵里面,使得整个关系变成线性关系。该式中,矩阵 T 称为变换矩阵(Transform Matrix)。

在这里插入图片描述
我们暂时用 ˜a 表示 a 的齐次坐标。那么依靠齐次坐标和变换矩阵,两次变换的叠加就可以有很好的形式:

在这里插入图片描述

关于变换矩阵 T,它具有比较特别的结构:左上角为旋转矩阵,右侧为平移向量,左下角为 0向量,右下角为 1。这种矩阵又称为特殊欧氏群

在这里插入图片描述
与 SO(3) 一样,求解该矩阵的逆表示一个反向的变换:

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值