• Aucun résultat trouvé

Les architectures de contrôle robotiques : La typologie classique

2.6 Analyse et conclusion

3.1.2 Les architectures de contrôle robotiques : La typologie classique

On peut distinguer deux grandes classes de robotique [Mataric and Michaud, 2008]. D’une part celle liée à des dispositifs placés dans des environnements complexes et fortement dyna- miques (Situated Robotic). D’autre part, à l’opposé, celle s’appliquant à des robots évoluant dans des environnements pouvant être certes complexes mais fortement structurés (robotique d’as- semblage par exemple). La complexité et le niveau de prédictibilité de l’environnement dans lequel évolue le robot à donc un impact majeur sur la complexité de son architecture. C’est pourquoi conceptuellement, compte tenu du rapport de l’architecture de contrôle avec la dyna- mique de l’environnement et de l’organisation adoptée, trois grandes classes architecturales ont été proposées en robotique, les architectures réactives, délibératives et hybrides.

Les architectures réactives (ou comportementales) n’utilisent pas de modèles de l’environne- ment du robot mais s’appuient sur un ensemble de comportements réflexes s’exécutant concur- remment et de façon cyclique (voir figure 3.1a). Chaque comportement réagit aux données capteurs (vecteur d’état) pour générer la commande correspondante. Évidemment pour cette classe architecturale la difficulté majeure est de combiner l’ensemble des comportements de façon à obtenir une réaction compatible à la fois avec la dynamique de l’environnement et l’objectif assigné au robot. Pour tenter d’y parvenir un module d’arbitrage est le plus souvent ajouté en aval des modules comportementaux pour construire le vecteur de sorties à imposer aux actionneurs. Brooks dans ses travaux [Brooks, 1986] propose l’architecture de subsumption où les comportements sont hiérarchisés des plus aux moins prioritaires, les derniers pouvant inhiber les premiers. Des mécanismes d’arbitrage plus complexes ont été proposés dans l’archi- tecture DAMN [Rosenblatt, 1997] où des poids, qui évoluent dynamiquement en fonction de

3.1 L’ARCHITECTURE DE CONTRÔLE ROBOTIQUE 37

la situation rencontrée, sont affectés à chaque comportement pour construire la commande des actionneurs. L’architecture Aura [Arkin, 1987] fait appel à la notion de schémas moteurs (entité indépendante fonctionnant en parallèle) [Arbib, 1981] associés à des comportements élémen- taires pour construire par sommation le vecteur de commande à appliquer.

Cette classe architecturale s’avère très performante pour faire émerger un comportement glo- bal permettant d’évoluer dans un environnement fortement dynamique. Cependant si le principe proposé de composition comportementale semble simple, sa flexibilité reste limitée car l’ajout de nouveaux comportements impacte fortement l’ensemble de l’architecture. De plus en l’ab- sence de planification et de modélisation de l’environnement il est difficile de mener à bien des missions complexes.

(a) Réactive (b) Délibérative

Figure 3.1– Schéma de principe des principales classes architecturales robotiques

A l’inverse des précédentes, les architectures délibératives (ou hiérarchisées) s’appuient sur une décomposition des mécanismes décisionnels [Albus et al., 1989, Albus et al., 2002,

Gat, 1998]. Au dessus de la couche physique, elles s’organisent en général en trois couches asso- ciées à des niveaux de prise de décision et à des horizons temporels différents (voir figure3.1b). Par ailleurs, structurellement, une couche ne peut communiquer qu’avec celle immédiatement voisine. On distingue :

– La couche fonctionnelle, située à l’interface avec la couche physique, qui contient les mo- dules de perception, de commande et de génération de trajectoire du robot.

– La couche exécutive qui supervise l’exécution des tâches robotiques et dirige l’exécution des modules de la couche fonctionnelle impliqués.

– La couche décisionnelle qui planifie l’enchainement des tâches robotiques à effectuer pour atteindre les objectifs imposés à la mission.

Cette classe architecturale permet une bonne maitrise du comportement du robot en fonction des objectifs définis. Cependant sa principale limitation provient évidemment de son manque de réactivité puisque le flux d’informations capteurs doit traverser toutes les couches pour atteindre le niveau décisionnel avant, qu’en sens inverse, l’adaptation choisie ne soit à son tour propagée vers les actionneurs. Ce temps de latence est incompatible avec une utilisation temps réel dans un environnement dynamique. Pour palier à cette limitation des architectures hybrides ont été développées.

Les architectures hybrides (ou mixtes) concilient les avantages des architectures réactives et délibératives. Pour y parvenir elles complètent la hiérarchisation des architectures délibératives par des boucles de réaction entre les différentes couches améliorant par la même la réactivité de chacune d’elles (figure3.2.

Figure 3.2– Schéma de principe des architectures hybrides

La plupart des architectures robotiques relèvent de cette classe architecturale. Par exemple ORCCAD (Open Robot Computer Aided Design) [Borrelly et al., 1998,Simon et al., 1997] pro- pose une architecture décomposée en deux couches dédiées aux applications robotiques. La couche application pour représenter les tâches complexes et la gestion de la mission fait appel à des Procédures Robotiques. Ces dernières sont décomposées au niveau de la couche commande en tâches robotiques plus élémentaires (Robot-Task). L’adaptation du contrôle peut s’effectuer au niveau requis en fonction de l’évolution de la mission. CLARATY(Coupled Layer ARchitecture for Robotic Autonomy) [Volpe et al., 2001, Volpe et al., 2000] (figure 3.5), dédiée elle aussi à la robotique, découpe l’architecture en deux niveaux. La couche fonctionnelle s’appuie sur une approche objet ce qui permet la définition de frameworks et de classes génériques facilitant la réutilisation du code. La couche décisionnelle assure la planification et l’exécution de la mission. L’architecture du LAAS[Alami et al., 1998,Ingrand, 2006] (figure3.4) est une des architectures les plus abouties. On y retrouve les trois niveaux classiques :

– la couche fonctionnelle à l’interface de la couche physique qui comprend un ensemble de modules proposant un ensemble de services via des requêtes asynchrones

– un niveau contrôle d’exécution qui a en charge la gestion et l’exécution des tâches élabo- rées par le niveau décisionnel

– le niveau décisionnel définit et supervise l’exécution des plans nécessaires à la réalisation de la mission.

Les architectures robotiques sont supportées par des middlewares logiciels aux caractéris- tiques (OS, temps-réel, langage et style de programmation, mécanismes de communication, outillage, etc.) très hétérogènes [Passama, 2010] mais dont les performances sont pourtant essentielles pour faciliter et garantir le développement d’architectures de contrôle efficientes. Cependant, ces dernières mettent-elles effectivement en œuvre les principes nécessaires au dé- ploiement de la sûreté de fonctionnement ?

3.2 PRÉVENTION DES FAUTES 39