之前我讲了旋转矩阵,但用这个表示旋转并不直观.如果将一个物体的旋转分解为依次绕着三个坐标轴的旋转,就很直观了.
这种方法就叫欧拉角.使用欧拉角这种方法必须规定旋转优先级,比如规定为z->x->y,那么物体先绕z转动,转动时,x和y也跟着转动,第二步,绕转动后的位姿的x轴转动时,y跟着转动,z轴当然也跟着转动,但是z轴不更新,因为z轴优先级最高,意思是说,以后说起z轴的时候还是指上一位姿时的z轴.第三步,再绕转动后的物体位姿的y轴转动.
第二步是导致著名的万向锁的关键.比如,我规定优先级为z->x->y,想通过三次绕轴旋转,从下图的黑色矩形位姿(好像一张扑克牌平放在桌上)转到蓝色位姿:
第一步简单,绕z轴,根本不用动.
第二步:绕x轴转,我得转90°:
因为z优先级最高,所以我们现在的三个轴中,z=z1.x=x2,y=y2.
第三步,该绕y轴旋转了,y现在=y2.但我们发现它和z=z1是重合的,y轴和z轴的作用一样了.这样绕y轴旋转总不能使得扑克牌的长边离开桌子.这就是所谓的万向锁.我们第二步旋转了90°才导致了两轴重合的现象,万向锁就是在此种情况下才会出现.
看完本篇文章可以再看这个视频.就比较清晰了.