Update (07 / 11 / 2024): We hebben voldoende voorraad van al onze producten, vind ons ook in en    Shop nu

Gebruiksaanwijzing ArduSimple RTK-ontvangers en ontvang GPS-gegevens in ROS

In deze tutorial leggen we uit hoe te gebruiken ArduSimple RTK-ontvangers om nauwkeurige positioneringsgegevens in ROS te krijgen. Wij begeleiden u bij de stappen om in te burgeren ArduSimple RTK-ontvanger in uw ROS-project, zodat u de kracht van nauwkeurigheid kunt benutten GPS data.

Of u nu een liefhebber van robotica, onderzoeker of ontwikkelaar bent, deze tutorial biedt u de stappen om toegang te krijgen tot positioneringsgegevens in uw ROS-applicaties.

Als je nieuw bent bij ROS, hebben we een short voorbereid ttutorial om aan de slag te gaan met ROS om meer te weten te komen over de belangrijkste termen van ROS, welk platform en welke ontwikkelomgeving u beter kunt kiezen, enz.

Vereiste hardware:

Vereiste software:

  • Ubuntu 18 of 20 (in deze tutorial gebruiken we Ubuntu 20) standaard geïnstalleerd op een pc 
  • ROS (wij gebruiken ROS Noetic).

Gebruiksaanwijzing ArduSimple RTK-ontvangers en GPS-gegevens in ROS ontvangen?

Verbind en configureer eerst de RTK-ontvanger in Ubuntu.

  1. Sluit de RTK-antenne aan jouw ontvanger​ Plaats de antenne op een locatie met goed zicht op de lucht, of in de buurt van een raam om de functionaliteit te testen.
  2. Koppel jouw ontvanger naar de pc via de USB-poort met het label “POWER+GPS. '
  3. Uw ontvanger zou automatisch moeten worden geconfigureerd. Om dit te verifiëren, opent u terminal en typ de opdracht:
				
					ls /dev/tty*
				
			
  • Je zult het zien "/dev/ttyACM0" is automatisch aangemaakt.
  1. Om de stream van uw te verifiëren RTK-ontvanger, gebruik het commando:
				
					sudo cat /dev/ttyACM0
				
			
  • De GPS-invoerstroom wordt weergegeven zoals hieronder:
  • Media Ctrl + C om het zien van de stream te annuleren.
  1. Om de RTK-ontvanger van het starten in een andere “ttyACM*” elke keer dat het wordt ingeschakeld, maakt u een udev-regel (een dynamische link) die een item met een specifieke naam maakt door het volgende bestand toe te voegen voordat u de verbinding tot stand brengt RTK-ontvanger.
				
					sudo nano /etc/udev/rules.d/50-ardusimple.rules
				
			
  1. Voer de volgende tekst in voor de regel:
				
					KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
				
			
  1. Media Ctrl + X om het bestand te verlaten en druk op Y om gewijzigde buffer op te slaan.
  2. Nu wanneer een RTK-ontvanger is aangesloten, zal het toegankelijk zijn vanaf de “/dev/tty_Ardusimple" koppeling. Koppel de verbinding los om dit te controleren RTK-ontvanger (uitschakelen en weer inschakelen) en voer de opdrachten in:
				
					sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
				
			
  1. Nu kun je dat zien “tty_ArduSimple" Is gemaakt.
  1. Om het U-center programma in Ubuntu te gebruiken, installeert u Wine. Het is een verzameling Linux bibliotheken die het mogelijk maken dat veel Windows applicaties op Linux distributies draaien (onder andere op Ubuntu).
    Het maakt de U-center software niet volledig compatibel, maar het kan worden gebruikt als u de status of configuratie van uw RTK-ontvanger.
    Gebruik de opdracht om Wine te installeren (de installatie kan 2-3 minuten duren):
				
					sudo apt install wine64  //if Ubuntu is installed natively
sudo apt install wine32  //if you run Ubuntu on a virtual machine

				
			
  1. Zodra Wine is geïnstalleerd, is het mogelijk om U-Center te installeren in Ubuntu, alsof het Windows is. Open Firefox Web Browser en download het U-Center programma van de officiële website: https://www.u-blox.com/en/product/u-center.
  1. Eens u-center is gedownload, gaat u naar de map Downloaden en pakt u het u-center op de desktop.
  1. Om de installatie van te starten u-center software, typ het commando:
				
					cd ~/Desktop/
wine ./u-center_v22.07.exe

				
			
  1. Install u-center alsof u zich in Windows bevindt door de installatiestappen te volgen.
  2.  Het creëren van een COM1 poort, geopend terminal en voer de volgende opdracht in om een ​​koppeling naar te maken RTK-ontvanger in de map "~/.wine/dosdevice".
				
					ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
				
			
  1. Sluiten u-center als je hem geopend hebt. Open u-center.
  2. Maak verbinding met uw RTK-ontvanger in u-center door te drukken Ctrl + 1 .
  1. U ziet groen licht in de linkerhoek en de gegevens van uw RTK-ontvanger zijn vergelijkbaar met hieronder.

Ten tweede, voer RTK Receiver uit in ROS.

  1. Maak een map met de werkruimten. Als je er geen hebt, kun je het maken met de commando's:
				
					mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  1. Download en installeer ROS-pakketten in src. In deze tutorial zullen we de pakketten downloaden van https://github.com/KumarRobotics/ublox die de ROS-informatie zal publiceren. Dit werkt met deze 1.1.4 versie. U kunt de nieuwste releases gebruiken, maar sommige stappen moeten mogelijk worden gewijzigd. Voer commando's in:
				
					cd ~/catkin_ws/src
git clone https://github.com/KumarRobotics/ublox
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
				
			
  • Je ziet in de Terminal:
    #Alle vereiste rosdeps zijn succesvol geïnstalleerd
  1. Compileer het programma om het uit te kunnen voeren.  
				
					catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  • Wanneer setup.bash wordt uitgevoerd, selecteren we de werkruimte van het werk en werken we de beschikbare programma's in ROS bij.
  1. Om controle te hebben over de te publiceren berichten ArduSimple u kunt de yaml (configuratiebestand) wijzigen die het knooppunt zal gebruiken om de communicatie met ros uit te voeren.
    Dit knooppunt heeft verschillende testconfiguratiebestanden. U kunt de waarden van deze wijzigen door de bestanden in de volgende map te wijzigen:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/config
				
			
  1. Aangezien de u-blox model binnen Ardusimple is de zed_f9p, wijzigen we het bestand met dezelfde naam. Om de editor te openen, kunnen we de volgende opdracht gebruiken:
				
					nano zed_f9p.yaml
				
			
  1. Wijzig het adres van het apparaat in “/dev/tty_Ardusimple" om ervoor te zorgen dat het altijd naar de gaat RTK-ontvanger:

				
					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. Sluiten u-center omdat ROS en u-center niet samen rennen.

  1. Gebruik de launcher in de volgende map om de ROS Node uit te voeren:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/launch
				
			
  • Om te controleren of het wordt vermeld, typt u de opdracht:
				
					ls
				
			
  1. ROS-startbestanden vereenvoudig het proces van het starten van meerdere knooppunten en het configureren van hun parameters. Een startbestand is een XML-bestand dat de uit te voeren knooppunten, hun parameters en de onderlinge verbindingen beschrijft. Door startbestanden te gebruiken, kunt u meerdere knooppunten starten met een enkele opdracht, waardoor het eenvoudiger wordt om complexe robotsystemen te beheren. Deze bestanden hebben de extensie ".launch", er zijn andere bestanden die configuratiebestanden zijn met de extensie ".yaml".
    Om het bestand te starten:
				
					roslaunch <name_of_package> <launch_file>
				
			
  • Het bestand dat ons programma start, wordt genoemd "ublox_device.launch".
    Dit bestand kan naar behoefte worden gewijzigd.
    Gebruik de volgende opdracht om het programma te starten:
				
					roslaunch ublox_gps ublox_device.launch param_file_name:=zed_f9p
				
			
  1. Open een nieuwe Terminal en voer de opdracht in:
				
					source ~/catkin_ws/devel/setup.bash
				
			
  1. ROS-knooppunten tijdens het hardlopen unieke namen hebben. Gebruik de opdracht in de Terminal om de lijst met ROS-knooppuntnamen te zien:
				
					rosnode list
				
			
  1. Om informatie te verkrijgen over de ROS-nodes, zoals op welke onderwerpen ze zijn geabonneerd of gepubliceerd, kun je de volgende opdracht gebruiken:
				
					rosnode info <name_of_node>
				
			
  • Bijvoorbeeld om informatie te verkrijgen over “info /ublox”, gebruik het commando:

				
					rosnode info /ublox
				
			
  1. Om een ​​lijst met actieve ROS-onderwerpen die momenteel beschikbaar zijn en worden gepubliceerd of geabonneerd op uw ROS-systeem, gebruikt u de opdracht.
				
					rostopic list
				
			
  • De uitvoer van de ROS-onderwerpenlijst toont meestal de namen van de onderwerpen samen met hun berichttypes. Deze opdracht is handig om de beschikbare onderwerpen te controleren en te controleren of de gewenste onderwerpen worden gepubliceerd of waarop u zich hebt geabonneerd in uw ROS-omgeving.

  1. Om informatie te bekijken over wie dit bericht plaatst en zich erop heeft geabonneerd, typt u het bericht en gebruikt u de opdracht in het formaat:
				
					rostopic info <name_of_topic>
				
			
  • Bijvoorbeeld om informatie te ontvangen over Berichttype, Uitgevers en Abonnees van het onderwerp "/rosout", voer de opdracht uit:
				
					rostopic info /rosout
				
			
  1. Om informatie te ontvangen over berichttype, uitgevers en abonnees van het onderwerp /ublox/fix, bijvvoer het commando uit:
				
					rostopic info /ublox/fix
				
			
  1. Om de informatie te zien die wordt gepubliceerd, gebruikt u de opdracht in de indeling:
				
					rostopic echo <name_of_topic>
				
			
  • Om te testen of het werkt, kunnen we ons abonneren op de verschillende onderwerpen die het knooppunt maakt.

    De belangrijkste zijn "/gps/fix" (zijn de gegevens in WGS64) en "/ diagnostiek" (geeft ons informatie over de GPS-status). Andere gegevens kunnen worden gepubliceerd volgens de configuratie die is ingesteld vanaf RTK-ontvanger.

    Bijvoorbeeld om de GPS-fixgegevens waarop wordt gepubliceerd te observeren en te bewaken "/ublox/fix" Onderwerp (zijn de gegevens in WGS64), zoals breedtegraad, lengtegraad, hoogte en andere relevante informatie, gebruik de volgende opdracht om de gegevens te bekijken:

				
					rostopic echo /ublox/fix
				
			
  • Druk op om het bekijken van het onderwerp te stoppen Ctrl + C.

  1. Om de gegevens te bekijken waarop wordt gepubliceerd "/ diagnostiek" dat geeft de informatie over de GPS-status, zoals nauwkeurigheid onder andere, gebruik de opdracht:
				
					rostopic echo /diagnostics
				
			
  • Druk op om te stoppen met het bekijken van de gegevens Ctrl + C.

  1. Als u de informatie die over het onderwerp is gepubliceerd in het bestand wilt opnemen, gebruikt u de opdracht:
  • om GPS-fixgegevens vast te leggen waarop wordt gepubliceerd "/ublox/fix" Onderwerp, zoals breedtegraad, lengtegraad, hoogte onder andere:
				
					rostopic echo /ublox/fix > gps_fix_data.txt
				
			
  • om gegevens over de GPS-status vast te leggen "/ diagnostiek":
				
					rostopic echo /diagnostics > gps_diagnostics.txt
				
			
  • Deze commando's creëren bestanden gps_fix_data.txt en gps_diagnostics.txt, waar het onderwerp wordt opgeslagen. Druk op om de opname te stoppen Ctrl + C.

  1. Voer het volgende uit om de informatie te bekijken die in de bestanden is vastgelegd:
				
					nano gps_fix_data.txt
				
			
				
					nano gps_diagnostics.txt
				
			
  1. ROS-berichten zijn de gegevensstructuren die worden gebruikt voor communicatie tussen ROS-knooppunten. Ze definiëren de informatie die over een onderwerp wordt uitgewisseld. Berichten worden gedefinieerd met behulp van het .msg-bestandsformaat.
    Gebruik de opdracht om de lijst met typen ROS-berichten te bekijken:
				
					rosmsg list
				
			
  1. Gebruik de opdracht in het formaat om de structuur van het bericht te bekijken:

				
					rosmsg show <name_of_message>
				
			
  • Bijvoorbeeld, de "sensor_msgs/NavSatFix" is een berichttype in ROS dat wordt gebruikt om GPS (Global Positioning System) fixgegevens weer te geven, zoals de breedtegraad, lengtegraad, hoogte en andere parameters die verband houden met de GPS-positie.
    Om de structuur te zien van “sensor_msgs/NavSatFix” bericht, gebruik de opdracht:
				
					rosmsg show sensor_msgs/NavSatFix
				
			
  1. Om de lijst met actieve ROS-diensten die nodes een manier bieden om verzoeken te verzenden en antwoorden te ontvangen, gebruik de opdracht:
				
					rosservice list
				
			
  1. Gebruik de opdracht in het formaat om de service aan te roepen:
				
					rosservice call <name_of_service> <type_srv> <request>
				
			
  • Deze service zal reageren met het resultaat.

    Om bijvoorbeeld de huidige loggerconfiguratie van de u-blox Node, wat handig kan zijn voor foutopsporing en monitoring, gebruikt de opdracht:

				
					rosservice info /ublox/get_loggers
				
			

Als je deze tutorial wilt doen, hebben we alle producten op voorraad en klaar voor verzending:

Als je deze inhoud leuk vond, kun je ons volgen Twitter, YouTube, Facebook or LinkedIn om op de hoogte te blijven van dit soort inhoud.

Heeft u vragen of verzoeken?
Neem contact met ons op! Wij antwoorden <24 uur!

icon
Contact ArduSimple
Sluiten

Meer weten over GPS/RTK?

1. Ons technische team zal contact met u opnemen om eventuele vragen op te lossen!
2. We houden u op de hoogte van promoties en nieuwe productreleases
3. U hoort alleen van ons als we belangrijk nieuws hebben, we zullen uw e-mail niet spammen