Partager

Une interface de programmation cognitive

Apprentissage d’un geste médical au système robotique : l’opérateur joue manuellement la séquence d’opérations à automatiser (saisie du flacon par la pince à droite, prise de l’aiguille à insérer dans le capuchon du flacon avec le préhenseur dextre Abilis à gauche).
Programmer des robots est une tâche chronophage qui peut freiner leurs usages en contexte industriel, en particulier pour les PME aux tâches très changeantes. Certes, il existe des approches de programmation au niveau des tâches, mais elles manquent de contextualisation et sont réservées à des experts. Nous avons donc développé une interface cognitive basée sur des ontologies pour offrir un outil de programmation contextuelle sans compétences robotiques préalables.

Le framework Cognitive Programming Interface (CPI) aide un utilisateur non expert à programmer un robot, en lui donnant la possibilité d’enchaîner des séquences cohérentes avec l’état courant de la scène. Cette interface repose sur trois éléments :

  1. Une ontologie décrivant une scène, les objets la composant (nommés acteurs, e.g. table, bouteille, pince…), leurs interfaces avec les autres acteurs (fond, zone de saisie, ou filetage pour la bouteille…) et un ensemble de skills ou compétences connues (attraper, poser, visser…) ;
  2. Un interpréteur contextuel capable de mettre à jour en temps réel l’état du monde et d’en déduire à partir de changements d’états (fermeture, ouverture de pince…) les interactions possibles entre les acteurs en fonction des interfaces que chaque acteur va cacher ou laisser disponible ;
  3. Une interface graphique montrant la scène en 3D et les compétences réalisables à chaque étape.

 

Le workflow de la CPI est cyclique : le modèle du monde initialise la scène, calcule les compétences ou aptitudes possibles via un raisonneur sémantique, transmet l’ensemble des possibilités à l’interface graphique, puis se met à jour en fonction des actions choisies par l’utilisateur. Certaines étapes peuvent demander une intervention humaine, notamment lorsqu’une relation ou une action particulière doit être précisée.

Dans le modèle ontologique, les acteurs sont décrits par une primitive géométrique, leurs propriétés et plus particulièrement leurs interfaces dont on connait la position relative dans le référentiel de l’objet. Ces interfaces traduisent des capacités d’interaction (Attrapable, Insérable, Plaçable, etc.) et permettent de raisonner non plus sur les objets mais sur leurs interactions les plus probables en fonction du contexte. Les relations entre les différentes instances de l’ontologie sont représentées sous la forme de triplets <sujet, prédicat, objet> (par exemple <robot, grasps, object>).Les capacités ou aptitudes d’interactions sont définies par un ensemble de paramètres, des préconditions ainsi que leurs effets qui permettront d’ajouter, retirer ou mettre à jour des relations dans l’ontologie. Il existe aussi des requêtes hybrides, capables de solliciter soit la base de connaissances soit l’utilisateur en cas d’ambiguïté ou d’information manquante.


Figure 1 : Etat du système avant et après la saisie.

Un module de reconnaissance d’interactions par démonstration est utilisé afin de déduire automatiquement, lors d’une démonstration kinesthésique (réalisée à la main par l’opérateur), la suite de compétences ou aptitudes exécutées. On fait pour cela l’hypothèse que chaque compétence débute ou s’achève par un changement d’état du préhenseur. Deux fonctions principales — TriggerGrasp et TriggerRelease — interprètent les mouvements, les contacts et les relations entre objets afin d’actualiser l’état sémantique du monde. Un algorithme identifie ensuite le type de compétence grâce aux prédicats modifiés, puis en déduit les paramètres exacts en comparant les changements observés avec les effets attendus des compétences possibles.


Figure 2 : Action de saisie

En savoir plus

Projet européen Tracebot (https://www.tracebot.eu/)

Ce projet traite de la traçabilité et de l’automatisation des processus industriels de contrôle de la stérilité dans l’industrie médicale et pharmaceutique.
Deux robots UR10e ont manipulé deux conteneurs disposés sur leur support. L’expérience valide la reconnaissance automatique de compétences à partir d’une démonstration kinesthésique. Dans la démonstration, l’opérateur exécute quatre actions : la saisie puis l’insertion successive des deux conteneurs dans l’un des emplacements du support. A chaque changement d’état, le système a su correctement identifier chaque type de compétence et ses paramètres associés (objet, robot, emplacement) en comparant les changements sémantiques observés à ceux attendus. La séquence complète est reconstruite fidèlement et visualisée dans l’interface, montrant la robustesse de l’approche. Il devient alors possible de répéter cette action de manière automatique avec le robot.

 

Publication majeure

  • « Cognitive Programming Interface : from Task Level Programming to Coherent Task Level Programming » Raphaël Gerin , Julie Dumora , Olivier David , Baptiste Gradoussoff , 2024 IEEE 20th International Conference on Automation Science and Engineering (CASE), Bari, Italy, pp. 1345-1352. https://doi.org/10.1109/CASE59546.2024.10711577

A contribué à l’écriture de cet article

  • Raphaël Gerin, Ingénieur-chercheur, CEA-List