Robot d'attaque 2013-1/Bob : Différence entre versions

De Wiki de bureau d'études PeiP
(Bob 2 : la revanche, correction des problèmes)
 
(36 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
[[Fichier:Bandeau.png|500px|center]]
 +
<include nopre noesc src="/home/pedago/ppeip/include/video-RobotAttaque1-2013-iframe.html" />
 +
__TOC__
 +
<br style="clear: both;">
 +
 
== Introduction ==
 
== 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.
+
Au cours de 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 des 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.
 
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.
Ligne 11 : Ligne 16 :
 
*d'un système de saisie et de projection de balle
 
*d'un système de saisie et de projection de balle
 
*d'un ensemble de capteurs  
 
*d'un ensemble de capteurs  
 +
[[Fichier:Image5.JPG|200px|thumb|right|Pied de Bob]]
 
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.  
 
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.
 
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.   
+
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és à atteindre l'ont poussés à évoluer.   
  
 
===Bob 1, problèmes rencontrés===
 
===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.
+
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ée 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.
+
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 entraînait 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.
+
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 l'a 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.
 
<br/>
 
<br/>
 
<gallery>
 
<gallery>
Fichier:iRSeeker_Diag2.jpg|Bob 1, vue générale
+
Fichier:Image1.JPG|Bob 1, vue générale
Fichier:iRSeeker_Diag2.jpg|Bob 1,
+
Fichier:Image2.JPG|Bob 1
Fichier:iRSeeker_Diag2.jpg|Bob 1,
+
Fichier:Image3.JPG|Bob 1
 
</gallery>
 
</gallery>
  
 
===Bob 2 : la revanche, correction des problèmes===
 
===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.
+
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 quant à 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.
+
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 au centre du robot, face au capteur, puis nous avons modifier le pied pour améliorer la conduite de balle.
 
<br/>
 
<br/>
 
<gallery>
 
<gallery>
Fichier:iRSeeker_Diag2.jpg|Bob 2,
+
Fichier:Image4.JPG|Bob 2, vue générale
Fichier:iRSeeker_Diag2.jpg|Bob 2,
+
Fichier:IMG_0072.JPG|Bob 2
Fichier:iRSeeker_Diag2.jpg|Bob 2,
+
Fichier:IMG_0094.JPG|Bob 2, version finale
 
</gallery>
 
</gallery>
  
 
==Programmation de Bob==
 
==Programmation de Bob==
La construction du robot étant maintenant achevé, il est temps de passer à sa programmation à l'aide du logiciel Lego Mindstorms.[[Fichier:Programme2.png|200px|thumb|right|Détection des limites du terrain]]
+
La construction du robot étant maintenant achevée, il est temps de passer à sa programmation à l'aide du logiciel Lego Mindstorms.[[Fichier:Programme2.png|200px|thumb|right|Détection des limites du terrain]]
  
 
====Détection des limites du terrain====
 
====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 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.
+
La première étape consiste à créer une boucle testant le capteur de couleurs. Les limites du terrain étant bleues, 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 bleue. Si le robot ne détecte pas de ligne bleue, il adopte son comportement offensif habituel.
  
 
====Détection et saisie de la balle====
 
====Détection et saisie de la balle====
[[Fichier:iRSeeker_Diag2.jpg|200px|thumb|left|Répartition des secteurs du capteur infarouge]]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.[[Fichier:Programme3.png|200px|thumb|right|Détection et saisie de la balle]] 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.
+
[[Fichier:iRSeeker_Diag2.jpg|200px|thumb|left|Répartition des secteurs du capteur infrarouge]]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.[[Fichier:Programme3.png|200px|thumb|right|Détection et saisie de la balle]] 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====
 
====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 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.
+
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====
 +
[[Fichier:Programme4.png|200px|thumb|right|Communication but-robot]]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, <tt>but</tt>, <tt>replacer</tt> et <tt>bouge</tt>.
 +
 
  
<br/>
 
<gallery>
 
Fichier:iRSeeker_Diag2.jpg|Vidéo : Détection ligne noire
 
Fichier:iRSeeker_Diag2.jpg|Vidéo : Détection et saisie de la balle
 
Fichier:iRSeeker_Diag2.jpg|Vidéo : Orientation et tir
 
</gallery>
 
  
 
==Conclusion==
 
==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.
+
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é de tout le matériel nécessaire pour accomplir les tâches demandées. La construction de Bob n'a pas posé de problème particulier même si elle a demandé quelques ajustements.
 +
 
 +
La partie dans laquelle nous avons rencontré le plus de soucis fut la partie programmation. En effet, ce fut notre première expérience depuis OCaml au cours du premier semestre de PEIP dans ce domaine. Nous nous sommes donc servi du logiciel Mindstorms qui proposait une interface intuitive et accessible aux néophytes. Nous avons donc pu programmer le robot dans ses fonctions principales, néanmoins nous n'avons pas été capables de programmer le replacement du robot après un but.
  
La partie dans laquelle nous avons rencontré le plus de soucis fut la partie programmation.
+
Ce bureau d'études fut une excellente expérience et nous a permis de vivre de l'intérieur le déroulement d'un projet et d'aborder sur un cas concret le domaine de la programmation.

Version actuelle datée du 21 mai 2014 à 12:08

Bandeau.png


Vidéo HD


Introduction

Au cours de 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 des 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
Pied de Bob

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és à atteindre l'ont poussés à é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ée 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 entraînait 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 l'a 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 quant à 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 au centre du robot, face au capteur, puis nous avons modifier le pied pour améliorer la conduite de balle.

Programmation de Bob

La construction du robot étant maintenant achevée, il est temps de passer à sa programmation à l'aide du logiciel Lego Mindstorms.
Détection des limites du terrain

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 bleues, 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 bleue. Si le robot ne détecte pas de ligne bleue, il adopte son comportement offensif habituel.

Détection et saisie de la balle

Répartition des secteurs du capteur infrarouge
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.
Détection et saisie de la balle
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

Communication but-robot
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.


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é de tout le matériel nécessaire pour accomplir les tâches demandées. La construction de Bob n'a pas posé de problème particulier même si elle a demandé quelques ajustements.

La partie dans laquelle nous avons rencontré le plus de soucis fut la partie programmation. En effet, ce fut notre première expérience depuis OCaml au cours du premier semestre de PEIP dans ce domaine. Nous nous sommes donc servi du logiciel Mindstorms qui proposait une interface intuitive et accessible aux néophytes. Nous avons donc pu programmer le robot dans ses fonctions principales, néanmoins nous n'avons pas été capables de programmer le replacement du robot après un but.

Ce bureau d'études fut une excellente expérience et nous a permis de vivre de l'intérieur le déroulement d'un projet et d'aborder sur un cas concret le domaine de la programmation.