SLAM十四讲学习笔记
第3讲 三维空间刚体运动
3.1 旋转矩阵
外积的方向垂直于这两个向量,大小为 |a| |b| sin ⟨a, b⟩
相机运动是一个刚体运动,它保证了同一个向量在各个坐标系下的长度和夹角都不会发生变化。这种变换称为欧氏变换。
矩阵 R 描述了旋转本身。因此它又称为旋转矩阵。旋转矩阵是行列式为 1 的正交矩阵。所以,我们可以把旋转矩阵的集合定义如下:
SO(n)={R∈Rn×n|RRT =I,det®=1}.
SO(n) 是特殊正交群(Special Orthogonal Group),旋转矩阵的逆(即转置)描述了一个相反的旋转。
世界坐标系中的向量 a,一次旋转和一次平移
两次变换:
这样的形式在变换多次之后会过于复杂。因此,我们要引入齐次坐标(线性)和变换矩阵重写式:
T 称为变换矩阵(Transform Matrix)。
我们总可以把所有坐标除以最后一项,强制最后一项为 1,从而得到一个 点唯一的坐标表示(齐次坐标):
两次变换的累加
T这种矩阵又称为特殊欧氏群(Special Euclidean Group):
3.2 实践:Eigen
3.3 旋转向量和欧拉角
问题:SO(3) 的旋转矩阵有九个量,但一次旋转只有三个自由度。因此这种表达方式是冗 余的。旋转矩阵自身带有约束。
假设有一个旋转轴为 n(单位向量),角度为 θ 的旋转,它对应的旋转向量为 θn。由旋转向量到旋转矩阵的过程由罗德里格斯公式(Rodrigues’s Formula )表明:
因此,转轴 n 是矩阵 R 特征值 1 对应的特征向量。求解此方程,再归一化,就得到了旋转轴。
偏航-俯仰-滚转”(yaw-pitch-roll) ZYX 。
欧拉角的一个重大缺点是会碰到著名的万向锁问题(Gimbal Lockx):在俯仰角为 ±90◦ 时,第一次旋转与第三次旋转将使用同一个轴,使得系统丢失了一个自由度(由三次 旋转变成了两次旋转)。这被称为奇异性问题 。欧拉角不适于插值和迭代 。
3.3 四元数
不带奇异性的三维向量描述方式
一个四元数 q 拥有一个实部和三个虚部。
单位四元数能够表达三维空间的旋转。假设某个旋转是绕单位向量 n = [nx , ny , nz ]T 进行了角度为 θ 的旋转,那么这个旋转的四元数形式为:
3.4.2 四元数的运算
类似复数,四则运算、数乘、求逆、共 轭。
3.4.3 用四元数表示旋转
矩阵描述 p′ = Rp
3.5 * 相似、仿射、射影变换