Robot d'attaque 2013-1/Bob
èi
Introduction
Au cours ce bureau d’étude nous avons eu l'occasion de construire un robot footballeur à partir du kit Lego Mindstorms. Plusieurs ateliers étaient proposés dans l'optique de voir, à long terme, s'opposer les robots de façon autonome. Cette année l'objectif était pour les différents groupes de concevoir les comportements attaque et défense, les cages de buts et de contrôler des robots via le Wifi.
Nous allons vous présenter Bob, notre robot d'attaque, en détaillant les différentes phases de sa conception, la construction puis la programmation. Enfin nous conclurons en analysant le résultat final de ce BE.
Création de Bob
Avant de se lancer à l'aveugle dans une création hasardeuse, nous avons cherché à définir les grandes lignes du projet et les obligations auxquelles notre robot devrait répondre au cours d'un Brainstorming.
Notre robot devra être composé :
- d'un système de déplacement
- d'un système de saisie et de projection de balle
- d'un ensemble de capteurs
Nous avions 3 servomoteurs, 2 serviraient au déplacement de Bob, et le troisième nous servirait à recueillir puis envoyer la balle en direction du but. Le robot étant un footballeur, Étienne, également footballeur, a naturellement proposé de l'équiper d'un pied pour que Bob puisse "shooter" dans la balle. Nous l'avons donc équipé d'un pied central solidement arrimé au châssis et pouvant effectuer une rotation à 360°, ce qui lui donne un énorme avantage en précision et en puissance de frappe.
Afin de donner à Bob les sens nécessaires à l'accomplissement de sa mission, il sera équipé de 3 capteurs. Un capteur de couleur qui lui permettra de détecter les lignes du terrain et de rester dans la zone de jeu. Un capteur infrarouge qui lui servira à détecter la balle et le but et à communiquer leur présence dans un de ses 9 secteurs de détection. Et pour finir un capteur d'ultrasons, à l'origine un capteur tactile, qui lui permettra de capter d'une part la balle pour la saisir et d'autre part les robots adverses pour les éviter.
Néanmoins Bob n'a pas toujours eu le visage que vous lui connaissez aujourd'hui. En effet les contraintes qu'il a du affronter et les objectifs qu'il a cherché à atteindre l'on poussé à évoluer.
Bob 1, problèmes rencontrés
Dans sa première version, bob était monté sur 4 roues et tracté par l'avant. Mais les roues présentaient de sérieux inconvénients. Leur capacité d'adhérence en ligne droite, notamment en phase d'accélération, était limité et lors d'un demi-tour les 2 roues arrières freinaient la rotation.
De plus le problème d'adhérence était aggravé par l'assemblage de Bob et notamment par la position du NXT. Ce dernier placé trop à l'arrière du châssis provoquait un problème de répartition de masse et d'équilibre générale de Bob. Ce problème entrainait un basculement de Bob vers l'arrière.
Malgré de nombreuses qualités de résistance et de précision qui en faisait un tireur hors pair, ce sont ces problèmes de déplacement qui ont eu raison de Bob 1. Mais comme le dit Darwin, les espèces qui survivent ne sont pas les espèces les plus fortes, ni les plus intelligentes, mais celles qui s’adaptent le mieux aux changements, Bob a su se réinventer pour survivre à cette arène hostile.
Bob 2 : la revanche, correction des problèmes
Pour corriger ces problèmes, une refonte totale de Bob s'imposait, nous avons commencé par modifier le châssis, plus bas et plus résistant que son prédécesseur, cette nouvelle charpente était suffisamment trapue pour accueillir et répartir la masse du NXT. Les roues furent évincées au profit de chenilles, qui permettent elles la motricité des 4 roues et la fin des problèmes de dérapage.
L'autre problème mineur concernait la détection de la présence de la balle aux "pieds" du robot. La balle étant très légère et extrêmement fugace, le capteur tactile utilisé la repoussait sans en détecter la présence. Le problème fut résolu en remplaçant le capteur tactile par le capteur d'ultrasons qui remplira donc cette fonction en plus de celle d'éviter les autres robots. Nous avons également ajouté un système qui jouera le rôle d'un entonnoir en ramenant la balle face au capteur.
Programmation de Bob
La construction du robot étant maintenant achevé, il est temps de passer à sa programmation à l'aide du logiciel Lego Mindstorms.Détection des limites du terrain
La première étape consiste à créer une boucle testant le capteur de couleurs. Les limites du terrain étant noires, on ordonne au robot de s'arrêter et de faire demi-tour sur quelques tours de roues lors de la détection d'une ligne noire. Si le robot ne détecte pas de ligne noire, il adopte son comportement offensif habituel.
Détection et saisie de la balle
Il commence son action par la recherche de la balle à l'aide de son capteur infrarouge. Celui-ci peut détecter la présence de la balle dans 9 secteurs différents et transmettre l'information au NXT. Si la balle se trouve dans les secteurs 1 à 4 ou 6 à 9, Bob effectue une rotation, respectivement dans le sens antihoraire ou horaire, d'un nombre de degrés suffisant pour replacer la balle dans le secteur 5. Le capteur infrarouge est ainsi testé tous les demi-tours de roues. Une fois la balle dans le secteur 5, Bob peut avancer vers elle. Lorsqu'il est suffisamment proche de la balle, soit à une distance inférieure à 9 centimètres, le capteur d'ultrason la détecte, Bob utilise alors son troisième moteur, qui contrôle le pied articulé, afin de saisir la balle et de pouvoir se positionner face au but sans laisser échapper la balle.Orientation face au but et tir
Une fois la balle saisie, Bob peut se positionner face au but et frapper. Pour cela il utilise son capteur infrarouge pour détecter les LEDs placées au centre du but. et de la même manière que pour la détection de la balle, il place le but dans son secteur 5. Une fois le but dans le secteur 5, il utilise le pied articulé pour tirer.
Communication avec le but
Lors de la partie, le robot communique avec le but via Bluetooth. Ainsi il peut recevoir certaines informations nécessaires au jeu, comme savoir si un but à été inscrit, et ainsi se replacer et attendre la reprise du jeu. Le programme nous a été transmis par le groupe s'occupant du but et comporte 3 variables, but, replacer et bouge.
Vidéos des différents comportements
Conclusion
Notre but était de concevoir un robot joueur de foot et de lui intégrer un comportement offensif. Pour ce qui est du robot en lui-même, nous avons pu en concevoir un qui soit assez solide, assez stable et équipé pour accomplir les tâches demandées. La construction de Bob n'a pas posé de problèmes en particulier même si elle a demandé quelques ajustements.
La partie dans laquelle nous avons rencontré le plus de soucis fut la partie programmation.