GPS-Testmessungen

nero76

Moderator
Hallo,

hier sollen demnächst einige Testmessungen folgen

Erste Messung:
-einfacher GPS-Empfänger mit Standard-Antenne
- GPS Modul: GY-NEO6MV2 (ublox 6m)
-ohne Korrektursignal
-Ort: Feste Position im Gebäude (am Fenster) in der Innenstadt
-Meßwerte: 2000 (pro Sekunde ein Meßwert, Gesamtmessung: 30 Minuten)
-Erreichte Genauigkeit (max. Fehler): 20 Meter
 
@Sven:

-Es ist ein großes Fenster in der Wand
-Es wurden dauerhaft 9 Satelliten empfangen
-Abweichung für GPS (ohne Korrektursignal) eigentlich ok: typischerweise sollen es nicht mehr als 15 Meter ohne Korrektursignal sein - ich werde zum Vergleich noch Testmessungen unter freiem Himmel machen
-Kaltstart: 38s
-Warmstart: 35s (in der Wohnung hat es aber deutlich länger gedauert)

Werde auch mal schauen ob man Korrektur-Signal (EGNOS) draußen empfangen kann...
 
Mir ist auch noch aufgefallen, dass das Signal schnell wandert - Beispiel:


Code:
Zeit t=1 (sec)  lat +1 Meter    lon +1 Meter
Zeit t=2 (sec)  lat +0 Meter    lon +2 Meter
Zeit t=3 (sec)  lat -1 Meter    lon +1 Meter
Zeit t=4 (sec)  lat -2 Meter    lon +0 Meter
...


Also deutlich schneller wandert als der Roboter überhaupt fahren kann. Ich könnte mir vorstellen dass man durch Filterung (Tiefpaß etc.) die starken Änderungen etwas in den Griff bekommen kann...
 
Und dann ist mir noch was eingefallen:

Man würde das genaue Positionssignal z.B. aus den Änderungen berechnen (d.h. Änderung von lon/lat zur letzten Messung).

Und: Das GPS-Signal ist ja am Roboter immer die Summe aus "eigener Bewegung" und "Meßfehler". Wenn man aber den Meßfehler abschätzen könnte, hätte man die eigene Bewegung. Beispielsweise weiß man ja, wann der Roboter steht. Zu diesem Augenblick würde man keine GPS-Änderung erfassen (reiner Meßfehler).

Wenn der Roboter fährt (z.B. auf Kurs), müssten die GPS-Änderungswerte auf einer Geraden liegen. Änderungswerte die weit daneben liegen sind Meßfehler...(und werden ignoriert). Wandert die Position zu schnell, sind die GPS-Änderungswerte ebenfalls Meßfehler...(und werden ignoriert)
 
@Sven: Es gibt verschiedene Varianten des ublox 6 Empfängers - wenn dort LEA-6R steht bezieht sich das glaube ich nur auf diese Variante. Das Feature ist also im 12EUR Modell (NEO-6M) nicht enthalten...
 
Hallo,

nun folgen endlich die Testmessungen am Rasen...

Erste Messung:
-einfacher GPS-Empfänger mit Standard-Antenne
-GPS Modul: GY-NEO6MV2 (ublox 6m)
-ohne Korrektursignal
-Ort: Feste Position auf einer 20x30m Rasenfläche (freie Sicht zum Himmel)
-Meßwerte: 600 (pro Sekunde ein Meßwert, Gesamtmessung: 10 Minuten)
-Erreichte Genauigkeit (max. Fehler): 4 Meter
messwerte1.png



Zweite Messung:
-Ort: Feste Position am Rasen (neben einem Baum)
-Erreichte Genauigkeit (max. Fehler): 4 Meter
messwerte2.png



Gruss,
Alexander
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/905/messwerte1.png/
 
Zuletzt bearbeitet von einem Moderator:
Hallo Alexander,

dein Ergebnis von 4 Meter Genauigkeit ist etwas besser zu meiner Messung (~6 Meter mit einer älteren ublox-Version unter vergl. Bedingungen). Ich war bereits auf der Suche nach dem ublox NEO6, das ein noch höhere Genauigkeit erzielen soll.
Navilock gibt für dieses Modul eine GPS-Positionsgenauigkeit von 2,5 m an. Nachgewiesen unter folgenden Bedingungen: 24 Stunden, stationär, die ersten 10 Min. Daten verworfen, starke Signale. Bei kontinuierlicher Verfügbarkeit der gültigen SBAS Korrekturdaten während einer vollständigen Testphase (unglaubliche) 2,0 m.

Entspricht deine Modul-Version dieser Version von Navilock NL-6072ETTL u-blox NEO-6P?
 
Hallo Rainer,

das ublox NEO-6P Modul welches Du ansprichst, hat einen entscheidenden Unterschied zu allen anderen NEO-6 Modulen (6G, 6Q, 6M, 6V): es kann laut Datenblatt
- die Rohdaten (RAW) ausgeben (z.B. notwendig für Software-DGPS mit RTKLIB ) und
- verfügt über einen "Precise Point Positioning" (PPP)-Algorithmus, welcher bei sich langsam bewegenden Objekten optimale Ergebnisse erzielen soll

Mit 150 EUR ist das NEO-6P Modul aber alles andere als günstig (für RAW-Ausgabe/DGPS kann man auch das günstigere ublox LEA-4T nehmen) und daher bin ich beim günstigen NEO-6M hängen geblieben.

Ich habe die Features-Matrix der verschiedenen Modelle angehängt.

PS: Bosch Indego verwendet ebenfalls das günstige NEO-6M und korrigiert damit vermutlich die Fehler welche bei der Positionsbestimmung durch Odometrie entstehen (und sich durch Induktionsschleife und Kompaß allein nicht korrigieren lassen). Ich gehe davon aus, dass 4m Abweichung beim GPS (bei Einsatz derselben Sensoren) tolerierbar sind - Der Indego stoppt übrings in Intervallen (geschätzt alle 50 gefahrene Meter) das Fahren (und macht dann vermutl. seine GPS-Messung - das erhöht wohl die Genauigkeit...)


Gruss,
Alexander
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/905/features.png/
 
Zuletzt bearbeitet von einem Moderator:
Hallo Alexander,

danke für die Übersicht - super.

Ich werde mir einmal ein NEO-6M besorgen und Tests durchführen. Falls die 4 Meter Genauigkeit wirklich stabil sind, würde das für mein Konzept genügen um dann die letzten Meter zur Ladestation über eine Objektsuche per Kamera durchzuführen. Meine ersten Versuche hierzu sehen auf jeden Fall gut aus.

Einen Stopp zur GPS-Messung halte ich auch für sinnvoll. Vermutlich ergeben sich diese Stopps bei einer notwendigen Rückkehr zur Ladestation "automatisch" denn es müssen (bei mir) bei einer Rückkehr etliche Hinternisse (evt. dann mit gezielten Stopps) umfahren werden, die eine möglichst genau Messung erforderlich machen.

Abschliessend eine Frage zur Verwendung mehrerer GPS-Werte:
welcher Algorithmus ist sinnvoll um 10 direkt hintereinander gesammelte (stationäre) GPS-Werte zu einem Standort zu verarbeiten?

... und eine zur Messwertverarbeitung der Kompasswerte:
ich würde zur Glättung einen Kalman-Filter einsetzen. Wer hat Erfahrung? gibt eine Lib oder Beispiel hierzu?
 
Hallo Rainer,

zur GPS Berechnung - Ich würde den Algorthmus etwa so konzipieren:

1. Nächste GPS-Messung durchführen (Lon/Lat ermitteln).
2. Überprüfen der Satelliten-Konstellation am Himmel (HDOP-Wert der Messung): Ist der HDOP-Wert "schlecht" wird die letzte Messung verworfen (Fortsetzung mit Schritt 1).
3. GPS-Messung (Lon/Lat) umrechnen in eigenes Meter-Koordinatensystem (s. Code im Testprogramm weiter oben im Anhang), welches seinen Ursprung (0,0) z.B. bei der Ladestation hat.
4. Solange noch keine 10 Meßwerte vorhanden sind, mit 1. fortfahren.
5. Mittelwert für alle Meßwerte berechnen.
6. Dann z.B. die Varianz über alle Meßwerte berechnen, welche ein Maß dafür ist wie stark die Werte vom Mittelwert abweichen. Ist die Varianz zu groß, würde ich (nach FIFO-Prinzip) die früheste Messung verwerfen (Fortsetzung mit Schritt 1)
7. Der so errechnete Mittelwert ist dann eine Schätzung der Position.


Zum Kalman-Filter (für Kompaß): Meinst Du die Rohwerte von Kompaß/Gyro/Beschl.Sensor um diese damit zu filtern (bzw. zu fusionieren)? (dafür gibt es bestimmt einige Beispiele im Netz...) - Oder möchtest Du die vom Ardumower-Kompaß-Code ermittelten Kompaß-Werte nochmal nachträglich filtern?

Ich selber werde mich wohl mit Kalman-Filter demnächst auseinandersetzen und könnte dann mehr dazu sagen.

UPDATE: Kalman-Filter hat nun ein eigenes Thema bekommen.

Gruss,
Alexander
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/905/kalman1d_2014-01-18.zip/
 
Zuletzt bearbeitet von einem Moderator:
Oben