Matrix 平面上四元数的胫骨角度,欧拉角

Matrix 平面上四元数的胫骨角度,欧拉角,matrix,quaternions,euler-angles,Matrix,Quaternions,Euler Angles,我遇到了一个从IMU获取胫骨角度的情况。 传感器给我四元数和欧拉角(XYZ阶)。 我需要知道,基于一个参考平面,平面XZ上的Z角(方向Z向上) 我的协议是让人站着,从那个位置得到一个校准的四元数,然后当人走路时,我仍然需要知道这个角度,就像传感器仍然定位那个平面一样 我进入了一个精确地解释了我的问题和在等式6上的应用的例子 根据我的理解,我需要从每个测量四元数中得到一个DCM矩阵,然后在校准过程中应用欧拉角的方向单位向量,并应用到该矩阵,然后应用乘法结果的分量X和Z的除法 基于此,我的步骤是:

我遇到了一个从IMU获取胫骨角度的情况。 传感器给我四元数和欧拉角(XYZ阶)。 我需要知道,基于一个参考平面,平面XZ上的Z角(方向Z向上)

我的协议是让人站着,从那个位置得到一个校准的四元数,然后当人走路时,我仍然需要知道这个角度,就像传感器仍然定位那个平面一样

我进入了一个精确地解释了我的问题和在等式6上的应用的例子

根据我的理解,我需要从每个测量四元数中得到一个DCM矩阵,然后在校准过程中应用欧拉角的方向单位向量,并应用到该矩阵,然后应用乘法结果的分量X和Z的除法

基于此,我的步骤是:

1-获得校准的四元数Q1并计算我的欧拉角的方向向量。 2-当传感器测量时,我将Q1的方向余弦矩阵应用于校准方向向量我的坐标变换 3-计算传感器坐标系上该方向向量的组件X和Z的Atan


然而,我得到了不同的结果,我不明白这个方程到底在做什么。

你不是在寻找扭曲角度,而是在四元数坐标系上寻找单位向量

  • 将校准后的横摇、俯仰和偏航保存为单位矢量(请注意,有12种方法可以进行此转换,您可能会看到这一点)。如果您说它的XYZ顺序是:

    • Mx[0,0]=Cosy*Cosz
    • Mx[0,1]=-Cosy*Sinz
    • Mx[0,2]=Siny
    • Mx[1,0]=Cosz*Sinx*Siny+Cosx*Sinz
    • Mx[1,1]=Cosx*Cosz-Sinx*Siny*Sinz
    • Mx[1,2]=-Cosy*Sinx
    • Mx[2,0]=-Cosx*Cosz*Siny+Sinx*Sinz
    • Mx[2,1]=Cosz*Sinx+Cosx*Siny*Sinz
    • Mx[2,2]=Cosx*Cosy
  • 将同一传感器的每个四元数转换为DCM矩阵

  • 将方向向量乘以每个DCM矩阵
  • 现在你们有了所有方向的单位向量。为了得到角度,你可以得到这些向量的点积的ACO,或者像你分享的论文一样计算Atan(Dcmx/Dcmx)

  • 看这里谢谢你的帮助,@minorlogic我不知道我不是在寻找扭曲角度,而是在平面XZ上我的向量的角度。这个解决方案对我有点帮助。非常感谢你的帮助。这正是我所需要的。