Salta al contenuto

Cos'è ROS 2?

Il middleware open source diventato standard de facto per scrivere software robotico, non un sistema operativo.

ROS 2 (Robot Operating System 2) è il framework open source diventato lo standard de facto per scrivere software robotico: nonostante il nome, non è un sistema operativo, ma un middleware, uno strato di comunicazione e librerie eseguito su Linux, Windows o altri sistemi, mantenuto da Open Robotics / Open Source Robotics Foundation. Organizza il codice in nodi indipendenti che si scambiano dati tramite tre meccanismi: topic per la comunicazione asincrona a pubblicazione/sottoscrizione, servizi per le richieste sincrone con risposta, azioni per compiti lunghi che restituiscono avanzamento e risultato. Sotto il cofano gira quasi sempre su DDS (Data Distribution Service), lo standard OMG che gestisce la individuazione reciproca dei nodi e la qualità del servizio, senza bisogno di un processo centrale che coordini tutto. Le versioni escono ogni anno con nomi in codice in ordine alfabetico e a tema animale (Jazzy Jalisco, Kilted Kaiju, Lyrical Luth), che scandiscono ciclo di vita e supporto a lungo termine delle distribuzioni.

Leggi anche: Physical AI · AI che esce dallo schermo e agisce nel mondo fisico: robot, linee di produzione, magazzini. Prima del robot vengono i dati.

Architettura: due livelli e l'addio al nodo master

ROS 2 separa un'interfaccia client (rcl, con i binding rclcpp e rclpy) da un'interfaccia middleware (rmw) che nasconde i dettagli dell'implementazione sottostante, quasi sempre DDS (fonte: documentazione ROS). Il cambiamento rispetto a ROS 1 è architetturale: ROS 1 dipendeva da un roscore centrale, un single point of failure. Con DDS la scoperta dei nodi è decentralizzata e peer-to-peer, la qualità del servizio (QoS) è configurabile per requisito e SROS2 aggiunge un modello di sicurezza basato su DDS Security che ROS 1 non aveva (fonte: design.ros2.org). I nodi collaborano tramite topic per flussi continui, servizi per richieste puntuali con risposta immediata, azioni per obiettivi lunghi come un AGV che completa un percorso.

Quando adottarlo, quando no

ROS 2 si colloca allo strato di integrazione software di un sistema robotico: è ciò con cui si scrivono i nodi che fanno percepire, decidere e muovere un robot, non l'AI fisica che decide cosa fare né il modello che la governa. Ha senso adottarlo quando si integra hardware eterogeneo di più fornitori o quando serve un ecosistema di librerie già pronte (navigazione, percezione, simulazione) invece di scriverle da zero. Non ha senso forzarlo su un dispositivo singolo con un solo microcontrollore e nessuna comunicazione distribuita: lì un firmware dedicato resta più leggero.

Un esempio enterprise

Adottando ROS 2, un costruttore italiano di macchine automatiche che integra bracci robotici e veicoli a guida autonoma di più fornitori nella stessa linea guadagna un livello comune su cui far dialogare hardware eterogeneo e la possibilità di simulare l'integrazione prima di installarla in stabilimento (tipicamente con Gazebo o simulatori compatibili, il territorio del digital twin). In cambio si assume la responsabilità di manutenere quello strato nel tempo: aggiornare le distribuzioni prima che scadano e formare un team che sappia debuggare un grafo di nodi distribuito. Il limite va detto esplicitamente ai committenti: ROS 2 non è certificato per la sicurezza funzionale. Arresti di emergenza e limiti di coppia e velocità restano su PLC e sistemi certificati separati (per esempio IEC 61508 o ISO 13849), con ROS 2 relegato alla logica applicativa non safety-critical.

Perché conta per chi decide

Adottare ROS 2 impegna l'azienda per anni su un ecosistema e sulle competenze che richiede, con un ciclo di rilascio annuale da seguire e una manutenzione che non si ferma al momento dell'installazione. Chi commissiona un'integrazione robotica deve sapere che ROS 2 riduce il rischio di lock-in verso un singolo fornitore di hardware, ma sposta parte della responsabilità di manutenzione in casa o su chi la eroga, e che la sicurezza funzionale resta un problema separato, da risolvere su PLC e sistemi certificati fuori dal middleware.

  • Physical AI · AI che esce dallo schermo e agisce nel mondo fisico: robot, linee di produzione, magazzini. Prima del robot vengono i dati.
  • Smart robots · Robot che percepiscono e decidono con l'AI, non solo eseguono sequenze pre-programmate: sono un prodotto dati su ruote.
  • Gemello digitale (Digital twin) · Rappresentazione digitale di un impianto o un processo, aggiornata in tempo reale dai dati: un problema di integrazione dati, non di CAD.
  • IIoT (Industrial IoT) · La rete di sensori e macchine connesse che genera i dati grezzi di uno stabilimento: il livello sorgente su cui si costruisce ogni AI industriale.
  • Edge AI · Inferenza AI eseguita vicino a dove i dati nascono, non nel cloud: meno latenza, dati che restano in casa, decisioni in tempo reale.

Vedi nell'universo

Se l'AI ti serve in produzione, non in una demo, è il mio lavoro.

VEDI INTEGRAZIONI AI

Oppure scrivimi.