Progetto di una interfaccia robotica Arduino-ROS – Parte 1

robotica

Le schede Arduino stanno diventando un elemento essenziale nei robot fai-da-te e nei gadget elettronici. Ci sono molte ragioni per questo, come la semplicità della programmazione, il basso costo e l'ottimo supporto della comunità. Ma, la ragione principale del successo di Arduino è la facilità di prototipazione. Anche se sul mercato sono disponibili alcune schede basate su ARM che possono funzionare meglio di Arduino, non è scontato che possano conquistare hobbisti e fai-da-te. Questo articolo è un progetto/tutorial di una interfaccia che consente alla scheda Arduino di accedere alla robotica complessa mediante l’integrazione del software ROS, il sistema operativo del robot.

Introduzione

Trattando di robotica, sappiamo già che le schede Arduino vengono utilizzate nei robot fai-da-te, ma queste schede, pur essendo abbastanza potenti, non sono in grado di gestire tutte le diverse funzioni in un robot complesso. Chiariamo con un esempio quanto sopra asserito. Immaginiamo di costruire un robot mobile autonomo in grado di mappare l'ambiente circostante e navigare autonomamente. Beh, Arduino non può fare questo lavoro da solo, poiché Arduino è solo una piattaforma di microcontrollore basata sul controller AVR/ARM, ed è fondamentalmente una scheda I/O che può eseguire solo una quantità minima di calcolo da sola. Quindi, ad esempio, solo con Arduino non possiamo utilizzare un'applicazione di visione artificiale. Premesso ciò, come possiamo usare questa scheda in un robot di fascia alta? Possiamo usare Arduino come scheda I/O fondamentalmente per interfacciare sensori robotici, IMU (Unità di Misura Inerziale) e attuatori come motori in corrente continua, servomotori, ecc. Per eseguire elaborazioni di fascia alta nei robot, potremmo aver bisogno di computer con framework software per programmare i robot. ROS (Robot Operating System) è un popolare framework software di robotica per operare con robot complessi come ROSbot, TurtleBot, ecc. Questi robot di fascia alta hanno numerosi sensori, quindi l'elaborazione dei dati è un compito oneroso. ROS fornisce un mezzo intermedio (noto con il termine inglese “middleware”) per il passaggio di messaggi (per così dire) che può essere utilizzato per comunicare con diversi processi (nodi). Ad esempio, ROS potrebbe disporre di un nodo per leggere e scrivere su un Arduino e un nodo diverso per ottenere immagini da una fotocamera. Inoltre, ciascuno di questi nodi può comunicare e scambiare dati tra loro. Ma la domanda che ora ci poniamo è: come interfacciare Arduino a ROS? Ovvero, come si scambiano i dati dei sensori e i messaggi di controllo da Arduino al framework di comunicazione ROS? Prima di descrivere la modalità d'interfacciamento, è necessario esaminare alcuni concetti di base del ROS, che è proprio ciò che faremo di seguito sinteticamente.

ROS

Come accennato prima, ROS è un meta sistema operativo, il che significa che consente di fornire funzionalità ma necessita di un sistema operativo host per essere eseguito. Le caratteristiche principali di ROS sono:

Middleware di comunicazione: questo mezzo intermedio di comunicazione consente la comunicazione tra processi, tra nodi/processi ROS per lo scambio di dati. La comunicazione viene effettuata da un meccanismo di pubblicazione/sottoscrizione, ovvero un nodo invia dati e l'altro li riceve. I principali paradigmi di comunicazione in ROS sono argomenti, messaggi, servizi e parametri.

Strumenti: ROS ha un'ampia varietà di GUI e strumenti a riga di comando per visualizzare ed eseguire il debug dei dati ROS. Alcuni degli strumenti sono Rviz (ROS Visualizer) e rqt.

Funzionalità: oltre al middleware di comunicazione, ROS dispone di un'ampia varietà di funzionalità che possono essere utilizzate in qualsiasi robot senza la necessità di averne una conoscenza approfondita. Alcune delle funzionalità di ROS sono la stima della posizione del robot, la localizzazione, la mappatura e la navigazione.

Ecosistema: esiste una comunità mondiale attiva per lo sviluppo e il supporto di ROS.

In Figura 1 è riportata una schematizzazione dei campi di applicazione del sistema operativo robotico ROS.

[...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 1511 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend