视觉SLAM十四讲——ch3回顾与总结(三维刚体运动)

视觉SLAM十四讲——ch3的回顾总结以及课后习题的解决

  • 0. 部分基础知识
    • 0.1 概括
    • 0.2 数学语言
    • 0.3 提到的一些知识
  • 1. 旋转矩阵R和变换矩阵T
    • 1. 旋转
    • 1.2 变换矩阵
  • 2. 旋转向量
  • 3. 欧拉角
  • 4. 四元数

写在最前面:
在学习之前首先感谢b站博主lessLe6,小姐姐讲的十分容易理解。

首先了解坐标的变换,因此有了矩阵帮助理解,但是由于矩阵太过冗余因此提出了旋转向量;又因为旋转向量不直观,故有了欧拉角;但是欧拉角又存在万向锁的情况会导致奇异性,因此便有了四元数
在视觉SLAM中,我们用的也是四元数。

0. 部分基础知识

在学习之前最好已经有一些数学基础,这是我的一些总结:https://blog.csdn.net/qq_44164791/article/details/131503895?spm=1001.2014.3001.5501
除此之外,还有一些与视觉SLAM有关的基础知识在下面列举

0.1 概括

  1. 三维空间是由3个轴组成,则一个空间点的位置可以由3个坐标确定,也就是任何一个点都存在于我们的三维坐标系中。
  2. 我们的研究主要是针对于刚体,对于一个刚体,不仅有位置,还有自身的姿态。相机可以看成三维空间中的刚体,则位置就是说相机在空间中的哪个地方,姿态是指相机的朝向(例:相机处于空间(0,0,0)处,朝向正前方)
    说明:

刚体: 在运动和受力作用后,形状和大小不变,而且内部各点的相对位置不变的物体

0.2 数学语言

如果想用数学语言对我们的概括进行描述的话,首先我们需要知道几个概念:

点: 没有长度和体积
向量: 带指向性的箭头
坐标: 可以理解为位置
坐标系: 构成线性空间的一组基,分为左手系和右手系

在视觉SLAM中,我们将相机视为点,SLAM是实时定位与建图,在这个过程中,相机肯定是运动的,运动就会有变化,此时我们就将相机的运动用向量表示;为了有更好的数学对其进行量化,我们将相机放入世界坐标系中,就可以得到相机在世界坐标中的坐标,就可以进一步用数学语言描述相机的变化。

0.3 提到的一些知识

视觉SLAM十四讲——ch3回顾与总结(三维刚体运动)_第1张图片
视觉SLAM十四讲——ch3回顾与总结(三维刚体运动)_第2张图片
到目前为止就可以正式学习啦

1. 旋转矩阵R和变换矩阵T

之所以会提出来这两个矩阵,是因为我们将相机视为一个点,它存在于世界坐标系中。但是我们SLAM的完整功能的实现,需要将相机拍摄到的图片进行处理。因此就涉及到相机坐标系了,然而世界坐标系和相机坐标系是不同的坐标系,于是就有了世界坐标系和相机坐标系如何进行转换的问题。我们将这个变换称为欧氏变换
视觉SLAM十四讲——ch3回顾与总结(三维刚体运动)_第3张图片
欧氏变换时由旋转和平移组成。先讨论旋转再讨论平移,这里利用单位正交基来表示坐标系。

1. 旋转

假设: 某坐标系 ( e 1 , e 2 , e 3 ) (e_1,e_2,e_3) (e1,e2,e3),经过一次旋转后变成了 ( e 1 ′ , e 2 ′ , e 3 ′ ) (e^{'}_1,e^{'}_2,e^{'}_3) (e1,e2,e3)
对于一个固定的 a ⃗ \vec{a} a ,我们探讨它的坐标如何变化。(注: 这里的固定指的是向量本身的长度方向不变)
由于旋转前后向量是固定不变的,因此有:
视觉SLAM十四讲——ch3回顾与总结(三维刚体运动)_第4张图片
左乘初始坐标系的转置,则有:
视觉SLAM十四讲——ch3回顾与总结(三维刚体运动)_第5张图片
上式中的3×3矩阵记为 R R R,我们称为旋转矩阵。旋转矩阵是一个正交矩阵而且其行列式为+1或者-1 可以利用旋转矩阵描述两个坐标的变换

  1. a ⃗ 1 = R 12 a ⃗ 2 \vec{a}_1 = R_{12}\vec{a}_2 a 1=R12a 2说的是由坐标系2变换到坐标系1
  2. a ⃗ 2 = R 21 a ⃗ 1 \vec{a}_2 = R_{21}\vec{a}_1 a 2=R21a 1说的是由坐标系1变换到坐标系2
  3. 由1、2可得 R 21 = R 21 − 1 = R 12 T R_{21}=R^{-1}_{21}=R^{T}_{12} R21=R211=R12T

此时,我们只描述了旋转,再加上平移的话就可以完全描述两个坐标系的刚体运动了。
加上平移之后:
a ′ = R a + t a' = Ra + t a=Ra+t

1.2 变换矩阵

现在出现一个问题就是当连续变动坐标系的时候,狮子就会变得很复杂,比如说: c = R 1 a + t 1 , c = R 2 b + t 2 c=R_1a+t_1,c=R_2b+t_2 c=R1a+t1,c=R2b+t2 a a a c c c就成了 c = R 2 ( R 1 a + t 1 ) + t 2 c=R_2(R_1a+t_1)+t_2 c=R2(R1a+t1)+t2,这样看起来就很复杂,此时,我们可以将旋转和平移结合,给它增加一个维度,如下所示:
视觉SLAM十四讲——ch3回顾与总结(三维刚体运动)_第6张图片
这样就可以得到以下式子:
在这里插入图片描述
通过将旋转和平移放在同一个矩阵中,得出变换矩阵,同样的也可以进行反向变换,即:
视觉SLAM十四讲——ch3回顾与总结(三维刚体运动)_第7张图片
总的来说

  1. 三维的旋转矩阵有九个量,但一次旋转只有三个自由度。因此这种表达方式是冗余的。
  2. 而且旋转矩阵自身带有约束:它必须是个正交矩阵,且行列式为1。变换矩阵也是如此。当我们想要估计或优化一个旋转矩阵°变换矩阵时,这些约束会使得求解变得更困难。
    那么,接下啦就要探究更紧凑的表示

2. 旋转向量

3. 欧拉角

4. 四元数

你可能感兴趣的:(SLAM,#,理论学习,数码相机,人工智能,计算机视觉)