码迷,mamicode.com
首页 > 其他好文 > 详细

万向节死锁(Gimbal Lock)

时间:2015-08-11 22:46:19      阅读:436      评论:0      收藏:0      [点我收藏+]

标签:

  网上也有不少关于万向节死锁的文章,但写的都比较繁琐,这个问题只需知道个概念即可。

  在机器人学中这个问题一般被称为动力学奇点(Kinematic singularity)。如图1,可以看到连接坐标轴的有三个旋转关节,旋转关节1是绕X6轴旋转的,旋转关节2是绕Y6轴旋转的,旋转关节3是绕Z6轴旋转的。我们现在可以将三个旋转关节看成一个整体,相当于手腕,因为手腕也就是三个自由度。那么为什么把这个称为动力学奇点呢?我们做个小小的变化,我们将整个结构绕Y6轴向外旋转90度。这个时候旋转关节1旋转关节2是在一条直线上的,X6Z6是重合的。这就出现状况了,因为我们失去了一个自由度,我们这个时候只能绕X6轴或者Y6轴旋转,Z6轴“消失”了。

技术分享

 

图1

  下面介绍图形学中的情况。如图2,我们先将坐标系绕z轴旋转30度,然后绕y轴旋转90度,然后绕x轴旋转40度(方向图中都有标识),最终得到最右边的红色坐标。我们把整个过程记为(30,90,-40)。然后我们可以发现其实我们只要绕z轴旋转70度,然后再绕y轴旋转90度,也能达到最后边的效果。我们把这个过程记为(70,90,0)。那么为什么(30,90,-40)=(70,90,0)?这个看起来只是一个位置的两种途径,并没有太大的问题。但是细心的人可以发现,这其实跟上面的机器人学中的动力学奇点是一样。本来我用三个自由度完成的旋转用两个自由度就可以完成了。追其根本,就是因为我们旋转了一个90度,让x轴和z轴重合了,导致自由度“消失”了。这就是万向节死锁问题。这个问题的是不可避免的,一个较好的办法就是用四元数代替欧拉角

技术分享

 

图2 

万向节死锁(Gimbal Lock)

标签:

原文地址:http://www.cnblogs.com/caster99/p/4722203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!