Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[NMEA] Jak stwierdzić, które dane są prawidłowe?

poznajtomkos 13 Sie 2010 17:08 1474 2
  • #1 13 Sie 2010 17:08
    poznajtomkos
    Poziom 2  

    Witam, zacznę od tego, że nie wiedziałem gdzie umieścić ten temat : czy w dziale programowanie, czy tutaj. Zdecydowałem się w końcu na dział gps, gdyż moje pytanie zwraca się do danych pobieranych z gps.

    Jestem w trakcie pisania oprogramowania do obsługi GPS na Windows Mobile i są pewne sprawy na które nie mogłem znaleźć odpowiedzi. Mam nadzieję, że Wy mi w tym pomożecie. Jako, że aplikacja celuje w rynek mobilny, nie mogę oczekwać super dokładności, gdyż każdy wie jakie odbiorniki są w telefonach :)

    Pytania dotyczą tego, jak stwierdzić które dane są prawidłowe. Chcę aby moja aplikacja była w miarę dokładna, czyli nie przepuszczała danych "niepewnych". Aplikacja będzie pobierać dane podczas jazdy autem, jazdy na rowerze i biegania, więc celuje do dość szerokiej gamy zastosowań. Jako, że nie potrzebuję bardzo dużo informacji, skupiłem się na tym, że będę parsował tylko informacje z GPGGA i GPRMC.

    Jeśli godzi o RMC to nie mam za bardzo pola do popisu

    Code:

    przykładowa linia rmc :
    $GPRMC,123519,   A   ,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A

    Tutaj mogę sprawdzić jedynie dane, które znajdują się po drugim przecinku czyli :
    A - dane poprawne,
    V - dane niepoprawne


    Sprawa z GGA ma się już trochę lepiej :
    Code:

    $GPGGA,123519,4807.038,N,01131.000,E,   1   ,08,   0.9   ,545.4,M,46.9,M,,*47


    Pierwsza pogrubiona cyfra : 1 oznacza jakość pomiaru, wyszukałem gdzieś, że :
    Cytat:
    0 – brak pozycji, lub bardzo duŜy błąd (takich wyników się nie interpretuje),
    1 – pozycja określona na podstawie GPS (SPS),
    2 – pozycja określona przy udziale DGPS,
    3 – pozycja PPS,
    4 – Real Time Kinematic,
    5 – Float RTK,
    6 – estimated (dead reconing),
    7 – Manual input mode,
    8 – tryb symulacji.


    Lecz nigdzie nie mogę znaleźć, które z cyfr pozwalają na dokładne określenie pozycji, domyślam się, że jest to 1 i 2



    Druga wartość czyli 0.9 to horyzontalna dokładność pozycji (HDOP). Również wyczytałem, że dla "normalnego" użytkowania, czyli jazda autem wartość ta powinna być < 6.



    Jak wyżej napisałem, informacje których potrzebuję znajdują się w sekwencji RMC i GGA, lecz na potrzeby sprawdzania dokładności danych, mogę parsować także inne linie.

    Wiem, że :

    w sekwencji GSA :

    - znajduje się DOP (dilution of precision) – precyzja wyznaczonej pozycji, lecz także nigdzie nie mogę wyczytać ile powinna ona wynosić
    - VDOP (vertical dilution of precision) – precyzja wertykalna i tak jak wyżej, nic o niej nie wiem.

    Biorąc na logikę, czyli wszystkie dane mają w sobie DOP, jeśli jedno ma być < 6 , to inne też powinny takie być, ale czy na pewno ?



    Ostatnie moje pytanie dotyczy odświeżania informacji z odbiornika GPS. Przeczytałem gdzieś, że dane są aktualizowane co 2 sek. Pytam z ciekawości czy to prawda, bo standardowo automapa ma ten czynnik ustawiony na 1,3 sek.



    Chetnię usłyszę parę zdań na ten temat, możliwe że są jakieś inne sposoby na walidację dokładnych danych, bądź też miło byłoby usłyszeć jak to się robi w prawdziwych systemach.

    0 2
  • #3 17 Sie 2010 11:22
    JALA
    Poziom 28  

    Sposobów masz wiele, np w oparciu o ilość widocznych satelit. Dane mogą być odświeżane nawet co 1 sekundę, tylko zależy co chcesz z nimi zrobić, wyświetlić czy wysłać.

    0