从xyz磁力计(iPhone 3.0)获得磁北

10 iphone objective-c magnetometer

我实际上是从iphone开发板上转发一个问题.我没有问过,但是在试图找到答案时我发现了它.还没有人在那里做出回应,所以我想我会尝试在这里发布.

在此先感谢您的帮助!

有没有人知道关于从CLHeading的原始xyz值计算磁航向的算法的任何细节?我相信必须有一个通用的方法,适用于不同的磁力计.

cub*_*ube 8

如果您不想使用该trueHeading值,并假设指南针完全水平,则可以通过以下方式计算标题:

  • (y> 0)heading = 90 - atan2(x,y)*180/pi
  • (y <0)heading = 270 - atan2(x,y)*180/pi
  • (y = 0,x <0)航向= 180.0
  • (y = 0,x> 0)heading = 0.0

(这些来自http://www.magneticsensors.com/datasheets/an203.pdf)

...加上标题必须针对磁偏差磁偏角进行校正

如果指南针不是水平的,你应该只使用水平分量(你不能忽略z轴),将(x,y,z)矢量投影到一个平行于地球表面的平面,然后计算标题从这个预测的x和y.

希望能帮助到你.