• Aucun résultat trouvé

Robotique de Groupes

2- Amélioration des performances liée à l’exécution des tâches à réaliser, comme :

4.5 Robotique en essaim

4.5.3 Comportements collectifs en essaim

Les différents comportements d’un essaim de robots peuvent être classés en: - comportements de base, et - comportements combinés [Nem 07].

4.5.3.1 Comportements de base : Ce sont des comportements élémentaires, qui sont à la base

des comportements combinés. Quatre de ces comportements sont adoptés par la plupart des chercheurs travaillant sur la robotique en essaim : - la dispersion, - l’agrégation, - le mouvement collectif, et - la décision collective.

a) Dispersion: La dispersion volontairement organisée dans un environnement connu/inconnu

représente un comportement de base essentiel à la réussite d’un grand nombre de macro-tâches par essaim de robots. Exemples : - une dispersion maximale contrainte par la portée de communication des robots peut constituer une infrastructure suffisante pour supporter un réseau de communication permettant aux membres de l’essaim d’échanger des informations sur leurs états et sur l’environnement avec une bande passante, généralement, minimale [Mcl 07], - une dispersion maximale, contrainte par la portée des senseurs des robots, permet de couvrir de manière statique/dynamique une zone ciblée [Sch 06].

b) Agrégation: Bon nombre d’applications de robotiques en essaim demandent aux membres de

l’essaim de se regrouper, comme pour échanger des informations, former un tas d’objets ou

Figure.4.21-Swarm-bot : ensemble de S-bots attachés les uns aux autres dans une configuration donnée. Ici, les S-bots sont attachés en ligne ce qui leur permet de passer la faille se trouvant sur leur chemin. Un S-bot seul est incapable de réaliser une telle tâche.

s’assembler. Bien que beaucoup de recherches focalisent sur l’agrégation, ces résultats restent plutôt théoriques ou issus de simulations. Ceci est partiellement dû à la difficulté de répéter de nombreuses expériences en vue de recueillir des données statistiques, et au fait que les algorithmes disponibles restent encore peu fiables pour réussir un groupement/regroupement de qualité. Exemple : l’agrégation auto-organisée a été utilisée pour permettre à des groupes de robots de rassembler des objets dispersés dans l’environnement [Bar 05][Bek 94]. Ce processus peut également conduire un groupe de robots aux capacités cognitives et sensorielles limitées à réaliser une décision collective.

c) Mouvement collectif: Inspiré par le travail de Reynolds sur la modélisation des essaims

d’oiseaux[Rey 87], le mouvement collectif est un autre comportement de base important. Du fait des limitations des dispositifs actuels de positionnement relatif embarqué, l’implémentation de l’algorithme de Reynolds a souvent été problématique. Exemple : dans le cadre du projet

SwarmBot [Bal 07], il présente une forme de mouvement collectif basée sur un essaim physiquement connecté, permettant la traversée par le collectif de larges vides qu’un seul robot ne saurait être en mesure de franchir (voir Figure.4.21).

d) Choix collectif: La possibilité pour un essaim de robot de récolter différentes observations

de l’environnement en des localisations différentes et de les partager, permet d’augmenter la capacité de prise de décision des individus. Exemple : un essaim capable de choisir un abri pouvant accueillir l’ensemble des robots [Gar 05].

4.5.3.2 Comportements combinés : Les comportements combinés sont construit à partir des

comportements simples. Parmi les comportements complexes les plus recherchés dans un essaim de robots on retrouve : - l’exploration, - le déplacement, - l’allocation de tâches, et - les manipulations collectives.

a) Exploration: l’exploration de l’environnement est probablement l’une des tâches les plus

étudiées dans le champ de la robotique en essaim. Elle implique la nécessité pour un essaim de robots de découvrir l’environnement. Cette tâche combine trois comportements de base : dispersion, couverture et localisation de cibles (voir Section 4.5.4). L’attribution de zones d’exploration peut se faire selon un mécanisme des enchères [Zlo 06]. Exemple : le

fourragement, un comportement inspiré de la quête de nourriture chez les fourmis, représente

un cas particulier de l’exploration ; on y ajoute la nécessité de ramener les cibles en un point donné.

b) Déplacement (flocking): Les robots doivent ici adopter une direction commune afin de se

déplacer en groupe (voir Figure.4.23.bas-à-droite). Les travaux de simulation sur cette question ce sont largement basés sur les modèles théoriques des déplacements de bancs de poissons ou de vols d’oiseaux (voir Figure.4.20). Dans cette situation, les robots doivent être capables d’estimer très fréquemment la direction de déplacement des autres membres du groupe afin que le déplacement reste cohérent. Cependant, la fréquence de rafraichissement et la précision des dispositifs actuels embarqués de positionnement relatif rendent l’implémentation de l’algorithme de Reynolds, basé sur ses trois règles fondamentales17, très problématique. Un travail récent est néanmoins parvenu à l’utiliser en limitant la vitesse de leurs robots à 10 cm/s (les robots font 24 cm de diamètre) [Cha 09][Pug 06]. Une autre solution proposée dans le cadre du projet Swarm-Bot [Bal 07][Cam 06] consiste à lier physiquement les robots les uns aux autres

(voir Figure.4.21). De cette manière, la cohésion du groupe est assurée. Pour déterminer la direction de déplacement du groupe, les robots perçoivent la force de traction qui leur est imposée par le reste du groupe. Ils alignent alors leur châssis sur la direction de cette force qui

17

Règles fondamentales supportant l’algorithme de Reynolds : - la séparation : éviter les collisions avec les plus proches voisins, ce qui revient à respecter une distance minimale avec les autres, - l'alignement : adapter sa vitesse à celle de ses voisins, et rester dans la direction commune de

142 est une bonne approximation de la direction générale de déplacement du groupe. Ainsi, tous les robots convergent rapidement vers une direction commune et la maintiennent.

c) Allocation et partitionnement de tâches: ce sont des comportements extrêmement utiles pour

la robotique en essaim. Effectivement, lorsque le système de robots est confronté à plusieurs tâches simultanément, il faut qu'il s'auto-organise afin de distribuer les tâches et les sous-tâches aux différentes entités qui le composent. De plus, certaines tâches sont complexes et doivent être divisées afin de soulager la charge des robots. Ces deux techniques permettent alors aux robots d'être plus efficaces grâce à leur spécialisation, leur disponibilité ou encore pour éviter certaines interférences [Com 11].

c1) L'allocation de tâches : c’est un problème dans lequel il faut assigner des tâches ou des

sous-tâches aux différents individus du système. Exemples : dans la nature on retrouve les termites et certaines races de fourmis qui sont organisées en castes dont les plus connues sont les ouvrières et les guerrières. Cela leur permet de se spécialiser dans la tâche qui leur est allouée et même de posséder des différences morphologiques. Les abeilles quant à elles se basent sur l'âge des individus pour leur attribuer des tâches qui vont du soin des larves à la collecte de pollen, plus une abeille est âgée et plus elle s'éloigne du nid et s'expose à certains dangers. Aussi, ces petites bêtes restent polyvalentes et peuvent accomplir des tâches pour lesquelles elles ne sont pas spécialisées mais toutefois avec moins d'efficacité [Bes 01].

Dans la robotique en essaim, l'allocation de tâche est extrêmement importante. En effet, les espérances des chercheurs ne se limitent pas à l'utilisation des essaims de robots pour des tâches uniques mais plutôt pour une multitude d'entre elles à pouvoir accomplir simultanément. Donc, il faut éviter d'avoir l'ensemble des robots travaillant sur une même tâche tout en négligeant les autres. De plus, une bonne organisation évite aux robots des déplacements inutiles pour atteindre le lieu où leur tâche devrait être exécutée[Bru 09]. Une bonne allocation de tâches doit respecter les contraintes suivantes:

- Certaines tâches sont interdépendantes. Elles peuvent demander les mêmes ressources que d'autres ou doivent attendre la fin d'un autre travail avant de pouvoir commencer.

- Il existe un nombre maximum d'individus pouvant s'attaquer à une même tâche. Il serait en effet inutile d'envoyer des individus qui seront incapables de participer efficacement au travail du groupe car ils seront superflus.

- Certains individus peuvent se spécialiser. Ces derniers accompliraient une tâche plus rapidement ou avec une meilleure qualité que d'autres, rendant le système plus efficace. - Les lieux où se situent les tâches pourraient être plus ou moins éloignés de celui où se

trouvent certains individus. Une énorme perte de temps pourrait résider dans les trajets que ces individus devraient parcourir afin d'atteindre la tâche qui devrait être exécutée.

Dans certains cas, le nombre et la nature des tâches à exécuter peuvent varier dans le temps demandant une méthode d'allocation de tâches dynamique (Celle-ci doit être robuste et tolérante aux fautes pour éviter que l'échec dans l'exécution d'une tâche de base ne vienne interrompre le travail de tout le système). De nombreuses autres caractéristiques des méthodes d'allocation de tâches peuvent être données [Bru 09]. Citons parmi celles-ci le fait qu'elles doivent être idéalement décentralisées, exactes, reproductibles. Elles sont toutefois extrêmement complexes voir même impossibles à rassembler dans un même algorithme. Ceci explique pourquoi différentes approches sont nées du problème de base [Bru 09]. Exemples : -l'allocation de tâche

intentionnelle, se base sur une communication commune entre les robots et souvent avec un

contrôleur central, - l'allocation de tâche auto-organisée tente de décentraliser le contrôle des robots.

c2) Le partitionnement de tâches : le partitionnement de tâches est le phénomène qui consiste à

diviser un travail en plusieurs sous-tâches interdépendantes afin de les distribuer à différents individus. Exemples : les abeilles chargées de la collecte de pollen transfèrent le fruit de leur récolte à d'autres abeilles qui s'occupent de le ranger dans le nid [Rat 99]. Un autre cas

intéressant est celui des fourmis Atta (coupeuses de feuilles) [Har 02] qui effectuent un partitionnement de tâches au niveau de la collecte de feuille ; pendant que certaines fourmis restent dans les arbres pour couper les feuilles et les laisser tomber, d'autres les ramassent pour les amener au nid. Ainsi, les fourmis économisent le temps nécessaire à monter et descendre de l'arbre. Le problème c’est que les fourmis perdent du temps à retrouver les feuilles au sol.

Donc, le partitionnement de tâches permet aux systèmes d'accélérer la réalisation de tâches complexes ou encore d'augmenter l'efficacité de la résolution. Grâce à son utilisation, certains robots seront même capables de se spécialiser dans l'exécution de certaines tâches. De plus, c'est un bon moyen d'éviter de nombreuses interférences. Afin d'imiter ce phénomène, un essaim de robots auto-organisés devrait être capable de détecter les différentes parties de la tâche à exécuter et d'en répartir l'exécution à différents groupes de robots. Le système de robots parfait serait celui qui est capable d'effectuer ces étapes de manière automatique et entièrement auto-organisée, tout en leur fournissant un minimum d'informations à propos de la nature de ces tâches [Bru 09]. Deux grandes catégories divisent le partitionnement de tâches [Bru 09][Com 11]: - Les sous-tâches à interdépendance séquentielle : Elles doivent être exécutées dans l'ordre, car une sous-tâche nécessite le résultat de la précédente avant d'être accomplie. Exemple :

concernant les fourmis, la sous-tâche de couper les feuilles, citée plus haut, doit s'effectuer avant celle de les emporter au nid (voir Figure.4.22.b).

- Les sous-tâches à interdépendance parallèle : Elles peuvent être exécutées en utilisant les mêmes prédispositions et ne sont donc pas directement dépendantes entre elles. Exemple : la collecte de ressources différentes comme de la nourriture et les matériaux de construction d'un nid de fourmis. Ces ressources peuvent être recherchées simultanément (voir Figure.4.22.c).

Les inconvénients du partitionnement de tâche sont que ce processus peut exiger un certain temps avant d’être appliqué et le transfert de tâches (comme le passage de la première sous-tâche à la seconde dans une interdépendance séquentielle) peut demander un travail plus ou moins élaboré aux individus. Il faut donc que les robots sachent quand utiliser le partitionnement et comment l’appliquer. Les différentes sous-tâches qui composent une tâche complexe peuvent être représentées par des graphes de dépendance de tâche [Bru 09][Com 11]. Les illustrations ci-après (voir Figure.4.22) permettent de donner une meilleure idée de l'organisation des sous-tâches dans une représentation instinctive. Dans ces graphes, chaque sous-tâche est représentée par un rond et les flèches les reliant permettent d'en indiquer la sequentialité.

d) Manipulation collective: Les exemples de manipulation collective se présentent soit sous la

forme d’un transport collectif d’un objet unique [Kub 94], soit sous la forme d’un groupement/tri d’objets [Mar 99][Wil 04]. Dans une expérience analogue au premier cas, un essaim de robots est appelé à coopérer pour extraire des tiges de leurs emplacements [Ijs 01]. Dans une autre expérience un groupe de robots est appelé à former un tas avec des objets [Bar 95][Com 11] (voir Figure.4.15).

Figure.4.22-Graphes de dépendance : (a)

Une tâche simple sans partitionnement avec un point de départ S et un point d'arrivée E, (b) Une tâche avec partitionnement en sous-tâches à interdépendance séquentielle Ti < Tk. (c) Une tâche avec partitionnement en sous-tâches à interdépendance parallèle Ti||Tk[Bru 09].

144