Robot Operating System
Robot Operating System (ROS) è un insieme di framework per lo sviluppo e la programmazione di robot.
Robot Operating System software | |
---|---|
![]() | |
![]() | |
Genere | Integrated development environment |
Sviluppatore | Willow Garage Università di Stanford |
Data prima versione | 2007 |
Ultima versione | Kinetic Kame[1] (23 maggio 2016) |
Sistema operativo | GNU/Linux |
Linguaggio | C++ Python |
Licenza | licenza BSD (licenza libera) |
Sito web | www.ros.org/ |
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 real-time, sebbene è possibile integrare ROS con dei moduli real-time.[2]
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, strumenti per la localizzazione 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
- ^ ROS Kinetic Kame, su wiki.ros.org. URL consultato il 25 febbraio 2017.
- ^ (EN) ROS-Introduction, su wiki.ros.org. URL consultato il 25 gennaio 2017.
Collegamenti esterni
- (EN) Sito ufficiale, su ros.org.