Un robot qui vérifie ses propres pièces ? Comment ROS 2 veut automatiser la compatibilité binaire


Vous connaissez peut-être les robots industriels qui assemblent des voitures ou trient des colis. Derrière eux, il y a souvent ROS 2, le système d’exploitation open source qui fait tourner leur cerveau logiciel. Mais voici le problème : quand une équipe corrige un bug ou ajoute une fonctionnalité, elle doit s’assurer que sa mise à jour ne casse pas les robots déjà en service. C’est là que l’ABI (Application Binary Interface) entre en jeu.
L’ABI, c’est comme le "langage machine" commun entre deux versions d’un logiciel. Si une mise à jour change l’ABI, les robots déjà déployés pourraient planter ou se comporter bizarrement. Jusqu’ici, vérifier cela était un travail manuel fastidieux, réservé aux experts. Mais aujourd’hui, un prototype de GitHub Actions veut automatiser ce processus.
Le prototype combine deux outils existants pour créer une chaîne de vérification automatique :
1. `roschema` : Un outil léger qui scanne les fichiers `.msg`, `.srv` et `.action` (les interfaces ROS 2) pour détecter les changements brisant l’ABI. Il fonctionne sans dépendre de ROS 2, ce qui le rend ultra-rapide et facile à intégrer dans une CI/CD.
2. `ABI Compliance Checker` : Un outil plus lourd qui compare les bibliothèques binaires (`.so` ou `.dll`) entre deux versions pour vérifier si l’ABI reste stable.
Ensemble, ils forment une double barrière de sécurité : d’abord, `roschema` vérifie les interfaces (comme les messages ROS), puis l’ABI Compliance Checker scanne les bibliothèques compilées.
Prenons un scénario réel : un robot pharmaceutique trie des médicaments en fonction de leur forme et de leur couleur. Son logiciel ROS 2 utilise des messages comme `MedicineShape.msg` ou `MedicineColor.msg`. Si une mise à jour ajoute un nouveau champ à `MedicineShape.msg`, mais que l’ABI n’est pas compatible, le robot pourrait ne plus reconnaître les médicaments existants et tout mélanger.
Avec ce prototype, la CI/CD détecterait immédiatement le problème et bloquerait la PR avant qu’elle n’atteigne la production.
Le prototype est déjà disponible sous forme de GitHub Action (voir justagist/roschema). Pour l’intégrer à votre projet ROS 2 :
1. Ajoutez ce workflow à votre dépôt :
# .github/workflows/interfaces.yml
on: pull_request
jobs:
interfaces:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Nécessaire pour comparer les branches
- uses: justagist/roschema/action@v1
with:
against: origin/${{ github.base_ref }}2. Le système générera un rapport détaillé dans votre PR, avec des annotations claires si un changement casse l’ABI.
Ce prototype est un excellent exemple de comment l’open source et les bonnes pratiques DevOps peuvent améliorer la fiabilité des robots. En automatisant les vérifications ABI, ROS 2 se rapproche d’un écosystème où les mises à jour sont sûres par défaut.
Et vous, seriez-vous prêt à confier la santé de vos robots à un système comme celui-ci ? 🤖✨
PS : Ce prototype a été présenté le 18 août 2026 sur [Open Robotics Discourse](https://discourse.openrobotics.org/t/abi-api-compliance-checker-in-github-workflow/38141).
Note de Hype-mètre : 4/5 (Innovation majeure pour la robotique industrielle, déploiement en cours dans des projets pilotes).