Aktualisierung (21 / 06 / 2025): Wir haben alle unsere Produkte auf Lager, finden Sie uns auch in und    Jetzt shoppen

Wie zu integrieren u-blox ZED-F9P GNSS/RTK-Empfänger in ROS 2 (Jazzy)

Integration von u-blox ZED-F9P GNSS/RTK-Empfänger in ROS 2 Jazzy
Integration von u-blox ZED-F9P GNSS/RTK-Empfänger in ROS 2 Jazzy

Dieses Tutorial erklärt die Integration des u-blox ZED-F9P RTK GNSS Empfänger mit einem Roboter, der ROS 2 (Jazzy) ausführt. Sie lernen, wie Sie die Hardware anschließen, den Empfänger konfigurieren, einen ROS 2-Arbeitsbereich einrichten und die erforderlichen Knoten starten, um hochpräzise GPS-Daten mit RTK-Korrekturen über einen NTRIP Bedienung.

Am Ende dieses Handbuchs verfügen Sie über ein voll funktionsfähiges ROS 2-Setup, das Echtzeit-RTK-Daten von Ihrem RTK-Empfänger streamt, basierend auf u-blox ZED-F9P– geeignet für Roboteranwendungen, die eine Positionierungsgenauigkeit im Zentimeterbereich erfordern.

Erforderliche Hardware:

  • simpleRTK2B – Basis-Starterkit
  • USB-Kabel Kompatibel mit dem USB-Anschluss Ihres Receivers zum Anschluss an einen PC oder eine eingebettete Plattform
  • einen PC oder eine eingebettete Plattform mit Internetzugang (in diesem Tutorial verwenden wir einen PC)

Erforderliche Software:

  • Ubuntu 24.04 (nativ installiert, in einer virtuellen Maschine oder über WSL)
  • ROS 2 (Jazzy) (auf der Ubuntu-Plattform installiert)

Nützliche Adressen

  1. Hilfreiche Ressourcen zur Installation von Ubuntu:
  2. Verwenden von WSL oder virtuellen Maschinen: Wenn Sie WSL oder virtuelle Maschinen verwenden möchten, müssen Sie den RTK-Empfänger mit Ubuntu teilen. Hier finden Sie Anweisungen zur Freigabe:
  3. NTRIP Service-Zugang: Stellen Sie sicher, dass Sie Zugriff und Anmeldeinformationen haben, um NTRIP Service. Benötigen Sie Hilfe bei der Suche nach einem Korrekturservice, wenden Sie sich an unsere Liste von NTRIP Korrekturdienste in Ihrem Land.
  4. RTK-Empfängerkonfiguration: Stellen Sie sicher, dass Ihr RTK-Empfänger als Rover. Wenn Sie Hilfe bei der Konfiguration eines u-blox ZED-F9P als ein Rover, beziehen Sie sich auf unsere ZED-F9P Konfigurationsdateien.

Wie stellt man das ein u-blox ZED-F9P RTK-Empfänger mit ROS 2?

ROS 2-Umgebung einrichten

  1. Wenn die ROS 2-Umgebung installiert wurde, folgen Sie den ROS2-Installationshandbuch, standardmäßig ist es nicht aktiv, wenn Sie ein Terminal öffnen.
    Um dies zu beheben, öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um Ubuntu so zu konfigurieren, dass die ROS 2-Umgebung automatisch in Ihre Terminal-Startkonfiguration geladen wird.
				
					echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
				
			
  1. Um die Änderungen anzuwenden, verwenden Sie den folgenden Befehl. Danach ist ROS 2 jedes Mal einsatzbereit, wenn Sie ein Terminal öffnen.

				
					source ~/.bashrc
				
			
  1. Um Abhängigkeiten in ROS 2 zu verwalten, aktualisieren Sie Ihre Paketliste und installieren ROS-Entwicklertools, Die umfasst Rosdep und andere nützliche Entwicklungstools für ROS 2.
				
					sudo apt update && sudo apt install ros-dev-tools
				
			

RTK-Empfänger anschließen

  1. Schließen Sie die RTK-Antenne an Ihren Empfänger an. Platzieren Sie 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 Receiver über den mit „POWER+GPS"
  3. Der Empfänger sollte automatisch konfiguriert sein. Um dies zu überprüfen, öffnen Sie Terminal und geben Sie den Befehl ein. Sie sollten sehen / dev / ttyACM0 (oder ein ähnliches Gerät, zB / dev / ttyACM1).
				
					ls /dev/ttyACM*
				
			
Integration u-blox ZED-F9P RTK-Empfänger mit Korrekturen in ROS2
  1. Um den GPS-Stream vom RTK-Empfänger zu überprüfen, führen Sie den Befehl im Terminal aus. Er zeigt die Rohdaten des GPS-Streams vom Empfänger an. Drücken Sie Ctrl + C stoppen.
				
					sudo cat /dev/ttyACM0
				
			
  1. TIPP: Wenn keine Ausgabe angezeigt wird oder das Gerät fehlt, überprüfen Sie, ob Ihr Benutzer über die entsprechenden Berechtigungen verfügt (z. B. Mitglied der Dialout-Gruppe ist). Sie können sich mit dem folgenden Befehl selbst hinzufügen. Melden Sie sich anschließend ab und wieder an, damit die Änderungen wirksam werden.
				
					sudo usermod -a -G dialout $USER
				
			
  1. Um zu verhindern, dass der RTK-Empfänger in einer anderen „ttyACM*“ jedes Mal, wenn es eingeschaltet ist, erstellen Sie eine udev-Regel (ein dynamischer Link), der einen Eintrag mit einem bestimmten Namen erstellt, indem vor dem Verbinden des RTK-Empfängers die folgende Datei hinzugefügt wird.
				
					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. Trennen Sie den RTK-Empfänger (schalten Sie die Stromversorgung ab) und schließen Sie ihn erneut an (Stromversorgung).
  3. Wenn nun ein RTK-Empfänger angeschlossen ist, ist er über die Schaltfläche „/dev/tty_Ardusimple”-Link. Um dies zu überprüfen, geben Sie die folgenden Befehle ein:
				
					sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
				
			
  1. Das sieht man jetzt „tty_ArduSimple" wurde erschaffen.

Bereiten Sie einen neuen ROS 2-Arbeitsbereich für das Projekt vor

  1. Um ein Arbeitsbereichsverzeichnis zu erstellen, öffnen Sie ein Terminal und erstellen Sie einen Ordner (z. B. ros2_ws) mit einer src Unterordner:
				
					mkdir -p ~/ros2_ws/src
				
			
  1. Navigieren Sie zu Ihrem Arbeitsbereich.
				
					cd ~/ros2_ws
				
			
  1. Um den Arbeitsbereich zu erstellen, verwenden Sie kolcon um alle Pakete darin zu erstellen src:
				
					colcon build
				
			
  1. Geben Sie die Setup-Datei als Quelle ein, damit Ihre Shell die neu erstellten Pakete erkennt:
				
					source install/setup.bash
				
			
  1. Fügen Sie diesen Befehl zu Ihrer ~/.bashrc (oder einem gleichwertigen Befehl) hinzu, um die Quelle automatisch zu verwenden, wenn Sie ein neues Terminal öffnen.
				
					echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
				
			
Integration u-blox ZED-F9P RTK-Empfänger mit Korrekturen in ROS2
  1. Jetzt haben Sie einen grundlegenden ROS2-Arbeitsbereich für die weitere Entwicklung und Integration mit ArduSimple RTK.

Starten Sie den Knoten auf ROS 2, um eine Verbindung zum RTK-Empfänger herzustellen

In diesem Abschnitt laden wir die u-blox ROS 2-Knoten, dann führen Sie einen kurzen Test durch, um zu bestätigen, dass er mit Ihrem kommunizieren kann ArduSimple RTK-Gerät. Wir zeigen Ihnen, wie Sie die Startdatei direkt im u-blox Paket, wir empfehlen, in einem späteren Schritt ein separates Paket mit Ihren eigenen benutzerdefinierten Startdateien zu erstellen.
  1. Zum Klonen der u-blox Repository zu Ihrem ROS 2-Arbeitsbereich (~/ros2_ws/src):
				
					cd ~/ros2_ws/src
git clone --branch ros2 https://github.com/KumarRobotics/ublox.git

				
			
  1. Einleiten Rosdep und laden Sie die neuesten Paketabhängigkeitsdefinitionen herunter.
				
					sudo rosdep init
rosdep update
				
			
Integration u-blox ZED-F9P RTK-Empfänger mit Korrekturen in ROS2
  1.  Bauen u-blox Knoten, kehren Sie zum Hauptarbeitsbereichsordner zurück und kompilieren Sie:
				
					cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build
source install/setup.bash

				
			
  1. Jetzt die u-blox Knoten ist in Ihrer ROS2-Umgebung verfügbar.
  2. Ändern Sie die Konfigurationsdatei, um Gerätepfade oder Parameter nach Bedarf zu aktualisieren (wir verwenden /dev/tty_Ardusimple). Das ublox_gps-Paket enthält eine Standardkonfigurationsdatei namens zed_f9p.yaml. Öffnen Sie die Konfigurationsdatei mit dem folgenden Befehl:
				
					nano ~/ros2_ws/src/ublox/ublox_gps/config/zed_f9p.yaml
				
			
  1. Ändern Sie die Konfigurationsdatei, um Gerätepfade oder Parameter nach Bedarf zu aktualisieren. In unserem Fall setzen Sie den Gerätepfad auf /dev/tty_Ardusimple.
  1. Um den Knoten mit dem zed_f9p.yaml Einstellungen, aktualisieren Sie die Startdatei. Öffnen Sie die Datei und fügen Sie die folgende Zeile hinzu, um die Konfiguration zu laden:
				
					nano ~/ros2_ws/src/ublox/ublox_gps/launch/ublox_gps_node-launch.py
				
			
  1. Erstellen Sie die Pakete neu. Wir empfehlen die Verwendung eines separates Paket für Ihre benutzerdefinierten Konfigurations- und Startdateien, um die Übersicht zu behalten. Wir werden diesen Ansatz später besprechen.
				
					cd ~/ros2_ws
colcon build
source install/setup.bash
				
			
Integration u-blox ZED-F9P RTK-Empfänger mit Korrekturen in ROS2
  1. Starten Sie den GPS-Knoten und testen Sie die Verbindung:
				
					ros2 launch ublox_gps ublox_gps_node-launch.py
				
			
  1. Wenn alles richtig konfiguriert ist, sollte der Knoten mit der Veröffentlichung von GPS-Daten beginnen. ArduSimple Empfänger.
  1. Um ein Anhalten des Knotens zu vermeiden, öffnen Sie ein neues Terminal und initialisieren Sie den Arbeitsbereich mit dem folgenden Befehl. Wenn dieser Knoten angehalten wird, u-blox Das Gerät wird seine Themen nicht mehr veröffentlichen oder seine Dienste bereitstellen.
				
					source ~/ros2_ws/install/setup.bash
				
			
  1. Führen Sie den folgenden Befehl aus, um verfügbare Themen anzuzeigen. Suchen Sie nach Themen wie /ublox_gps_node/fix, das GPS-Daten im sensor_msgs/NavSatFix-Format usw. enthält
				
					ros2 topic list
				
			
  1. Führen Sie den Befehl aus, um GPS-Daten in Echtzeit anzuzeigen. 
				
					ros2 topic echo /ublox_gps_node/fix
				
			
  1. Um den Stream zu stoppen, drücken Sie Ctrl + C.
  2. Zeigen Sie die Liste der vom Knoten bereitgestellten verfügbaren Dienste an.
				
					ros2 service list
				
			
  1. Jetzt haben Sie die u-blox ROS 2-Knoten führt Echtzeitdaten von Ihrem RTK-Empfänger aus und veröffentlicht sie.
    Wichtig:
    • Stoppen Sie nicht die u-blox Knoten. Dieser Knoten muss ausgeführt werden, bevor die Schritte zum Starten des NTRIP Client, da der Korrekturserver Live-GPS-Daten benötigt, um RTCM-Korrekturen zu berechnen und zu senden.
    • Der u-blox Der Knoten muss aktiv bleiben, um die GPS-Ausgabe mithilfe des ROS2-Themas Echo zu visualisieren, wie im vorherigen Schritt gezeigt.

Starten Sie Node auf ROS 2 zur Verwendung NTRIP Korrekturen

Wir werden das benutzen ntrip_client ROS2-Knoten zur Verbindung mit einem NTRIP Caster und empfangen RTCM-Korrekturen für eine genauere Positionierung. Dieser Knoten kann auch lokale NMEA Sätze bei Bedarf an einen Remote-Server. Nachfolgend finden Sie eine kurze Übersicht über die Einrichtung und den Test.
Hinweis: Stellen Sie sicher, dass der GPS-Verbindungsknoten bereits läuft, da dieser für die Übertragung von Korrekturdaten erforderlich ist.
  1. Navigieren Sie zum ROS2-Arbeitsbereichsverzeichnis und klonen Sie den ROS 2-Zweig.
				
					cd ~/ros2_ws/src
git clone --branch ros2 https://github.com/LORD-MicroStrain/ntrip_client.git
				
			
  1. Kehren Sie zum Arbeitsbereichsstamm zurück, installieren Sie alle fehlenden Abhängigkeiten und erstellen Sie das Paket
				
					cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build
source install/setup.bash
				
			
  1. Öffnen Sie die Datei ntrip_client_launch.py und scrollen Sie nach unten, um den Code zu finden, wo NTRIP Anmeldeinformationen sind festgelegt.
				
					nano ~/ros2_ws/src/ntrip_client/launch/ntrip_client_launch.py
				
			
  1. Aktualisierung NTRIP Parameter wie Host, Port, Benutzername, Passwort und Mountpoint und speichern Sie die Änderungen in der Datei.
				
					nano ~/ros2_ws/src/ntrip_client/launch/ntrip_client_launch.py
				
			
  1. Erstellen Sie die Pakete neu:
				
					cd ~/ros2_ws
colcon build
source ~/ros2_ws/install/setup.bash
				
			
  1. Starten Sie den Knoten mit Ihrem NTRIP Parameter zum Herstellen einer Verbindung zum NTRIP Caster:
				
					ros2 launch ntrip_client ntrip_client_launch.py
				
			
  1. Um das Schließen des Knotens zu vermeiden, öffnen Sie ein neues Terminal und initialisieren Sie den Arbeitsbereich.
    Hinweis: Wenn der Knoten gestoppt wird, u-blox Gerät empfängt keine Korrekturdaten mehr. Das u-blox Knoten muss laufen, bevor der NTRIP Client, da er die notwendigen GPS-Daten an den Korrekturserver liefert. Wenn der u-blox Wenn der Knoten gestoppt wird, veröffentlicht er die erforderlichen Themen und Dienste nicht mehr und der RTK-Empfänger empfängt keine Korrekturdaten mehr.
				
					source ~/ros2_ws/install/setup.bash
				
			
  1. Um das Schließen des Knotens zu vermeiden, öffnen Sie ein neues Terminal und initialisieren Sie den Arbeitsbereich.
    Hinweis: Wenn der Knoten gestoppt wird, u-blox Gerät empfängt keine Korrekturdaten mehr. Das u-blox Knoten muss laufen, bevor der NTRIP Client, da er die notwendigen GPS-Daten an den Korrekturserver liefert. Wenn der u-blox Wenn der Knoten gestoppt wird, veröffentlicht er die erforderlichen Themen und Dienste nicht mehr und der RTK-Empfänger empfängt keine Korrekturdaten mehr.
				
					source ~/ros2_ws/install/setup.bash
				
			
  1. Liste der verfügbaren Themen anzeigen. 
				
					ros2 topic list
				
			
  1. Wichtige Themen, die Ihnen möglicherweise begegnen:
    • /rtcm: Veröffentlicht RTCM-Korrekturdaten (je nach Konfiguration entweder mavros_msgs/RTCM oder rtcm_msgs/Message).
    • /nmea: Abonniert lokale NMEA-Sätze und leitet sie an den Server weiter.
    • /ublox_gps_node/fix: Kann auch globale Positionsdaten weiterleiten, wenn diese nicht bereits im NMEA-Format vorliegen.
  1. Wenn alles richtig und erfolgreich durchgeführt wurde, sehen Sie, dass der Knoten RTCM-Korrekturen auf dem /rtcm Thema. Verwenden ntrip_client Node, Sie können RTCM-Korrekturdaten in Ihr ROS 2-Projekt integrieren, um eine präzise Positionierung mit RTK-Empfänger zu ermöglichen.
				
					ros2 topic echo /rtcm
				
			
  1. Mit diesem Knoten können Sie RTCM-Korrekturdaten in Ihr ROS 2-Projekt integrieren, um eine präzise Positionierung mit RTK-Empfänger zu ermöglichen.

Erstellen eines kombinierten Startpakets

Wir erstellen ein dediziertes Paket, das eine einzelne Startdatei zum Ausführen enthält beide ublox_gps Knoten (Veröffentlichung von GPS-Daten) und der ntrip_client Knoten (zur Handhabung von RTK-Korrekturen) gleichzeitig. Dieser Ansatz hält Ihren Arbeitsbereich übersichtlich und erleichtert das Starten aller erforderlichen Knoten mit einem Befehl.

  1. Öffnen Sie ein neues Terminal, navigieren Sie zu Ihrem ROS2-Arbeitsbereich und erstellen Sie ein neues Paket. Führen Sie für ein Python-basiertes Start-Nanofile die folgenden Befehle aus:
				
					cd ~/ros2_ws/src
ros2 pkg create combined_rtk --build-type ament_python
				
			
  1. Erstellen Sie im neuen Paket ein Startverzeichnis und eine Python-Startdatei.
				
					mkdir -p combined_rtk/launch
nano ~/ros2_ws/src/combined_rtk/launch/combined_nodes.launch.py
				
			
  1. Kopieren Sie den Code aus dem folgenden Beispiel und fügen Sie ihn in die Datei ein. Der Code bewirkt Folgendes:
  • ublox_gps Knoten: Veröffentlicht GPS-Rohdaten von Ihrem ArduSimple Gerät.
  • ntrip_client Knoten: Verbindet sich mit dem NTRIP caster/server und veröffentlicht RTCM-Korrekturen auf /rtcm (und kann bei Bedarf auch /nmea oder /fix abonnieren).
  • Shebang (#!/usr/bin/env python3) – Stellt sicher, dass die Datei als Python-Skript ausgeführt wird.
  • Startbeschreibung – Definiert, welche Knoten gestartet werden sollen.
  • Knoten Parameter – Legt knotenspezifische Parameter fest (z. B. Gerät, Host, Port, Authentifizierung).
				
					from launch import LaunchDescription
from launch_ros.actions import Node
from launch.actions import SetEnvironmentVariable

def generate_launch_description():
    # ---------------------------------------------
    # Node configuration for ublox_gps
    # ---------------------------------------------
    ublox_node = Node(
        package='ublox_gps',                  # ROS 2 package containing the ublox GPS driver
        executable='ublox_gps_node',          # Executable name for the ublox GPS node
        name='ublox_gps_node',                # Name assigned to the node
        output='screen',                      # Output log to screen
        parameters=[{                         # Node parameters defined inline
            'debug': 0,                       # Debug level (0 = none)
            'device': '/dev/tty_Ardusimple',  # Serial port where GPS is connected
            'frame_id': 'gps',                # Frame ID to tag published GPS messages
            'uart1': {
                'baudrate': 9600              # Baudrate for UART1
            },
            'tmode3': 1,                      # Survey-in mode (TMODE3 = 1)
            'sv_in': {                        # Survey-in configuration
                'reset': True,                # Reset survey-in every startup
                'min_dur': 300,               # Minimum duration for survey-in (seconds)
                'acc_lim': 3.0                # Accuracy limit for survey-in (meters)
            },
            'inf': {
                'all': True                   # Enable all INF messages on console
            },
            'publish': {
                'all': True,                  # Publish all available messages
                'aid': {
                    'hui': False              # Do not publish aiding HUI messages
                },
                'nav': {
                    'posecef': False          # Do not publish NAV-POSECEF messages
                }
            }
        }]
    )

    # ---------------------------------------------
    # Environment variable to control NTRIP client debug
    # ---------------------------------------------
    set_debug_env = SetEnvironmentVariable(
        name='NTRIP_CLIENT_DEBUG',  # Name of the environment variable
        value='false'               # Disable debug output
    )

    # ---------------------------------------------
    # Node configuration for NTRIP client
    # ---------------------------------------------
    ntrip_node = Node(
        package='ntrip_client',              # ROS 2 package containing the NTRIP client
        executable='ntrip_ros.py',           # Python script for the NTRIP client
        name='ntrip_client',                 # Name assigned to the node
        output='screen',                     # Output log to screen
        parameters=[{                        # Parameters required for NTRIP connection
            'host': 'ppntrip.services.u-blox.com',  # NTRIP caster hostname
            'port': 2101,                            # NTRIP port (integer)
            'mountpoint': 'NEAR-RTCM',               # Mountpoint on the NTRIP caster
            'ntrip_version': 'None',                 # Optional NTRIP version
            'authenticate': True,                    # Use authentication (username/password)
            'username': user',  # Auth username
            'password': 'password',              # Auth password
            'ssl': False,                            # SSL not used
            'cert': 'None',                          # No client certificate
            'key': 'None',                           # No client key
            'ca_cert': 'None',                       # No custom CA certificate
            'rtcm_frame_id': 'odom',                 # Frame ID for published RTCM messages
            'nmea_max_length': 128,                  # Max NMEA sentence length
            'nmea_min_length': 3,                    # Min NMEA sentence length
            'rtcm_message_package': 'rtcm_msgs',     # Use the rtcm_msgs message format
            'reconnect_attempt_max': 10,             # Max reconnect attempts before giving up
            'reconnect_attempt_wait_seconds': 5,     # Wait time between reconnects
            'rtcm_timeout_seconds': 4                # Max time without RTCM before reconnect
        }],
        remappings=[
            ('/fix', '/ublox_gps_node/fix')  # Remap /fix topic to /ublox_gps_node/fix
        ]
    )

    # Return the full launch description with all configured actions
    return LaunchDescription([
        set_debug_env,  # Set environment variable for NTRIP debug
        ublox_node,     # Launch ublox GPS node
        ntrip_node      # Launch NTRIP client node
    ])

				
			
  1. Bearbeiten Sie die Datei, indem Sie Ihre NTRIP Anmeldeinformationen (Host, Post, Benutzername, Passwort, Mountpunkt) und speichern Sie die Datei.
  1. Öffne package.xml.
				
					cd ~/ros2_ws/src/combined_rtk/
nano package.xml
				
			
  1. Stellen Sie sicher, dass Sie Abhängigkeiten wie ublox_gps, ntrip_client, launch_ros usw. in Ihrem package.xml. Wenn Sie sie nicht haben, kopieren Sie sie aus dem folgenden Code und fügen Sie sie in die Datei ein.
				
					<exec_depend>ublox_gps</exec_depend>
<exec_depend>ntrip_client</exec_depend>
<exec_depend>launch_ros</exec_depend>
				
			
  1. Öffne setup.py.
				
					nano  ~/ros2_ws/src/combined_rtk/setup.py
				
			
  1. Kopieren Sie den untenstehenden Code und fügen Sie ihn in das setup.py Datei, um Startdateien und Abhängigkeiten einzuschließen. Schließen Sie die Datei und speichern Sie die Änderungen.
				
					import os
import glob

from setuptools import find_packages, setup

package_name = 'combined_rtk'

setup(
    name=package_name,
    version='0.0.0',
    packages=find_packages(exclude=['test']),
    data_files=[
        ('share/ament_index/resource_index/packages',
            ['resource/' + package_name]),
        ('share/' + package_name, ['package.xml']),
        (os.path.join('share', package_name), ['package.xml', *glob.glob('launch/*')]),
    ],
    install_requires=['setuptools'],
    zip_safe=True,
    maintainer='jmnavarrete',
    maintainer_email='jmnavarrete@todo.todo',
    description='TODO: Package description',
    license='TODO: License declaration',
    tests_require=['pytest'],
    entry_points={
        'console_scripts': [
        ],
    },
)

				
			
  1. Machen Sie die Startdatei ausführbar.
				
					cd ~/ros2_ws/src
chmod +x combined_rtk/launch/combined_nodes.launch.py
				
			
  1. Kehren Sie zum Stammverzeichnis Ihres Arbeitsbereichs zurück, erstellen Sie Ihr neues Paket und beziehen Sie die Setup-Datei:
				
					cd ~/ros2_ws
colcon build
source install/setup.bash

				
			
  1. Starten Sie sowohl ublox_gps und ntrip_client Knoten mit einem Befehl:
				
					ros2 launch combined_rtk combined_nodes.launch.py
				
			
  1. Sie sollten in Ihrem Terminal Protokolle von beiden Knoten sehen, die Folgendes anzeigen:
    • ublox_gps liest GPS-Daten vom angegebenen Gerät (z. B. /dev/tty_Ardusimple).
    • ntrip_client ist mit deinem verbunden NTRIP Server und Veröffentlichung von RTCM-Korrekturen auf /rtcm (und möglicherweise Abonnement von /nmea, falls konfiguriert).
    Hinweis: Bei Verwendung dieser Startdatei ist es nicht notwendig, die u-blox und NTRIP Knoten separat – beim Start werden beide Knoten automatisch gestartet. Schließen Sie dieses Startterminal nicht, wenn Sie die von diesen Knoten bereitgestellten Themen oder Dienste überprüfen möchten.
  1. Um mit den gestarteten Knoten zu interagieren, stoppen Sie den Stream nicht. Öffnen Sie ein neues Terminal und initialisieren Sie den Arbeitsbereich.
				
					source ~/ros2_ws/install/setup.bash
				
			
  1. Um Themen, Dienste und Gerätestatus zu überprüfen, öffnen Sie ein neues Terminal und initialisieren Sie:
				
					source install/setup.bash
				
			
  1. Siehe die Themenliste. 
				
					ros2 topic list
				
			
  1. Sie werden sehen können /ublox_gps_node/fix, /rtcm, oder andere.
  1. Siehe Echo der GPS-Daten.
				
					ros2 topic echo /ublox_gps_node/fix
				
			
  1. Hier werden GPS-Daten in Echtzeit angezeigt. Um den Stream zu stoppen, drücken Sie Ctrl + C.
  1. Der ublox_gps Node veröffentlicht Diagnosen zu einem Thema wie /Diagnose. So prüfen Sie Diagnoseinformationen:
				
					ros2 topic echo /diagnostics
				
			
  1. Es enthält Statusmeldungen wie horizontale Genauigkeit, vertikale Genauigkeit und „3D-Fix“, wenn der Empfänger eine gültige Position hat, oder „Fix nicht ok“, wenn das GPS noch nicht richtig fixiert ist.

  1. Wichtige Tipps zum Überprüfen des Fixstatus:
    • Überwachen /ublox_gps_node/fix in NavSatFix-Nachrichten (Feld „status.status“) oder Diagnosenachrichten für detailliertere textbasierte Status.
    • Der /Diagnose Das Thema bietet oft eine lesbare Zusammenfassung wie „3D-Fix“.
    • Wasser /ublox/navpvt um detaillierte Informationen zu erhalten:
      • Das Feld „fix_type“ sollte für 3D-Fix 3 sein.
      • Das Flag-Feld sollte anzeigen, dass Korrekturen verwendet werden.
      • Das Feld „flags2“ enthält den RTK-Status: 67 RTK Float, 128 RTK Fix. Ist der Wert deutlich niedriger, bedeutet dies wahrscheinlich, dass keine RTK-Korrekturen angewendet werden.
    • Stellen Sie sicher, dass Ihre Antenne freie Sicht auf den Himmel und Ihre NTRIP caster Die Anmeldeinformationen sind korrekt, um einen stabilen RTK-Fix zu erreichen.

Wenn Sie diesem Tutorial folgen möchten, haben wir alle Produkte auf Lager und 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