如何确定绝对方向

时间:2009-07-26 23:28:49

标签: accelerometer sensor magnetometer

我有一个xyz加速度计和磁力计。现在我想用两者来确定设备的方向。我看到的问题是,根据设备方向,我需要以不同的顺序使用传感器。

让我举个例子。如果我让设备面向我,则可以使用加速度计确定滚动和俯仰的变化。对于偏航,我使用磁力计。

但如果我将设备水平放置(即将其旋转90º,面向天花板),则向上矢量(现在是水平)的任何变化都不会被注意到,因为加速度计没有检测到任何变化。现在可以使用磁力计检测到这一点。

所以问题是,如何确定何时使用其中一个。这对两个传感器来说是否足够?或者我还需要其他东西吗?

由于

5 个答案:

答案 0 :(得分:17)

关键是使用两个矢量,重力和磁力计的交叉积。叉积产生垂直于它们的新矢量。这意味着它是水平的(垂直向下),与北方成90度。现在你有三个正交向量来定义方向。它有点难看,因为它们并非都是垂直的,但很容易修复。然后,如果您使用重力矢量将这个新矢量反过来,该重力矢量给出垂直于重力矢量和磁平面矢量的第三个矢量。现在您有三个垂直向量,用于定义3D方向坐标系。原始加速度计(重力)矢量定义Z(向上/向下),两个交叉乘积向量定义方向的东/西和北/南分量。

答案 1 :(得分:2)

以下是一些介绍该项目的文档。从其他答案可以清楚地看出,数学可能很棘手。 http://www.freescale.com/files/sensors/doc/app_note/AN4248.pdf

答案 2 :(得分:1)

我认为“如何确定何时使用其中一个”的问题是错误的。您应该始终使用两个传感器进行定位。有些情况下,其中一个是无用的。但是,这些都是边缘情况。

答案 3 :(得分:1)

如果我理解正确,你需要根据基点(北,东,南和西)检测俯仰(倾斜)和方向。

可以从加速度计读取音高。

根据基点的方向可以从指南针中读取。

将这两个传感器的输出正确地与软件中的正确数学结合起来,很可能会给你绝对的方向。

我认为这样做是可行的。

祝你好运。

答案 4 :(得分:0)

如果您仍然需要绝对定位,您可以查看Adafruit的这个分组板:https://www.adafruit.com/products/2472。关于这一点的好处是主板是它有一个ARM Cortex-M0处理器来为你做所有的计算。