DialoStack encadre les conversations des robots ROS 2 sans laisser le contrôle au LLM

Robot NAO utilisé pour démontrer le système de dialogue ROS 2 DialoStack
DialoStack a été démontré sur un robot NAO et sépare le contrôle du dialogue des fonctions confiées au modèle de langage.

DialoStack, un ensemble de paquets ouverts pour ROS 2, sépare la conversation naturelle du contrôle d’une tâche robotique. Le logiciel confie au modèle de langage l’interprétation et la formulation des réponses, mais conserve dans du code déterministe l’ordre des questions, les confirmations, les limites de tours et la fin de l’échange.

Le projet a été présenté le 6 octobre sur Open Robotics Discourse par son développeur Alejandro Quintana. Issu d’un mémoire de licence et présenté à l’International Workshop on Physical Agents 2026, il est désormais publié sous licence MIT. Une démonstration de quatre minutes montre le système sur un robot NAO réel.

Le LLM ne décide pas de la procédure

DialoStack vise les dialogues orientés vers une tâche : recueillir des informations lors d’un accueil, expliquer un sujet puis vérifier sa compréhension, ou conduire un questionnaire. Le flux principal repose sur des machines à états en Python. Le modèle sert à reconnaître ce que l’utilisateur a dit et à rendre la réponse plus naturelle, sans pouvoir sauter une étape obligatoire ou prolonger indéfiniment l’échange.

Le robot peut ainsi corriger une information, reprendre un dialogue interrompu et demander une confirmation avant de renvoyer un résultat structuré en JSON. Une action ROS 2 unique expose ce comportement. Un nœud pour BehaviorTree.CPP permet aussi de l’insérer dans une séquence robotique plus large.

Parole, vision et exécution locale

Le dépôt GitHub de DialoStack réunit la reconnaissance vocale avec faster-whisper et Silero VAD, la synthèse Piper et une couche optionnelle de vision pour publier l’activité des lèvres ou une estimation d’émotion. Gemini et Ollama sont proposés derrière la même interface. Ollama permet de garder le traitement en local, avec une précision annoncée plus faible pour les petits modèles.

L’intégration physique est encore limitée au NAO. Elle associe la parole à des gestes et au retour lumineux des yeux, aussi bien dans RViz que sur le robot via nao_lola. Le cœur publie cependant des états génériques, notamment lorsque le robot parle ou lorsque la voix de l’utilisateur est détectée. Ce découplage doit faciliter l’adaptation à Pepper, TIAGo ou un autre robot social.

Un projet encore destiné aux développeurs

La version actuelle cible ROS 2 Jazzy sur Ubuntu 24.04 et doit être compilée depuis les sources. Aucun paquet binaire n’est encore fourni. Le projet annonce 173 tests unitaires pour son noyau déterministe, ainsi que des outils d’évaluation de l’extraction des champs, des intentions et des dialogues simulés.

DialoStack ne démontre pas encore une fiabilité clinique ou commerciale. Son apport est plus précis : proposer une architecture vérifiable pour empêcher qu’un modèle génératif ne prenne seul le contrôle d’une procédure. Pour les robots de service, où une conversation doit aboutir à une action correcte et traçable, cette séparation constitue une base technique utile à tester sur davantage de machines et d’utilisateurs.

Fiches Robodex citées

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