Essaims & Coordination Multi-Agents
Comment faire collaborer une flotte de drones pour accomplir une mission unique. Algorithmes de consensus, allocation de tâches distribuées, vol en formation et évitement de collisions multi-agents.
🛸 Exploration de la Coordination d'Essaims
Algorithmes de Consensus : Se Mettre d'Accord
Le consensus est le processus par lequel un groupe d'agents (drones) parvient à un accord sur une information unique, même en présence de pannes ou de retards de communication. C'est le fondement de toute décision collective décentralisée, comme élire un leader, valider une cible, ou synchroniser une action.
Consensus Basé sur les "Gossip" (ou Épidémiques)
Cette approche est simple, robuste et bien adaptée aux réseaux mobiles. Chaque drone maintient une estimation de la valeur sur laquelle il faut s'accorder.
- État Initial : Chaque drone commence avec sa propre valeur (ex: sa propre position).
- Échange : Périodiquement, chaque drone envoie son estimation actuelle à un ou plusieurs de ses voisins choisis au hasard.
- Mise à jour : Lorsqu'un drone reçoit une estimation d'un voisin, il met à jour sa propre estimation pour se rapprocher de celle du voisin (ex: en faisant la moyenne).
Répété un grand nombre de fois, ce processus garantit que les estimations de tous les drones convergent mathématiquement vers la même valeur moyenne. C'est très résistant à la perte de drones individuels.
Convergence vers le Consensus

Animation montrant des agents (nœuds) avec des valeurs initiales différentes (couleurs). En échangeant des informations avec leurs voisins, ils convergent tous progressivement vers une seule couleur (valeur) commune.
Topologies & Communication : Le Tissu Conjonctif de l'Essaim
La performance et la résilience d'un essaim dépendent de la manière dont les agents communiquent. La topologie du réseau (qui parle à qui) définit la structure de l'essaim et sa capacité à résister aux pannes.
Centralisée
Un seul leader (ou station au sol) communique avec tous les drones. Simple à commander, mais crée un point de défaillance unique (single point of failure). Si le leader tombe, l'essaim est aveugle.
Décentralisée
Les drones sont organisés en sous-groupes, chacun avec un leader local. Plus robuste que l'approche centralisée, mais la coordination inter-groupes peut être complexe.
Distribuée (Mesh)
Chaque drone communique directement avec ses voisins à portée. Il n'y a pas de leader. L'information se propage à travers le réseau. C'est la topologie la plus résiliente et la plus scalable. Des protocoles comme **BATMAN-adv** créent un réseau maillé (mesh) auto-organisé.
Allocation de Tâches Distribuées : Qui Fait Quoi ?
Pour des missions complexes comme la surveillance d'une large zone ou la recherche de multiples cibles, il faut répartir les tâches efficacement entre les drones de l'essaim, en tenant compte de leur position, leur état (batterie, capteurs) et des priorités de la mission.
Approches Basées sur le Marché (Enchères)
Cette méthode s'inspire de l'économie. Elle est très efficace pour l'allocation dynamique.
- Annonce de la tâche : Une nouvelle tâche (ex: "Inspecter la zone Z") est annoncée dans le réseau par un drone "auctioneer".
- Enchères : Chaque drone disponible calcule un "coût" pour réaliser cette tâche (ex: distance à parcourir, temps estimé, énergie nécessaire). Il soumet une enchère avec ce coût.
- Attribution : L'auctioneer reçoit les enchères et attribue la tâche au drone ayant soumis la meilleure offre (le coût le plus bas).
Ce processus peut être répété pour ré-allouer des tâches si un drone tombe en panne ou si de nouvelles tâches plus prioritaires apparaissent.
Processus d'Enchères
Une nouvelle tâche (en rouge) est annoncée. Les drones A, B et C calculent leur coût pour l'atteindre. Le drone B, étant le plus proche, a le coût le plus faible et remporte l'enchère.
Comportements d'Essaim : L'Émergence de l'Intelligence Collective
Les comportements collectifs complexes d'un essaim (comme le vol en formation ou l'exploration coordonnée) émergent souvent de règles locales très simples suivies par chaque agent individuel.
Les Règles de "Boids"
Développé par Craig Reynolds, ce modèle classique simule le comportement des nuées d'oiseaux avec trois règles simples appliquées à chaque agent en fonction de ses voisins locaux :
- Séparation : Éviter de heurter ses voisins proches.
- Alignement : Orienter sa vitesse sur la vitesse moyenne de ses voisins.
- Cohésion : Se diriger vers la position moyenne de ses voisins pour rester groupé.
Évitement de Collisions Multi-Agents
Au-delà du simple maintien de la formation, il faut garantir l'absence de collision, même lors de manœuvres agressives. Des algorithmes avancés sont nécessaires :
- Velocity Obstacles (VO) : Calcule l'ensemble des vitesses qui mèneront à une collision future avec un autre agent, et choisit une nouvelle vitesse en dehors de cet ensemble.
- ORCA (Optimal Reciprocal Collision Avoidance) : Une amélioration de VO. Chaque agent assume que l'autre fera aussi un effort pour l'éviter. Ils calculent et choisissent de manière décentralisée des nouvelles vitesses optimales qui sont garanties sans collision, permettant des manœuvres très proches et réactives.

Chaque drone calcule le cône des vitesses menant à une collision (en rouge) et choisit la nouvelle vitesse la plus proche de sa vitesse désirée dans la zone sûre (en vert).
Glossaire & Liens de référence
Consensus & Systèmes Distribués
- **"Paxos Made Simple" by Leslie Lamport (Paper)**: L'article de référence (simplifié) sur l'un des algorithmes de consensus les plus importants.
- **Raft Consensus Algorithm (Project Page)**: Une alternative à Paxos, conçue pour être plus facile à comprendre et à implémenter.
Allocation de Tâches & Robotique Multi-Agents
- **"A Market-Based Approach to Multi-Robot Coordination" (Paper)**: Un article classique sur l'utilisation des enchères pour l'allocation de tâches.
Comportements d'Essaim & Évitement
- **"Boids" by Craig Reynolds**: La page originale décrivant le modèle Boids.
- **ORCA (Optimal Reciprocal Collision Avoidance) (Project Page)**: Présentation, publications et implémentations de référence pour l'algorithme ORCA.
- **Crazyflie Swarm Tutorials**: Des exemples pratiques de programmation d'essaims sur les nano-drones Crazyflie.
