Aktualisierung (10 / 10 / 2024): Wir haben alle unsere Produkte auf Lager, finden Sie uns auch in und dem    Jetzt shoppen

Wie man den Dienst nutzt ArduSimple RTK-Empfänger und GPS-Daten in ROS

In diesem Tutorial erklären wir die Verwendung ArduSimple RTK-Empfänger zum Erhalten präziser Positionsdaten in ROS. Wir begleiten Sie durch die Schritte zur Integration ArduSimple RTK-Empfänger in Ihr ROS-Projekt, sodass Sie die Leistungsfähigkeit von Accuracy nutzen können GPS- Ortung Daten.

Egal, ob Sie Robotik-Enthusiast, Forscher oder Entwickler sind, dieses Tutorial zeigt Ihnen die Schritte zum Zugriff auf Positionsdaten in Ihren ROS-Anwendungen.

Wenn Sie neu bei ROS sind, haben wir eine Kurzfassung vorbereitet tTutorial, das den Einstieg in ROS erleichtert um mehr über die Schlüsselbegriffe von ROS zu erfahren, welche Plattform und Entwicklungsumgebung besser zu wählen ist usw.

Erforderliche Hardware:

Erforderliche Software:

  • Ubuntu 18 oder 20 (in diesem Tutorial verwenden wir Ubuntu 20) nativ auf einem PC installiert 
  • ROS (wir verwenden ROS Noetic).

Wie man den Dienst nutzt ArduSimple RTK-Empfänger und GPS-Daten in ROS erhalten?

Verbinden und konfigurieren Sie zunächst den RTK-Empfänger in Ubuntu.

  1. Stecken Sie die RTK-Antenne auf Ihre Empfänger. Platz die Antenne an einem Ort mit guter Sicht zum Himmel oder in der Nähe eines Fensters, um die Funktionalität zu testen.
  2. verbinden Sie Ihren Empfänger über den mit „“ gekennzeichneten USB-Anschluss an den PC anschließen.POWER+GPS"
  3. Ihr Receiver sollte automatisch konfiguriert sein. Um dies zu überprüfen, öffnen Sie Terminal und geben Sie den Befehl ein:
				
					ls /dev/tty*
				
			
  • Du wirst das sehen „/dev/ttyACM0“ wurde automatisch erstellt.
  1. Um den Stream von Ihrem zu überprüfen RTK-EmpfängerVerwenden Sie den Befehl:
				
					sudo cat /dev/ttyACM0
				
			
  • Der GPS-Eingabestream sieht in etwa wie folgt aus:
  • Presse Strg + C um die Wiedergabe des Streams abzubrechen.
  1. Um das zu verhindern RTK-Empfänger vom Start in einem anderen „ttyACM*“ Erstellen Sie bei jedem Einschalten eine udev-Regel (einen dynamischen Link), die einen Eintrag mit einem bestimmten Namen erstellt, indem Sie die folgende Datei hinzufügen, bevor Sie die Verbindung herstellen RTK-Empfänger.
				
					sudo nano /etc/udev/rules.d/50-ardusimple.rules
				
			
  1. Geben Sie den folgenden Text für die Regel ein:
				
					KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
				
			
  1. Presse Strg + X um die Datei zu verlassen und drücken Sie Y um den geänderten Puffer zu speichern.
  2. Jetzt wann immer ein RTK-Empfänger verbunden ist, ist es von dort aus zugänglich „/dev/tty_Ardusimple" Verknüpfung. Um dies zu überprüfen, trennen Sie die Verbindung RTK-Empfänger (Strom ausschalten und wieder einschalten) und die Befehle eingeben:
				
					sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
				
			
  1. Das sieht man jetzt „tty_ArduSimple" wurde erschaffen.
  1. Um das U-Center-Programm in Ubuntu zu verwenden, installieren Sie Wine. Es handelt sich dabei um eine Sammlung von Linux-Bibliotheken, die es ermöglichen, viele Windows-Anwendungen auf Linux-Distributionen (unter anderem auf Ubuntu) auszuführen.
    Es macht die U-Center-Software nicht vollständig kompatibel, kann aber verwendet werden, wenn Sie den Status oder die Konfiguration Ihres RTK-Empfänger.
    Um Wine zu installieren (die Installation kann 2-3 Minuten dauern), verwenden Sie den folgenden Befehl:
				
					sudo apt install wine64  //if Ubuntu is installed natively
sudo apt install wine32  //if you run Ubuntu on a virtual machine

				
			
  1. Sobald Wine installiert ist, können Sie U-Center in Ubuntu installieren, als wäre es Windows. Öffnen Sie den Firefox-Webbrowser und laden Sie das U-Center-Programm von der offiziellen Website herunter: https://www.u-blox.com/en/product/u-center.
  1. Sobald u-center heruntergeladen wurde, gehen Sie zum Download-Ordner und extrahieren Sie die Datei u-center Auf dem Bildschirm.
  1. Um die Installation von zu starten u-center Geben Sie in der Software den folgenden Befehl ein:
				
					cd ~/Desktop/
wine ./u-center_v22.07.exe

				
			
  1. Installieren u-center wie in Windows, indem Sie die Installationsschritte befolgen.
  2.  So erstellen Sie ein COM1 Hafen, offen Terminal und geben Sie den folgenden Befehl ein, um einen Link zu erstellen RTK-Empfänger im Ordner „~/.wine/dosdevice“.
				
					ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
				
			
  1. Menu u-center wenn du es geöffnet hast. Offen u-center.
  2. Stellen Sie eine Verbindung zu Ihrem her RTK-Empfänger in u-center durch Drücken Ctrl + 1 .
  1. In der linken Ecke sehen Sie grünes Licht und die Daten Ihres RTK-Empfängers ähneln denen unten.

Zweitens führen Sie den RTK-Empfänger in ROS aus.

  1. Erstellen Sie einen Ordner mit den Arbeitsbereichen. Wenn Sie noch keins haben, können Sie es mit den folgenden Befehlen erstellen:
				
					mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  1. Laden Sie ROS-Pakete in src herunter und installieren Sie sie. In diesem Tutorial werden wir die Pakete herunterladen von https://github.com/KumarRobotics/ublox Das wird die ROS-Informationen veröffentlichen. Dies funktioniert mit dieser Version 1.1.4. Sie können die neuesten Versionen verwenden, einige Schritte müssen jedoch möglicherweise geändert werden. Geben Sie Befehle ein:
				
					cd ~/catkin_ws/src
git clone https://github.com/KumarRobotics/ublox
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
				
			
  • Im Terminal sehen Sie:
    #Alle erforderlichen Rosdeps wurden erfolgreich installiert
  1. Kompilieren Sie das Programm, um es ausführen zu können.  
				
					catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  • Wenn setup.bash ausgeführt wird, wählen wir den Arbeitsbereich aus und aktualisieren die verfügbaren Programme in ROS.
  1. Um die Kontrolle über die zu veröffentlichenden Nachrichten zu haben ArduSimple Sie können die Yaml-Datei (Konfigurationsdatei) ändern, die der Knoten zum Ausführen der Kommunikation mit Ros verwendet.
    Dieser Knoten verfügt über mehrere Testkonfigurationsdateien. Sie können die Werte dieser Datei ändern, indem Sie die Dateien im folgenden Verzeichnis ändern:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/config
				
			
  1. Da der u-blox Modell innen Ardusimple ist das zed_f9p, ändern wir die gleichnamige Datei. Um den Editor zu öffnen, können wir den folgenden Befehl verwenden:
				
					nano zed_f9p.yaml
				
			
  1. Ändern Sie die Adresse des Geräts in „/dev/tty_Ardusimple" um sicherzustellen, dass es immer zum geht RTK-Empfänger:

				
					device: /dev/tty_Ardusimple
frame_id: gps
uart1:
  baudrate: 9600  //Change the baudrate value to the value set in U-Center.
config_on_startup: false

				
			
  1. Menu u-center weil ROS und u-center nicht zusammen laufen.

  1. Um den ROS-Knoten auszuführen, verwenden Sie den Launcher im folgenden Ordner:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/launch
				
			
  • Um zu überprüfen, ob es aufgeführt ist, geben Sie den folgenden Befehl ein:
				
					ls
				
			
  1. ROS-Startdateien Vereinfachen Sie den Prozess des Startens mehrerer Knoten und der Konfiguration ihrer Parameter. Eine Startdatei ist eine XML-Datei, die die auszuführenden Knoten, ihre Parameter und die Verbindungen zwischen ihnen beschreibt. Durch die Verwendung von Startdateien können Sie mehrere Knoten mit einem einzigen Befehl starten, was die Verwaltung komplexer Robotersysteme erleichtert. Diese Dateien haben die Erweiterung „.launch“, es gibt andere Dateien, bei denen es sich um Konfigurationsdateien handelt, die die Erweiterung „.yaml“ haben.
    So starten Sie die Datei:
				
					roslaunch <name_of_package> <launch_file>
				
			
  • Die Datei, die unser Programm startet, heißt „ublox_device.launch“.
    Diese Datei kann bei Bedarf geändert werden.
    Um das Programm zu starten, verwenden Sie den folgenden Befehl:
				
					roslaunch ublox_gps ublox_device.launch param_file_name:=zed_f9p
				
			
  1. Öffnen Sie ein neues Terminal und geben Sie den Befehl ein:
				
					source ~/catkin_ws/devel/setup.bash
				
			
  1. ROS-Knoten Beim Ausführen haben sie eindeutige Namen. Um die Liste der ROS-Knotennamen anzuzeigen, verwenden Sie den Befehl im Terminal:
				
					rosnode list
				
			
  1. Um Informationen über die ROS-Knoten zu erhalten, z. B. welche Themen sie abonniert haben oder veröffentlichen, können Sie den folgenden Befehl verwenden:
				
					rosnode info <name_of_node>
				
			
  • Um beispielsweise Informationen zu erhalten über „info /ublox“Verwenden Sie den Befehl:

				
					rosnode info /ublox
				
			
  1. Um eine Liste der aktiven anzuzeigen ROS-Themen die derzeit verfügbar sind und in Ihrem ROS-System veröffentlicht oder abonniert werden, verwenden Sie den Befehl.
				
					rostopic list
				
			
  • Die Ausgabe der ROS-Themenliste zeigt normalerweise die Namen der Themen zusammen mit ihren Nachrichtentypen an. Dieser Befehl ist nützlich, um die verfügbaren Themen zu überprüfen und zu überprüfen, ob die gewünschten Themen in Ihrer ROS-Umgebung veröffentlicht oder abonniert werden.

  1. Um Informationen darüber anzuzeigen, wer diese Nachricht postet und abonniert, sowie den Typ der Nachricht, verwenden Sie den Befehl im folgenden Format:
				
					rostopic info <name_of_topic>
				
			
  • Zum Beispiel, um Informationen über Nachrichtentyp, Herausgeber und Abonnenten des Themas zu erhalten „/rosout“, führen Sie den Befehl aus:
				
					rostopic info /rosout
				
			
  1. Um Informationen über Nachrichtentyp, Herausgeber und Abonnenten des Themas zu erhalten /ublox/fix, z.BFühren Sie den Befehl aus:
				
					rostopic info /ublox/fix
				
			
  1. Um die veröffentlichten Informationen anzuzeigen, verwenden Sie den Befehl im folgenden Format:
				
					rostopic echo <name_of_topic>
				
			
  • Um zu testen, ob es funktioniert, können wir die verschiedenen Themen abonnieren, die der Knoten erstellt.

    Die wichtigsten sind „/gps/fix“ (sind die Daten in WGS64) und „/Diagnose“ (Gibt uns Auskunft über den GPS-Status). Andere Daten können entsprechend der eingestellten Konfiguration veröffentlicht werden RTK-Empfänger.

    Zum Beispiel, um die veröffentlichten GPS-Fixdaten zu beobachten und zu überwachen „/ublox/fix“ Thema (sind die Daten in WGS64), wie Breitengrad, Längengrad, Höhe und andere relevante Informationen. Verwenden Sie den folgenden Befehl, um die Daten anzuzeigen:

				
					rostopic echo /ublox/fix
				
			
  • Um die Anzeige des Themas zu beenden, drücken Sie Strg + C.

  1. Um die Daten anzuzeigen, die veröffentlicht werden „/Diagnose“ Um unter anderem Informationen zum GPS-Status wie Genauigkeit zu erhalten, verwenden Sie den folgenden Befehl:
				
					rostopic echo /diagnostics
				
			
  • Um die Anzeige der Daten zu beenden, drücken Sie Strg + C.

  1. Wenn Sie die zum Thema veröffentlichten Informationen in der Datei aufzeichnen möchten, verwenden Sie den Befehl:
  • um GPS-Fixdaten aufzuzeichnen, die auf veröffentlicht werden „/ublox/fix“ Themen wie Breitengrad, Längengrad, Höhe und andere:
				
					rostopic echo /ublox/fix > gps_fix_data.txt
				
			
  • um Daten über den GPS-Status aufzuzeichnen „/Diagnose“:
				
					rostopic echo /diagnostics > gps_diagnostics.txt
				
			
  • Diese Befehle erstellen Dateien gps_fix_data.txt und dem gps_diagnostics.txt, wo das Thema gespeichert wird. Um die Aufnahme zu stoppen, drücken Sie Strg + C.

  1. Um die in den Dateien aufgezeichneten Informationen anzuzeigen, führen Sie Folgendes aus:
				
					nano gps_fix_data.txt
				
			
				
					nano gps_diagnostics.txt
				
			
  1. ROS-Meldungen sind die Datenstrukturen, die für die Kommunikation zwischen ROS-Knoten verwendet werden. Sie definieren die zu einem Thema ausgetauschten Informationen. Nachrichten werden im .msg-Dateiformat definiert.
    Um die Liste der Arten von ROS-Nachrichten anzuzeigen, verwenden Sie den folgenden Befehl:
				
					rosmsg list
				
			
  1. Um die Struktur der Nachricht anzuzeigen, verwenden Sie den Befehl im Format:

				
					rosmsg show <name_of_message>
				
			
  • So befasst sich beispielsweise die „sensor_msgs/NavSatFix“ ist ein Nachrichtentyp in ROS, der zur Darstellung von GPS-Fixdaten (Global Positioning System) wie Breitengrad, Längengrad, Höhe und anderen Parametern im Zusammenhang mit der GPS-Position verwendet wird.
    Um die Struktur von „zu sehen“sensor_msgs/NavSatFix“ Nachricht, verwenden Sie den Befehl:
				
					rosmsg show sensor_msgs/NavSatFix
				
			
  1. Um die Liste der Aktiven anzuzeigen ROS-Dienste Verwenden Sie den folgenden Befehl, um Knoten die Möglichkeit zu geben, Anforderungen zu senden und Antworten zu empfangen:
				
					rosservice list
				
			
  1. Um den Dienst aufzurufen, verwenden Sie den Befehl im Format:
				
					rosservice call <name_of_service> <type_srv> <request>
				
			
  • Dieser Dienst wird mit dem Ergebnis antworten.

    Um beispielsweise die aktuelle Logger-Konfiguration des u-blox Verwenden Sie für Node, das für Debugging- und Überwachungszwecke hilfreich sein kann, den folgenden Befehl:

				
					rosservice info /ublox/get_loggers
				
			

Wenn Sie dieses Tutorial machen möchten, haben wir alle Produkte auf Lager und sind versandbereit:

Wenn Ihnen dieser Inhalt gefallen hat, können Sie uns weiter folgen Twitter, YouTube, Facebook or LinkedIn um über solche Inhalte auf dem Laufenden zu bleiben.

Haben Sie Fragen oder Wünsche?
Kontaktiere uns! Wir antworten <24 Stunden!

Symbol
Kontakt ArduSimple
Menu

Möchten Sie mehr über GPS/RTK erfahren?

1. Unser Engineering-Team wird sich mit Ihnen in Verbindung setzen, um alle Fragen zu klären
2. Wir halten Sie über Werbeaktionen und neue Produktveröffentlichungen auf dem Laufenden
3. Sie hören nur von uns, wenn wir wichtige Neuigkeiten haben, wir spammen Ihre E-Mail nicht zu