Aggiornamento (16 / 06 / 2025): Abbiamo un ampio stock di tutti i nostri prodotti, trovaci anche in e    Acquista ora

Come si usa ArduSimple Ricevitori RTK e ottieni dati GPS in ROS

In questo tutorial spieghiamo come utilizzare ArduSimple Ricevitori RTK per ottenere dati di posizionamento precisi in ROS. Ti guideremo attraverso i passaggi per l'integrazione ArduSimple Ricevitore RTK nel tuo progetto ROS, permettendoti di sfruttare la potenza di dati GPS accurati.

Che tu sia un appassionato di robotica, un ricercatore o uno sviluppatore, questo tutorial ti fornirà i passaggi per accedere ai dati di posizionamento nelle tue applicazioni ROS.

Se sei nuovo su ROS, abbiamo preparato un breve tutorial per aiutare a iniziare con ROS per saperne di più sui termini chiave di ROS, quale piattaforma e ambiente di sviluppo è meglio scegliere ecc.

Hardware richiesto:

Software richiesto:

  • Ubuntu 18 o 20 (in questo tutorial usiamo Ubuntu 20) installato nativamente su un PC 
  • ROS (usiamo ROS Noetic).

Come si usa ArduSimple Ricevitori RTK e ottenere dati GPS in ROS?

Innanzitutto, connetti e configura il ricevitore RTK in Ubuntu.

  1. Collegare il Antenna RTK alla tua ricevitore. Posto l'antenna in un luogo con buona visuale del cielo, o vicino a una finestra per testare la funzionalità.
  2. Collega il tuo ricevitore al PC tramite la porta USB contrassegnata con “POWER+GPS. "
  3. Il ricevitore dovrebbe essere configurato automaticamente. Per verificarlo, apri terminal e digita il comando:
				
					ls /dev/tty*
				
			
  • Vedrai il “/dev/ttyACM0” è stato creato automaticamente.
  1. Per verificare il flusso dal tuo Ricevitore RTK, usa il comando:
				
					sudo cat /dev/ttyACM0
				
			
  • Il flusso di input GPS è simile al seguente:
  • Stampa Ctrl + C per annullare la visualizzazione dello streaming.
  1. Per evitare che il Ricevitore RTK dall'iniziare in un modo diverso”ttyACM*” ogni volta che viene alimentato, crea una regola udev (un collegamento dinamico) che crea una voce con un nome specifico aggiungendo il seguente file prima di connettere il Ricevitore RTK.
				
					sudo nano /etc/udev/rules.d/50-ardusimple.rules
				
			
  1. Inserisci il seguente testo nella regola:
				
					KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
				
			
  1. Stampa Ctrl + X per uscire dal file e premere Y per salvare il buffer modificato.
  2. Ora ogni volta che un Ricevitore RTK è connesso, sarà accessibile dal “/dev/tty_Ardusimple" collegamento. Per verificarlo, disconnettiti Ricevitore RTK (spegni e riaccendi) e inserisci i comandi:
				
					sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
				
			
  1. Ora puoi vederlo “tty_ArduSimple" è stato creato.
  1. Per utilizzare il programma U-center in Ubuntu, installa Wine. È una raccolta di librerie Linux che consentono a molte applicazioni Windows di funzionare su distribuzioni Linux (su Ubuntu tra gli altri).
    Non rende il software U-center completamente compatibile, ma può essere utilizzato nel caso in cui si desideri controllare lo stato o la configurazione del proprio Ricevitore RTK.
    Per installare Wine (l'installazione può durare 2-3 minuti), utilizzare il comando:
				
					sudo apt install wine64  //if Ubuntu is installed natively
sudo apt install wine32  //if you run Ubuntu on a virtual machine

				
			
  1. Una volta installato Wine, è possibile installare U-Center in Ubuntu, come se fosse Windows. Apri il browser Web Firefox e scarica il programma U-Center dal sito Web ufficiale: https://www.u-blox.com/en/product/u-center.
  1. Quando u-center viene scaricato, vai nella cartella Download ed estrai il file u-center sul desktop.
  1. Per avviare l'installazione di u-center software, digitare il comando:
				
					cd ~/Desktop/
wine ./u-center_v22.07.exe

				
			
  1. Installazione u-center come se fossi in Windows seguendo i passaggi di installazione.
  2.  Per creare un COM1 porto, aperto terminal e inserisci il seguente comando per creare un collegamento a Ricevitore RTK nella cartella "~/.wine/dosdevice".
				
					ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
				
			
  1. Chiudi u-center se l'hai aperto. Aprire u-center.
  2. Collegati al tuo Ricevitore RTK in u-center premendo Ctrl + 1 .
  1. Vedrai la luce verde nell'angolo sinistro e i dati dal tuo ricevitore RTK simili a quelli sottostanti.

In secondo luogo, eseguire il ricevitore RTK in ROS.

  1. Crea una cartella con gli spazi di lavoro. Se non ne hai uno, puoi farlo con i comandi:
				
					mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  1. Scarica e installa i pacchetti ROS all'interno di src. In questo tutorial scaricheremo i pacchetti da https://github.com/KumarRobotics/ublox che pubblicherà le informazioni del ROS. Funziona con questa versione 1.1.4. È possibile utilizzare le versioni più recenti, ma potrebbe essere necessario modificare alcuni passaggi. Inserisci i comandi:
				
					cd ~/catkin_ws/src
git clone https://github.com/KumarRobotics/ublox
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
				
			
  • Vedrai nel Terminale:
    #Tutti i rosdep richiesti sono stati installati correttamente
  1. Compilare il programma per poterlo eseguire.  
				
					catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  • Quando viene eseguito setup.bash, selezioniamo l'area di lavoro e aggiorniamo i programmi disponibili in ROS.
  1. Per avere il controllo dei messaggi da pubblicare in ArduSimple puoi modificare lo yaml (file di configurazione) che il nodo utilizzerà per eseguire la comunicazione con ros.
    Questo nodo ha diversi file di configurazione di test, è possibile modificare i valori di questo modificando i file che si trovano nella seguente directory:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/config
				
			
  1. Poiché u-blox modello interno Ardusimple è lo zed_f9p, modifichiamo il file con lo stesso nome. Per aprire l'editor, possiamo usare il seguente comando:
				
					nano zed_f9p.yaml
				
			
  1. Modificare l'indirizzo del dispositivo in “/dev/tty_Ardusimple" per assicurarsi che vada sempre al Ricevitore 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. Chiudi u-center perché ROS e u-center non correre insieme.

  1. Per eseguire il nodo ROS, utilizzare il launcher situato nella seguente cartella:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/launch
				
			
  • Per verificare che sia elencato, digitare il comando:
				
					ls
				
			
  1. File di avvio ROS semplificare il processo di avvio di più nodi e la configurazione dei relativi parametri. Un file di lancio è un file XML che descrive i nodi da eseguire, i loro parametri e le connessioni tra di loro. Utilizzando i file di avvio, puoi avviare più nodi con un singolo comando, semplificando la gestione di sistemi robotici complessi. Questi file hanno estensione ".launch", ci sono altri file che sono file di configurazione che hanno estensione ".yaml".
    Per lanciare il file:
				
					roslaunch <name_of_package> <launch_file>
				
			
  • Il file che lancerà il nostro programma si chiama "ublox_device.launch".
    Questo file può essere modificato secondo necessità.
    Per avviare il programma, utilizzare il seguente comando:
				
					roslaunch ublox_gps ublox_device.launch param_file_name:=zed_f9p
				
			
  1. Apri il nuovo Terminale e inserisci il comando:
				
					source ~/catkin_ws/devel/setup.bash
				
			
  1. Nodi ROS durante l'esecuzione hanno nomi univoci. Per visualizzare l'elenco dei nomi dei nodi ROS, utilizzare il comando nel Terminale:
				
					rosnode list
				
			
  1. Per ottenere informazioni sui nodi ROS, come ad esempio a quali argomenti sono iscritti o che pubblicano, puoi utilizzare il seguente comando:
				
					rosnode info <name_of_node>
				
			
  • Ad esempio, per ottenere informazioni su “info/ublox”, usa il comando:

				
					rosnode info /ublox
				
			
  1. Per visualizzare un elenco di attivi Argomenti ROS attualmente disponibili e in fase di pubblicazione o sottoscrizione al proprio sistema ROS, utilizzare il comando.
				
					rostopic list
				
			
  • L'output dell'elenco di argomenti ROS mostrerà in genere i nomi degli argomenti insieme ai loro tipi di messaggio. Questo comando è utile per controllare i topic disponibili e verificare se i topic desiderati sono in fase di pubblicazione o sottoscrizione nel proprio ambiente ROS.

  1. Per visualizzare le informazioni su chi sta postando e si è iscritto a questo messaggio, digitare il messaggio, utilizzare il comando nel formato:
				
					rostopic info <name_of_topic>
				
			
  • Ad esempio, per ricevere informazioni sul tipo di messaggio, gli editori e gli abbonati dell'argomento “/rosa fuori”, eseguire il comando:
				
					rostopic info /rosout
				
			
  1. Per ricevere informazioni sul tipo di messaggio, gli editori e gli abbonati dell'argomento /ublox/fix, ad esxesegui il comando:
				
					rostopic info /ublox/fix
				
			
  1. Per vedere le informazioni che vengono pubblicate, utilizzare il comando nel formato:
				
					rostopic echo <name_of_topic>
				
			
  • Per verificare che funzioni, possiamo iscriverci ai diversi argomenti creati dal nodo.

    I più importanti lo sono “/gps/correzione” (sono i dati in WGS64) e "/diagnostica" (ci fornisce informazioni sullo stato del GPS). Altri dati possono essere pubblicati secondo la configurazione che è stata impostata da Ricevitore RTK.

    Ad esempio, per osservare e monitorare i dati di posizione GPS pubblicati "/ublox/correzione" Argomento (sono i dati in WGS64), come latitudine, longitudine, altitudine e altre informazioni rilevanti, utilizzare il seguente comando per visualizzare i dati:

				
					rostopic echo /ublox/fix
				
			
  • Per interrompere la visualizzazione dell'argomento, premere Ctrl + C.

  1. Per visualizzare i dati in corso di pubblicazione "/diagnostica" che fornisce le informazioni sullo stato del GPS come precisione tra le altre, utilizzare il comando:
				
					rostopic echo /diagnostics
				
			
  • Per interrompere la visualizzazione dei dati, premere Ctrl + C.

  1. Se vuoi registrare nel file le informazioni pubblicate sul Topic utilizza il comando:
  • per registrare i dati di posizione GPS in fase di pubblicazione "/ublox/correzione" Argomento, come latitudine, longitudine, altitudine tra gli altri:
				
					rostopic echo /ublox/fix > gps_fix_data.txt
				
			
  • per registrare i dati sullo stato del GPS "/diagnostica":
				
					rostopic echo /diagnostics > gps_diagnostics.txt
				
			
  • Questi comandi creano file gps_fix_data.txt e gps_diagnostics.txt, dove verrà salvato l'argomento. Per interrompere la registrazione, premere Ctrl + C.

  1. Per vedere le informazioni registrate nei file, eseguire:
				
					nano gps_fix_data.txt
				
			
				
					nano gps_diagnostics.txt
				
			
  1. Messaggi ROS sono le strutture dati utilizzate per la comunicazione tra i Nodi ROS. Definiscono le informazioni scambiate su un argomento. I messaggi vengono definiti utilizzando il formato di file .msg.
    Per visualizzare l'elenco dei tipi di messaggi ROS, utilizzare il comando:
				
					rosmsg list
				
			
  1. Per visualizzare la struttura del messaggio utilizzare il comando nel formato:

				
					rosmsg show <name_of_message>
				
			
  • Ad esempio, al cotone biologico viene applicata l'etichetta “msg_sensore/NavSatFix” è un tipo di messaggio in ROS utilizzato per rappresentare i dati di posizione GPS (Global Positioning System) come latitudine, longitudine, altitudine e altri parametri relativi alla posizione GPS.
    Per vedere la struttura di “sensor_msgs/NavSatFix” messaggio, usa il comando:
				
					rosmsg show sensor_msgs/NavSatFix
				
			
  1. Per visualizzare l'elenco degli attivi Servizi ROS che forniscono un modo per i nodi di inviare richieste e ricevere risposte, utilizzare il comando:
				
					rosservice list
				
			
  1. Per chiamare il servizio, utilizzare il comando nel formato:
				
					rosservice call <name_of_service> <type_srv> <request>
				
			
  • Questo servizio risponderà con il risultato.

    Ad esempio, per ottenere la configurazione corrente del logger del u-blox Il nodo, che può essere utile per scopi di debug e monitoraggio, utilizza il comando:

				
					rosservice info /ublox/get_loggers
				
			

Se vuoi fare questo tutorial, abbiamo tutti i prodotti in stock e pronti per essere spediti:

Se ti è piaciuto questo contenuto, puoi seguirci su Twitter, YouTube, Facebook or LinkedIn per rimanere aggiornato su contenuti come questo.

Hai domande o richieste?
Contattaci! Risponderemo <24 ore!

Icona
Contatti ArduSimple
Chiudi

Vuoi saperne di più su GPS/RTK?

1. Il nostro team di ingegneri ti contatterà per risolvere qualsiasi domanda
2. Ti terremo aggiornato sulle promozioni e sul rilascio di nuovi prodotti
3. Riceverai nostre notizie solo quando avremo notizie importanti, non invieremo spam alla tua email