我有一个xyz加速度计和磁力计。现在,我想同时使用这两种方法来确定设备的方向。我看到的问题是,根据设备的方向,我需要以不同的顺序使用传感器。
让我举个例子。如果我的设备正对我,则可以使用加速度计确定侧倾和俯仰的变化。对于偏航,我使用磁力计。
但是,如果我将设备水平放置(即将其面向天花板旋转90º),则向上矢量(现在为水平)的任何变化都不会被注意到,因为加速度计不会检测到任何变化。现在可以用磁力计检测到。
所以问题是,如何确定何时使用一个或另一个。两个传感器是否足够?还是需要其他东西?
谢谢
最佳答案
关键是要使用重力和磁力计这两个向量的叉积。叉积给出一个垂直于它们两个的新向量。这意味着它是水平的(垂直于向下),并且与北方成90度。现在,您具有定义方向的三个正交向量。这有点丑陋,因为它们不是全部垂直,但是很容易修复。如果然后再将此新矢量与重力矢量交叉,则可以得到垂直于重力矢量和磁体平面矢量的第三矢量。现在,您具有三个垂直矢量,这些矢量定义了3D方向坐标系。原始的加速度计(重力)矢量定义Z(向上/向下),两个叉积矢量定义方向的东/西和北/南分量。
关于accelerometer - 如何确定绝对方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1185874/