6 aprile 2021

micro-ROS: realizzare gratis sistemi robotici distribuiti!

In un precedente post avevo parlato del middleware open spurce ROS (acronimo di Robot Operating System) che mette a disposizione un insieme di librerie software e strumenti con cui sviluppare le funzionalità che si intendono dare al proprio robot.

Finora, per le funzioni di basso livello come l'accesso al controllo, ai sensori e agli attuatori in esecuzione su microcontrollori di bordo, non è stata possibile una perfetta integrazione di questo middleware. micro-ROS, lanciato da un'iniziativa di ricerca europea, affronta questo punto e porta ROS sui microcontrollori.

micro-ROS è un framework robotico che mira a componenti robot incorporati e con risorse computazionali estremamente limitate. Questi dispositivi sono caratterizzati da: un sistema operativo minimo in tempo reale o nessun sistema operativo, alimentazione a batteria, connessioni wireless a bassa larghezza di banda e funzionamento intermittente con periodi di sospensione.

Sfruttando questo framework diventa possibile l'interoperabilità dei robot tradizionali con sensori e dispositivi IoT, creando sistemi robotici realmente distribuiti e consentendo la creazione di robot più piccoli utilizzando gli stessi strumenti e sfruttando la crescente sovrapposizione tra robotica, dispositivi integrati intelligenti e IoT.

Nel video riportato di seguito viene fornita un'introduzione di micro-ROS.

Ma il contributo di micro-ROS va oltre l'integrazione e la portabilità del software basato su ROS ai microcontrollori.

Condividendo ricche informazioni di contesto con un'ampia gamma di soluzioni IoT, i robot dotati di micro-ROS diventano più intelligenti e possono adattarsi meglio ai loro ambienti. In definitiva si aumenta la capacità dei sistemi robotici realmente distribuiti di interagire in modo ancora più intelligente con il mondo che li circonda.

Faccio un esempio per far comprendere meglio il ruolo di micro-ROS.

I veicoli aerei senza pilota, noti come droni, sono uno degli ambienti più complessi in robotica a causa delle loro risorse di calcolo a bordo estremamente limitate. Questo fatto è più notevole nei micro veicoli aerei (MAV), veicoli inferiori a 15cm in qualsiasi dimensione.

Immaginiamo ora il seguente scenario: un MAV sorvola una data area, difficilmente raggiungibile dall'uomo, comandato da un operatore di volo mediante una stazione di controllo a terra (GCS). All'interno di questa area sono presenti dei sensori che prendono misure ambientali (temperatura, pressione e umidità).

L' operatore di volo comanda il MAV verso i sensori remoti e una volta posizionato sopra di essi, il MAV stabilirà una connessione con il sensore remoto per raccogliere i suoi dati. Infine, l'operatore di volo comanda il MAV verso la posizione iniziale.

Il GCS funziona come un server utilizzando un'applicazione micro-ROS Agent, mentre il MAV funziona come un client attraverso
un'applicazione client micro-ROS. La connessione tra i due è continua durante l'intera missione
ed è fatto tramite il protocollo real-time proprietario. Invece il collegamento tra il MAV e i sensori remoti segue uno schema peer-to-peer. Entrambi
 lavorano come client che comunicano attraverso un'applicazione micro-ROS Agent lite in esecuzione sul sensore remoto.

Quello appena descritto è uno dei tanti possibili scenari d'uso in cui è possibile sfruttare le potenzialità offerte da micro-ROS.

Quindi se anche voi volete realizzare delle applicazioni robotiche distribuite che devono essere in esecuzione su sistemi con ridotte capacità allora micro-ROS vi aiuterà a realizzarle riducendo sia tempi che i costi annessi.

Se ti è piaciuto l'articolo, segui il feed per tenerti sempre aggiornato sui nuovi contenuti del blog!