万向节死锁(Gimbal Lock)问题
上文中以前说过,欧拉旋转的顺规和轴向定义,自然造就了“万向节死锁”问题。本文主要来探索它自然形成的原因。
陀螺仪首先。我们来了解Gimbal 到底是个什么玩意儿。以下来自***中关于Gimbal的一段引述:
平衡环架(英语:Gimbal)为一具有枢纽的装置,使得一物体能以单一轴旋转。由彼此垂直的枢纽轴所组成的一组三仅仅平衡环架。则可使架在最内的环架的物体维持旋转轴不变,而应用在船上的陀螺仪、罗盘、饮料杯架等用途上,而不受船体因波浪上下震动、船身转向的影响。
上图就是一个Gimbal装置了,它是一个陀螺仪。中间有一根竖轴,穿过一个金属圆盘。
金属圆盘称为转子,竖轴称为旋转轴。转子用金属制成,应该是了添加质量。从而增大惯性。竖轴外側是三层嵌套的圆环,它们互相交叉,带来了三个方向***度的旋转。
看着不停转来转去,有点晕,接下来看两个静态的。这两张图来自百度百科。
当中Gimbal仅仅代表陀螺仪装置中的平衡环,显然***上将它解释成“平衡环架”更为合理。
Pitch、Yaw、Roll在解释陀螺仪的工作原理之前,我先介绍一些转动的术语。在飞行器的航行中,进行XYZ三个方向旋转的旋转有专业的术语,见下图:
沿着机身右方轴(Unity中的+X)进行旋转,称为pitch。中文叫俯仰。
沿着机头上方轴(Unity中的+Y)进行旋转,称为Yaw,中文叫偏航。
沿着机头前方轴(Unity中的+Z)进行旋转,称为Roll,中文叫桶滚。
我们知道陀螺仪使用来測量平衡和转速的工具,在载体快速转动的时候,陀螺仪始终要通过自我调节,使得转子保持原有的平衡。这一点是怎样做到的?带着这个问题。我们来看一下这个古老而又神奇的装置的工作原理。
为了解释清楚问题,我自己画了一个简单的陀螺仪示意图。
(金属圆盘我就省略了,丑点儿也就别管了。
。)
这里,我把三个Gimbal环用不同的颜色做了标记,底部三个轴向,RGB分别相应XYZ。
如果如今这个陀螺仪被放在一艘船上,船头的方向沿着+Z轴。也就是右前方。
如今如果。船体发生了摇晃,是沿着前方进行旋转的摇晃,也就是桶滚。因为转子和旋转轴具有较大的惯性。仅仅要没有直接施加扭矩。就会保持原有的姿态。因为上图中绿色的活动的连接头处是能够灵活转动的,此时将发生相对旋转,从而出现以下的情形:
再次如果。船体发生了pitch摇晃,也就是俯仰。相同,因为存在相应方向的能够相对旋转的连接头(红色连接头),转子和旋转轴将仍然保持平衡。例如以下图:
最后如果。船体发生了yaw摇晃,也就是偏航,此时船体在发生水平旋转。相对旋转发生在蓝色连接头。