Hallo Aleks,
Aleks hat geschrieben:Tach die Damen und Herren,
nach nun vielem hin und her habe ich mich dazu entschlossen euch mal um ein wenig Hilfe zu fragen.
Dann solltest Du vielleicht den Zweck deines Geräte schreiben, damit man dir gezielter helfen kann.
Zuallerst möchte ich mein Problem ein wenig beschreiben.
Ich programmiere derzeit einen Mikrocontroller mit welchem ich GPS Daten von einem GPS Empfänger (SIRF III) empfange und auswerte.
Ziel des Ganzen ist eine relativ genaue Position zu erhalten und die damit resultierenden Abweichungen abzufangen und zu korrigieren.
Ok. Zu welchem Zweck und mit welcher Genauigkeit benötigst Du die Position?
Erstes Teilproblem ist dass wenn die GPS Maus faul herumliegt, das Signal auf meiner Anzeige wild herumspringt. Damit kommt das Thema Interpolation auf. Hat da jemand von euch einen guten Tip welche Methode da die Beste ist?
Das Problem ist relativ einfach zu lösen. Schalte mit SiRFDemo den Static Navigation Mode des SiRF Chipsatz ein. Dann hüpft die die Position im Stand nicht mehr, weil der Chipsatz dann nur noch Positions-Daten herausläst, wenn sich die Maus entsprechend der Doppler-Messung auch tatsächlich bewegt. Das Springen der Position kannst Du nicht mit einem mathematischen Mittelwert-Verfahren anhand der NMEA-Daten herrausrechnen, weil dir dazu die Echtzeitdaten für die Phase des Trägersignales usw. fehlen. Einzig via SiRF-Binary-Protokoll könntest du diese Daten aus dem Chipsatz ziehen, um sie dann anhand von Korrekturdaten im Nachhinein mit mathematischen Filtern, z.B. ein modifizierter Kalman-Filter, zu korrigieren. Aber auch hierfür benötigst du dann historische Korrekturdaten (RINEX-Daten). Allerdings habe ich selber mit der Offline-Lösung noch keine Erfahrungen.
http://www.ngs.noaa.gov/CORS/Rinex2.html
Nächstes Teilproblem ist dass die GPS Maus sowohl Daten rausballert als auch Daten aufnehmen kann. Prima Sache... Ich mich gleich mal auf die Suche gemacht und diverse Codes gefunden mit welchen ich das WAAS/EGNOS aktivieren kann. *thumbs up* Nur wie erkenn ich das an den NMEA-Codes?
Zur Fix-Quality hat dir Roland schon etwas geschrieben.
Im Moment quäle ich mich mit der Genauigkeit und relativen Abweichung herum und wäre für jeden Tip äußerst dankbar.
Du benötigst DGPS-Daten um die Störfaktoren des GPS-Empfangs durch die den SIRF3-Chipsatz eleminieren zu lassen. Die DGPS-Daten enthalten Informationen zu den exakten Bahndaten der Satelliten und zu den durch die Ionosphäre veruraschten Abweichungen. Mit diesen DGPS-Daten ist dann der Chipsatz in der Lage die Position in Echtzeit mittels diverser Filter zu korrigieren. Diese Daten kannst Du entweder per EGNOS von den SBAS-Satelliten direkt empfangen oder separt, ggf. auch über einen zweiten UART, in den Chipsatz via RTCM-Protokoll einspeisen. Kernproblem ist hierbei die Beschaffung der Korrekturdaten via Internet. Dazu gibt es das NTrip (Networked Transport of RTCM via Internet Protocol) Protokoll. Leider ist mir keinen ordentliche kostenfrei Quelle bekannt. Die Landesvermessungsämter wollen für die Nutzung dieser, auch als SAPOS-Dienst bezeichnetet, Daten Geld haben.
http://igs.ifag.de/index_ntrip.htm
Ich habe am letzten Wochenende mit dieser Lösung auf Basis von Garmin-Empfänger gespielt.
http://www.wsrcc.com/wolfgang/gps/dgps-ip.html
Ein weiteres Problem ist die termische Stabilität der internen Zeitbasis des Chipsatzes. Diese darf wärend eines Messzyklusses nicht schwanken. Darüber habe ich mir allerdings noch keine Gedanken gemacht.
Wenn Du mit zwei GPS-Empfängern hochgenaue Streckenmessungen durchführen willst, musst du Dir noch zusätzlich Gedanken darüber machen wie du die Zeitbasis und die Phase der Satellitensignale in Echtzeit synchronisieren willst. Prinzipell kann man mit einer Streckenmessung via GPS von zwei exakt beakannten trigiometrischen Punkten aus eine Position genauer bestimmen, als direkt mit dem GPS selber.
Gruss Joern Weber