【发布时间】: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