Résumé : Ce stage vise à doter la plateforme expérimentale multi-robots de l’équipe Rainbow (robots terrestres et drones) d’une couche de communication peer-to-peer et décentralisée, fondée sur le protocole de communication Zenoh. L’enjeu est de permettre l’exécution d’algorithmes de commande distribuée dans des conditions réelles, sur une flotte hétérogène d’une dizaine de robots. Stage à dominante ingénierie logicielle et systèmes robotiques ; le code sera publié en open source.


Equipe : Rainbow team IRISA/Inria Rennes, France

Encadrants : Esteban Restrepo, Gianluca Corsini

Contact : esteban.restrepo@irisa.frgianluca.corsini@irisa.fr

Comment candidater : Les candidats intéressés sont priés de postuler via ce formulaire.



Description and Objectifs : L’équipe RAINBOW développe des stratégies de commande distribuées pour systèmes multi-robots, toutes fondées sur une même hypothèse : chaque robot ne calcule qu’à partir de l’information de ses voisins immédiats. Cependant, en pratique, ces algorithmes sont le plus souvent validés depuis un ordinateur central disposant de l’état global, ce qui ne dit rien de la robustesse aux latences, aux pertes de paquets et aux commutations de topologie réelles. Ce stage a pour but de supprimer cet écart.

L’équipe dispose de 10 robots terrestres (DJI RoboMaster modifiés, calculateur embarqué LattePanda Sigma), 10 Crazyflie 2.1, 10 Crazyflie 2.1 Brushless, de quadrotors plus grands, de deux salles de capture de mouvement (Vicon, Qualisys) et de divers équipements pour les Crazyflie (recharge sans fil, caméras embarquées, flow deck, AI deck).

Pour atteindre l’objectif du stage, le premier obstacle à surmonter est l’hétérogénéité. Les RoboMaster tournent sous Linux et peuvent exécuter un pair Zenoh nativement. Les Crazyflie reposent sur une architecture bi-microcontrôleur sans pile IP, dont toute communication transite par un dongle Crazyradio : leur pair Zenoh sera donc déporté au sol, sous forme de processus indépendant et sans état partagé, à raison d’un par drone. Un algorithme distribué devra pouvoir s’exécuter sans savoir sur quel type de robot il tourne.

Le deuxième obstacle concerne le voisinage des robots. Zenoh met par défaut tous les pairs en relation, ce qu’un algorithme distribué ne doit précisément pas avoir à disposition. Il s’agit donc de développer une couche restreignant dynamiquement les échanges au voisinage effectif de chaque robot (portée de communication, apparition et rupture de liens, topologie commutante), conçue autour d’une interface abstraite de « fournisseur de voisinage » alimentable aussi bien par la capture de mouvement que par la localisation relative décentralisée.

Objectifs :


Activités envisagées


  1. Prise en main de la plateforme (ROS 2, Crazyswarm2 / cflib, capture de mouvement) et de Zenoh ; état des lieux de l’existant.

  2. Conception de l’architecture et prototype.

  3. Développement de la couche de contrainte de voisinage et des outils de mesure.

  4. Mise en place et caractérisation des performances et des limites de dimensionnement.

  5. Démonstration expérimentale, documentation, tests, publication du code.

Des activités optionnelles, abordées une fois les objectifs principaux atteints, peuvent inclure : appui aux expériences des doctorants ; mise en service des stations de recharge sans fil ; intégration de nouveaux capteurs embarqués ; étude de faisabilité de zenoh-pico sur le module WiFi de l’AI deck.

L’architecture retenue conditionnera les expérimentations de l’équipe pour plusieurs années. Le stage offre une réelle responsabilité technique, un travail au contact direct des doctorants, une pratique approfondie des systèmes distribués appliqués à la robotique, et une contribution open source visible dans l’écosystème ROS 2 / Zenoh.


Compétences requises


Indispensables

Appréciées




Conditions


Stage de fin d’études, parcours ingénieur (Bac+5)

Durée prévue du stage: 5-6 mois

Les travaux se dérouleront en anglais/français au Centre de recherche Inria de l’Université de Rennes, France.

Gratification de stage : 4,50 €/h


Comment candidater


Les candidats intéressés sont priés de postuler via ce formulaire.

Le poste restera vacant jusqu’à ce qu’un candidat retenu soit trouvé. Si votre candidature est retenue, vous serez contacté(e). Dans le cas contraire, vous ne recevrez pas de réponse.

Encadrants : Dr. Esteban Restrepo, Dr. Gianluca Corsini