当前位置:   article > 正文

四元数转yaw、pitch、roll_四元数求pitch角

四元数求pitch角

此计算公式基于内在旋转(intrinsic)与泰特-布莱恩角(Tait–Bryan angles)。

  1. yaw = atan2(2.0*(qy*qz + qw*qx), qw*qw - qx*qx - qy*qy + qz*qz);
  2. pitch = asin(-2.0*(qx*qz - qw*qy));
  3. roll = atan2(2.0*(qx*qy + qw*qz), qw*qw + qx*qx - qy*qy - qz*qz);

关于内在旋转(intrinsic)与泰特-布莱恩角角的解释:

对于每个旋转序列,又有内在旋转(intrinsic rotations)和外在旋转(extrinsic rotations)两种方式。设有两个坐标系 OXiYiZi 和 OXjYjZj ,OXiYiZi 是固定不动的参考系,OXjYjZj 是需要被旋转的坐标系,初始时两个坐标系重合。内在旋转指每次旋转的旋转轴都是上次变换后新系 OXjYjZj 的坐标轴,外在旋转指每次旋转的旋转轴都是固定参考系 OXiYiZi​ 的坐标轴。

旋转坐标系的方法有两种:

  • 经典欧拉角(Proper Euler angle), 第一次与第三次旋转相同的坐标轴(z-x-z,x-y-x, y-z-y,z-y-z, x-z-x, y-x-y)。
  • 泰特-布莱恩角(Tait–Bryan angle), 依次旋转三个不同的坐标轴(x-y-z,y-z-x, z-x-y,x-z-y, z-y-x, y-x-z)。
     

以上的解释可以参考《坐标系旋转变换,内在旋转,外在旋转》https://www.cnblogs.com/armme/p/10596697.html

另外,旋转矩阵转yaw、pitch、roll的算法:

  1. yaw=atan2(R(2,1),R(1,1));
  2. pitch=atan2(-R(3,1),sqrt(R(3,2)^2+R(3,3)^2)));
  3. roll=atan2(R(3,2),R(3,3));

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号