Как навигатор собирает информацию о пробках. По количеству смартфонов? Важные ответы
Одна из самых удобных и полезных функций навигатора — показ пробок на дорогах. Даже если вы идеально знаете город, лучше него не сможете проложить оптимальный маршрут с учетом заторов.
Но у навигатора нет своих собственных глаз. Каким образом эти приложения понимают, где образовалась пробка?
Разбираемся, как это работает.
Откуда вообще навигатор берёт данные о пробках?
Есть два типа данных, которые работают в совокупности и помогают картографическим сервисам понять, где образовывается дорожный затор.
Для начала, у навигатора на сервере есть база знаний: информация о дорогах на карте, скоростных ограничениях и правилах проезда, дорожных знаках, POI (points of interest) — особых объектах, от супермаркетов и достопримечательностей до постов ГИБДД и дорожных камер.
Это условно статические данные, они не меняются мгновенно. Разве что кусок дороги закроют на ремонт или откроют новую заправку.
Динамические данные не менее важны. Это информация о дорожной ситуации, которая постоянно меняется. Координаты автомобилей, сообщения водителей и пассажиров, отметки о ДТП и так далее. Всё это динамические данные.
Что для навигатора называется пробкой?
В целом, пробка — это когда сравнительно много машин движется по дороге с небольшой скоростью (вплоть до нулевой). Но в этом определении есть два допущения:
Во-первых, что такое сравнительно много машин? В каждой навигационной программе этот параметр задается по-своему. Но в любом случае если одна машина едет по проселочной дороге со скоростью 10 км/ч, навигатор здесь пробку не покажет — слишком мало данных.
Во-вторых, что такое небольшая скорость? Та, что значительно меньше средней и/или максимально разрешенной на этом участке дороги. Как быть в ситуации, если на участке разрешено ехать 60 км/ч, но поток едет 30 км/ч практически всегда?
От сервиса к сервису, эти допущения различаются. Точные данные никто не раскрывает, ведь это основы алгоритмов, и их хранят в секрете. К тому же они вариативны и могут изменяться даже в реальном времени в зависимости от сезонности, времени суток, общей ситуации на дороге и так далее.
Откуда навигатор получает динамические данные?
Когда вы устанавливаете навигационное приложение, активируете GPS и подключаетесь к сети, то автоматически отправляете данные на сервер навигационной системы. Во многих приложениях можно также создавать сообщения и информировать о ДТП, засадах полиции и т.д.
Например, в Яндекс.Картах и Яндекс.Навигаторе можно поставить в настройках галочку «Сообщать о пробках» и передавать свои данные в сервис Яндекс.Пробки. Стандартный набор: ваши координаты (широта и долгота), скорость, направление движения.
Данные всегда обезличены. Сервис не знает вашего имени, номера вашего авто и т.д. Информация, которую передает приложение, не привязывается к вашей учетной записи. Но трек (след движения по карте) строится для конкретного объекта.
Сообщения с данными отправляются каждые несколько секунд. Старые данные удаляются и не участвуют в расчете.
Сервис Яндекс.Пробки получает данные не только от обычных водителей, но и от компаний-партнеров. Это службы такси, доставки и другие фирмы, машины которых регулярно ездят по городу.
Наконец, информация берется с датчиков на дорогах. Их устанавливает и обслуживает ЦОДД (Центр организации дорожного движения) и другие ведомства.
Но датчики есть лишь в крупных городах (на Москву примерно 7 тыс. устройств). К тому же автомобилистов с навигаторами куда больше.
Как навигатор анализирует данные других пользователей
Обработка данных от всех доступных источников всегда происходит на сервере. В приложении-клиенте (то, что видите вы на экране смартфона) лишь выдается готовый результат.
Если платформа видит, что на каком-то участке карты скорость автомобилей массово уменьшается, она пересчитывает загруженность дорог. Соответственно, перерисовывается карта с учетом интенсивности движения и пробок.
Сообщения об авариях, постах и тому подобном тоже анализируются. Когда один пользователь ставит отметку, другие участники, которые находятся неподалеку, могут её подтвердить или опровергнуть.
Таким образом, не получится заспамить карту ложными сообщениями. А когда последствия ДТП уберут с дороги, исчезнет и отметка о нем.
Обычно системы анализируют карты по кластерам: исследуют данные на небольших участках, а затем сопоставляют их с информацией от «соседей». Это позволяет распределить нагрузку и обновлять карту чаще.
Треки автомобилей, которые едут по одному участку в одинаковом направлении, объединяются по совпадающим отрезкам. Скорости усредняются, и это дает понимание дорожной картины.
Важный момент: новые данные не полностью перекрывают старые. Просто у старых данных обычно меньший вес при принятии решения на сервере.
Именно поэтому машина, которая едет на «аварийке» со скоростью 10 км/ч, не заставит систему думать, что образовалась пробка. Но когда медленных машин станет больше, навигатор покажет затор.
Как навигатор понимает, в каком ряду вы едете и почему тормозите?
Средняя точность GPS — 6–8 метров, а в условиях плотной застройки ещё меньше. Так что приложение не может определить, в каком ряду вы едете. Но может подумать, что вы врезались в столб или прошли сквозь угол здания.
Если приложение будет строить ваш трек четко по полученным от вас координатам, получится что-то странное. Поэтому система аналитики навигатора сопоставляет ваши динамические данные со статической картой города и, учитывая знаки и разметку, оптимизирует ваш трек.
Навигатор понимает, что вы не могли выехать на тротуар или встречную полосу, а затем продолжить двигаться с прежней скоростью. Поэтому ваш путь на карте выглядит нормальным.
Кроме того, вы можете замедлиться перед въездом во двор или на парковку. Но приложение поймет это, проанализировав поведение водителей, которые едут рядом с вами, и не будет рисовать здесь пробку.
С другой стороны, если кто-то решил объехать пробку по обочине или по полосе для общественного транспорта, его скорость разбавит общую картину. И дорога, к примеру, может из красной стать желтой.
Отчасти погрешность GPS, ГЛОНАСС и других навигационных систем снижается за счет A-GPS и определения положения по вышкам мобильной связи и Wi-Fi. Но уже через несколько лет, с обновлением спутников и технологий позиционирования, проблема должна исчезнуть.
Как навигатор отличает водителей от пешеходов?
Действительно, если объект движется вдоль дороги со скоростью 5–6 км/ч, это может быть и не машина в пробке, а пешеход. Как отличить авто от пешехода?
Платформа на сервере анализирует скорость объекта в течение какого-то времени. Затем она сравнивает характер движения и находит признаки пешехода или автомобиля.
К примеру, пешеход вряд ли сможет идти быстрее 10 км/ч (это скорость вполне бодрого бега). А автомобиль со средней скоростью 10 км/ч будет двигаться в пробке неравномерно: часть времени стоять, часть — достаточно быстро подъезжать к впереди стоящему, а в отдельные моменты разгоняться до куда больших скоростей.
Почему это важно? Платформа должна отсеивать данные от пешеходов и показать реальную скорость движения авто в городе.
Как рассчитываются баллы пробок?
Чтобы водителю было проще ориентироваться в карте с учетом загруженности дорог, скорости на различных участках показывают цветом. К примеру, Яндекс.Навигатор берёт данные из сервиса Яндекс.Пробки. Это отдельный слой данных, интегрированный в общую систему Яндекс.Карт.
Включить этот слой можно кнопкой «Дорожная ситуация». Если данных о пробках нет или они не нужны, слой просто не показывается.
В крупных городах пробки также отображают в баллах: 0 — пробок нет, 10 — пробки максимальные. Баллы означают следующее:
- 1: Дороги свободны;
- 2: Дороги почти свободны;
- 3–4: Местами затруднения;
- 5: Движение плотное;
- 6: Движение затрудненное;
- 7: Серьезные пробки;
- 8: Многокилометровые пробки;
- 9: Город стоит;
- 10: Пешком быстрее.
Навигационная платформа рассчитывает, за сколько водители в среднем проезжают определенные участки по пустой дороге. Это время считается эталонным и пересчитывается, в общем-то, редко.
Затем эталонные значения сравнивают с фактическими. Полученные значения проецируют на шкалу пробок для конкретного города.
Для каждого города при расчете баллов используются свои коэффициенты. Например, если в Москве вы потратите на дорогу вдвое больше времени, чем если бы ехали ночью по пустому шоссе, это пять баллов.
В Санкт-Петербурге аналогичные заторы оценят в 6–7 баллов, ведь здесь максимальные пробки меньше.
Навигаторы становятся умнее с каждым днём
Навигационные платформы накапливают данные, чтобы точнее рассчитывать время в пути по определенному маршруту. Эти данные помогают предсказать, где вскоре образуется пробка, и объехать её.
Применяются и технологии искусственного интеллекта. Они позволяют связать, казалось бы, несвязанные события — настоящее машинное обучение на той самой «биг дате». К примеру, если система постоянно будет видеть, что пробка на одном перекрестке приводит к разгрузке определенных маршрутов, она заранее поведет вас по ним.
На той же Яндекс.Карте есть режим «Дорожная ситуация». По нему можно посмотреть прогноз пробок в определенный день и время. Это поможет спланировать свой день и не терять слишком много времени на дорогу.
Конечно, внезапные ДТП и заторы из-за отключившихся светофоров могут нарушить все планы. Но в целом прогнозы Яндекс.Пробок и Google Maps работают довольно точно.
Почему уровни пробок в разных сервисах отличаются?
Прежде всего, что для одного сервиса — зеленый уровень пробок, для другого желтый. Нет единых стандартов.
Кроме того, чем больше пользователей у навигатора, тем больше данных получает платформа и тем точнее картина. Если одним навигатором пользуются 10 водителей в потоке, а другим — один, причем едет он с минимальной скоростью, то сами понимаете, где данные будут объективнее.
Наконец, для обработки и передачи данных даже в одной навигационной платформе используется множество серверов. В результате вы можете параллельно открыть две вкладки с пробками в браузере, и даже они будут отличаться. Так происходит потому, что данные поступают с разных серверов.
А почему до сих пор можно попасть в пробку, которой нет на карте?
Сбор и анализ данных занимает время. Старые данные влияют на свежие. Сегодня не существует единственно верного способа, который бы позволил навигационной системе показывать загрузку дорог действительно в режиме реального времени.
Карты всегда обновляются с небольшим опозданием — от 1–2 до 5–10 минут. Поэтому именно вы, попав в пробку, можете первым передать данные навигационной платформе. Она накопит некоторое количество подобных сообщений и покажет пробку всем.