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

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

  1. chnav

    chnav Форумчанин

    Аааа.... Так речь про SiRF II - это его фича, ничего сделать нельзя.
    Я давно как-то писал об этом. На сегодня, суммируя
    SiRF Star II - есть фаза, измерения не синхронизированы с GPS Time
    SiRF Star III - нет фазы, измерения синхронизированы с GPS Time
    SiRF Star IV - есть фаза, измерения синхронизированы с GPS Time
    т.е. самый продвинутый вариант - SirfStarIV
     
  2. sklimkim

    sklimkim Форумчанин

    Откройте спойлер и посмотрите кусок RINEX для SirfStarIV - "хвост" тоже остается, просто он много меньше, чем у SirfStarII

    Сейчас включу GlobalSat BT-338 (SirfStarIII) и повторю запись для него.
     
  3. chnav

    chnav Форумчанин

    Вот это будет обидно... Я про SiRF Star IV... Сейчас прицепил к своей программе - не соединяется. Придется вернуться к программированию :)
     
  4. sklimkim

    sklimkim Форумчанин

    Если у Lottarend получается вот так:
    то я что-то напутал, но 2-й день ищу не вижу.
    Семь девяток после запятой вполне хватит.
    Поэтому просьба к Lottarend показать свой кусок кода, если нетрудно, то с краткими комментариями.

    Вот что выдает BT-338 (SirfStar-III):
    Код:
     13 02 28 14 42 31.0001754  0  11G7G5G26G28G3G13G19G6G21G8G10
      20460856.496    -1843520.896        3295.914 0
      22020053.365    -1861052.458          90.883 2
      22472398.997    -1861052.458      -3448.023 0
      23151023.180    -1861052.458      -3448.023 0
      22894723.224    -1861052.458      -3448.023 0
      23339929.591    -1861052.458      -3448.023 0
      23668985.833    -1861052.458      -3448.023 0
      23953232.354    -1861052.458      -3448.023 0
      25801647.001    -1861052.458      -3448.023 0
      20614022.241    -1861052.458      -1163.156 2
      22939190.018    -1861052.458        3295.313 0
    
     
  5. Lottarend

    Lottarend Форумчанин

    Да все так же, как у вас, там ничего сложного нет.
    У меня все замечательно работает, единственное что иногда Sirf3 время не синхронизирует, если его долго до этого не включали, помогает только перезапуск приемника.
    Код:
    //b - массив байтов, методы Get читают заданное количество и возвращают uint
    int fullGPSWeek = (int)b.Get2();
    double trueTOW = b.Get4() / 100.0;
    uint svs = b.Get();
    int clockDrift = (int)b.Get4();
    int clockBias = (int)b.Get4(); // а вот и оно
    int EstimatedGPSTime = (int)b.Get4();
    double biasInSec = clockBias / 1000000000.0; //перевожу в секунды
    ...
    if (mode == ProcessingMode.CreateCorrection && writeCorrectionFile)
    {
    ...
        for (int i = 0; i < sattelites.Count; i++)
        {
            //класс данных о спутниках, содержит данные из уже прошедшего MID28 
            Sattelite sat = sattelites;
            sat.measuredPr -= C * biasInSec; //правим псевдодальность
            sat.gpsTime -= biasInSec; //[gpsTime из mid28] - biasInSec
            //теперь скорректированное  gpsTime можно использовать
            ...
    }
     
  6. Lottarend

    Lottarend Форумчанин

    А вы точно с эпохами не напутали?
    Сначала идет MID28, в самом конце MID7, MID7 нужно применять к уже прошедшему MID28. У вас так все?
     
  7. sklimkim

    sklimkim Форумчанин

    Конечно напутал.
    ClockBias из предыдущей эпохи шел поправкой в текущую эпоху.
    Исправил и теперь программа падает после приема 2-й эпохи.
    До введения поправок все шло гладко-линейно во времени: получил пакет, обработал, записал - и к следующему пакету.
    А теперь надо сохранять массив MID-28 и обработать его можно только в следующей эпохе ::punish::
    Но вижу, что после введения поправки TOW имеет вид 466554.000910621 - 0.000910747 = 466553.999999874
    т.е. остается 0.000000126 сек недо-исправленных. С этим конечно можно мириться, но как говорят евреи "некошерно".
     
  8. chnav

    chnav Форумчанин

    Во "взрослых" приемниках то же самое. Спутник за это время переместится всего на 0.5мм - такова цена рассинхронизации между базой и ровером. В обработке даже это компенсируется через интерполяцию, ведь SiRF Star II рассинхронизирован на доли секунд - и всё считается нормально...
    Ну и не забываем что частота дискретизации всего 16MHz - т.е. показания с каналов снимаются в целочисленные отрезки времени, а рассчеты проводятся с плавающей запятой.
     
  9. sklimkim

    sklimkim Форумчанин

    А для чего можно использовать Carrier-Frequency (MID28.C1 = MID28.C1 - RcvClBias * LIGHTSPEED / 1575420000;) ?
     
  10. sklimkim

    sklimkim Форумчанин

    Исправил приведение времени для SirfStar протокола.
    Пока проверил только на GlobalSat BU-353S4.
    Но приведенное время все-таки "качается" между x1.9999999 и x2.0000003 сек.
    Исправил уровни сигналов в RINEX-OBS файле (с Гармин формулы на RINEX формулу - так краше).

    Надеюсь на тестирование программы коллегой umots
    (Геноссе umots, пока не довел программу до ума, файл xxxx_Parsing.txt рано списывать.)

    То что сказал chnav о приведении времени в SirfStar-II и SirfStar-III совсем не радует.
    Я ведь затеял приведение времени к целой секунде только из-за намерения проверить возможность псевдо-RTK без использования RINEX-файлов и программ пост-обработки, то есть только с помощью автономных файлов координат на БАЗЕ и на РОВЕРЕ.
    Такм образом, пока, единственный кандидат на эту миссию приемник GlobalSat BU-353S4 (SirfStar-IV).

    На скриншоте окошки программы и фрагменты файлов xxxx_Parsing.txt и xxxx_Observer.obs
    GNSS-Monitor3.png
     

    Вложения:

  11. sklimkim

    sklimkim Форумчанин

    Уважаемые chnav и Lottarend, спасибо за внимание и подсказки!
     
  12. Lottarend

    Lottarend Форумчанин

    Я тут решил провести еще один тест... Разместить базу и ровер далеко друг от друга (ну, не так уж и далеко, где-то километр, или половина от этого). И мне нужно как-то оценить точность результатов.
    Точных координат своей базы (использую для этого еще один приемник) я не знаю, поэтому задаю их на основании усредненных от приемника за 10-минутный интервал с наименьшим hdop.
    Когда я буду передавать поправки с базы на ровер, как мне оценить точность отклонения от истинной позиции ровера? Усреднять скорректированные координаты ровера?
    Но так я получу неизвестную ошибку с неизвестной величиной...
    Отошлите меня куда-нибудь, где можно об этом почитать, пожалуйста.
     
  13. sklimkim

    sklimkim Форумчанин

    В такой ситуации лучше разместить БАЗУ и РОВЕР на расстоянии (друг от друга), которое можно достаточно точно измерить: например рулеткой.
    Тогда для БАЗЫ введете координаты из усреднения хоть за 2 часа, хоть за 5 минут - особого значения это не имеет (от этого только полученный вектор может немного "крутиться вокруг базы, но на его величину это не влияет).
    А вот совместную работу их хорошо бы провести не менее часа.
    Если Вы потом этот час (RINEX файлы) обработаете в чем-то проф. (TopconTools, GNSS-Solutions, LGO), то полученные результаты - а это будет вектор БАЗА-РОВЕР Вы сравните с измеренным рулеткой расстоянием.
    Это и будет практическая точность измерений.
    К тому же на коротких расстояниях исключаются многие ошибки (ионосфера и другие) и созвездия спутников для БАЗЫ и РОВЕРА практически одинаковые, что тоже повышает точность.

    С передачей поправок на РОВЕР в реальном времени (это ведь RTK?) я еще не разобрался, поэтому говорю просто про оценку точности измерений БАЗА-РОВЕР.
    Но эта оценка далее будет справедлива и для RTK.

    Посмотрите терки на эту тему:
    http://forum.openstreetmap.org/viewtopic.php?id=9451&p=16 #383 и немного назад #343
     
    Lottarend нравится это.
  14. Lottarend

    Lottarend Форумчанин

    Спасибо, про рулетку то я и не подумал :)
     
  15. sklimkim

    sklimkim Форумчанин

    Ну тогда ждем'с результатов::hi::
     
  16. umots

    umots Форумчанин

    Если строго, то есть рекомендации mikg-43-05.
    1. В п. 7.2 растояние сравнивается с образцовыми расстояниями на полигоне.
    2. В п.п. 7.3 и 7.4 определяется с помощью замкнутых фигур.
     

    Вложения:

  17. sklimkim

    sklimkim Форумчанин

  18. Alex_jet

    Alex_jet Форумчанин

    камрады, подскажите где почитать как пользоваться РТКлиб RTKlib.

    ситуация:
    1. имею две пост.действующие реф.станции
    2. между ними 33 км
    3. в сеть передаю поправки RTCM 3 и RTCM 2, оригинальный формат - CMR (но RTKNavi с ней не работает)
    4. одну станцию завожу как ровер, вторую как базу (ввожу координату, она известна) - ставлю режим L1+L2 статика или киематика.
    5. остальные параметры по умолчанию.
    6. решение дает только плавающее.

    собственно смущает отсутствие фиксированного решения, может это связано с недоделкой программы(???)
     
  19. umots

    umots Форумчанин

    Посмотрите manual_2.4.1.pdf в папке doc.
    А почему не режим L1+L2 DGPS/DGNSS.
     
  20. Alex_jet

    Alex_jet Форумчанин

    я хочу точнее определиться.
    у меня есть фаза несущей
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление