Movesense, временная метка источника данных imu, и проблемы времени в целом

Основываясь на ответе на этот вопрос здесь: Что такое Единица измерения и экстраполяция, кажется, что при чтении меток времени из источника данных imu (imu9) метка времени может исходить не от базовой системы, а скорее от какого-то другого источника, Это тот случай?

Кроме того, кому-нибудь повезло, синхронизируя время на устройствах с внешним устройством, таким как IOS или Android-устройство? Я знаю, что время может быть установлено, но мне всегда кажется, что у меня примерно секунда. Может ли это зависеть от того, сколько отправленных пакетов требуется для фактической отправки значения времени, а затем его обработки и возврата ответа? Если да, то есть ли способ количественно определить, что такое разница во времени?

1 ответ

Датчик Movesense имеет один тактовый источник (низкочастотный тиковый счетчик 32 кГц, стабилизированный кристаллом с частотой 20 стр / мин), который работает со скоростью 1024 такта в секунду. Оттуда вычисляется "RelativeTime" [мс] (мс с момента сброса). Относительное время возвращается как метка времени из многих измерений датчика и основано на часовых стабилизаторах, поэтому оно стабильно. Поскольку, в частности, выборка блока IMU (Acc/Gyro/Magn) синхронизируется внутренним RC-генератором LSM6DSL, разность временных меток может варьироваться, и реальная частота выборки составляет +-10% от номинала, указанного в параметре подписки. Образцы ЭКГ являются точными, поскольку этот чип использует тактовый сигнал от стабильного генератора.

Часы UTC рассчитываются со смещением относительно относительного времени. Таким образом, внутреннее время UTC рассчитывается в мс, в то время как API имеет микросекунды на случай, если в будущем появится оборудование с лучшими возможностями.

Когда выполняется PUT /Time, датчик использует заданное время UTC для вычисления нового смещения между часами UTC и RelativeTime и принимает его в действие. Запрос PUT через BLE занимает некоторое время, которое можно оценить с помощью двусторонней передачи PUT-GET. Если требуется более точная настройка, можно использовать модуль CustomGATTService (/Comm/Ble/GattSvc) для реализации более простой службы установки времени, которая позволяет избежать всех издержек протокола MDS/Whiteboard. Обычно интервал подключения BLE составляет около 45 мс-60 мс, поэтому в любом случае ожидается большая задержка.

В текущей опубликованной библиотеке устройств Movesense отсутствует удобный способ выяснить связь между временем UTC и RelativeTime на датчике. Однако в следующем выпуске 1.7 (который должен выйти через несколько недель) он появится и упростит синхронизацию с несколькими датчиками.

Полное раскрытие: я работаю в команде Movesense

Другие вопросы по тегам