ROS1-ROS2-architecture

Esperienza e Transizione da ROS a ROS 2 

Nel mondo della robotica moderna, la capacità di integrare rapidamente nuovi componenti e mantenere sistemi affidabili è cruciale. In questo contesto, il framework ROS (Robot Operating System) ha giocato per anni un ruolo fondamentale, sia nella ricerca che nello sviluppo industriale. Tuttavia, l’esperienza e transizione da ROS a ROS 2 sta diventando sempre più rilevante per gli sviluppatori.

Tuttavia, con la fine ufficiale del supporto a ROS 1 nel maggio 2025, molte aziende si trovano oggi di fronte a una decisione non più rimandabile: la migrazione a ROS 2.

In questo articolo condividiamo la nostra esperienza diretta e i vantaggi che abbiamo riscontrato nella transizione cercando di dare dei consigli utili.

ROS: Un Framework con dei limiti 

ROS non è un sistema operativo vero e proprio, bensì un framework di comunicazione modulare, basato sul paradigma publisher subscriber, che consente ai vari componenti software di comunicare tra loro. Nato in ambito universitario, ha rappresentato per anni una piattaforma aperta e ricchissima di risorse.

La facilità di suddividere il codice in moduli indipendenti ha favorito l’adozione rapida anche in ambito industriale. Tuttavia, ROS 1 non è stato progettato con i requisiti di sicurezza, scalabilità e real-time richiesti da molte applicazioni produttive applicabili alle aziende.

ROS 2: dall’Università all’Industria 

ROS 2 nasce dalla necessità di superare i limiti di ROS 1 ed essere applicabile ai processi industriali garantendo flessibilità, migliori prestazioni e più sicurezza.

A differenza di ROS 1 offre:

  • Un’architettura distribuita, non più centralizzata
  • Un sistema di comunicazione basato su DDS (Data Distribution Service), che consente di scegliere la tecnologia più adatta per ogni contesto
  • Miglioramenti significativi in termini di sicurezza e real-time
  • Nuove funzionalità come i lifecycle nodes e una gestione QoS ( Quality of Service) avanzata

La Transizione in Aitronik 

In Aitronik, avevamo già previsto una struttura software flessibile: il nostro codice è progettato per essere ROS-agnostic, con un layer di interfaccia separato. Questo approccio ci ha permesso, all’inizio del 2022, di completare la migrazione a ROS 2 in un solo mese.

Abbiamo semplicemente sostituito il layer ROS (che costituisce la parte minore del codice) con uno equivalente basato su ROS 2, mantenendo inalterato il resto del sistema. Una scelta strategica che si è rivelata vincente poiché la parte maggiore del codice è agnostica.

Per le sue caratteristiche, ROS 2 si è rivelato essere molto utile in contesti come:

  • Prototipazione rapida (Fast Prototyping)
  • Accesso a nuove funzionalità sviluppate della community 
  • Logging e analisi avanzata dei dati
  • Scelta di DDS con configurazioni specifiche per applicazioni con banda limitata

Va però usato con attenzione. La configurazione del Quality of Service (QoS), la gestione non più centrale dei parametri e l’ampia scelta di communication layers richiedono esperienza e precisione per evitare errori nel settaggio rendendo difficile l’utilizzo di ROS 2.

I nostri consigli per le Aziende che devono fare la migrazione

Se vi trovate ad affrontare la transizione a ROS 2, tenete in considerazione di:

  • L’assenza di una struttura centralizzata porta di conseguenza a non avere un unico parameter server per la gestione dei parametri utilizzati dai vari nodi. Tuttavia se inizialmente perdiamo il concetto di parametri globali, abbiamo però la possibilità di associare i parametri ai singoli nodi (tramite namespace) evitando conflitti e permettendone una gestione più ordinata.
  • Il sistema di launch dei nodi è stato migliorato e permette l’utilizzo di tre formati: python, xml, yaml. Consigliamo di utilizzare Python poiché permette di integrare altre librerie in fase di lancio per un’esecuzione più personalizzata. 
  • La creazione di più nodi su singolo processo, che prima avveniva implementando i “nodelet”, avviene adesso tramite il sistema di node composition che permette di scrivere il codice una sola volta senza fare distinzione tra nodi o component (nodelet). Successivamente, in fase di esecuzione è possibile scegliere se assegnare ad ogni nodo un processo o se comporre più nodi in . 
  • Seppur i DDS permettono una vasta libertà di utilizzo e configurazione, adesso è necessaria un’attenta configurazione della comunicazione. Questo rende l’approccio a ROS2 più ostico nel momento in cui ci troviamo in situazioni di bassa banda e alta latenza di comunicazione. 

Il nostro impegno come membri OSRA

Come membri ufficiali di OSRA (Open Source Robotics Alliance), contribuiamo attivamente allo sviluppo dell’ecosistema open-source per la robotica. L’Alleanza rappresenta una rete internazionale di aziende e organizzazioni che credono in un futuro della robotica trasparente, condiviso e interoperabile.

Essere parte di OSRA significa:

  • Condividere best practices e linee guida con i più importanti attori internazionali del settore
  • Partecipare alla definizione degli standard futuri
  • Contribuire allo sviluppo di tool, pacchetti e librerie a beneficio della community globale

Conclusione

ROS 2 rappresenta una nuova era per la robotica: più flessibile, performante e sicuro. Per un’azienda, investire in una migrazione strutturata e consapevole non è solo un’opzione ormai quasi forzata, ma una scelta strategica per restare competitivi.

La nostra esperienza dimostra che un approccio proattivo e metodico consente di ridurre i rischi della transizione ma anche di cogliere nuove opportunità per innovare.

Essere flessibili, costruendo architetture scalabili, ci consente di essere pronti ai cambiamenti di un mercato in continua evoluzione e, allo stesso tempo ci offre l’opportunità di costruire dei modelli per la robotica di domani.

RIMANI AGGIORNATO

Iscriviti alla nostra newsletter per vedere dove siamo diretti.

Sii il primo a sapere quando lanceremo il nostro servizio in nuove città e a ricevere gli ultimi aggiornamenti.