【问题标题】:Reliable measure of orientation change in a 3D shape可靠测量 3D 形状中的方向变化
【发布时间】:2019-11-18 17:06:09
【问题描述】:

我一直在测量具有不同起始位置的 3D 形状(3 空间传感器)的方向变化,以控制结束位置。 我正在使用欧拉角、(P)itch、(R)oll 和 (Y)aw。

我对方向变化的衡量标准是: 方向改变 OC = |dP| + |dR| + |dY|

3 个起始位置仅在传感器滚动角度上有所不同:

1)。 0

2)。 45

3)。 90

对于每个起始位置,传感器都会被去皮重,然后沿滚动轴升高到 30 度。

问题在于 1)。 & 3)。正如预期的那样,我得到 OC = 30,分别仅代表 30 度的俯仰和偏航误差。但是对于 2)。 OC 显着大于 30,是非零俯仰、横滚和偏航的总和。

这符合预期吗?假设是,有没有更好的对起始位置不敏感的OC度量?

【问题讨论】:

  • 请更详细地描述潜在问题(什么方法会产生错误?)。看来您的位置错误实际上是方向错误。取欧拉角的差异可能适用于小的差异,但一般来说并不具有表现力。尝试使用四元数距离或类似的距离。
  • 嗨 Nico,我已经编辑了这个问题,希望能更好地描述这个问题。潜在的问题是,对于通过传感器中点的轴的相同旋转角度,我会根据传感器的起始位置获得不同的 OC* 值。我需要一个更好的 OC 公式,它保持不变。
  • 我建议使用四元数距离:计算两个方向的单位四元数并取它们的点积。
  • 但是如果我在起始位置对传感器进行去皮,我只有最终位置的四元数,形式为 (a,b,c,d)。据推测,如果我使用四元数,则无论如何都不需要去皮 - 这样做是为了避免万向节锁定。
  • 由于您根本没有描述您实际在做什么,因此无法提出任何进一步的建议。你的问题是如何衡量方向的变化。答案是采用四元数距离或类似的距离。如果您已经有一个表示为单个四元数的差异旋转,那么只需使用它的w 组件(或者如果您想要一个角度,则使用arc cos(w))。

标签: geometry sensors euler-angles


【解决方案1】:

Nico 在 cmets 中提供的答案:

要使用四元数距离,这是我的传感器作为单位四元数提供的初始和最终四元数的点积,其中 x2 + y2 + z 2 + w2 = 1

点积由下式给出: 点 = xi.xf + yi.yf + zi.zf + wi.wf

此外,我使用了这些四元数之间的相对角 theta(弧度),由下式给出: Theta = 2cos-1(点)

传感器使用 theta 得到了显着改善的结果,只有在应用梯度下降校准时才能得到更大的改善。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2012-10-16
    • 1970-01-01
    相关资源
    最近更新 更多