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

时间:2019-01-11 14:05:47

标签: matrix quaternions euler-angles

我遇到了从IMU获取胫骨角度的情况。 传感器给我四元数,还有欧拉角(XYZ阶)。 我需要根据参考平面知道平面XZ上的Z角(z向上)

我的协议是让人员站立并从该位置获取经过校准的四元数,然后在人员行走时,我仍然需要根据传感器是否仍在定位该平面来了解该角度。

我碰到了interesting paper,它准确地解释了我的问题以及在等式6上的应用。

据我所知,我需要从每个测量四元数中获取一个DCM矩阵,然后在校准期间从欧拉角应用方向单位矢量并将其应用于该矩阵,然后对结果的分量X和Z进行除法运算乘法。

基于此,我的步骤是:

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

但是,我得到了不同的结果,我不了解该方程式的实际作用。

1 个答案:

答案 0 :(得分:0)

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

  1. 采用已校准的滚动,俯仰和偏航并将其另存为单位矢量(请注意,有12种方法可以进行此转换,您可能会看一下link)。如果您说它的XYZ顺序,则得到此:

    • Mx [0,0] =舒适* Cosz;
    • Mx [0,1] = -Cosy * Sinz;
    • Mx [0,2] =辛尼;
    • 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 *舒适;
  2. 将同一传感器的每个四元数转换为DCM矩阵

  3. 将方向向量乘以每个DCM矩阵
  4. 现在,您在各个方向上都有单位矢量。为了获得角度,您可以获取这些向量的点积的Acos或像您共享的纸一样计算Atan(Dcmx / Dcmx)