Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Fast DDS

Middleware DDS ad alte prestazioni di eProsima, il trasporto predefinito di ROS 2

Licenza

Apache-2.0

Panoramica

Fast DDS (in precedenza Fast RTPS) è l'implementazione in C++ di eProsima dello standard OMG Data Distribution Service e del suo protocollo di trasmissione RTPS. Offre una comunicazione publish-subscribe decentralizzata e senza broker, con un controllo granulare della Quality of Service, ed è il middleware predefinito di ROS 2 (rmw_fastrtps): la maggior parte dei robot ROS 2 nel mondo esegue Fast DDS sotto ogni topic, servizio e azione.

Fast DDS implementa l'intera specifica DDS: DomainParticipant, topic, publisher e subscriber si scoprono a vicenda automaticamente tramite UDP, TCP, memoria condivisa o un trasporto personalizzato, e comunicano peer-to-peer con policy QoS che coprono affidabilità, durabilità, scadenze, liveliness e cronologia. Tra le funzionalità per le prestazioni ci sono un trasporto a memoria condivisa con consegna zero-copy per i processi sullo stesso host, controller di flusso asincroni e una modalità di discovery statica, oltre a un Discovery Server per reti grandi o vincolate in cui la discovery multicast non scala. Il progetto include Fast DDS-Gen (generazione di codice da IDL) e hook di statistica e monitoraggio usati da Fast DDS Monitor di eProsima, ed è alla base di micro-ROS sui microcontrollori. Essendo il livello rmw predefinito di ROS 2, le sue release seguono da vicino le distribuzioni di ROS 2 ed è messo alla prova da uno dei più grandi deployment robotici di qualsiasi middleware.

Perché è importante

Fast DDS è probabilmente il componente dell'infrastruttura robotica più diffuso che la maggior parte degli sviluppatori non guarda mai: come middleware predefinito di ROS 2 trasporta il traffico della maggioranza dei robot ROS 2, ed è una delle poche implementazioni DDS open source complete e con supporto commerciale.

Il problema che risolve

I sistemi robotici distribuiti hanno bisogno di una comunicazione affidabile, a bassa latenza e configurabile tra processi e macchine, senza un broker centrale che rappresenti un singolo punto di guasto. Fast DDS offre una comunicazione publish-subscribe basata su standard, con il controllo QoS richiesto dai sistemi in tempo reale, dai microcontrollori alle flotte multi-robot.

Punti chiave

  • Implementazione open source completa dello standard OMG DDS e del protocollo di trasmissione RTPS
  • Middleware predefinito di ROS 2 (rmw_fastrtps) nelle distribuzioni recenti di ROS 2
  • Trasporti a memoria condivisa e zero-copy per una comunicazione ad alto throughput sullo stesso host
  • Discovery Server e discovery statica portano DDS oltre le reti adatte al multicast
  • Alimenta micro-ROS per dispositivi di classe microcontrollore tramite eProsima Micro XRCE-DDS

A chi si rivolge

  • Sviluppatori ROS 2 che ottimizzano comunicazione e QoS
  • Ingegneri di sistemi distribuiti e in tempo reale
  • Team di piattaforme e infrastrutture robotiche
  • Sviluppatori embedded che usano micro-ROS

Limiti

  • I concetti di DDS e le matrici QoS hanno una curva di apprendimento ripida
  • La configurazione dei profili in XML è prolissa ed è facile sbagliarla in modo sottile
  • L'interoperabilità DDS tra fornitori diversi oltre la base RTPS può richiedere attenzione
  • L'ottimizzazione per reti Wi-Fi con perdita di pacchetti richiede spesso competenze a livello di trasporto

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.