如何计算与均匀变换矩阵相关的滚转角,俯仰角和偏航角?
我目前正在使用以下公式,但我不确定它们是否正确.
pitch = atan2( -r20, sqrt(r21*r21+r22*r22) );
yaw = atan2( r10, r00 );
roll = atan2( r21, r22 );
Run Code Online (Sandbox Code Playgroud)
r10表示第二行和第一列.
只有当旋转顺序为:滚动,然后是俯仰,然后是偏航时,你的方程才是正确的.对于记录,与欧拉角的对应关系(相对于用变换矩阵隐式给出的参照系)如下:
鉴于这些,第一句中提到的顺序滚动,俯仰,偏航对应于由矩阵乘积获得的旋转矩阵Rz Ry Rx(按此顺序).请注意,您的公式以弧度为单位给出这些角度的值(乘以180并除以pi以获得以度为单位的值).所有旋转都相对于轴逆时针旋转.
图取自维基百科
按照你点评一下这个链接,我觉得本文可能有助于理解你指的是该程序.Matlab函数的输入应该是你的变换矩阵,如果你想要以度为单位返回角度,则返回'deg';如果旋转的顺序是z左右,则返回过时选项'zyx',然后是y ,然后围绕x.
| 归档时间: |
|
| 查看次数: |
31644 次 |
| 最近记录: |