Разработчик приложения для Android: поиск наилучшего способа синхронизации временных меток двух датчиков - PullRequest
2 голосов
/ 05 марта 2019

Уже есть хороший ответ на технические детали и ограничения времени измерения гироскопа: Movesense, временная метка источника данных imu и проблемы синхронизации в целом

Однако я хотел бы задать более практический вопрос с точки зрения разработчика приложений для Android, работающего с двумя датчиками, и требования высокой точности с синхронизацией измерения гироскопа.

Какой самый точный способ синхронизировать / объединить временные метки от двух датчиков и поместить измерения на одной оси времени?

В версии ПО 1.7 сенсора введено API Time / Detail для проверки внутренней отметки времени и времени UTC, установленных на сенсорном устройстве. Вот как я представлял, что он будет работать с двумя датчиками:

  1. Прежде чем что-либо подписывать, установите время UTC (микросекунды) для датчика 1 и датчика 2 на основе времени устройства Android (PUT / Time)
  2. Получите разницу между «Время с момента включения датчика» (в миллисекундах) и «Время UTC, установленное для датчика» (в микросекундах) (для датчика 1 и датчика 2) (GET /Time/Detailed).
  3. Рассчитайте разницу этих двух временных меток (в миллисекундах) (для обоих датчиков).
  4. Получить значения гироскопа от датчика с внутренней меткой времени. Добавьте вычисленное значение из шага 3 к внутренней временной метке, чтобы получить правильное / глобальное значение времени UTC.

Правильна ли эта процедура? Есть ли более эффективный или точный способ сделать это? Например. служба GATT для установки времени была упомянута в связанном посте как самый быстрый способ. Что-нибудь еще?

Как насчет возможного дрейфа во времени датчика для гироскопа? Есть ли какие-нибудь хитрости, чтобы ограничить воздействие дрейфа впоследствии? Имеет ли смысл получать информацию / Время / Подробная информация при более длительных измерениях и проверять, не сместились ли внутренние часы по сравнению с временем UTC?

Спасибо!

...