29.07.2015 Работа с RTKLib

Материал из SRNS
Перейти к: навигация, поиск

Содержание

Вступление

Есть такая штука, RTKLIB. Это библиотека функций и набор различных программ (в Windows с GUI, в Linux - c CUI (консольные)) для решения навигационной задачи по сигналам ГНСС. В этой статье будет рассмотрена работа с RTKLIB из-под Windows.

UPD: В 2017 году произошла очередная коррекция leap second. Состояние на март 2017: В версии 2.4.2, что лежит в архиве на сайте http://www.rtklib.com/, коррекция не учтена. Актуальное ПО с учетом текущей leap second лежит в Git проекта. GUI под Windows из основного проекта Git не перекомпилированы, по ГЛОНАССУ RTKNAVI не решается. Начиная с версии 2.4.2 p12 GUI вообще вынесены в отдельный реппозиторий Git'a.

Решение: качать GUI начиная с версии 2.4.2 p12 отсюда GUI Windows

Рассматриваемые задачи:

1. При помощи RTKLIB записать пакеты BINR 0xF5, 0xE5, 0xF7 от NV08C в лог-файл для последующей постобработки;

2. Заодно при помощи RTKLIB решаться по NV08C;

3. Конвертировать записанные логи BINR в RINEX файлы наблюдений (.obs) и сообщений (.nav, .gnav);

4. Перенаправить бинарный поток с NV08C куда следует (в binr_parse и т.п.);

Так же здесь можно найти аналогичное решение задачи с использованием приёмника Javad.

Перво-наперво нужно запустить программу rtklaunch.exe, находящуюся в папке <путь к файлам RTKlib>/bin/. Она - лаунчер, позволяющий запускать остальные программы одним кликом (но можно и без нее тыкать каждый раз exe-шник нужной программы в папке /bin).

20150730 RTKLAUNCH.PNG

Нам потребуются:

  • RTKNAVI - для записи логов, решения навигационной задачи "на лету";
  • RTKCONV - для конвертирования в RINEX;
  • STRSVR - для перенаправления бинарного потока;
  • RTKPOST - для решения навигационной задачи по записанным RINEX файлам.

Пишем BINR в логи, решаемся по измерениям NV08C

Шаг 1

NV08C:

Берем платку с NV08C, подключаем антенну, USB. Запускаем BMControl. Настраиваем порты на выдачу BINR. Можно настроить оба порта одинаково: один оставить для контроля через BMControl, другой отдать RTKLib. (Последнее время глюки: один порт настроен на NMEA 115200, другой молчит. Законнектившись по доступному порту, перенастраиваем его на BINR, а потом настраиваем оставшийся порт на BINR.)

Параметры порта:

  • Bitrate: 115200
  • Byte Size: 8 bit
  • Parity: Odd
  • Stop Bits: 1 bit
  • Flow Control: None

Javad:

Подключаем Javad

Параметры порта:

  • Bitrate: 115200
  • Byte Size: 8 bit
  • Parity: None
  • Stop Bits: 1 bit
  • Flow Control: None

Шаг 2

Запускаем RTKNAVI. Нужно настроить потоки входных и выходных данных.

Шаг 2.1

Настройка потока входных данных. Нажимаем кнопку I (см. рис. 1). Указываем тип входных данных Serial для Rover. Нажимаем рядом кнопку OPT и вводим настройки последовательного порта (упоминались выше). Нажимаем кнопку CMD рядом с OPT. Далее необходимо выбрать Format соответствующего приемника.


NV08C:

вводим команды:

!NVS CFG-BINR f4 0a
!NVS CFG-BINR D5 01

Команда f4 0a попросит NV08C выдавать 0xF5-ый пакет с темпом 100мс*<параметр> => 100*10 = 1 сек, также будет выдаваться 0xF7-ой пакет (расширенные эфемериды спутников) с темпом обновления эфемерид.

Команда D5 01 - это разрешение выдачи 0xE5 пакета с битовой информацией от спутников.

Указываем Format NVS BINR. Жмем OK.

Javad:

Нажимаем на "Load" идем в папку \rtklib_2.4.2\data. Выбираем сценарий, например "javad_raw_1hz". В итоге в верхнем окошке появится:

em,,def:{1,,}
em,,jps/gd
em,,jps/qd
em,,jps/WD
em,,jps/ET

а в нижнем:

dm

Шаг 2.2

Настройка потока выходных данных. Кнопка O позволяет указать куда сливать решение навигационной задачи. Выбираем File и указываем путь к нему. Кнопка L позволяет указать, куда сливать все, что валится из настроенного в п. 2.1 входного потока. Также выбираем File и указываем путь к файлу логов.

Шаг 2.3

Перед запуском можно покрутить настройки в Options. Оставим как есть (см. рис. 2).

Рисунок 1 - Настройка потоков данных в RTKNAVI
Рисунок 2 - Настройка опций RTKNAVI

Шаг 3

Нажимаем Start в RTKNAVI и, если все хорошо, видим отношения с/ш по спутникам, свои координаты (см. рис. 3).

Рисунок 3 - Решается

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

Итого

Мы принимаем с NV08C сырые данные и эфемериды, RTKLIB по ним решает навигационную задачу. Результат решения и принимаемые от приемника данные записываются в соответствующие файлы. На самом деле, логи можно писать с помощью программы STRSVR, об этом в 4 разделе.

Конвертируем в RINEX

В первом разделе научились снимать логи с приемника. Что дальше? Дальше постобработка. Но нужно переварить бинарные логи в удобный формат, например, RINEX. Воспользуемся программой RTKCONV.

Тут все просто (см. рис. 4):

  • Запускаем программу RTKCONV
  • Указываем ей в первой строчке файл лога для конвертации. Также указываем формат файла (у нас - NVS BINR)
  • Выбираем, при необходимости, каталог и имена для выходных RINEX файлов
  • Если нужно, в Options включаем галочку у GLO
  • Жмем Convert
  • Получаем RINEX файл наблюдений .obs, RINEX файлы навигационных сообщений .gnav, .nav для ГЛОНАСС и GPS соответственно
Рисунок 4 - Конвертация

Постобработка

Для простой постобработки - режим Single, тоже все достаточно просто:

  • Запускаем RTKPOST (см. рис. 5)
  • Указываем в первой строчке RINEX файл наблюдейний .obs
  • Во второй строчке указываем RINEX файл навигационных сообщений .nav. Пока не понятно, как подпихнуть ему эфемериды ГЛОНАСС и GPS, т. е. .nav и .gnav одновременно.
  • Идем в Options и ставим нужные галочки и режимы. Выбираем простой режим Single.
  • Жмем Execute
  • Кнопка View откроет просмотр текстового файла с решением навигационной задачи, кнопка Plot построит различные графики
Рисунок 5 - Постобработка

Перенаправление бинарного потока от NV08C

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

Опять же, все довольно просто:

  • Запускаем STRSVR (см. рис. 6)
  • В поле (0)Input выбираем Type Serial. Жмем OPT, настраиваем параметры порта, куда NV08C скидывает данные.
  • Надо попросить NV08C выдавать нужные пакеты. Для этого жмем CMD и вводим команды
!NVS CFG-BINR f4 0a
!NVS CFG-BINR D5 01
  • Настраиваем Output. Здесь мы можем направить вход в три различных выходных потока. Пример: хотим (0)Input расшарить по сети и писать в файл у себя. Тогда:
    • (1)Output выбираем TCP Server, жмем OPT, вводим порт 3491
    • (2)Output выбираем File, жмем OPT, вводим путь для сохранения файла
  • Жмем Start
  • На картинке 6 видно, что к (1)Output подключился некто с IP 192.168.0.99, и ему отправляются байты (на 99-й машине запущен binr_parse -t 192.168.0.207, где последнее - адрес компьютера с RTKLIB'ом). Так же байты летят и в файл (2)Output.
  • По идее, теперь можно запускать RTKNAVI и подключаться одному из выходов STRSRV
Рисунок 6 - Перенаправление потока бинарных данных

Ещё на тему

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты