如何使用陀螺仪和磁力计计算航向

时间:2016-01-28 12:18:48

标签: trigonometry gyroscope magnetometer heading sensor-fusion

我有陀螺仪和磁力计的原始数据。根据这些数据,我必须以1Deg的精度计算标题信息。

我想知道,是否有任何算法可以帮助我使用提到的准确度的可用信息获取标题信息?

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

由于

1 个答案:

答案 0 :(得分:6)

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

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

如果您想实施自己的尝试倾斜补偿算法。您所要做的就是使用accelerometermagnetometer实现倾斜补偿的ecompass。您在设备框架中获得accelerometermagnetometer个读数。 AccelerometerMagnetometer将读数作为设备旋转的函数。此旋转包含设备的Roll,Pitch和Heading信息。以下是使用accelerometer+magnetometer进行航向估算的解释和推导。

Android sensor coordinate system

Tilt compensation algorithm

accelerometermagnetometer给你

分别是读数。它们位于设备框架中,设备通过

旋转

正在寻找的地方。所以设备的旋转矩阵将是

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

从上面,等于零,我们得到

上面有

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

在实施sensor-fusion算法时,您必须查看一些内容。 Accelerometers并不总是重力方向,它给出了传感器所经历的超长加速度的方向,例如线性加速度下的设备。由于附近的铁磁性物质,Magnetometer读数会受到失真。准确度也取决于gyroscope传感器中的系统偏差分量。

有许多算法可用于估算准确的航向值。其中一些是