Aktualizacja (11 / 08 / 2026): Posiadamy duży zapas wszystkich naszych produktów, znajdziesz nas również w oraz    Jak uzyskać wycenę

Jak integrować u-blox ZED-F9P Odbiornik GNSS/RTK do ROS 2 (Jazzy)

integracja u-blox ZED-F9P Odbiornik GNSS/RTK do ROS 2 Jazzy
integracja u-blox ZED-F9P Odbiornik GNSS/RTK do ROS 2 Jazzy

W tym samouczku wyjaśniono, jak zintegrować u-blox ZED-F9P Odbiornik RTK GNSS z robotem obsługującym ROS 2 (Jazzy). Dowiesz się, jak podłączyć sprzęt, skonfigurować odbiornik, skonfigurować przestrzeń roboczą ROS 2 i uruchomić niezbędne węzły, aby odbierać i przetwarzać precyzyjne dane GPS z poprawkami RTK za pośrednictwem NTRIP service.

Do końca tego przewodnika będziesz mieć w pełni funkcjonalną konfigurację ROS 2, która umożliwia strumieniowe przesyłanie danych RTK w czasie rzeczywistym z odbiornika RTK na podstawie u-blox ZED-F9P—nadaje się do zastosowań robotyki wymagających dokładności pozycjonowania na poziomie centymetrów.

Wymagany sprzęt:

Wymagane oprogramowanie:

  • Ubuntu 24.04 (instalowany natywnie, na maszynie wirtualnej lub za pośrednictwem WSL)
  • ROS 2 (Jazzowy) (zainstalowano na platformie Ubuntu)

Przydatne zasoby

  1. Przydatne zasoby do instalacji Ubuntu:
  2. Korzystanie z WSL lub maszyn wirtualnych: Jeśli chcesz używać WSL lub maszyn wirtualnych, konieczne jest udostępnienie odbiornika RTK z Ubuntu. Istnieją instrukcje, jak udostępnić go systemowi:
  3. NTRIP Dostęp do usług: Upewnij się, że masz dostęp i uprawnienia do NTRIP usługa. Potrzebujesz pomocy w znalezieniu usługi korekcyjnej, zapoznaj się z naszą Lista NTRIP usługi korekcyjne w Twoim kraju.
  4. Konfiguracja odbiornika RTK: Upewnij się, że odbiornik RTK jest skonfigurowany jako Rover. Jeśli potrzebujesz pomocy w konfiguracji u-blox ZED-F9P jak Rover, zapoznaj się z naszymi ZED-F9P Pliki konfiguracyjne.

Jak skonfigurować u-blox ZED-F9P Odbiornik RTK z ROS 2?

Konfiguracja środowiska ROS 2

  1. Po zainstalowaniu środowiska ROS 2 zgodnie z poniższą instrukcją Instrukcja instalacji ROS2, domyślnie nie jest aktywny po otwarciu terminala.
    Aby rozwiązać ten problem, otwórz terminal i uruchom następujące polecenie, aby skonfigurować system Ubuntu tak, aby automatycznie ładował środowisko ROS 2 do konfiguracji startowej terminala.
    
     echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
    
   
  1. Aby zastosować zmiany, użyj poniższego polecenia. Po tym ROS 2 będzie gotowy do użycia za każdym razem, gdy otworzysz Terminal.

    
     source ~/.bashrc
    
   
  1. Aby zarządzać zależnościami w systemie ROS 2, zaktualizuj listę pakietów i zainstaluj narzędzia ros-dev, Która obejmuje rosdep i inne przydatne narzędzia programistyczne dla ROS 2.
    
     sudo apt update && sudo apt install ros-dev-tools
    
   

Podłącz odbiornik RTK

  1. Podłącz antenę RTK do odbiornika. Umieść antenę w miejscu z dobrym widokiem na niebo lub w pobliżu okna, aby przetestować jej funkcjonalność.
  2. Podłącz odbiornik do komputera za pomocą portu USB oznaczonego jako „POWER+GPS".
  3. Odbiornik powinien zostać automatycznie skonfigurowany. Aby to sprawdzić, otwórz Terminal i wpisz polecenie. Powinieneś zobaczyć / dev / ttyACM0 (lub podobne urządzenie, np. / dev / ttyACM1).
    
     ls /dev/ttyACM*
    
   
integracja u-blox ZED-F9P odbiornik rtk z poprawkami do ROS2 ttyACM
  1. Aby sprawdzić strumień GPS z odbiornika RTK, uruchom polecenie w terminalu. Pokazuje ono surowe dane GPS przesyłane strumieniowo z odbiornika. Naciśnij Ctrl + C zatrzymać.
    
     sudo cat /dev/ttyACM0
    
   
  1. Wskazówka: Jeśli nie widzisz żadnego wyniku lub brakuje urządzenia, upewnij się, że Twój użytkownik ma odpowiednie uprawnienia (np. jest w grupie dialout). Możesz dodać siebie za pomocą poniższego polecenia. Następnie wyloguj się i zaloguj ponownie, aby zmiany zostały zastosowane.
    
     sudo usermod -a -G dialout $USER
    
   
  1. Aby zapobiec uruchomieniu odbiornika RTK w innym „ttyACM*” za każdym razem, gdy jest zasilany, utwórz reguła udev (link dynamiczny) tworzący wpis o określonej nazwie poprzez dodanie następującego pliku przed podłączeniem odbiornika RTK.
    
     sudo nano /etc/udev/rules.d/50-ardusimple.rules
    
   
  1. Wprowadź następujący tekst do reguły:
    
     KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
    
   
  1. Naciśnij przycisk Ctrl + X aby wyjść z pliku i naciśnij Y aby zapisać zmodyfikowany bufor.
  2. Odłącz odbiornik RTK (wyłącz zasilanie) i podłącz go ponownie (zasilanie).
  3. Teraz, gdy podłączony zostanie odbiornik RTK, będzie on dostępny z poziomu „/dev/tty_Ardusimple” link. Aby to sprawdzić, wprowadź polecenia:
    
     sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
    
   
  1. Teraz możesz to zobaczyć „tty_ArduSimple" został stworzony.

Przygotuj nową przestrzeń roboczą ROS 2 dla projektu

  1. Aby utworzyć katalog obszaru roboczego, otwórz terminal i utwórz folder (na przykład ros2_ws) z src podfolder:
    
     mkdir -p ~/ros2_ws/src
    
   
  1. Przejdź do swojego obszaru roboczego.
    
     cd ~/ros2_ws
    
   
  1. Aby utworzyć obszar roboczy, użyj kolkon aby zbudować wszystkie pakiety wewnątrz src:
    
     colcon build
    
   
  1. Podaj plik instalacyjny, aby powłoka mogła rozpoznać nowo skompilowane pakiety:
    
     source install/setup.bash
    
   
  1. Dodaj to polecenie do pliku ~/.bashrc (lub podobnego), aby źródło było pobierane automatycznie za każdym razem, gdy otworzysz nowy terminal.
    
     echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
    
   
integracja u-blox ZED-F9P odbiornik rtk z poprawkami do ROS2 tworzy obszar roboczy
  1. Teraz masz podstawową przestrzeń roboczą ROS2 skonfigurowaną do dalszego rozwoju i integracji z ArduSimple RTK-u

Uruchom węzeł w systemie ROS 2, aby połączyć się z odbiornikiem RTK

W tej sekcji pobierzemy i zbudujemy u-blox Węzeł ROS 2, a następnie uruchom szybki test, aby potwierdzić, czy może się z Tobą komunikować ArduSimple Urządzenie RTK. Podczas gdy pokażemy modyfikowanie pliku startowego bezpośrednio w u-blox pakietu, zalecamy utworzenie w późniejszym kroku osobnego pakietu z własnymi plikami uruchomieniowymi.
  1. Aby sklonować u-blox repozytorium do obszaru roboczego ROS 2 (~/ros2_ws/src):
    
     cd ~/ros2_ws/src
git clone --branch ros2 https://github.com/KumarRobotics/ublox.git

    
   
  1. Inicjować rosdep i pobierz najnowsze definicje zależności pakietów.
    
     sudo rosdep init
rosdep update
    
   
integracja u-blox ZED-F9P odbiornik rtk z poprawkami do ROS2 inicjuje rosdep
  1.  Budować u-blox Węzeł, wróć do głównego folderu roboczego i skompiluj:
    
     cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build
source install/setup.bash

    
   
  1. Teraz u-blox Węzeł jest dostępny w środowisku ROS2.
  2. Zmodyfikuj plik konfiguracyjny, aby zaktualizować ścieżki lub parametry urządzeń w razie potrzeby (będziemy używać /dev/tty_Ardusimple). Pakiet ublox_gps zawiera domyślny plik konfiguracyjny o nazwie zed_f9pPlik yaml. Otwórz plik konfiguracyjny za pomocą polecenia:
    
     nano ~/ros2_ws/src/ublox/ublox_gps/config/zed_f9p.yaml
    
   
  1. Zmodyfikuj plik konfiguracyjny, aby zaktualizować ścieżki urządzeń lub parametry w razie potrzeby. W naszym przypadku ustaw ścieżkę urządzenia na /dev/tty_Ardusimple.
  1. Aby skonfigurować węzeł za pomocą zed_f9pPlik yaml ustawienia, zaktualizuj plik startowy. Otwórz plik i dodaj następujący wiersz, aby załadować konfigurację:
    
     nano ~/ros2_ws/src/ublox/ublox_gps/launch/ublox_gps_node-launch.py
    
   
  1. Odbuduj pakiety. Zalecamy użycie oddzielny pakiet dla twoich niestandardowych plików konfiguracyjnych i uruchomieniowych, aby zachować porządek. Omówimy to podejście później.
    
     cd ~/ros2_ws
colcon build
source install/setup.bash
    
   
integracja u-blox ZED-F9P odbiornik rtk z poprawkami do przebudowy ROS2 Jazzy
  1. Uruchom węzeł GPS i przetestuj połączenie:
    
     ros2 launch ublox_gps ublox_gps_node-launch.py
    
   
  1. Jeżeli wszystko jest skonfigurowane poprawnie, węzeł powinien rozpocząć publikowanie danych GPS z ArduSimple odbiornik.
  1. Aby uniknąć zatrzymania węzła, otwórz nowy terminal i zainicjuj obszar roboczy za pomocą poniższego polecenia. Jeśli ten węzeł zostanie zatrzymany, u-blox Urządzenie nie będzie już publikować swoich tematów i świadczyć usług.
    
     source ~/ros2_ws/install/setup.bash
    
   
  1. Uruchom następujące polecenie, aby wyświetlić dostępne tematy. Poszukaj tematów takich jak /ublox_gps_node/napraw, który zawiera dane GPS w formacie sensor_msgs/NavSatFix itp.
    
     ros2 topic list
    
   
  1. Uruchom polecenie, aby zobaczyć dane GPS w czasie rzeczywistym. 
    
     ros2 topic echo /ublox_gps_node/fix
    
   
  1. Aby zatrzymać strumień, naciśnij Ctrl + C.
  2. Wyświetl listę dostępnych usług świadczonych przez Node.
    
     ros2 service list
    
   
  1. Teraz masz u-blox Węzeł ROS 2 uruchamia się i publikuje dane w czasie rzeczywistym z odbiornika RTK.
    Ważne:
    • Nie zatrzymuj się u-blox węzeł. Ten węzeł musi być uruchomiony przed wykonaniem następujących kroków uruchamiania NTRIP klienta, ponieważ serwer korekcyjny potrzebuje bieżących danych GPS do obliczania i wysyłania poprawek RTCM.
    • u-blox węzeł musi pozostać aktywny, aby wizualizować dane wyjściowe GPS za pomocą echa tematu ros2, jak pokazano w poprzednim kroku.

Uruchom węzeł w systemie ROS 2, aby go używać NTRIP Korekty

Użyjemy klient ntrip Węzeł ROS2 do połączenia z NTRIP Caster i odbierać poprawki RTCM w celu dokładniejszego pozycjonowania. W razie potrzeby ten węzeł może również przekazywać lokalne zdania NMEA do zdalnego serwera. Poniżej znajduje się krótki opis konfiguracji i testowania.
Uwaga: Upewnij się, że węzeł połączenia GPS jest już uruchomiony, ponieważ jest on wymagany do przesyłania danych korekcyjnych.
  1. Przejdź do katalogu obszaru roboczego ROS2 i sklonuj gałąź ROS 2.
    
     cd ~/ros2_ws/src
git clone --branch ros2 https://github.com/LORD-MicroStrain/ntrip_client.git
    
   
  1. Wróć do katalogu głównego obszaru roboczego, zainstaluj wszystkie brakujące zależności i zbuduj pakiet
    
     cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build
source install/setup.bash
    
   
  1. Otwórz plik ntrip_client_launch.py i przewiń w dół, aby znaleźć kod, gdzie NTRIP dane uwierzytelniające są ustawione.
    
     nano ~/ros2_ws/src/ntrip_client/launch/ntrip_client_launch.py
    
   
  1. Aktualizacja NTRIP parametry takie jak host, port, nazwa użytkownika, hasło i punkt montowania, a następnie zapisz zmiany w pliku.
    
     nano ~/ros2_ws/src/ntrip_client/launch/ntrip_client_launch.py
    
   
  1. Odbuduj pakiety:
    
     cd ~/ros2_ws
colcon build
source ~/ros2_ws/install/setup.bash
    
   
  1. Uruchom Node za pomocą NTRIP parametry umożliwiające nawiązanie połączenia z NTRIP Caster:
    
     ros2 launch ntrip_client ntrip_client_launch.py
    
   
  1. Aby uniknąć zamknięcia węzła, otwórz nowy terminal i zainicjuj obszar roboczy.
    Uwaga: Jeżeli węzeł jest zatrzymany, u-blox urządzenie przestanie odbierać dane korekcyjne. u-blox węzeł musi być uruchomiony przed uruchomieniem NTRIP klient, ponieważ dostarcza niezbędne dane GPS do serwera korekcyjnego. Jeśli u-blox węzeł zostanie zatrzymany, nie będzie już publikował wymaganych tematów i usług, a odbiornik rtk przestanie odbierać dane korekcyjne.
    
     source ~/ros2_ws/install/setup.bash
    
   
  1. Aby uniknąć zamknięcia węzła, otwórz nowy terminal i zainicjuj obszar roboczy.
    Uwaga: Jeżeli węzeł jest zatrzymany, u-blox urządzenie przestanie odbierać dane korekcyjne. u-blox węzeł musi być uruchomiony przed uruchomieniem NTRIP klient, ponieważ dostarcza niezbędne dane GPS do serwera korekcyjnego. Jeśli u-blox węzeł zostanie zatrzymany, nie będzie już publikował wymaganych tematów i usług, a odbiornik rtk przestanie odbierać dane korekcyjne.
    
     source ~/ros2_ws/install/setup.bash
    
   
  1. Zobacz listę dostępnych tematów. 
    
     ros2 topic list
    
   
  1. Najważniejsze tematy, które możesz zobaczyć:
    • /rtcm: Publikuje dane korekcyjne RTCM (mavros_msgs/RTCM lub rtcm_msgs/Message, w zależności od konfiguracji).
    • /nmea: Subskrybuje lokalne zdania NMEA i przesyła je do serwera.
    • /ublox_gps_node/napraw:Można również przekazywać dane o położeniu globalnym, jeśli nie są już w formacie NMEA.
  1. Jeśli wszystko zostanie wykonane poprawnie i zakończy się sukcesem, zobaczysz, że węzeł opublikował poprawki RTCM na /rtcm temat. Używanie klient ntrip Węzeł, możesz zintegrować dane korekcyjne RTCM ze swoim projektem ROS 2, aby umożliwić precyzyjne pozycjonowanie za pomocą odbiornika RTK.
    
     ros2 topic echo /rtcm
    
   
  1. Używając tego węzła możesz zintegrować dane korekcyjne RTCM z projektem ROS 2, aby umożliwić precyzyjne pozycjonowanie za pomocą odbiornika RTK.

Tworzenie połączonego pakietu startowego

Utworzymy dedykowany pakiet zawierający pojedynczy plik startowy do uruchomienia obie dotychczasowy ublox_gps węzeł (publikujący dane GPS) i klient ntrip węzeł (obsługujący poprawki RTK) jednocześnie. Takie podejście utrzymuje porządek w miejscu pracy i ułatwia uruchamianie wszystkich wymaganych węzłów za pomocą jednego polecenia.

  1. Otwórz nowy terminal, przejdź do obszaru roboczego ROS2 i utwórz nowy pakiet. W przypadku pliku nano uruchomieniowego opartego na Pythonie uruchom polecenia:
    
     cd ~/ros2_ws/src
ros2 pkg create combined_rtk --build-type ament_python
    
   
  1. Utwórz katalog startowy i plik startowy Pythona wewnątrz nowego pakietu.
    
     mkdir -p combined_rtk/launch
nano ~/ros2_ws/src/combined_rtk/launch/combined_nodes.launch.py
    
   
  1. Skopiuj kod z poniższego przykładu i wklej go do pliku. Kod wykonuje:
  • ublox_gps Węzeł: Publikuje surowe dane GPS z Twojego ArduSimple urządzeń.
  • klient ntrip Węzeł: Łączy się z NTRIP caster/serwer i publikuje poprawki RTCM na /rtcm (i możesz także zasubskrybować /nmea lub /fix, jeśli zajdzie taka potrzeba).
  • Szermierka (#!/usr/bin/env python3) – Zapewnia, że ​​plik zostanie uruchomiony jako skrypt Pythona.
  • Opis uruchomienia – Definiuje, które węzły mają zostać uruchomione.
  • Node parametry – Ustawia parametry specyficzne dla węzła (np. urządzenie, host, port, uwierzytelnianie).
    
     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. Edytuj plik, wstawiając swój NTRIP dane uwierzytelniające (host, adres, nazwa użytkownika, hasło, punkt montowania) i zapisz plik.
  1. Otwarte pakiet.xml.
    
     cd ~/ros2_ws/src/combined_rtk/
nano package.xml
    
   
  1. Upewnij się, że masz w swoim systemie zależności takie jak ublox_gps, ntrip_client, launch_ros itp. pakiet.xml. Jeżeli ich nie posiadasz, skopiuj je z poniższego kodu i wklej do pliku.
    
     <exec_depend>ublox_gps</exec_depend>
<exec_depend>ntrip_client</exec_depend>
<exec_depend>launch_ros</exec_depend>
    
   
  1. Otwarte konfiguracja.py.
    
     nano  ~/ros2_ws/src/combined_rtk/setup.py
    
   
  1. Skopiuj poniższy kod i wklej go do konfiguracja.py plik, aby uwzględnić pliki startowe i zależności. Zamknij plik i zapisz zmiany.
    
     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. Ustaw plik startowy jako wykonywalny.
    
     cd ~/ros2_ws/src
chmod +x combined_rtk/launch/combined_nodes.launch.py
    
   
  1. Wróć do katalogu głównego obszaru roboczego, zbuduj nowy pakiet i utwórz plik instalacyjny:
    
     cd ~/ros2_ws
colcon build
source install/setup.bash

    
   
  1. Uruchom oba ublox_gps oraz klient ntrip Węzły z jednym poleceniem:
    
     ros2 launch combined_rtk combined_nodes.launch.py
    
   
  1. W terminalu powinny zostać wyświetlone logi z obu węzłów, wskazujące, że:
    • ublox_gps odczytuje dane GPS z określonego urządzenia (np. /dev/tty_Ardusimple).
    • klient ntrip jest połączony z Twoim NTRIP serwera i publikowania poprawek RTCM w katalogu /rtcm (oraz ewentualnego subskrybowania katalogu /nmea, jeśli jest skonfigurowany).
    Uwaga: Podczas korzystania z tego pliku startowego nie jest konieczne ręczne uruchamianie u-blox oraz NTRIP Węzły oddzielnie — uruchomienie automatycznie uruchomi oba węzły. Nie zamykaj tego terminala uruchamiania, jeśli chcesz sprawdzić tematy lub usługi udostępniane przez te węzły.
  1. Aby wchodzić w interakcję z uruchomionymi węzłami, nie zatrzymuj strumienia. Otwórz nowy terminal i zainicjuj obszar roboczy.
    
     source ~/ros2_ws/install/setup.bash
    
   
  1. Aby sprawdzić tematy, usługi, stan urządzenia, otwórz nowy terminal i zainicjuj:
    
     source install/setup.bash
    
   
  1. Zobacz listę tematów. 
    
     ros2 topic list
    
   
  1. Będziesz mógł zobaczyć /ublox_gps_node/napraw, /rtcmlub inne.
  1. Zobacz Echo danych GPS.
    
     ros2 topic echo /ublox_gps_node/fix
    
   
  1. Pokazuje dane GPS w czasie rzeczywistym. Aby zatrzymać transmisję, naciśnij Ctrl + C.
  1. ublox_gps Node publikuje diagnostykę na temat taki jak /diagnostyka. Aby sprawdzić informacje diagnostyczne:
    
     ros2 topic echo /diagnostics
    
   
  1. Zawiera komunikaty o stanie, takie jak dokładność pozioma, dokładność pionowa i „naprawa 3D”, gdy odbiornik ma prawidłową pozycję, lub „naprawa nieprawidłowa”, gdy GPS nie został jeszcze prawidłowo ustalony.

  1. Kluczowe wskazówki dotyczące sprawdzania statusu naprawy:
    • Monitorowanie /ublox_gps_node/napraw w komunikatach NavSatFix (pole status.status) lub komunikatach diagnostycznych, w celu uzyskania bardziej szczegółowych informacji o statusie w formie tekstowej.
    • /diagnostyka temat często zawiera czytelne podsumowanie, np. „naprawa 3D”.
    • Zastosowanie /ublox/navpvt Aby uzyskać szczegółowe informacje:
      • Pole fix_type powinno mieć wartość 3 w przypadku poprawki 3D.
      • Pole flag powinno wskazywać, że poprawki są stosowane.
      • Pole flags2 zawiera status RTK: 67 RTK Float, 128 RTK Fix. Jeśli wartość jest znacznie niższa, prawdopodobnie oznacza to, że nie są stosowane żadne poprawki RTK.
    • Upewnij się, że antena ma czysty widok na niebo i Twój NTRIP caster dane uwierzytelniające są poprawne, aby uzyskać stabilną poprawkę RTK.
  1. Na koniec chcesz zintegrować jednocześnie dane GPS i poprawki RTCM. Aby to zrobić, musisz mieć oba węzły działają jednocześnie. Oto jak to działa:

    • węzeł ublox_gps

      • Publikuje surowe poprawki GNSS na /fix temat.

      • Udostępnia interfejs (tzw. rtcm_input parametr), dzięki czemu przychodzące wiadomości RTCM mogą być wysyłane do u-blox urządzenie przez ROS 2.

    • węzeł ntrip_client

      • Łączy się z Twoim NTRIP caster i publikuje komunikaty korygujące RTCM na /rtcm temat.

      • Następnie te wiadomości muszą zostać przekazane do u-blox odbiornik przez /rtcmrtcm_input.

    Chociaż samouczek wyjaśnia każdy krok osobno, aby pokazać, jak uruchomić każdy węzeł i sprawdzić, czy dane są publikowane, nie automatycznie je ze sobą połączyć. W praktyce należy uruchomić oba stosy jednocześnie, na przykład:

    # Terminal 1: uruchom sterownik ublox
    ros2 uruchomienie ublox_gps ublox_gps_node-launch.py

    # Terminal 2: uruchom NTRIP klient
    ros2 uruchamia ntrip_client ntrip_client-launch.py

    W ten sposób poprawki RTCM napływają /rtcm są natychmiast odbierane przez sterownik ublox i wysyłane do ZED-F9P urządzenie, które z kolei opublikuje prawdziwy sygnał skorygowany o RTK /fix.

Jeśli dotarłeś aż tutaj, gratulacje! To prawdopodobnie jeden z naszych najdłuższych poradników 🙂

Jeśli chcesz skorzystać z tego samouczka, wszystkie produkty mamy w magazynie i gotowe do wysyłki:

Asystent RTK

Znajdź najlepsze produkty dla swoich potrzeb, odpowiadając na zaledwie kilka pytań.

Jeśli podobały Ci się te treści, możesz nas śledzić Twitter, YouTube, Facebook or LinkedIn aby być na bieżąco z takimi treściami.

Masz pytania lub prośby?
Skontaktuj się z nami! Odpowiemy <24 godziny!

Kontakt ArduSimple
Zamknij

Uzyskaj dostęp do swojego konta i zamówień

Or

Jesteś nowym klientem? Utwórz swoje konto
ArduSimple – sprzęt i rozwiązania do pomiarów RTK o wysokiej precyzji w prosty sposób

Chcesz dowiedzieć się więcej o GPS i RTK?

Jeśli jesteś w tej chwili zajęty, nasi inżynierowie mogą wysłać Ci 3 krótkie wiadomości e-mail, w których wyjaśnią wszystko, co musisz wiedzieć, aby rozpocząć swój projekt.