GPS współrzędne a rzeczywiste położenie - różnica ok. 25km

Tutaj mozesz poruszać tematy ogólne powiązane z elektroniką, np. dyskusje na temat podzespołów, układów, zasad ich działania. Czyli można pisać o wszystkim czego nie da się przyporządkować do innych działów.
ODPOWIEDZ
Awatar użytkownika
siekierzyński
Użytkownik
Posty: 482
Rejestracja: 01 cze 2010, 23:12
Lokalizacja: Nareszcie Polska

GPS współrzędne a rzeczywiste położenie - różnica ok. 25km

Post autor: siekierzyński » 13 cze 2012, 21:39

Witam,

zastanawiam się nad taka rzeczą, mianowicie mam układ FGPMMOPA4 i podłączam go sobie prze UART do komputera. W śród tych szlaczków co podaje GPS wyłuskuję lokalizacje, po przerobieniu i wklejeniu w Google Maps, okazuje sie, że ta lokalizacja różni się o ok. 25km. od faktycznej lokalizacji.

Moje pytanie brzmi skąd ta różnica i czy da to się jakoś zniwelować odczytując dane z GPS, czy trzeba dodawać ręcznie poprawkę (jakąś własna stałą)?

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 13 cze 2012, 22:20

Witam,

Sprawdź, czy dane wychodzące z modułu posiadają znacznik poprawności. Moduł podaje informacje o położeniu, ale niekoniecznie muszą one być precyzyjne, np. gdy nie ma odpowiedniej ilości satelitów w zasięgu.

Kod: Zaznacz cały

$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
W powyższej ramce, znacznik poprawności znajduje się w trzecim polu (pola są rozdzielone przecinkami: pierwsze: adres ramki, drugie: godzina, trzecie: znacznik poprawności) i ma wartość 'A', co oznacza, że dane są poprawne. Jeśli ma wartość 'V' dane są niepoprawne (nieprecyzyjne). Twój moduł powinien nadawać tę ramkę, jeśli nie, to sprawdź jak ją włączyć. Pamiętaj też, że moduł może potrzebować trochę czasu (np. 15min) na ściągnięcie wszystkich danych, jeśli wcześniej był pozbawiony zasilania.

Obecnie korzystam z modułu Fastrax UP500 i z aplikacji producenta o nazwie Fastrax Workbench 5 - ciekawostką jest, że ten program potrafi dosyć dokładnie obliczyć położenie, nawet gdy dane z modułu nie posiadają znacznika poprawności (pewnie wykonuje jakieś dodatkowe obliczenia na danych, które do niego płyną). Z tego, co widzę, to twój moduł może być obsługiwany przez ten program, także możesz spróbować (lub znaleźć inny, może jest coś dla twojego modułu).

Wkładając dane do Google Maps, podawaj je z maksymalną dokładnością, dla powyższej ramki będzie to:

Kod: Zaznacz cały

48.07038,11.31

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 14 cze 2012, 18:09

Witam,

Wszystko, co poprzednio napisałem jest prawdą, z małym wyjątkiem...

Google Maps spodziewa się współrzędnych wyrażonych wyłącznie w stopniach, a dane z modułu GPS są wyrażone w stopniach, minutach i ułamkowych częściach minuty. Niezbędna jest więc wcześniejsza zamiana minut na stopnie.

Kod: Zaznacz cały

$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
W powyższym przykładzie, współrzędne to:
- szerokość: 48 stopni, 7 minut i 0.038 minuty
- długość: 11 stopni i 31 minut

Aby minuty wyrazić w stopniach, musisz ilość minut podzielić przez 60, stąd:
- szerokość: 48 + (7 + 0.038)/60 = 48.1173
- długość: 11 + 31/60 = 11.52

Tak więc w Google Maps powinna wylądować wartość:

Kod: Zaznacz cały

48.1173,11.52
Błąd, o którym pisałeś (tj. różnica 25km) brał się najprawdopodobniej właśnie stąd, że Google podawałeś dane w formie jak napisałem w pierwszej odpowiedzi.

Awatar użytkownika
siekierzyński
Użytkownik
Posty: 482
Rejestracja: 01 cze 2010, 23:12
Lokalizacja: Nareszcie Polska

Post autor: siekierzyński » 14 cze 2012, 19:20

Nom, teraz różnica to raptem 2-3m a to jest dopuszczalne. Dzięki za wytłumaczenie jak to się oblicza.

Bo nawet jak miałem ustawioną stałą, że było dobrze, to jak pojechałem w inne miejsce, to już sie sypała lokalizacja :-)

ODPOWIEDZ