Vous êtes sur la page 1sur 2

ST2CF – Commande

de flotte & multi-robots TP no1


aériens Flottes de robots – Consensus

Flottes de robots - Consensus

L’objectif de ce TP est d’implémenter et de tester un algorithme de consensus en position pour


permettre à un ensemble de 6 robots ou drones de se regrouper.

Trois fichiers Python vous seront utiles pour l’ensemble des TPs de ce module. Chacun définit
différentes classes d’objets, et peut être importé comme un module Python dans d’autres scripts. Un
test unitaire peut être lancé en exécutant chacun de ces fichiers.

- Le fichier Robot.py définit les classes d’objets suivantes :

Robot : définit un objet de type robot par la donnée de son identifiant (numéro), de son type de
dynamique (ex : simple intégrateur), de son vecteur d’état et de son vecteur de commande.

Fleet : définit un objet de type flotte de robots par la donne du nombre de robots la composant,
et d’un tableau d’objets de classe Robot.

- Le fichier Graph.py définit la classe d’objet suivante :

Graph : définit un objet de type graphe par la donnée du nombre de nœuds le composant, sa
matrice d’adjacence ainsi que sa matrice de Laplace.

- Le fichier Simulation.py définit les classes d’objets suivantes :

RobotSimulation : définit un objet de type « simulation d’un robot » par la donnée du robot à
simuler, des instants de début et de fin ainsi que du pas de temps de la simulation. Il permet
également de stocker les valeurs des vecteurs d’état et de commande du robot à chaque instant
simulé.

FleetSimulation : définit un objet de type « simulation d’une flotte de robots » par la donnée
du nombre de robots, d’un tableau d’objets de type RobotSimulation, ainsi que des différentes
grandeurs temporelles déjà décrites pour la classe RobotSimulation.

Une fois validés en simulation à l’aide de ces fichiers, vous pourrez implémenter votre code sur le
simulateur Python de Robotarium, puis déposer vos expérimentations en ligne sur
https://www.robotarium.gatech.edu/

~ Majeure Systèmes Robotiques et Drones - S. Bertrand – 2023 ~


ST2CF – Commande
de flotte & multi-robots TP no1
aériens Flottes de robots – Consensus

Un fichier Consensus.py vous est donné comme base de départ. Il définit la flotte composée des 6
robots (type simple intégrateur en deux dimensions) ainsi que la valeur initiale de leurs états (tirée
aléatoirement) et le graphe de communication.

I.1) De quel type est le graphe de communication défini dans le code ? (vous pouvez vous aider de la
méthode plot de la classe Graph pour le visualiser)

I.2) Au sein de la boucle de simulation, codez le calcul de la commande du robot i en implémentant


l’algorithme de consensus vu en cours. On prendra αij = kp*aij où kp est un gain à régler par vous-
même et où aij est le terme [i, j] de la matrice d’adjacence. Testez la simulation pour différentes
conditions initiales des robots.

I.3) On s’intéresse maintenant au cas où la topologie de communication est définie par un graphe en
« anneau » comme représenté sur la figure ci-dessous (le numéro dans la légende est celui du robot) :

Implémentez ce graphe de communication et comparez les performances obtenues pour le consensus


par rapport au graphe initialement présent dans le code.

Faites de même en supprimant une, puis deux, liaison(s) de communication entre les robots.

Pour la suite du TP, on repartira de la topologie en anneau représentée ci-dessus.

I.4) On souhaite enfin transmettre une consigne constante de position (valeur du consensus) à la flotte.
En choisissant le premier robot comme « leader », modifiez le calcul de sa commande pour permettre
à la flotte de converger en position vers la référence souhaitée. On utilisera un gain kt différent du gain
kp utilisé pour le consensus. On pourra prendre par exemple comme consigne de référence en position
(xr, yr) = (2,2).

Implémentation sous Robotarium

I.5) Implémentez le code développé à la question I.4 sur le simulateur Python de Robotarium. Testez
et validez (le réglage des gains peut être mis à jour par rapport à la question I.4).

I.6) Déposez votre code sur la plateforme en ligne de Robotarium afin de réaliser une expérimentation.

~ Majeure Systèmes Robotiques et Drones - S. Bertrand – 2023 ~

Vous aimerez peut-être aussi