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

Вы - исключение из правила, разработчик )) Все мы остальные, судя по многочисленным сообщениям, определенно ГИС-съёмка. Пожалуйста, без обид, но сколько тут человек готовы ставить / способны / имеют в наличии штатив, выставлять антенну на трегер, измерять тарированной рулеткой высоту антенны, учитывать фазовый центр антенны и пр. ? Так что разговоры про “сантиметры” от большинства участников (включая меня) ни о чем, толку от того что мы знаем координату антенны, но не можем грамотно снести её на измеряемый объект. С “сантиметрами” ещё нужно уметь обращаться. И чем раньше присутствующие это поймут, тем менее обидно будет впоследствии задавать себе вопрос “а, собственно, нафига мне сантиметры ?” ))

Чисто как эксперимент, я провёл два статических измерения, правда в обоих случаях был снегопад и во второй раз у меня антенну сдуло. Да и аккумулятор замерзает и его не хватает даже на 2 часа. Так что проверку повторяемости я отложил на лето. А вообще маперу статические измерения и не нужны. Впрочем как и “сантиметры” ибо разрешение снимков на порядок больше.

Я вернулся к старому трекеру Globalsat TR-600G , которым уже интересовался ранее,
и практически довел до конца исследование этого железа. Теперь можно попытаться
перепрошить его на самодельную прошивку.
OTA update на нем - это просто security nightmare:


${IMEI} , ${ftp_addr}, ${ftp_port}, {ftp_usename}, ${ftp_password}, ${dfu_fw_name}, ${dfu_fw_size}

GSC,${IMEI},LN(${ftp_addr},${ftp_port},${ftp_usename},${ftp_password},1, ${dfu_fw_name},${dfu_fw_size})*QQ!

На устройстве находятся (как минимум) 4 “имиджа”: три в STM32 flash и один в SPI flash
DFU-bootloader@0x08000000


======================================================
=   (C) Copyright 2011 GlobalSat Technology Corp.    =
=      TR-600G BootLoader F-0TR-60GBOT-11081551      =
======================================================

HW Test Program@0x08004000


  HW Test FW Ver : F-0TR-60GMHT-11081551

main FW@0x08009800


  FW Ver : F-0TR-60GOOO-11102851

HW Test FW нигде не документирована, но в очень старых неоглонассенных
прошивках ее команды можно было увидеть в main FW. Самые интересные из них


tr+GpsUpgradeFw
tr+FwVer
tr+GSensorID
tr+ReadFlashID
tr+StatusLedOff
tr+StatusLedOn
tr+SpkOff
tr+SpkOn
tr+MicOff
tr+MicOn

GSensor это полноценный LIS302DL на I2C шине, statusLED - красный LED (Power).
Таким образом стало понятно назначение оставшихся неизвестных GPIO пинов,
и перепрошить NV08C-CSM на прошивку с поддержкой RAW data
(ничего не паяя и не разбирая).
Также можно будет поступить и с Globalsat TR-600 который использует sirf3 (версия
прошивки неизвестна).
Теперь думаю написать маленькую программку с помощью libopencm3
https://github.com/libopencm3
и записать ее на место Main FW с помощью DFU bootloader, который всегда позволит
вернуться к “genuine” Main FW.
Вообще существуют прошивки типа https://github.com/x893/CarTracker
но совершенно непонятно, в какой они стадии развития.
Используя libopencm3 можно в принципе написать и самопальную прошивку для ublox7/ublox8
(разобравшись с управлением коррелятором), но это скорее wishful thinking.
Хотя если нас в ближайшее время окончательно задавят цифровыми подписями,
не исключено, что придется вернуться к старому доброму железу (или перейти на SDR) :sunglasses:

Единственной недобитой проблемой осталась прошивка Xtrac/SiRFLoc для sirf2,
которая выдает кривой и косой MID5, но не хочет выдавать MID8 и MID28
(хотя код для них в прошивке есть). Интересно, что команда MID172, которую
было бы очень удобно использовать для включения MID8 и MID28
(после легкой модификации),
по своим входным параметрам совсем никак не совпадает с
официальной документацией (!).

Вышел Ublox NEO-M8P , c RTK .

А какая там прошивка ?

посоветуйте сервер который будет собирать поправки с базовой станции и транслировать в инет, я так понимаю он называется NTRIP caster.

В http://gpspp.sakura.ne.jp/rtklib/ есть свой сервер

Проявились E8 и E9 в сырых данных SEC-0 , но пока без навигационного сообщения.
Я использую Navilock NL-8002MU с пропатченной прошивкой для
целей мониторинга (GPS+GAL+BDS).

есть какие-то evaluation приложения, но сам не пробовал пока ещё:
https://www.u-blox.com/en/product/u-center-windows
https://www.u-blox.com/en/product/u-center-android

похвалите/покритикуете их?

Без упоминания того, какова задача, которую вы решаете, вопрос лишен смысла. Приборы? Двадцать. Что “двадцать”? А что “приборы”?

Navilock NL-8002MU умеет трекать (с phase lock, code коррелятор при этом перебирает все E1-E36)
все 12 спутников Galileo,
но так как I/NAV передается только для 7
(RXM-SFRBX для тех которые Operational https://en.wikipedia.org/wiki/List_of_Galileo_satellites)), то
за последние два дня максимальное число одновременно наблюдаемых
спутников у меня было равно 5. Надо будет сравнить с TRK-SFRBX в SEC-0.
Попытка вычислить координаты с помощью rnx2rtkp
показала бездну багов в rtklib, часть я поправил, но не все :sunglasses:
Так что пока Galileo-only не работает…

https://www.u-blox.com/sites/default/files/u-center_UserGuide_%28UBX-13005250%29.pdf
на 9 странице написано что он вообще может

на стр 32-34, 4.2.4 Messages View и 4.2.4.1 Receiver output messages, 4.2.5 Statistic view
сообщения NMEA будут показаны с понятными текстовыми метками неподготовленному и даже подсвечены

есть ли аналогичные программы которые делают обозначенные функции лучше? Правильно ли понимаю что GNSS evaluation software for Windows это только для просмотра сырых данных (без их корректировок), либо здесь есть функции которые я не нашёл?

uCenter для Windows предназначен для: просмотра данных, приходящих от приемника (как раз, главным образом, вовсе не сырых), конфигурирования приемников uBlox, просмотра конфигурации, сохранения данных, которые выдает приемник, в log-файл. Более ни для чего.
Аналогичного (в части просмотра данных от приемника) софта - дохрена, всякие там NMEA-мониторы, VisualGPS-ы и т.п., вот реально не счесть. Разной степени наглядности.

Так что пока Galileo-only не работает…
Так на сколько я понял он вообще без GPS ни чего не может. Сужу по настройке:
Integer Ambiguity Res (GPS/GLO/BDS)
Если отключить GPS все остальные поля так же отключаются. Да и для Галилео тут поля нет вообще.

Единственная (пока?) безальтернативная функция в u-center это
перепрошивка приемника.

Так далеко я еще на дошел. Имея нормальные OBS и NAV для 5 спутников, rtklib
не дает даже SINGLE решения. Так как RINEX формат более или менее совпадает с GPS,
то это чисто программная проблема. Single должно работать независимо от системы.

Edit
Методика Ambiguity Resolution для Galileo E1 по моим представлениям должна полностью
совпадать c GPS L1, на уровне RINEX различие только в буковке E вместо буковки Ж.

Все заработало, Galileo-only по 4 спутникам (SDU конечно не радует)
и Galileo+Beidou.
Можно пробовать запустить RTK, но с нормальной антенной.


% program   : RTKLIB ver.2.4.3
% inp file  : /tmp/GAL_E9.obs
% inp file  : /tmp/GAL_E9.nav
% obs start : 2016/02/18 11:13:00.0 GPST (week1884 385980.0s)
% obs end   : 2016/02/19 23:39:00.0 GPST (week1884 517140.0s)
% pos mode  : single
% elev mask : 10.0 deg
% ionos opt : broadcast
% tropo opt : saastamoinen
% ephemeris : broadcast
% navi sys  : galileo
%
% (lat/lon/height=WGS84/ellipsoidal,Q=1:fix,2:float,3:sbas,4:dgps,5:single,6:ppp,ns=# of satellites)
%  GPST                  latitude(deg) longitude(deg)  height(m)   Q  ns   sdn(m)   sde(m)   sdu(m)  sdne(m)  sdeu(m)  sdun(m) age(s)  ratio
2016/02/19 08:37:00.000   --.------121   --.------492    --.7636   5   4   4.4957   5.9851  38.3681  -4.8945 -14.9237  12.6063   0.00    0.0

Работает (технически) и в Galileo RTK:


% program   : RTKLIB ver.2.4.3
% inp file  : /tmp/GAL_E9.obs
% inp file  : /tmp/GAL_E9.nav
% inp file  : ----0500.16d
% obs start : 2016/02/18 11:13:00.0 GPST (week1884 385980.0s)
% obs end   : 2016/02/19 23:39:00.0 GPST (week1884 517140.0s)
% pos mode  : static
% freqs     : L1
% solution  : combined
% elev mask : 10.0 deg
% dynamics  : off
% tidecorr  : off
% ionos opt : broadcast
% tropo opt : saastamoinen
% ephemeris : broadcast
% navi sys  : galileo
% amb res   : continuous
% val thres : 5.0
% antenna1  :                       ( 0.0000  0.0000  0.0000)
% antenna2  : JAV_RINGANT_G3T NONE  ( 0.0000  0.0000  0.0000)

Коммерческие люди что-то в последнее время засуетились и выложили программу Kinematica.jar
https://www.advancednavigation.com.au
но у меня это чудо из “ограниченной во времени явы” не работает:


$ java -jar ~/Downloads/Kinematica.jar 
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/advancednavigation/kinemeticPostProcessor/Main : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

Честно говоря достали.
Буду тоже сам писать GUI на Qt.