BUMBLEBEE : Différence entre versions

De Wiki de bureau d'études PeiP
(ADM)
(Remerciements)
 
(34 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 4 : Ligne 4 :
  
 
== Présentation du BE (avec les différentes parties) ==
 
== Présentation du BE (avec les différentes parties) ==
 
+
<p align="justify">
 
Le Bureau d’Etude « Coopération entre Robots Mobiles » (IMA) consiste à terme à faire évoluer différents robots ensembles dans un environnement non défini à l’avance.
 
Le Bureau d’Etude « Coopération entre Robots Mobiles » (IMA) consiste à terme à faire évoluer différents robots ensembles dans un environnement non défini à l’avance.
 
C'est-à-dire :  
 
C'est-à-dire :  
Ligne 19 : Ligne 19 :
 
                 Capteur RFID (nous)
 
                 Capteur RFID (nous)
 
                 Robot contrôlé à distance, via le wifi
 
                 Robot contrôlé à distance, via le wifi
 
+
</p>
  
 
== Our Robot ---> BUMBLEBEE ==
 
== Our Robot ---> BUMBLEBEE ==
 +
<p align="justify">
 
The Best One
 
The Best One
  
 
[[Fichier:Bumblebee.jpg|center|alt=Bumblebee]]
 
[[Fichier:Bumblebee.jpg|center|alt=Bumblebee]]
 
+
</p>
 
== Présentation de notre partie Suiveur RFID ==
 
== Présentation de notre partie Suiveur RFID ==
  
 
+
<p align="justify">
 
[[Fichier:RFID.jpg|thumb|alt=RFID|RFID]]
 
[[Fichier:RFID.jpg|thumb|alt=RFID|RFID]]
  
Ligne 42 : Ligne 43 :
  
 
.
 
.
 
+
</p>
 
== Description de l’algorithme RFID ==
 
== Description de l’algorithme RFID ==
 +
<p align="justify">
 
Schema condensé :  
 
Schema condensé :  
  
Ligne 59 : Ligne 61 :
  
 
Mais tout ceci n’est que pour un transpondeur précis, donc il faut le reproduire autant de fois qu’il y a de transpondeur, en changeant le numéro d’identification dans le programme.
 
Mais tout ceci n’est que pour un transpondeur précis, donc il faut le reproduire autant de fois qu’il y a de transpondeur, en changeant le numéro d’identification dans le programme.
 
+
</p>
  
 
== Suiveur Ligne ==
 
== Suiveur Ligne ==
 
+
<p align="justify">
 
Un capteur de lumière est aussi intégré à Bumblebee !
 
Un capteur de lumière est aussi intégré à Bumblebee !
 
Mais ce n'est pas nous qui avons développé cette capacité, le groupe du robot 3PJ (Pierre-Jean et Simon) !
 
Mais ce n'est pas nous qui avons développé cette capacité, le groupe du robot 3PJ (Pierre-Jean et Simon) !
Ligne 68 : Ligne 70 :
  
 
Comme on peut le voir sur la photo, notre capteur de lumière est excentré ! Ce qui apporte une touche d'originalité puisqu'on est les seul à l'avoir excentré !
 
Comme on peut le voir sur la photo, notre capteur de lumière est excentré ! Ce qui apporte une touche d'originalité puisqu'on est les seul à l'avoir excentré !
 
+
</p>
 
== Sonar ==
 
== Sonar ==
 
+
<p align="justify">
 
[[Fichier:Sonar.jpg|thumb|alt=Sonar|Sonar]]
 
[[Fichier:Sonar.jpg|thumb|alt=Sonar|Sonar]]
 
Bumblebee intègre un sonar qui lui permet, lorsqu'il détecte un obstacle à moins de 20cm, de stopper tous les moteurs ainsi que de  reculer d'une quinzaine de centimètres pour éviter toute collision.
 
Cette application a été intégré dans le programme final, via un simple "if".
 
  
  
  
 +
Bumblebee intègre un sonar qui lui permet, lorsqu'il détecte un obstacle à moins de 20cm, de stopper tous les moteurs ainsi que de  reculer d'une quinzaine de centimètres pour éviter toute collision.
  
 +
Cette application a été intégré dans le programme final, via un simple "if".
  
  
Ligne 89 : Ligne 90 :
  
 
.
 
.
 
+
</p>
 
== ADM ==
 
== ADM ==
 +
<p align="justify">
 
[[Fichier:ADM.jpg|thumb|alt=ADM|ADM]]
 
[[Fichier:ADM.jpg|thumb|alt=ADM|ADM]]
 
Bumblebee est également d'une Arme de Destruction Massive (ADM) !
 
Qui n'est autre qu'un lanceur de billes dernière génération super puissant !
 
 
Ce qui lui permet de détruire par utilité (traverser un mur)ou par plaisir ...
 
 
 
 
 
 
 
  
  
  
  
 +
Bumblebee est également d'une Arme de Destruction Massive (ADM) !
  
 +
Qui n'est autre qu'un lanceur de billes dernière génération super puissant !
  
 +
Ce qui lui permet de détruire par utilité (traverser un mur) ou par plaisir ...
  
  
Ligne 126 : Ligne 120 :
  
 
.
 
.
 
+
</p>
 
== Contrôle à Distance ==
 
== Contrôle à Distance ==
 +
<p align="justify">
 +
Le mode télécommande a demandé plus de travail et des échanges avec les autres groupes pour parvenir à un résultat satisfaisant. Tout d'abord, il a fallu installer le système d'exploitation de la Foxboard (qui est relié à Bumblebee par un ingénieux système voir "Boule de Remorque"), y enregistrer l'adresse MAC de la brique NXT afin de faire fonctionner le Bluetooth et y placer les pages Web qui servent d'interface afin de piloter le robot. Ce site intègre également un "demon capture" ce qui permet de voir l'environnement dans lequel évolue Bumblebee via une Webcam embarquée (voir "SiteFOX" et "Webcam") Ensuite il a fallu créer le programme permettant au robot de savoir ce qu'il devait faire en recevant les différents messages (voir "Programme contrôle à distance"). Le programme est tout d'abord composé d'un bloc "réception de message Bluetooth", puis le message reçu, qui contient une valeur numérique, est transformé en variable. Ensuite un bloc "if" permet d'associer le message reçu avec une action :
 +
[[Fichier:SiteFOX.jpg|thumb|alt=SiteFOX|SiteFOX]]
 +
* si le message reçu est 0, les moteurs s'arrêtent (un clic sur le "stop")
 +
* si le message reçu est 1, Bumblebee avance (un clic sur le "Flèche de la croix directionnelle")
 +
* si le message reçu est 2, Bumblebee recule (un clic sur le "Flèche de la croix directionnelle")
 +
* si le message reçu est 3, Bumblebee tourne à gauche (un clic sur le "Flèche de la croix directionnelle")
 +
* si le message reçu est 4, Bumblebee tourne à droite (un clic sur le "Flèche de la croix directionnelle")
 +
* si le message reçu est 18, Bumblebee suit la rouge dans le sens horaire (un clic sur le "Flèche rouge pointée vers la gauche")
 +
* si le message reçu est 19, Bumblebee suit la ligne rouge dans le sens opposé (un clic sur le "Flèche rouge pointée vers la droite")
 +
* si le message reçu est 666, Bumblebee tire utile son ADM (un clic sur le "Desert Eagle")
 +
</p>
  
 +
=== Cheminement de l'Information ===
 +
<p align="justify">
 +
Le robot ne nous obéit pas par télépathie, non non non ! Avant de faire une action, les moteurs reçoivent une information de la brique NXT. Mais cette information n'arrive pas par magie, elle fait un long chemin avant que les moteurs ne la perçoivent...
 +
Quand on clique sur une vignette du site, l'information par sur le réseau internet mondial (ce qui permet à une personne se trouvant n'importe où dans le monde de piloter notre robot), puis vie le WIFI (voir "WIFI") arrive sur la FoxBoard qui la traite. Et enfin via la bluetooth (voir "Bluetooth") le message va de la FoxBoard à la brique NXT qui elle actionne les différents moteurs !!
 +
{|
 +
|[[Fichier:FinalControl.jpg|thumb|alt=FinalControl|Programme contrôle à distance]]
  
 +
|[[Fichier:Webcam.jpg|thumb|alt=Webcam|Webcam]]
 +
|[[Fichier:Wifi.jpg|thumb|alt=Wifi|Wifi]]
  
 
+
|[[Fichier:Bluetooth.jpg|thumb|alt=Bluetooth|Bluetooth]]
 +
|[[Fichier:BDR.jpg|thumb|alt=BDR|Boule De Remorque]]
 +
|}
 +
</p>
  
 
== Les difficultés rencontrées et leur résolution ==
 
== Les difficultés rencontrées et leur résolution ==
  
 +
=== Pour la technologie RFID ===
 +
<p align="justify">
 
La première difficulté a été de comprendre le fonctionnement de l’interface de programmation LEGOMINDSTORM qui semble au premier regard assez simple d’utilisation mais qui se révèle difficile à l’application. En effet il faut réussir à combiner certaines commandes entre elles pour que le robot interagisse correctement. Cela s’est également révélé lors des essais pour comprendre le fonctionnement du capteur RFID : il faut enregistrer les transpondeurs dans le programme pour que le robot exécute une action lorsque le capteur arrive au dessus.  
 
La première difficulté a été de comprendre le fonctionnement de l’interface de programmation LEGOMINDSTORM qui semble au premier regard assez simple d’utilisation mais qui se révèle difficile à l’application. En effet il faut réussir à combiner certaines commandes entre elles pour que le robot interagisse correctement. Cela s’est également révélé lors des essais pour comprendre le fonctionnement du capteur RFID : il faut enregistrer les transpondeurs dans le programme pour que le robot exécute une action lorsque le capteur arrive au dessus.  
 
Une fois ces problèmes réglés grâce aux explications de nos enseignants,  on a pu commencer à créer le programme complet. C’est ici que s’est présentée la plus grande difficulté : on ne réussissait pas à faire lire le capteur RFID en continu. La lecture s’exécutait soit à la fin d’une boucle, soit entre chaque commande mais pas en cours d’exécution. Nos professeurs nous ont alors suggéré (et aidé !!) d’introduire des variables dans le programme ce qui a permis de faire une exécution en parallèle et donc de lire en continu.
 
Une fois ces problèmes réglés grâce aux explications de nos enseignants,  on a pu commencer à créer le programme complet. C’est ici que s’est présentée la plus grande difficulté : on ne réussissait pas à faire lire le capteur RFID en continu. La lecture s’exécutait soit à la fin d’une boucle, soit entre chaque commande mais pas en cours d’exécution. Nos professeurs nous ont alors suggéré (et aidé !!) d’introduire des variables dans le programme ce qui a permis de faire une exécution en parallèle et donc de lire en continu.
 +
</p>
 +
 +
=== Pour le contrôle à distance ===
 +
<p align="justify">
 +
Pour cette partie, la difficulté principale était le fait que la programmation soit imagée dans NXT. En effet, au départ, nous avons tenté de transformer le message texte envoyé par la FOX en chiffre pour que la brique puisse interagir suivant ce qu'elle recevait (avancer, reculer,tourner, tirer,...). Cependant, la brique Mindstorm n'exécutait que la première commande qu'elle recevait indéfiniement. Nous avons alors essayé de modifier le programme un certain nombre de fois en changeant de place les variables mais sans succès, ce qui nous a pris plusieurs heures.
 +
Nous avons fini par découvrir qu'il était possible de mettre plusieurs conditions dans un "if" en retirant le "flat view". Ensuite, en reliant ce "if" à une variable qui contient le message reçu de la FOX, nous avons fait un essai. Ce fut encore une désillusion puisque la brique exécutait en continu la condition qui était définie par défaut. La solution nous est alors apparue évidente, il fallait ajouter une dernière condition dans laquelle aucune tâche n'était demandée et de la définir par défaut.
 +
Un dernier essai a fait notre bonheur ^^ :-)
 +
</p>
 +
  
== To Be Continued... ==
+
== Remerciements ==
 +
<p align="justify">
 +
Nous tenons à remercier Messieurs Redon et Vantroys pour leur aide précieuse, leur gentillesse, leurs solutions, et leurs réponses à nos questions de débutants (ex:Hey Monsieur,comment on passe le clavier en mode AZERTY? ^^).
 +
Nous tenons également à remercier 3PJ et son binôme pour le suiveur de ligne.
  
Soon in “Coopération entre Robots Mobiles”:
+
Un grand merci de la part de Bumblebee (et oui, il parle!!).
Nous allons dans un premier temps continuer à travailler sur le programme en ajoutant quelques actions, c’est-à-dire que le robot effectuera une action (ex : lancer une bille, ) lorsqu’il passera sur le transpondeur RFID avant de continuer à chercher le transpondeur suivant.  
+
</p>
Ensuite, nous ferons interagir tous les robots entre eux dans le hall de l’école. Pour cela, nous allons récupérer les programmes finis des autres robots et les inclure dans le notre, pour qu’il jouisse des mêmes fonctionnalités c’est-à-dire au final suiveur de ligne, communication avec les autres robots, contrôle à distance, sonar et bien sûr capteur RFID. La difficulté sera alors de combiner tous ces programmes en un seul fonctionnel.
 

Version actuelle datée du 15 avril 2011 à 09:47

Rapport robot


Présentation du BE (avec les différentes parties)

Le Bureau d’Etude « Coopération entre Robots Mobiles » (IMA) consiste à terme à faire évoluer différents robots ensembles dans un environnement non défini à l’avance. C'est-à-dire : Que les robots communiquent par Bluetooth Qu’ils soient capables de suivre une ligne Capables d’éviter des obstacles Qu’ils soient contrôlables à distance (wifi) Et pour certains groupes, les robots auront des capacités qui leur sont propres, comme un gyroscope et un accéléromètre, un capteur RFID. Pour cela la première étape fut de construire, par binôme, un robot (Lego Mindstorm). Les différentes équipes on fait preuve d’une grande créativité, puisque aucun des robots ne se ressemblent. Puis est venu le moment de programmer. Le travail a été réparti de la façon suivante (par groupe) : Suivre une ligne Communication entre robot Navigant aux instruments (gyroscope + accéléromètre) Capteur RFID (nous) Robot contrôlé à distance, via le wifi

Our Robot ---> BUMBLEBEE

The Best One

Bumblebee

Présentation de notre partie Suiveur RFID

RFID
RFID

Notre mission était de faire un programme, pour exploiter le capteur RFID (permet d’identifier de manière certaine des transpondeurs RFID (une antenne avec une puce contenant un identifiant unique, parfois reprogrammable)). Donc notre programme consiste en : la recherche d’un transpondeur RFID (en avançant d’une longueur L, en reculant de L, puis léger pivot sur la droite, et ainsi de suite), une fois localisé notre robot se met à la recherche d’une second transpondeur, et ainsi de suite. Avec l’interface de Lego Mindstorm, donne programme ressemble à :




.

Description de l’algorithme RFID

Schema condensé :

BlocRFID.jpg

Schéma détaillé :

ProgRFID.jpg

Il se compose en deux parties qui se déroulent simultanément, mais toutes les deux régies par une même variable avec pour valeur préalable « fausse ».

La première (partie haute sur la photo) consiste à ne rien faire s’il ne lit pas le transpondeur, et ceci dans une boucle l’infini. S’il lit le transpondeur, tous les moteurs se stoppent et la variable se réécrit en tant que vrai, et sortie de la boucle.

La deuxième partie régie l’évolution du robot au sol. Si la variable est en valeur « fausse », le robot avance pendant 3 secondes, si la variable est toujours fausse le robot recule pendant 3 secondes, et si la variable est fausse il pivote légèrement sur la droite. Et ceci tant que la variable n’a pas été lue, via la première partie.

Mais tout ceci n’est que pour un transpondeur précis, donc il faut le reproduire autant de fois qu’il y a de transpondeur, en changeant le numéro d’identification dans le programme.

Suiveur Ligne

Un capteur de lumière est aussi intégré à Bumblebee ! Mais ce n'est pas nous qui avons développé cette capacité, le groupe du robot 3PJ (Pierre-Jean et Simon) ! Cette récupération de programme n'a pas été gratuite, nous lui avons donné en échange le programme permettant le contrôle à distance !! Comme on peut le voir sur la photo, notre capteur de lumière est excentré ! Ce qui apporte une touche d'originalité puisqu'on est les seul à l'avoir excentré !

Sonar

Sonar
Sonar


Bumblebee intègre un sonar qui lui permet, lorsqu'il détecte un obstacle à moins de 20cm, de stopper tous les moteurs ainsi que de reculer d'une quinzaine de centimètres pour éviter toute collision.

Cette application a été intégré dans le programme final, via un simple "if".





.

ADM

ADM
ADM



Bumblebee est également d'une Arme de Destruction Massive (ADM) !

Qui n'est autre qu'un lanceur de billes dernière génération super puissant !

Ce qui lui permet de détruire par utilité (traverser un mur) ou par plaisir ...









.

Contrôle à Distance

Le mode télécommande a demandé plus de travail et des échanges avec les autres groupes pour parvenir à un résultat satisfaisant. Tout d'abord, il a fallu installer le système d'exploitation de la Foxboard (qui est relié à Bumblebee par un ingénieux système voir "Boule de Remorque"), y enregistrer l'adresse MAC de la brique NXT afin de faire fonctionner le Bluetooth et y placer les pages Web qui servent d'interface afin de piloter le robot. Ce site intègre également un "demon capture" ce qui permet de voir l'environnement dans lequel évolue Bumblebee via une Webcam embarquée (voir "SiteFOX" et "Webcam") Ensuite il a fallu créer le programme permettant au robot de savoir ce qu'il devait faire en recevant les différents messages (voir "Programme contrôle à distance"). Le programme est tout d'abord composé d'un bloc "réception de message Bluetooth", puis le message reçu, qui contient une valeur numérique, est transformé en variable. Ensuite un bloc "if" permet d'associer le message reçu avec une action :

SiteFOX
SiteFOX
  • si le message reçu est 0, les moteurs s'arrêtent (un clic sur le "stop")
  • si le message reçu est 1, Bumblebee avance (un clic sur le "Flèche de la croix directionnelle")
  • si le message reçu est 2, Bumblebee recule (un clic sur le "Flèche de la croix directionnelle")
  • si le message reçu est 3, Bumblebee tourne à gauche (un clic sur le "Flèche de la croix directionnelle")
  • si le message reçu est 4, Bumblebee tourne à droite (un clic sur le "Flèche de la croix directionnelle")
  • si le message reçu est 18, Bumblebee suit la rouge dans le sens horaire (un clic sur le "Flèche rouge pointée vers la gauche")
  • si le message reçu est 19, Bumblebee suit la ligne rouge dans le sens opposé (un clic sur le "Flèche rouge pointée vers la droite")
  • si le message reçu est 666, Bumblebee tire utile son ADM (un clic sur le "Desert Eagle")

Cheminement de l'Information

Le robot ne nous obéit pas par télépathie, non non non ! Avant de faire une action, les moteurs reçoivent une information de la brique NXT. Mais cette information n'arrive pas par magie, elle fait un long chemin avant que les moteurs ne la perçoivent... Quand on clique sur une vignette du site, l'information par sur le réseau internet mondial (ce qui permet à une personne se trouvant n'importe où dans le monde de piloter notre robot), puis vie le WIFI (voir "WIFI") arrive sur la FoxBoard qui la traite. Et enfin via la bluetooth (voir "Bluetooth") le message va de la FoxBoard à la brique NXT qui elle actionne les différents moteurs !!

FinalControl
Programme contrôle à distance
Webcam
Webcam
Wifi
Wifi
Bluetooth
Bluetooth
BDR
Boule De Remorque

Les difficultés rencontrées et leur résolution

Pour la technologie RFID

La première difficulté a été de comprendre le fonctionnement de l’interface de programmation LEGOMINDSTORM qui semble au premier regard assez simple d’utilisation mais qui se révèle difficile à l’application. En effet il faut réussir à combiner certaines commandes entre elles pour que le robot interagisse correctement. Cela s’est également révélé lors des essais pour comprendre le fonctionnement du capteur RFID : il faut enregistrer les transpondeurs dans le programme pour que le robot exécute une action lorsque le capteur arrive au dessus. Une fois ces problèmes réglés grâce aux explications de nos enseignants, on a pu commencer à créer le programme complet. C’est ici que s’est présentée la plus grande difficulté : on ne réussissait pas à faire lire le capteur RFID en continu. La lecture s’exécutait soit à la fin d’une boucle, soit entre chaque commande mais pas en cours d’exécution. Nos professeurs nous ont alors suggéré (et aidé !!) d’introduire des variables dans le programme ce qui a permis de faire une exécution en parallèle et donc de lire en continu.

Pour le contrôle à distance

Pour cette partie, la difficulté principale était le fait que la programmation soit imagée dans NXT. En effet, au départ, nous avons tenté de transformer le message texte envoyé par la FOX en chiffre pour que la brique puisse interagir suivant ce qu'elle recevait (avancer, reculer,tourner, tirer,...). Cependant, la brique Mindstorm n'exécutait que la première commande qu'elle recevait indéfiniement. Nous avons alors essayé de modifier le programme un certain nombre de fois en changeant de place les variables mais sans succès, ce qui nous a pris plusieurs heures. Nous avons fini par découvrir qu'il était possible de mettre plusieurs conditions dans un "if" en retirant le "flat view". Ensuite, en reliant ce "if" à une variable qui contient le message reçu de la FOX, nous avons fait un essai. Ce fut encore une désillusion puisque la brique exécutait en continu la condition qui était définie par défaut. La solution nous est alors apparue évidente, il fallait ajouter une dernière condition dans laquelle aucune tâche n'était demandée et de la définir par défaut. Un dernier essai a fait notre bonheur ^^ :-)


Remerciements

Nous tenons à remercier Messieurs Redon et Vantroys pour leur aide précieuse, leur gentillesse, leurs solutions, et leurs réponses à nos questions de débutants (ex:Hey Monsieur,comment on passe le clavier en mode AZERTY? ^^). Nous tenons également à remercier 3PJ et son binôme pour le suiveur de ligne. Un grand merci de la part de Bumblebee (et oui, il parle!!).