Продолжение статьи... Почему показания ГЛОНАСС и одометра различаются? Мы разобрались!
Итак продолжаем первую статью.
Часть 4. Скорость и курс
В этой части мы разберём методы расчета скорости и направления движения в транспортной телематике, а также сравним их точность на реальных данных. Можно было бы назвать эту публикацию аналогичным образом: “Скорость автомобиля: почему значение в навигаторе и стрелка спидометра расходятся?”.
Нельзя обойти тему скорости в рамках цикла наших статей, так как ранее мы выяснили, что одометр транспортного средства считает пробег именно на основе скорости движения. Направление или курс движения - менее важный параметр, который зачастую используется только для визуализации маркера объекта на картографической подложке.
Скорость
Для водителя значение скорости доступно благодаря спидометру на приборной панели. Спидометр в любой машине (независимо от ее марки, модели, цены), не просто может, а должен «врать», причем, обязательно в сторону завышения скорости. В противном случае он будет считаться неисправным. Эти требования определены документами регламентирующими производство автомобилей (вернее, спидометров к ним). Да и сами автопроизводители всегда перестраховываются, исходя из стандартных инженерных соображений.
Требование к введению в спидометры поправки завышающей скорость, для мировых производителей определяется требованием ЕЭК ООН №39, которое много лет работало в России под видом ГОСТ Р41.39-99, а после 2019 года - это требование определено ГОСТ 12936-2017. Конкретная величина завышения скорости спидометром устанавливается техническими стандартами, но в среднем, производители закладывают величину завышения до 10% от фактической скорости. Причем зависимость не линейная, а с ростом скорости растет и величина завышения.
Спидометр вряд ли можно назвать точным измерительным прибором, но это обязательный инструмент для водителя. В любом случае в задачах транспортного мониторинга и аналитики полагаются на спутниковые данные и программные методы. Получение скорости через CAN также возможно, как и показания одометра, но мы уже знаем, что чтение CAN-шины - дополнительная опция в мониторинге транспорта, поэтому данные по CAN не всегда доступны.
Самым очевидным способом вычисления скорости является расчет на основе изменения координат. Если доступно два последовательных положения и интервал времени между ними, то посчитать расстояние можно, например, с помощью формулы гаверсинуса. А зная пройденное расстояние и время движения, посчитать среднюю, т.е. прямолинейную и равномерную, скорость несложно.
Скорость может быть скорректирована дополнительными датчиками из инерциального блока (IMU). Автомобильные трекеры, оснащенные IMU, дополнительно используют акселерометр для определения ускорения, что позволяет вычислять скорость более точно в моменты быстрого изменения движения, а также снизить “размотку” во время стоянок. Например, профессиональный GPS-логгер для замера разгона автомобилей Dragy использует всевозможные технические средства, чтобы получить максимально точный результат, что также влияет и на его конечную стоимость.
В спутниковой навигации есть понятие псевдоскорости, определяемое как производная псевдодальности по времени, где псевдодальность - расстояние между спутником и приемником, вычисленное по времени распространения сигнала без поправки за расхождение часов спутника и приемника.
Простыми словами псевдоскорость - это скорость изменения расстояния между спутником и приемником, определенная без учета отличия частоты в приемнике от номинальных значений частоты на спутнике. Используется для определения вектора скорости перемещения спутникового приемника.
Псевдоскорость можно определить в реальном времени без необходимости точного определения текущих координат объекта. Используя доплеровский сдвиг, ГНСС-приемник рассчитывает относительную скорость по каждому видимому спутнику. Итоговая скорость — это векторная сумма всех скоростей, рассчитанных относительно спутников.
Доплеровский сдвиг основан на эффекте Доплера: частота сигнала, излучаемого спутником, изменяется в зависимости от относительной скорости между спутником и приемником. Навигационный приёмник измеряет разницу между ожидаемой и принятой частотой спутникового сигнала и вычисляет относительную скорость объекта.
Для высокой точности псевдоскорость должна быть уточнена с использованием данных изменения координат и показаний других сенсоров. В итоге такой комбинированный подход из формулы скорость = путь / время, инерциального блока с датчиков ускорения и доплеровского сдвига обеспечивает высокую точность, вплоть до ±0.1 км/ч.
Большинство современных автомобильных трекеров используют метод определения скорости по GPS-координатам, а также коррекции с помощью инерциального блока. При наличии считывателя CAN-шины можно дополнительно получать скорость с автомобиля, например, для использования этих показаний в зонах плохого или отсутствующего спутникового сигнала. Использование доплеровского сдвига доступно только в высокоточных приемниках и дорогостоящих профессиональных трекерах, например, в Dragy, который был упомянут выше. Ниже представлена таблица различным методов, использующихся для определения скорости движения объекта:
В нашем датасете, к сожалению, нет скорости движения по CAN. Но зато мы можем сравнить скорость, рассчитанную GPS-трекером со скоростью, которую вычислим сами по формуле скорость = путь / время для каждой последовательной пары точек. Для начала посмотрим на все показания скорости по GPS у того же объекта, что мы использовали для анализа высот в 3 части.
И отдельно посмотрим на скорости больше нуля, т.к. стоянка для автотранспорта вполне типичное состояние. Например, для легкого автомобиля личного пользования состояние стоянки в большинстве случает может превышать 90% всего времени (режим поездок “работа / дом”). У коммерческой техники, в частности грузового автотранспорта, этот показатель обычно колеблется в районе 50%. Если исключить все точки с нулевой скоростью, результат будет следующий:
Очень типичная картина для автомобиля, учитывая скоростные лимиты в ПДД. Но давайте возьмем выборку побольше, скажем 50 случайных ТС из датасета. Это порядка 20 миллионов точек:
Картина практически никак не изменилась. Половину времени автомобили стоят, а оставшуюся половину по большей части движутся со скорость до 60 км/ч. Ну и лимит в 90 км/ч по трассе с прибавкой в 19 км/ч до получения штрафа по камерам на графике также видно ;) Ниже представлена таблица перцентилей по скорости с шагом 0.05 для всего датасета:
Теперь напишем SQL-запрос, который позволяет посчитать скорость на основе расстояния и времени между парами точек в нашей таблице. Для расчета расстояний используем PostGIS функцию ST_Distance, с которой мы познакомились в предыдущей статье. Здесь мы используем два CTE-запроса, чтобы сначала собрать пары из соседних точек, затем посчитать расстояние между ними, а далее в основном запросе по формуле скорость = путь / время посчитаем среднюю скорость в км/ч:
Теперь перенесем запрос в Jupyter и посмотрим на отклонения и корреляцию:
В результате получаем очень высокую корреляцию и минимальное отклонение, что означает, что расчет скорости в этом GPS-трекере очень близок к нашему расчету. В этом трекере используется модуль SimCom SIM868E, который обновляет ГНСС-данные с частотой 1 Гц (раз в секунду), а взаимодействие выполняются через протокол NMEA (National Marine Electronics Association) с текстовыми сообщениями RMC (Recommended Minimum Specific GNSS Data).
Интересно было бы к этому сравнению добавить скорость по CAN, возможно, в одной из статей за рамками данного цикла так и поступим, но даже без этого можно сделать вывод, что показания скорости по ГНСС достаточно точные при условии стабильного спутникового сигнала и хорошей компонентной базы самого приемника.
Курс
Курс указывает направление движения объекта относительно географического севера. Географический азимут (дирекционный угол) — горизонтальный угол, измеряемый на плоскости по ходу часовой стрелки от 0° до 360° между северным направлением осевого меридиана зоны прямоугольных координат (линией сетки топографической карты) и направлением на ориентир.
В навигационном оборудовании курс вычисляется на основе последовательных координат с использованием тригонометрических формул и обновляется только во время движения. Если объект неподвижен, трекер может возвращать курс последнего движения. На низких скоростях (менее 5 км/ч) курс может быть нестабильным из-за незначительных изменений в координатах.
Аналогичным скорости образом попробуем посчитать программно направление движения и сравнить его со значениями, полученными от самого трекера. Используем встроенную в PostGIS функцию ST_Azimuth:
Функция ST_Azimuth рассчитывает азимут между двумя точками на сферической поверхности с использованием сферической тригонометрии. Она основана на формуле азимута для сферических координат. В случае, если координаты точек совпадают, функция возвращает пустое значение (NULL). Теперь перенесем этот SQL-запрос в Jupyter и визуализируем данные:
На графиках видно, что есть 2 типа областей. В одной области данные очень близки и практически отсутствует шум, в другой - максимальный разброс и никакой корреляции. Найдем участок перехода из одного типа области в другую и посмотрим поближе:
Я дополнительно вывел скорость, т.к. все довольно очевидно. В точках, где скорость нулевая, т.е. объект не двигается, программный расчет азимута невозможен, но GPS-азимут присутствует, т.к. навигационный терминал продолжает фиксировать направление. Как ранее указывалось, это либо просто последнее известное направление, либо его скорректированное значение с помощью того же инерциального блока с акселерометром.
Конкретно у этого трекера отсутствует датчик ускорения и курс во время стоянки колеблется во всем интервале от 0 до 360 градусов. Поэтому в случае невозможности корректировки курса на стороне навигационного оборудования, как минимум, стоит отсекать направление движение при условии нулевой или лучше околонулевой (менее 5 км/ч) скорости.
==============================
Мы рассмотрели методы расчета скорости и направления движения в спутниковой навигации и транспортной телематике. Показано, что скорость по ГНСС имеет высокую точность при стабильном сигнале. Использование дополнительных датчиков позволяет корректировать показания при резких ускорениях. Доплеровский сдвиг отличный способ расчета скорости, но доступен только в дорогостоящем профессиональном оборудовании. Программный расчет азимута требует учета стоянок, где данные становятся некорректными.
В 5 части мы разберем флаг валидности, который определяется внутренними алгоритмами трекера, количество видимых спутников при решении навигационной задачи и значение снижения точности в горизонтальной плоскости (HDOP).
Часть 5. Качество данных и валидация
В мониторинге транспорта телематические данные — это основа для принятия решений. Однако даже самые продвинутые системы не застрахованы от ошибок и погрешностей. Расхождения в данных спутниковой навигации, которые мы разбирали в предыдущих статьях, зачастую обусловлены не только методами расчета, но и качеством самих данных.
В этой статье мы разберем оставшиеся 3 поля из нашего датасета, кроме показаний пробега по одометру, полученные через CAN-шину. Эти поля содержат значения, определяющие надежность спутниковых данных:
- satellites_count - количество видимых спутников при решении навигационной задачи.
- hdop - фактор снижения точности в горизонтальной плоскости.
- valid - итоговый флаг валидности данных.
Мы разберем, как эти показатели формируются, какие значения считаются приемлемыми и как интерпретировать их при анализе данных. На основе реального датасета мы проанализируем влияние качества данных на точность расчета пробега.
Количество видимых спутников
Количество навигационных спутников является одним из ключевых факторов, определяющих точность и надежность данных, получаемых системой спутниковой навигации. Оно непосредственно влияет на возможность решения навигационной задачи и точность определения местоположения.
Требуется как минимум 3 спутника для определения координат на плоскости (широта и долгота), используя метод трилатерации. И как минимум 4 спутника для добавления измерения высоты над уровнем моря. Если количество видимых спутников падает ниже минимального уровня, навигационная задача становится нерешаемой, и трекер теряет возможность вычисления координат. Даже при 4–6 спутниках точность данных может быть снижена из-за их плохого геометрического расположения (например, спутники “сконцентрированы” на одном участке неба).
Качество сигнала от количества спутников:
- Хороший сигнал (10 и более спутников). Высокая точность координат, погрешность в пределах нескольких метров. Надежное определение высоты и стабильные данные о скорости и направлении движения.
- Средний сигнал (6–8 спутников). Погрешность координат может достигать десятков метров. Значительные ошибки в расчёте высоты. Сильная зависимость от геометрического расположения спутников (HDOP).
- Плохой сигнал (менее 4 спутников). Невозможность решить навигационную задачу. Прерывания в определении или резкие скачки координат.
Факторы, влияющие на количество видимых спутников:
- Местоположение. В городах сигнал может отражаться от зданий, вызывая “многолучевость”. В туннелях и подземных паркингах количество видимых спутников резко снижается или полностью отсутствует.
- Оборудование. Современные приёмники работают с несколькими системами (GPS, ГЛОНАСС, Galileo, Beidou), увеличивая общее количество видимых спутников. Старые приемники, поддерживающие только одну систему, в этом проигрывают.
- Погодные условия. Сильные осадки или плотные облака могут ухудшить качество сигнала, хотя количество спутников остается прежним.
- Радиоэлектронная борьба (РЭБ). Глушилки GPS-сигналов могут искусственно создавать ситуацию, когда количество видимых спутников становится недостаточным.
В ситуациях с ограниченным числом спутников или их плохим расположением необходимо применять фильтрацию данных, комбинирование с инерциальными системами (IMU) и учитывать показатели, такие как HDOP, чтобы снизить ошибки в расчётах. Например, стандартная конфигурация оборудования Навтелеком отбраковывает данные полученные от менее чем 4 спутников.
Горизонтальное снижение точности
DOP (Dilution of Precision с англ. — «снижение точности») — термин, использующийся в области систем глобального позиционирования для параметрического описания геометрического взаиморасположения спутников относительно антенны приёмника. Существуют следующие компоненты DOP:
- HDOP (horizontal DOP) — снижение точности в горизонтальной плоскости (широта и долгота).
- VDOP (vertical DOP) — снижение точности в вертикальной плоскости (высота).
- PDOP (position DOP) — снижение точности по местоположению: PDOP^2 = HDOP^2 + VDOP^2.
- TDOP (time DOP) — снижение точности по времени.
- GDOP (geometric DOP) — суммарное геометрическое снижение точности по местоположению и времени: GDOP^2 = PDOP^2 + TDOP^2.
В транспортной телематике автомобильные трекеры чаще всего предоставляют только значение HDOP, который отражает качество геометрического расположения спутников относительно приемника для определения широты и долготы. Чем меньше значение HDOP, тем точнее определяются координаты объекта. Этот параметр является одним из ключевых индикаторов точности данных в спутниковой навигации.
HDOP зависит от того, как спутники расположены на небесной сфере относительно приемника. Если спутники расположены далеко друг от друга (широкое покрытие неба), HDOP будет низким, что указывает на высокую точность. Если спутники сгруппированы в одной области, HDOP возрастает, и точность снижается. HDOP показывает, насколько велика погрешность координат из-за геометрического расположения спутников, даже если сигналы от каждого из них получены без ошибок.
Точность местоположения в зависимости от HDOP:
- 0-1 - Идеальная точность. Такие значения характерны для открытых пространств и качественного оборудования при отличных условиях приема и большом количестве спутников. Координаты имеют погрешность в пределах 2–5 метров.
- 1-3 - Высокая точность. Подходит для большинства задач, включая мониторинг транспорта и расчет пробега. Погрешность обычно в диапазоне 5-10 метров.
- 3-6 - Средняя точность. Может использоваться в вычислениях, но погрешность может достигать достигать 20–50 метров, особенно если спутники находятся низко над горизонтом или сгруппированы в одной части неба.
- 6 и более - Низкая точность. Погрешность превышает 100 метров, данные становятся бесполезными. Такой уровень HDOP наблюдается в условиях плотной городской застройки, в туннелях или при плохом расположении спутников.
Факторы, влияющие на HDOP:
- Количество видимых спутников. Чем больше спутников, тем ниже HDOP. Минимально требуемое количество спутников — 4, но для низкого HDOP необходимо 6 и более.
- Геометрия спутников. Разброс спутников по небу является критическим фактором. Если спутники сгруппированы в одной части неба, HDOP возрастает.
- Местоположение приемника. В туннелях, под мостами или в густых лесах качество сигнала ухудшается, а HDOP растёт.
- Внешние помехи. Глушение GPS-сигнала или многолучевость (отражение сигнала от зданий) также увеличивают HDOP.
Низкий HDOP позволяет доверять данным о положении, скорости и направлении, в то время как высокий HDOP требует фильтрации данных или их корректировки. Конфигурация оборудования Навтелеком по умолчанию отбрасывает любые координаты с HDOP выше 2.5.
Флаг валидности
Флаг валидности - это параметр, определяющий, насколько данные, предоставленные спутниковым приёмником, являются надежными и пригодными для использования. Этот индикатор играет ключевую роль в фильтрации и обработке данных в системах спутниковой навигации и транспортной телематики.
Его установка происходит на уровне навигационного оборудования, которое анализирует качество входящих данных от спутников и на основе встроенных алгоритмов принимает решение о валидности. Если данные не соответствуют минимальным требованиям точности, флаг валидности снимается.
Количество видимых спутников и HDOP являются основными из параметров, определяющих валидность координат. Но дополнительно можно использовать значения скорости и высоты, а также инерциальные и другие датчики. Более подробно о настройке валидации в оборудовании Навтелеком можно прочитать в их документации.
Датасет
Флаг валидности, как и количество видимых спутников и HDOP, являются необязательными параметрами в навигационной телеметрии, поэтому не все автомобильные трекеры способны их отправлять. А даже если такая функциональность имеется, передачу этих данных могут просто отключить с целью экономии трафика. Поэтому сначала отберем из нашей выборки трекеры, которые имеют нужные нам поля:
Статистика по флагу валидности, количеству спутников и HDOP на всем нашем датасете следующая:
- valid - флаг валидности. true: 189 139 560 - трекер считает данные валидными, false: 4 802 132 - трекер считает данные невалидными, null: 940 967 - трекер не имеет функции валидации
- sat_count - количество спутников. exist: 194 882 659 - количество спутников известно, null: 0 - в нашей выборке все трекеры отправляют количество спутников
- hdop - фактор снижение точности. exist: 113 206 680 - значение hdop известно, null: 81 675 979 - значение hdop неизвестно
Самый “редкий” параметр - HDOP, по нему и отфильтруем выборку трекеров из датасета. Нам подходит примерно половина трекеров, возьмем из них лидера по количеству телеметрии:
Нам повезло, так как здесь присутствуют «полеты», которые негативно влияют на корректность итогового пробега транспортного средства:
Распределение по количеству видимых спутников близко к нормальному вокруг значения в 17. Это хороший показатель, т.к. при наличии более 10 спутников мы можем ожидать хорошее качество координат.
Далее динамика количества видимых спутников за небольшой период. Наблюдается паттерн падения количества спутников до нуля на начале очередного рейса. Это говорит о холодном старте GPS-модуля при включении массы на автомобиле и инициализации трекера, подключенного напрямую к бортовой сети.
Теперь распределение значений по HDOP. Практически вся телеметрия была зафиксирована при оптимальном расположении навигационных спутников в небе. И это не удивительно, так как выше мы убедились в их достаточном количестве.
Динамика значений HDOP за начальный интервал в датасете:
Распределение значений флага валидности. Почти всю телеметрию трекер счел валидной и пригодной для дальнейшей обработки.
Динамика флага валидности за начальный интервал. Очень похоже на паттерн падения количества спутников на старте движения автомобиля, верно?
Мы уже знаем, что HDOP и количество спутников - это параметры для расчета итогового значения флага валидности, поэтому посмотрим взаимосвязь этих значений:
И рассчитаем линейную корреляцию:
Между флагом валидности и количеством спутников средняя положительная корреляция, а между флагом валидности и HDOP - средняя отрицательная. Знак корреляции очевиден, т.к. при росте количества спутников и снижении HDOP - качество данных улучшается, и наоборот. Средняя линейная связь говорит лишь о том, что количество спутников и HDOP - не единственные параметры расчета флага валидности.
Интересно посмотреть на корреляцию этих значений на всем датасете. Запускаем расчет по 100+ миллионам записей и смотрим, что получилось:
Ничего нового мы тут не увидели, корреляция сохранилась в тех же интервалах. Таинственных инсайтов мы тут не получили, что в общем-то ожидаемо. Но важно отметить, что достаточное количество видимых спутников не гарантирует отличный HDOP, т.к. спутники могут быть сконцентрированы в одной области неба и/или быть слишком низко над горизонтом.
Программная фильтрация
Для примера возьмем тот же трекер за месяц, когда наблюдалось 2 типа глушения: “телепорт” и “круги”. Телеметрия была получена от трекера Навтелеком с такими же параметрами, как на рисунке 7. Для начала построим трек по всем точкам без исключения и посчитаем пробег. Получаем 1 758 км.
Теперь попробуем посчитать пробег и построить трек только для точек с верным флагом валидности. Итоговый пробег незначительно снизился, до 1 745 км. Но круги и телепорт никуда не делись. Валидации на стороне оборудования здесь явно недостаточно.
Попробуем ужесточить требования к HDOP до 2-х единиц. Телепорт и круги остались, но пробег снизился до 1 732 км.
Теперь попробуем увеличить минимальный порог количества видимых спутников, которые участвовали в решении навигационной задачи, до 10. И вот результат, телепорт полностью исчез и срезало часть кругов. Пробег теперь 1 452 км.
Ну и поиграемся с высотой. Топографическая карта говорит, что в этом регионе высота не более 125 метров над уровнем моря, поэтому отфильтруем все выше 100 метров. Как итог, кругов почти не осталось, а пробег упал до 1 407 км.
Таким образом, программной фильтрацией, по сути только частично повторяющей алгоритм валидации внутри оборудования, но с более жесткими параметрами, мы снизили пробег, рассчитанный по ГНСС, с 1 758 км до 1 407 км - на целых 351 километр.
Конечно, мы не можем восстановить данные, которые были потеряны из-за глушения и не учитываем реальный пробег на этих участках, который невозможно посчитать по ГНСС в зонах глушения. Но как минимум избегаем “накрутки” ненастоящего пробега.
Заключение
Достоверность и точность данных спутниковой навигации — это основа эффективного мониторинга транспорта. Качество данных определяется множеством факторов, среди которых важнейшими являются:
- Количество видимых спутников.
- Уровень горизонтального снижения точности.
- Флаг валидности, объединяющий все показатели качества.
Анализ реального датасета показал, что качество данных можно улучшить, используя фильтрацию по специальным параметрам телеметрии. Например, настройка фильтров оборудования исключает точки с высоким HDOP или недостаточным числом спутников. Однако, как показала корреляция, валидность данных не сводится только к этим параметрам — это комплексный показатель. Для повышения точности расчетов важно использовать дополнительные данные, такие как показания IMU и другие сенсоры.
Следующая 6 часть будет заключительная. В ней мы изучим показания одометра по CAN и сравним пробег по ГНСС с учетом всего того, что мы уже знаем. Например, какой же километраж «сожрали» телепорт и круги выше. И как с этим жить!
Часть 6. Сравнение и выводы
Наконец-то мы подошли к заключительной части цикла статей, в рамках которого были разобраны аспекты расчета пробега транспортного средства по данным спутниковых систем и штатного одометра. Целью данного цикла являлось изучение причин расхождения между пробегом, зафиксированным одометром и спутниковой навигацией, а также предложение методов корректировки данных для повышения точности измерений.
В предыдущих публикациях мы рассмотрели ключевые факторы, влияющие на точность измерений: состояние транспортного средства и условия его эксплуатации, высоту над уровнем моря, качество навигационного оборудования и обработку полученных данных. Теперь настало время перейти к финальному сравнению – пробег по данным ГНСС против пробега, полученного со штатного одометра через CAN-шину автомобиля.
Заключительная часть цикла позволит сформировать целостное представление об использовании значений пробегов полученных различными способами в задачах мониторинга транспорта.
Основные выводы из предыдущих публикаций:
- Часть 1. Расхождения между пробегом по одометру и спутниковой навигации обусловлены различиями в принципах измерения и их точности.
- Часть 2. Для сравнения пробега по спутникам и одометру необходимо учитывать доступность данных и их качество, а также влияние различных внешних факторов.
- Часть 3. Учёт высоты над уровнем моря влияет на точность расчета пробега по спутникам, так как игнорирование вертикальных перемещений приводит к погрешностям в сравнении с данными одометра.
- Часть 4. Точность расчета в спутниковой навигации зависит от качества данных и алгоритмов их обработки, однако комбинированное использование ГНСС, инерциальных датчиков и CAN-шины позволяет минимизировать ошибки и повысить надежность систем мониторинга транспорта.
- Часть 5. Качество данных спутниковой навигации, определяемое количеством видимых спутников, их положением (HDOP) и алгоритмов валидации, оказывает значительное влияние на точность расчета пробега, и для минимизации ошибок необходим анализ треков и программная обработка.
В этой статье мы сравним пробег, полученный со штатного одометра через CAN-шину, с рассчитанным пробегом по спутниковой навигации с учетом всего ранее сказанного. Для начала вспомним способы расчета пробега. В предыдущих статьях мы использовании встроенные функции расширения PostGIS для РСУБД PostgreSQL, а именно:
- ST_Distance - функция расчета минимального расстояния, которая работает как с типом geometry, так и с типом geography. Для geometry возвращает декартово расстояние в указанных проекционных единицах, для geography - минимальное геодезическое расстояние в метрах. В зависимости от флага use_spheroid используется:
- ST_DistanceSpheroid - сфероид, определенный в указанном SRID. Расстояние вычисляется более точно.
- ST_DistanceSphere - сфера и радиус, полученные из сфероида, определенного SRID. Расстояние вычисляется быстрее, но менее точно.
- ST_3DDistance - функция расчета минимального трехмерного декартового расстояния в проекционных единицах, но работает только с типом geometry. Позволяет учитывать 3-ю компоненту координат - высоту.
Эти функции позволяют рассчитать расстояние между двумя соседними координатами, соответственно итоговый пробег - это сумма всех расстояний. В PostGIS есть аналогичная функция ST_Length, давайте сравним ее с самописной реализацией для трекера из предыдущей статьи за весь 2024 год:
В итоге получаем расхождение пробега в метрах только в 6-ом знаке после запятой, поэтому для дальнейших расчетов будем использовать функцию ST_Length вместо самописной реализации.
Теперь посчитаем пробег по данным со штатного одометра. Здесь все просто, достаточно взять начальную и конечную точку и посчитать между ними разницу, т.к. одометр - это монотонно возрастающее значение с привязкой ко времени (fix_time):
Получаем итоговый пробег за весь период по одометру 10 887 км. При этом пробег посчитанный выше по спутникам равен 18 302 км. Разница в 8 тысяч километров, а это практически половина всего пробега за год! Давайте разбираться… Выведем график пробега по CAN за весь период:
Скручиваний пробега или каких-то других аномалий на графике одометра нет. Видно только, что под конец года в IV квартале машина стала меньше двигаться. Давайте попробуем наложить график изменения пробега по одометру на график накопления пробега по ГНСС. Для этого посчитаем расстояние между каждой парой точек по ГНСС и одометру:
Интересный факт! CAN-шина данного транспортного средства фиксирует показания пробега с шагом в 125 метров. При этом пробег по ГНСС, который мы высчитываем сами по координатам ближе к реальному значению в конкретный момент времени. На графике это выглядит вот так:
Переведем значения графиков в накопительные величины для оценки суммарного роста пробега, для этого организуем сумматоры для каждого из значений по CAN и GPS и посмотрим на небольшой участок времени:
Ну и теперь сравним динамику роста пробега по одометру и спутникам за весь интервал времени:
Интересная картина. По одометру машина под конец года стала меньше ездить, а по ГНСС во второе полугодие рост пробега наоборот увеличился. Как итог - пробеги, полученные разным путем, разошлись практически в 2 раза. Попробуем разделить 2024 год на 2 половины и разобраться в чем разница.
Движение за 1-ое полугодие по городу Краснодар без каких-либо проблем:
Движение во 2-ом полугодии с выездами в сторону города Славянск-на-Кубани с “телепортами” и “кругами”:
Отдельно стоит отметить РЭБ, который и стал основной причиной “накрутки” пробега по спутникам:
В предыдущей статье мы уже придумывали собственные параметры фильтрации для борьбы с радиоэлектронной борьбой (как бы это не звучало). Попробуем еще раз простыми порогами “победить” РЭБ, а именно:
- флаг валидности должен быть TRUE;
- HDOP принимаем только идеальный (значение 0);
- количество спутников должно быть выше 15;
- высоту больше 100 метров над уровнем моря считаем невалидной;
- а также игнорируем данные, если расстояние между координатами больше 1 км.
Такая фильтрация дает следующий результат на наших графиках:
Если разделить данные до и после появления РЭБ, то есть когда ГНСС работал корректно, между показаниями одометра и спутниками будет абсолютная корреляция и среднеквадратическое отклонение в 50 километров:
Когда машина начала базироваться в зоне РЭБ, то корреляция упала до 0.95, а отклонение выросло до 370 километров:
Выводы
Решить проблему РЭБ в мониторинге транспорта наивной фильтрацией с какими-то одними значениями порогов невозможно. Наверное, самым очевидным решением является полный переход на показания одометра через CAN, но к сожалению, это будет работать только для автомобилей с подключенным и исправно работающим CAN-считывателем.
Для остальных автомобилей без CAN-считывателя, которых большинство в транспортной телематике, работа РЭБ остается серьезной проблемой, и если не брать в расчет возможности LBS-навигации и технологий Map Matching, которые выходят за рамки данного цикла статей, то остается только разработка более сложных алгоритмов с адаптивными параметрами под каждый объект мониторинга с учетом его текущего местоположения.
Для большинства транспортных средств без серьезных отклонений в работе штатного одометра и проблем с глушением спутникового сигнала будет наблюдаться типичная картина, при которой значение пробега по навигации расчет быстрее, чем по одометру. И со временем эта разница будет только накапливаться. Можно сказать, что это “стандарт” в мониторинге транспорта:
Ниже пример нового автомобиля без проблем со спутниковой связью, у которого показания одометра и спутникого пробега идеально совпадают. Со временем картина изменится на представленную выше, т.к. эксплуатация ТС неизбежно приведет к погрешности в работе одометра.
А вот “отличный” пример влияния РЭБ на современную транспортную телематику:
Заключение
Серебряной пули, как обычно, не оказалось! Универсального и идеального метода расчета пробега не существует, но сочетание нескольких подходов и грамотный анализ данных позволяет минимизировать ошибки и принимать более точные управленческие решения.
Сравнение показало, что разница в пробеге между ГНСС и одометром может достигать значительных величин, особенно при неблагоприятных условиях, таких как воздействие РЭБ, ошибки спутникового сигнала или некорректные алгоритмы обработки данных. Однако фильтрация данных по ключевым параметрам — флагу валидности, HDOP, количеству видимых спутников и высоте — позволила серьезно сократить погрешность, но не решить проблему полностью.
Для точного контроля пробегов автопарка необходимо комбинировать данные одометра и ГНСС, учитывать внешние факторы (городская застройка, рельеф, помехи), применять фильтрацию данных и учитывать особенности эксплуатации. Простые методы исправления данных (жёсткие пороги) не всегда спасают, поэтому разработка адаптивных алгоритмов коррекции остается важной задачей.
Эта статья — не просто технический разбор, а настоящая энциклопедия для тех, кто хочет разбираться в транспортной телематике на уровне эксперта. Мы проделали колоссальную работу, разобрав все аспекты расхождений между показаниями ГЛОНАСС и одометра: от механики и математики до реальных примеров и тестов.
Здесь нет пустых теорий — только практика, цифры, графики и конкретные выводы. Если кто-то после прочтения не сделает для себя важных открытий, то, скорее всего, ему просто неинтересна эта тема. Это материал для тех, кто стремится к профессиональному уровню, а не просто «оказывает услуги мониторинга».
В благодарность и уважение создателем статьи за глубину проработки и желание сделать рынок умнее Вы можете поставить сердечко справа внизу ❤
Будем на связи - впереди еще много таких профессиональных статей😎