ROS: il sistema operativo per la robotica open source

ROS (Robot Operating System) è il middleware open source di Willow Garage che standardizza lo sviluppo robotico con comunicazione publish/subscribe, astrazione hardware e simulazione.

Open SourceR&D Open SourceROSRoboticaMiddlewareSensori

Il problema della frammentazione robotica

Ogni laboratorio di robotica, fino alla fine degli anni 2000, sviluppa il proprio software partendo quasi da zero. I driver per i sensori, gli algoritmi di navigazione, i sistemi di pianificazione del movimento: tutto viene riscritto per ogni nuovo robot, per ogni nuovo progetto. Il codice è strettamente accoppiato all’hardware specifico e raramente riutilizzabile.

Willow Garage, un laboratorio di ricerca fondato nel 2006 in California, decide di affrontare il problema alla radice. Nel gennaio 2010 rilascia la versione 1.0 di ROS (Robot Operating System), nome in codice Box Turtle. Nonostante il nome, ROS non è un sistema operativo: è un middleware — uno strato software che si posiziona tra il sistema operativo reale (tipicamente Linux) e le applicazioni robotiche, fornendo servizi comuni a tutti i robot.

Architettura a nodi

L’architettura di ROS è basata su nodi: processi indipendenti che svolgono ciascuno una funzione specifica — leggere un sensore, calcolare una traiettoria, comandare un attuatore. I nodi comunicano tra loro attraverso un meccanismo di publish/subscribe: un nodo pubblica messaggi su un topic (ad esempio i dati del laser scanner) e tutti i nodi interessati si iscrivono a quel topic per riceverli.

Questo disaccoppiamento è fondamentale. Il nodo che elabora i dati del laser non ha bisogno di sapere quale laser specifico li produce: l’astrazione hardware permette di sostituire un sensore con un altro senza modificare il software di elaborazione. Allo stesso modo, un algoritmo di navigazione può funzionare su robot fisicamente diversi, purché pubblichino i dati nello stesso formato.

Strumenti di sviluppo e simulazione

ROS include rviz, uno strumento di visualizzazione 3D che mostra in tempo reale i dati dei sensori, le mappe costruite dal robot, le traiettorie pianificate e lo stato delle articolazioni. Per lo sviluppo e il test senza hardware fisico, il simulatore Gazebo permette di creare ambienti virtuali completi con fisica realistica, in cui i robot virtuali eseguono lo stesso codice ROS che girerebbe sulla macchina reale.

Il sistema di build gestisce le dipendenze tra pacchetti e la compilazione incrociata. La documentazione, i tutorial e un formato standard per i pacchetti favoriscono la condivisione del codice tra gruppi di ricerca.

ROS è rilasciato sotto licenza BSD, una scelta che consente l’uso anche in prodotti commerciali. Il progetto trasforma la robotica da disciplina artigianale a ingegneria del software collaborativa.

Link: ros.org

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi