从旋转矩阵计算欧拉角:边界情况

时间:2016-08-09 16:45:53

标签: matlab rotation rotational-matrices euler-angles

我想从旋转矩阵计算 Euler angle ,以便找出与该旋转相关联的方向。为此,我使用MATLAB和函数 rotm2eul ,它首先给出关于x轴的旋转,然后关于y轴,最后是z轴。

我正在使用1000帧的信号,并且对于每个帧,计算旋转矩阵,以及三个欧拉角。但是,当我要看到欧拉角的曲线时,有一些“跳跃”,如下图所示。

enter image description here

enter image description here

在技术1上,我认为它从-180º跳到180º应该是相同的。事实上,情节的上半部分似乎是下部的延续。所以在这种情况下,我认为我可以减去360º到上部来获得情节。但我不确定我是否这样做我伪造结果

在技术2上,它以前一个原因的不同原因进行跳转。我认为必须是因为与y轴相关的角度达到90°,这应该是一个边界情况。但在这种情况下,我不知道我应该如何更正数据,或者像以前一样,如果我想纠正图是伪造欧拉角的结果。

1 个答案:

答案 0 :(得分:1)

技术2:这是欧拉角的已知特征Gimbal lock。你无法完全避免它。您可以更改旋转顺序,但它将显示在另一个位置。