旋转表示、转换及更新
本文内容均默认使用右手定则,且旋转向量在局部坐标系中表达(即右乘)
- 代码实现
1. 旋转表示
1.1 旋转向量
- 用
表示绕着单位轴 旋转 弧度,用 表示旋转角速率
1.2 旋转矩阵
旋转行为:
约束:
微分:
1.3 四元数
表示:
只有单位四元数才能表示旋转
四元数乘法:
!!!四元数乘法不满足乘法结合律
旋转行为:
约束:
微分:
2. 旋转转换
2.1 旋转向量与旋转矩阵
2.1.1 从旋转向量转换到旋转矩阵的转换
式(9)的第二行即罗德里格斯公式
2.1.2 从旋转矩阵转换到旋转向量的转换
2.2 旋转向量与四元数
2.2.1 从旋转向量到四元数的转换
将
上式中存在
到纯四元数(pure quaternion)的隐含转换
2.2.2 从四元数到旋转向量的转换
2.3 旋转矩阵与四元数
2.3.1 从旋转矩阵到四元数的转换
2.3.2 从四元数到旋转矩阵的转换
3. 旋转更新
- 在优化姿态时,通常计算一个旋转向量增量
,再用它更新当前的估计值 或
参考文献
- 《视觉SLAM十四讲》
- Sola J. Quaternion kinematics for the error-state Kalman filter[J]. arXiv preprint arXiv:1711.02508, 2017.
- 《机器人学中的状态估计》
- 《多旋翼飞行器设计与控制》
- 深蓝学院《从零手写VIO》课程