我正在开发一个计算密集型应用程序,该应用程序恰好可以监听传感器数据(加速度,还有角速度)。经过几个过滤器后,这些向量被整合以跟踪位移。
我注意到与 CMDeviceMotion 和 CMGyroData 关联的时间戳迟了,因为我的 CMMotionManager 的处理程序没有按照其 accelerometerUpdateInterval 和 gyroUpdateInterval 指定的 100 Hz 触发。它从 60 Hz 左右开始,然后上下波动。这主要影响集成。
独立应用程序中的相同代码执行 100Hz 就像一个魅力。
因此,大型应用程序的其他模块的计算峰值看起来会导致传感器更新滞后。这让我感到惊讶,因为传感器管理器在它自己的线程上,我从文档中了解到传感器事件是由硬件触发的。
我的问题是:当时间戳不可靠时,数据是否仍然可以使用?可以用另一个时钟外推吗?
我很困惑为什么其他线程上的大型异步计算会滞后于加速器更新。
谢谢,
安托
Best Answer-推荐答案 strong>
错误的时间戳与不准确的数据一样糟糕,因为它们对集成有相同的影响。
大约 50 Hz 足以跟踪方向。我想知道您如何跟踪位移,因为 it is impossible with current sensors.
关于iOS 4+ : lag in CMDeviceMotion time intervals,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/8219909/
|