Программа работы с бытовыми навигаторами в практике геодезиста

Тема в разделе "Другие программы", создана пользователем sklimkim, 30 дек 2010.

  1. fiascko

    fiascko Форумчанин

    Кидаю, как и обещал, файлы
     

    Вложения:

    • Pr.tar.gz
      Размер файла:
      2 МБ
      Просмотров:
      88
  2. sklimkim

    sklimkim Форумчанин

    Программа chnav предоставляет пользователю выбрать каталог для ее выходных файлов.
    Я этого пока не осилил, поэтому моя программа пишет свои выходные файлы в место по умолчанию - Проводник -> Мое устройство. Ниже каталога Windows Вы увидите среди файлов, созданных программой SirfTech файлы вида: 12-08-11_15-25-35_Binary.txt 12-08-11_15-25-35_Observer.obs 12-08-11_15-25-35_Parsing.txt 12-08-11_15-25-35_Coords.txt 12-08-11_15-25-35_Points.txt
    Но! Это только в том случае, если в начале работы программы (сеанса) Вы нажали на большую кнопку "1_Files" и в открывшемся окне Files также нажали на еще более большую кнопку "Write_Files", после чего программа сама открывает для Вас окно Connect, в котором надо выбрать тип приемника/навигатора, имя порта и его скорость и нажать кнопку START.
    Затем надо набраться терпения на 15--30 секунд (идет опрос приемника) и при появлении окошечка MessageBox с текстом ".... Нажмите кнопку ACCEPT" нажать OK и нажать таки на кнопку меньшего размера ACCEPT.

    А Вы не пытались прорепетировать работу с программой дома, перед выездом в поле?
    А почитать простенький текстовый файл INFO.txt который лежит в архие с программой?
    Вы меня не то что удивили, ... я в глубокой печали.
    (Добавление)
    Любопытство вполне справедливое и законное. И мне за Державу часто бывает обидно.
    Господа из Майкрософта хотели угодить всем (языкам), а получилось по Черномырдину.
    Есть кодировка символов ASCII - 256 буковок, цифирок и прочих значков, где на каждый символ используется 1 байт, а есть кодировка UNICODE, где на каждый символ используется по 2 байта, но не всегда.
    Вот эта кодировка (даже система кодирования) вмещает (во всяком случае теоретически) все на земле сущие языки.
    И если в программе для ОС Win-Desktop можно обойтись только кодировкой ASCII, то в программе для ОС Win-CE/Mobile (в наладоннике например) приходится очень часто переходить от ASCII к UNICODE и наоборот. И вот в этих переходах скрыто много "подводных камней" для адекватного представления буковок языков отличающихся от латиницы (т.е для национальных символов, в том числе и для кириллицы). Но самая главная тайна не на дубе и не в яйце, а на кончике иглы.
    ОС Windows как правило "локализована", т.е. имеет русификацию, японизацию, финно-угро-изацию, и даже эстонизацию и латышизацию.
    А теперь прикиньте, что увидит несчастный бабуин на своей Windows c бабуинизацией, если неосмотрительный китаец написал программу в ОС Windows имеющей китаизацию. Нет бабуин увидит не китайские иероглифы, а свои бабуинские буковки а перемешку с английскими и скажет: "что это за кракозябры?". И мы в России так иногда говорим в подобных "некошерных" случаях. Это я еще не упомянул арабские и прочие семитские языки, где пишут справа-налево. Это только "... на четверть бывший наш народ" (В.Высоцкий) продолжает там писать слева направо и на великом и могучем. Остальных они пока еще не переучили.
    Кроме того так уж получилось, что америкосы и тут оказались у кормушки (компьютерных технологий) первыми. А кто раздает, тот и заказывает.
    Поэтому, чтобы моя программа сломала мозги англо-саксу (если попадет в его грязные руки) я пишу ее всю на родном языке, ну кроме имен переменных. Так я делал в некоторых своих программах на VBA для АвтоКАД'а - чтобы коллеги-халявщики за бугром не могли воспользоваться, а несли свои денежки бедным АвтоДескам и иже с ними.
    А если я предполагаю выложить программу не только для соотечественников но и для некоторых дружественных, но говорящих и пишущих на других языках коллеГОВ, то пишу не задумываясь УСЕ ПО-АГЛИЦКИ, попутно осваивая этот дебильный язык Шекспира-Шварценегера (имея еще и тайную цель заставить учить этот язык некоторых соотечественников - "...настанет время - сам поймешь наверное...").
    Ну вот так, примерно. И вкратце.
    Может более продвинутые товарищи поправят, добавят, убавят, позабавят.
    У меня почти все! Простите за очень сжатое изложение вопроса.
     
    k0styan3 нравится это.
  3. fiascko

    fiascko Форумчанин

    Репетировать времени не было, получилось выехать в поле спонтанно. INFO я читал и делал все в точности, как там написано.
    Значит, программа записывала файлы в Мое устройство? А я то все время глядел в папку с программой, думал, что в ней будут храниться файлы, ведь в версии на ХР obs и бинарные файлы пишутся в ту же самую папку.
     
  4. sklimkim

    sklimkim Форумчанин

    Windows-CE/Mobile в сравнении с Windows-Desktop имеет целый список отличий. Среди них, если не указывается полный путь к файлу, то:
    Windows-Desktop создает новый файл в текущем каталоге (папке),
    Windows-CE/Mobile создает новый файл в "корне" устройства (аналог C:\новый_файл).
    Хорошо это, или плохо - вопрос третьего порядка. Надо просто знать об этом.
    (Добавление)
    Оффтоп


    Присоединяюсь к просьбе, если конечно для этой акции нет каких-либо скрытых препятствий ::unsure.gif::
     
  5. fiascko

    fiascko Форумчанин

    Если бы я об этом знал, то 4 часа впустую не простоял бы.
     
  6. Кто-нибудь может подсказать как уже записанный файл типа Sirf Binary с MSG ID 28 завернуть в RINEX, ну а потом в RTK post-processing.
    В моем слyчае у меня GPS устройство с встроенным Navman Jupiter-F2 OEM module Sirf IV.

    Попробовал применить AcquireSiRF.exe но на выходе ничего не получилось.

    Файл с записями начинает так...

    SiRFLive Version: SiRFLive 2.0 Marketing
    Thursday, August 25, 2011
    PC: W037D299
    Physical Connection: UART
    SW Version: GSD4e_4.1.0-P1 12/20/2010 354 GSD4e
    DUT Name:
    28,0,860041386,25,3.8972801716003340e+005,2.5330147020331487e+007,1.8319525e+004,2.5330178622016661e+007,30000,191,27,27,27,27,27,27,27,27,27,27,1000,500,-4,0,0
    28,1,860041386,12,3.8972801716003340e+005,2.6510500006031543e+007,1.8745631e+004,2.6510516541034564e+007,30000,191,44,44,44,44,44,44,44,44,44,44,1000,500,-4,0,0
    28,2,860041386,2,3.8972801716003340e+005,2.7095735858978566e+007,1.8233168e+004,2.7095742224695239e+007,30000,191,45,45,45,45,45,45,45,45,45,45,1000,500,-4,0,0

    Полный файл в аттаче
     

    Вложения:

    • test2.tar.gz
      Размер файла:
      1,2 МБ
      Просмотров:
      64
  7. sklimkim

    sklimkim Форумчанин

    Файл у Вас не бинарный, а текстовый.
    Предполагаю, что приемник работал в NMEA-протоколе (режиме).
    Строки в Вашем файле типичные NMEA-сентенции, ну немного отличаются от ранее виденных.
    Вероятно это новинка для чипсетов SirfStar-IV.
    И записали Вы его каким способом/программой ?
    Программы выложенные здесь в этом случае бесполезны, т.к. они работают с приемником, передающим данные по БИНАРНОМУ протоколу, или с файлами записанными с приемника, работавшего опять-таки по БИНАРНОМУ протоколу.
     
  8. Слежу за темой с 10. 07.11. По поводу фазы можно посмотреть ссылку:http://www.chipinfo.ru/literature/radio/200211/p49-50.html.
    По доплеру в посте от 23.07.11 в mid 28 доплер вычислен правильно,
    т.е. если скорость спутника 16 000 м\сек умножить на Кдоплера 1\м=90 000 1\сек(Hz).
    Эффект доплера - измениние частоты L1 от вектора скорости спутника, может быть
    с + если спутник движется на наблюдателя и с - если спутник движется от наблюдателя
    и зависит от угла между вектором скорости спутника и прямой от спутника на наблюдателя.
    Эффект доплера можно найти в Википедии.
     
  9. Уточнил скорость спутника на орбите. С учетом исправления, изменение частоты L1:
    3870 м\сек * 5.255 1\м = 20336 1\сек (Hz). То есть изменение частоты L1 не может быть
    больше 20 000Hz в сторону увеличения или уменьшения L1. Если спутник находится в зените над наблюдателем, угол между вектором скорости спутника и прямой на наблюдателя равен 90 градусов. А cos90=0, поэтому эффект доплера не наблюдается.
     
  10. sklimkim

    sklimkim Форумчанин

    Спасибо за пояснения.
    И ссылка на статью порадовала. Не ожидал в журнале прочитать такую внятную статью (да когда написанную!) - только человек по-настоящему владеющий знанием может так популярно изложить предмет.
    Я сейчас "бодаюсь" с программированием на СИ в Линуксе http://linuxforum.ru/viewtopic.php?id=16170
    Если позволите, несколько позже задам вопросы по навигации, авось и на них найдутся ответы.
     
  11. Решил подсказать: ответ на ваш вопрос в самом MID 28. Начинается с фразы "The reported
    Time of Measurement, Pseudorange and Carrier Phase are all uncorrected values." после
    Table 3-68 и Note, до следуещего Note. (Sirf_Binary_Protocol_Manual_rev_2.3.pdf page 88).
    В этом отрывке пропущен знак умножения 2 раза. Если будут вопросы задавайте.
     
  12. sklimkim

    sklimkim Форумчанин

    Если посмотреть прилагаемый файл (а в нем есть кусок кода программы):
    Меня вот что смущает. В 1-м примере (chnav) во 2-й колонке цифры представляют
    "количество длин волны сигнала уложившееся в расстоянии от спутника до приемника".
    А в 3-м примере какой-то бред да еще и +/-, но это фазовые измерения, выраженные
    в метрах (так по крайней мере пишет SirfStar в своем талмуде по бинарному протоколу).
    Что-то меня останавливает от тупого деления этих Сирфстаровских метров на длину волны.
    В 3-й колонке всех 3-х примеров так называемый "Допплер".
    У chnav это +-3000.000, у меня это около 90000.000 - есть над чем задуматься.

    chnav измерения приводит к целой секунде, я не привожу, на это у каждого свои причины.
    Но программы пост-процессинга (в частности TopconTools) выполняют приведение "сырых"
    измерений к целой секунде сами. Так мне в разное время сообщили 2 независимых
    программиста в этой области.

    Как в моей программе получаются PR (C1), Phase (L1), Doppler (D1) см. в коде ниже.
    Те данные, которые я не понимаю, я и не трогаю/не использую (в файл парсинга идет все).
    Из бинарного потока Garmin программа нормально вычисляет фазу (как целые циклы так и
    дробную их часть). Примеры я уже не раз выкладывал.

    И еще.
    Измерения бытовыми приемниками по ряду причин обречены на "рваный вид". Т.е. потеря
    уверенного захвата несущей для продолжительного вычисления фазы (L1) случается чаще,
    чем в профессиональных приборах. Такие рваные измерения надо либо выбрасывать, либо
    грамотно интерполировать,прежде чем отправлять в программу постобработки.
    Нарисую пример:
    ххххххххххххх-ххххххххххххххххххххххххххххххххххххххххххххххх-хххххххххххххххххххххххх
    где "х" измерения в эпохе получены, а "-" измерение потеряно/сорвалось.
    По поводу интерполяции я читал и смотрел программный код некоторых исследователей.
    Там, как и во всей математике для этой области хватает неоднозначностей.
    Поэтому влезать в это не хочется, страшно потратить немалое время впустую.

    По этой причине в моей программе есть возможность накопить в течение некоторого времени
    (от 1 сек. до нескольких десятков минут) значения координат, вычисляемые приемником.
    Записать эти координаты для любой точки стояния/накопления как на ровере, так и на базе.
    На ровере они подписываются значениями TimeOfWeek Start и Stop. На базе координаты
    в каждой эпохе имеют подпись TimeOfWeek.
    Для ровера программа также вычисляет средние значения из накопленных координат на
    точке стояния. Конечно, одинаковые созвездия спутников на ровере и на базе будут при
    условии одинаковых приемников, чистого неба и короткой базовой линии.
    Эти обстоятельства не раз уже обсуждались, в том числе и на этом форуме.
    Но! Если в начале, в середине и в конце сеанса/работы есть возможность встать на точку с
    известными координатами, то это уже худо-бедно контроль доверительности измерений.

    За этим стоит возможность отказаться от "проприетарного" (небесплатного как правило)
    программного обеспечения постобработки и вести дальнейшую обработку в программах
    АНАЛОГИЧНЫХ MS-EXcel или AutoCAD. Тем более, что программа вычисляет из геодезич.
    wgs-84 B, L, H геоцентрические WGS-84 X, Y, Z. Для малых участков работ (где можно
    пренебречь "кривизной")) такие координаты можно рассматривать как плоские и "сажать"
    их по контрольным точкам в нужное положение на исходном плане/чертеже.

    Что Вы думаете об этом?

    Позвольте напомнить (прежде всего требовательным халявщикам):
    Я НИКОМУ (И СЕБЕ ТОЖЕ) НЕ ОБЕЩАЛ ЧУДА В ВИДЕ ИЗМЕРЕНИЙ С ГАРАНТИРОВАННОЙ
    ТОЧНОСТЬЮ ... САНТИМЕТРОВ. ЮЗАТЬ И АНАЛИЗИРОВАТЬ НАДО!!!
    То есть читать, думать, пробовать, ошибаться, еще думать и ... делать выводы.

    Существуют задачи ГИС-класса, где вычисленное плановое положение снятых точек может
    отличаться от истинного на 1-2-... метров. Площадная топо-съемка может оказаться
    такой задачей. В строительстве (где всегда "давай-давай и побыстрее")) прикидочные
    выносы проектных элементов в натуру (особливо "в чистом поле")) могут иметь место.

    А это для "блюстителей наннннннотехнологий":
    "...Мы с тобой в Париже
    Нужны как в бане пассатижи."
    "...И вот плюю я с Эйфелевой башни
    На головы беспечных парижан!"
    "... В общественом парижском туалете
    Есть надписи на руссом языке!!!"
    ("Ваня, мы в Париже" В.С. Высоцкий)
     

    Вложения:

    • Dopler.tar.gz
      Размер файла:
      6,9 КБ
      Просмотров:
      54
  13. chnav

    chnav Форумчанин

    sklimkim
    Сразу извиняюсь что не могу уделять время форуму и особенно этой теме.
    По поводу фазы в сёрфах - всё верно подмечено, она имеет размерность m и надо переводить в циклы. То же самое с доплером - размерность m/s (около 18000m/s), надо переводить в герцы (около 96000Hz).

    Про странное значения доплера. Так же как дальность и фаза смещены на уход часов, доплер смещен на дрифт часов, т.е. надо учесть дрифт из MID7. Номинальное значение 96.25kHz, в MID7 значения примерно этого порядка.

    Итого: если требуются скорректированные значения, то необходимо поправить
    T - на dT из MID7
    PR - на dT из MID7
    Phase - на dT из MID7
    Doppler - на dF из MID7

    Делать всё это надо либо одновременно, либо не делать совсем т.к. Doppler используется программой обработки для интерполяции измерений базы и ровера к единому моменту.
     
  14. sklimkim

    sklimkim Форумчанин

    Спасибо за внимание к теме!
    Ваша последняя фраза многое прояснила, ну "замыливается" внимание!
    Я в программе умышленно отключил все MID-ы, не имеющие отношения к псевдодальности и фазе, чтобы разгрузить процессор и иметь резерв для других еще не реализованных вычислений и рисования неба. Да в общем-то и сделал это. Только парсинг MID-30 (0x1E) оставил, и то временно (уж очень красивые в нем данные).
    Придется переходить на коррекцию ухода часов, бо синхронизация ровера с базой ВАЖНА.

    Сейчас переношу программу (и себя заодно) в Линукс. Там действительно простор, но мне непросто переключиться с навыков и представлений, полученных в Виндовс. К тому же пишу я на "голом" СИ, а в Линуксе, как и в Виндовс кругом СИ++. Поэтому доработка виндовой версии программы несколько замедлилась.

    chnav, не бросайте тему, а то она будет достоянием только таких как NAVIPARK, что не совсем правильно. Пусть пытливые студенты имеют шанс помыслить вперед. Ведь они, как и мы родились в Великой стране, вот только время им досталось не самое удачное.
    Печально видеть около компьютера обезьянок, которые могут только мышкой клацать.
     
  15. Ладиков Павел

    Ладиков Павел Форумчанин

    Господа, извините что встреваю...
    Я очень внимательно перечитал обе ветки, так как сдуру заказал пару модулей M4125P от Wonde Proud на чипе MTK MT3329.
    Сегодня пришло уведомление о получении посылочки.

    Ну из вышепрочитанного я понял что кроме NMEA0183 мне от МТК ничего не светит.
    Но все же решил погуглить на предмет поиска Firmware для чипа MT3329 - а вдруг в коде удастся разглядеть спрятанную команду переключения на бинарный протокол?

    И вот что я нарыл в гугле:
    фирмваре для чипа
    http://code.google.com/p/ardupilot/wiki/MediaTek

    http://code.google.com/p/ardupilot/down ... p&can=2&q=

    и вот такой комментарий
    http://store.diydrones.com/MediaTek_MT3 ... 329-02.htm

    Я конечно начал все подряд скачивать и почти сразу наткнулся на вот это:
    Короче есть тема чтобы порыться основательно. Чипы я завтра забираю. К сожалению нет времени на колупания, все уходит на борьбу за существование, и это хуже всего...

    ЗЫ: походу сделал еще одно мелкое открытие - наткнувшись на забытый на полке старый КПК Acer n35 с убитым аккумулятором - пытался выяснить в интернете что у него за чип GPS. Оказалось SiRFstarII
    значит надо порешать, чем питать зверюшку, родной аккумулятор даже заказывать не хочется он слабенький.
     
  16. Ладиков Павел
    hen user inputs command “$PGCMD,16,0,0,0,0,0*6A”, then switch to binary mode.

    Команду, которую вы привели- не относится к NMEA протоколу. Посмотрите в 1 теме
    файл SirfStar_Switch-Commands-log . Цитирурую " $PSRF100,0,38400,8,1,0*3C", поэтому
    программа GNSSmonitor работать с этим модулем не будет. В даный момент каждый
    производитель GPS чипсетов обычно используют 2 протокола: 1. стандартный NMEA,
    а второй создают свой. Но это может касаться наших РФ двух фирм. Видимо производители
    MTK чипсетов решили от всех отделится и разработали свой NMEA протокол. Не пробуйте
    переключать в binary mode не зная обратной команды переключения.
    Приобрел RoylTek RBT-2100LP на Sirf 111 , переключается в Sirf протокол, высокая чустви
    тельность-отслеживает до 12 спутников и тоже современное модульное исполнение.
     
  17. Ладиков Павел

    Ладиков Павел Форумчанин

    Вообще говоря команда переключения в бинарный режим в принципе не может относиться к протоколу NMEA - уже хотя бы потому, что функция недекларирванная официально и является служебной командой самого чипа. Для МТК конечно нет смысла использовать программулину созданную под SiRF, даже если получилось бы переключитсья в бинарник - стопроцентно там потечет другой формат данных. Навряд МТК захочет заниматься судебными тяжбами за авторские права из-за такой ерунды... поэтому рыться в машкодах мне предстоит видимо самому, трясти стариной 20-летней давности. Но сейчас не так страшно - под рукой мощный програмистский инструментарий.

    Насчет обратного переключения... я исхожу из того что при полном обесточивании все настройки не сохраняются и все должно приходить в исходный вид (для настроек используется батарейная память статического ОЗУ, а не флеш). Это при экспериментировании. А в эксплуатации я так думаю что NMEA мне и не понадобится вовсе.
    Но я конечно тут могу запросто ошибаться со сбросом настроек, конечно нужно отнестись к этому вопросу посерьезнее - поискать заранее бинарный аналог этой команды видимо...
     
  18. chnav

    chnav Форумчанин

    Ладиков Павел
    Боюсь вас разочаровать, но псевдодальностей с МТК вы всё равно не получите.

    О чем шла речь выше по вашим ссылкам: бинарный протокол понадобился для передачи готовых координат, т.к. NMEA-поток создает ощутимый трафик и нагрузку на программу-обработчик при чаcтоте обновлений 5Hz и выше. При низких Baudrate перестает хватать пропускной способности порта, поэтому сделали специфичную прошивку с бинарным протоколом, который к сырым измерениям не имеет никакого отношения.

    В исходниках на C++ прекрасно видно что декодируются:
    Lattitude
    Longitude
    Altitude
    Ground_Speed
    Ground_Course
    NumSats
    Time
     
  19. urban

    urban Форумчанин

    Почитал всё очень интерестно.
    Занимался тем же самым вопросом года 2 назад, юзал чип SIRF STAR III (SSIII), всё брал с иностранных сайтов так как в россии ничего не нашел в публикациях чтобы ктото занимался получением данных для обработки статики из бытовых приборов, забросил не помню почему, как то надоело или просто не осилил такой вопрос в одиночку.
    Выяснил так же что нормальную статику (если так можно назвать) можно получить только с чипов Sirf Star II (SSII) и еще из каких-то приборов гармин, начиная с SSIII производитель начал ограничивать на аппаратном уровне приём фазы несущей (Phase Carrier) и можно принимать только Грубый (Навигационный) L1 C/A - Code, соответственно обработать их с нормально точностью получится едва ли.

    А переключить в бинарный режим и обратно просто, на КПК или на ПК есть программа от производителя чипов "SiRFDemo" там можно осуществлят переключение в NMEA и SirfBIN, просматривать какие сообщения щас передаются с какой частотой.
    Еще были разные программы в том числе известных производителей позволяющие работать с чипами сирф стар, и преобразовывать бин сирф в Ринекс.

    Находил еще статью где человек из 2х гарминовских приборов сделал комплект приборов для ГИС с точностью 30-50 см, только там он внешние антены приделал.

    В своём чипе выяснил что не передаются "сообщения" которые нужны для обработки.
    Писал по памяти что осталась в голове так что в полне могут быть не точности. Но в целом суть передал.
     
  20. Ладиков Павел

    Ладиков Павел Форумчанин

    Посмотрим... я вчера копаясь в поисковиках наткнулся на описание МТК с упоминанием бинарного режима и того что он дает. В перечне было так достаточно "популярно" упомянуто что то типа "точного определения расстояния между двумя приемниками", если буквально читать машинного переводчика.

    Кроме того я несколько раз натыкался в американских форумах на фразы типа "наконец то МТК довела свой фирмваре до уровня SiRF". Ну если я и пролетел с МТК как фанера над парижем - невелика цена, тыща рублей за модуль. Закажу что-нить более продвинутое, а этим тоже найдется применение.

    Ну и наконец третье... эта самая возможность бинарника выдавать допплера и фазу - она ведь исключительно от прошивки зависит, верно?
    В вышеупомянутых ссылках предлагаются какие-то не стандартные МТК прошивки, а специальные. И даже если они это не делают - само их наличие в инете и внимание к ним из-за большой распространенности МТК позволяют надеяться на скорое появление "левых" прошивочек с открытыми возможностями.
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление