| Автор | Сообщение |
|---|---|
|
CrazyBeard Данилкин Олег Юрьевич Статус: пользователь 2 октября 2025 года в 14:09 |
Сразу извиняюсь за длинное чтиво, но, надеюсь, кому-нибудь будет полезен опыт )Ни для кого не секрет, что живем в пору непростых времен и "глушилки" сигналов спутниковых систем (GPS, Глонас и иже с ними) уже ни для кого не новинка. Но маршрут по Крыму раскрыл для меня данный опыт гораздо шире (хотя он и так не малый). Итак, вводные: - маршрут по Крыму от Керчи до Евпатории, центральная часть "по горам" - с собой 7 устройств записи треков, внимания заслуживают 5 из них (в порядке убывания доверия): Garminx eTrex 30x, Huawei P40 + OSMAnd (устройство поддерживает 4 спутниковые системы: GPS, Glonass, Galileo и Beidou), часы Garmin Fenix 3, iPhone + myTracks, велокомп IGSPORT - разные по ухищрениям способы борьбы с сигналами спутников в регионе По факту прохождения маршрута имеем: - треки с 5 устройств - порядка 120км трека из 600км не записалось ни на одно устройство - наиболее "аномальные" зоны (по убыванию заглушенности): окрестности Феодосии, окрестности аэродрома в Новофедоровке, окрестности Керчи с мостом - в "горах" все худо бедно неплохо, проблемы, и те незначительные, только на вершинах, где открывается прямая видимость в сторону Черного моря |
|
CrazyBeard Данилкин Олег Юрьевич Статус: пользователь 2 октября 2025 года в 14:11 |
Виды проблем:- полностью заглушенный сигнал / помехи (устройства не видят спутники) - трек не пишется - глушатся отдельные системы, обычно это GPS и Глонасс, при этом beidou "вывозит"! В перечне устройств не просто так указал, что одно из устройств его поддерживает. - подмена координат и высоты. При этом в некоторых случаях высота изменена, но дельта соответствует реальности. Т.е. к высоте в каждой точке добавлена фиксированная величина и зная реальную можно просто сдвигом (вычитая одно и то же число) привести все в норму. В других случаях высота постоянная, около 1000-1200 м.н.у.м. |
|
CrazyBeard Данилкин Олег Юрьевич Статус: пользователь 2 октября 2025 года в 14:11 |
- подмена/помехи во времени. Известно, что устройства навигации рассчитывают координаты на основе скорости прохождения сигнала от спутников, для этого используется прицезионно точное время, которое при этом также транслируется со спутниковых систем. В Крымских треках с трех! разных устройств обнаружены артефакты, когда верно идущие в хронологическом порядке точки с координатами имеют искаженное время (часть точек проваливается "в прошлое" в диапазоне обычно 2-10 минут, но велокомп IGSPORT давал провалы до нескольких дней!). В принципе, таких точек не много, на весь маршрут порядка полусотни провалов в прошлое, в каждом из которых обычно 2-5 точек, максимум 10. Один провал - 200 точек. Причины такого неизвестны, встречался с таким ранее на треках из глухих лесов, но обычно 1-2 точки изредка вываливались, которые просто удалялись. Здесь же масштаб заметно шире, но тоже не критичный.- навигатор гармин с барометрическим датчиком выдавал интересный артефакт. При переходе от подмены сигнала с большой высотой к нормальному сигналу на треке это сказывалось не скачкообразно 1000 - 100 метров одномоментно, а плавно, как будто самолет идет на посадку )) Полагаю, это связано с алгоритмами сглаживания высоты на основании спутников + барометрического датчика для повышения точности, но тут как раз эта точность в минус играла. Цифры приходили в норму примерно за 5-10 минут. |
|
CrazyBeard Данилкин Олег Юрьевич Статус: пользователь 2 октября 2025 года в 14:12 |
Цель: собрать из того, что поназаписалось максимально близкий к истине трекКрайность: Сценарий отсутствия сигналов навигации рассматривался до похода и на крайние случаи был взят на вооружение очевидный вариант. При отсутствии сигналов на маршруте делались "якорные" фотографии с приметными объектами на местности, которые можно потом сопоставить однозначно с картами, ну и, соответственно, время этих фотграфий. По этим якорным точкам можно накидать примерный график движения усреднив по скорости движения отрезки с известными координатами и временем на концах. Инструментарий. Для выполнения цели попутно на коленке был реализован ряд интсрументов для автоматизации работы с треками, которыми и хочу поделиться. Сразу замечу, было лень делать человечно, делалось быстро - поэтому, в том числе, недоступна работа с большими файлами.. Обрабатывайте на дневных треках, а сбор в один файл осуществляйте последним этапом. |
|
CrazyBeard Данилкин Олег Юрьевич Статус: пользователь 2 октября 2025 года в 14:13 |
1. Создание реалистичного рисованного трека.Начнем с конца. Рассмотрим случай описанный как крайость - полное отсутствие сигналов спутниковых систем навигации, а равно и треков на определенных участках. Для проблемных отрезков рисуем на сервисе nakarte.me нитку трека вручную (чем больше узловых точек, тем точнее будут данные по высотам из SRTM). На одном треке можно совместить несколько сегментов. Вдоль нарисованной нитки в рамках того же трека раземщаем точки у которых в наименовании будет указано время их прохождения в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС". Это время будет связано с ближайшими узловыми точками трека при расчете, поэтому, если точка есть на длинном прямом отрезке трека без узловых точек - добавляем промежуточную узловую точку в нужно месте. Наличие точек со временем на концах каждого сегмента ОБЯЗАТЕЛЬНО. Время берем с якорных фото, либо на границе с записанными на навигаторы участками трека. Пример подготовленного трека на nakarte.me для генерации "восстановленного трека" https://nakarte.me/#m=12/45.39688/36.43650&l=O&nktl=xVBGPHVJw_MYYu4q9EqXUQ. Там для понимания добавлены отрезки которые реально записались на навигаторы и известно время прохождения их точек. Отдельным треком AnchorPoints добавлен "рисованный" трек и якорные точки + точки со временем с реального трека. Выгружаем этот подготовленный трек AnchorPoints вместе с высотами (Save as GPX with added elevation (SRTM)) в файл gpx. Выгруженный файл скармливаем реализованному на коленке сервису https://crazybeard.ru/velotrex/restore-track/ (в интерфейсе невозможно запутаться), нажимаем "go", если скучно - читаем сгенерированыый лог действий, в самом ниpу страницы копируем сгенерированное содержимое gpx файла и сохраняем. |
|
CrazyBeard Данилкин Олег Юрьевич Статус: пользователь 2 октября 2025 года в 14:13 |
2. Скрещивание нескольких треков с разных устройств.Среди проблематики отмечена ситуация с подменой высоты, но сохранением "дельты". Для автоматизации коррекции коленный сервис https://crazybeard.ru/velotrex/restore-track/move-ele.php В поле ввода вставляем содержимое файла gpx. В первое поле ввода вставляем значение высоты, которое должно быть у первой точки трека! Если у нас, высота записалась как 1332 метра, а реальная (например по SRTM) должна быть порядка 332 метров, то ставим 332 и сервис для каждой точки вычтет разницу, т.е. 1000 метров. Результат также сохраняем в файл. Бонусом в этом же сервисе по аналогии с высотой можно "подвинуть" и время. Это нужно для ситуации, когда треки с устройств которые были у разных участников идущих на маршруте на значительном отдалении друг от друга и чтобы привести точки трека к одному времени, время можно подвинуть. Для этого во второе поле ввода (после высоты) указываем смещение в секундах, на которое нужно подвинуть время в треке. Значение может быть отрицательным. |
|
CrazyBeard Данилкин Олег Юрьевич Статус: пользователь 2 октября 2025 года в 14:14 |
3. "Лечение" проблематики с выкидыванием времени в прошлоеСервис https://crazybeard.ru/velotrex/restore-track/fix-time.php, интерфейс привычный, не промазать. Загружаем трек, обрабатываем, сохраняем - ничего нового. Алгоритм следующий: точки последовательно перебираются, если время последующих меньше чем у текущей, то листаем до точки у которой время будет больше как и положено и для всех точек данного отрезка пересчитываем время пропорционально расстоянию (считаем, что на отрезке двигались равномерно). Если вдруг несколько точек лягут на одну и ту же секунду (дроби не используем), то лишние точки удалятся. |
|
CrazyBeard Данилкин Олег Юрьевич Статус: пользователь 2 октября 2025 года в 14:14 |
По всем вопросам, предложениям и замечаниям - welcome: mail@robodal.ru, @OlegDanilkin (telegram) |
|
CrazyBeard Данилкин Олег Юрьевич Статус: пользователь 2 октября 2025 года в 14:23 |
Ну и в завершение - результат двух дней кропотливого труда в формате "было / стало"
![]() |
|
CrazyBeard Данилкин Олег Юрьевич Статус: пользователь 2 октября 2025 года в 14:24 |
![]() |