Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动

注:本文是阅读了高翔博士的slam 14讲所记的笔记,内容大多来自
其书。

一个刚体(在SLAM中可简化理解为相机)在三维空间中的运动使用平移旋转来描述。

1.相机的旋转和平移如何描述:先说旋转:

:设某个单位正交基 (e1,e2,e3) (相当于不变的世界坐标系)经过一次旋转,变成了 (e′ 1,e′ 2,e′ 3)(相当于相机的坐标系)。那么,对于同一个向量 a(注意该向量并没有 随着坐标系的旋转而发生运动),它在两个坐标系下的坐标为 [a1,a2,a3]T 和 [a′ 1,a′ 2,a′ 3]T。 根据坐标的定义,有:
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
但我们想知道的是两个坐标之间的关系,形式应为:a=()a’
注:a和a’为坐标, ()里应为某种运算关系。所以对上式同时左乘:[e1T,e2T,e3T],得到下面的式子:
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
R即为旋转矩阵。旋转矩阵可以用来描述相机的旋转

思考:现实中的旋转(360度以内),不考虑平移等因素,是以某个轴为中心的旋转,那么既然旋转矩阵可以描述旋转,是不是可以理解为360度以内的任意旋转都可以用矩阵描述呢》答案是可以!且这些旋转矩阵构成的集合被称为SO(3),3表示是在三维中。slam目前也只研究到三维,这个集合SO(3)即属于李群(李群包含了SO(3))。
旋转矩阵的性质:
1)行列式为1 的正交矩阵
2)因为为正交阵,所以RT=R-1,描述的是一个和R相反的旋转。
至此,相机的旋转的描述可以说已经成功了。加上平移,可以写成下面的式子:
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
注:上式描述的是:世界坐标系中的向量 a,经过一次 旋转(用 R 描述)和一次平移 t 后,得到了 a′。

好了,大功告成,可然而不。。。。。

因为存在问题:就是相机在三维空间的移动不是只有一次,而是很多次,以两次为例:
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
注1:上面的式子通过添加最后一维,即用4个数来表达3维向量,多一个自由度但允许我们写成线性的形式,如三维空间的点(1,1,1)和(2,2,2)代表不同的点,但是,用四维齐次坐标来表示三维(同理用三维齐次也可以来表示二维,可以想一想)则(1,1,1,1)和(2,2,2,2)即(n, n,n,n)为三维空间的同一点)注:(必须最后一维化为1)

注2:上式中的T即为变换矩阵由上式可以看出,T中左上角为旋转矩阵R,右上角为平移向量,它一样也构成了一个群SE(3)。

那么到现在三维的空间运动描述总算完了吧,并不。。。

思考:

问题一:旋转矩阵R为33的矩阵,9个量,一次旋转3个自由度;变换矩阵44,16个量,表达了6个自由度(旋转加平移)
说明这种表达是不合理的,找更加简洁的方式。

问题二:旋转和变换矩阵有自身约束,行列式为1 的正交阵。而在估计相机的位姿即是计算和估计旋转和变换矩阵,这些约束会使得求解变得困难。

所以提出了旋转向量,一个三维向量表达旋转,六维向量表达变换。
现实生活中,一个旋转可以用一个旋转轴,一个旋转角度,来描述。旋转向量也如此:设旋转向量与旋转轴一致,向量的长度描述旋转角

所以除了旋转矩阵R,一个三维向量即可以描述旋转。

既然旋转矩阵与旋转向量都可以描述旋转,那肯定有关系。关系如下:
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
注:什么是反对称 ^,以下做介绍:
对于三维空间中的两个向量a,b 除了四则运算和数乘外还存在内积和外积的关系:

  1. 内积:高中时即接触过:描述的是向量间的投影关系:
    Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
  2. 外积:
    Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
    第一个等于我们高中就接触过,向量的叉乘(当时我们的老师是这样叫的)后面的计算我完全忘记了,但肯定是对的。这里的a为一个向量,a^却是一个矩阵了。(向量叉乘向量等于了矩阵与向量的乘法)

外积性质:
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
由一个旋转矩阵到一个旋转向量的计算:
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
那到现在是不是就可以结束这一讲了呢?可并没有。。。。
高老师又提出了:
1)使用欧拉角可以方便我们直观的去理解三维空间的旋转。但是有万向锁的缺点,而在SLAM中也很少用欧拉角来表示旋转,但是可以用来验证自己的算法是否正确。
2)旋转矩阵——冗余;
旋转向量——具有奇异性。
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
所以提出了四元数:四元数在表达三维空间的旋转时,既是紧凑的,还没有奇异性,所以引出了四元数。
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
对于四元数:
1)一个虚四元数可以对应一个空间点。
2)能用单位四元数表示空间中任意的一个旋转。

那怎么用四元数表示旋转呢?

试想一个三维空间点p = [x,y,z], 定义一个旋转转轴为n,角度为&,该点经过这个旋转之后的坐标为p’ = [x’,y’,z’],则:

用旋转矩阵表示:p = Rp’。
用四元数则为:
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
注:式3.19为下图

旋转向量四元数之间的关系:
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动
旋转矩阵四元数的关系:
Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动

四元数的运算包括:加减乘、共轭、模长、逆、数乘、点乘。

注:以上的关于刚体在三维空间的运动(旋转、平移)
都是欧式变换。把相机想象成一个刚体,但实际中,三维空间还有其他的变换:相似、仿射和投影。因为涉及到形变过于复杂,本书不表。