Android应用开发者:寻找同步两个传感器时间戳的最佳方法

时间:2019-03-05 12:33:08

标签: movesense

关于陀螺仪测量的技术细节和计时限制,已经有了很好的答案: Movesense, timestamp source of imu data, and timing issues in general

但是,我想从Android应用程序开发人员的角度提出更实际的问题,即使用两个传感器并要求陀螺仪测量定时具有高精度。

从两个传感器同步/合并时间戳并将测量结果放在同一时间轴上,最准确的方法是什么?

传感器SW版本1.7引入了时间/详细API,以检查内部时间戳和传感器设备上设置的UTC时间。这就是我想象的会在两个传感器上显示出来的方式:

  1. 在订阅任何内容之前,请根据Android设备时间(PUT / Time)在sensor1和sensor2上设置UTC时间(微秒)
  2. 获取“传感器自打开以来的时间”(以毫秒为单位)和“传感器上设置的UTC时间”(以微秒为单位)(在sensor1和sensor2上)之差(获取/时间/详细信息)。
  3. 计算这两个时间戳的差值(以毫秒为单位)(对于两个传感器)。
  4. 从传感器获取带有内部时间戳的陀螺仪值。将第3步中计算得出的值添加到内部时间戳记中,以获取正确/全局UTC时间值。

此程序正确吗? 有没有更有效或准确的方法来做到这一点?例如。链接中提到了设置时间的GATT服务是最快的方法。还有吗?

陀螺仪的传感器时间可能会漂移吗?是否有任何技巧可以限制漂移的影响?在较长的测量过程中获取/ Time / Detailed信息,并检查内部时钟与UTC时间相比是否漂移/改变了?

谢谢!

1 个答案:

答案 0 :(得分:0)

很好的客人!

看晶体的精度(±20 ppm),这意味着传感器之间的典型漂移应不超过40 ppm。换算为一个小时大约需要0.14秒。为了更长的测量和更好的精度,需要更好的同步。

幸运的是,除非传感器温度迅速变化,否则时钟漂移应保持相对恒定。因此,在测量开始和结束时比较手机时钟和每个传感器UTC应该足够了。每个传感器的任何漂移都应该可见,并且时间戳易于补偿。

如果需要更精确的时间戳,则从每个传感器中定期采样/ Time / Detailed并将其与电话时钟进行比较,应该可以估算出传感器时钟可能发生的漂移。

完全公开:我为Movesense团队工作