Aggiornamento (29/10/2026): Abbiamo scorte abbondanti di tutti i nostri prodotti; ci trovate anche su e    Come richiedere un preventivo

Come utilizzare i ricevitori RTK ArduSimple e acquisire dati GPS in ROS

In questa pagina 

In questa pagina non sono stati trovati titoli.
Prodotti utilizzati in questo tutorial

In questo tutorial spieghiamo come utilizzare i ricevitori RTK ArduSimple per ottenere dati di posizionamento precisi in ROS. Ti guideremo attraverso i passaggi necessari per integrare il ricevitore RTK ArduSimple nel tuo progetto ROS, consentendoti di sfruttare la potenza dei dati GPS accurati.

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

Se sei alle prime armi con ROS, abbiamo preparato un brevetutorial per aiutarti a muovere i primi passi con ROS, per conoscere meglio i termini chiave di ROS, quale piattaforma e quale ambiente di sviluppo sia meglio scegliere, ecc.

Se stai cercando un tutorial su ROS 2, dai un'occhiata alla guida "Come integrare u-blox ZED-F9P in ROS 2".

Hardware richiesto:

Software necessario:

  • Ubuntu 18 o 20 (in questo tutorial utilizziamo Ubuntu 20) installato in modo nativo su un PC 
  • ROS (noi utilizziamo ROS Noetic).

Come utilizzare i ricevitori RTK ArduSimple e ottenere dati GPS in ROS?

Per prima cosa, collega e configura il ricevitore RTK su Ubuntu.

  1. Collegare l'antenna RTK al ricevitore. Posizionare l'antenna in un punto con una buona visuale verso il cielo oppure vicino a una finestra per verificarne il funzionamento.
  2. Collega il ricevitore al PC tramite la porta USB contrassegnata con la dicitura “POWER+GPS”.
  3. Il ricevitore dovrebbe essere configurato automaticamente. Per verificarlo, apri Terminale e digita il comando:
    
     ls /dev/tty*
    
   
  • Noterai che la directory “/dev/ttyACM0”è stata creata automaticamente.
  1. Per verificare il flusso proveniente dal ricevitore RTK, utilizzare il comando:
    
     sudo cat /dev/ttyACM0
    
   
  • Il flusso di dati GPS appare simile a quello riportato di seguito:
  • Premi Ctrl+C per interrompere la visione dello streaming.
  1. Per evitare che il ricevitore RTK si avvii ogni volta in una"ttyACM*" diversa all'accensione, creare una regola udev (un collegamento dinamico) che generi una voce con un nome specifico, aggiungendo il seguente file prima di collegare 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. PremereCtrl+Xper uscire dal file e premereY per salvare il buffer modificato.
  2. D'ora in poi, ogni volta che verrà collegato un ricevitore RTK, sarà accessibile tramite il collegamento “/dev/tty_Ardusimple ”. Per verificarlo, scollegare il ricevitore RTK (spegnere e riaccendere) e digitare i comandi:
    
     sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
    
   
  1. Ora puoi vedere che è stato creato “tty_ArduSimple ”.
  1. Per poter utilizzare il programma U-center su Ubuntu, è necessario installare Wine. Si tratta di una raccolta di librerie Linux che consente a molte applicazioni Windows di funzionare su distribuzioni Linux (tra cui Ubuntu).
    Wine non garantisce la piena compatibilità del software U-center, ma può essere utilizzato nel caso in cui si desideri verificare lo stato o la configurazione del proprio ricevitore RTK.
    Per installare Wine (l’installazione potrebbe richiedere 2-3 minuti), utilizzare il comando:
    
     sudo apt install wine64  //se Ubuntu è installato in modo nativo
sudo apt install wine32  //se si esegue Ubuntu su una macchina virtuale

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

    
   
  1. Installa u-center come se fossi su Windows, seguendo la procedura di installazione.
  2.  Per creare una porta COM1, apri Terminale e inserisci il seguente comando per creare un collegamento al ricevitore RTK nella cartella “~/.wine/dosdevice”.
    
     ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
    
   
  1. Chiudi u-center se è aperto. Apri u-center.
  2. Collegati al tuo ricevitore RTK in u-center premendo Ctrl+1.
  1. Vedrai una luce verde nell'angolo sinistro e i dati provenienti dal tuo ricevitore RTK, simili a quelli riportati di seguito.

In secondo luogo, avvia il ricevitore RTK in ROS.

  1. Crea una cartella contenente gli spazi di lavoro. Se non ne hai una, puoi crearla con i seguenti comandi:
    
     mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
    
   
  1. Scarica e installa i pacchetti ROS nella cartella src. In questo tutorial scaricheremo i pacchetti da https://github.com/KumarRobotics/ublox che pubblicheranno le informazioni ROS. Questo procedimento funziona con la versione 1.1.4. È possibile utilizzare le versioni più recenti, ma potrebbe essere necessario modificare alcuni passaggi. Digita 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
    
   
  • Nel Terminale vedrai:
    #Tutti i rosdep richiesti sono stati installati con successo
  1. Compila il programma per poterlo eseguire.  
    
     catkin_make
source ~/catkin_ws/devel/setup.bash
    
   
  • Quando viene eseguito il file setup.bash, selezioniamo l'area di lavoro e aggiorniamo i programmi disponibili in ROS.
  1. Per poter gestire i messaggi da pubblicare in ArduSimple, è possibile modificare il file YAML (file di configurazione) che il nodo utilizzerà per comunicare con ROS.
    Questo nodo dispone di diversi file di configurazione di prova; è possibile modificare i valori di questo nodo modificando i file presenti nella seguente directory:
    
     cd ~/catkin_ws/src/ublox/ublox_gps/config
    
   
  1. Poiché il modello u-blox presente in Ardusimple è lo zed_f9p, modifichiamo il file con lo stesso nome. Per aprire l'editor, possiamo utilizzare il seguente comando:
    
     nano zed_f9p.yaml
    
   
  1. Modifica l'indirizzo del dispositivo in “/dev/tty_Ardusimple” per assicurarti che sia sempre collegato al ricevitore RTK:

    
     dispositivo: /dev/tty_Ardusimple
id_frame: gps
uart1:
  velocità di trasmissione: 9600  //Modificare il valore della velocità di trasmissione in base a quello impostato in U-Center.
config_on_startup: false

    
   
  1. Chiudi u-center perché ROS e u-center non possono funzionare contemporaneamente.

  1. Per eseguire il nodo ROS, utilizzare il programma di avvio che si trova nella seguente cartella:
    
     cd ~/catkin_ws/src/ublox/ublox_gps/launch
    
   
  • Per verificare che sia presente nell'elenco, digita il comando:
    
     ls
    
   
  1. I file di avvio ROS semplificano il processo di avvio di più nodi e la configurazione dei relativi parametri. Un file di avvio è un file XML che descrive i nodi da eseguire, i loro parametri e le connessioni tra di essi. Utilizzando i file di avvio, è possibile avviare più nodi con un unico comando, facilitando la gestione di sistemi robotici complessi. Questi file hanno estensione “.launch”; esistono inoltre altri file di configurazione con estensione “.yaml”.
    Per eseguire il file:
    
     roslaunch <name_of_package> <launch_file>
    
   
  • Il file che avvierà 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 una nuova finestra di Terminale e digita il comando:
    
     fonte ~/catkin_ws/devel/setup.bash
    
   
  1. I nodi ROS, quando sono in esecuzione, hanno nomi univoci. Per visualizzare l'elenco dei nomi dei nodi ROS, utilizzare il comando nel Terminale:
    
     elenco dei RSNODE
    
   
  1. Per ottenere informazioni sui nodi ROS, ad esempio su quali argomenti sono iscritti o quali stanno pubblicando, è possibile utilizzare il seguente comando:
    
     rosnode info <name_of_node>
    
   
  • Ad esempio, per ottenere informazioni su“info /ublox”, utilizzare il comando:

    
     Informazioni su Rosnode / uBlox
    
   
  1. Per visualizzare un elenco degli argomenti ROS attivi attualmente disponibili e che vengono pubblicati o a cui ci si è iscritti nel proprio sistema ROS, utilizzare il comando.
    
     elenco rostopico
    
   
  • L'output del comando `ROS Topic list` mostra in genere i nomi degli argomenti insieme ai relativi tipi di messaggio. Questo comando è utile per controllare gli argomenti disponibili e verificare se gli argomenti desiderati vengono pubblicati o se vi sono abbonamenti ad essi nel proprio ambiente ROS.

  1. Per visualizzare le informazioni relative agli autori dei messaggi e agli iscritti a questa discussione, nonché al tipo di messaggio, digita il comando nel seguente formato:
    
     rostopic info <name_of_topic>
    
   
  • Ad esempio, per ottenere informazioni sul tipo di messaggio, sugli editori e sugli abbonati dell'argomento“/rosout”, eseguire il comando:
    
     informazioni su Rostopic /rosout
    
   
  1. Per ricevere informazioni sul tipo di messaggio, sugli editori e sugli abbonati dell'argomento /ublox/fix, eseguireil comando:
    
     informazioni su Rostopic /ublox/fix
    
   
  1. Per visualizzare le informazioni che vengono pubblicate, utilizza il comando nel formato:
    
     rostopic echo <name_of_topic>
    
   
  • Per verificare che funzioni, possiamo iscriverci ai diversi argomenti creati dal nodo.

    I più importanti sono “/gps/fix” (contenente i dati in WGS64) e “/diagnostics” (che fornisce informazioni sullo stato del GPS). Altri dati possono essere pubblicati in base alla configurazione impostata sul ricevitore RTK.

    Ad esempio, per osservare e monitorare i dati di localizzazione GPS pubblicati sull'argomento “/ublox/fix” (i dati sono in formato WGS64), quali latitudine, longitudine, altitudine e altre informazioni rilevanti, utilizzare il seguente comando per visualizzare i dati:

    
     rostopic echo /ublox/fix
    
   
  • Per smettere di visualizzare l'argomento, premi Ctrl+C.

  1. Per visualizzare i dati pubblicati nella directory “/diagnostics”, che forniscono informazioni sullo stato del GPS, come ad esempio la precisione e altre, utilizzare il comando:
    
     ecografia rostopica / diagnostica
    
   
  • Per interrompere la visualizzazione dei dati, premi Ctrl+C.

  1. Se desideri salvare nel file le informazioni pubblicate nell'argomento, utilizza il comando:
  • per registrare i dati di localizzazione GPS pubblicati nell'argomento “/ublox/fix”, quali latitudine, longitudine, altitudine e altri:
    
     rostopic echo /ublox/fix > gps_fix_data.txt
    
   
  • per registrare i dati relativi allo stato del GPS “/diagnostics”:
    
     ecografia rostopica /diagnostica > gps_diagnostics.txt
    
   
  • Questi comandi creano i file gps_fix_data.txt e gps_diagnostics.txt, in cui verrà salvato l'argomento. Per interrompere la registrazione, premere Ctrl+C.

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

    
     rosmsg show <name_of_message>
    
   
  • Ad esempio, “sensor_msgs/NavSatFix” è un tipo di messaggio in ROS utilizzato per rappresentare i dati di localizzazione GPS (Global Positioning System), quali latitudine, longitudine, altitudine e altri parametri relativi alla posizione GPS.
    Per visualizzare la struttura del messaggio“sensor_msgs/NavSatFix”, utilizzare il comando:
    
     rosmsg mostra sensor_msgs/NavSatFix
    
   
  1. Per visualizzare l'elenco dei servizi ROS attivi che consentono ai nodi di inviare richieste e ricevere risposte, utilizzare il comando:
    
     elenco dei servizi di assistenza
    
   
  1. Per richiamare il servizio, utilizzare il comando nel formato:
    
     rosservice call <name_of_service> <type_srv> <request>
    
   
  • Questo servizio fornirà il risultato.

    Ad esempio, per ottenere la configurazione corrente del logger del Node u-blox, che può essere utile ai fini del debug e del monitoraggio, utilizzare il comando:

    
     rosservice info /ublox/get_loggers
    
   

Se vuoi seguire questo tutorial, abbiamo tutti i prodotti disponibili in magazzino e pronti per la spedizione:

Hai ancora problemi?

Contattaci per ricevere assistenza da un vero ingegnere — non dall’intelligenza artificiale — oppure richiedi il tutorial che ti manca

Got any questions or requests?
Contact us! We'll answer <24 hours!

Contatta ArduSimple
Chiudi

Ti invieremo via e-mail un link a questo post

Invia il post via e-mail

Accedi al tuo account e ai tuoi ordini

Oppure

Sei un nuovo cliente? Crea il tuo account
ArduSimple – apparecchiature e soluzioni di rilevamento RTK ad alta precisione, in tutta semplicità

Vuoi saperne di più sul GPS e sull'RTK?

Se al momento sei impegnato, i nostri tecnici possono inviarti 3 brevi e-mail con tutte le informazioni necessarie per avviare il tuo progetto.