BE 2013-2014 : Différence entre versions

De Wiki de bureau d'études PeiP
(Matériel à votre disposition)
 
(31 révisions intermédiaires par 12 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
= But à atteindre =
+
= Objectif à atteindre =
  
Ce bureau d'étude a comme finalité la construction de robots joueurs de balle. Ces robots doivent s'affronter sur un terrain découpé en quatre zones avec des buts aux extrêmités opposées.
+
Ce bureau d'étude a comme finalité la construction de robots joueurs de balle. Ces robots doivent s'affronter sur un terrain découpé en quatre zones avec des buts aux extrémités opposées.
 
[[Image:terrain.png|500px|center]]
 
[[Image:terrain.png|500px|center]]
Les robots vont devoir s'affronter par paires. Le but d'une paire de robot est d'arriver à envoyer l'unique balle dans le but adverse sans qu'il leur arrive la même chose. Il n'y a pas de spécialisation dans les robots. Chacun pouvant attaquer ou défendre. Un robot qui trouve la balle va chercher à l'attraper et à la lancer sans rentrer en contact avec un autre robot. Un robot qui ne trouve pas la balle va se replier sur un rôle de défenseur. Les robots ne peuvent, bien entendu, pas quitter le terrain.
+
Les robots vont devoir s'affronter par paires. Le but d'une paire de robots est d'arriver à envoyer l'unique balle dans le but adverse sans qu'il leur arrive la même chose. Il n'y a pas de spécialisation dans les robots. Chacun pouvant attaquer ou défendre. Un robot qui trouve la balle va chercher à l'attraper et à la lancer sans rentrer en contact avec un autre robot. Un robot qui ne trouve pas la balle va se replier sur un rôle de défenseur. Les robots ne peuvent, bien entendu, pas quitter le terrain.
  
 
Pour repérer la balle et les buts des signaux modulés dans l'infra-rouge vont être utilisés. La balle et les buts ne moduleront pas suivant la même fréquence. Les robots vont devoir se repérer dans le terrain en utilisant un détecteur de couleur et des lignes au sol. Ils peuvent aussi se répérer via un pavage non couvrant du terrain par des cartes RFID.
 
Pour repérer la balle et les buts des signaux modulés dans l'infra-rouge vont être utilisés. La balle et les buts ne moduleront pas suivant la même fréquence. Les robots vont devoir se repérer dans le terrain en utilisant un détecteur de couleur et des lignes au sol. Ils peuvent aussi se répérer via un pavage non couvrant du terrain par des cartes RFID.
  
Dans dispositif les buts sont des objets intelligents capable d'interagir avec la balle et les robots.
+
Dans ce dispositif, les buts sont des objets intelligents capable d'interagir avec la balle et les robots.
  
 
Pour 2013/2014, il est juste prévu d'explorer le thème, réaliser des compétitions entre robots autonomes paraissant encore hors d'atteinte. Pour pouvoir tout de même présenter des compétitions entre robots, des équipes réaliseront des robots télécommandés par WiFi. Des compétitions pourront donc avoir lieu mais entre humains, par l'intermédiaire des robots.
 
Pour 2013/2014, il est juste prévu d'explorer le thème, réaliser des compétitions entre robots autonomes paraissant encore hors d'atteinte. Pour pouvoir tout de même présenter des compétitions entre robots, des équipes réaliseront des robots télécommandés par WiFi. Des compétitions pourront donc avoir lieu mais entre humains, par l'intermédiaire des robots.
  
 
= Matériel à votre disposition =
 
= Matériel à votre disposition =
 
+
{| style="float: right; height: 160px; margin-left:0.2em; border: 1px solid #bbb;"
[[Image:boite_mindstorm.jpg|150px|right]]
+
| style="border: 1px solid #bbb;" valign="top" |[[File:boite_mindstorm.jpg|150px]]
[[Image:foxboard.jpg|150px|left]]
+
|- style="font-size: 87%; text-align: center;"
[[Image:arduino.jpg|150px|left]]
+
| valign="center" | Legos Mindstorm
 +
|}
 +
{| style="float: left; height: 160px; margin-left:0.2em; border: 1px solid #bbb;"
 +
| style="border: 1px solid #bbb;" valign="top" |[[File:foxboard.jpg|150px]]
 +
| style="border: 1px solid #bbb;" valign="top" |[[File:arduino.jpg|150px]]
 +
|- style="font-size: 87%; text-align: center;"
 +
| valign="center" | Système FoxBoard
 +
| valign="center" | Platine Arduino
 +
|}
 
Les couches basses des robots et des buts seront réalisées à l'aide de Lego MindStorm. Le Lego va permettre de réaliser le chassis des robots avec sa motorisation et d'y installer divers capteurs. Le lego permettra aussi de réaliser les cages des buts avec les émetteurs infra-rouges, le dispositif de test de présence de la balle et le dispositif d'éjection. Il est même possible d'assurer une certaine communication entre robots et buts grâce à la technologie <tt>bluetooth</tt> intégrée au micro-contrôleur MindStorm. Pour aller plus loin, il est nécessaire d'embarquer un micro-PC de type FoxBoard sur les robots. C'est ce micro-PC qui permettra les acquisitions d'images et c'est à lui qui transmettera au micro-contrôleur du MindStorm les ordres de déplacement ou de lancement de balle. Pour réaliser le signal de repérage des buts, une platine Arduino sera utilisée.
 
Les couches basses des robots et des buts seront réalisées à l'aide de Lego MindStorm. Le Lego va permettre de réaliser le chassis des robots avec sa motorisation et d'y installer divers capteurs. Le lego permettra aussi de réaliser les cages des buts avec les émetteurs infra-rouges, le dispositif de test de présence de la balle et le dispositif d'éjection. Il est même possible d'assurer une certaine communication entre robots et buts grâce à la technologie <tt>bluetooth</tt> intégrée au micro-contrôleur MindStorm. Pour aller plus loin, il est nécessaire d'embarquer un micro-PC de type FoxBoard sur les robots. C'est ce micro-PC qui permettra les acquisitions d'images et c'est à lui qui transmettera au micro-contrôleur du MindStorm les ordres de déplacement ou de lancement de balle. Pour réaliser le signal de repérage des buts, une platine Arduino sera utilisée.
  
Ligne 22 : Ligne 30 :
 
= Répartition des tâches =
 
= Répartition des tâches =
  
Chaque binôme va se voir affecter une des problématiques décrites dans les sous-sections suivantes. Par la suite les résultats devront être incorporés dans chaque robot pour obtenir un robot tel que décrit plus haut. Notez que tous les robots doivent savoir s'arrêter quand un obstacle se présente devant eux (utilisation du sonar MindStorm).
+
Chaque binôme va se voir affecter une des problématiques décrites dans les sous-sections suivantes.
  
== Robot suiveur de ligne ==
+
== Cage de but ==
Vous devez créer un robot capable de suivre une courbe discontinue au sol. Le robot doit être capable de réaliser les actions ci-dessous.
+
Une cage de but doit comporter les dispositifs décrits ci-dessous.
* en cas de perte du marquage, tourner dans un sens puis dans l'autre pour tenter de le retrouver avec des angles de plus en plus grands ;
+
* La cage doit émettre un signal infra-rouge pour être facilement repérable par les robots. Pour cela vous partirez de LED infra-rouges et vous modulerez leur alimentation par une platine Arduino pour émettre un signal facilement identifiable. Ajouter quelques LED dans le visible pour mimer la fréquence dans l'infra-rouge ne peut pas nuire.
* si le marquage ne peut pas être retrouvé, se remettre dans la position de la perte initiale et partir tout droit ;
+
* La cage doit détecter quand la balle rentre dans la cage en la dirigeant précisément vers un capteur de contact.
* se remettre dans l'axe du marquage lorsque ce marquage est retrouvé ;
+
* La cage doit signaler un but à l'ensemble des robots en compétition et à l'autre cage. Elle tient aussi le compte du score.
* s'arrêter quand un obstacle se présente devant lui et repartir si l'obstacle disparait ;
+
* Enfin la cage doit pouvoir expulser la balle quand les robots se sont repositionnés sur le terrain pour une nouvelle action.
* changer de parcours sur commande, c'est à dire emprunter un parcours d'une couleur différente dès qu'il est rencontré ;
 
* inverser son sens de parcours.
 
 
 
Voici des exemples de parcours discontinus pouvant être suivis dans les deux sens.
 
<gallery>
 
File:Parcours-carre.png|Parcours carré
 
File:Parcours-cercle.png‎|Parcours avec arcs
 
</gallery>
 
  
 
<table border="1">
 
<table border="1">
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
<tr>
 
<tr>
   <td> Floriane Chevalier </td>
+
   <td> Raphaël De Clercq - Nicolas Duflos </td>
   <td> <span style="color:green">Boite lego MindStorm</span>, <span style="color:green">Scotch de couleur</span> </td>
+
   <td> <span style="color:green">Boite lego MindStorm</span>, <span style="color:green">LED Infra-rouge</span>, <span style="color:green">Arduino UNO</span> </td>
   <td> [[SuiveurLigne2012-1|Robot suiveur de ligne 1]] </td>
+
   <td> [[CageBut2013-1|Cage de but 1]] </td>
 +
</tr>
 +
<tr>
 +
  <td> Basile Lacombe-Bar - Matthieu Herwegh </td>
 +
  <td> <span style="color:green">Boite lego MindStorm</span>, <span style="color:green">LED Infra-rouge</span>, <span style="color:green">Arduino UNO</span> </td>
 +
  <td> [[CageBut2013-2|Cage de but 2]] </td>
 
</tr>
 
</tr>
 
</table>
 
</table>
  
== Robots synchronisés ==
+
== Robots d'attaque ==
Cette étude sera menée par deux binômes. Vos deux robots doivent être capables de se synchroniser. Il vous est demandé de réaliser le comportement suivant :
+
Pour simplifier la conception des robots compétiteurs, les comportements d'attaque et de défense sont séparés. Pour cet atelier, il est demandé de se pencher sur le comportement d'attaque.
  
* séparés, les robots avancent tout droit et s'arrêtent dès qu'ils détectent un obstacle avec leur sonar ;
+
Il s'agit du comportement d'un robot lorsqu'il a su repérer la balle.
* les deux robots doivent pouvoir être couplés côte à côte ;
+
* Il se dirige vers la balle pour la capturer. Une fois la balle capturée le robot ne se déplace plus en translation.
* dans le mode couplé, les robots avancent quand aucun obstacle n'est détecté par leurs sonars ;
+
* Il lance la balle vers le but adverse. Une rotation peut être nécessaire pour l'envoi.
* dans le mode couplé, si un robot détecte un obstacle et l'autre non le couple tourne dans la direction où aucun obstacle n'est détecté.
 
  
La communication entre les deux robots se fait par <tt>bluetooth</tt>.
+
D'un point de vue mécanique certains dispositifs doivent être étudiés.
 +
* Un dispositif de capture de la balle, un simple récupérateur non articulé devrait suffire.
 +
* Un dispositif de lancement. Vous pouvez étudier le lancement en utilisant un servo-moteur ou un dispositif de rotation du robot.
 +
 
 +
Les capteurs nécessaires à un robot d'attaque sont décrits ci-dessous.
 +
* Le capteur infra-rouge pour se diriger vers la balle et estimer la position du but.
 +
* Le capteur ultra-son pour éviter de percuter les objets (buts et autres robots).
 +
* Un capteur de couleur pour éviter de sortir du terrain.
  
 
<table border="1">
 
<table border="1">
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
<tr>
 
<tr>
   <td> Corentin Duplouy & Safouane Driouich </td>
+
   <td> Etienne Radenne - Dolovan Tomasek </td>
   <td> <span style="color:green">Boite lego MindStorm</span> </td>
+
   <td> <span style="color:green">Boite lego MindStorm</span>, <span style="color:green">Capteur infra-rouge</span> </td>
   <td> [[Synchronize2012-1|WALL_E (master : "leave me alone")]] </td>
+
   <td> [[RobotAttaque2013-1|Robot d'attaque 1]] </td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
   <td> Bastien Couenne</td>
+
   <td> Kévin Debaets - Simon Delaine </td>
   <td> <span style="color:green">Boite lego MindStorm</span> </td>
+
   <td> <span style="color:green">Boite lego MindStorm</span>, <span style="color:green">Capteur infra-rouge</span> </td>
   <td> [[Synchronize2012-2|EVE (slave : "give me freedom")]] </td>
+
   <td> [[RobotAttaque2013-2|Robot d'attaque 2]] </td>
 +
</tr>
 +
<tr>
 +
<td> Rémy Coste - Thibault François </td>
 +
  <td> <span style="color:green">Boite lego MindStorm</span>, <span style="color:green">Capteur infra-rouge</span> </td>
 +
  <td> [[RobotAttaque2013-3|Robot d'attaque 3]] </td>
 
</tr>
 
</tr>
 
</table>
 
</table>
  
== Robot suiveur RFID ==
+
== Robot de défense ==
Vous doterez votre robot d'un lecteur RFID et d'un équipement de type boussole. Votre robot doit être capable de réaliser les opérations ci-après :
+
Le second comportement nécessaire à nos robots compétiteurs est le comportement de défense. C'est le comportement qu'adopte un robot lorsqu'il ne trouve plus la balle dans le doute qu'un autre robot l'ait capturée. Dans ce cas de figure le robot doit se rapprocher de toutes ses roues de son but pour le défendre.
  
* trouver sous une marque de couleur précise (feuille A4, disque, ...) une carte RFID ;
+
Toute la difficulté de cette tâche consiste à se repérer sur le terrain. Pour cela le robot dispose de plusieurs moyens.
* partir dans une direction donnée ; le robot s'oriente avec la boussole puis se lance avec ses deux moteurs sans tenter de corriger la trajectoire ;
+
* Il peut repérer par infra-rouge son but.
* mémoriser des caps en fonction des identifiants des cartes RFID.
+
* Chacune des zones du terrain peut être délimitée par une couleur spécifique à la zone. Le robot peut ainsi se situer dès qu'il tombe sur une ligne.
 
+
* Le terrain peut être pavé de cartes RFID. Il suffit d'associer aux identifiants des cartes leur position pour permettre un repérage très précis.
Par la suite vous intégrez ces trois fonctionnalités pour obtenir un robot capable de suivre une trajectoire matérialisée par des marques sous lesquelles une carte RFID est dissimulée.
 
Quand le robot détecte une marque via son capteur de couleur, il se met à chercher l'emplacement exact de la carte RFID. Une fois la carte localisée, le robot trouve le prochain cap à suivre en fonction de l'identifiant de la carte RFID. Le robot s'oriente sur ce cap avec sa boussole puis se lance vers la marque suivante. Et ainsi de suite.
 
 
 
Voici un exemple de parcours en suivant des marques RFID.
 
<gallery>
 
File:Parcours-marques.png|Parcours RFID
 
</gallery>
 
 
 
<table border="1">
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
<tr>
 
  <td> Alexandre Jouy & Kévin De Arriba </td>
 
  <td> <span style="color: green;">Boite lego MindStorm</span>, <span style="color: green;">Module RFID</span>, <span style="color: green;">Cartes RFID</span>, <span style="color: green;">module boussole</span>, <span style="color: red;">Marques de couleur</span> </td>
 
  <td> [[SuiveurRFID2012-1|Robot suiveur RFID 1]] </td>
 
</tr>
 
</table>
 
  
== Robot naviguant aux instruments ==
+
Votre but est d'essayer les différentes méthodes pour pouvoir les tester et les comparer. Il faudra peut être les mixer pour obtenir une méthode efficace dans toutes les situations.
Vous doterez votre robot d'une boussole ou d'un gyroscope pour lui permettre de connaitre précisement sa direction. Vous devez réaliser les actions décrites dans la suite.
 
  
* Vous commencerez par faire en sorte que votre robot sache avancer en ligne droite, pour cela vous utiliserez le contrôle PID décrit sur la page [http://wikipedia.org/wiki/PID_controller WikiPedia]. Pour simplifier ce qui est dit sur cette page, sachez le principe appliqué à votre robot va être d'effectuer des corrections sur la trajectoire en utilisant des rotations. L'angle de ces rotations va être calculé en fonction de l'erreur de trajectoire indiqué par l'instrument. Plus exactement par la somme d'une constante multipliée par l'erreur instantanée, d'une autre constante multipliée par l'intégrale de l'erreur et enfin d'une dernière constante multipliée par la dérivée de l'erreur. A vous de trouver les valeurs adaptées des trois constantes.
+
Votre robot doit bien entendu ne jamais sortir du terrain (une partie du robot doit toujours être sur le terrain) et il ne doit pas rentrer dans les obstacles. Vous établirez aussi une règle pour que les robots ne puissent pas totalement obstruer le but.
  
* Par la suite faites en sorte que votre robot sache contourner les obstacles au plus juste. Au plus juste signifiant qu'il tournera vers la droite ou vers la gauche en jugeant où se trouve le chemin le plus libre. L'algorithme à appliquer consiste à tourner le robot d'un angle faible dans un sens puis dans l'autre et de lire les resultats du sonar. Si les deux mesures indiquent un obstacle trop proche, l'angle est augmenté et le procédé répété. Dès qu'une trajectoire indique un chemin libre ou du moins un obstacle à distance suffisante, le robot avance en ligne droite suivant cette trajectoire. L'instrument doit être utilisé ici pour vérifier que le robot effectue précisement des rotations des angles souhaités et qu'il sache revenir en position initiale pour éventuellement recommencer avec un angle plus grand.
+
Les capteurs nécessaires à un robot d'attaque sont décrits ci-dessous.
 +
* Le capteur infra-rouge pour se diriger vers son but.
 +
* Le capteur ultra-son pour éviter de percuter les objets (buts et autres robots).
 +
* Un capteur de couleur pour reconnaître la zone et éviter de sortir du terrain.
 +
* Un capteur RFID pour lire les cartes RFID de pavage du terrain.
  
* Pour permettre de suivre le comportement du robot, faites afficher sur la brique de contrôle MindStorm l'angle de rotation pour le dernier contournement et la distance parcourue le long de la dernière ligne droite.
 
  
Intégrez les comportements pour obtenir un robot capable de contourner les obstacles avec un minimum d'intelligence.
 
  
Voici un exemple de contournement d'obstacle avec l'algorithme décrit.
 
<gallery>
 
File:Parcours-boussole.png|Contournement d'obstacle
 
</gallery>
 
  
 
<table border="1">
 
<table border="1">
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
<tr>
 
<tr>
   <td> Jérôme Bailet & Timothée Teneur </td>
+
   <td> Jeremy Couvrat - Hugo Vandenbunder </td>
   <td> <span style="color: green;">Boite lego MindStorm</span>, <span style="color: green;">Module boussole</span>, <span style="color: green;">Module gyroscope</span> </td>
+
   <td> <span style="color:green">Boite lego MindStorm</span>, <span style="color:green">Capteur infra-rouge</span>, <span style="color: green;">Module RFID</span>, <span style="color: green;">Cartes RFID</span> </td>
   <td> [[Instrument2012-1|Robot aux instruments 1]] </td>
+
   <td> [[RobotDefense2013-1|Robot de défense 1]] </td>
 
</tr>
 
</tr>
</table>
 
 
== Robot solaire ==
 
Le but est de concevoir un robot capable de trouver le meilleur point de rechargement solaire dans une pièce et de se mettre en mode de rechargement
 
tout en étant capable de se réveiller après une période de charge. Vous devez réaliser les actions décrites dans la suite.
 
 
* Votre robot doit déjà être capable de se déplacer dans une pièce en évitant les obstacles et de mesurer l'ensoleillement en différents points. L'algorithme de recherche du point idéal pourrait être de se déplacer à volonté (on suppose la pièce fermée) en calculant l'ensoleillement maximal. Au bout d'un temps défini, le robot compare l'ensoleillement local au maximum trouvé dans son premier parcours et s'arrête dès qu'il tombe sur un ensoleillement égal à une fraction du maximum (80% par exemple).
 
 
* Concevez une alimentation ad hoc. Par exemple une batterie rechargeable pour MindStorm connectée, via des relais ou transistors, d'une part au bloc contrôleur du MindStorm et d'autre part au panneau solaire. Un régulateur entre les panneaux et la batterie sera nécessaire. Réalisez aussi un dispositif électronique indépendant (superviseur) capable de coller le relai d'alimentation du MindStorm dès que la charge de la batterie est raisonnable. Vous pourrez vous appuyer sur des composants intégrés de recharge de batterie (de type DS2715) et sur une supervision impliquant un microcontroleur Atmel AVR (au départ un arduino, puis transfert sur un microcontroleur seul). Commencez par lister le matériel nécessaire pour passer la commande.
 
 
* Il ne vous reste plus qu'à écrire le comportement du robot quand il trouve son coin au soleil. A savoir, coller le relai de charge de sa batterie tout en se suicidant en decollant son relai d'alimentation. Il lui faut aussi décoller le relai de chargement quand il se réveille.
 
 
<table border="1">
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
 
<tr>
 
<tr>
   <td> Emilien Geiger </td>
+
   <td> Yassir Osman - Yassine Laanaia </td>
   <td> <span style="color: green;">Boite lego MindStorm</span>, <span style="color: green;">Batterie rechargeable pour MindStorm</span>, <span style="color: green;">Panneaux solaires</span>, <span style="color: green;">Modules relais</span>, <span style="color: red;">Dispositif électronique de réveil</span> </td>
+
   <td> <span style="color:green">Boite lego MindStorm</span>, <span style="color:green">Capteur infra-rouge</span>, <span style="color: green;">Module RFID</span>, <span style="color: green;">Cartes RFID</span> </td>
   <td> [[Solaire2012-1|Robot solaire 1]] </td>
+
   <td> [[RobotDefense2013-2|Robot de défense 2]] </td>
 
</tr>
 
</tr>
 
</table>
 
</table>
Ligne 142 : Ligne 125 :
 
== Robot téléguidé avec système embarqué ==
 
== Robot téléguidé avec système embarqué ==
 
Votre robot doit pouvoir être radio-guidé par un contrôleur. Le dit contrôleur peut diriger le robot au vu de l'image de la webcam embarquée. L'acquisition de la webcam et sa diffusion par WiFi est assuré par un système embarqué FoxBoard. La FoxBoard vous sera livrée configurée mais il faudra l'embarquer dans votre robot avec tous ses accessoires (webcam, module <tt>bluetooth</tt>, boitier de piles). Un calcul du temps d'autonomie doit être effectué. Dans un premier temps le radio-guidage peut se faire à l'aide du logiciel MindStorm par <tt>bluetooth</tt>. Dans un second temps il faut étudier la possibilité d'un radio-guidage par WiFi, les ordres étant transmis par un navigateur Web au serveur Web de la FoxBoard puis transmis au micro-contrôleur MindStorm par <tt>bluetooth</tt>. Vous aurez le choix de programmer votre robot avec le logiciel MindStorm ou avec un langage de bas niveau proche du langage C (voir la page web [http://www.eggwall.com/2011/08/lego-nxt-mindstorm-with-linux.html]).
 
Votre robot doit pouvoir être radio-guidé par un contrôleur. Le dit contrôleur peut diriger le robot au vu de l'image de la webcam embarquée. L'acquisition de la webcam et sa diffusion par WiFi est assuré par un système embarqué FoxBoard. La FoxBoard vous sera livrée configurée mais il faudra l'embarquer dans votre robot avec tous ses accessoires (webcam, module <tt>bluetooth</tt>, boitier de piles). Un calcul du temps d'autonomie doit être effectué. Dans un premier temps le radio-guidage peut se faire à l'aide du logiciel MindStorm par <tt>bluetooth</tt>. Dans un second temps il faut étudier la possibilité d'un radio-guidage par WiFi, les ordres étant transmis par un navigateur Web au serveur Web de la FoxBoard puis transmis au micro-contrôleur MindStorm par <tt>bluetooth</tt>. Vous aurez le choix de programmer votre robot avec le logiciel MindStorm ou avec un langage de bas niveau proche du langage C (voir la page web [http://www.eggwall.com/2011/08/lego-nxt-mindstorm-with-linux.html]).
 +
 +
Pour pouvoir utiliser votre robot dans une compétition de balle, il devra comporter un dispositif de lancer de balle commandable lui aussi à distance. Pour cela vous devrez modifier légérement le logiciel installé sur la FoxBoard.
 +
 +
 +
Pour configurer la FoxBoard avec tout le matériel nécessaire, suivez les [[FoxBoard pour MindStorm 2012|instructions]]. Pour une description du système à obtenir suivez la [[FoxBoard MindStorm système 2013|flèche]].
  
 
<table border="1">
 
<table border="1">
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
<tr>
 
<tr>
   <td> Jean-Christophe Fabrici & Nicolas Gunst </td>
+
   <td> Thomas Roj - Romuald Lentieul</td>
   <td> <span style="color: green;">Boite lego MindStorm</span>, <span style="color: green;">Téléphone Android</span>, <span style="color: green;">FoxBoard avec webcam, interface WiFi, convertisseur <tt>bluetooth</tt></span>, <span style="color: green;">Boitier piles</span> </td>
+
   <td> <span style="color: green;">Boite lego MindStorm</span>, <span style="color: green;">Téléphone Android</span>, <span style="color: green;">FoxBoard avec webcam, interface WiFi, convertisseur <tt>bluetooth</tt></span>, <span style="color: green;">Boitier piles</span> </td>
   <td> [[Teleguide2012-1|Robot téléguidé 1]] </td>
+
   <td> [[Teleguide2013-1|Robot téléguidé 1]] </td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
   <td> Romain Libaert </td>
+
   <td> Audrey Affoyon - Nicolas Blondel </td>
   <td> <span style="color: green;">Boite lego MindStorm</span>, <span style="color: green;">Téléphone Android</span>, <span style="color: green;">FoxBoard avec webcam, interface WiFi, convertisseur <tt>bluetooth</tt></span>, <span style="color: green;">Boitier piles</span> </td>
+
   <td> <span style="color: green;">Boite lego MindStorm</span>, <span style="color: green;">Téléphone Android</span>, <span style="color: green;">FoxBoard avec webcam, interface WiFi, convertisseur <tt>bluetooth</tt></span>, <span style="color: green;">Boitier piles</span> </td>
   <td> [[Teleguide2012-2|Robot téléguidé 2]] </td>
+
   <td> [[Teleguide2013-2|Robot téléguidé 2]] </td>
 
</tr>
 
</tr>
</table>
 
 
== Robot récupérateur d'objet ==
 
 
L'objectif est de créer un robot capable de récupérer un objet situé sur une base RFID et de le transporter vers une autre base, elle aussi signalée par une RFID.
 
 
Le robot doit être capable de réaliser les actions suivantes :
 
 
* Suivre une ligne et détecter les RFID sur son chemin.
 
* Lire les RFID pour savoir ce que le robot doit faire : Soulever un objet ou le déposer.
 
* Communiquer par Bluetooth entre deux boites NXT (utilisation de 4 servo moteurs).
 
 
Le robot est donc constitué de deux éléments essentiel une base motrice et une pince.
 
Nous avons en premier lieu créer la base motrice avec deux servomoteurs avec un socle permettant de placer deux boites NXT. Puis, nous avons utiliser deux autre servomoteurs pour construire une pince, l'un d'eux sert de poulie et l'autre permet de faire pression sur l'objet a soulever.
 
De plus, on utilise deux capteurs : un capteur de couleur pour que le robot suive une ligne, et un capteur RFID qui détecte les bases sur lesquelles une action doit avoir lieu.
 
 
<table border="1">
 
<tr> <th>Elèves</th> <th>Matériel</th> <th>Page</th> </tr>
 
 
<tr>
 
<tr>
   <td> Déborah Saunders & Jean Wasilewski </td>
+
   <td> Simon Joncquez - Jordan Razafindraibe </td>
   <td> <span style="color: green;">Boite lego MindStorm</span>, <span style="color: green;">Module RFID</span>, <span style="color: green;">Cartes RFID</span>, <span style="color: green;">Scotch de couleur</span> </td>
+
   <td> <span style="color: green;">Boite lego MindStorm</span>, <span style="color: green;">Téléphone Android</span>, <span style="color: green;">FoxBoard avec webcam, interface WiFi, convertisseur <tt>bluetooth</tt></span>, <span style="color: green;">Boitier piles</span> </td>
   <td> [[Robot transporteur]] </td>
+
   <td> [[Teleguide2013-3|Robot téléguidé 3]] </td>
 
</tr>
 
</tr>
 
</table>
 
</table>
  
 
= Intégration des fonctionnalités =
 
= Intégration des fonctionnalités =
Une fois toutes les études terminées et les solutions implantées (sous forme de briques personnalisées par exemple), vous doterez votre robot des fonctionnalités nécessaires à la réalisation de la démonstration finale. Votre robot doit être capable de suivre des marquages discontinus au sol, être capable de communiquer avec les autres robots, être capable de se repérer dans l'espace en repérant des cartes RFID et enfin doit embarquer une FoxBoard avec une connexion WiFi et une webcam.
 
 
Les robots peuvent se trouver soit dans un mode autonome soit dans un mode téléguidé. Dans le mode téléguidé, le robot est contrôlé à l'aide d'un téléphone ou d'une tablette Android connecté sur le serveur web de la FoxBoard. Il doit être possible de le faire avancer, reculer ou tourner. Il doit être possible aussi d'obtenir une image de la webcam.
 
 
Le comportement en mode autonome est plus complexe :
 
* le robot tente de suivre un marquage de couleur au sol, ce marquage peut être discontinu, éventuellement la boussole peut être utilisée pour passer en ligne droite d'un marquage à l'autre et pour suivre les marquages ;
 
* les robots communiquent à leur FoxBoard le dernier tag RFID détecté, la valeur relevée par leur boussole (optionnel) et la voie de garage empruntée (optionnel) ;
 
* ces informations sont diffusées entre les FoxBoard, elles sont, en particulier, utilisées pour indiquer la position des robots sur une carte ;
 
* certains robots peuvent utiliser les voies de garage au départ de certains tags RFID, l'utilisateur déclenche l'action via le site web de la FoxBoard, l'action n'est exécutée qu'après la vérification de la disponibilité de la voie.
 
 
<table border="1">
 
<tr> <th>Matériel</th>
 
    <td>Boite lego MindStorm</td>
 
    <td>Module RFID</td>
 
    <td>Module boussole</td>
 
    <td>Module gyroscope</td>
 
    <td>Téléphone Android</td>
 
    <td>FoxBoard</td>
 
    <td>WebCam</td>
 
    <td>Adaptateur USB/WiFi</td>
 
    <td>Adaptateur BlueTooth</td>
 
    <td>Hub USB</td>
 
    <td>Boitier piles</td>
 
    <td>Piles rechargeables</td>
 
</tr>
 
<tr> <th>Nombre</th>
 
    <td><span style="color: green;">8/8</span></td>
 
    <td><span style="color: green;">8/8</span></td>
 
    <td><span style="color: green;">8/8</span></td>
 
    <td><span style="color: orange;">1/8</span></td>
 
    <td><span style="color: green;">8/8</span></td>
 
    <td><span style="color: green;">8/8</span></td>
 
    <td><span style="color: green;">8/8</span></td>
 
    <td><span style="color: green;">8/8</span></td>
 
    <td><span style="color: green;">8/8</span></td>
 
    <td><span style="color: green;">8/8</span></td>
 
    <td><span style="color: green;">8/8</span></td>
 
    <td><span style="color: green;">100/100</span></td>
 
</tr>
 
</table>
 
 
Pour configurer la FoxBoard avec tout le matériel nécessaire, suivez les [[FoxBoard pour MindStorm 2012|instructions]].
 
 
Pour une description du système à obtenir suivez la [[FoxBoard MindStorm système 2012|flèche]].
 
  
= Démonstration finale =
+
Pour l'année 2013/2014, il ne vous est demandé que de montrer le bon fonctionnement du dispositif ci-avant dont vous aurez choisi de vous occuper.
Pour la démonstration finale vous tracerez une grande piste comprenant au moins deux voies de garage (voir schéma ci-dessous). Des cartes RFID doivent être disposées en des points précis de chaque parcours. Vous placerez vos robots sur la piste, tous orientés dans le même sens. Il faut vérifier que le suivi du marquage au sol est correct, que les robots savent tenir leurs distances et que les robots savent annoncer leur position grâce aux tags RFID. Faire un test d'utilisation des voies de garage pour les robots possédant cette fonctionnalité.  
 
  
Voici un exemple de parcours discontinu.
+
Cela dit dans l'idéal, une démonstration complète pourrait être présentée avec le travail supplémentaire décrit dans la suite.
<gallery>
+
* Les équipes des robots d'attaque et de défense fussionnent leurs robots pour en faire des compétiteurs complets.
File:Parcours-discontinu.png|Parcours discontinu
+
* Les équipes ayant travaillé sur les cages réalisent un terrain et implantent dans les robots la réception des buts marqués.
</gallery>
+
* Les équipes des robots télécommandés organisent une compétition sur un terrain avec deux buts avec remontée automatique du score sur le dispositif de télécommande.
  
 
= Notation =
 
= Notation =
  
 
{| class="wikitable"
 
{| class="wikitable"
! Noms !! Partie I !! Partie II !! Rapport Wiki !! Soutenance vidéo !! Total
+
! Noms !! Rapport Wiki !! Soutenance vidéo !! Total
 
|-
 
|-
 
|  
 
|  

Version actuelle datée du 2 janvier 2015 à 16:55

Objectif à atteindre

Ce bureau d'étude a comme finalité la construction de robots joueurs de balle. Ces robots doivent s'affronter sur un terrain découpé en quatre zones avec des buts aux extrémités opposées.

Terrain.png

Les robots vont devoir s'affronter par paires. Le but d'une paire de robots est d'arriver à envoyer l'unique balle dans le but adverse sans qu'il leur arrive la même chose. Il n'y a pas de spécialisation dans les robots. Chacun pouvant attaquer ou défendre. Un robot qui trouve la balle va chercher à l'attraper et à la lancer sans rentrer en contact avec un autre robot. Un robot qui ne trouve pas la balle va se replier sur un rôle de défenseur. Les robots ne peuvent, bien entendu, pas quitter le terrain.

Pour repérer la balle et les buts des signaux modulés dans l'infra-rouge vont être utilisés. La balle et les buts ne moduleront pas suivant la même fréquence. Les robots vont devoir se repérer dans le terrain en utilisant un détecteur de couleur et des lignes au sol. Ils peuvent aussi se répérer via un pavage non couvrant du terrain par des cartes RFID.

Dans ce dispositif, les buts sont des objets intelligents capable d'interagir avec la balle et les robots.

Pour 2013/2014, il est juste prévu d'explorer le thème, réaliser des compétitions entre robots autonomes paraissant encore hors d'atteinte. Pour pouvoir tout de même présenter des compétitions entre robots, des équipes réaliseront des robots télécommandés par WiFi. Des compétitions pourront donc avoir lieu mais entre humains, par l'intermédiaire des robots.

Matériel à votre disposition

Boite mindstorm.jpg
Legos Mindstorm
Foxboard.jpg Arduino.jpg
Système FoxBoard Platine Arduino

Les couches basses des robots et des buts seront réalisées à l'aide de Lego MindStorm. Le Lego va permettre de réaliser le chassis des robots avec sa motorisation et d'y installer divers capteurs. Le lego permettra aussi de réaliser les cages des buts avec les émetteurs infra-rouges, le dispositif de test de présence de la balle et le dispositif d'éjection. Il est même possible d'assurer une certaine communication entre robots et buts grâce à la technologie bluetooth intégrée au micro-contrôleur MindStorm. Pour aller plus loin, il est nécessaire d'embarquer un micro-PC de type FoxBoard sur les robots. C'est ce micro-PC qui permettra les acquisitions d'images et c'est à lui qui transmettera au micro-contrôleur du MindStorm les ordres de déplacement ou de lancement de balle. Pour réaliser le signal de repérage des buts, une platine Arduino sera utilisée.


Répartition des tâches

Chaque binôme va se voir affecter une des problématiques décrites dans les sous-sections suivantes.

Cage de but

Une cage de but doit comporter les dispositifs décrits ci-dessous.

  • La cage doit émettre un signal infra-rouge pour être facilement repérable par les robots. Pour cela vous partirez de LED infra-rouges et vous modulerez leur alimentation par une platine Arduino pour émettre un signal facilement identifiable. Ajouter quelques LED dans le visible pour mimer la fréquence dans l'infra-rouge ne peut pas nuire.
  • La cage doit détecter quand la balle rentre dans la cage en la dirigeant précisément vers un capteur de contact.
  • La cage doit signaler un but à l'ensemble des robots en compétition et à l'autre cage. Elle tient aussi le compte du score.
  • Enfin la cage doit pouvoir expulser la balle quand les robots se sont repositionnés sur le terrain pour une nouvelle action.
Elèves Matériel Page
Raphaël De Clercq - Nicolas Duflos Boite lego MindStorm, LED Infra-rouge, Arduino UNO Cage de but 1
Basile Lacombe-Bar - Matthieu Herwegh Boite lego MindStorm, LED Infra-rouge, Arduino UNO Cage de but 2

Robots d'attaque

Pour simplifier la conception des robots compétiteurs, les comportements d'attaque et de défense sont séparés. Pour cet atelier, il est demandé de se pencher sur le comportement d'attaque.

Il s'agit du comportement d'un robot lorsqu'il a su repérer la balle.

  • Il se dirige vers la balle pour la capturer. Une fois la balle capturée le robot ne se déplace plus en translation.
  • Il lance la balle vers le but adverse. Une rotation peut être nécessaire pour l'envoi.

D'un point de vue mécanique certains dispositifs doivent être étudiés.

  • Un dispositif de capture de la balle, un simple récupérateur non articulé devrait suffire.
  • Un dispositif de lancement. Vous pouvez étudier le lancement en utilisant un servo-moteur ou un dispositif de rotation du robot.

Les capteurs nécessaires à un robot d'attaque sont décrits ci-dessous.

  • Le capteur infra-rouge pour se diriger vers la balle et estimer la position du but.
  • Le capteur ultra-son pour éviter de percuter les objets (buts et autres robots).
  • Un capteur de couleur pour éviter de sortir du terrain.
Elèves Matériel Page
Etienne Radenne - Dolovan Tomasek Boite lego MindStorm, Capteur infra-rouge Robot d'attaque 1
Kévin Debaets - Simon Delaine  Boite lego MindStorm, Capteur infra-rouge Robot d'attaque 2
Rémy Coste - Thibault François Boite lego MindStorm, Capteur infra-rouge Robot d'attaque 3

Robot de défense

Le second comportement nécessaire à nos robots compétiteurs est le comportement de défense. C'est le comportement qu'adopte un robot lorsqu'il ne trouve plus la balle dans le doute qu'un autre robot l'ait capturée. Dans ce cas de figure le robot doit se rapprocher de toutes ses roues de son but pour le défendre.

Toute la difficulté de cette tâche consiste à se repérer sur le terrain. Pour cela le robot dispose de plusieurs moyens.

  • Il peut repérer par infra-rouge son but.
  • Chacune des zones du terrain peut être délimitée par une couleur spécifique à la zone. Le robot peut ainsi se situer dès qu'il tombe sur une ligne.
  • Le terrain peut être pavé de cartes RFID. Il suffit d'associer aux identifiants des cartes leur position pour permettre un repérage très précis.

Votre but est d'essayer les différentes méthodes pour pouvoir les tester et les comparer. Il faudra peut être les mixer pour obtenir une méthode efficace dans toutes les situations.

Votre robot doit bien entendu ne jamais sortir du terrain (une partie du robot doit toujours être sur le terrain) et il ne doit pas rentrer dans les obstacles. Vous établirez aussi une règle pour que les robots ne puissent pas totalement obstruer le but.

Les capteurs nécessaires à un robot d'attaque sont décrits ci-dessous.

  • Le capteur infra-rouge pour se diriger vers son but.
  • Le capteur ultra-son pour éviter de percuter les objets (buts et autres robots).
  • Un capteur de couleur pour reconnaître la zone et éviter de sortir du terrain.
  •  Un capteur RFID pour lire les cartes RFID de pavage du terrain.



Elèves Matériel Page
Jeremy Couvrat - Hugo Vandenbunder Boite lego MindStorm, Capteur infra-rouge, Module RFID, Cartes RFID Robot de défense 1
Yassir Osman - Yassine Laanaia Boite lego MindStorm, Capteur infra-rouge, Module RFID, Cartes RFID Robot de défense 2

Robot téléguidé avec système embarqué

Votre robot doit pouvoir être radio-guidé par un contrôleur. Le dit contrôleur peut diriger le robot au vu de l'image de la webcam embarquée. L'acquisition de la webcam et sa diffusion par WiFi est assuré par un système embarqué FoxBoard. La FoxBoard vous sera livrée configurée mais il faudra l'embarquer dans votre robot avec tous ses accessoires (webcam, module bluetooth, boitier de piles). Un calcul du temps d'autonomie doit être effectué. Dans un premier temps le radio-guidage peut se faire à l'aide du logiciel MindStorm par bluetooth. Dans un second temps il faut étudier la possibilité d'un radio-guidage par WiFi, les ordres étant transmis par un navigateur Web au serveur Web de la FoxBoard puis transmis au micro-contrôleur MindStorm par bluetooth. Vous aurez le choix de programmer votre robot avec le logiciel MindStorm ou avec un langage de bas niveau proche du langage C (voir la page web [1]).

Pour pouvoir utiliser votre robot dans une compétition de balle, il devra comporter un dispositif de lancer de balle commandable lui aussi à distance. Pour cela vous devrez modifier légérement le logiciel installé sur la FoxBoard.


Pour configurer la FoxBoard avec tout le matériel nécessaire, suivez les instructions. Pour une description du système à obtenir suivez la flèche.

Elèves Matériel Page
Thomas Roj - Romuald Lentieul Boite lego MindStorm, Téléphone Android, FoxBoard avec webcam, interface WiFi, convertisseur bluetooth, Boitier piles Robot téléguidé 1
Audrey Affoyon - Nicolas Blondel Boite lego MindStorm, Téléphone Android, FoxBoard avec webcam, interface WiFi, convertisseur bluetooth, Boitier piles Robot téléguidé 2
Simon Joncquez - Jordan Razafindraibe Boite lego MindStorm, Téléphone Android, FoxBoard avec webcam, interface WiFi, convertisseur bluetooth, Boitier piles Robot téléguidé 3

Intégration des fonctionnalités

Pour l'année 2013/2014, il ne vous est demandé que de montrer le bon fonctionnement du dispositif ci-avant dont vous aurez choisi de vous occuper.

Cela dit dans l'idéal, une démonstration complète pourrait être présentée avec le travail supplémentaire décrit dans la suite.

  • Les équipes des robots d'attaque et de défense fussionnent leurs robots pour en faire des compétiteurs complets.
  • Les équipes ayant travaillé sur les cages réalisent un terrain et implantent dans les robots la réception des buts marqués.
  • Les équipes des robots télécommandés organisent une compétition sur un terrain avec deux buts avec remontée automatique du score sur le dispositif de télécommande.

Notation

Noms Rapport Wiki Soutenance vidéo Total