RobotDefense2013-2 : Différence entre versions

De Wiki de bureau d'études PeiP
(Programmation du robot :)
(Programmation du robot :)
Ligne 46 : Ligne 46 :
 
'''Se déplacer pour intercepter la balle'''
 
'''Se déplacer pour intercepter la balle'''
  
La première idée qui nous ait venu était d'écrire un programme permettant au robot de se positionner entre la balle et la cage de but de son camp afin d'empêcher l'attaquant de marquer. Pour cela, nous avons utilisé les différentes zones localisées par le capteur infrarouge. En se mettant d'abord dans la situation où le robot se serait déjà placer devant la cage et parallèlement à celle-ci : il ne lui reste plus qu'à se déplacer vers l'avant ou vers l’arrière pour intercepter la balle. Ainsi les zones
+
La première idée qui nous ait venu était d'écrire un programme permettant au robot de se positionner entre la balle et la cage de but de son camp afin d'empêcher l'attaquant de marquer. Pour cela, nous avons utilisé les différentes zones localisées par le capteur infrarouge. En se mettant d'abord dans la situation où le robot se serait déjà placer devant la cage et parallèlement à celle-ci : il ne lui reste plus qu'à se déplacer vers l'avant ou vers l’arrière pour intercepter la balle. Ainsi, si le signal est capté dans les zones 1, 0 et 9 le robot recule, pour les zones 2 et 8 il reste immobile et enfin pour le reste des zones il avance comme le montre la photo ci-contre.
 +
 
 +
("Screenshot avancer reculer")
 +
 
 +
'''Rester dans la zone de défense'''
 +
 
 +
Pour le programme précédent, on supposait que le robot se trouvait dans une zone entre la cage et la balle, on sait maintenant que cette zone est matérialisée par une large bande de couleur verte située devant la cage. En se mettant dans la situation identique à celle décrite précédemment, le robot doit pouvoir se déplacer pour intercepter la balle mais en même temps il ne doit pas sortir de cette même zone. Ainsi, nous avons placer le programme précédent dans une boucle if (Commut.) qui teste la couleur sous le robot : si la couleur est verte le robot continue à se déplacer suivant la balle sinon il

Version du 29 avril 2014 à 09:33

Introduction :

Ayant choisi de nous occuper de la partie défense, notre but sera donc de construire et de programmer un robot capable de se repérer dans le terrain afin de se placer sur la zone de défense de son camp et intercepter la balle pour éviter que les attaquants ne marquent. Le robot devra alors se repérer à l'aide de capteurs équipés. Nous aborderons donc d'une part la réalisation mécanique du robot et d'autre part l'aspect programmation du robot


Construction du robot

Nous avons commencé par construire la base du robot (le châssis) de manière à ce qu'elle puisse supporter le poids du NXT sans se déformer, que le boitier soit accessible (pour un changement de piles par exemples) et qu'on puisse y placer les différents capteurs.

Par ailleurs, nous nous sommes rendu compte que les roues en caoutchouc dérapaient au moment où le robot tournait , nous les avons donc remplacer par des chenilles, plus stables.

D'autre part, nous avons ajouté le troisième moteur à l'avant du robot représentant un système qui permettrait d'attraper ou de propulser la balle. Cependant, le poids de ce dernier faisait pencher le robot vers l'avant nous l'avons donc rattacher au boitier NXT pour surélever ce moteur ainsi que l'hypothétique bras qui y serait fixé

Ces quelques photos montrent l'évolution du robot pendant la réalisation :

L'emplacement de capteurs :

Zones localisées par le capteur infrarouge

- Le capteur Infrarouge :

Il permet au robot de savoir ou se trouve une source émettant un signal infrarouge (la balle ou la cage de but) par rapport à sa position. Ce capteur reçoit ainsi le signal dans différentes zones (9 zones) correspondant à des intervalles d'angles comme le montre l'image. Ainsi, en fonction de la zone localisée le robot fera le mouvement adéquat. Ce capteur doit donc être placé de façon à ce qu'aucuns éléments de sa structure interne ne le cache.

- Le capteur à ultrasons :

Ce capteur permet au robot d'éviter la collision avec un obstacle se trouvant devant lui, il a donc été placé à l'avant.

- Le capteur de couleurs :

En captant les différentes couleurs du sol sous le robot, ce capteur permet au robot de se placer dans sa zone de défense (large bande verte le sol étant noir) mais aussi d'éviter de sortir du terrain, les bordures étant en bleu. Nous l'avons donc placé de manière à ce qu'il soit très proche du sol (quelques millimètres).

- La boussole électronique :

Elle permet au robot de savoir si il se situe face à son but ou face au but adverse. Elle sera donc placer dans le même sens que le robot. Par ailleurs certaines interférences électromagnétiques peuvent influencer sur les résultats donnés par cette boussole, elle sera donc placé le plus haut possible.

Programmation du robot :

Se déplacer pour intercepter la balle

La première idée qui nous ait venu était d'écrire un programme permettant au robot de se positionner entre la balle et la cage de but de son camp afin d'empêcher l'attaquant de marquer. Pour cela, nous avons utilisé les différentes zones localisées par le capteur infrarouge. En se mettant d'abord dans la situation où le robot se serait déjà placer devant la cage et parallèlement à celle-ci : il ne lui reste plus qu'à se déplacer vers l'avant ou vers l’arrière pour intercepter la balle. Ainsi, si le signal est capté dans les zones 1, 0 et 9 le robot recule, pour les zones 2 et 8 il reste immobile et enfin pour le reste des zones il avance comme le montre la photo ci-contre.

("Screenshot avancer reculer")

Rester dans la zone de défense

Pour le programme précédent, on supposait que le robot se trouvait dans une zone entre la cage et la balle, on sait maintenant que cette zone est matérialisée par une large bande de couleur verte située devant la cage. En se mettant dans la situation identique à celle décrite précédemment, le robot doit pouvoir se déplacer pour intercepter la balle mais en même temps il ne doit pas sortir de cette même zone. Ainsi, nous avons placer le programme précédent dans une boucle if (Commut.) qui teste la couleur sous le robot : si la couleur est verte le robot continue à se déplacer suivant la balle sinon il