RobotCompetition2014-3 : Différence entre versions
(→Première étape : La construction :) |
(→Deuxième étape : Le programme :) |
||
Ligne 30 : | Ligne 30 : | ||
− | En premier lieu nous avons | + | En premier lieu nous avons cherché à comprendre comment fonctionnait le langage nxc. Pour cela nous nous sommes aidés d'un site regroupant les principales formules de ce langage ([http://bricxcc.sourceforge.net/nbc/nxcdoc/nxcapi/]). 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 | + | La seconde é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 permet de repérer tous les éléments du terrain: la balle et les buts. Ce capteur fonctionne grâce à cinq senseurs chacun orienté 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 nous avons 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 ou 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 | + | Après le capteur infrarouge, nous nous sommes attaqués au capteur ultrason, qui nous servait à détecter la balle, et à déclencher le balancier. Ce capteur est assez précis et facile à utiliser. Le seul bémol est que pour les valeurs inférieures à 7cm, 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. | + | 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 pour la repérer. 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 : == | == Troisième étape : Les Tests : == |
Version du 12 mars 2015 à 15:56
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 programmer en fonction de la balle, et pour finir le programmer en fonction des buts et de l'arbitre, tout cela en NXC (Not Exactly C).
Première étape : La construction :
Avant de commencer cette étape nous avons effectuer plusieures recherches internet pour nous donner une idée de la forme que pouvait avoir notre robot. Nous n'avons rien trouvé 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 libre, elle sert à stabiliser le robot.
Notre second critère était que le robot soit 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ée.
Ensuite, nous avons rajouté des "pinces" à l'avant car l'idée de base était que le robot n'ait qu'à 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 sur 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érieure à 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 cherché à 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 seconde é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 permet de repérer tous les éléments du terrain: la balle et les buts. Ce capteur fonctionne grâce à cinq senseurs chacun orienté 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 nous avons 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 ou 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 servait à détecter la balle, et à déclencher le balancier. Ce capteur est assez précis et facile à utiliser. Le seul bémol est que pour les valeurs inférieures à 7cm, 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 pour la repérer. 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.