3d 具有任意坐标系的四元数三角洲

3d 具有任意坐标系的四元数三角洲,3d,coordinates,orientation,quaternions,3d,Coordinates,Orientation,Quaternions,我正在努力学习四元数数学,非常感谢你的帮助 我有一个传感器融合芯片,它可以产生相对于芯片坐标系的方向四元数。我将此参考轴框架称为F。它由轴X、Y、和Z组成 我希望能够建立一个任意的上轴,并将其值存储为关于F的四元数。我将此方向称为四元数Qp 通过使用Qp,我想旋转帧F来生成帧F',它由轴X',Y',和Z' 在本例中,我选择了Qp,使得Z'=X,X'=Z,Y'=Y 我现在想: 对传感器的位置四元数进行采样 将此位置转换为euler角度 跟踪沿三个euler轴的总行程 在上面的示例中,如果我

我正在努力学习四元数数学,非常感谢你的帮助

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

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

  • 通过使用Qp,我想旋转帧F来生成帧F',它由轴X',Y',Z'

  • 在本例中,我选择了Qp,使得Z'=X,X'=Z,Y'=Y

我现在想:

  • 对传感器的位置四元数进行采样
  • 将此位置转换为euler角度
  • 跟踪沿三个euler轴的总行程
  • 在上面的示例中,如果我绕轴Z'旋转,我会看到Z euler角度相应地增加/减少
然而,无论我迄今为止尝试了什么,我都无法获得这个结果。如果我绕Z'轴旋转,X euler值将发生变化(这与上面的Z'=X对应)

我的问题是:

  • 我必须做什么数学组合才能得到这个结果?从我测量的位置上简单地减去Qp似乎是可行的,但是得到的四元数始终相对于我的原始参考坐标F
  • 我还希望这适用于任意选择的Qp——轴X',Y',Z'可能并不总是像上面那样简单的替换

如果这是不够的信息,我会提供更多。谢谢大家抽出时间

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

不管怎样,如果它返回四元数,它们是相对于其他帧的芯片帧:哪一个?这种语言似乎有些生硬,但在以后进行数学计算时会得到清晰的结果,所以写QF2p==表示“p”部分w.r.t的方向的四元数。芯片框架或其他东西。四元数将向量从chip(F)帧转换为(p)art帧。(抱歉这么迂腐)(另外,尝试使用您的下标,重命名为“Qp”)

继续:“采样传感器的四元数”您的传感器生成四元数?我以为你有一个芯片可以计算给定方向的四元数。如果你有决定方向的东西,它的输出是什么?可能是另一种夸脱?(对不起,我糊涂了)

convert Quat-->euler很简单,请参见维基百科,但请注意极性和四元数定义,至少有2个。这是你需要帮助的地方吗

“沿3个欧拉轴的总行程”是一个很好的说法,但不是传统的语言:欧拉角通常不是“轴”,因为不是正交的,但你可以将它们积分

重写实验:如果你绕z'旋转,你应该会看到psi欧拉角的变化。Euler不是一个向量或轴系统,但我通常会分别对它们[psi,θ,φ]进行z,y,x的排序。请注意,在小角度中,您更喜欢[dPhi,dTheta,dPsi],因此小角度方向更改(四元数的一部分)与发生此更改的角速率对齐。还有(恐怖)你可以选择无数的欧拉角序列&在选择我在这里列出的飞机时,有一些关于“标准飞机”的假设。也许关键是,如果你做了实验,没有看到芯片的设计表,我会猜dPsi会移动,它会是第一个欧拉角。这是第一个顺序。你怎么把它和“X”联系起来。。。也许这是个错误

“我必须做什么数学?”态度减法是四元数乘法。你不能直接减去四元数

致以最良好的祝愿