Robotics with Zenoh: From ROS 2 to ros-z and Beyond
Date6 maiHeure14:00 - 14:25Lieu Founders Cafe
Eclipse Zenoh s'est imposé comme un protocole de communication haute performance pour la robotique : pub/sub à faible latence, routage transparent depuis la mémoire partagée jusqu'au WAN, support intégré des queryables (une généralisation du RPC), utilisation efficace de la bande passante et topologies pair-à-pair ou routées transparentes. Son adoption par ROS 2 comme middleware de niveau 1 (rmw_zenoh, publié avec Kilted Kaiju) a validé ce que la communauté demandait.
Mais rmw_zenoh passe toujours par la pile d'abstraction RCL complète, en C/C++. En y travaillant, nous nous sommes demandé : et si nous construisions une pile ROS 2 nativement depuis Zenoh ? Pourrions-nous améliorer les performances ? La rendre plus extensible ? Tout en supportant les packages C/C++/Python existants ?
Cela nous a conduits à développer ros-z — une implémentation ROS 2 en pur Rust, native Zenoh. Au-delà des gains de performance obtenus en contournant les couches RMW/RCL, ros-z ouvre l'écosystème ROS aux environnements non-ROS : son architecture légère et sa fondation Zenoh facilitent l'intégration pour les équipes qui ont besoin de l'interopérabilité ROS sans la pile ROS complète. Avec le support de multiples formats de sérialisation (CDR, Protobuf, et bientôt les tenseurs CUDA), et des bindings en Rust, Python et maintenant Go — sponsorisés par Dexory —, ros-z étend sa portée aux communautés et piles technologiques traditionnellement extérieures au monde ROS.
Dans cette présentation, nous parcourrons l'architecture, partagerons des résultats de performance, démontrerons l'interopérabilité avec les nœuds ROS 2 standard, et montrerons comment ros-z peut devenir un pont naturel entre l'écosystème ROS et tout autre framework utilisant Zenoh.