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

Добрый день.
Есть два модуля f9p, один использую как базу, другой как ровер. Связь между ними через 4g. Работает “в он-лайне”, т.е. ровер в устройство выдает уже gps данные повышенной точности. Сразу скажу, что использовать пост-обработку тут слишком не удобно. Лучше иметь чуть менее точные данные, но сразу.

База в основном висит на одном месте, использую ее для отладки устройства с ровером. Антенна на крыше здания, сам приемник внтури.
Иногда базу надо запустить в другом месте. Я хочу определить, какое время нужно базе для усреднения, чтобы получить приемлемый результат, и какое для наилучшего.
Вообще я задал этот вопрос на форуме ublox (https://portal.u-blox.com/s/question/0D52p00008nvqoTCAQ/f9p-base-surveyin-position-accuracy), но ответ не совсем понял :roll_eyes:

Что я сделал: запустил базу из состояния “холодный старт” в режим усреднения (Survey-in так по-русски называется?) координат. В качестве “цели” задал сутки и точность 0.02 метра. Точность специально выбрал недостижимую. Через сутки получился вот такой график:

Это параметр “точности” (я правильно понимаю, что это среднее отклонение?) из сообщения UBX-NAV-SVIN снятый раз в 30 секунд.

Вообщем с вопросом “а какое значение можно считать приемлемым для работы” я и обратился на форум Ublox. На что местный эксперт ответил, что вообще этому параметру доверять не надо, а надо получить RAW данные и смотреть по ним. Я попытался это сделать и что-то не очень получилось. Точнее, поскольку нет опыта работы с rtklib, то не ясно, что получилось.

Я включил выдачу сообщения UBX-RXM-RAWX на базе и записал час работы.
Попытался преобразовать в RINEX

E=4077 в статусе это сообщение об ошибке?
Файл raw.ubx у меня размером около 6.5Мб. На выходе получился только файл .obs размером 22кБ. Файла .nav нет. Это нормально или надо добавить еще какие-то сообщения на приемнике? Я сохранял только UBX-RXM-RAWX пакеты.

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

Для пост-обработки, если я правильно понял суть, мне нужны поправки. Территориально я нахожусь на юге Санкт-Петербурга.
Поскольку это будет именно “пост” обработка, то мне нужны данные за уже прошедший период. Эти данные можно где-то скачать или нужна подписка на какой-то платный сервис?

И забегая чуть вперед. В результате этих действий я должен получить точные координаты базы и переводить приемник в режим базы через сообщение UBX-CFG-TMODE3 уже не в режиме Survey-In, а в режиме Fixed, указав координаты. Все верно?

А в случае, если не хочется ждать два дня и заниматься пост-обработкой, можно подключиться к NTRIP-caster и получить точное местоположение базы быстро. Но платно :slight_smile:

Включите в rtklib уровень отладки 3 или повыше и посмотрите на что он ругается. Возможно там какие-то команды ещё ему не известны, чип то новый.

Смотря для какой постобработки.
Если для обычного static - нужны данные с какой-нибудь базы с известными точными координатами. Платно есть возможность получить rinex-ы на заданную дату на разных сервисах. Например на hive 5-секундные данные стоят от 350 р за сутки.
Либо можно взять общедоступные данные с пулковской станции EUREF. 30-секундные данные на неё есть в свободном доступе: http://www.epncb.oma.be/_networkdata/datacalendar.php?month=10&year=2019&station=PULK00RUS&year=2019&month=10&c=all&rv=all

Если же для PPP - то там всё бесплатно, либо через RTKLIB, либо через один из бесплатных сервисов, но нужно ждать пока появятся точные эфимериды и т.п.

NTRIP-caster обещает сырые данные с чужой базы в виде RTCM3, но совершенно не обещает точные координаты этой базы.

Постобработка ваших сырых данных, собранных на статической точке (ваша локальная база) - это единственный метод получения точных координат в любой координатной системе. Бесплатных открытых глобальных баз для статической обработки навалом, посмотрите начало темы или просто погуглите “IGS RINEX”. Но координаты для них тоже надо брать не из самого файла (в заголовке RINEX навигационные координаты), а уточненные из ITRF.

У меня вопрос такого порядка. Как у rtklib под Андроид (rtkgps+) организовать передачу решений по TCP_Server? Извиняюсь, если этот вопрос не по теме, но очень надо.

Взял данные по Вашей ссылке. В архиве файлы .crx
Судя по заголовку - "COMPACT RINEX FORMAT ". Нашел конвертор CNX2RNX, сконвертировал. Полученный файл попытался подсунуть RTKCONV в качестве “RINEX OBS: Base Station”, переименовав в .obs

Со своего приемника записал данные за 4 часа, потом при помощи RTKCONV сконвертировал в .obs и .nav
Записывал подключив приемник напрямую к ноуту, при помощи STRSVR, в приемнике включены сообщения UBX-RXM-RAWX и UBX-RXM-SFRBX.
В RTKCONV ошибок при конвертировании нет, за каждый час O: около 3600, N: около 100. Если нажать PLOT, то данные отображаются.

Пробую обработать при помощи RTKPOST.

usb_20191012_120000.obs это данные с моего приемника
1.obs - это сконвертированный CRX2RNX и переименованный в .obs файл с http://www.epncb.oma.be/_networkdata/datacalendar.php?month=10&year=2019&station=PULK00RUS&year=2019&month=10&c=all&rv=all
usb_20191012_120000.nav это данные с моего приемника

Судя по тому, что в процессе обработки Q=0, что-то делаю не правильно.
Как правильно применить данные сwww.epncb.oma.be ?
PS: В RTKPOST включил отладку, в .trace файле много сообщений “outlier reject”

Вопрос из сообщения выше снимается :slight_smile:
В настройках RTKPOST для базовой станции стоял режим указания координат, которые по умолчанию стояли. Поставил “взять из заголовка RINEX” и процесс пошел.
Выше советовали не полагаться на заголовок, а ввести точные координаты. Я извиняюсь конечно, но как их найти? Я умею пользоваться гуглом, но в данном случае не знаю что конкретно искать.

И ключевой вопрос: как из того, что сделал RTKPOST получить точные координаты приемника?
Напомню, цель процесса: приемник f9p будет базой, стоит неподвижно, надо определить его координаты.
Координаты в правом верхнем углу, ORI= это то что я ищу?

Координата где-то одна из зелёных точек. Если не хотите с этим играться, то можно выбрать в настройках RTKLIB режим “решение в статике - одно”.

EUREF тоже выкладывают готовые решения по станциям, там же по ссылке выше
http://www.epncb.oma.be/_productsservices/coordinates/ и далее ftp://epncb.oma.be/epncb/station/coord/EPN/EPN_A_IGS14.SSC

12305M001 PULK              GPS PULK  2778606.710  1625494.735  5487811.009  0.001  0.001  0.001
12305M001                                  -.0191       0.0134       0.0077 0.0001 0.0001 0.0001

Геоцентрические XYZ.

Если совсем придираться и ловить миллиметры, то хорошо бы выяснить какая эпоха используется сейчас в эфемеридах GPS и найти координаты на соответствующую дату.

Вторая строка это дрейф станции по осям, суммарно 2.45 см/год.

Да, и при обработке статики (антенна жестко фиксирована) ОБЯЗАТЕЛЬНО обрабатывать как одну точку, а не кинематикой. Точность Post-processed Static на порядок лучше точности Post-processed Kinematic, даже сравнивать нельзя ))) С одночастотником это будут первые миллиметры сантиметры, в зависимости от антенны.

я пытаюсь получить rawx из “m8n”, вы можете отправить мне файл “301_rom_m8n_eFuse.cmd”? благодарю вас.:slight_smile:

И если можно то и мне, спасибо!!!

+1
Queuing for it!

Большое спасибо за вашу работу!
Код работает.

vitaliy_casper wrote:

hawkdan wrote:

    я пытаюсь получить rawx из "m8n", вы можете отправить мне файл "301_rom_m8n_eFuse.cmd"? благодарю вас.:)

И если можно то и мне, спасибо!!!

Sto cercando di ottenere rawx da “m8n”, puoi inviarmi il file “301_rom_m8n_eFuse.cmd”? grazie

Пожалуйста скиньте иструкцию как сделать сыры данные в m8n.

Мне можно плс код как получить rawx из “m8n”
“301_rom_m8n_eFuse.cmd”? благодарю вас.:slight_smile:
С уважением

Поделитесь “301_rom_m8n_eFuse.cmd” пожалуста!