ROS 2 renforce ses interfaces Rust avec rclrs 0.8.0

Bras robotique industriel devant une interface de développement Rust et ROS 2
rclrs permet de développer en Rust des nœuds compatibles avec l’écosystème ROS 2.

Le projet ros2-rust publie rclrs 0.8.0, une nouvelle version des interfaces Rust pour ROS 2. La mise à jour ajoute la prise en charge de la distribution Lyrical Luth, centralise les définitions de messages via ros-env et renforce les actions, les paramètres ainsi que les outils de diagnostic.

L’annonce a été publiée le 23 septembre, à l’ouverture de ROSCon Global 2026 à Toronto. rclrs permet d’écrire en Rust des nœuds qui communiquent avec l’écosystème ROS 2. Il vise les équipes qui veulent combiner les mécanismes de sûreté mémoire du langage avec les briques existantes de perception, de commande et d’orchestration robotique.

Une compatibilité étendue à ROS 2 Lyrical

La version 0.8.0 régénère les interfaces pour Humble, Jazzy, Kilted, Lyrical et Rolling. Le support de Lyrical est le changement le plus visible pour les projets qui suivent la nouvelle distribution de ROS 2, mais la mise à jour modifie aussi la manière dont les applications accèdent aux messages générés.

Ces messages passent désormais par ros-env. L’objectif est de maintenir rclrs, les applications et les types de messages sur les mêmes définitions. Les développeurs doivent toutefois adapter leurs imports et ajouter la nouvelle dépendance, ce qui constitue une rupture de compatibilité signalée dans le journal des changements.

Le projet expose également le profil de qualité de service, ou QoS, dans TopicEndpointInfo. Cette information améliore l’inspection d’un graphe ROS 2 lorsqu’un éditeur et un abonné ne communiquent pas comme prévu. Dans un robot distribué, une différence de fiabilité, de durabilité ou de profondeur de file peut suffire à rendre un flux invisible.

Actions, paramètres et fiabilité

ActionClientState peut maintenant indiquer si un serveur d’action est disponible. Les API d’actions reçoivent plusieurs corrections, tandis que les tâches du serveur n’exigent plus la contrainte Sync. rclrs 0.8.0 ajoute aussi les rappels de paramètres, utiles pour modifier le comportement d’un nœud en cours d’exécution tout en contrôlant les valeurs acceptées.

Le changelog mentionne des corrections sur l’introspection des messages dynamiques, le redimensionnement des séquences, l’initialisation de rosout et la durée de vie d’une horloge utilisée par un serveur d’action. Ces changements sont moins visibles qu’une nouvelle fonction, mais ils ciblent des erreurs susceptibles d’apparaître dans des applications longues ou concurrentes.

Notre analyse

Rust ne remplace pas C++ ou Python dans ROS 2, mais il devient une option plus crédible pour les composants où la concurrence et la gestion de la mémoire demandent une discipline forte. Cette version rapproche les interfaces Rust du cycle actuel de ROS 2 et réduit plusieurs écarts fonctionnels sur les actions, les paramètres et le diagnostic.

Le coût immédiat est une migration pour les applications qui utilisent les messages générés ou les API touchées par les ruptures. Les équipes devront tester leurs nœuds avant de mettre à jour une flotte. L’intérêt à long terme dépendra surtout de la stabilité de ces interfaces et de la disponibilité de bibliothèques Rust compatibles avec les pilotes et outils déjà employés sur les robots.

Sources : annonce sur Open Robotics Discourse et journal des changements ros2-rust.

Le briefing RoboActu

L’essentiel de la robotique, une fois par semaine.

Une sélection courte des annonces, usages et robots à suivre.

Continuer sur ce sujet

Comparer les robots