从一个xyz磁力计(iPhone 3.0)获取磁北方向

11

我其实是从iPhone开发论坛上转发一个问题而来,虽然这个问题不是我提出的,但当我在寻找答案时,发现还没有人回答它,所以我想尝试在这里发布它。

非常感谢您提供任何帮助!

有没有人知道如何从CLHeading的原始xyz值计算磁头方向的具体算法? 我相信一定有一种通用方法适用于不同的磁力计。


1
“使用加速度计和磁力计传感器实现倾斜补偿电子罗盘(eCompass)”技术说明提供了数学原理、参考源代码和指导,帮助工程师们实现倾斜补偿电子罗盘(eCompass)。 - Daniel Ballinger
1个回答

8
如果您不想使用trueHeading值,并且假设指南针完全水平,则可以通过以下方式计算方向:
  • (y>0) 方向 = 90 - atan2(x,y)*180 / pi
  • (y<0) 方向 = 270 - atan2(x,y)*180 / pi
  • (y=0, x<0) 方向 = 180.0
  • (y=0, x>0) 方向 = 0.0
(这些来自http://www.magneticsensors.com/datasheets/an203.pdf
此外,方向必须校正磁偏角磁偏差
如果指南针不是水平的,则应仅使用水平分量(不能忽略z轴),通过将(x,y,z)向量投影到与地球表面平行的平面上,然后从此投影的x和y计算方向。
希望对您有所帮助。

请注意,上述内容中缺少除以π的部分,并且苹果公司和霍尼韦尔的x和y定义是相反的。 - user148568

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接