欧拉旋转中的Gimbal Lock理解

三维旋转矩阵戳这里【1】 http://blog.csdn.net/deng_sai/article/details/21169997

or 这里【2】http://insaneguy.me/2015/03/25/rotation_matrix_and_quaternions/

视频链接戳这里【3】 http://v.youku.com/v_show/id_XNzkyOTIyMTI=.html


Gimbal Lock是发生在欧拉旋转上的一个现象,Euler旋转,x,y,z坐标系,是最符合常识的旋转方式,

什么是Euler旋转:

在【1】中有详细介绍,旋转变换可以归结为若干个沿着坐标轴旋转的组合,组合个数不超过三个并且两个相邻的旋转必须沿着不同坐标轴。所以可以用三个沿着坐标轴旋转的角度来表示变换,为Euler角。


旋转变换不可交换,有12种表示方式,分别为:XYZ、XZY、XYX、XZX、YXZ、YZX、YXY、YZY、ZXY、ZYX、ZXZ、ZYZ。此处的坐标系为物体坐标系。物体为刚体。XYX因为能够满足相邻坐标轴不能相同。


注意不可交换,所以有先后顺序之分(程序中)。可以理解为视频【3】中的里外层之分。


哎,重点来了!看着视频理解,外面的旋转变换会导致里面的坐标轴发生变换,但是里面的变换不会引起外面的坐标轴发生变化,注意理解这句话。

视频中(YXZ,以下均为此顺序)的绕Y旋转会导致XZ轴变化,但是X影响Z不会影响Y,Z不会影响YX。因此,如果旋转X±90°,那么Y轴方向不变,但是会改变Z轴方向,导致YZ轴同向。此时保持X值不变,那么改变Z或者Y的效果相同。

如果这里还不理解,那么,恢复到原始位置,即物体坐标系与世界坐标系相同,如果旋转X=30之后保持X不变,此时很明显,YZ不共线,旋转Y与Z并不是相同的效果。

Gimbal Lock分析如上所述。总结就是,其源自Euler旋转原理,此原理旋转变量不可交换,所以有先后之分,所以可以改变后两个轴而第一轴方向不变,所以产生轴共线,即Gimbal Lock。

又想到一点,如果只遵循旋转变量不可交换而相邻旋转轴可以沿着同一坐标轴,那又会产生YX共线这种现象甚至XYZ同轴(此时不再遵循欧拉旋转定理,没有Gimbal Lock这种说法了,虽然很像)

你可能感兴趣的:(学习之路)