К основному контенту

10.3 RTK/РТК - Получение РТК-поправок, достижение точности в несколько см

 

10.3  RTK/РТК - Получение  РТК-поправок, достижение точности в несколько см (Android + Ublox Zed F9P)

1. Что такое РТК и зачем он нужен - краткое описание

2. Подключение к базовой станции (БС) и прием поправок через интернет (NTRIP)

3. Сборка и настройка (Android + Ublox Zed F9P)

4. Практические испытания и измерения

- Примечания и сноски


1. Что такое РТК и зачем он нужен - (не очень-то) краткое описание


Вкратце: суть RTK - real time kinematik (кинематика в реальном времени)  -  уточнение координат в движении, основываясь на поправках, получаемых от базовой станции в режиме реального времени. Для работы необходимо постоянное и устойчивое подключение к интернету, без которого это все превращается в тыкву.

Далее следует много текста о том, как это все устроено внутри и если вас не интересует теория, можно перейти к подразделу №2.


[теория - упрощенно и утрированно]

Общеизвестно, что любой gps-приемник определяет собственные координаты с определенной ошибкой. Как правило, она составляет несколько метров при нахождении на открытой местности(для леса и плотной застройки эти показатели еще хуже). Ошибка, даже для идеальных условий приема, связана с помехами прохождения сигнала через атмосферу (в силу ее неоднородности), электромагнитными помехами, переотражениями сигнала от наземных объектов и многими другими факторами. Для конечного пользователя это выражается в том, что даже находящийся неподвижно gps-приемник слегка "дрейфует" с интервалом один раз в секунду. При записи трека на неподвижном приборе при этом рисуется характерная "клякса" на экране.


Важно понимать, что привычная для всех надпись на экране "точность +/- 3м" означает лишь то, что по мнению прибора мы находимся в круге радиусом 3 м. с вероятностью 1 сигма, т.е. с вероятностью 2/3. Эта цифра - значение ошибки на плоскости, ошибка по высоте обычно вдвое больше. Вдобавок к этому, множество чипов (или программ) не передают (не обрабатывают) реальное значение ошибки - параметр NMEA GxGST (GNSS Pseudo Range Error Statistics). И зачастую, величина этой ошибки вычисляется на основании значений и параметров, известных только создателям данного чипа и софта и, нередко, не имеют ничего общего с реальностью. Яркая иллюстрация на этот счет - дешевые китайские планшеты и магнитолы, которые из маркетинговых соображений показывают точность в 1,5 метра, хотя фактически их точность около +/- 10-15 м. Учитывая вышеизложенное, нужно принять за аксиому, что абсолютно любой прибор (вне зависимости от его стоимости) показывает свое местоположение с некоторой ошибкой в любой момент времени. И в каждый из этих моментов, данная ошибка существует с разной величиной (м.) и с разным знаком (+/-). Полностью эту ошибку устранить нельзя, но есть способы ее минимизировать. Таким образом, точность позиционирования улучшается до нескольких дециметров в режиме RTK-float, и до нескольких сантиметров в режиме RTK-fix.

После того, как мы вкратце прошлись по теории, посмотрим на все эти вещи с практической стороны: Представим, что мы стоим на местности неподвижно, и пишем трек [1] [примечания в конце статьи] , точность в период записи примем за условные +/- 3 м.  Вместо неподвижной точки у нас в трек записывается клякса диаметром несколько метров с периодическими "выбросами" в разные стороны до десятка метров. Назовем это "дрейфом" для упрощения понимания.

Нужно помнить, что по вертикали это точно такая же клякса, только более вытянутая. Внутри интервала времени измерений, наша неподвижная точка, по мнению прибора - это "облако" точек, имеющее овальную форму, вытянутое по вертикали, со средним диаметром (по условию задачи) 6 метров , и высотой около 12 метров.

Теперь представим, что недалеко от нас установлен совершенно неподвижно еще один gps-приемник (например, закреплен на крыше здания). Этот второй приемник, в данном случае - базовая станция (БС) за многа деняк. Несмотря на свою фактическую неподвижность и гораздо более  чувствительную антенну, базовая станция точно также "дрейфует" при приеме сигнала от спутников в силу помех приема. Но станция-то стоит на месте, причем на месте с точно известными (геодезически выверенными) координатами.

Если мы из нашего собственного дрейфа "вычтем" дрейф станции на текущий момент времени - то мы можем минимизировать эту ошибку. Т.е. если у нас на приборе в какой-то момент времени была ошибка (для примера) в 4 м. к северу от фактического местоположения, то и на базовой станции в эту секунду была точно такая же ошибка, с тем же самым (скорее, очень близким) значением и направлением. Иными словами, достаточно вычесть из ошибки нашего прибора ошибку базовой станции, чтобы получить точное значение координат. По сути, мы просто получаем от станции поправки к сигналу [2].  Также эти поправки зачастую называются дифференциальной коррекцией[3].


Таким образом, действуя в паре, два приемника образуют связку "база-ровер". База должна стоять неподвижно в точке с абсолютно точно вычисленными координатами (вычисленными геодезическими методами, имеется ввиду). Ровер, соответственно, может как двигаться, так и стоять неподвижно. И если мы, двигаясь с нашим приемником-ровером по местности, будем ежесекундно получать эти поправки от нашей базовой станции, наш ровер даже в движении будет определять свое местоположение гораздо точнее. Т.е. поправки от базовой станции будут применяться им (ровером) "на лету" для коррекции своих координат [4]


Именно на этом и заключается суть RTK -(real time kinematik) - кинематика в реальном времени: уточнение координат в движении, основываясь на поправках, получаемых от базовой станции в режиме реального времени. Может быть двух видов: 

1. RTK-fix / РТК-фикс , (фиксированное решение, фикс) - точность 4-8 см

2. RTK-float / РТК-флоат (плавающее решение) - точность 20-40 см



2. Подключение к базовой станции (БС) и прием поправок через интернет (NTRIP)

Самый простой вариант - получить эти поправки через интернет. Для конечного пользователя купленный доступ к РТК - по сути платный аккаунт для определенного сайта, который эти поправки раздает. Услуга эта не сказать что дешевая, стоимость ее варьируется от 300-500 р. за сутки, до 3-5 т.р. в месяц. При покупке на год и более - стоимость за месяц становится ниже. Многие из компаний предоставляют пробный бесплатный доступ к своим БС (например ПРИН - до 2х недель при регистрации у них на сайте). 

Учетка состоит из веб-адреса (текстового или  IP), № порта для подключения, и логина с паролем.

Во избежание использования одной учетки несколькими людьми одновременно, сервер обычно безжалостно банит халявщиков за мультисессию (частенько без возможности восстановления учетки), о чем, как правило, пишется в пользовательском соглашении.

Объем данных при приеме поправок очень небольшой - менее 1КБ в секунду, но требует устойчивого подключения к интернету, пусть даже на очень низкой скорости, но без разрывов связи. При обрыве соединения, через несколько секунд РТК-фикс исчезает, переходя в РТК-флоат, а еще через 10-30 секунд теряется и он.

Компаний, предоставляющих эти услуги достаточно много, для УРФО основные перечислены ниже:

Полеос - poleos.ru

ПРИН -prin.ru

EFT CORS - eft-cors.ru

HIVE - hive.geosystems.aero

и другие. Естественно, нужно искать провайдера, имеющего базовые станции недалеко от вас или предполагаемого района работ.

Также нужно понимать, что иногда БС одного оператора могут быть неисправны/недоступны и иметь на всякий случай запасные варианты для подключения.






3. Сборка и настройка (Android + Ublox Zed F9P)

Сама железяка описана вот здесь:

https://tyubuk.blogspot.com/p/104-gpsgnss-aka-boris-blade.html

По сути нужен любой внешний приемник на базе чипа Ublox Zed F9P с выходом на USB и андроид устройство с не совсем дохлыми батарей и процессором, но главное, с возможностью хоста USB-OTG и разъемом USB Type-C. МicroUSB не вытягивает внешний приемник по вольтажу и силе тока, во всяком случае, у меня не завелось. Важно понимать, что для работы с РТК сам приемник на уровне железа должен уметь выполнять не только кодовые, но и фазовые измерения.

В качестве программы для получения поправок и обмена данными с приемником используется приложение GNSS Master версии 1.3. 

Ссылка на архив с АПК:  https://disk.yandex.ru/d/S1qQ_PRCkmGpvA.

Остановимся на настройках подробнее: В меню слева переходим на вкладку Статус

Нажимаем на шестеренку GNSS Receiver Connection, для настройки подключения к приемнику (приемник, естественно, должен быть уже подключен физически)


Тип подключения у меня выбран USB Serial. Видим, что приемник определился и нажимаем Connect

На запрос, если таковой вдруг появится - отвечаем утвердительно

Как видим, начался обмен данными между приемником и программой:

Далее из главного меню идем во вкладку Corrections, создаем там новое подключение (у меня оно уже есть)


Параметры примерно такого вида, это как раз настройки подключения к БС (у Вас будут свои настройки подключения, разумеется):

Важно дождаться момента, когда приемник определит свое "грубое" местоположение по GPS, а до момента определения - поправки принимать не к чему, БС нам откажет в передаче данных.
Нажимаем Connect, видим, что обмен данными пошел между программой и сервисом



Точность при "грубой" коррекции SBAS - около 1 метра.



Флоат - 0,3 м.


Фикс - точность 2 см.


Вид вкладки Skyplot со схемой расположения спутников и параметрами приема сигнала:



4. Практические испытания и измерения


1. Измерение координат неподвижных объектов через длительные промежутки времени, и сравнение результатов между собой.

(линии сетки расчерчены через 10 см.)


Ортофотоплан, используемый в качестве подложки снимался второпях и ветренную погоду, поэтому по качеству преизрядно плох, к сожалению.



2. Вынос линий произвольно заданной длины на местность с помощью приемника, и затем измерение их фактической длины мерной лентой.

[в процессе]


3. Прямое сравнение с сертифицированным геодезическим приемником, при выносе участка на местности.

[в процессе]



- Примечания и сноски

[1] На практике: не трек, а гораздо более полный набор данных, включающий в себя не только время, координаты и высоту, но и множество других данных, таких как количество спутников, их высоту и азимут относительно наблюдателя, уровень сигнала и помех и т.д. Иными словами - полный дамп / телеметрия.


[2] На самом деле не поправки, а полный дубликат сигнала, принятого станцией от спутников. Размер пакета данных около 320 байт, передается ежесекундно. Ровер сравнивает сигналы между собой и производит вычисления поправок.


[3] Сами системы дифференциальной коррекции включают в себя как прием поправок от ближайшей базовой станции, так и прием от сети базовых станций с неким "усредненным" значением поправок (виртуальная БС), а также прием дифф.коррекции от спутников SBAS/СДКМ (весьма ограничено по скорости канала + поправки достаточно грубые - по сути это усреднённая математическая модель ионосферных искажений для секторов размером в тысячи км, режим этот в софте зачастую обозначается как D-GPS и обеспечивает точность 1,0-1,5 м.) Дополнительно, в просвещенных Европах и у Дяди Сэма есть системы EGNOS и WAAS - передача поправок в радиодиапазоне близ береговой линии от сетей БС. Изначально использовалось для морской навигации и обеспечивает точность до 0,5 м.


[4] Отсюда важный вывод, что чем ближе между собой база и ровер - тем точнее определение координат, т.к. поправки в этом случае будут более точными. Напротив, чем они дальше друг от друга (например, базовая станция удалена на сотни км), тем хуже - поправки становятся неточными в силу того, что помехи приема начинают отличаться друг от друга в значительной степени из-за большого расстояния и разных условий приема.