gpt4 book ai didi

ios - Apple 的 iPhone 磁力计校准工作正常吗?

转载 作者:技术小花猫 更新时间:2023-10-29 10:53:10 25 4
gpt4 key购买 nike

我目前正在开发一个 iPhone 应用程序(在 iPhone 5、iOS 7、Xcode 5 上),它需要非常准确地确定当前的态度。 CMDeviceMotion 的“态度”不满足这些要求,因为 Apple 的传感器融合算法似乎过于依赖陀螺仪,陀螺仪漂移得相当快(以我的经验)。这就是为什么我决定读出裸传感器数据,然后我想自己将其组合到传感器融合算法中。

当请求磁力计数据时,有两种可能性:

  1. 通过 CMMotionManager 中的 CMMagnetometerData

  2. 通过 Apple 所说的 CMDeviceMotion 中的 CMCalibratedMagneticField

The CMCalibratedMagneticField returned by this property gives you the total magnetic field in the device’s vicinity without device bias. Unlike the magneticField property of the CMMagnetometer class, these values reflect the earth’s magnetic field plus surrounding fields, minus device bias.

原则上 (2.) 正是我想要的。

如果磁力计数据校准正确,有一个非常简单的测试。为简单起见,我们可以将自己限制在二维范围内。当设备仰卧时,组合 B_x^2 + B_y^2 必须保持不变,与设备指向的方向无关。它必须恰好等于地球磁场的水平分量(假设设备附近没有其他磁场)。因此,当设备仰卧旋转 360 度时,测量数据 B_y over B_x 应该显示一个圆圈。参见 here了解详情。

现在重点是:CMCalibratedMagneticField 的数据不会产生圆圈!

Plot

有人对此有解释吗?或者有人知道 CMCalibratedMagneticField 是如何产生的吗?磁力计是否在 link from above 的意义上进行了校准?什么时候进行设备的“八字形”运动或运动有什么好处?

顺便说一句。为什么“八形”运动而不是围绕它的三个轴翻转设备,这将允许如 link from above 中所述进行校准?

如果对这个问题有任何澄清,我将非常高兴...谢谢!

最佳答案

iOS 7 中的磁力计有问题,误差为+-7º。尝试使用 7.1 测试版。

编辑

磁力计随时间漂移为零,但对于位置的突然变化非常不准确。另一方面,加速度计和陀螺仪会针对突然的变化快速调整,但作为惯性传感器,它们会在一段时间内失去准确性。

因此,当 CMCalibratedMagneticField 尝试补偿您的旋转运动时,它会使用来自陀螺仪和加速度计的数据。这是加速度计和陀螺仪的 +-7º 误差逐渐出现并使您的圆圈偏离轨道的时候。检查这个answer还有这个wikipedia article了解更多信息。

关于八的数字:两者做同样的事情,它们将设备的“北”定位在每个方向上,以期消除磁干扰。沿所有三个轴翻转您的设备会更好,但执行起来更难,而且用户也不容易理解。

希望这对您有所帮助。

关于ios - Apple 的 iPhone 磁力计校准工作正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20619398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com