BE 2012-2013

De Wiki de bureau d'études PeiP
Révision datée du 7 mars 2013 à 11:36 par Rex (discussion | contributions) (Démonstration finale)

But à atteindre

Ce bureau d'étude a comme finalité la construction de robots patrouilleurs. Ces robots doivent parcourir de façon semi-autonome un espace en accumulant des données. Ces données peuvent être, par exemple, des images de leur environnement ou le résultat d'écoutes WiFi. Un robot semi-autonome est un robot capable de se déplacer dans son espace sans intervention humaine en suivant un balisage quelconque (marquage au sol, tags RFID, sons particuliers, etc). Un humain doit cependant pouvoir prendre le contrôle partiel ou total d'un robot. Le contrôle partiel consiste à faire varier la vitesse du robot, le sens du parcours du robot, etc. Le contrôle total consiste à gérer complétement le déplacement du robot, même si ce dernier évite encore les collisions (que le contrôleur pourrait ne pas avoir pu prévoir). Les robots doivent aussi pouvoir communiquer entre eux pour s'échanger des informations de positionnement, pour pouvoir s'éviter ou pour pouvoir se regrouper (par exemple pour pouvoir explorer en détail un lieu particulier). A ce propos il est fondamental que les robots sachent se positionner pour pouvoir annoter les informations envoyées ou stockées (images ou données).


Matériel à votre disposition

Boite mindstorm.jpg
Foxboard.jpg

Les couches basses du robot seront réalisées à l'aide de Lego MindStorm. Le Lego va permettre de réaliser le chassis avec sa motorisation et d'y installer divers capteurs. Il est même possible d'assurer une certaine communication entre robots grâce à la technologie bluetooth intégrée au micro-contrôleur MindStorm. Pour aller plus loin, il est nécessaire d'embarquer un micro-PC de type FoxBoard sur le robot. C'est ce micro-PC qui fera faire les acquisitions d'images ou les analyses WiFi et c'est à lui que le micro-contrôleur du MindStorm pourra envoyer ses données de localisation.


Répartition des tâches

Chaque binôme va se voir affecter une des problématiques décrites dans les sous-sections suivantes. Par la suite les résultats devront être incorporés dans chaque robot pour obtenir un robot tel que décrit plus haut. Notez que tous les robots doivent savoir s'arrêter quand un obstacle se présente devant eux (utilisation du sonar MindStorm).

Robot suiveur de ligne

Vous devez créer un robot capable de suivre une courbe discontinue au sol. Le robot doit être capable de réaliser les actions ci-dessous.

  • en cas de perte du marquage, tourner dans un sens puis dans l'autre pour tenter de le retrouver avec des angles de plus en plus grands ;
  • si le marquage ne peut pas être retrouvé, se remettre dans la position de la perte initiale et partir tout droit ;
  • se remettre dans l'axe du marquage lorsque ce marquage est retrouvé ;
  • s'arrêter quand un obstacle se présente devant lui et repartir si l'obstacle disparait ;
  • changer de parcours sur commande, c'est à dire emprunter un parcours d'une couleur différente dès qu'il est rencontré ;
  • inverser son sens de parcours.

Voici des exemples de parcours discontinus pouvant être suivis dans les deux sens.

Elèves Matériel Page
Floriane Chevalier Boite lego MindStorm, Scotch de couleur Robot suiveur de ligne 1

Robots synchronisés

Cette étude sera menée par deux binômes. Vos deux robots doivent être capables de se synchroniser. Il vous est demandé de réaliser le comportement suivant :

  • séparés, les robots avancent tout droit et s'arrêtent dès qu'ils détectent un obstacle avec leur sonar ;
  • les deux robots doivent pouvoir être couplés côte à côte ;
  • dans le mode couplé, les robots avancent quand aucun obstacle n'est détecté par leurs sonars ;
  • dans le mode couplé, si un robot détecte un obstacle et l'autre non le couple tourne dans la direction où aucun obstacle n'est détecté.

La communication entre les deux robots se fait par bluetooth.

Elèves Matériel Page
Corentin Duplouy & Safouane Driouich Boite lego MindStorm WALL_E (master : "leave me alone")
Bastien Couenne & Elliot D'Inguimbert Boite lego MindStorm EVE (slave : "give me freedom")

Robot suiveur RFID

Vous doterez votre robot d'un lecteur RFID et d'un équipement de type boussole. Votre robot doit être capable de réaliser les opérations ci-après :

  • trouver sous une marque de couleur précise (feuille A4, disque, ...) une carte RFID ;
  • partir dans une direction donnée ; le robot s'oriente avec la boussole puis se lance avec ses deux moteurs sans tenter de corriger la trajectoire ;
  • mémoriser des caps en fonction des identifiants des cartes RFID.

Par la suite vous intégrez ces trois fonctionnalités pour obtenir un robot capable de suivre une trajectoire matérialisée par des marques sous lesquelles une carte RFID est dissimulée. Quand le robot détecte une marque via son capteur de couleur, il se met à chercher l'emplacement exact de la carte RFID. Une fois la carte localisée, le robot trouve le prochain cap à suivre en fonction de l'identifiant de la carte RFID. Le robot s'oriente sur ce cap avec sa boussole puis se lance vers la marque suivante. Et ainsi de suite.

Voici un exemple de parcours en suivant des marques RFID.

Elèves Matériel Page
Alexandre Jouy & Kévin De Arriba Boite lego MindStorm, Module RFID, Cartes RFID, module boussole, Marques de couleur Robot suiveur RFID 1

Robot naviguant aux instruments

Vous doterez votre robot d'une boussole ou d'un gyroscope pour lui permettre de connaitre précisement sa direction. Vous devez réaliser les actions décrites dans la suite.

  • Vous commencerez par faire en sorte que votre robot sache avancer en ligne droite, pour cela vous utiliserez le contrôle PID décrit sur la page WikiPedia. Pour simplifier ce qui est dit sur cette page, sachez le principe appliqué à votre robot va être d'effectuer des corrections sur la trajectoire en utilisant des rotations. L'angle de ces rotations va être calculé en fonction de l'erreur de trajectoire indiqué par l'instrument. Plus exactement par la somme d'une constante multipliée par l'erreur instantanée, d'une autre constante multipliée par l'intégrale de l'erreur et enfin d'une dernière constante multipliée par la dérivée de l'erreur. A vous de trouver les valeurs adaptées des trois constantes.
  • Par la suite faites en sorte que votre robot sache contourner les obstacles au plus juste. Au plus juste signifiant qu'il tournera vers la droite ou vers la gauche en jugeant où se trouve le chemin le plus libre. L'algorithme à appliquer consiste à tourner le robot d'un angle faible dans un sens puis dans l'autre et de lire les resultats du sonar. Si les deux mesures indiquent un obstacle trop proche, l'angle est augmenté et le procédé répété. Dès qu'une trajectoire indique un chemin libre ou du moins un obstacle à distance suffisante, le robot avance en ligne droite suivant cette trajectoire. L'instrument doit être utilisée ici pour vérifier que le robot effectue précisement des rotations des angles souhaités et qu'il sache revenir en position initiale pour éventuellement recommencer avec un angle plus grand.
  • Pour permettre de suivre le comportement du robot, faites afficher sur la brique de contrôle MindStorm l'angle de rotation pour le dernier contournement et la distance parcourue le long de la dernière ligne droite.

Intégrez les comportements pour obtenir un robot capable de contourner les obstacles avec un minimum d'intelligence.

Voici un exemple de contournement d'obstacle avec l'algorithme décrit.

Elèves Matériel Page
Jérôme Bailet & Timothée Teneur Boite lego MindStorm, Module boussole, Module gyroscope Robot aux instruments 1

Robot solaire

Le but est de concevoir un robot capable de trouver le meilleur point de rechargement solaire dans une pièce et de se mettre en mode de rechargement tout en étant capable de se réveiller après une période de charge. Vous devez réaliser les actions décrites dans la suite.

  • Votre robot doit déjà être capable de se déplacer dans une pièce en évitant les obstacles et de mesurer l'ensoleillement en différents points. L'algorithme de recherche du point idéal pourrait être de se déplacer à volonté (on suppose la pièce fermée) en calculant l'ensoleillement maximal. Au bout d'un temps défini, le robot compare l'ensoleillement local au maximum trouvé dans son premier parcours et s'arrête dès qu'il tombe sur un ensoleillement égal à une fraction du maximum (80% par exemple).
  • Concevez une alimentation ad hoc. Par exemple une batterie rechargeable pour MindStorm connectée, via des relais ou transistors, d'une part au bloc contrôleur du MindStorm et d'autre part au panneau solaire. Un régulateur entre les panneaux et la batterie sera nécessaire. Réalisez aussi un dispositif électronique indépendant (superviseur) capable de coller le relai d'alimentation du MindStorm dès que la charge de la batterie est raisonnable. Vous pourrez vous appuyer sur des composants intégrés de recharge de batterie (de type DS2715) et sur une supervision impliquant un microcontroleur Atmel AVR (au départ un arduino, puis transfert sur un microcontroleur seul). Commencez par lister le matériel nécessaire pour passer la commande.
  • Il ne vous reste plus qu'à écrire le comportement du robot quand il trouve son coin au soleil. A savoir, coller le relai de charge de sa batterie tout en se suicidant en decollant son relai d'alimentation. Il lui faut aussi décoller le relai de chargement quand il se réveille.
Elèves Matériel Page
Emilien Geiger Boite lego MindStorm, Batterie rechargeable pour MindStorm, Panneaux solaires, Modules relais, Dispositif électronique de réveil Robot solaire 1

Robot téléguidé avec système embarqué

Votre robot doit pouvoir être radio-guidé par un contrôleur. Le dit contrôleur peut diriger le robot au vu de l'image de la webcam embarquée. L'acquisition de la webcam et sa diffusion par WiFi est assuré par un système embarqué FoxBoard. La FoxBoard vous sera livrée configurée mais il faudra l'embarquer dans votre robot avec tous ses accessoires (webcam, module bluetooth, boitier de piles). Un calcul du temps d'autonomie doit être effectué. Dans un premier temps le radio-guidage peut se faire à l'aide du logiciel MindStorm par bluetooth. Dans un second temps il faut étudier la possibilité d'un radio-guidage par WiFi, les ordres étant transmis par un navigateur Web au serveur Web de la FoxBoard puis transmis au micro-contrôleur MindStorm par bluetooth. Vous aurez le choix de programmer votre robot avec le logiciel MindStorm ou avec un langage de bas niveau proche du langage C (voir la page web [1]).

Elèves Matériel Page
Jean-Christophe Fabrici & Nicolas Gunst Boite lego MindStorm, Téléphone Android, FoxBoard avec webcam, interface WiFi, convertisseur bluetooth, Boitier piles Robot téléguidé 1
Romain Libaert Boite lego MindStorm, Téléphone Android, FoxBoard avec webcam, interface WiFi, convertisseur bluetooth, Boitier piles Robot téléguidé 2

Robot récupérateur d'objet

L'objectif est de créer un robot capable de récupérer un objet situé sur une base RFID et de le transporter vers une autre base, elle aussi signalée par une RFID.

Le robot doit être capable de réaliser les actions suivantes :

  • Suivre une ligne et détecter les RFID sur son chemin.
  • Lire les RFID pour savoir ce que le robot doit faire : Soulever un objet ou le déposer.
  • Communiquer par Bluetooth entre deux boites NXT (utilisation de 4 servo moteurs).

Le robot est donc constitué de deux éléments essentiel une base motrice et une pince. Nous avons en premier lieu créer la base motrice avec deux servomoteurs avec un socle permettant de placer deux boites NXT. Puis, nous avons utiliser deux autre servomoteurs pour construire une pince, l'un d'eux sert de poulie et l'autre permet de faire pression sur l'objet a soulever. De plus, on utilise deux capteurs : un capteur de couleur pour que le robot suive une ligne, et un capteur RFID qui détecte les bases sur lesquelles une action doit avoir lieu.

Elèves Matériel Page
Déborah Saunders - Jean Wasilewski Boite lego MindStorm, Module RFID, Cartes RFID, Scotch de couleur Robot transporteur

Intégration des fonctionnalités

Une fois toutes les études terminées et les solutions implantées (sous forme de briques personnalisées par exemple), vous doterez votre robot des fonctionnalités nécessaires à la réalisation de la démonstration finale. Votre robot doit être capable de suivre des marquages discontinus au sol, être capable de communiquer avec les autres robots, être capable de se repérer dans l'espace en repérant des cartes RFID et enfin doit embarquer une FoxBoard avec une connexion WiFi et une webcam.

Les robots peuvent se trouver soit dans un mode autonome soit dans un mode téléguidé. Dans le mode téléguidé, le robot est contrôlé à l'aide d'un téléphone ou d'une tablette Android connecté sur le serveur web de la FoxBoard. Il doit être possible de le faire avancer, reculer ou tourner. Il doit être possible aussi d'obtenir une image de la webcam.

Le comportement en mode autonome est plus complexe :

  • le robot tente de suivre un marquage de couleur au sol, ce marquage peut être discontinu, éventuellement la boussole peut être utilisée pour passer en ligne droite d'un marquage à l'autre et pour suivre les marquages ;
  • les robots communiquent à leur FoxBoard le dernier tag RFID détecté, la valeur relevée par leur boussole (optionnel) et la voie de garage empruntée (optionnel) ;
  • ces informations sont diffusées entre les FoxBoard, elles sont, en particulier, utilisées pour indiquer la position des robots sur une carte ;
  • certains robots peuvent utiliser les voies de garage au départ de certains tags RFID, l'utilisateur déclenche l'action via le site web de la FoxBoard, l'action n'est exécutée qu'après la vérification de la disponibilité de la voie.
Matériel Boite lego MindStorm Module RFID Module boussole Module gyroscope Téléphone Android FoxBoard WebCam Adaptateur USB/WiFi Adaptateur BlueTooth Hub USB Boitier piles Piles rechargeables
Nombre 8/8 8/8 8/8 1/8 8/8 8/8 8/8 8/8 8/8 8/8 8/8 100/100

Pour configurer la FoxBoard avec tout le matériel nécessaire, suivez les instructions.

Pour une description du système à obtenir suivez la flèche.

Démonstration finale

Pour la démonstration finale vous tracerez une grande piste comprenant au moins deux voies de garage (voir schéma ci-dessous). Des cartes RFID doivent être disposées en des points précis de chaque parcours. Vous placerez vos robots sur la piste, tous orientés dans le même sens. Il faut vérifier que le suivi du marquage au sol est correct, que les robots savent tenir leurs distances et que les robots savent annoncer leur position grâce aux tags RFID. Faire un test d'utilisation des voies de garage pour les robots possédant cette fonctionnalité.

Voici un exemple de double parcours.

Notation

Noms Partie I Partie II Rapport Wiki Soutenance vidéo Total