我用四元数转欧拉角的时候出现了一些问题。我是按偏航,俯仰,横滚的顺序解算的,动作是三个轴依次转360°。根据四元数转欧拉角的公式,俯仰角会被限制在±90°的范围里面。当超出这个范围的时候,另外两个角会转180°来补偿俯仰角的旋转。
但是问题就在这个位置,从下图中可以看出,在俯仰超出90°范围的时候,横滚角不只是到了180°,而且还出现了一个从负178°到正179°最后回到负179°跳变,真的很神奇,理论上不应该出现这个跳变的。
然后在俯仰角从-90°往正走的时候,偏航角也出现了类似的跳变。可以看到左边的四元数部分是没有跳变的。
下图为俯仰一直转360°的图,可以看到在俯仰超过正负90°的时候,这个跳变有的时候会有,有的时候又看不到,有的时候还会出现得非常频繁,有的时候有没有大佬分析一下,这个跳变是怎么造成的?有没有什么办法避免?