Robot Operating System (ROS) è un insieme di framework per lo sviluppo e la programmazione di robot.

Caratteristiche Fornisce le stesse funzioni offerte da un sistema operativo su un cluster composto da diversi tipi di elaboratori. ROS fornisce i servizi standard di un sistema operativo, come: astrazione dell'hardware, controllo dei dispositivi tramite driver, comunicazione tra processi, gestione delle applicazioni (package) e altre funzioni di uso comune. Un insieme di processi all'interno di ROS si possono rappresentare in un grafo come dei nodi che possono ricevere, inviare e multiplexare i messaggi provenienti da e verso altri nodi, sensori e attuatori. Nonostante l'importanza della reattività e della bassa latenza nelle operazioni di controllo di un robot, ROS non è un sistema operativo sistema real-time, sebbene sia possibile integrare ROS con dei moduli real-time.

Componenti Nell'architettura di ROS i software possono essere raggruppati in tre categorie:

strumenti per lo sviluppo e pubblicazione di software basato su ROS; librerie utilizzabili dai processi ROS client come roscpp, rospy e roslisp; pacchetti (packages) contenenti applicazioni e codice che usa una o più librerie per processi ROS client.

Linguaggi di programmazione Sia gli strumenti per lo sviluppo che le librerie sono indipendenti dal linguaggio di programmazione utilizzato (C++, Python e LISP) e sono pubblicati sotto licenza BSD. Per questo motivo sono software libero utilizzabile sia per scopi commerciali che di ricerca. La maggior parte dei pacchetti è stata rilasciata usando diverse licenze open source. Questi pacchetti realizzano le funzionalità di uso comune come: drivers, modelli tridimensionali di robot, simulatore 3D e 2D, visione delle immagini, strumenti per la localizzazione, strumenti per l'utilizzo delle mappe e altri algoritmi.

Supporto Le principali librerie per processi ROS client sono orientate verso i sistemi operativi Unix, soprattutto a causa della loro dipendenza da altri software open source. Ubuntu Linux è elencato come sistema operativo "ufficialmente supportato", mentre altri sistemi come Fedora, Android, Arch Linux, e Microsoft Windows sono supportati solo come "sperimentali" dalla comunità. Altre librerie come rosjava e roslibjs, hanno permesso di supportare MATLAB e i tradizionali web browser.

Note

Voci correlate Robot Hardware libero Software libero

Altri progetti

Collegamenti esterni

Categoria:Simulatori 3D per la robotica