Aktualizace (02 / 12 / 2024): Všech našich produktů máme dostatek skladem, najdete nás také v a    Zobrazit kolekci

Jak používat ArduSimple RTK přijímače a získat GPS data v ROS

V tomto tutoriálu vysvětlíme, jak používat ArduSimple RTK přijímače pro získání přesných dat o poloze v ROS. Provedeme vás kroky k integraci ArduSimple RTK přijímač do vašeho projektu ROS, což vám umožní využít sílu přesnosti GPS data.

Ať už jste nadšenec do robotiky, výzkumník nebo vývojář, tento tutoriál vám poskytne kroky pro přístup k datům o poloze ve vašich aplikacích ROS.

Pokud jste v ROS noví, připravili jsme krátký tnávod, který vám pomůže začít s ROS dozvědět se více o klíčových pojmech ROS, jakou platformu a vývojové prostředí je lepší zvolit atd.

Požadovaný hardware:

Požadovaný software:

  • Ubuntu 18 nebo 20 (v tomto tutoriálu používáme ubuntu 20) nainstalovaný nativně na PC 
  • ROS (používáme ROS Noetic).

Jak používat ArduSimple RTK přijímače a získat data GPS v ROS?

Nejprve připojte a nakonfigurujte přijímač RTK v Ubuntu.

  1. Připojte RTK anténa tvému přijímač. Místo anténa na místě s dobrým výhledem na oblohu nebo v blízkosti okna pro testování funkčnosti.
  2. Připojte svůj přijímač k PC přes USB port označený „POWER+GPS. "
  3. Váš přijímač by měl být nakonfigurován automaticky. Chcete-li to ověřit, otevřete terminál a napište příkaz:
				
					ls /dev/tty*
				
			
  • Uvidíte „/dev/ttyACM0“ byla vytvořena automaticky.
  1. Chcete-li ověřit stream z vašeho RTK přijímač, použijte příkaz:
				
					sudo cat /dev/ttyACM0
				
			
  • Vstupní tok GPS se zobrazuje podobně jako níže:
  • Stisknout Ctrl + C zrušit sledování streamu.
  1. Aby se zabránilo RTK přijímač od začátku v jiném“ttyACM*” pokaždé, když je zapnuto, vytvořte pravidlo udev (dynamický odkaz), které vytvoří položku se specifickým názvem přidáním následujícího souboru před připojením RTK přijímač.
				
					sudo nano /etc/udev/rules.d/50-ardusimple.rules
				
			
  1. Do pravidla zadejte následující text:
				
					KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
				
			
  1. Stisknout Ctrl + X pro ukončení souboru a stiskněte Y pro uložení upravené vyrovnávací paměti.
  2. Nyní, kdykoli an RTK přijímač je připojen, bude přístupný z “/dev/tty_Ardusimple" odkaz. Chcete-li to zkontrolovat, odpojte RTK přijímač (vypnout a znovu zapnout) a zadat příkazy:
				
					sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
				
			
  1. Nyní to vidíte "tty_ArduSimple" byl vytvořen.
  1. Abyste mohli používat program U-center v Ubuntu, nainstalujte si Wine. Jedná se o sbírku linuxových knihoven, které umožňují mnoha aplikacím Windows běžet na linuxových distribucích (mimo jiné na Ubuntu).
    Díky tomu není software U-center plně kompatibilní, ale lze jej použít v případě, že chcete zkontrolovat stav nebo konfiguraci vašeho RTK přijímač.
    Chcete-li nainstalovat Wine (instalace může trvat 2-3 minuty), použijte příkaz:
				
					sudo apt install wine64  //if Ubuntu is installed natively
sudo apt install wine32  //if you run Ubuntu on a virtual machine

				
			
  1. Jakmile je Wine nainstalováno, je možné nainstalovat U-Center v Ubuntu, jako by to byl Windows. Otevřete webový prohlížeč Firefox a stáhněte si program U-Center z oficiálních stránek: https://www.u-blox.com/en/product/u-center.
  1. Jednou u-center je stažen, přejděte do složky Download a rozbalte soubor u-center na Ploše.
  1. Chcete-li zahájit instalaci u-center software, zadejte příkaz:
				
					cd ~/Desktop/
wine ./u-center_v22.07.exe

				
			
  1. instalovat u-center jako ve Windows, postupujte podle instalačních kroků.
  2.  Vytvoření COM1 port, otevřený terminál a zadejte následující příkaz pro vytvoření odkazu RTK přijímač ve složce „~/.wine/dosdevice“.
				
					ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
				
			
  1. zavřít u-center jestli to máš otevřené. OTEVŘENO u-center.
  2. Připojte se ke svému RTK přijímač in u-center stisknutím tlačítka Ctrl + 1 .
  1. V levém rohu uvidíte zelené světlo a data z vašeho přijímače RTK podobná níže.

Za druhé, spusťte RTK Receiver v ROS.

  1. Vytvořte složku s pracovními prostory. Pokud žádný nemáte, můžete to udělat pomocí příkazů:
				
					mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  1. Stáhněte a nainstalujte balíčky ROS uvnitř src. V tomto tutoriálu stáhneme balíčky z https://github.com/KumarRobotics/ublox která zveřejní informace ROS. To funguje s touto verzí 1.1.4. Můžete použít nejnovější verze, ale některé kroky bude možná nutné upravit. Zadejte příkazy:
				
					cd ~/catkin_ws/src
git clone https://github.com/KumarRobotics/ublox
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
				
			
  • V Terminálu uvidíte:
    #Všechny požadované rosdepy byly úspěšně nainstalovány
  1. Zkompilujte program, abyste jej mohli spustit.  
				
					catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  • Když je soubor setup.bash spuštěn, vybíráme pracovní prostor a aktualizujeme dostupné programy v ROS.
  1. Abyste měli kontrolu nad zprávami, které mají být publikovány ArduSimple můžete upravit yaml (konfigurační soubor), který uzel použije ke spuštění komunikace s ros.
    Tento uzel má několik testovacích konfiguračních souborů, hodnoty tohoto můžete upravit úpravou souborů umístěných v následujícím adresáři:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/config
				
			
  1. Vzhledem k tomu, u-blox model uvnitř Ardusimple je zed_f9p, upravíme soubor se stejným názvem. K otevření editoru můžeme použít následující příkaz:
				
					nano zed_f9p.yaml
				
			
  1. Změňte adresu zařízení na “/dev/tty_Ardusimple" abyste se ujistili, že to vždy půjde do Přijímač RTK:

				
					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. zavřít u-center protože ROS a u-center neběhejte spolu.

  1. Chcete-li spustit uzel ROS, použijte spouštěč umístěný v následující složce:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/launch
				
			
  • Chcete-li zkontrolovat, zda je uvedena, zadejte příkaz:
				
					ls
				
			
  1. spouštěcí soubory ROS zjednodušit proces spouštění více uzlů a konfiguraci jejich parametrů. Spouštěcí soubor je soubor XML, který popisuje uzly, které mají být provedeny, jejich parametry a spojení mezi nimi. Pomocí spouštěcích souborů můžete spustit více uzlů jediným příkazem, což usnadňuje správu složitých robotických systémů. Tyto soubory mají příponu „.launch“, existují další soubory, které jsou konfiguračními soubory, které mají příponu „.yaml“.
    Spuštění souboru:
				
					roslaunch <name_of_package> <launch_file>
				
			
  • Soubor, který spustí náš program, se nazývá "ublox_device.launch".
    Tento soubor lze podle potřeby změnit.
    Ke spuštění programu použijte následující příkaz:
				
					roslaunch ublox_gps ublox_device.launch param_file_name:=zed_f9p
				
			
  1. Otevřete nový terminál a zadejte příkaz:
				
					source ~/catkin_ws/devel/setup.bash
				
			
  1. Uzly ROS při běhu mají jedinečná jména. Chcete-li zobrazit seznam názvů uzlů ROS, použijte příkaz v Terminálu:
				
					rosnode list
				
			
  1. Chcete-li získat informace o uzlech ROS, například o tom, která témata jsou přihlášena k odběru nebo publikují, můžete použít následující příkaz:
				
					rosnode info <name_of_node>
				
			
  • Chcete-li například získat informace o „info /ublox”, použijte příkaz:

				
					rosnode info /ublox
				
			
  1. Pro zobrazení seznamu aktivních Témata ROS které jsou aktuálně dostupné a jsou publikovány nebo přihlášeny k odběru vašeho systému ROS, použijte příkaz.
				
					rostopic list
				
			
  • Výstup seznamu témat ROS obvykle zobrazuje názvy témat spolu s jejich typy zpráv. Tento příkaz je užitečný pro kontrolu dostupných témat a ověření, zda jsou požadovaná témata publikována nebo odebírána ve vašem prostředí ROS.

  1. Chcete-li zobrazit informace o tom, kdo posílá a odebírá tuto zprávu, napište zprávu, použijte příkaz ve formátu:
				
					rostopic info <name_of_topic>
				
			
  • Chcete-li například získat informace o typu zprávy, vydavatelích a odběratelích daného tématu "/rosout", proveďte příkaz:
				
					rostopic info /rosout
				
			
  1. Chcete-li získat informace o typu zprávy, vydavatelích a odběratelích tématu /ublox/fix, napřspusťte příkaz:
				
					rostopic info /ublox/fix
				
			
  1. Chcete-li zobrazit informace, které jsou publikovány, použijte příkaz ve formátu:
				
					rostopic echo <name_of_topic>
				
			
  • Abychom otestovali, že to funguje, můžeme se přihlásit k odběru různých témat, která uzel vytváří.

    Nejdůležitější jsou "/gps/fix" (jsou údaje ve WGS64) a "/diagnostika" (poskytuje nám informace o stavu GPS). Ostatní údaje lze publikovat podle konfigurace, ze které byla nastavena RTK přijímač.

    Například k pozorování a monitorování údajů o fixech GPS, které jsou zveřejňovány "/ublox/fix" Téma (jsou data ve WGS64), jako je zeměpisná šířka, délka, nadmořská výška a další relevantní informace, použijte k zobrazení dat následující příkaz:

				
					rostopic echo /ublox/fix
				
			
  • Chcete-li ukončit zobrazování tématu, stiskněte Ctrl + C.

  1. Chcete-li zobrazit data, která jsou publikována na "/diagnostika" který poskytuje informace o stavu GPS, jako je přesnost mezi ostatními, použijte příkaz:
				
					rostopic echo /diagnostics
				
			
  • Chcete-li ukončit prohlížení dat, stiskněte Ctrl + C.

  1. Pokud chcete zaznamenat informace publikované v tématu do souboru, použijte příkaz:
  • pro záznam údajů o fixech GPS, které jsou zveřejňovány "/ublox/fix" Téma, jako je zeměpisná šířka, délka, nadmořská výška a další:
				
					rostopic echo /ublox/fix > gps_fix_data.txt
				
			
  • pro záznam údajů o stavu GPS "/diagnostika":
				
					rostopic echo /diagnostics > gps_diagnostics.txt
				
			
  • Tyto příkazy vytvářejí soubory gps_fix_data.txt a gps_diagnostics.txt, kam se téma uloží. Chcete-li nahrávání zastavit, stiskněte Ctrl + C.

  1. Chcete-li zobrazit informace zaznamenané v souborech, proveďte:
				
					nano gps_fix_data.txt
				
			
				
					nano gps_diagnostics.txt
				
			
  1. Zprávy ROS jsou datové struktury používané pro komunikaci mezi uzly ROS. Definují informace vyměňované k tématu. Zprávy jsou definovány pomocí formátu souboru .msg.
    Chcete-li zobrazit seznam typů zpráv ROS, použijte příkaz:
				
					rosmsg list
				
			
  1. Chcete-li zobrazit strukturu zprávy, použijte příkaz ve formátu:

				
					rosmsg show <name_of_message>
				
			
  • Například, "sensor_msgs/NavSatFix" je typ zprávy v ROS, který se používá k reprezentaci fixních dat GPS (Global Positioning System), jako je zeměpisná šířka, délka, nadmořská výška a další parametry související s polohou GPS.
    Chcete-li vidět strukturu „sensor_msgs/NavSatFix” zprávu, použijte příkaz:
				
					rosmsg show sensor_msgs/NavSatFix
				
			
  1. Chcete-li zobrazit seznam aktivních Služby ROS které poskytují uzlům způsob, jak odesílat požadavky a přijímat odpovědi, použijte příkaz:
				
					rosservice list
				
			
  1. Pro volání služby použijte příkaz ve formátu:
				
					rosservice call <name_of_service> <type_srv> <request>
				
			
  • Tato služba odpoví s výsledkem.

    Chcete-li například získat aktuální konfiguraci loggeru u-blox Uzel, který může být užitečný pro účely ladění a monitorování, použijte příkaz:

				
					rosservice info /ublox/get_loggers
				
			

Pokud si chcete udělat tento tutoriál, máme všechny produkty skladem a připravené k odeslání:

Pokud se vám tento obsah líbil, můžete nás sledovat X, Youtube, facebook or LinkedIn abyste byli informováni o obsahu, jako je tento.

Máte nějaké dotazy nebo požadavky?
Kontaktujte nás! Odpovíme <24 hodin!

Ikona
Kontakt ArduSimple
zavřít

Chcete se dozvědět více o GPS/RTK?

1. Náš technický tým vás bude kontaktovat, aby vyřešil jakékoli dotazy
2. Budeme vás informovat o akcích a nových produktech
3. Uslyšíte od nás pouze, když budeme mít důležité zprávy, nebudeme váš e-mail spamovat