Fast DDS
Le middleware DDS haute performance d'eProsima — le transport par défaut sous ROS 2
Licence
Apache-2.0
Aperçu
Fast DDS (anciennement Fast RTPS) est l'implémentation C++ par eProsima du standard Data Distribution Service de l'OMG et de son protocole filaire RTPS. Il fournit une communication publish-subscribe décentralisée, sans broker, avec un contrôle fin de la qualité de service (QoS), et c'est le middleware par défaut de ROS 2 (rmw_fastrtps) — ce qui signifie que la plupart des robots ROS 2 du monde font tourner Fast DDS sous chaque topic, service et action.
Fast DDS implémente la spécification DDS complète : les DomainParticipants, topics, publishers et subscribers se découvrent automatiquement via UDP, TCP, mémoire partagée ou un transport personnalisé, et communiquent en pair-à-pair avec des politiques de QoS couvrant fiabilité, durabilité, échéances, liveliness et historique. Les fonctionnalités de performance incluent un transport en mémoire partagée avec livraison zero-copy pour les processus sur un même hôte, des contrôleurs de flux asynchrones, ainsi qu'un mode de découverte statique et un Discovery Server pour les réseaux vastes ou contraints où la découverte multicast ne passe pas à l'échelle. Le projet est livré avec Fast DDS-Gen (génération de code à partir d'IDL), des hooks de statistiques et de monitoring utilisés par Fast DDS Monitor d'eProsima, et il sous-tend micro-ROS sur microcontrôleurs. En tant que couche rmw par défaut de ROS 2, ses versions suivent de près les distributions ROS 2 et il est éprouvé par l'un des plus grands déploiements robotiques de tous les middlewares.
Pourquoi c'est important
Fast DDS est sans doute la brique d'infrastructure robotique la plus largement déployée que la plupart des développeurs ne regardent jamais : en tant que middleware par défaut de ROS 2, il transporte le trafic de la majorité des robots ROS 2, et c'est l'une des rares implémentations DDS open source complètes bénéficiant d'un support commercial.
Le problème résolu
Les systèmes robotiques distribués ont besoin d'une communication fiable, à faible latence et configurable entre processus et machines, sans broker central comme point de défaillance unique. Fast DDS fournit un publish-subscribe basé sur des standards avec le contrôle de QoS qu'exigent les systèmes temps réel, des microcontrôleurs aux flottes multi-robots.
Points clés
- Implémentation open source complète du standard DDS de l'OMG et du protocole filaire RTPS
- Middleware par défaut de ROS 2 (rmw_fastrtps) sur les distributions ROS 2 récentes
- Transports en mémoire partagée et zero-copy pour la communication haut débit sur un même hôte
- Le Discovery Server et la découverte statique font passer DDS à l'échelle au-delà des réseaux compatibles multicast
- Propulse micro-ROS pour les appareils de classe microcontrôleur via eProsima Micro XRCE-DDS
Pour qui
- Développeurs ROS 2 réglant la communication et la QoS
- Ingénieurs en systèmes distribués et temps réel
- Équipes plateforme et infrastructure robotique
- Développeurs embarqué utilisant micro-ROS
Limites
- Les concepts DDS et les matrices de QoS ont une courbe d'apprentissage abrupte
- La configuration des profils en XML est verbeuse et il est facile de se tromper subtilement
- L'interopérabilité DDS entre fournisseurs au-delà de la base RTPS peut demander de la vigilance
- Le réglage fin pour les réseaux Wi-Fi avec pertes exige souvent une expertise au niveau transport