Описание проекта
Проект был посвящен исследованию возможности определять события движения автомобиля по данным 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-подходам при необходимости.