Высокоточная навигация GNSS RTK
Есть такая технология навигации как GNSS RTK. Это высокоточная навигация с точностью 2,5 см и частотой выдачи координат 25Hz. Я думаю вы уже догадываетесь, что с этим можно делать? Не всякий GNSS приемник может работать в режиме высокой точности. Вот неполный список тех, что могут: U-Blox ZED-F9P, GeoS-5 RTK, Allystar TAU1302, NV08C-RTK-M. В этом тексте я выполнил обзор модуля ZED-F9P.
Блок-схема оборудования предельно простая. Есть статическая базовая станция и подвижный ровер. Оба приемника принимают сигнаы со спутников, а также обмениваются данными между собой. Эти данные называются поправками. Поправки передаются не важно как. Можно например по UART от модуля base к модулю Rover в симплексном режиме передавать данные.
Если же разнести базовую станцию и ровер на несколько сотен метров и передавать RTCM3 поправки по LoRa, то RTK тоже работает.
Что надо из доков?
Основной документ, который нужен для корректной конфигурации базовой станции и ровера это ZED-F9P u-blox F9 high precision GNSS module Integration manual (110 страниц). Там указано как настраивать базовую станцию и ровер. Конфигурировать модуль можно как по UART так и по USB.
Надо активировать RTCM3 пакеты либо класса MSM4 либо класса MSM7. Если передавать поправки MSM4 и MSM7 вперемешку, то RTK Fixed будет нестабильным, либо вообще не включится. В настройках ровера мы использует либо Set1 либо Set2. В настройках базы надо прописать колонку set3. Далее при надежном трансфере RTCM3 пакетов FTK Fixed режим должен включиться сам.
Как протестировать высокоточную навигацию?
Вот есть демонстрации возможностей Ublox GNSS модуля ZED-F9P. Автор решил обвести буквы на асфальте.
Я тоже решил оценить точность измерения координат.
Найти подходящее место оказалось не так то просто. Теннисный стол вот очень кстати. Теннисные столы хороши для оценки GNSS тем, что они часто под открытым небом (прямая видимость спутников GNSS). Плюс на них удобно установить LapTop с диагностической утилитой (U-Center) ресивера.
Очень повезло с погодой в тот день. Такой способ позволяет оценить точность GNSS приемника. Теннисные столы как-будто специально созданы для тестов GNSS-RTK.
Оценивать точность обводя буквы это плохая идея. Рука может дрогнуть. Есть более верный способ тестирования. В качестве второго полигона я решил выбрать карусель с расчетом на что, если навигация высокоточная, то GNSS трек будет вычерчивать окружности как циркуль т. е. всегда на одной и той же окружности. Этот способ рекомендуют сами vendor(ы).
ZED-F9P в режиме RTK Fixed показывает самые высокоточные координаты. GNSS треки отрисовываются как по рельсам.
Карусели отлично подходят для оценки высокоточных навигационных систем. Идея оценки проста. Если трек вырисовывает наложенные друг на друга окружности, значит высокоточная навигация работает. Тут же можно оценить ошибку, просто измерив ширину скопления точек.
При разработке устройств на основе GNSS RTK вы столкнетесь с целой серией трудностей.
Трудность 1
Нехватка памяти программ. Для гарантированной доставки пакетов понадобится целый стек протоколов. По сути TCP версии Light. Надо было оптимизировать сборку прошивки по-максимому чтобы уместить функционал во Flash память 230кByte. Пришлось выпиливать из кода всё лишнее.
Трудность 2
Надо было добиться сравнительно высокой для LoRa битвой скорости передачи данных RTCM поправок. Это порядка 600 Байт/с..2kБайт/с на 10+ км. При этом максимальная разрешенная мощность 50mW. Ваши антенны и аналоговый тракт должны быть просто безупречными.
Трудность 3
Поток RTCM3 пакетов должен быть непрерывный. Если хоть один байтик из мегабата выпадет то RTK отключиться примерно на 10...20 минут.
Трудность 4
В физика LoRa трансивера SX1262 передает пакеты по 255 байт, а пакеты RTCM3 были порядка 1024 байт. Придется делать механизм программного туннелирования пакетов.
Трудность 5
Отладка возможна GNSS RTK возможна только на улице. Должно быть открытое небо чтобы приемники могли получить сигнал от спутников. В наших широтах хорошую погоду заказать невозможно. Разработка происходила зимой. Это был на редкость особенно холодный год. За окном минус 35 градусов по Цельсию. Пред выходом на улицу все одевают двойные штаны. На морозе -35 провода превращались в проволоку и ломались как спагетти. Руки от холода не слушаются мозга, пальцы не чувствуют предметов. Подключать и настраивать оборудование короткими вылазками из автомобиля. Приходилось каждую деталь брать с собой на полигон в тройном экземпляре. Три человека чтобы всё это нести.
Трудность 6
Для отладки LoRa надо найти открытое пространство с прямой видимостью порядка 10км...20км. Причем для тестов LoRa надо такой полигон, где можно непрерывно увеличивать и уменьшать расстояние между трансиверами не нарушая при этом прямой видимости. Россия страна плоская. Гор нет.
Причём нельзя просто встать на трассе обрамленной елочками и тестировать радио link. LoRa радио это вам не лазерный луч. Представьте себе огурец увеличенный до длинны между трансиверами. Огурец длиной 15 км. Так вот, это зона Френеля. Солгасно теории радиосвязи надо чтобы в объёме зоны Френеля не было ничего кроме воздуха. Никаких лесов, домов, мостов. Только так радио link будет стабильный. А теперь попробуйте найти в своём городе миллионнике, где на каждой улице торчат человейники по 24 этажа такое место, где поместится этот огурец.
Тестировать приходилось далеко за городом. Приходилось наряжать экспедиции на двух автомобилях, чтобы просто отладить прошивку. Нанимать водителей, арендовать персональные автомобили. Нанимать 2х...4х помощников, обучать их. На Западе и вовсе для таких радио экспериментов арендуют у государственных организаций беспилотное воздушное пространство, запускают гелиевые аэростаты в стратосферу и измеряют дальность LoRa link(а) по всей стране. Ваш StartUp такое потянет?
Трудность 7
Базовая станция 5...15 минут определяет свои точные координаты прежде чем включить трансляцию поправок в режиме TIME. Без этого RTK не включится. Операторы тем временем прозябают в снегу на морозе.
Трудность 8
Дорогое оборудование. Для отладки надо купить оборудования на 700 USD. И это если не считать микроконтроллер и радио-трансивер.
Трудность 9 (решающая)
Эмбарго чипов ZED-F9P и СС2642 от U-Blox/Texas Instruments ставят православный крест на разработке GNSS RTK в России.
Идеи проектов
Идеи приложений высокоточной навигации могут быть разные:
1-- определение полосы, по которой движется автомобиль,
2-- навигация при параде квадрокоптеров,
3-- автоматические системы управления посадкой самолётов на аэродромы,
4-- всяческое беспилотное управление движением чем-либо (например газонокосилкой или зерноуборочным комбайном),
5-- Уточнение габаритов кораблей, зданий, карт и прочего.
6-- Можно поставить 2 GNSS антенны и вычислять по GNSS RTK ориентацию (3ю степень свободы на плоскости). Так два GNSS ресивера будут образовать одноосевой гироскоп. Можно сделать датчик дрифта автомобиля. Измерять угол дрифта в реальном времени, и показывать это на приборной панели автомобиля.
7-- GNSS RTK нужна главным образом чтобы тракторы ровно грядки прокладывали. Так как ровные грядки увеличивают урожай. Этим и занимаются компании Trimble(США) и FJ-Dynamics (КНР), Topcon(Япония)
8-- Системы автоматической погрузки/разгрузки морских контейнеровозов.
9-- GNSS RTK навигация может быть очень полезна на высотных стройках. Для уведомления рабочих на земле об опасных зонах, где над людьми могут быть подвешены на кранах тяжёлые детали.
Несколько фактов про GNSS RTK:
a) GNSS приемник в режиме базовой станции испускает поток RTCM3 со скоростью в диапазоне 500...1616 Byte/s
b) для GNSS антенн необходима Ground Plate (металлическое основание) в качестве экрана.
c) при некорректных настройках GNSS RTK Fixed режим включается редко и быстро пропадает.
d) При настройке базовой станции надо чтобы она сама вычислила свои координаты (режим survey-in). Да, там есть возможность прописать жестко якобы известные GNSS координаты взятые из интернет карт, однако тем координатам из карт доверять не стоит. Пусть лучше базовая станция сама определит свои координаты. Это обычно занимает порядка пары минут.
e) В режиме повышенной точности ровер находится в режиме RTK fixed. База в режиме TIME.
f) Поправки передаются только в одном направлении. От базы к роверу (симплексный режим). Ровер на базу ничего не шлет. Однако нужна гарантированная доставка. Поэтому ровер должен посылать подтверждение, что принял поток данных непрерывно. Для транспорта подойдет протокол TCP.
Вывод
GNSS RTK это всё еще дорогая технология (750 USD за комплект). При этом есть множество нюансов в настройке системы. Однако при стабильном потоке RTCM3 пакетов с поправками точность 2,5 см весьма достижима при GNSS RTK навигации. Очень важна непрерывность поступления RTCM3 пакетов. При этом можно даже не вдаваться в структуру RTCM пакетов. Достаточно просто их аккуратно доставлять. Стоит отметить, что RTK Fixed режим очень чувствителен к пропаданию поправок. Поэтому надо чтобы ваш радиоканал (LoRa, LTE, UHF) работал безупречно.
Словарь
Акроним | Расшифровка |
RTCM | Radio Technical Commission for Maritime Services |
RTK | Real Time Kinematic |
GNSS | Global Navigation Satellite System |
PVT | Position, Velocity and Time. |
GPS | Global Positioning System |
LoRa | long range |
TCP | Transmission Control Protocol |
USB | Universal Serial Bus |
UART | universal asynchronous receiver-transmitter |
NTRIP | Network Transport RTCM via Internet Protocol |
Links
https://habr.com/ru/company/intel/blog/258779/
https://habr.com/ru/post/244475/
https://habr.com/ru/post/516994/
RTKCONV – rtklibexplorer (wordpress.com)
https://habr.com/ru/articles/478906/
RTK Rover https://www.crowdsupply.com/hyfix/rtk-rover
http://geostar-navi.com/ru/rtk-modules-ru/geos5rtk-ru/
http://nvs-gnss.com/products/receivers.html
http://farwater-gnss.ru/solutions_ru/sistemy-vysokotochnoj-navigatsii-podv/
https://www.youtube.com/watch?v=7r__F-nyKUA&list=WL&index=3&t=2508s
https://www.crowdsupply.com/tinkerbug-robotics/tinkerrtk
RTK Rover https://www.crowdsupply.com/hyfix/rtk-rover
RTKLib – Сантиметровая точность GPS/ГЛОНАСС в пост-обработке https://habr.com/ru/articles/244475/
Lesson 1: The GPS Signal https://www.e-education.psu.edu/geog862/book/export/html/1407