STOP RUSSIAN WAR OF AGGRESSION ON UKRAINE

Präzise GPS-Positionierung mit dem Raspberry Pi Computer und RTKLIB – Navigation

Präzise GPS-Positionierung mit dem Raspberry Pi Computer und RTKLIB – Navigation

Buchempfehlung:
Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi - 2019

In diesem Artikel geht es darum zu zeigen wie prinzipiell eine genaue GPS-Positionierung erfolgen kann. Ich gehe davon aus, dass die Kopplung und die Konfiguration der Basisstation und der mobilen Einheit funktionieren. Das bedeutet, dass beide Raspberry Pi mit jeweils einem RasPiGNSS GPS Empfänger über W-LAN miteinander verbunden. Die empfangenen GPS Daten der Basisstation werden als Rohdaten und nicht als RTCM3 Datenstrom an die mobile Station übertragen. Die mobile Station berechnet dann mit dem Programm RTKRCV die genaue eigene Position für die exakte GPS-Positionierung des Roboters oder hier dem Auto. Aktuell habe ich die Basisstation stationär aufgebaut und den Router neben dieser aufgestellt. Die mobile Einheit war im Auto untergebracht und die GPS Antenne auf dem Dach hinten mittig befestigt.

Das Bild zeigt den Aufbau kurz nach dem Einschalten. Die mobile Einheit liegt noch auf dem Autodach. Diese wurde später auf die Hutablage gelegt. Der Router stand leicht erhöht neben der Basisstation.

RTK RasPiGNSS Basisstation und mobile Einheit im Test

RTK RasPiGNSS GPS Basisstation und mobile Einheit im Test

Erster Test GPS-Positionierung – 001 Parkplatz (20.11.2016)

Sehr schön ist die Fahrstrecke auf Google Earth zu erkennen. Das Programm RTKRCV hatte zu diesem Augenblick noch keine RTK Solution berechnet gehabt. Die vorhandene Solution war eine SBAS Solution. Trotz 19 empfangenen Satelliten an der Basisstation und mobilen Einheit. Ich gehe nach wie vor davon aus, dass meine Konfiguration für die Positionsberechnung noch nicht ideal ist. Hier muss ich weiter an der rtkrover.conf Datei an den Einstellungen arbeiten.

In den aufgezeichneten Daten gibt es kaum größere Abweichungen von der gefahrenen Strecke. Der kleine Bogen oben rechts im Bild ist glaube ich entstanden, als ich Schlaglöchern ausgewichen bin die groß und voller Regenwasser waren. Ansonsten spiegelt die rote Linie sehr genau die mit dem Auto gefahrene Strecke wieder.

Das Ergebnis dieses Tests sehen Sie im folgenden Bild. Die Fahrstrecke habe ich als NMEA Datei von der mobilen Einheit aufzeichnen lassen, in eine KMZ Datei umgewandelt und mir in Google Earth anzeigen lassen.

Test 001 - Fahrstrecke Auto

Test 001 – Fahrstrecke Auto

Die Statusanzeige des Programmes RTKRCV zeigte das folgende Bild. Es sind genug Satelliten erkannt worden und mit 8 validen Satelliten sollte eigentlich eine RTK Positionierung möglich sein. Aber wie es scheint klappt es nicht und ich habe wohl immer noch ein Problem mit meiner Konfiguration in der rtkrcv.conf Datei.

Test 001 RTKRCV - Status

Test 001 RTKRCV – Status

Bei Interesse an der KMZ Datei, die die Wegpunkte enthält steht diese nachfolgend zum Download bereit.

KMZ Datei: download

Der Aufbau mit der Basisstation auf dem Parkplatz sah wie auf dem nachfolgendne Bild gezeigt aus. Die GPS Antenne der Basisstation war auf dem Stativ befestigt und der Raspberry Pi mit RasPiGNSS GPS Modul war in der Stofftasche untergebracht.

RTK RasPiGNSS Basisstation im Test

RTK RasPiGNSS GPS Basisstation im Test

Zweiter Test GPS-Positionierung – 002 Wiese (23.12.2016)

Ich habe die rtkrover.conf Konfigurationsdatei angepasst die das Programm RTKRCV einließt um die Parameter entsprechend zu setzen wie die GPS Daten empfangen und verarbeitet werden sollen. Hier habe ich endlich die Einstellung gefunden eine FIX und FLOAT Solution zu erhalten. Ab jetzt sollte das Setup auf ein paar Zentimeter genau funktionieren. Das gilt es jetzt zu überprüfen.

Das folgende Bild zeigt die FLOAT Solution die ich erreicht habe.

RTK FLOAT Solution

RTK FLOAT Solution

Das zweite Bild zeigt die FIX Solution die mein Setup berechnen konnte.

RTK FIX Solution

RTK FIX Solution

Mit der Float und Fix Solution bin ich jetzt sehr zufrieden und werde das Setup weiter testen mit dem Focus auf Stabilität.

Fehlerfall Abbruch präzise Positionsbestimmung abfangen

Bei meinen Tests mit der RasPiGNSS Lösung ist es mir immer wieder passiert, dass ich die genaue GPS Position verloren habe und dann keine GPS-Positionierungmehr für z. B. mein Roboter-Auto erhalten konnte. Daher wäre eine Fehlerbehandlung sehr wichtig die z. B. aus einem zusätzlichen GPS Empfänger bestehen könnte der zumindest die ungenaue NMEA Position ermittelt. Denn selbst eine ungenaue NMEA GPS Position ist immer noch besser als gar keine. Eventuell wäre es auch möglich im Fehlerfall nicht mehr den Rohdatenstream aus dem RasPiGNSS Modul auszulesen sondern auf den NMEA Datenstrom zu wechseln. Dieser Vorschlag stammt von www.drfasching.at von dem auch die RasPiGNSS Module stammen die ich verwende.

Eine weitere Möglichkeit wäre über vorhandene Radsensoren, einem Beschleunigungssensor und einem Gyroskop die Bewegung des Roboter-Autos weiter mitzuversorgen und so die relative Position zu ermitteln bis wieder die absolute Position mit der RTK Bibliothek ermittelt werden konnte.

Hier bin ich mir noch unsicher welche Lösung die beste wäre. Eventuell eine Kombination aus den eingangs erwähnten verschiedenen Alternativen.

Ausblick

Nach dem ich endlich die Genauigkeit hinbekommen habe das ich eine FLOAT und FIX Solution erhalten habe ist der nächste Schritt die Stabilität des Setups zu erhöhen. Wenn ich hier zufrieden bin dann werde ich die Lösung in einen Roboter einbauen der auch gut über eine Wiese fahren kann.


Artikel Übersicht GPS Modul RasPiGNSS:

Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Einführung
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB - Theoretischer Aufbau
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – GPS Antennen Aufbau
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Software Installation
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Konfiguration RTK Basisstation
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Konfiguration RTK Mobile Einheit
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – XBee Funkverbindung Vorraussetzungen
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – XBee serielle Datenübertragung
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Navigation
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – RasPiGNSS im Dauer-Betrieb
Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Erfahrungsbericht
(Visited 6.138 times, 1 visits today)

Über den Autor

Maker

My name is Ingmar and I build Raspberry Pi robots in my sparetime. I wrote a book about Raspberry Pi robots 2016 which is available in German. I am interested in all kinds of electronic projects like differential GPS, machine learning or robotics.

5 Bemerkungen

  1. Hannes

    Hallo!
    Ich bin leider erst jetzt auf dein Projekt gestoßen, und kann nur sagen: WOW! Wirklich toll was du da geschafft hast. Und danke dass du alles so genau dokumentiert hast.

    Vielleicht bin ich schon ein bisschen spät dran, aber ich hab ein paar Tips für dich:
    Das NV08-CSM Modul verfügt über 2 serielle Schnittstellen, d.h. wenn der Entwickler deiner Module beide Ports nach außen geleitet hat, dann sollten in linux auch 2 serielle Ports zur Verfügung stehen.
    Das heißt dann wiederum dass du einen Port zur Ausgabe der Rohdaten für RTK verwenden kannst und am 2. Port kannst du die NMEA-Daten auslesen. Damit hast du, wie oben angesprochen, immer zumindest eine GPS-Position, auch wenn RTK nicht funktioniert.

    Ich habe vor ein paar Jahren ein ziehmlich ähnliches Projekt umgesetzt, wo es darum ging eine Pflanzmaschine per GPS zu steuern. Verwendet habe ich auch Raspberry Pi’s als Basisstation und auch auf dem Rover, NV08-csm Module aber per USB und die Verbindung von Rover zur Basis wurde per 3G-Modem hergestellt, da leider die von mir verwendeten XBees bei voller Sendeleistung in der Sendezeit beschränkt werden, was zu Funkabbrüchen führte.

    Antworten
    • Maker

      Hallo Hannes,

      vielen Dank für Deinen Hinweis, Dann werde ich mich schlau machen ob die zweite serielle SST herausgeführt ist.
      So hätte ich ja eine Backup Möglichkeite die mir den NMEA Stream liefert. Ich werde dann hier wieder berichten.

      Viele Grüße,

      Maker

      Antworten
  2. saggzzmoe

    Hi. Erst mal spitzen sache, wie du das ausgearbeitet hast.
    Ich habe das Projekt mit 2 Raspberry Pi3 + tw2410 nachgearbeitet und ich empfange ausschließlich
    SBAS, obwohl ich sehr gute Signalstärken von GPS und GLONASS halte. Valide Satelliten
    bekomme ich also nur mit SBAS und ansonsten nicht, auch wenn ich teilweise 20 – 25 verfügbare Satelliten für Rover und Base habe.
    Ich komme einfach nicht dahinter, an was es liegen könnte. Evtl. hast du ja einen Tip für mich. liebe Grüße!

    Antworten
  3. Mattse

    Hi,

    ist es möglich die conf-Dateien zu bekommen? Ich habe deine Installation nachgebaut, aber mit der Configuration hapert es.
    Sonst klasse Projekt, anspruchsvoll.

    Antworten
  4. Niun

    Hi, ich bin auch gerade dabei ein ähnliches Projekt umzusetzen.
    Was mich wundert: Warum sendest du mit str2str raw data instead of rtcm3?
    rtcm3 kann ebenfalls Rohdaten übertragen, ich bekomme so zumindest einen float fix hin.
    Allerdings scheint es an der Korrektur der Daten zu hapern.

    Grüße
    Niun

    Antworten

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

*

Video:

Buchempfehlung:

Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi - 2019