Кейс

Навигация по IMU-сенсорам

Проект был посвящен исследованию возможности определять события движения автомобиля по данным IMU-сенсоров смартфона без использования навигационных данных.

Все кейсы
РезультатПо итогам нулевой итерации подтверждена принципиальная реализуемость детекции событий движения автомобиля по IMU-сенсорам смартфона.

Описание проекта

Проект был посвящен исследованию возможности определять события движения автомобиля по данным IMU-сенсоров смартфона без использования навигационных данных. В рамках нулевой итерации команда проверяла, достаточно ли сигналов акселерометра, гироскопа и fusion-датчиков для распознавания начала движения, полной остановки и поворота автомобиля на угол более 45 градусов.

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

Основные задачи

  • Проверить, можно ли определять начало движения автомобиля по IMU-сенсорам смартфона.
  • Проверить, можно ли определять полную остановку автомобиля без GPS.
  • Оценить достижимость детекции поворота более 45 градусов по данным гироскопа и rotation vector.
  • Сравнить информативность разных датчиков: accelerometer, linear acceleration, gravity, gyroscope, rotation vector и magnetometer.
  • Оценить достижимость целевой точности не менее 90% для ключевых событий движения.
  • Определить критические условия, при которых алгоритм может работать стабильно.
  • Сформировать рекомендации по архитектуре мобильного решения для iOS и Android.
  • Описать подход к дальнейшему сбору размеченных данных и проверке алгоритма на реальных заездах.
  • Определить, когда достаточно классической обработки сигналов, а когда потребуется машинное обучение.

Решение и функциональные возможности

  • Разработаны мобильные приложения для сбора данных IMU-сенсоров на iOS и Android.
  • На iOS сбор данных реализован через Core Motion с использованием системных fusion-сигналов.
  • На Android предусмотрен сбор данных через SensorManager и физические датчики устройства.
  • Проведены тестовые заезды для анализа поведения сенсоров в реальных условиях движения автомобиля.
  • Проанализированы сигналы акселерометра, включая влияние гравитации, вибраций, наклона устройства и дорожных условий.
  • Выделен linear acceleration как основной сигнал для определения начала движения и полной остановки.
  • Проанализирован gyroscope как ключевой источник данных для фиксации факта поворота и направления вращения.
  • Проанализирован rotation vector как основной источник для оценки изменения ориентации устройства и расчета угла поворота.
  • Gravity предложен как вспомогательный сигнал для определения и компенсации ориентации смартфона в автомобиле.
  • Magnetometer не рекомендован как основной источник из-за магнитных помех внутри автомобиля.
  • Предложен алгоритмический подход на основе оконной статистики, variance/std, пороговой логики и гистерезиса.
  • Для остановок предложен механизм ZUPT — сброс накопленной ошибки при фиксации состояния покоя.
  • Для поворотов предложена комбинация gyroscope + rotation vector с фильтрацией и контролем дрейфа.
  • Описана калибровка ориентации устройства через матрицу поворота, чтобы алгоритм мог работать при произвольном положении телефона в держателе.
  • Сформированы рекомендации по частоте сбора данных: снижение со 100 Гц до 20—30 Гц для уменьшения нагрузки на устройство.
  • Описаны минимальные требования к устройствам: наличие акселерометра и гироскопа, актуальные версии ОС и достаточная частота обновления сенсоров.
  • Подготовлен архитектурный подход: кроссплатформенная логика алгоритма и нативные модули для сбора IMU-данных.
  • Рассмотрены ML-подходы как следующий этап при недостаточной устойчивости пороговых алгоритмов.
  • Предложены потенциальные модели машинного обучения: TCN, LSTM/GRU, нейронные сети и кластеризация временных рядов.

Выгоды от внедрения

  • Возможность определять ключевые события движения автомобиля без постоянного использования GPS.
  • Снижение зависимости от навигационных данных в сценариях, где GPS недоступен, нестабилен или нежелателен.
  • Потенциальное снижение энергопотребления за счет работы с IMU-сенсорами и оптимизации частоты сбора данных.
  • Повышение устойчивости навигационных сценариев за счет краткосрочного анализа движения между GPS-точками.
  • Возможность использовать один алгоритмический модуль для iOS и Android при сохранении нативного качества сбора данных.
  • Более точная обработка событий старта и остановки за счет linear acceleration и оконной статистики.
  • Возможность детектировать повороты по данным гироскопа и rotation vector без опоры на магнитометр.
  • Сформированная методология тестирования снижает риски перед полноценной разработкой продукта.
  • Раннее выявление ограничений помогает корректно определить область применимости решения.
  • Проект создает основу для дальнейшего SDK или встроенного модуля мобильной навигации.

Результаты проекта

По итогам нулевой итерации подтверждена принципиальная реализуемость детекции событий движения автомобиля по IMU-сенсорам смартфона. Анализ показал, что начало движения и полная остановка потенциально могут достигать точности не менее 90% при соблюдении условий применимости: жесткое крепление телефона, современное устройство, легковой автомобиль, асфальтовое покрытие и стандартная манера вождения.

Событие поворота более 45 градусов признано более сложным: его детекция возможна через комбинацию гироскопа и rotation vector, но требует дополнительной фильтрации, калибровки и механизмов коррекции дрейфа. По результатам исследования сформирован план дальнейшей разработки: сбор размеченного датасета, реализация базового алгоритма цифровой обработки сигналов, оценка точности на реальных данных и переход к ML-подходам при необходимости.