RTKlib/постпроцессинг

Добрый день.
Подскажите пожалуйста, имеет ли смысл применять технологию RTK для моей задачи. С RTK раньше не работал, а купить комплект за 500 евро, чтобы понять, что данная технология не подходит, немного дорого :slight_smile:
Я делаю логгер для автомобиля. Это устройство, которое сохраняет данные с блока управления и с gps приемника для последующего анализа.
Использую чип Ublox N8M, пишу данные из NAV-PVT на частоте 10Hz, GPS+Glonass. От GPS получаю дату, время, скорость и координаты, для построения трека движения.
В свете выпуска Ublox ZED-Z9P, рассматриваю вариант применения этого чипа.

Что хотелось бы улучшить:

  • На реальном автомобиле, где это будет использоваться, нет другого источника скорости, кроме GPS. Сейчас работаю с прототипом на обычном автомобиле, там есть сигнал датчика скорости, по нему сравниваю показания скорости с GPS. Наибольшее отклонение получается в момент изменения скорости (разгон - торможение), что вообщем понятно. Применение 20Hz приемника (Z9P), возможно несколько улучшит ситуацию.

  • В данной версии, GPS трек используется как второстепенная информация. Он наложен на спутниковый снимок и по нему удобно смотреть в каком месте дороги находится автомобиль. Но сравнить траекторию движения двух пилотов, или допустим двух прохождений одного участка обычная точность не позволяет. Заявленная точность в сантиметры для RTK сильно улучшила бы ситуацию.

Предполагаемые сценарии использования:

  • на открытой кольцевой трассе хорошая видимость спутников, автомобиль движется в радиусе нескольких км. от базы. Тут можно сказать идеальные условия для RTK. Скорость движения примерно до 200 км/ч. Как правило есть сотовая связь, можно организовать канал связи между базой и ровером и получать на выходе из приемника на ровере уже “сантиметровые” данные.

-на относительно открытой дороге через леса-поля, широкая дорога, видимость спутников как правило тоже хорошая. Радиус движения - до 20-30км. Сотовой связи может не быть, а может быть местами. Можно или получать поправки с базы когда есть связь, или сохранять raw данные и применить пост-обработку.

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

Вопросы:

  • Возможно ли и обосновано ли применения RTK таки образом, на таких скоростях (до 200 км/ч)?
  • Как долго база должна находится в рабочем режиме, до начала работы ровера? Это минуты, часты, дни?
  • Будет ли улучшение характеристик от применения Z9P в моем случае, если не получится использовать RTK? В качестве преимущества в таком случае, я вижу частоту обновления 20Hz в режиме GPS+Glonass. Но стоимость при этом примерно в 15 раз выше. И некоторые сложности с покупкой.
  • Ublox вместе с F9P выпустили новую антенну ANN-MB. Два модуля Z9P и две таких антенны, это подходящее решение для RTK, или надо какое-то другое оборудование?
  • С какими задержками в передаче данных от базы к роверу возможна корректная работа? В случае передачи данных по сотовой сети, возможны задержки как в единицы секунд, так и в десятки. Какая примерно скорость нужна?

Sergey_78 “Я делаю логгер для автомобиля” “Использую чип Ublox N8M”

Если есть девайс с названием ? Ublox N8M ? (может Ublox M8N), то может имеет смысл
проверить все ваши вопросы на нем? Вы программист или электронщик? Сырые данные(RAW) удалось получить?
“сантиметровую” точность на скорости 200 км/ч - это маловероятно, а вот мерить заборы может получиться, учитывая какое
кидалово( и за какие деньги) устраивают кадастровые конторы.

Я не нашел способа, как на Ublox M8N с прошивкой 3.01 получить raw данные. Поэтому и проверить на нем не могу.
В данном случае, я и программист и электронщик.
Заборы мерить не нужно, RTK интересует исключительно для той задачи, что я описал.

Для этого надо править исходники rtklib и знать два 128битных ключа.
Такого кода в открытом доступе нет.

Сколько проедет машина на скорости 200 км/ч за 100 мс (10 Hz) ?
Чтобы (хорошо) мерить заборы все равно нужна базовая станция поблизости.

Sergey_78 “Я не нашел способа, как на Ublox M8N с прошивкой 3.01 получить raw данные. Поэтому и проверить на нем не могу.”

Проведите эксперимент. Поменяйте прошивку в девайсе.
Обратите внимание на сообщение от 2016-04-10 20:24:36 на странице 78 этого форума. Там про модификацию прошивки.
Первое, что находится Яндексом https://github.com/meee1/ubloxdump . Видимо это прожка позволяет читать прошивку из девайса c помощью этих сообщений
http://gps.0xdc.ru/wiki/doku.php?id=u-blox_undocumented_messages
Далее прошивку наверное можно посмотреть Ida Pro.

Я готов использовать и ZED-F9P. Проект не коммерческий, в рамках 1-2 устройств можно и дорогой чип поставить, если будет толк, переживу. Вопрос в целесообразности этого.
Главный вопрос - применима ли технология RTK к моим условиям?
200 км/ч это примерный верхний предел. Может быть чуть больше, но как правило, рабочий диапазон 60-160.

PS: за 100мс на 200км/ч автомобиль пройдет около 5.5 метров. А к чему вопрос?

Я сам в этом деле начинающий, но насколько я понял, что если взять для примера приемник M8N, то
там в сырых данных есть поле txTow (transmission time in gps week (2-32ms)).
Если это время замера(где-то оно там должно быть), тогда имея точные координаты вы можете вычислить скорость.
Странно было бы если координаты мы могли бы скорректировать, а скорость нет.
Таким образом будем получать скорость 10 раз в секунду.
Точность координат зависит от базовой станции. Включаем ее примерно на 2 часа.
Она вычисляет все поправки. Затем можно запускать машину.
Окажет ли влияние то, что антенну будет колбасить вместе с машиной я не знаю.

RTK используется в реальном времени (realtime kinematic).

Для анализа вам достаточно обычной кинематики в постобработке. Пишете в реальном времени сырые данные (псевдодальности и фазы), потом обрабатываете в офисе.
Плюсы - не нужен канал связи т.е. запись происходит пассивно; вы не зависите от причуд RTK (разрешилась неоднозанчность или нет), точность выше т.к. используются данные с базы непосредственно на момент измерения, а не задержкой как в случае с RTK, кроме того нормальные программы обработки в случае постобработки делают двухпроходный расчет - в прямом времени и обратном. Естественно точность и надёжность интерполяции в разы выше чем экстраполяции.
Кстати, для ваших целей ИМО достаточно решения float. Расстояние до базы может быть и 50 км - для постобработки float это не предел.
Минусы - у RTK контроль качества происходит в момент съёмки, а в постобработке может выясниться что какие-то данные непригодны.

Ни у кого случайно не завалялось полной документации на UBX-M8030 ?

Прошу прощения за возможно нубский в плане RTK вопрос.

Состоит он в следующем:

  • Есть группа подвижных объектов, для которых важно взаимное, _относительное позиционирование с допуском 10-30см.
  • Расстояние между объектами – единицы метров.
  • Общее _абсолютное позиционирование группы возможно с допуском до десятков метров, но важно чтобы эта погрешность не менялась слишком резко (10 метров в минуту – нормально, если не одним рывком, а линейно)

Собственно меня интересует достаточно конкретная вещь –
у нескольких качественных, брендовых модулей GPS, допустим U-Blox,
с качественной антенной, LNA и тд, но без_RTK
находящихся на взаимном расстоянии до, скажем, 100м
абсолютная погрешность в пределах 10-30см синхронна?

Ну и второе – какова, ориентировочно, скорость изменения абсолютной погрешности для фиксированной локации на открытой местности (чисто ионосферная компонента, насколько я понимаю)?

Спасибо заранее

Синхронна. Ваша задача - взаимное точное положение объектов без привязки к базе - называется Moving Base RTK (ключевая фраза для гугления), вроде в ядре RTKLib такое реализовано. Никто не проверял.
Коммерческое решение Novatel/WayPoint RtkNavi снято с производства и вряд ли устроит кого-то по цене как приёмников, так и софта ))) Впрочем я уже 10 лет вне этой индустрии, может появились новые методы и новые термины.

Спасибо за ответ

Если можно, хочу ещё уточнить - обычный качественный приёмник без RTK выдает достаточное количество знаков после запятой, для относительной фиксации с сантиметровой точностью в данных условиях(не меняющихся)?
Т.е. точность самого приёмника такая же как с RTK, но он не учитывает ионосферу и тп, я правильно понимаю?

Эммм… Из ровера и базы для постобработки нужны сырые данные pseudorange и carrier phase, это 64-bit double у всех приёмников. У некоторых коммерческих ГИС-приёмников обрезаны до целого (т.е. фаза с округлением 18 см), но бытовые приёмники такой фигней не страдают.
С бытовыми в кинематике реально получить сырые данные дециметровой точности. В статике первые сантиметры.

PS: но вообще перечитвая ваш вопрос… может я неправильно понял… абсолютная точность двух приёмников, т.е. КООРДИНАТЫ из приёмников, НЕ СИНХРОННЫ. Плывут сами по себе по разным причинам. Постобработка сырых данных единственный правильный вариант.

Вот тут не очень понятно.
Если данные разных приёмников в данной локации, и в данный момент времени, могут быть скорректированы одним набором поправок из базы, то и их погрешность должна быть синхронной в пределах точности RTK. Ну, насколько логика подсказывает.
?

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

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

Во, теперь понятно. А то как-то у меня подозрительно хорошо получалось )
Жаль.

Спасибо за ответы

У кого-нибудь есть файл ublox.c с decode_trkmeas2 () и decode_trksfrb (), который может компилироваться и работать?

PS: Получил доступ к новой городской испытательной площадке. tapasweb.dk - так что теперь мой F9P со стандартной антенной ublox находится в пределах +/- 2 мм

Подскажите, пожалуйста. Отсутствие “on-chip PVT calculations” означает, что модуль выдает сырые данные, а математика выполняется на основном CPU? Или модуль выдает уже NMEA?

Да.
Но если имеется в виду приемник Broadcom или Qualcomm,
то лучше сразу про это забыть и купить u-blox :wink:

Спасибо.