【发布时间】:2013-01-28 08:22:27
【问题描述】:
我目前正在编写一个简单的 android 应用程序来计算设备 imu 的偏差。在执行此操作时,我遇到了 event.timestamp 值的问题
使用代码:
float dT = (event.timestamp-accel_timestamp)*NS2S;
从Android Reference Guide 的示例中计算四元数的旋转矩阵。
当我使用 Galaxy Nexus-S 运行代码时,测量之间的 dT 为 0.06~0.07 秒,但是当我在 LG Nexus 4 或 Nexus 7 上运行相同的代码时,dT 始终为 0。我知道关于问题,Android SensorEvent timestamp issue Nexus 7 时间戳是一个 unix 时间戳,但连续测量之间的差异不应该总是为零。 Nexus 4 和 Nexus 7 都具有相同的 IMU 这可能是从 IMU 创建时间戳的方式中的错误吗?
【问题讨论】:
-
我在运行 HTC Sensation XL 时遇到了同样的问题。遵循相同的参考指南。我尝试删除 *NS2S 并将 dT 保持为 long,但差异仍然为零,所以这不是浮点问题。在 IntelliJ 的调试器中,我可以查看在大约 2 秒内累积的 SensorEvent 数组——它们都具有相同的 event.timestamp!这是我们手机 API 中的错误,还是“功能”?
标签: android timestamp unix-timestamp android-sensors nexus-4