← Derniers articles
💻 computer science

Deterministic Execution of ROS~2 Applications via Lingua Franca

Cet article présente un cadre qui convertit des applications ROS 2 non modifiées en programmes Lingua Franca afin d'imposer une exécution déterministe et une prévisibilité temporelle, éliminant ainsi le non-déterminisme inhérent à l'ordonnancement des rappels (callbacks) et à l'entrelacement des messages de ROS 2.

Auteurs originaux : Harun Teper, Shaokai Lin, Shulu Li, Edward A. Lee, Jian-Jia Chen

Publié 2026-06-09
📖 5 min de lecture🧠 Analyse approfondie

Auteurs originaux : Harun Teper, Shaokai Lin, Shulu Li, Edward A. Lee, Jian-Jia Chen

Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). ✨ Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

Imaginez que vous dirigez la cuisine d'un restaurant très fréquenté. Dans une cuisine standard (qui est comme ROS 2, le logiciel utilisé pour construire des robots), le chef de cuisine crie les commandes et les cuisiniers (les différentes parties du robot) les saisissent dès qu'ils les entendent.

Le problème ? Si deux commandes arrivent exactement au même moment, le cuisinier pourrait saisir la commande de la « salade » avant celle du « steak », ou vice versa, selon qui se trouvait le plus près de la fenêtre de commande ou qui était le plus rapide ce jour-là. Parfois, le steak arrive avant la salade, parfois après. C'est ce qu'on appelle le non-déterminisme. Pour un robot qui conduit une voiture, c'est dangereux : si le robot reçoit un signal « stop » et un signal « marche » en même temps, il doit savoir exactement lequel traiter en premier, à chaque fois. S'il se trompe, la voiture peut s'écraser.

Les auteurs de cet article ont construit un contrôleur de trafic (appelé Lingua Franca, ou LF) qui peut s'installer au-dessus de votre cuisine robotique existante et forcer celle-ci à suivre un calendrier strict et immuable sans que vous ayez à réécrire vos recettes (le code).

Voici comment ils ont procédé, expliqué simplement :

1. Le Problème : La « Cuisine Chaotique »

Dans le système ROS 2 standard, l'ordre dans lequel les tâches se produisent dépend de facteurs physiques tels que :

  • La vitesse de l'ordinateur à cet instant précis.
  • Le temps qu'un message met pour voyager à travers le réseau (comme un serveur courant vers la cuisine).
  • Quel thread de l'ordinateur récupère le message en premier.

À cause de cela, si vous exécutez le même programme de robot deux fois avec les mêmes entrées, il peut effectuer les tâches dans un ordre différent la seconde fois. Cela rend impossible la preuve que le robot est sûr, car vous ne pouvez pas prédire exactement ce qu'il fera ensuite.

2. La Solution : L'« Horloge Logique »

Les auteurs ont introduit le concept d'Heure Logique. Imaginez que la cuisine possède une horloge magique qui ne tourne pas en fonction des secondes sur le mur, mais en fonction des « étapes » de la recette.

  • Étape 1 : Le minuteur sonne.
  • Étape 2 : La salade est préparée.
  • Étape 3 : Le steak est cuit.

Dans ce système, le temps nécessaire pour cuire le steak n'importe pas. Si la recette dit « Préparer la salade, puis cuire le steak », le système attend que la salade soit terminée avant même de penser au steak. Cela ignore la vitesse réelle du monde physique du cuisinier. Cela garantit que l'Étape 2 se produit toujours avant l'Étape 3, peu importe la rapidité ou la lenteur du matériel.

3. Le Tour de Magie : « Aucune Réécriture Requise »

Habituellement, pour obtenir ce genre d'ordre parfait, vous devriez jeter vos anciennes recettes et en écrire de nouvelles de zéro dans un langage différent. C'est difficile et coûteux.

Les auteurs ont créé un outil de traduction.

  • Vous lui donnez votre code de robot ROS 2 existant (les « anciennes recettes »).
  • L'outil examine le code, comprend comment les parties sont connectées (qui parle à qui) et construit automatiquement un « wrapper » (une enveloppe) autour de lui.
  • Ce wrapper force le robot à fonctionner sous les règles strictes de l'« Heure Logique ».
  • Crucialement : Le code original à l'intérieur du robot n'est jamais touché. Il s'exécute exactement comme il a été écrit, mais l'ordre dans lequel il s'exécute est désormais parfaitement contrôlé par le nouveau wrapper.

4. Ce qu'ils ont trouvé (Les Résultats)

Ils ont testé cela sur deux éléments :

  1. Un robot fictif simple avec quelques composants.
  2. Un système de conduite autonome réel (appelé Autoware) qui possède 24 composants différents travaillant ensemble.

Les Résultats :

  • ROS 2 Standard : L'ordre des tâches changeait à chaque fois qu'ils lançaient le test. Parfois, le robot traitait les données dans un certain ordre, parfois dans un autre. Le temps nécessaire pour terminer une tâche variait énormément (parfois 5 millisecondes, parfois 900 millisecondes).
  • Leur Nouveau Système (contrôlé par LF) : L'ordre des tâches était identique à chaque fois. Le temps nécessaire pour terminer était également identique à chaque fois.

Ils ont également montré que vous pouvez utiliser ce système pour « régler » le robot. Vous pouvez dire au système : « Je veux que le robot soit super cohérent (toujours faire A avant B), même si cela signifie attendre un tout petit peu plus longtemps », ou « Je veux qu'il soit super rapide, même si l'ordre varie légèrement ». Vous pouvez ajuster ce « bouton » sans modifier le code de votre robot.

Résumé

Considérez cet article comme l'invention d'un chef d'orchestre pour un orchestre chaotique. Les musiciens (le code du robot) jouent toujours leurs propres instruments exactement comme ils l'ont toujours fait, mais maintenant le chef d'orchestre (le nouveau framework) leur dit exactement quand jouer leurs notes. Cela garantit que chaque performance sonne exactement de la même manière, rendant le robot sûr, prévisible et fiable, sans avoir besoin d'apprendre aux musiciens à lire une nouvelle partition.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →