I limiti di ROS 1
ROS (Robot Operating System) è il framework che dal 2007 ha standardizzato lo sviluppo software per la robotica, fornendo un middleware di comunicazione, strumenti di visualizzazione, simulazione e migliaia di pacchetti riutilizzabili. Ma ROS 1 ha limitazioni strutturali che ne impediscono l’uso in produzione industriale: un master centralizzato (roscore) che rappresenta un single point of failure, nessun supporto per comunicazioni real-time, assenza di meccanismi di sicurezza integrati e dipendenza esclusiva da Ubuntu Linux.
ROS 2, la cui prima release stabile Ardent Apalone viene pubblicata dalla Open Source Robotics Foundation (OSRF) nel dicembre 2017, è una riscrittura progettata per superare questi limiti mantenendo i concetti fondamentali che hanno reso ROS 1 lo standard nella ricerca robotica.
DDS come layer di comunicazione
Il cambiamento architetturale di maggiore impatto è la sostituzione del sistema di comunicazione proprietario di ROS 1 con il Data Distribution Service (DDS), uno standard industriale dell’Object Management Group (OMG) per la comunicazione publish-subscribe distribuita. DDS elimina il master centralizzato: i nodi si scoprono automaticamente sulla rete tramite un meccanismo di discovery decentralizzato. Se un nodo si disconnette, il resto del sistema continua a funzionare.
DDS porta con sé il supporto nativo per Quality of Service (QoS): ogni topic può configurare politiche di affidabilità, durabilità, deadline e priorità. Un sensore di sicurezza può richiedere consegna garantita con latenza minima, mentre un feed video può tollerare perdita di pacchetti.
Real-time e lifecycle management
ROS 2 introduce il supporto per sistemi real-time: allocazione di memoria deterministica, executor configurabili e compatibilità con kernel real-time come PREEMPT_RT. Queste caratteristiche sono essenziali per robot industriali dove un ritardo nella risposta a un sensore può causare danni fisici.
Il lifecycle management dei nodi definisce stati espliciti — unconfigured, inactive, active, finalized — con transizioni controllate. Un nodo può essere configurato, attivato e disattivato senza riavviare il sistema, permettendo aggiornamenti a caldo e gestione degli errori strutturata.
Sicurezza e multi-piattaforma
La sicurezza è integrata a livello di middleware con supporto per autenticazione, autorizzazione e crittografia delle comunicazioni basata su DDS Security. ROS 2 supporta ufficialmente Ubuntu, macOS e Windows, aprendo lo sviluppo robotico a piattaforme precedentemente escluse.
Link: docs.ros2.org
