纳金网

标题: Gimbal Lock (万向节锁/常平架锁) [打印本页]

作者: 王者再临    时间: 2014-8-9 16:46
标题: Gimbal Lock (万向节锁/常平架锁)
Gimbal Lock (万向节锁/常平架锁)是指在欧拉角描述的旋转过程中,一条旋转轴和另外一条旋转轴重合,导致丧失一个旋转自由度的现象。

在使用欧拉角描述的三维旋转中,存在预定的三条绝对旋转轴(用世界坐标给定),通过预定的顺序先后绕三条旋转轴旋转一定角度,得到一个最终朝向。例如,可以约定将右手系坐标系的坐标轴作为旋转轴,并且以X轴--> Y轴--> Z轴的顺序进行旋转。在这个约定下,如果物体绕Y轴旋转了90°(或-90°),那么物体绕X轴的旋转跟绕Z轴的旋转的效果是一样的,这就导致了一个旋转自由度的丧失,即出现了Gimbal Lock。

Gimbal Lock并没有表明欧拉角是“错误”的。欧拉角是一种简单直观的描述方式,有其有武之地。例如,对于静态的物体,可以通过欧拉角来设定其朝向:图4中的朝向,虽然在Y=90°的条件下无法从初始朝向旋转而来,但可以通过其它一组(x,y,z)旋转值取得,或者通过更改欧拉角旋转的次序而取得。又例如,在第一人称射击游戏里,镜头一般只有“抬头、低头”和“左看、右看”这两组动作,而没有“歪头看”的动作,也就是说镜头只会绕两条轴旋转,这种情况下不会出现Gimbal Lock。但是,对于绕三个轴动态自由旋转的物体,用欧拉角就不合适了,这时用轴角表示法(Axis Angle),矩阵或者四元数(Quaternion)可以避免Gimbal Lock。注意,通过欧拉角来生成矩阵或四元数依然会导致Gimbal Lock,要避免这种现象,必须通过矩阵或四元数自身的旋转特性进行计算。
附一则关于Gimbal Lock的视频讲解:

http://v.youku.com/v_show/id_XNzkyOTIyMTI=.html

作者: hyui    时间: 2014-8-9 18:59
Good video !
作者: leductai2014    时间: 2014-8-9 22:30
thank you so much
作者: leductai2014    时间: 2014-8-9 22:37
thank you so much
作者: hariboot    时间: 2014-8-9 23:02
这个帖子很受益啊谢谢分享
作者: wucnj    时间: 2014-8-11 09:40
感谢分享!!!
作者: ShikiLin    时间: 2014-8-12 10:18
好厉害的样子




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5