RobotCompetition2014-3
Sommaire
Introduction :
Le but de ce bureau d'étude est, pour notre groupe, de concevoir un robot joueur en LEGO Mindstorm. Pour cela notre robot doit être capable de repérer la balle et ensuite avancer vers elle. Il doit aussi pouvoir la prendre, faire une rotation en direction du but adverse et tirer. Nous voulons avant tout, construire notre robot selon nos exigences, ensuite le programmé en fonction de la balle, et pour finir le programmé en fonction des buts et de l'arbitre.
Première étape : La construction :
Avant de commencer cette étape nous avons effectuer plusieurs recherches internet pour se donner une idée de la forme que pouvez avoir notre robot. Nous n'avons rien trouver de conforme à nos exigences et nous avons donc décidé de l'assembler selon notre instinct.
Nous voulions dans un premier temps avoir un robot avec trois roues : Deux devants et une à l'arrière, pour faciliter les rotations. les deux devants sont reliées à des moteurs alors que celle à l'arrière est libres, elle sert à stabiliser le robot.
Notre second critère était que le robot devait être léger pour faciliter ses déplacements. On s'est vite rendu compte que cela n'était pas possible car pas assez stables. A cause d'un problème de couple au niveau des deux roues avants, nous avons dû ajouter des fixations et donc augmenter le poids du robot. Cette idée fut donc vite abandonné.
Ensuite, nous avons rajouté des "pinces" à l'avant car l'idée de base était que le robot n'avait cas effectuer une rotation rapide en direction du but une fois que la balle se trouvait dans ces "pinces" pour tirer, mais cela était inefficace. Nous nous sommes donc penchés vers un système avec un moteur et un balancier pour tirer et pouvant au préalable capturer la balle.
Pour les capteurs, nous avons positionné le capteur à ultrasons en hauteur avec une vue plongeante pour qu'il puisse repérer la balle quand elle est au niveau des pinces. Ensuite le capteur infrarouge se situe au dessus du capteur à ultrasons, pour avoir une vue panoramique et pouvoir détecter la balle à bonne distance de notre robot. Notre dernier capteur, le capteur de couleurs se trouve en dessous du robot, au niveau du sol car il ne peut pas détecter les couleurs avec une distance supérieur à 2cm.
Le robot fût amélioré à mesure que le programme avançait. La construction et la programmation se sont faîtes de manière simultanée.
Deuxième étape : Le programme :
En premier lieu nous avons chercher à comprendre comment fonctionnait le langage nxc. Pour cela nous nous sommes aidés d'un site regroupant les principales formules de ce langage ([1]). Grâce à cela nous avons fait en sorte que le robot avance tout droit, tourne, recule... C'est à la suite de ces quelques lignes de code que le problème de couple au niveau des roues nous est apparu.
La second étape fût d'apprendre à se servir des différents capteurs. Pour commencer, nous nous sommes intéressés au capteur le plus important, le capteur infrarouge. Ce capteur était notre priorité car il permettait de repérer tous les éléments du terrain: la balle et les buts. Ce capteur fonctionne grâce à cinq senseurs chacun orientés dans une direction différente, sur 180°. A chacun de ses senseurs correspond une valeur variant de 0 à 255. On a donc écrit un programme permettant d'afficher les valeurs de chaque senseur. Grâce à ces valeurs on a pu écrire un programme qui permettait au robot de repérer la balle et de se diriger vers elle. Ce programme utilisait des valeurs précises, on a vite vu les limites du capteur infrarouge: il manque de précision lorsque la balle est proche et derrière lui. On a donc décidé de ne plus utiliser de valeurs précises, mais uniquement des 0.
Après le capteur infrarouge, nous nous sommes attaqués au capteur ultrason, qui nous sert à détecter la balle, et à déclencher le balancier. Ce capteur est assez précis et facile à utiliser. Le seul bémol est pour les valeurs inférieures à 7cm, qu'il ne détecte pas toujours correctement.
Le dernier capteur que nous avons utilisé est le capteur de couleur. Il nous sert à repérer les lignes rouges délimitant les bords du terrain. Ce capteur fonctionne bien, mais doit être presque collé à la ligne. Nous n'avons pas eu de problème avec ce capteur, car nous l'avions déjà placé au niveau du sol.
Troisième étape : Les Tests :
Ce projet étant nouveau pour nous, notre projet eut plusieurs problèmes tout au long de sa mise en marche. Tous ces problèmes sont apparus lors des différents tests. Mais ces tests nous ont aussi permis d'en régler la plus part. Dans cette partie on va vous décrire l'ensemble des tests réalisés au cours de ce bureau d'étude.
Un des plus gros problème qui nous a été confronté était de différencier les deux buts et la balle. Nous avons eu l'idée de différencier leurs fréquences et faire aussi varier la fréquence de réception du capteur(600Hz et 1200Hz). Pour ces test, nous avons eu besoin de deux programmes, des variantes d'un programme précédent. Un qui permet d'afficher les valeurs des différents senseurs lorsqu'ils sont réglés sur 600Hz et sur 1200Hz. Nous avons aussi eu besoin d'un mètre et de plusieurs balles. Nous étudions ensuite la valeurs du senseurs du milieu (le numéro 3), pour des distances variants entre 30cm et 3m.
On a pu en conclure que le capteur ne voyait que la valeur de 600Hz ou presque, lorsqu'il était réglée sur 600Hz. Suite à ça il nous a semblé logique de définir la balle à 600Hz. Une fois la balle dans les pied et réglé sur 1200Hzil ne voyait presque plus la balle mais bien l'autre signal de 1200Hz qui définira le but.
Suite à ce choix le problème est que si notre joueur se trouve face à son propre but il va tirer dans cette direction.