具有任意坐标系的四元数增量

时间:2019-03-18 00:24:51

标签: 3d coordinates orientation quaternions

我正在努力将Quaternion数学知识笼罩起来,非常感谢您的帮助!

    我有一个传感器融合芯片,它产生相对于芯片坐标系的方向四元数。我将此参考轴框架称为 F 。它由 X,Y, Z 轴组成。

  • 我希望能够建立一个任意的上轴并将其值存储为相对于 F 的四元数。我将这个方向四元数称为 Qp

  • 通过使用 Qp ,我想旋转框架 F 以产生框架 F',该框架由轴组成 X',Y', Z'

  • 在此示例中,我选择了 Qp ,以使 Z'= X,X'= Z,Y'= Y

我现在要:

  • 对传感器的位置四元数进行采样
  • 将此位置转换为欧拉角
  • 保持沿三个欧拉轴的总行程。
  • 在上面的示例中,如果我绕轴 Z'旋转,则应该看到Z欧拉角相应地增加/减小。

但是,无论到目前为止我尝试了什么,我都无法获得此结果。如果我绕着 Z'轴旋转,则X欧拉值将发生变化(这与上面的 Z'= X 对应)

我的问题是:

  • 我必须对数学进行什么组合才能获得此结果?从我测得的位置中减去 Qp 似乎应该可以,但是生成的四元数始终相对于我的原始参考系 F
  • 我也希望此方法适用于任意选择的 Qp -轴 X',Y',Z'可能并不总是上面那样简单的替代方法。

如果这不是足够的信息,我将提供更多。谢谢大家的宝贵时间!

1 个答案:

答案 0 :(得分:1)

这个问题我有几个问题。首先,四元数指定了整个姿态,而您所建议的只是识别“向上”向量并不能做到这一点。作为一种方法,您需要两个向量来定义新帧。从“上”开始,您还需要一个。

无论如何,如果它返回四元数,则它们属于芯片框架,而与其他框架无关:哪个?这种语言似乎很固步自封,但是稍后在进行数学运算时会很清楚地得到回报,因此请写QF2p ==四元数表示部分“ p”的方向。芯片框架之类的。四元数将向量从码片(F)帧转换为(p)art帧。 (对不起,太学究了)(此外,尝试使用您的下标,重命名“ Qp”)。

继续:“采样传感器的四元数”您的传感器产生四元数吗?我以为您有一个可以计算给定方向的四元数的芯片。如果您有确定方向的东西,它的输出是什么?可能是另一种Quat? (对不起,很困惑)。

转换Quat-> euler很琐碎,请参阅Wikipedia,但要注意极性和四元数的定义,至少有2个。这是您需要帮助的地方吗?

“沿3个欧拉轴的总行程”是一种很好的语言,但它是非常规的语言:欧拉角通常不是“轴”,因为它不是正交的,但是您可以将它们集成在一起。

重写实验:如果绕z'旋转,则应该看到psi欧拉角发生变化。欧拉不是矢量或轴系,但我通常会分别将它们分别定为z,y,x的[psi,theta,phi]。请注意,在较小的角度中,您更喜欢[dPhi,dTheta,dPsi],因此较小的角度方向变化(四元数的一部分)与使其发生的角速率对齐。同样(恐怖),您可以选择无数的欧拉角序列,并且在选择我在此处列出的飞机时有一些“标准飞机”的假设。也许关键是,如果您在没有看到芯片设计表的情况下进行了实验,我猜想dPsi将会移动,那将是第一个Euler角。这是顺序中的第一个。您如何将其与“ X”关联? ...也许是错误的。

“我必须做什么数学?”态度减法是四元数乘法。您不能从字面上减去四元数。

最诚挚的问候。