【问题标题】:Quaternion deltas with Arbitrary Coordinate System具有任意坐标系的四元数增量
【发布时间】:2019-08-08 08:16:17
【问题描述】:

我正在努力解决一些四元数数学问题,非常感谢您的帮助!

  • 我有一个传感器融合芯片,它产生相对于芯片坐标系的方向四元数。我将把这个参考轴框架称为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' 轴可能并不总是像上面那样简单替换。

如果这些信息还不够,我会提供更多信息。感谢大家的宝贵时间!

【问题讨论】:

    标签: 3d coordinates orientation quaternions


    【解决方案1】:

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

    无论如何,如果它返回四元数,它们是相对于其他框架的芯片框架:哪一个?这种语言看起来很生硬,但稍后在进行数学运算时会得到清晰的回报,因此请编写 QF2p == 四元数来表示部分“p”w.r.t 的方向。芯片框架什么的。四元数将向量从芯片 (F) 帧转换为 (p) 艺术帧。 (对不起,太迂腐了)(另外,尝试使用您的下标,重命名“Qp”)。

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

    convert Quat --> euler is trivial see wikipedia,但要注意极性和四元数定义,至少有 2 个。这是您需要帮助的地方吗?

    “沿 3 个欧拉轴的总行程”很好但非常规语言:欧拉角通常不是“轴”,因为不是正交的,但您可以整合它们...

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

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

    最好的问候。

    【讨论】:

      猜你喜欢
      • 2014-09-03
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 2016-05-28
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多