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

Слайд 23 показывает, что производитель не откалибровал межканальные отклонения, что делает
глонасс на ublox второсортным продуктом. Впрочем, производитель из этого секрета и не делает.

Я еще раз внимательно пригляделся к GPS приемнику LEA-5S встроенному в TwoNav Aventura:


[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COM5]
    "DeviceArrayIndex"=dword:0
    "IoBase"=dword:43fb4000
    "IoLen"=dword:d4
    "Prefix"="COM"
    "Dll"="csp_serial.dll"
    "Index"=dword:5
    "Order"=dword:9
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COM6]
    "DeviceArrayIndex"=dword:0
    "IoBase"=dword:43f90000
    "IoLen"=dword:d4
    "Prefix"="COM"
    "Dll"="csp_serial.dll"
    "Index"=dword:6
    "Order"=dword:9

т.е. внешний последовательный порт, к которому можно подключиться это COM6=UART1 (0x43f90000), а
GPS находится на COM5=UART5 (0x43f90000). Linux запустить так просто не удастся,
так как имеющаяся в ядре поддержка iMX.31 ( arch/arm/mach-imx/clock-imx31.c ) использует
внешний кварцевый генератор 26MHz ( mx31_clocks_init(26000000); ),
а Geosat 6 http://www.geosat6.com пожалел денег на кварц, поэтому придется патчить нетривиальные вещи
в конфигурации частотных делителей …
Читать NMEA@4800 на UART5/COM5 я могу, а вот переключить на UBX никак не удается.
Хотя хотелось бы конечно утереть тримблу нос, поэтому буду думать дальше :slight_smile:

LEA-4A no Raw output after using custom message b5 62 09 01 09 00 14 6c 00 00 00 00 00 00 ff 92 f7
UBX message enabled, RXM-RAW enabled, RXM-SFRB enabled for serial port.

Checked the UBX output, actually no RXM-SFRB and RXM-RAW messages from the serial port. Other UBX message like NAV-CLOCK works fine.

Help please!

Which firmware version do you have on LEA-4A ?
The custom message depends on the RAM layout of static variables.

Удалось включить NAV-TIMEGPS@4800!
Теперь надо только переключиться на 115200 (хотя может и 57600 достаточно),
включить TRK-TRKD5 и будет raw ubx gps logger для TwoNav Aventura (wince PDA с внешним MCX антенным
разъемом) :sunglasses:

Could you please advise how to check firmware version? Thanks.

Usually it is sent as an informational NMEA message $GPTXT
when you connect to the serial/USB port.
Here is an example for TIM-4A


$GPTXT,01,01,02,u-blox ag - www.u-blox.com*50
$GPTXT,01,01,02,ANTARIS ATR0621 HW 00040001*67
$GPTXT,01,01,02,ROM CORE 4.00 Dec 23 2004 12:00:00*7A
$GPTXT,01,01,02,LIC 5313-D494-A4A6-DF28-29A9*2B

The “wiki” custom sequence is valid only for “ROM CORE 5.00”


$GPTXT,01,01,02,u-blox ag - www.u-blox.com*50
$GPTXT,01,01,02,ANTARIS ATR062x HW 00040001*2E
$GPTXT,01,01,02,ROM CORE       5.00    Jan 09 2006 12:00:00*76
$GPTXT,01,01,02,LIC 45CF-6311-188B-04EA-22C6*2C

and probably will not work on “ROM CORE 4.00”.
In u-center you can also use “View->Messages view->UBX->MON->VER” to see the hardware
and software version of your receiver.

As seen in UBX->MON->VER:

Software version:
5.00 Jan 09 2006 12:00:00

Hardware version:
00040001

Then you are doing something wrong.
Start u-center, change the port speed to 115200 (if you are using UART),
send the custom sequence, enable RXM-RAW and RXM-SFRB messages on the
port you are using (UART, USB or whatever).
The raw data should appear in the messages ->UBX->* window.

OK now.
Thanks.

Хаха. u-blox заметил автора rtklib видимо в связи с NEO-M8N. Он пишет в блоге:


have received the offer from u-blox's EVK-M8T and written materials.

L2C в u-Center.

Для L2C нужна другая антенна, и другой полосовой фильтр.
Я бы предпочел, чтобы они в конце концов сделали поддержку Галилео E1.

Я провел численный эксперимент по определению с помощью RTKLIB
(well known) координат вот этой точки
http://vermessung.bayern.de/grundlagenverm/georeferenzpunkt/muenchen.html
относительно (well known, расстояние 2.6 км) базовой станции
http://gibs.bkg.bund.de/gref/gstainfo.php?st=25 по 15 минутному RINEX логу,
сделанному с помощью u-blox NEO-M8N и антенны Tallysman TW3440 http://www.tallysman.com/TW344X.php
Результаты весьмы поучительны в плане работы с “местными” системами координат
и пересчете систем высот, так что я добавлю их в ближайшее время в вики.

u-blox опубликовал новое описание протокола обмена данными V17
http://www.u-blox.com/images/downloads/Product_Docs/u-bloxM8_ReceiverDescriptionProtocolSpec_%28UBX-13003221%29_Public.pdf
в котором описаны RXM-RAWX и RXM-SFRBX.
В колонке комментариев к pseudorange есть такая фраза


GLONASS inter
frequency channel delays are compensated with
an internal calibration table.

что подразумевает либо заводскую калибровку (наиболее вероятное)
или автокалибровку по измерениям GPS.
Вторая важная фраза касается корректировки фазы


 Clock resets are applied to both
phase and code measurements in accordance
with the RINEX specification

и ранее здесь обсуждалась.
Версия прошивки с RXM-RAWX → EXT 2.30,
и сравнив сырые данные из RXM-RAWX и TRK-MEAS
можно будет удостовериться в правильности текущего драйвера для u-blox
(у меня есть тут некоторые сомнения, + очевидная проблема с > 10 Hz).

Is it convenient for somebody to upload neo-7p firmware? I’d like to flash my EVK-7N.
Many thanks.

You don’t need 7P firmware to get raw data from NEO-7X.
The TRK-TRKD5 and TRK-SFRBX messages
can be enabled by adding the following lines (depending on the output port)


# USB
!UBX CFG-MSG 3 10 0 0 0 1 0 0
!UBX CFG-MSG 3 15 0 0 0 1 0 0
# UART1
!UBX CFG-MSG 3 10 0 1 0 0 0 0
!UBX CFG-MSG 3 15 0 1 0 0 0 0
# SPI
!UBX CFG-MSG 3 10 0 0 0 0 1 0
!UBX CFG-MSG 3 15 0 0 0 0 1 0

to your init file https://github.com/tomojitakasu/RTKLIB/blob/master/data/ubx_m8n_bds_raw_1hz.cmd
Recent rtklib versions know how to deal with these messages.

Many thanks again

Ооо, россиянские бизьнесмены подтянулись :roll_eyes:
http://geodesist.ru/forum/threads/rtklib-%D0%9D%D1%83%D0%B6%D0%B5%D0%BD-%D0%B3%D1%83%D1%80%D1%83-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D0%B8.35323/

В соседней теме есть ссылка на статью про rtklib http://habrahabr.ru/post/244475/

С одной стороны это хорошо, но уж больно много в тексте мелких огрехов:

  1. не указана версия NVS (hardware и firmware)
  2. на 3434 OBS приходится 112 ошибок. и это при том, что NVS драйвер в rtklib даже не проверяет контрольную сумму.
    тут какая-то кривизна конфигурации.
  3. в окне RTKCONV незачем включать SBAS и L2 (как и D, так как rtklib его не использует)
  4. в окне RTKPOST только одна строчка для файлов эфемерид. Подозреваю что они НЕ для глонасс :sunglasses: и только для ровера
    поэтому писать в заголовке "ГЛОНАСС*, GPS*, Open source* " не совсем корректно, раз
    уж используются только данные GPS.
  5. Параметры антенны не используются (хотя дальше в обсуждении упоминается ANTEX для TW3870)
  6. Ни слова про базу и параметры ее данных (видно только что она ближе 100 метров, т.к. B=0.0 km)
  7. Координаты ровера 55.73815787N 37.52383650E говорят о том, что он находится всего в ~13 км от
    станции ФАГС CNG1 http://www.mwork.su/markdelo/images/content/smagluk/doklad.pdf
    2014-11-28 это 332 день, скачать OBS, эфемериды
    http://82.138.13.236/filebrowser/index.php?SESSID=9ad559b3da9f4b83120afff257d9d07b&currentPath=RGS/obs/2014
    и сделать нормальный постпроцессинг, в том числе и глолнасс :stuck_out_tongue:

usm78-gis
Прошу практического совета, чем вообще патчат ARM-код под виндовс ? У меня сейчас тулчейн такой

  1. посмотреть в Иде что там делает код
  2. написать заплатку на C в VS 2005
  3. копильнуть в obj или exe
  4. посмотреть, что получилось, в Иде (те ли регистры передают данные, сохраняются ли в стеке и пр.)
  5. скопировать/написать ассемблерный ARM-код, подправить, если надо
  6. компильнуть майкрософтовским armasm
  7. открыть получившийся бинарник каким-либо отладчиком (или Идой), найти код, скопировать hex
  8. вставить hex Идой в бинарник
  9. проверить ссылки на вызываемые процедуры, посчитать на калькуляторе нужные смещения, исправить все вызовы

Для несложного кода п.п.2-4 можно опустить, но всё-равно по сравнению с x86 это просто умопомрачение - там всё решается целым выбором инструментов (ida, ollydbg, hiew) и всего одним пунктом “открыть файл - вставить мнемонику asm”.

Заранее благодарен.