Robot de compétition 4

De Wiki de bureau d'études PeiP

Introduction

Dans le cadre du bureau d'étude spécialité IMA, nous avons la charge de concevoir un match sportif mettant en œuvre des robots de la gamme lego mindstorms. Pour cela nous nous sommes répartit les tâches entre la conception des robots joueurs, des robot ramasseurs, des buts et de l'arbitre. Notre binôme a choisit de réaliser l'un des robots joueur, c'est à dire un robot capable de repérer puis de saisir une balle avant de l'envoyer dans les buts adverses.


La conception du robot

La conception mécanique du robot passe tout d'abord par la confection d'un châssis stable et solide, puis par le placement des différents capteurs et enfin par la mis en place d'un bras mécanique. Pour cela nous disposions d'une boite lego mindstorm avec des roues, des servomoteurs et différents types de capteurs : couleur, infrarouge, ultrasons. Nous avons changer plusieurs fois le concept du robot, qu'il s'agisse du déplacement, du bras mécanique, ou du placement des capteurs pour des questions de pratique.

L'aspect mécanique

La première chose à faire a été de confectionner le châssis, nous avions besoin d'une base stable pour placer le boitier Mindstorm et qui faciliterai le déplacement. Nous sommes tout d'abord parti sur l'idée d'un déplacement grâce aux chenilles, pour ensuite le changer et placer 4 roues ; en effet les différents câbles avec tendance à gêner le déplacement du robot lorsque les chenilles étaient mise en place. 20150122 165211.jpg

Premier prototype : robot à chenille
Changement chenille pour 4 roues (vue de profil)

Les différents capteurs utilisés

Capteur couleur

Le Capteur de couleur

Ce capteur a été placé sous le robot, au devant de celui-ci et dirigé vers le sol. Il permet de détecter la couleur du sol sur laquelle le robot passe et permet ainsi d'empêcher le robot de sortir du terrain.


Le capteur de distance à ultrasons

Ce capteur est composé de deux éléments : un émetteur ultrason et un récepteur. On peut ainsi mesurer la différence de temps entre l'émission d'un signal ultrason et sa réception après qu'il ait rebondi sur un obstacle, ce qui permet d'estimer la distance de l'obstacle. Ce capteur à été placé sur le devant du robot, légèrement surélevé afin qu'il n’interfère pas avec la balle. Il servira pour éviter les collisions du robot avec des obstacles. Nous avons programmer le capteur de façon à ce que le robot s'arrête lorsqu'il rencontre un objet à moins de 20 centimètres de lui. Fichier:20150202 084638.mp4

Capteur infrarouge placé au sommet du robot & capter ultrasons
Le capteur infrarouge

Ce capteur permet de détecter la distance d'une source émettant dans l'infrarouge dans six directions différentes. Il est donc pratique pour localiser une source en fonction de l'angle avec le capteur et sa distance. Nous avons placer le capteur à plusieurs endroits différents. En effet nous avons rencontrer certains problèmes : lorsque l'objet à localiser (la balle ici, les buts n'étant pas prêts à testés) se trouvait à distance inférieure à 15 centimètres du capteur, les valeurs étaient erronées. Il devenait alors difficile au robot de déterminer avec exactitude la direction dans laquelle se rendre.


Le capteur de contact

Le capteur de contact est constitué d'un simple bouton poussoir, qui lorsqu’il est pressé, envoie un simple signal au robot. Il va permettre de vérifier que la balle est bien capturé. Nous l'avons utiliser dans une seule optique : lorsque le robot actionner le bras mécanique pour attraper a balle, il devait savoir si oui ou non il l'avait bel et bien attrapé. Nous l'avons donc programmer pour que lorsque la balle appuierait sur le capteur, le robot s'arrête et effectue une rotation.

Bras mécanique

Lors de la conception du robot, nous avions dans un premier temps construit le châssis, puis très vite le bras robotique. Ne pensant qu'il ne servirai qu'a tirer dans la balle, un simple appareil était suffisant, néanmoins nous nous sommes vite rendus compte qu'il avait plus à faire!

Problématiques rencontrées

Le problème principal auquel nous avons été confronté fut la conception du bras. En effet au début il ne nous servait qu'à frapper la balle d'un coup sec mais il ne pouvait pas garder la balle. Nous avons donc changer radicalement notre façon de penser ; il était question de garder la balle lors d'un quelconque déplacement du robot. Il fallait que la balle puisse entrer facilement dans une sorte d'entonnoir où elle viendrait se glisser jusqu'au tire. Se sont donc suivis plusieurs conception du bras mécanique.

Le dernier prototype ci-dessous semblait le plus performant, néanmoins lors des tests, la balle n'entrait pas correctement et le bras mécanique frappait donc dans le vent.

Quatrième prototype
Deuxième prototype
Troisième prototype


Version aboutie

Vue de face
Vue de profile

Pour cette dernière version du bras mécanique nous avons choisi d'utiliser des engrenages. En effet les précédents essais ne nous permettaient pas de garder la balle. Nous avons donc aligner 4 engrenages de tailles différentes, l'une faisant tourner toutes les autres grâce à une barre placer en son centre qui s'actionne avec le servomoteur. Il a alors fallu trouver le bon écart entre les engrenages. Il fallait également avoir des pinces assez longues pour ramener la balle vers le robot mais faire attention à ce qu'elle ne reste pas coincés. Avec la force du servomoteur, après plusieurs utilisation les engranges se décalaient donc il fallait les bloquer de manière à ce qu'ils ne partent pas n importe comment.

Programmation

/ A compléter avec capture d'écran

Expliquer :

  • programme pour suivre une ligne : pour se garer
  • programme pour faire demi tour si rencontre ligne d'une certaine couleur : ne pas sortir du terrain + ne pas entrer dans la surface de réparation
  • programme pour trouver et se diriger vers la balle
  • programme pour envoyer la balle vers le but

/

Mise en place de la phase de jeu

Ce bureau d'étude nous permet surtout de travailler en équipe. Une fois la conception mécanique et la programmation du robot assez avancées, il nous fallait penser à la partie de football entre les robots! En effet dans la phase de jeu chacun a un rôle à tenir ; pour chaque terrain il y a :

  • deux cage de buts
  • deux robots de compétition
  • un arbitre
  • un robot ramasseur de balle


Nous devions être conscients de plusieurs choses :

  • Détecter la balle (muni de led infrarouge) et les cages de buts (muni de led infrarouge)
  • Différencier ces deux derniers.
  • Détecter les limites du terrain (ruban adhésifs colorés)
  • Ne pas foncer dans les autres robots
  • S'orienter vers la bonne cage de but
  • Envoyer la balle vers le but
  • Se replacer

Détecter les limites du terrain semblait chose facile, mes les professeurs nous ont donné pour contraintes de devoir "garer" les robots lorsqu'ils ne jouent pas. Il faut donc créer un programme pour ne pas sortir du terrain en faisant faire demi-tour au robot lorsqu'il rencontre certaines couleurs, et un autre pour suivre une ligne et pour qu'il se gare correctement.

Le plus grand challenge pour notre robot est de différencier la balle des buts! Tel qu'il est maintenant, notre programme ne nous permet pas cela ; le robot se dirigera automatiquement vers l'objet (émettant un signal infrarouge) le plus proche de lui...Ce qui est plutôt contraignant pour la phase de jeu. Nous donc collaborer avec les autres binômes pour trouver une solution ! Il a était question de deux options :

  • Premièrement faire émettre aux cages de but et à la balle des signaux différents. Ainsi le robot devra chercher la balle selon la fréquence qu'elle émet et se concentrera seulement après sur les buts.
  • Deuxièmement utiliser l'arbitre. En effet l'arbitre pourrait demander aux buts de s'éteindre tant que l'un des deux robots n'a pas attraper la balle. Il faudrait donc programmer le robot afin que lorsqu'il a la balle, s'arrête et envoi un signal à l'arbitre pour lui confirmer que les buts peuvent fonctionner.