位姿估计(一):三维空间中旋转的表示形式
三维空间中旋转的表示形式主要包括以下四种:
- 旋转矩阵 (Rotation Matrix)
- 旋转向量 (Rotation Vector)
- 欧拉角 (Euler angle)
- 四元数 (Quaternion)
表示类型 | 特点 |
---|---|
Euler | xyz每个轴分别是多少度 (pitch, yaw, roll) |
RMat | 旋转矩阵: 用于3D点的矩阵运算 |
Rvec | 旋转向量: 旋转作为自变量进行优化求解 |
四元数 | 用于游戏场景: 比如动画两个关键帧之间的插值 |
一、旋转矩阵
- 旋转矩阵是一个行列式为1的正交矩阵;反之,行列式为1的正交矩阵也是一个旋转矩阵。
- 行列式为1的正交矩阵(正交矩阵:矩阵的逆等于转置
R_inv = R^T
from world to camera --> from camera to world)
二、旋转向量
- 旋转矩阵不够紧凑,且旋转矩阵自带约束不利于优化求解
- 任何旋转可以用一个旋转轴 n 和一个旋转角 θ 来刻画:对应的旋转向量为θn
- 由旋转向量到旋转矩阵的过程由罗德里格斯 (Rodrigues's Formula) 来实现
三、欧拉角
- Pitch, Yaw, Roll分别对应xyz轴的旋转角度(for human reading)
- 欧拉角转为旋转矩阵(Euler2RMat)
四、四元数
TODO
参考资料
- 《视觉SLAM十四讲》Chapter3 三维空间刚体运动
- 欧拉角与旋转矩阵相互转换:https://programming-surgeon.com/en/euler-angle-python-en/
- Scipy.spatial库:https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.transform.Rotation.html