RTV forum PL | NewsGroups PL

Jak obliczyć odległość między punktami GPS na PIC lub Atmel z dokładnością do 50 m?

przeliczanie wspolrzednych GPS

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak obliczyć odległość między punktami GPS na PIC lub Atmel z dokładnością do 50 m?

Guest

Fri Nov 13, 2009 4:10 pm   



Czesc,

chcialbym za pomoca malego procka (pic, atmel itp) wyliczyc odleglosc
pomiedzy dwoma punktami otrzymanymi z odbiornika GPS.

1. wzory nie musza byc super dokladne i nie musza uwzgledniac np.
krzywizny Ziemi itp. poniewaz pary wspolrzednych sa oddalone od siebie
o kilka-kilkanascie-kilkadziesiat kilometrow. Ale jezeli zawezilibysmy
odleglosci do kilku kilometrow, to aby blad obliczen nie byl wiekszy
niz 50 m.

2. a moze sa jakies gotowe biblioteki do zlinkowania do kompilatora C
(w ktorym bylby ewentu. pisany sofcik)?

3. przeliczanie co kilka sekund pary wspolrzednych.

macie jakies pomysly?

MKi
Guest

Fri Nov 13, 2009 4:47 pm   



mayonez@wp.pl pisze:
Quote:
Czesc,

chcialbym za pomoca malego procka (pic, atmel itp) wyliczyc odleglosc
pomiedzy dwoma punktami otrzymanymi z odbiornika GPS.

1. wzory nie musza byc super dokladne i nie musza uwzgledniac np.
krzywizny Ziemi itp. poniewaz pary wspolrzednych sa oddalone od siebie
o kilka-kilkanascie-kilkadziesiat kilometrow. Ale jezeli zawezilibysmy
odleglosci do kilku kilometrow, to aby blad obliczen nie byl wiekszy
niz 50 m.

2. a moze sa jakies gotowe biblioteki do zlinkowania do kompilatora C
(w ktorym bylby ewentu. pisany sofcik)?

3. przeliczanie co kilka sekund pary wspolrzednych.

macie jakies pomysly?

Kiedyś popełniłem programik, który między innymi
wyliczał to, o co Ci chodzi. Zastosowałem wzór
wygrzebany w sieci.
Programik jest w Delphi - jeśli Ci to nie przeszkadza,
oto funkcja:

//------------------------------------------------
// Oblicz odległość między dwoma punktami w poziomie
// StartP, EndP zawierają współrzędne GPS w stopniach * 1000000

function CalcDistance(StartP,EndP:TPoint) : double ;
var
a,b : double ;
begin
a := (StartP.Y-EndP.Y)*0.11112 ;
a := a * a ;
b := cos(StartP.Y/0.00005729746936)*0.11112*(StartP.X-EndP.X) ;
b := b * b ;
Result := Sqrt(a+b) ;
end ;

Wynik bodajże w metrach. Funkcja nie uwzględnia wysokości
obu pozycji - ale to można już bardzo łatwo uwzględnić Wink
Dla moich potrzeb działało bardzo ładnie.

Myślę, że przepisanie tego w C i zaimplementowanie w dowolny
mikroprocesor nie powinno sprawić problemu.

Pozdrowienia,
MKi

J.F.
Guest

Fri Nov 13, 2009 9:14 pm   



On Fri, 13 Nov 2009 16:10:13 +0100, mayonez@wp.pl wrote:
Quote:
chcialbym za pomoca malego procka (pic, atmel itp) wyliczyc odleglosc
pomiedzy dwoma punktami otrzymanymi z odbiornika GPS.

1. wzory nie musza byc super dokladne i nie musza uwzgledniac np.
krzywizny Ziemi itp. poniewaz pary wspolrzednych sa oddalone od siebie
o kilka-kilkanascie-kilkadziesiat kilometrow. Ale jezeli zawezilibysmy
odleglosci do kilku kilometrow, to aby blad obliczen nie byl wiekszy
niz 50 m.

No to zwykly Pitagoras sie chyba nada.

A jak chcesz dokladnie to
http://en.wikipedia.org/wiki/Haversine_formula


Quote:
2. a moze sa jakies gotowe biblioteki do zlinkowania do kompilatora C
(w ktorym bylby ewentu. pisany sofcik)?

cosinus i pierwiastek bedzie potrzebny.

J.

elektroda NewsGroups Forum Index - Elektronika Polska - Jak obliczyć odległość między punktami GPS na PIC lub Atmel z dokładnością do 50 m?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map