RTK over NTRIP mit dem Raspberry Pi

EinEinfach

Well-known member
Hallo zusammen,

da ich einen Raspberry Pi sowieso mitspazieren fahre und dieser noch lange nicht an seinen Grenzen ist, dachte ich mir welche Aufgabe könnte er noch so mit übernehmen.

Mich stört schon seit Anfang an, dass mein Rover drei IP Adressen nutzt. 1. ESP32 2. Raspberry Pi 3. Xbee ESP32.

Warum nicht alles über Raspberry Pi laufen zu lassen, während für Punkt 1 ich noch einige Zeit brauche, habe ich den xBee ESP32 mittlerweile rausgeschmissen. Und es ging super einfach. Somit hier eine kleine Einleitung wie das geht, einerseits für euch zum nachmachen, andererseits für mich zum Nachlesen, wenn ich es wieder brauche.

1. ESP32 xBee von der UBlox Platine entfernen, denn brauchen wir nicht mehr
2. Raspberry Pi USB Port mit dem USB Port der UBblox Platine verbinden (wir brauchen einen USB A zu USB Micro Kabel, bitte den usb ublox Anschluss verwenden nicht den xBee.
3. Raspberry Pi auf den neusten Stand bringen:
Code:
sudo apt update
sudo apt upgrade
4. Ins Homeverzeichnis wechseln
Code:
cd
5. Einen neuen Ordner anlegen und dahin wechseln
Code:
mkdir rtklib
cd rtklib
6. Mit git folgende Repository clonen:
Code:
git clone https://github.com/rtklibexplorer/RTKLIB.git
7. Ins gcc Verzeichnis wechseln und Software bauen
Code:
cd RTKLIB/app/consapp/str2str/gcc
Code:
make
8. Anwendung in den usr Ordner kopieren, damit wir es von überall starten können
Code:
sudo cp str2str /usr/local/bin/str2str
9. Testen ob die Daten von der ublox Platine kommen
Code:
str2str -in serial://ttyACM0
Achtung der Port kann bei euch anders heissen. Wenn ganz viel Buchstabensalat kommt, dann ist alles bis jetzt richtig.
10. Nun müssen wir nur noch unsere NTRIP Daten an die Ublox Platine schieben, damit diese RTK generieren kann. Das machen wir mit:
Code:
str2str -in ntrip://user:passwort@www.openservice-sapos.niedersachsen.de:2101/VRS_3_4G_NI -p 5X.XXXXX 1X.XXXXX XX -n 1 -out serial://ttyACM0
Hier für SAPOS Niedersachsen. User und passwort durch eure Daten ersetzen. Port und Mountpoint natürlich auch anpassen. 5X.XXX und 1X.XXX eure Referenzposition, Ihr könnt die aus der Sunray App nehmen, danach XX ist die Höhe über dem Meeresspiegel, ich denke Ihr wisst das für euren Standort.

Befehl absetzen und sich über Fix freuen! Keine Anpassunngen im UCenter oder in der Sunray FW notwendig.

Es gibt noch die Möglichkeit, eigene Position aus den aktuellen GPS Daten extrahieren und an den NTRIP Provider weiter zu geben, bei mir führte der Befehl ins timeout, trotzdem vollständigkeitshalber würde dieser so heissen:
Code:
str2str -in ntrip://user:passwort@www.openservice-sapos.niedersachsen.de:2101/VRS_3_4G_NI -b 1 -out serial://ttyACM0

Das ganze muss natürlich als daemon Dienst eingerichtet werden, damit die Verbindung mit jedem hochfahren des Raspberry mitgestartet werden kann. Hierzu gibt es genug Anleitungen im internet

Viel Spaß beim Nachbauen.

P.S.: Ich habe einen ESP32 XBee abzugeben :)
 
coole Sache. Wie stellst du denn unterbrechungsfreies WLAN mit dem Raspi sicher? Hast du da einen leistungsfähigen WLAN-Stick mit externer Antenne verbaut?
 
Ja, was heißt ein Leistungsfähiger Stick, das billigste vom billigsten aus der Bucht mit einem externen Antennenanschluss, aber immer noch besser als eingeätzte Leiterbahn auf dem XBee. Gefüllt ist der Empfang vom Raspberry auch besser geworden seit dem der Xbee raus ist. Wahrscheinlich haben die sich gegenseitig gestört… ist aber nur gefüllt, ohne nachgemessen zu haben.
 
ok, wenn der XBee keine externe Antenne hat, ist der Fall klar. Die long-range-Dinger haben ja alle eine externe Antenne und damit hast du super Empfang, was aus meiner Sicht für RTK auch extrem wichtig ist.
 
Oben