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:

Copy to Clipboard

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:

Copy to Clipboard

Adesso apriamo un’altra shell e lanciamo il nodo grafico di Turtlesim:

Copy to Clipboard

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:

Copy to Clipboard

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:

Copy to Clipboard

Questo ci restituirà la lista dei nodi operativi, che nel nostro esempio saranno:

Copy to Clipboard

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:

Copy to Clipboard

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:

Copy to Clipboard

Per terminare, come già discusso nel precedente articolo, è possibile generare una rappresentazione grafica dei nodi e delle loro relazioni:

Copy to Clipboard

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.