Уже есть хороший ответ на технические детали и ограничения времени измерения гироскопа:
Movesense, временная метка источника данных imu и проблемы синхронизации в целом
Однако я хотел бы задать более практический вопрос с точки зрения разработчика приложений для Android, работающего с двумя датчиками, и требования высокой точности с синхронизацией измерения гироскопа.
Какой самый точный способ синхронизировать / объединить временные метки от двух датчиков и поместить измерения на одной оси времени?
В версии ПО 1.7 сенсора введено API Time / Detail для проверки внутренней отметки времени и времени UTC, установленных на сенсорном устройстве. Вот как я представлял, что он будет работать с двумя датчиками:
- Прежде чем что-либо подписывать, установите время UTC (микросекунды) для датчика 1 и датчика 2 на основе времени устройства Android (PUT / Time)
- Получите разницу между «Время с момента включения датчика» (в миллисекундах) и «Время UTC, установленное для датчика» (в микросекундах) (для датчика 1 и датчика 2) (GET /Time/Detailed).
- Рассчитайте разницу этих двух временных меток (в миллисекундах) (для обоих датчиков).
- Получить значения гироскопа от датчика с внутренней меткой времени. Добавьте вычисленное значение из шага 3 к внутренней временной метке, чтобы получить правильное / глобальное значение времени UTC.
Правильна ли эта процедура?
Есть ли более эффективный или точный способ сделать это? Например. служба GATT для установки времени была упомянута в связанном посте как самый быстрый способ. Что-нибудь еще?
Как насчет возможного дрейфа во времени датчика для гироскопа? Есть ли какие-нибудь хитрости, чтобы ограничить воздействие дрейфа впоследствии? Имеет ли смысл получать информацию / Время / Подробная информация при более длительных измерениях и проверять, не сместились ли внутренние часы по сравнению с временем UTC?
Спасибо!