Dopo aver dato una rapida occhiata al tool ROSGraph, oggi faremo un esperimento con un altro oggetto utile per fare pratica con i comandi base che abbiamo visto sinora: Turtlesim.
Turtlesim è un’applicazione disponibile sulla piattaforma ROS che si pone lo scopo di illustrare ciò che ROS fa al livello più elementare in modo da darvi un’idea di ciò che farete in seguito con un vero robot.
Installare ROS Turtlesim
Se non fosse già stato installato con la procedura mostrata in questo articolo, apri una shell della tua installazione Linux e digita il seguente comando:
Il comando non farà altro che installare il pacchetto per la versione di ROS che avrai installato.
Per completezza, di seguito ti riporto le versioni che ho avuto modo di testare:
- ros-kinetic-turtlesim
- ros-melodic-turtlesim
- ros-noetic-turtlesim
Lanciamo ROS Turtlesim
Bene, a questo punto passiamo a lanciare il nodo rosmaster, come abbiamo già visto in articoli passati, è sufficiente, dopo essersi sincerati che eventuali nodi operativi siano stati bloccati, lanciare il seguente comando da una shell Linux:
Adesso apriamo un’altra shell e lanciamo il nodo grafico di Turtlesim:
Questo non farà altro che aprire una finestra dove potrete visionare una tartaruga al centro. Il nodo in questione rappresenta l’interfaccia grafica dell’applicativo.
Momentaneamente non possiamo fare nulla, è necessario lanciare un altro nodo che si occupi di gestire la movimentazione della tartaruga. A questo proposito, apriamo un’ulteriore shell e digitiamo il comando:
A questo punto possiamo utilizzare le frecce direzionali della nostra tastiera per vedere muovere la tartaruga.
Analizziamo la struttura
Turtlesim è composto da 2 nodi principali, uno che si occupa di visualizzare l’interfaccia grafica e un altro che gestisce gli input da tastiera per movimentare la tartaruga.
Per analizzare la struttura di questo semplice progetto, possiamo muoverci in diverse direzioni. Il primo approccio è quello di usare l’ormai noto comando:
Questo ci restituirà la lista dei nodi operativi, che nel nostro esempio saranno:
Il terzo rappresenta il nodo grafico, mentre il secondo rappresenta il listener attivo sull’input da tastiera.
Per avere ulteriori informazioni su un nodo specifico, ad esempio il terzo, è possibile anche eseguire il comando:
Attraverso questa istruzione è possibile recuperare le pubblicazioni, le sottoscrizioni e i servizi di un nodo, tutti concetti che andremo a discutere nei prossimi articoli.
Come già visto è possibile anche pingare i singoli nodi, per sinceraci che la comunicazione stia funzionando correttamente:
Per terminare, come già discusso nel precedente articolo, è possibile generare una rappresentazione grafica dei nodi e delle loro relazioni:
Il quale mostrerà i 2 nodi già discussi e come sia il teleop_turtle a comunicare informazioni circa la posizione della tartaruga al turtlesim.
Conclusioni
Abbiamo fatto un ulteriore passo avanti nella nostra conoscenza di ROS. In particolare, approfittando dei comandi visti nelle ultime lezioni, abbiamo lanciato il tool Turtlesim e abbiamo testato i vari comandi per analizzare la semplice struttura definita da quest’applicativo.
Nel prossimo articolo andreamo a vedere cosa sono i Topics, i Publisher e i Subscriber in ROS.
Scrivi un commento