我想根据旋转矩阵计算欧拉角,以便找出与该旋转关联的方向。为此,我正在使用 MATLAB 和函数 rotm2eul,它首先提供关于 x 轴的旋转,然后是关于 y 轴的旋转,最后是关于 z 轴的旋转。
我正在使用一个包含 1000 帧的信号,并且为每个帧计算一个旋转矩阵,以及三个欧拉角。但是,当我要查看欧拉角曲线时,如下图所示,有一些“跳跃”。
在技术 1 上,我认为它从 -180º 跳到 180º,这应该是相同的。事实上,情节的上半部分似乎是下半部分的延续。因此,在这种情况下,我认为我可以减去 360º 到上部以获得绘图。但我不确定我这样做是否是在伪造结果。
在技术 2 上,它以与前一个不同的原因进行跳跃。我认为这一定是因为与 y 轴相关的角度 达到 90º 这应该是边界情况。但在这种情况下,我不知道我应该如何更正数据,或者像以前一样,如果我想更正情节是伪造欧拉角结果。
最佳答案
技巧 2:这是一个 Gimbal lock ,欧拉角的已知特征。你无法完全避免它。您可以更改旋转顺序,但它会出现在另一个位置。
关于matlab - 从旋转矩阵计算欧拉角 : boundary cases,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38856336/