ZeroDDS teste un DDS en Rust pour ROS 2

La release candidate de ZeroDDS ajoute une option Rust à la couche DDS utilisée par ROS 2, avec une prudence importante sur son statut préproduction.

Zero Objects a publié le 19 juin la version v1.0.0-rc.3 de ZeroDDS, une implémentation open source de DDS écrite en Rust. DDS, pour Data Distribution Service, est un standard de communication temps réel très utilisé dans les systèmes distribués et dans ROS 2, où il sert de couche de transport entre nœuds, capteurs et actionneurs. La nouveauté n’est pas un robot visible, mais une brique de plomberie robotique : la release GitHub livre notamment des paquets d’installation et des archives pour plusieurs plateformes, ainsi que des artefacts nommés rmw-zerodds-shim, destinés à relier cette pile DDS au modèle ROS 2.

Le point intéressant est le choix technique. ROS 2 s’appuie déjà sur plusieurs middlewares DDS, par exemple Cyclone DDS, Fast DDS ou Connext selon les environnements. ZeroDDS propose une autre voie : une base en Rust, langage apprécié pour ses garanties de mémoire, avec l’ambition de réduire certaines classes d’erreurs classiques en C ou C++. Dans un robot, ce genre de détail peut compter. Un middleware ne planifie pas une trajectoire et ne reconnaît pas un objet, mais il transporte les messages dont dépendent la perception, le contrôle et la supervision. Quand cette couche se bloque, perd des messages ou diverge entre machines, tout le robot devient difficile à diagnostiquer.

La prudence est indispensable. Le dépôt indique encore que l’identifiant fournisseur OMG de ZeroDDS est en attente. Cela signifie que, même si le projet revendique une compatibilité filaire avec des piles DDS établies, il ne présente pas encore cette partie comme prête pour des déploiements inter-fournisseurs en production. La version publiée est aussi une release candidate, donc une étape de validation avant une version stable. Pour Mindshot, c’est précisément l’intérêt de la brève : le signal est assez concret pour être suivi, mais pas assez mûr pour être traité comme une adoption industrielle acquise.

Ce que cela change, à court terme, concerne surtout les équipes qui testent des architectures ROS 2 ou des simulateurs distribués. Elles peuvent évaluer un DDS en Rust, mesurer son comportement avec leurs profils de qualité de service, et regarder si l’intégration RMW tient dans leurs cas d’usage. RMW est l’interface qui permet à ROS 2 de brancher différents middlewares sans réécrire l’application. Si ZeroDDS franchit les étapes restantes, il ajoutera une option de plus dans un choix souvent sous-estimé : la fiabilité du bus logiciel qui fait parler les pièces du robot.