Nuova sezione libri disponibile!

Benvenuto a ROS 2.0

Ludovico Russo

lettura in 4 minuti

Lo avevo provato qualche tempo fa, quando era ancora alla seconda release alpha, e poi mi sono disinteressato al progetto e l'ho seguito da molto lontano. Ma finalmente, all'inizio di quest'anno, la prima release stabile, ROS Ardent Apalone e io ho finalmente la possibilità di metterci le mani sopra!

Aspetta un momento, di cosa si parla? Non eravamo a ROS Lunar?

Immagino che molti che non seguono assiduamente il mondo ROS stiano iniziando a farsi un po' di domande, perciò andiamo con ordine.

ROS nasce storicamente con un ben preciso obiettivo: Fare Ricerca sulla Robotica, o meglio, abilitare e semplificare la ricerca della robotica di servizio. La prima versione di ROS è nata quindi con l'università in testa, non l'industria, ed il progetto si è poi evoluto a partire da una base che aveva in mente questo obiettivo.

Probabilmente gli stessi ideatori originali di ROS non immaginavano quello che ROS sarebbe diventato e cosa avrebbe rappresentato: un progetto di dimensioni planetarie che esce dal mondo puramente universitario e approda nel mondo industriale, dove standard di funzionamento, robustezza e sicurezza sono necesssari. Contemporaneamente, l'evoluzione della ricerca, il crescente interesse e l'enorme community di Robot Developers creatasi intorno a ROS hanno dato vita a nuovi casi d'uso, e ROS ha iniziato a mostrare i primi segni di immaturità. Le critiche su ROS fioccano, e sono più o meno le seguenti:

  • non è Robusto
  • non è Real Time
  • è complesso da apprendere
  • non usa protocolli e pattern adeguati
  • è un casino quando lavori con più di due robot
  • è basato su Python 2
  • ecc.

E sono tutte critiche giustissime, che anche io, da sviluppatore ed entusiasta del progetto, noto ogni giorno.

Nel tempo, la community si è data da fare, e sono uscite varie patch che tentavano di risolvere i vari limiti che ROS ha:

Ad un certo punto, ci si è resi conto che era necessario un profondo ripensamento alla base di ROS, e è quindi nato ROS 2.0, che non è altro che una completa reimplementazione di ROS, partendo dalle stesse basi del progetto originale ma includendo le nuove tecnologie, i nuovi casi d'uso e dandogli un taglio più molto più robusto e industriale. Trovate qui un interessante articolo che spiega nel dettaglio le motivazioni.

Guardate che bella l'architettura :D

ROS 2.0 Installazione

ROS 2.0 Ardent Apalone, primi test. Ha senso migrare?

ROS 2.0 è in fare di sviluppo da circa 2 anni e mezzo, e finalmente, come detto sopra, è stata rilasciata la prima release stabile.

Ed io non ho perso tempo per installarla.

ROS 2.0 Installazione

Iniziano ad esserci dentro un po' di chicche e carinerie varie:

  • Nativo su Python 3.0 (finally)
  • Supporto a molti linguaggi di programmazione, anche se la base è ancora C++ e Python
  • Linux RT
  • eccetera

Al momento mi sono limitato a leggere la doc e iniziare ad installarlo sul mio PC (nel momento in cui scrivo sto aspettando il download dei vari pacchetti). Ecco alcune cose che ho capito..

Al momento, ROS 2 include solo quello che in ROS è chiamato core, cioè l'insieme dei funzionamenti base che abilitano la comunicazione e la gestione dei pacchetti. Da ora in avanti seguirà la parte di migrazione e sapremo probabilmente solo tra qualche mese se sarà approvato ed utilizzato dalla community (la forza di ROS è la community, non ROS in se).

Ancora quindi non ha troppo senso iniziare a guardarlo, ma certamente io lo farò per interesse e per divertimento. Se il progetto prenderà veramente il posto per cui è nato, cioè una naturale evoluzione del ROS originale, è sicuramente un'ottimo momento per iniziare a contribuirci!

:D

Video

Vi lascio con un video in cui spiego cosa ne penso e le prime impressioni a caldo dopo averlo provato!

Le repo citate nel video sono le seguenti:

Ti è piaciuto questo post?

Registrati alla newsletter per rimanere sempre aggiornato!

Ci tengo alla tua privacy. Leggi di più sulla mia Privacy Policy.

Ti potrebbe anche interessare

Non avete un robot? C'è il robot in cloud accessibile da remoto tramite il vostro PC o da cellulare
Non avete un robot? C'è il robot in cloud accessibile da remoto tramite il vostro PC o cellulare
Avete problemi hardware? C'è il robot in cloud accessibile da remoto tramite il vostro PC o cellulare
Avete problemi hardware? C'è il robot in cloud accessibile da remoto tramite il vostro PC o cellulare
Installiamo ROS su Raspberry Pi
Un breve tutorial su come utilizzare ROS sul Raspberry Pi
Video Corso ROS Rokers - Completati i video di Introduzione
Sono disponibili online i video tutorial del corso di ROS partito dalla community Rokers
NTBD: guida step by step
Cos'è e come utilizzare NTBD step by step, primo articolo della serie
Inviare Goals alla Navigation Stack - versione nodo ROS Python
Inviare un goal all ROS navigation stack utilizzando un nodo Python
Inviare una sequenza di Goals alla ROS NavStack usando Python
Inviare una sequenza di pose desiderate alla ROS Navigation Stack usando un nodo Python
Come creare messaggi custom in ROS
Creare nuovi tipi di messaggio ROS
Usare il braccio robotico Dobot con ROS
Come usare il braccio robotico con Robot Operating System
Un Video Corso di ROS
Il mio video corso su come utilizzare ROS è disponibile
Sviluppiamo un Robot con tecnologie Open Source
Inizio una serie di videoguide, in cui voglio introdurvi al mondo della robotica di servizio in modo pratico, facendo vedere come è possibilile, sfruttando tecnologie completamente Open Source, quali Arduino, Raspberry Pi, ROS e Docker, costruire un piccolo robot di Servizio.
Robot Open Source - Introduzione a Docker
È disponibile il video "Introduzione a Docker".
Buildare e usare container Docker per Raspberry Pi
In questa guida vediamo come buildare ed utilizzare Docker su Raspberry Pi (ed in generale sistemi Linux Embedded) per velocizzare la produzione di applicazioni Linux Embedded
Robot Open Source - Docker e Raspberry
È disponibile il video "Docker e Raspberry".