iOS 4+ : lag in CMDeviceMotion time intervals

标签 ios lag gyroscope accelerator core-motion

我正在开发一款计算密集型应用程序,该应用程序碰巧会监听传感器数据(加速度,还有角速度)。经过几个滤波器后,这些矢量被整合以跟踪位移。

我注意到与 CMDeviceMotion 和 CMGyroData 关联的时间戳延迟了,因为我的 CMMotionManager 的处理程序没有按照其 accelerometerUpdateInterval 和 gyroUpdateInterval 指定的 100 Hz 触发。它从大约 60 Hz 开始,然后上下波动。这主要影响集成。

独立应用程序中的相同代码可以像魅力一样达到 100Hz。

所以看起来来自大型应用程序其他模块的计算峰值导致传感器更新滞后。这让我感到惊讶,因为传感器管理器在其自己的线程上,而且我从文档中了解到传感器事件是由硬件触发的。

我的问题是:当时间戳像描述的那样不可靠时,数据还能用吗?可以使用另一个时钟推断吗?

我很困惑为什么其他线程上的大型异步计算会滞后于加速器更新。

谢谢, 安托

最佳答案

错误的时间戳与不准确的数据一样糟糕,因为它们对集成的影响相同。

大约 50 Hz 足以跟踪方向。我想知道你是如何跟踪位移的,因为 it is impossible with current sensors.

关于iOS 4+ : lag in CMDeviceMotion time intervals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8219909/

相关文章:

iOS 开发图库

ios - 未捕获的异常 : -[WebDataSource onGeomagneticModel:]: unrecognized selector

android - Android 中陀螺仪传感器正确旋转值的计算

ios - Swift - 移动或更新文件失败

ios - Objective-C 中的 SIGBRT 错误,可能来自尝试的 JSON 请求

ios - 转到 UISlider 的点击位置

r - 当我使用滞后函数时,如何将前一行中的 "skip"日期与当前行中的日期相同?

java - 这段代码如何导致几秒钟的暂停?

c++ - 在屏幕上移动矩形时 SFML 滞后/小口吃

c - 整合来自 3 轴陀螺仪的读数?