Полевые проезды в QA: как 2ГИС ищет аномалии геопозиции в городе

Даже самый совершенный код не гарантирует идеальной работы навигации в реальных условиях. Можно написать сотни тестов, собрать метрики и провести автоматизированные проверки, но всё равно столкнуться с ситуацией, когда геопозиция «зависает», позиция «улетает», а маршрут начинает жить своей жизнью. 2

Полевые проезды в QA: как 2ГИС ищет аномалии геопозиции в городе

Даже самый совершенный код не гарантирует идеальной работы навигации в реальных условиях. Можно написать сотни тестов, собрать метрики и провести автоматизированные проверки, но всё равно столкнуться с ситуацией, когда геопозиция «зависает», позиция «улетает», а маршрут начинает жить своей жизнью. 2ГИС уже рассказывал о причинах нестабильной геопозиции и способах помощи пользователям. Недавно разработчики выпустили обновления для улучшения навигации в зонах с нестабильным сигналом, включая внедрение сенсорной (инерциальной) навигации. В этой статье мы расскажем, как полевые проезды QA-команды помогли добиться этого.

Как 2ГИС тестирует навигацию в реальных условиях

Полевые проезды — это выезд команды QA в город для сбора данных о поведении навигатора в реальных условиях. В случае 2ГИС такие проезды стали ключевым инструментом для проверки работы сенсорной навигации. Сотрудники проезжали по заранее выбранным маршрутам, фиксируя показания GPS, акселерометра, гироскопа и других датчиков. Затем эти данные сравнивались с эталонными треками, чтобы выявить аномалии геопозиции: «зависания», «улеты» или рассинхронизацию с маршрутом.

Один из таких проездов проходил в районе с плотной высотной застройкой, где GPS-сигнал часто теряется. QA-инженер проехал по маршруту длиной около 5 км, делая остановки в «слепых зонах» — под мостами, в тоннелях и во дворах-колодцах. На каждом участке фиксировалось, как быстро навигатор переключается на сенсорные данные и насколько точно восстанавливает позицию после выхода из зоны нестабильности. Результаты показали, что инерциальная навигация позволяет удерживать погрешность в пределах 3–5 метров даже при полной потере GPS.

Предыстория и контекст

Проблема нестабильной геопозиции в городах — не новость. Высотные здания, мосты, тоннели и плотная застройка создают эффект «городского каньона», где сигнал спутников многократно отражается или блокируется. Это приводит к дрейфу позиции, резким скачкам и ошибкам в маршрутизации. Ранее 2ГИС использовал только GPS и данные сотовых вышек, но точность была недостаточной для сложных сценариев.

Сенсорная навигация, или инерциальная навигация, использует акселерометр, гироскоп и магнитометр смартфона для вычисления перемещения устройства относительно предыдущего положения. Этот метод не зависит от внешних сигналов и может работать в условиях полной потери GPS. Однако его точность со временем снижается из-за накопления ошибок. Чтобы компенсировать это, 2ГИС объединил данные сенсоров с картографической информацией — например, привязывая движение к дорожной сети.

Чем сенсорная навигация отличается от предыдущей версии?

Раньше 2ГИС полагался исключительно на GPS и данные сотовых вышек. Если сигнал пропадал, приложение теряло позицию и пыталось восстановить её при следующем успешном спутниковом сеансе. Это могло занимать до нескольких секунд, в течение которых пользователь видел «замороженную» карту или резкий прыжок. Новая сенсорная навигация позволяет устройству непрерывно вычислять своё положение даже без GPS, используя инерциальные датчики. В результате переход между режимами стал плавным, а ошибка позиционирования не превышает нескольких метров.

Технические подробности: как работает сенсорная навигация 2ГИС

В основе решения лежит фильтр Калмана — алгоритм, который объединяет данные от разных датчиков и прогнозирует наиболее вероятное положение устройства. 2ГИС использует его для слияния GPS, акселерометра, гироскопа и магнитометра. Когда GPS-сигнал слабый или отсутствует, фильтр опирается на инерциальные данные, корректируя их с учётом карты дорог. Например, если сенсоры показывают движение со скоростью 30 км/ч, но карта говорит, что на этом участке ограничение 20 км/ч, система может скорректировать трек.

Для калибровки и тестирования команда QA провела серию полевых проездов. Каждый проезд включал запись сырых данных сенсоров, которые затем обрабатывались на сервере. Это позволило выявить типичные ошибки: например, в некоторых сценариях магнитометр давал сбой из-за близости к линиям электропередач, что приводило к неверному определению направления. После анализа разработчики добавили дополнительную фильтрацию таких выбросов.

Какие аномалии геопозиции удалось обнаружить?

В ходе полевых проездов QA-команда выявила несколько типов аномалий. Во-первых, «зависание» позиции — когда навигатор переставал обновлять местоположение, хотя автомобиль двигался. Это происходило в тоннелях и под мостами, где GPS полностью терялся. Во-вторых, «улеты» — резкие скачки позиции на десятки метров, вызванные отражением сигнала от зданий. В-третьих, рассинхронизация с маршрутом — когда навигатор показывал, что машина съехала с дороги, хотя на самом деле она двигалась по трассе. Все эти аномалии были зафиксированы и использованы для настройки алгоритмов.

Кого затронет и как

Нововведение в первую очередь коснётся пользователей 2ГИС в крупных городах с плотной застройкой — Москве, Санкт-Петербурге, Новосибирске. Водители, которые часто проезжают тоннели, мосты или паркинги, теперь реже будут терять маршрут. Пешеходы в исторических кварталах с узкими улицами и высокими зданиями также увидят улучшение точности. Для бизнеса, связанного с доставкой и логистикой, это означает меньше сбоев в трекинге и более точное время прибытия.

В России и странах СНГ, где 2ГИС особенно популярен, проблема нестабильной геопозиции стоит остро из-за особенностей городской застройки советского и постсоветского периода. Полевые проезды QA-команды как раз проходили в таких типичных локациях — дворах-колодцах, промзонах и спальных районах. Это позволило адаптировать алгоритмы именно к местным условиям.

Что будет дальше

2ГИС планирует расширить использование сенсорной навигации на все платформы — Android и iOS. Сейчас технология находится в стадии активного тестирования и доступна ограниченному числу пользователей. В ближайшие месяцы компания намерена выпустить обновление, которое включит инерциальную навигацию по умолчанию. Кроме того, ведутся работы по интеграции данных с бортовых датчиков автомобиля через протоколы OBD-II для ещё более точного позиционирования.

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

Итог

Полевые проезды в QA — не экзотика, а необходимый инструмент для проверки навигационных алгоритмов в реальных условиях. Благодаря им 2ГИС смог внедрить сенсорную навигацию, которая делает маршрутизацию стабильнее даже в самых сложных городских каньонах. Следите за обновлениями — возможно, в следующей поездке ваш навигатор уже не потеряет вас под мостом.