accelerometer - 如何确定绝对方向

标签 accelerometer sensor magnetometer

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

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

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

所以问题是,如何确定何时使用一个或另一个。两个传感器是否足够?还是需要其他东西?

谢谢

最佳答案

关键是要使用重力和磁力计这两个向量的叉积。叉积给出一个垂直于它们两个的新向量。这意味着它是水平的(垂直于向下),并且与北方成90度。现在,您具有定义方向的三个正交向量。这有点丑陋,因为它们不是全部垂直,但是很容易修复。如果然后再将此新矢量与重力矢量交叉,则可以得到垂直于重力矢量和磁体平面矢量的第三矢量。现在,您具有三个垂直矢量,这些矢量定义了3D方向坐标系。原始的加速度计(重力)矢量定义Z(向上/向下),两个叉积矢量定义方向的东/西和北/南分量。

关于accelerometer - 如何确定绝对方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1185874/

相关文章:

iphone - iPhone 中加速度计的最大采样率

audio - Arduino nano,声音检测

android - 未校准的磁力计问题

iphone - 为什么我没有用这个简单的代码读取任何磁场值?

android - 如何使用此传感器 API 中的磁力计?

accelerometer - IMU速度估计

android - Android 设备和 PC 之间的蓝牙聊天

android - android中的加速度计精度

android - 我如何从假装成微型电话的USB加速度传感器获取数据?