29.07.2015 Работа с RTKLib
Dneprov (обсуждение | вклад) (→Шаг 2.1) |
Korogodin (обсуждение | вклад) (→Ещё на тему) |
||
(не показаны 43 промежуточные версии 4 участников) | |||
Строка 3: | Строка 3: | ||
Настройка, запись логов, постобработка с RTKLib. | Настройка, запись логов, постобработка с RTKLib. | ||
</summary> | </summary> | ||
− | |||
{{TOCright}} | {{TOCright}} | ||
== Вступление == | == Вступление == | ||
− | Есть такая штука, [http://www.rtklib.com/ RTKLIB]. Это библиотека и набор различных программ ( | + | Есть такая штука, [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, | + | 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''''', находящуюся в папке <путь к файлам | + | Так же здесь можно найти аналогичное решение задачи с использованием приёмника Javad. |
+ | |||
+ | Перво-наперво нужно запустить программу '''''rtklaunch.exe''''', находящуюся в папке <путь к файлам RTKlib>/bin/. Она - лаунчер, позволяющий запускать остальные программы одним кликом (но можно и без нее тыкать каждый раз exe-шник нужной программы в папке /bin). | ||
[[File:20150730_RTKLAUNCH.PNG|центр|600px]] | [[File:20150730_RTKLAUNCH.PNG|центр|600px]] | ||
Строка 33: | Строка 38: | ||
=== Шаг 1 === | === Шаг 1 === | ||
− | Берем платку с NV08C, подключаем антенну, USB. Запускаем BMControl. Настраиваем порты на выдачу BINR. Можно настроить оба порта одинаково: один оставить для контроля через BMControl, другой отдать RTKLib. (Последнее время глюки: один порт настроен на NMEA 115200, другой молчит. Законнектившись по доступному порту, перенастраиваем его на BINR, а потом настраиваем оставшийся порт на BINR. ''''' | + | '''''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 выдавать | + | Команда 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". В итоге в верхнем окошке появится: | ||
+ | <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 ==== | ||
Строка 63: | Строка 113: | ||
Нажимаем '''Start''' в RTKNAVI и, если все хорошо, видим отношения с/ш по спутникам, свои координаты (см. рис. 3). | Нажимаем '''Start''' в RTKNAVI и, если все хорошо, видим отношения с/ш по спутникам, свои координаты (см. рис. 3). | ||
− | [[File:20150730_RTKNAVIsolutionHL.PNG|мини|центр| | + | [[File:20150730_RTKNAVIsolutionHL.PNG|мини|центр|1000px|Рисунок 3 - Решается]] |
− | Полезная фича - RTKMonitor. Он отображает всякую информацию (эфемериды, сырые данные, принимаемые пакеты и т.п.). Для его включения необходимо тыкнуть маленький квадратик (см. рис. 3). Тыкать можно столько раз, сколько разных окошек хотим смотреть. | + | Полезная фича - RTKMonitor. Он отображает всякую информацию (эфемериды, сырые данные, принимаемые пакеты и т.п.). Для его включения необходимо тыкнуть маленький квадратик (см. рис. 3). Тыкать можно столько раз, сколько разных окошек хотим смотреть. |
=== Итого === | === Итого === | ||
− | Мы принимаем с NV08C сырые данные и эфемериды, RTKLIB по ним решает навигационную задачу. Результат решения и принимаемые от приемника данные записываются в соответствующие файлы. | + | Мы принимаем с NV08C сырые данные и эфемериды, RTKLIB по ним решает навигационную задачу. Результат решения и принимаемые от приемника данные записываются в соответствующие файлы. На самом деле, логи можно писать с помощью программы STRSVR, об этом в 4 разделе. |
+ | |||
+ | == Конвертируем в RINEX == | ||
+ | В первом разделе научились снимать логи с приемника. Что дальше? Дальше постобработка. Но нужно переварить бинарные логи в удобный формат, например, RINEX. Воспользуемся программой RTKCONV. | ||
+ | |||
+ | Тут все просто (см. рис. 4): | ||
+ | * Запускаем программу RTKCONV | ||
+ | * Указываем ей в первой строчке файл лога для конвертации. Также указываем формат файла (у нас - ''NVS BINR'') | ||
+ | * Выбираем, при необходимости, каталог и имена для выходных RINEX файлов | ||
+ | * Если нужно, в '''Options''' включаем галочку у GLO | ||
+ | * Жмем '''Convert''' | ||
+ | * Получаем RINEX файл наблюдений .obs, RINEX файлы навигационных сообщений .gnav, .nav для ГЛОНАСС и GPS соответственно | ||
+ | |||
+ | [[File:20150730_RTKCONV.PNG|мини|центр|600px|Рисунок 4 - Конвертация]] | ||
+ | |||
+ | == Постобработка == | ||
+ | Для простой постобработки - режим Single, тоже все достаточно просто: | ||
+ | *Запускаем RTKPOST (см. рис. 5) | ||
+ | *Указываем в первой строчке RINEX файл наблюдейний .obs | ||
+ | *Во второй строчке указываем RINEX файл навигационных сообщений .nav. Пока не понятно, как подпихнуть ему эфемериды ГЛОНАСС и GPS, т. е. .nav и .gnav одновременно. | ||
+ | *Идем в '''Options''' и ставим нужные галочки и режимы. Выбираем простой режим Single. | ||
+ | *Жмем '''Execute''' | ||
+ | *Кнопка '''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 }} | ||
+ | |||
+ | [[Категория: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).
Нам потребуются:
- 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:
Параметры порта:
- 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 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,,jps/gd
em,,jps/qd
em,,jps/WD
em,,jps/ET
а в нижнем:
[править] Шаг 2.2
Настройка потока выходных данных. Кнопка O позволяет указать куда сливать решение навигационной задачи. Выбираем File и указываем путь к нему. Кнопка L позволяет указать, куда сливать все, что валится из настроенного в п. 2.1 входного потока. Также выбираем File и указываем путь к файлу логов.
[править] Шаг 2.3
Перед запуском можно покрутить настройки в Options. Оставим как есть (см. рис. 2).
[править] Шаг 3
Нажимаем Start в RTKNAVI и, если все хорошо, видим отношения с/ш по спутникам, свои координаты (см. рис. 3).
Полезная фича - RTKMonitor. Он отображает всякую информацию (эфемериды, сырые данные, принимаемые пакеты и т.п.). Для его включения необходимо тыкнуть маленький квадратик (см. рис. 3). Тыкать можно столько раз, сколько разных окошек хотим смотреть.
[править] Итого
Мы принимаем с NV08C сырые данные и эфемериды, RTKLIB по ним решает навигационную задачу. Результат решения и принимаемые от приемника данные записываются в соответствующие файлы. На самом деле, логи можно писать с помощью программы STRSVR, об этом в 4 разделе.
[править] Конвертируем в RINEX
В первом разделе научились снимать логи с приемника. Что дальше? Дальше постобработка. Но нужно переварить бинарные логи в удобный формат, например, RINEX. Воспользуемся программой RTKCONV.
Тут все просто (см. рис. 4):
- Запускаем программу RTKCONV
- Указываем ей в первой строчке файл лога для конвертации. Также указываем формат файла (у нас - NVS BINR)
- Выбираем, при необходимости, каталог и имена для выходных RINEX файлов
- Если нужно, в Options включаем галочку у GLO
- Жмем Convert
- Получаем RINEX файл наблюдений .obs, RINEX файлы навигационных сообщений .gnav, .nav для ГЛОНАСС и GPS соответственно
[править] Постобработка
Для простой постобработки - режим Single, тоже все достаточно просто:
- Запускаем RTKPOST (см. рис. 5)
- Указываем в первой строчке RINEX файл наблюдейний .obs
- Во второй строчке указываем RINEX файл навигационных сообщений .nav. Пока не понятно, как подпихнуть ему эфемериды ГЛОНАСС и GPS, т. е. .nav и .gnav одновременно.
- Идем в Options и ставим нужные галочки и режимы. Выбираем простой режим Single.
- Жмем Execute
- Кнопка View откроет просмотр текстового файла с решением навигационной задачи, кнопка Plot построит различные графики
[править] Перенаправление бинарного потока от NV08C
Для простой записи логов и перенаправления этих логов, скажем, по сети для обработки на другой машине, используется программа STRSVR.
Опять же, все довольно просто:
- Запускаем STRSVR (см. рис. 6)
- В поле (0)Input выбираем Type Serial. Жмем OPT, настраиваем параметры порта, куда NV08C скидывает данные.
- Надо попросить NV08C выдавать нужные пакеты. Для этого жмем CMD и вводим команды
!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
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.