29.07.2015 Работа с RTKLib

Материал из SRNS
Перейти к: навигация, поиск
(Ещё на тему)
 
(не показаны 36 промежуточных версий 4 участников)
Строка 3: Строка 3:
 
Настройка, запись логов, постобработка с RTKLib.
 
Настройка, запись логов, постобработка с RTKLib.
 
</summary>
 
</summary>
{{Форма3}}
 
  
 
{{TOCright}}
 
{{TOCright}}
  
 
== Вступление ==  
 
== Вступление ==  
Есть такая штука, [http://www.rtklib.com/ RTKLIB]. Это библиотека и набор различных программ (для Windows с GUI, для Linux - консольные) для решения навигационной задачи по сигналам ГНСС. В этой статье будет рассмотрена работа с RTKLIB из-под Windows.  
+
Есть такая штука, [http://www.rtklib.com/ 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 из основного проекта [https://github.com/tomojitakasu/RTKLIB/tree/master Git] не перекомпилированы, по ГЛОНАССУ RTKNAVI не решается. Начиная с версии 2.4.2 p12 GUI вообще вынесены в отдельный реппозиторий Git'a.'''''
 +
 
 +
'''''Решение: качать GUI начиная с версии 2.4.2 p12 отсюда [https://github.com/tomojitakasu/RTKLIB_bin GUI Windows]'''''
  
 
Рассматриваемые задачи:
 
Рассматриваемые задачи:
  
1. При помощи RTKLIB записать пакеты BINR 0xF5, 0xE5, 0xF5 от NV08C в лог-файл для последующей постобработки;
+
1. При помощи RTKLIB записать пакеты BINR 0xF5, 0xE5, 0xF7 от NV08C в лог-файл для последующей постобработки;
  
 
2. Заодно при помощи RTKLIB решаться по NV08C;
 
2. Заодно при помощи RTKLIB решаться по NV08C;
Строка 20: Строка 23:
 
4. Перенаправить бинарный поток с NV08C куда следует (в binr_parse и т.п.);
 
4. Перенаправить бинарный поток с NV08C куда следует (в binr_parse и т.п.);
  
Перво-наперво нужно запустить программу '''''rtklaunch.exe''''', находящуюся в папке <путь к файлам>/RTKlib/bin/. Она - лаунчер, позволяющий запускать остальные программы одним кликом (но можно и без нее тыкать каждый раз exe-шник нужной программы в папке /bin).
+
Так же здесь можно найти аналогичное решение задачи с использованием приёмника Javad.
 +
 
 +
Перво-наперво нужно запустить программу '''''rtklaunch.exe''''', находящуюся в папке <путь к файлам RTKlib>/bin/. Она - лаунчер, позволяющий запускать остальные программы одним кликом (но можно и без нее тыкать каждый раз exe-шник нужной программы в папке /bin).
  
 
[[File:20150730_RTKLAUNCH.PNG|центр|600px]]
 
[[File:20150730_RTKLAUNCH.PNG|центр|600px]]
Строка 30: Строка 35:
 
*RTKPOST - для решения навигационной задачи по записанным RINEX файлам.
 
*RTKPOST - для решения навигационной задачи по записанным RINEX файлам.
  
== 1 Пишем BINR в логи, решаемся по измерениям NV08C ==
+
== Пишем BINR в логи, решаемся по измерениям NV08C ==
  
 
=== Шаг 1 ===  
 
=== Шаг 1 ===  
Берем платку с NV08C, подключаем антенну, USB. Запускаем BMControl. Настраиваем порты на выдачу BINR. Можно настроить оба порта одинаково: один оставить для контроля через BMControl, другой отдать RTKLib. (Последнее время глюки: один порт настроен на NMEA 115200, другой молчит. Законнектившись по доступному порту, перенастраиваем его на BINR, а потом настраиваем оставшийся порт на BINR. '''''Скорость 115200, 8bit, 1 start bit, 1 stop bit, Odd''''')
+
'''''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:'''''
 +
 
 +
[https://srns.ru/wiki/Blog:Korogodin/07.07.2011,_JAVAD2RINEX_HOWTO Подключаем Javad]
 +
 
 +
Параметры порта:
 +
*Bitrate: 115200
 +
*Byte Size: 8 bit
 +
*Parity: None
 +
*Stop Bits: 1 bit
 +
*Flow Control: None
  
 
=== Шаг 2 ===  
 
=== Шаг 2 ===  
Строка 39: Строка 64:
  
 
==== Шаг 2.1 ====  
 
==== Шаг 2.1 ====  
Настройка потока входных данных. Нажимаем кнопку '''I''' (см. рис. 1). Указываем тип входных данных ''Serial'' для Rover. Нажимаем рядом кнопку '''OPT''' и вводим настройки последовательного порта (упоминались выше). Нажимаем кнопку '''CMD''' рядом с '''OPT''' и вводим команды
+
Настройка потока входных данных. Нажимаем кнопку '''I''' (см. рис. 1). Указываем тип входных данных ''Serial'' для Rover. Нажимаем рядом кнопку '''OPT''' и вводим настройки последовательного порта (упоминались выше). Нажимаем кнопку '''CMD''' рядом с '''OPT'''. Далее необходимо выбрать '''Format''' соответствующего приемника.
 +
 
 +
 
 +
'''''NV08C:'''''
 +
 
 +
вводим команды:
 
<source lang="bash">
 
<source lang="bash">
 
!NVS CFG-BINR f4 0a
 
!NVS CFG-BINR f4 0a
 
!NVS CFG-BINR D5 01
 
!NVS CFG-BINR D5 01
 
</source>
 
</source>
Команда f4 0a попросит NV08C выдавать F5-ый пакет с темпом 100мс*<параметр> => 100*10 = 1 сек, также будет выдаваться F7-ой пакет (расширенные эфемериды спутников) с темпом обновления эфемерид.
+
Команда f4 0a попросит NV08C выдавать 0xF5-ый пакет с темпом 100мс*<параметр> => 100*10 = 1 сек, также будет выдаваться 0xF7-ой пакет (расширенные эфемериды спутников) с темпом обновления эфемерид.
  
Команда D5 01 - это разрешение выдачи E5 пакета с битовой информацией от спутников.
+
Команда D5 01 - это разрешение выдачи 0xE5 пакета с битовой информацией от спутников.
  
 
Указываем Format ''NVS BINR''. Жмем '''OK'''.
 
Указываем Format ''NVS BINR''. Жмем '''OK'''.
 +
 +
'''''Javad:'''''
 +
 +
Нажимаем на "Load" идем в папку \rtklib_2.4.2\data. Выбираем сценарий, например "javad_raw_1hz". В итоге в верхнем окошке появится:
 +
<source lang="bash">
 +
em,,def:{1,,}
 +
em,,jps/gd
 +
em,,jps/qd
 +
em,,jps/WD
 +
em,,jps/ET
 +
</source>
 +
 +
а в нижнем:
 +
<source lang="bash">
 +
dm
 +
</source>
  
 
==== Шаг 2.2 ====  
 
==== Шаг 2.2 ====  
Строка 67: Строка 113:
 
Нажимаем '''Start''' в RTKNAVI и, если все хорошо, видим отношения с/ш по спутникам, свои координаты (см. рис. 3).
 
Нажимаем '''Start''' в RTKNAVI и, если все хорошо, видим отношения с/ш по спутникам, свои координаты (см. рис. 3).
  
[[File:20150730_RTKNAVIsolutionHL.PNG|мини|центр|800px|Рисунок 3 - Решается]]
+
[[File:20150730_RTKNAVIsolutionHL.PNG|мини|центр|1000px|Рисунок 3 - Решается]]
  
Полезная фича - RTKMonitor. Он отображает всякую информацию (эфемериды, сырые данные, принимаемые пакеты и т.п.). Для его включения необходимо тыкнуть маленький квадратик (см. рис. 3). Тыкать можно столько раз, сколько разных окошек хотим смотреть. '''''Важно: На момент написания этой заметки (30.07.2015), RTKNAVI не хочет решаться по ГЛОНАСС. Решение получается только при снятии галочки GLO в опциях.'''''
+
Полезная фича - RTKMonitor. Он отображает всякую информацию (эфемериды, сырые данные, принимаемые пакеты и т.п.). Для его включения необходимо тыкнуть маленький квадратик (см. рис. 3). Тыкать можно столько раз, сколько разных окошек хотим смотреть.
  
 
=== Итого ===
 
=== Итого ===
Мы принимаем с NV08C сырые данные и эфемериды, RTKLIB по ним решает навигационную задачу. Результат решения и принимаемые от приемника данные записываются в соответствующие файлы.
+
Мы принимаем с NV08C сырые данные и эфемериды, RTKLIB по ним решает навигационную задачу. Результат решения и принимаемые от приемника данные записываются в соответствующие файлы. На самом деле, логи можно писать с помощью программы STRSVR, об этом в 4 разделе.
  
== 2 Конвертируем в RINEX ==
+
== Конвертируем в RINEX ==
 
В первом разделе научились снимать логи с приемника. Что дальше? Дальше постобработка. Но нужно переварить бинарные логи в удобный формат, например, RINEX. Воспользуемся программой RTKCONV.
 
В первом разделе научились снимать логи с приемника. Что дальше? Дальше постобработка. Но нужно переварить бинарные логи в удобный формат, например, RINEX. Воспользуемся программой RTKCONV.
  
Строка 87: Строка 133:
 
[[File:20150730_RTKCONV.PNG|мини|центр|600px|Рисунок 4 - Конвертация]]
 
[[File:20150730_RTKCONV.PNG|мини|центр|600px|Рисунок 4 - Конвертация]]
  
== 3 Постобработка ==
+
== Постобработка ==
 
Для простой постобработки - режим Single, тоже все достаточно просто:
 
Для простой постобработки - режим Single, тоже все достаточно просто:
 
*Запускаем RTKPOST (см. рис. 5)
 
*Запускаем RTKPOST (см. рис. 5)
Строка 96: Строка 142:
 
*Кнопка '''View''' откроет просмотр текстового файла с решением навигационной задачи, кнопка '''Plot''' построит различные графики
 
*Кнопка '''View''' откроет просмотр текстового файла с решением навигационной задачи, кнопка '''Plot''' построит различные графики
  
 +
[[File:20150731_RTKPOSThl.PNG|мини|центр|800px|Рисунок 5 - Постобработка]]
 +
 +
== Перенаправление бинарного потока от NV08C ==
 +
Для простой записи логов и перенаправления этих логов, скажем, по сети для обработки на другой машине, используется программа STRSVR.
 +
 +
Опять же, все довольно просто:
 +
*Запускаем STRSVR (см. рис. 6)
 +
*В поле (0)Input выбираем Type ''Serial''. Жмем '''OPT''', настраиваем параметры порта, куда NV08C скидывает данные.
 +
*Надо попросить NV08C выдавать нужные пакеты. Для этого жмем '''CMD''' и вводим команды
 +
<source lang="bash">
 +
!NVS CFG-BINR f4 0a
 +
!NVS CFG-BINR D5 01
 +
</source>
 +
*Настраиваем Output. Здесь мы можем направить вход в три различных выходных потока. Пример: хотим (0)Input расшарить по сети и писать в файл у себя. Тогда:
 +
** (1)Output выбираем ''TCP Server'', жмем '''OPT''', вводим порт 3491
 +
** (2)Output выбираем ''File'', жмем '''OPT''', вводим путь для сохранения файла
 +
*Жмем '''Start'''
 +
*На картинке 6 видно, что к (1)Output подключился некто с IP 192.168.0.99, и ему отправляются байты (на 99-й машине запущен <code>binr_parse -t 192.168.0.207</code>, где последнее - адрес компьютера с RTKLIB'ом). Так же байты летят и в файл (2)Output.
 +
*По идее, теперь можно запускать RTKNAVI и подключаться одному из выходов STRSRV
 +
 +
[[File:20150731_STRSVR.PNG|мини|центр|800px|Рисунок 6 - Перенаправление потока бинарных данных]]
 +
 +
== Ещё на тему ==
 +
 +
* [https://navtelecom.ru/partnerstvo/28-testovaya u-blox 6T + NV-08C]
 +
 +
{{wl-publish: 2015-07-31 11:35:33 +0300 | Dneprov }}
  
[[File:20150731_RTKPOSThl.PNG|мини|центр|600px|Рисунок 5 - Постобработка]]
+
[[Категория:RTKLib]]

Текущая версия на 16:33, 15 мая 2019

Содержание

[править] Вступление

Есть такая штука, 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 Сервер
Инструменты