Computing Euler angles from a rotation matrix (翻译)

来源:互联网 发布:矩阵lu分解例题3*3 编辑:程序博客网 时间:2024/06/01 10:04

一、论文翻译

“从旋转矩阵中计算欧拉角”

论文链接:http://www.staff.city.ac.uk/~sbbh653/publications/euler.pdf

在翻译之前,先分析旋转矩阵,如下图从二维空间开始计算

二维变换

关于Z轴的旋转矩阵关系是:

这里写图片描述

则在三维下,刚体绕三个坐标轴的旋转矩阵为:

这里写图片描述

这里写图片描述

根据R矩阵接下来分析欧拉角的取值:

1)R(3,1) ~= ±1

这里写图片描述

这里写图片描述

这里写图片描述

2)R(3,1) = ±1

- 这里写图片描述

-

对于R(3,1) = ±1时,这种现象称为万向节死锁(Gimbal Lock)。

对于此现象可以看该链接:

http://www.cnblogs.com/driftingclouds/p/6540222.html

这里写图片描述

沿着机身右方轴(+X)进行旋转,称为pitch,叫俯仰角。
沿着机头上方轴(+Y)进行旋转,称为Yaw,叫偏航角 。
沿着机头前方轴(+Z)进行旋转,称为Roll,叫翻滚角。

当翻滚角到90度时,其与偏航角会重合,而使陀螺仪的自平衡作用只有偏航和俯仰起作用,这时候的现象就是万向节死锁。故而用从旋转矩阵求得欧拉角,还是从在一定的局限性。

——————————————————

二、从四元数来解决

在这里通过旋转矩阵转化为四元数,在从四元数转化为欧拉角,可以有效的避免万向节死锁问题。

可查看博客:
http://blog.csdn.net/u012750702/article/details/72229117