我正在开发一个计算密集型的应用程序,它恰好可以监听传感器数据(加速度,但也包括角速度)。在几个滤波器之后,这些向量被积分以跟踪位移。
我注意到与CMDeviceMotion和CMGyroData相关的时间戳很晚,因为我的CMMotionManager的处理程序并不像它的accelerometerUpdateInterval和gyroUpdateInterval所指定的那样以100 Hz的频率触发。它从60赫兹左右开始,然后上下起伏。这主要影响集成。
在一个独立的应用程序中,同样的代码可以达到100 in的速度。
所以它看起来像是来自大型应用程序的其他模块的计算峰值使传感器更新滞后。这让我很惊讶,因为传感器管理器在它自己的线程上,我从文档中了解到传感器事件是由硬件触发的。
我的问题是:当时间戳如所述不可靠时,数据还能使用吗?它能用另一个时钟外推吗?
我搞不懂为什么其他线程上的大型异步计算会滞后于加速器更新。
谢谢你,安东尼
发布于 2011-11-22 15:32:52
错误的时间戳与不准确的数据一样糟糕,因为它们对集成有相同的影响。
大约50 Hz足以跟踪方向。我想知道你是怎么追踪位移的因为it is impossible with current sensors.
https://stackoverflow.com/questions/8219909
复制相似问题