Accueil

 

SYSTEMES EXPERTS

en

ROBOTIQUE

 

Quand les détecteurs et les périphériques actifs (servomoteurs, relais, electroaimants...) se multiplient pour faire face a des conditions très diverses le programme de gestion d' un robot devient complexe. Alors on laisse au niveau du microcontrolleur l' exécution de commandes simples et rapides ou il excelle et on fait superviser l' ensemble par un programme logé sur un ordinateur. Ce programme de stratégies est souvent écrit en langage C. (nous préférons le C# ('prononcer C Sharp" ) de Microsoft.

Mais comme les taches du robot peuvent varier la difficulté est de modifier souvent ces programmes en C, ce qui un travail spécialisé qui demande du temps et des délais de mise au point. C' est l' une des raisons pour lesquelles on essaie d' adapter en robotique des systèmes experts déjà bien connus par ailleurs.

L' un des premiers systèmes experts efficaces s' appelait"MYCIN",écrit a l' origine en langage LISP, il proposait a partir de données biologiques et cliniques , des diagnostics d' infections bactériennes en utilisant une base de règles fournies par des experts en bactériologie.

En fait ces systémes ne sont pas vraiment experts : ils permettent aux experts de stocker dans une base de données les règles pratiques qu 'ils connaissent et ceci sans qu 'ils aient a programmer . Tout l' intérêt d' un système expert est qu 'il utilise cette base de règles au mieux pour tirer des conclusions a partir de données qui lui sont fournies (soit en collectant des données automatiquement a partir d' appareils de laboratoire , détecteurs ou autres , ou de dossiers de malades, soit en dernier recours en réclamant les données manquantes a l' utilisateur).

Chaque règle comporte des conditions et des conséquences. Elles sont donc de la forme suivante:

Si condition-A, condition-B, etc....alors conséquence-D, conséquence-E, etc...

Les conditions sont soit de type vrai/faux (Si "pendant-le-jour" ) soit de type est inférieur ou supérieur a un seuil (Si "température > 38").

Les conséquences peuvent entraîner:

* des ajustements de variables: "alors surchauffe=vrai"

*des actions : alors "arrêter l' alimentation de la résistance"

 

Lors de l' utilisation d' un système expert chaque modification d' une condition entraîne un balayage des règles qui contiennent cette condition et validation de nouvelles conséquences. Ces nouvelles conséquences peuvent entraîner le déclenchement de nouvelles règles. Ainsi les conséquences de la première modification se propagent de proche en proche a travers la base de données jusqu 'a ce qu 'il n'y ait plus production de nouvelles conséquences.

Ce mode de fonctionnement , "en marche avant", devient complexe et peu efficace lorsque les règles sont très nombreuses (et il faut un mécanisme qui vérifie qu 'il ne peut pas y avoir création d' un raisonnement qui tourne en boucle sans fin) .

On a donc ajouté des règles stratégiques , dites métarégles, et des modes de raisonnement en marche arrière , ainsi par exemple on aura des règles de types:

* <Si exclure> : lorsque certaines conditions sont réalisées on exclut toutes les règles qui referment une condition particulière . on gagne du temps et on élimine des hypothèses incohérentes avec la situation actuelle . Un exemple classique en biologie est d' écrire : Si "sexe= féminin" exclure certaines maladies liées une mutations du chromosome X qui ne se s' expriment que chez l' homme (et dont le prototype est l' hémophilie).

*<Si évoquer>" : lorsque certaines conditions sont réalisées un expert évoque a priori une ou deux hypothèses qui couvrent 90 % des cas : il va alors focaliser son raisonnement sur ces 2 possibilités . Les règles"<Si évoquer"> font cela : le raisonnement est alors ciblé sur une ou deux hypothèses et au lieu de se disperser il se resserre pour une plus grande efficacité en recherchant les règles qui permettent de vérifier rapidement ces hypothèses , on fonctionne alors en marche arrière (des conclusions vers les preuves) : neuf fois sur 10 la stratégie est gagnante, dans les autres cas on redémarre la diffusion de conclusions en marche avant.

Un systéme expert peut permettre a un robot de déterminer comment enchaîner les taches élémentaires qu'il sait effectuer pour réaliser de façon optimisée le travail qu'on lui a demandé.

A coté de ces systémes experts, il faut mentionner différents algorithmes d'optimisation des taches : par exemple comment transporter des piéces métalliques dans un atelier en utilisant un minimum de gestes et le trajet globalement le plus court. (ceux qui ont résolu des problémes de sortie optimisée de labyrinthe par un robot, ont une idée de ces stratégies). D'autre part les systémes experts utilisés en robotique supposent souvent que le robot dispose de caméras avec un systéme d'analyse d'image qui reconnait les objets qui ont certaines formes et/ou certaines couleurs. (Notez qu'on peut trouver un analyseur simple et gratuit sur le site de Robotrealm) mais la difficulté est de repérer des objets qui ressemblent a un modéle mais en sont légérement différents et c'est pourtant bien ce qu'on trouve dans le monde réel. Des programmes de reconnaissance de formes résolvent plus ou moins bien ce probléme et on sait l'importance de la reconnaissance de visages et de personnes pour les systémes robotisés de surveillance qui effectuent un tri pour présenter a un humain quelques images pertinentes parmi une masse d'inutiles .

Certains systémes experts permettent au robot de rechercher l'origine de pannes ou d'anomalies de fonctionnement (vibrations, échauffement, consommation anormale d'énergie témoin de frottements, écarts entre mouvement programmé et mouvement réalisé) du robot lui même ou lui permettent d'adapter ses comportements a l'environnement ou d'appeler a l'aide avant une panne .

Il y a aussi des systémes experts facilitant l'utilisation d'aides robotisées par les sujets agés ou handicapés ou dirigés vers les économies d'énergie.

Dans une autre optique on essaie aussi de faire créer les règles par le robot lui même par auto apprentissage.