2016-01-28 59 views
2

我有陀螺仪和磁力计的原始数据。根据这些数据,我必须计算标准信息,精确度为1Deg。如何使用陀螺仪和磁力计来计算标题

我想知道,有没有任何算法可以帮助我使用提供的准确性来获取标题信息?

任何文章或任何链接也将有所帮助。

感谢

+0

stackoverflow不是为你寻找/写代码,而是关于解决你在[现有]代码中存在的问题。向我们展示您迄今为止所尝试的内容,此处的程序员将能够为您提供帮助,否则我只能建议您[用谷歌搜索](https://www.google.com.ua/search?q=calculate+heading + from +陀螺仪+和+磁力计+数据)(或者看看_Related_部分下的侧栏),并停止浪费我们的时间来搜索你 – ankhzet

+0

这个问题目前的形式太宽泛了。你尝试了什么算法,以及你究竟卡在哪里?请注意,对异地资源的请求在这里被视为离题。 – njuffa

+0

检查出由电话的动作API返回的偏航 – nbsrujan

回答

4

我假设你正在使用的手机来收集gyroscope+magnetometer数据。

除非您知道设备的初始状态,否则无法计算带有Gyro+Magnetometer的标题。你必须尝试Accelerometer+Magnetometer。您可以从Android/IOS设备的Motion sensor API中获取rotation-matrix' or yaw`组件的标题值。

如果你想实现你自己的尝试倾斜补偿算法。你所要做的就是使用accelerometermagnetometer来实现倾斜补偿ecompass。设备帧中的读数为accelerometermagnetometerAccelerometerMagnetometer给出读数作为设备旋转的函数。此旋转包含设备的滚动,俯仰和标题的信息。以下是使用accelerometer+magnetometer进行航向估算的解释和推导。

Android sensor coordinate system


Tilt compensation algorithm

accelerometermagnetometer分别给你

读数。它们在设备框架中,并且设备被旋转通过

其中是您正在寻找的标题。因此,设备的旋转矩阵将

我们必须解决。所以一步一步解决

从以上,等同于零,我们得到

从上面

这是从accelerometer+magentomete获取标题值的基本方法。偏航/航向值由移动电话中的运动传感器API提供。

执行sensor-fusion算法时,您必须注意几件事情。 Accelerometers并不总是给出正确的读数,线性加速度下的设备。读数由于附近的铁磁性物质而受到扭曲。精度也取决于gyroscope传感器中的白噪声分量。

有许多算法来估计准确的航向值。其中有些是

+0

感谢您的详细解答。我忘了在我的问题中提到我的申请。我的申请涉及航空领域。我的磁力计将位于飞机垂直鳍上。我也会尝试这种方法 – Pratik

+0

@Pratik如果磁力计位于飞机鳍上,请检查一次磁力计读数。如果传感器本身没有进行校准,则必须在使用之前对磁力仪进行校准。 – nbsrujan