我正在开发一个计算密集型应用程序,该应用程序恰好可以监听传感器数据(加速度,还有角速度)。经过几个过滤器后,这些向量被集成以跟踪位移。
我注意到与 CMDeviceMotion 和 CMGyroData 关联的时间戳迟到了,因为我的 CMMotionManager 的处理程序没有按照其 accelerometerUpdateInterval 和 gyroUpdateInterval 指定的 100 Hz 触发。它从 60 Hz 左右开始,然后上下波动。这主要影响集成。
独立应用程序中的相同代码执行 100Hz 就像一个魅力。
所以看起来大应用程序的其他模块的计算峰值使传感器更新滞后。这让我感到惊讶,因为传感器管理器在它自己的线程上,我从文档中了解到传感器事件是由硬件触发的。
我的问题是:当时间戳如所述不可靠时,数据仍然可以使用吗?可以用另一个时钟外推吗?
而且我很困惑为什么其他线程上的大型异步计算会滞后于加速器更新。
谢谢, 安托