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

-1

Там очень ограниченный список приемников, SiRF Binary не поддерживается т.к. не отдает фазу. Я даже логгер брал на uBlox5 в надежде на сырые данные по фазе - бесполезно, для этой опции надо покупать другой uBlox5, прошивается только на заводе и доступен за совсем другие деньги. Нователы тоже приемники не из дешевых.

Кстати, может кто-то подсказать, есть ли в России ограничение на точность для физических лиц, без лицензии ? Могут ли возникнуть проблемы с законом, если координаты определены с точностью, например, 5-10см ?

-1

Да, у sirf2 была, но в sirf3 отключили по маркетинговым соображениям. Народ пытался интегрировать доплер для этих целей, результаты были очень плохими.
В принципе если автор rtklib введет поддержку sirf binary, то даже без фазы получится неплохой postprocessed DGPS.
А еще хорошо бы протокол Trimble TSIP, на e-bay есть дешевые модули Trimble Lassen IQ.

А приемник uBlox может вобще эти данные отдавать??

Почему спрашиваю, я делаю опенхардварный трекер транспорта. В нем используется GPS модуль uBlox сейчас стоит NEO-4S, буду переходить на NEO-5Q. В трекере стоит карта micro-SD. Если выбросить сотовый модуль и функционал трекера, то переписав чуток прошивку, можно на карту писать любые данные которые может отдать приемник.
Бегло глянул, есть следующие сообщения:
RXM-RAW - Raw Measurement Data
RXM-SVSI - SV Status Info (SW Versions higher than 2.11)
RXM-SVSI-GPS - GPS SV Status Info (SW Versions up to 2.11)
RXM-SFRB - Subframe Buffer
RXM-ALM - Poll GPS Constellation Almanach Data
RXM-EPH - Poll GPS Constellation Ephemeris Data

Это оно?

Кого-нибудь это интересует?

Это оно, только не все модули отдают сообщения RXM-RAW.
generation ANTARIS 4 family
generation u-blox 5 family
generation u-blox 6 family

Raw Data только у LEA-4T, LEA-5T и LEA-6T

-1

Хочу поделиться информацией, которую наскреб за последние несколько лет. Пишу из головы, извините за огрехи если что.

На e-bay очень небольшой выбор одночастотных приемников, отдающих сырые данные. Это приемники Trimble Placer - очень старая модель, некоторые экземпляры могут иметь проблему 2000-го года, а также не поддерживать PRN32; Trimble Lassen SQ/IQ - модули посовременнее, но они не имеют обвязки, надо докупать разъемы, делать развязку RS232(5V) на обычный RS232; (исправлено 17-11-2010: не годятся т.к. не отдают полные псевдодальности).
Всё остальное выходит за рамки бюджетных моделей, т.е. цены от 500$ и выше.

В свое время я купил Bluetooth GPS приемник на чипе SiRF Star III, т.к. в спецификациях была указана поддержка сырых данных. Какого же было разочарование, когда я узнал что по маркетинговым соображениям в протоколе Sirf Binary отключен вывод фазовых данных: глупо было ожидать чуда от приемника за 70$.
Однако он по-прежнему способен отдавать кодовые измерения, что оставляет шанс на режим DGPS в постобработке для динамических объектов, и режим Static Survey (code only) для неподвижных измерений. Сырые данные по протоколу Sirf Binary практически никем не поддерживаются, долгие поиски привели только к нескольким коммерческим программам, перекодирующим Sirf Binary RAW в RINEX (стандартный формат обмена сырыми данными GPS). Мне повезло, несколько учаcтников форума gps-passion также интересовались подобной затеей, и один из них даже представил свой проект Kinematic. Впоследствии автор утратил к нему интерес по причине отсутствия тех самых фазовых измерений, сайт http://www.precision-gps.org/ сейчас пуст. У меня сохранилось немного информации о проекте и сама программа.

Скажу сразу, для обработки данных эту программу я не использовал ни разу, зато она умеет две вещи:

  1. открывать порт и принимать поток данных в формате Sirf Binary RAW (вариант - брать эти данные из файла, собранными любым терминалом RS232);
  2. экспортировать данные о псевдодальностях в RINEX.

А дальше можно обрабатывать эти файлы любым cофтом:
3.1. бесплатным, например RTKLib в первом посте;
3.2. коммерческим, например Trimble Business Center, Trimble Geomatics Office, Leica Geo Office, Ashtech GNSS Solutions, Waypoint GrafNav/GrafNet;
3.3. коммерческим-demo, например Ashtech GNSS Solutions;

Мне очень нравится последний, т.к. это профессиональный софт, по истечении trial-периода он отключает возможность обработки по фазе L2, а её у нас и так нет (собственно, у нас и фазы L1 нет :))

Вкратце последовательность действий такая.
4. Конфигурируем приемник утилитой SirfDemo, переключаем формат в Sirf Binary, обязательно включаем сообщение Message ID 28 (Navigation Library Measurement Data);
5. Собираем двоичный поток в файл любой терминальной программой;
6. Конвертируем полученные данные в RINEX при помощи бесплатной Kinematic;
7. Обрабатываем RINEX в любой вышеприведенной программе.

Сюрпризы могут поджидать на каждом этапе.
п.6 может случится, что Kinematic отказывается понимать двоичный файл, такое бывает если запись в терминале началась с середины пакета;
п.7 программы обработки могут отказаться импортировать файл RINEX без измерений фазы;
п.7 файл RINEX может иметь слегка нестандартный заголовок. В этом случае надо править заголовок вручную, взяв за образец правильный RINEX;
п.7 программы обработки могут отказаться импортировать файл RINEX без навигационных данных. Тут необходимо отметить, что данные RINEX - это несколько файлов: обсервации (файл *.??o, в нем хранятся сырые измерения), навигационный данные (параметры спутников, файл *.??n). Программа Kinematic по какой-то причине не скачивает эфемериды из чипа и не создает файл *.??n, его можно скопировать из данных базовой станции (эфемериды-то одинаковые);

По поводу данных базовой станции. По всему миру есть сеть IGS-станций, ведущих постоянную запись GPS/GLONASS данных и бесплатно предоставляющих их в формате RINEX. Есть вариации - обычные данные (запись каждые 30 секунд), fast rate (запись 1 раз в секунду), файлы могут хранить данные за сутки (стандарт) или за 15мин-1час (встречается гораздо реже).
8.1 Т.к. у нас нет фазовых измерений, для дифф.режима следует отдать предпочтение данным с частотой 1сек.
8.2 Для дифф.режима критично расстояние до базовой станции. Если станция находится на расстоянии > 300-500км, вы можете не улучшить, а ухудшить позицию по сравнению с оригинальной.
8.3 Можно делать уравнивание по нескольким базовым станциям, тогда следует выбрать ближайшие к приемнику, желательно со всех сторон (станций немного, так что выбор небольшой в любом случае).
8.4 Можно сделать привязку своей базовой точки в режиме Static Survey (code range) в течение нескольких часов, затем использовать два приемника - один на базе (master, base), второй перемещается (rover). В этом случае вы будете гарантированно иметь данные раз в секунду, и станция будет очень близко к роверу;
8.5 В файлах RINEX со станций IGS координаты базовой станции частенько смещены, причем сознательно и значительно. По этой причине при использовании IGS данных надо либо найти точные координаты, либо воспользоваться профессиональной программмой из п.3.3, в ней уже есть база с координатами IGS. Если честно мне не очень понятен смысл, т.к. пункты IGS по-моему не являются пунктами государственной геодезической сети и не должны являться секретными.

Результат. После долгих экспериментов мне удалось сделать примитивный Static Survey (code range).
Приемник: GlobalSat BT-359, SiRF Star III, Bluetooth
Базовые станции: Звенигород + Менделеево
Продолжительность записи: 4 часа
Условия приема: half semisphere (вид с подоконника :))

Fast ephemeris

Precise ephemeris

Скачать SirfDemo
Скачать Kinematic

IGS STATIONS MAP on Google
IGS data Daily (30sec, 24hr files)
IGS data Highrate (1sec, 15min files)
IGS Links

Пара неплохих вариантов с чипом Sirf II, адекватная цена, бесплатная доставка.
TOMTOM Sirf II e LP GPS Module 232 data level NMEA 0183 (US $16.99)
Build-in Antenna Sirf II e LP GPS Module 232 data level (US $16.99)
Из плюсов - на платах есть backup battery, из минусов - надо самому сделать корпус. Я купил две штуки, когда прийдут - проверю и отчитаюсь есть ли там фаза.
К предыдущему сообщению еще надо добавить программы Waypoint GrafNav/GrafNet, они тоже понимают RINEX, Sirf Binary (только для Sirf II), но стоят безумно дорого.

-1

Может кто-нибудь помочь с высокоточкой? Не могу добиться точных координат.

Эксперимент по высокоточному позиционированию. Режим измерения - дифференциальный

Собран макет в составе: u-blox LEA-5T, антенна активная неподвижная, продолжительность измерений около 1 часа

  1. Перевел LEA-5T в сохранение данных в формате UBX RAW, записал результаты по двум точкам за период 1 час каждая

  2. Конвертировал RTKLib сырые данные u-blox в RINEX (obs и nav)

  3. Получил данные базовой станции за записанный период (в RINEX) (удаление 5-6км)

  4. Получил точные орбиты в SP3

Как обрабатывать данные в RTKPOST - не могу разобраться.

Флаг Q всегда =5(single), какой бы режим позиционирования не выбран,

Вопросы:

  1. как настроить LEA-5T, чтобы использовать измерения фазы и доплера (в режиме UBX-RXM-RAW видно что эти данные есть)?

  2. какие настройки необходимо сделать в RTKPOST, чтобы использовать дифференциальный режим?

  3. какие настройки необходимо сделать в RTKPOST, чтобы использовать измерения фазы?

-1

Не только.
Еще один полезный документ на тему RTK и ANTARIS,
с питонскими скриптами
http://finhack.org/2010/finhack2010-rtklib-lindfors.odp
Приемник встроенный в телефон:


$GPTXT,01,01,02,u-blox ag - www.u-blox.com*50
$GPTXT,01,01,02,ANTARIS ATR062x HW 80040001*26
$GPTXT,01,01,02,ROM CORE       5.00    Jan 09 2006 12:00:00*76

-1

-1

ftp://cddis.gsfc.nasa.gov//gps/00readme - тут структура папок;
[ddd] - юлианский день;
*o - файлы обсерваций (RINEX 2.10 или 2.11);
*d - они же в другом формате (compressed RINEX aka Hatanaka);
n - эфемериды, собранные на отдельной станции; файл brdc (broadcast) содержит эфемериды для всех спутников, в течение дня он меняется, в общем случае проще скачивать его;
*g - эфемериды ГЛОНАСС;
*m - метеонаблюдения (температура, влажность);
*s - статистика из программы teqc;

пример:

ftp://cddis.gsfc.nasa.gov//gps/data/highrate/2010/318/10d/10/zwe2318k15.10d.Z

318 = JD
10d = 2010, файлы compressed rinex
10 = час в сутках
zwe2 = код станции Звенигород
318 = JD
k = час в сутках
15 = данные за вторую четверть часа

Насчет сознательного смещения координат станций - это наверное я параноик :slight_smile: Сеть IGS регулярно уравнивается и результаты еженедельно выкладываются в формате Sinex, можно взять по своей станции несколько последних недель и посмотреть динамику. Обычно дрейф координат от недели к неделе максимум 3-5 мм. Координаты для XYZ лучше взять до второго-третьего знака в метрах.
ftp://garner.ucsd.edu/pub/products/latest/final/, файлы нумеруются по GPS-неделе, последний доступный igs10p1606.snx


Станция Светлое
+SOLUTION/ESTIMATE
*INDEX _TYPE_ CODE PT SOLN _REF_EPOCH__ UNIT S ___ESTIMATED VALUE___ __STD_DEV__
   970 STAX   SVTL  A    1 10:294:43189 m    2  2.73015525482522e+06 3.41203e-03
   971 STAY   SVTL  A    1 10:294:43189 m    2  1.56236481571364e+06 2.42071e-03
   972 STAZ   SVTL  A    1 10:294:43189 m    2  5.52998932701960e+06 5.97215e-03

Координаты отличаются от GNSS Studio, может файл станций в GNSS устаревший.

Тоже второй день бьюсь с ринексом из Kinematic, GNSS Studio наотрез отказывается принимать файлы. Правда я сейчас экспериментирую с Trimble Lassen iQ, до этого с Sirf III всё было нормально. Видимо собрал плохие данные. Интерфейс RTKLib пока изучаю по файлам с двух разных базовых станций, просто обозвал одну из них ровером.

-1

-1

Обычно сырые данные по умолчанию отключены во всех приемниках (создают лишний трафик), так что сёрф не исключение.

Получил посылку с модулями Sirf II и… о чем я думал раньше… Как к нему теперь крепить внешнюю антенну ? С этой керамической писюлькой, что намертво припаяна к модулю, ни о какой фазе речи идти не может. Экспериментировать можно, в реальности использовать нельзя. Это будет мусор, а не фаза :frowning:

Эксперименты с Trimble Lassen iQ оказались отрицательными. Оказывается он отдает “слишком сырые” данные, т.е. не pseudorange + clock offset (сообщение 0x6F), а только code phase (0x5A). Теперь понятно почему GNSS Studio не нравится такой rinex, несмотря на то что в Kinematic сделана попытка сконструировать pseudorange из этих данных (добавляется целое число миллисекундных циклов).
То же самое могу сказать про старенький Trimble Svee Six. Остается последняя надежда на плату Trimble ACE III, у него вроде есть нужные сообщения, но фаза округлена до целых.

Итого заключение по тримблам:

  1. В бюджетных моделях начального уровня (Lassen, Svee) нет сообщения 0x6F;
  2. В моделях среднего уровня (AgGPS, Placer, OEM ACE III, Pathfinder Power, Pathfinder Pocket) сообщение 0x6F есть, но фаза либо отсутствует, либо округлена до целого (лучше чем ничего);
  3. Полная фаза есть только в старших моделях Pathfinder, DSM и всех Survey Grade receivers.

Как видно на примере Sirf II vs Sirf III, u-Bloxt *T vs u-Blox *H, Consumer Trimble vs Pro Trimble сырые дальности и фаза в бюджетных моделях отключены исключительно по коммерческим соображениям.

Куда буду двигаться дальше… Вариантов у меня пока осталось два

  1. Sirf III, но с профессиональной антенной (Code Only);
  2. Trimble ACE III (OEM) с этой же антенной (Code + Integer Phase)

Небольшое дополнение к практическому применению Sirf III с постпроцессингом

  1. Берем автонавигатор или КПК с возможностью подсоединения внешней антенны. Качественную антенну можно прикупить на e-bay за 30-80$ (Novatel 501, Trimble Dome, Thunderbolt и др.);
  2. Устанавливаем какой-либо сплиттер для порта (либо пользуемся встроенным в Windows Mobile);
  3. Программой Sirftech конфигурируем Sirf Binary + Message 0x1C (28) и запускаем запись в лог;
  4. Запускаем Навител и конфигурируем его чтобы понимал протокол Sirf;
  5. Катаемся, делаем съемку. Можно отключить притягивание к дороге;
  6. Собранный лог в постпроцессинге может вытянуть точность 1-3м (проверено), в принципе достаточно для ГИС;

Плюсы - на экране есть программа навигации, подложку из ОСМ всегда можно подготовить в GPSMapEdit.
Также можно связаться с создателем SAS4WINCE и попросить реализовать поддержку Sirf Binary (Lat/Lon) и запись двоичного потока в лог. Вариант с Навителом проще т.к. никого ни о чем просить не надо.