SLAM LECTURE 3:三维空间刚体运动
L3 三维空间刚体运动
§3.1 旋转矩阵
§3.1.1 内外积Recap
- 内积:对于
,
- 外积:
其中
§3.1.2 坐标系间的欧式变换
旋转中,设某个单位正交基
两边同时左乘
其中
n为旋转矩阵的集合定义如下:
其中SO(n)是特殊正交群(Special Orthogonal Group)的意思。
平移中,直接相加即可,记作
因此,把旋转和平移合到一起,有
完整地描述了一个欧氏空间的坐标变换关系。
实际上,对于坐标系1、坐标系2,你们向量
其中,
§3.1.3 变换矩阵与齐次坐标
考虑到变换关系非线性,多次变换后数学式会很复杂,因此引入齐次坐标和变换矩阵,重写式(3.6):
在三维向量的末尾添加1,变成了四维向量,成为齐次坐标,从而将变换变成线性关系,矩阵
关于变换矩阵
该矩阵的逆表示一个反向的变换:
同样,我们用
§3.3 旋转向量和欧拉角
§3.3.1 旋转向量
旋转矩阵用9个参数和一些限制条件来表示仅有3个自由度的旋转,不够紧凑,因而提出使用一个三维向量来表示旋转,其方向与旋转轴一致,而长度等于旋转角,这种向量被成为旋转向量(Axis-Angle)
考虑某个旋转对应的旋转矩阵为
从旋转向量到旋转矩阵的转换过程由罗德里格斯公式(Rodrigues’s Formula)表明,公式如下:
从一个旋转矩阵到旋转向量的计算过程分两步走。对于转角
因此:
关于转轴
因此,
tip:旋转向量具有奇异性,
§3.3.2 欧拉角
以ZYX为例,将任意旋转分解成以下3个轴的转角:
- 绕物体Z轴旋转,得到偏航角yaw
- 绕旋转之后的Y轴旋转,得到俯仰角pitch
- 绕旋转之后的X轴旋转,得到滚转角roll
此时可以使用
但是存在一个重大缺点,会出现万向锁问题(Gimbal Lock),即当俯仰角pitch = ±90°时第一次旋转与第三次旋转将使用同一个轴,从而丢失了一个自由度,这被称为奇异性问题。
§3.4 四元数
§3.4.1 定义
一个四元数
其中
有时,四元数也可以用一个标量和一个向量来表示,
其中,
§3.4.2 运算
现有两个四元数
- 加减法(数乘类似)
- 乘法:每项相乘相加,整理可得
需注意,不满足交换律
- 模长
且满足
- 共轭
四元数共轭与自身相乘,会得到一个实四元数,其实部为模长的平方:
- 逆
因此,四元数和自己的逆的成绩为实四元数
对于单位四元数,其逆和共轭是一个量。
同时,乘积的逆具有和矩阵的相似性质:
§3.4.3 用四元数表示旋转
我们可以用四元数表达对一个点的旋转。假设有一个空间三维点
首先,把三维空间点用一个虚四元数来描述:
则旋转后的
§3.4.4 四元数到其他旋转表示的转换
设
可证明
于是可以得到
代入矩阵可得
矩阵的右下角即给出了从四元数到旋转矩阵的关系:
要求四元数到旋转向量的转换公式,类似地可求得:
§3.5 相似、仿射、射影变换
欧式变换保持了向量的长度和夹角,而下面几种变换会改变外形。
§3.5.1 相似变换
比欧式变换多了一个自由度,允许物体进行缩放,其矩阵表示为
旋转部分多了一个缩放因子
§3.5.2 仿射变换
仿射变换只要求
三维的仿射变换有12个自由度:
§3.5.3 射影变换
左上角