万向锁问题,看了下百度知乎,居然,很少有说清楚的,想起自己第一次接触的时候,也是一头雾水,特此解释。
1.什么是万向锁问题。
欧拉角顺序有很多,当中比较常用的 一种,便是用“偏航-俯仰-滚转”(yaw-pitch-roll)三个角度来描述一个旋转的。由于它等 价于 ZYX 轴的旋转,我们就以 ZY X 为例。假设一个刚体的前方(朝向我们的方向)为 X 轴,右侧为 Y 轴,上方为 Z 轴,见下图 。那么,ZY X 转角相当于把任意旋转分解成 以下三个轴上的转角:
1. 绕物体的 Z 轴旋转(任意),得到偏航角 yaw;
2. 绕旋转之后的 Y 轴旋转(90度),得到俯仰角 pitch;
3. 绕旋转之后的 X 轴旋转(任意),得到滚转角 roll
于是,第三次的旋转轴和第一次的旋转轴方向相反成180度,于是,偏航,滚转的作用一样,相当于少了一个维度。
现象出来了,问题在哪里那?继续往下看。
2 万向锁危害在哪里?
欧拉角旋转变换为T=Rx(θx)Ry(θy)Rz(θz)。如θy=90度时:
-
θx和θz 的作用一样。
假如:知道最终状态,求变换参数,
θy=90
θx:无穷多个
θz:无穷多个∂T/∂x, ∂T/∂z 不存在,系统有奇异点。用程序计算会报错,除非定义特别规则。