Teleguide2011-2 : Différence entre versions

De Wiki de bureau d'études PeiP
(Introduction à la partie contrôle à distance)
 
(27 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
== Introduction à la partie contrôle à distance ==
 
== Introduction à la partie contrôle à distance ==
 
+
<include nopre noesc src="/home/pedago/ppeip/include/video-RobotTéléguidé2-2011-iframe.html" />
 
La partie  du contrôle à distance a pour but de contrôler un robot Mindstorm à l'aide d'un navigateur internet (machine de type pc ou smartphone).
 
La partie  du contrôle à distance a pour but de contrôler un robot Mindstorm à l'aide d'un navigateur internet (machine de type pc ou smartphone).
 
Pour cela, on se connecte via Wifi à un micro-ordinateur (Foxboard) comprenant des pages web permettant le contrôle du robot.
 
Pour cela, on se connecte via Wifi à un micro-ordinateur (Foxboard) comprenant des pages web permettant le contrôle du robot.
Ligne 8 : Ligne 8 :
 
* Foxboard avec interface Wifi et Bluetooth
 
* Foxboard avec interface Wifi et Bluetooth
 
* Brique NXT du robot Mindstorm.
 
* Brique NXT du robot Mindstorm.
 
  
 
Le contrôle en lui même s'effectue en plusieurs étapes:
 
Le contrôle en lui même s'effectue en plusieurs étapes:
Ligne 15 : Ligne 14 :
 
* Le programme implanté des la brique reçoit les ordres (sous forme de chiffre) et executent les actions correspondantes au chiffre reçu.
 
* Le programme implanté des la brique reçoit les ordres (sous forme de chiffre) et executent les actions correspondantes au chiffre reçu.
  
                          Image représentant plan de contrôle
+
[[File:etapes_contrôle.jpg]]
 +
<br style="clear: both;">
  
 
== Avancée du projet ==
 
== Avancée du projet ==
Ligne 23 : Ligne 23 :
 
Nous avons d'abord commencé par construire en essayant de suivre un maximum le manuel fourni par Lego.  
 
Nous avons d'abord commencé par construire en essayant de suivre un maximum le manuel fourni par Lego.  
 
Cependant, le problème du manque d'espace est très vite apparu. Deuxième soucis, un moteur placé à l'avant ne servait à rien. Enfin, si nous voulions suivre le manuel, c'était pour être sur d'avoir un robot solide qui tienne face au poids conséquent des différents composants externes à installer.
 
Cependant, le problème du manque d'espace est très vite apparu. Deuxième soucis, un moteur placé à l'avant ne servait à rien. Enfin, si nous voulions suivre le manuel, c'était pour être sur d'avoir un robot solide qui tienne face au poids conséquent des différents composants externes à installer.
Nous avons alors décidé de reprendre les fondamentaux du robot typique, mais d'en élargir énormément l'intérieur afin de pouvoir mettre la Foxcom et le mini-PC tranquillement. On a donc obtenu un robot assez large mais compact comportant tous les objets dont nous allions avoir besoin par la suite.
+
Nous avons alors décidé de reprendre les fondamentaux du robot typique, mais d'en élargir énormément l'intérieur afin de pouvoir mettre le mini-PC tranquillement. On a donc obtenu un robot assez large mais compact comportant tous les objets dont nous allions avoir besoin par la suite.
  
 
<br/>
 
<br/>
 
<gallery>
 
<gallery>
 
File:MaliarRoyerBase.jpg|La base du robot robot en version 1 en suivant le manuel
 
File:MaliarRoyerBase.jpg|La base du robot robot en version 1 en suivant le manuel
 +
File:20120206 085344.jpg|Construction 1
 +
File:20120206_094009.jpg|Construction 2
 +
File:20120206 094017.jpg|Construction 3
 
File:Final_400_300.jpg‎|Le robot en version finale vu de face
 
File:Final_400_300.jpg‎|Le robot en version finale vu de face
 
File:IMG_0319_copie.jpg|Le robot en version finale vu de profil
 
File:IMG_0319_copie.jpg|Le robot en version finale vu de profil
Ligne 33 : Ligne 36 :
 
</gallery>
 
</gallery>
  
 +
=== Etape 2 : Familiarisation avec le logiciel Labview (logiciel Mindstorm) ===
  
=== Etape 2 : Familiarisation avec le logiciel Labview (logiciel Mindstorm) ===
+
<include nopre noesc src="/home/pedago/ppeip/include/video-WalleEnAction-iframe.html" />
  
 
Nous avons commencé par la programmation graphique du logiciel pour comprendre l'utilisation des moteurs et du sensor.
 
Nous avons commencé par la programmation graphique du logiciel pour comprendre l'utilisation des moteurs et du sensor.
 
Très vite, nous avons été confrontés à des problèmes de communication bluetooth entre la foxboard qui nous a poussé vers la programmation avec le langage NXC (Not Exactly C) qui nécessite un apprentissage de ce langage et des fonctions permettant de diriger chaque composant du robot. Ce langage a plusieurs avantages, il nous a permis de régler chaque mesures plus aisément et précisément(vitesse des moteurs, temps, fréquences de sons, distance, etc) et de ne pas se perdre dans les blocks quand le programme s'épaissit.
 
Très vite, nous avons été confrontés à des problèmes de communication bluetooth entre la foxboard qui nous a poussé vers la programmation avec le langage NXC (Not Exactly C) qui nécessite un apprentissage de ce langage et des fonctions permettant de diriger chaque composant du robot. Ce langage a plusieurs avantages, il nous a permis de régler chaque mesures plus aisément et précisément(vitesse des moteurs, temps, fréquences de sons, distance, etc) et de ne pas se perdre dans les blocks quand le programme s'épaissit.
 +
 +
La vidéo ci-contre donne un aperçu du résultat du programme test que nous avons fait avec le logiciel mindstorm.
 +
 +
Walle avance tout le temps, et si il rencontre un objet, alors il effectue un virage à droite et continue sa route jusqu'à rencontrer un autre objet. Bref, test tout bête mais avec lequel on a pu voir que Mindstorm était capricieux avec certains obstacles.
 +
 +
<br style="clear: both" />
  
 
=== Etape 3 : Programmation du code ===
 
=== Etape 3 : Programmation du code ===
  
L'algorithme (simpliste du programme est le suivant :
+
Après longue étude des .pdf que l'on pouvait trouver sur le web au sujet du NXC, nous avons pu écrire l'algorithme (simpliste) du programme suivant :
 +
 
 +
  Tant que (true)
 +
 
 +
  Réception du message bluetooth
 +
 
 +
  Si il y a un obstacle à moins de 15 cm
 +
  Stop
 +
  Fin si
 +
 
 +
  Si (l'instruction est conforme à celle attendu et si elle est différente de la précédente)
 +
  switch (instruction)
 +
    cas 0 : On arrête les moteurs
 +
    cas 1 : On actionne les moteurs pour faire marche arrière
 +
    cas 2 : On actionne les moteurs pour aller tout droit
 +
    cas 3 : On actionne les moteurs pour aller à gauche
 +
    cas 4 : On actionne les moteurs pour aller à droite
 +
    cas 5 : On actionne les moteurs suivant la direction et la puissance donné par le navigateur de la Foxboard (guidage amélioré)
 +
  Fin switch
 +
  Fin si
 +
 
 +
  Fin tant que
 +
 
 +
Nous avons équipé notre petit Walle -comme le montre l'algorithme- d'un arrêt d'urgence. En cas de mauvaise manœuvre de l'utilisateur le robot s'arrête à 15 cm d'un obstacle. Seul problème, si l’obstacle et vraiment grand, la tâche 2 qui correspond à "aller tout droit" ne s’exécute pas : forme d'intelligence artificielle ?
 +
 
 +
 
 +
=== Dernière Partie : Démonstration finale des supers pouvoirs de Walle ===
 +
 
 +
Pour la démonstration finale, notre Walle pouvait effectuer les actions suivantes :
 +
    - Téléguidage via un smartphone (ou une tablette).
 +
    - Suivi d'une ligne (cas du parcours).
 +
    - Envoie de sa position et de son orientation aux Foxboards proches.
 +
    - Peut dire son nom au démarrage(joli cri Walle qui surprend la première fois).
 +
 
 +
 
 +
<br/>
 +
<gallery>
 +
File:IMG 0445.JPG|Walle sous tous ses angles au final
 +
File:IMG 0446.JPG|
 +
File:IMG 0447.JPG|
 +
File:IMG 0448.JPG|
 +
</gallery>
 +
 
 +
=== Dis Bonjour Walle ===
 +
 
 +
[[File:IMG 0449.JPG|500px|thumb]]
 +
 
 +
<br style="clear: both;">
 +
 
 +
=== Remerciements ===
 +
 
 +
On remercie les professeurs de Polytech'Lille qui nous ont permis de mener à bien ce projet et de découvrir un aspect ludique et joyeux d'IMA et en particulier Mr Xavier Redon pour ses bons conseils et son aide au débbuggage.
 +
 
 +
On remercie aussi Thomas Maurice et Jean-Dominique Lancieri (autre élève de BE) pour la coopération qu'on a pu entretenir ensemble.
 +
 
 +
Dernier mot de la fin : Waaaaaaalleeeeeeee !

Version actuelle datée du 31 mai 2012 à 17:06

Introduction à la partie contrôle à distance

La partie du contrôle à distance a pour but de contrôler un robot Mindstorm à l'aide d'un navigateur internet (machine de type pc ou smartphone). Pour cela, on se connecte via Wifi à un micro-ordinateur (Foxboard) comprenant des pages web permettant le contrôle du robot.

Le matériel principal utilisé est :

  • Machine comprenant un navigateur web
  • Foxboard avec interface Wifi et Bluetooth
  • Brique NXT du robot Mindstorm.

Le contrôle en lui même s'effectue en plusieurs étapes:

  • Le navigateur se connecte à la Foxboard via Wifi et arrive sur les pages web.
  • Suivant les actions de l'utilisateurs sur cespages web, des Javascripts s'executent et envoient des ordres bluetooth à la brique NXT du robot.
  • Le programme implanté des la brique reçoit les ordres (sous forme de chiffre) et executent les actions correspondantes au chiffre reçu.

Etapes contrôle.jpg

Avancée du projet

Etape 1 : Construction du robot

Nous avons d'abord commencé par construire en essayant de suivre un maximum le manuel fourni par Lego. Cependant, le problème du manque d'espace est très vite apparu. Deuxième soucis, un moteur placé à l'avant ne servait à rien. Enfin, si nous voulions suivre le manuel, c'était pour être sur d'avoir un robot solide qui tienne face au poids conséquent des différents composants externes à installer. Nous avons alors décidé de reprendre les fondamentaux du robot typique, mais d'en élargir énormément l'intérieur afin de pouvoir mettre le mini-PC tranquillement. On a donc obtenu un robot assez large mais compact comportant tous les objets dont nous allions avoir besoin par la suite.


Etape 2 : Familiarisation avec le logiciel Labview (logiciel Mindstorm)


Nous avons commencé par la programmation graphique du logiciel pour comprendre l'utilisation des moteurs et du sensor. Très vite, nous avons été confrontés à des problèmes de communication bluetooth entre la foxboard qui nous a poussé vers la programmation avec le langage NXC (Not Exactly C) qui nécessite un apprentissage de ce langage et des fonctions permettant de diriger chaque composant du robot. Ce langage a plusieurs avantages, il nous a permis de régler chaque mesures plus aisément et précisément(vitesse des moteurs, temps, fréquences de sons, distance, etc) et de ne pas se perdre dans les blocks quand le programme s'épaissit.

La vidéo ci-contre donne un aperçu du résultat du programme test que nous avons fait avec le logiciel mindstorm.

Walle avance tout le temps, et si il rencontre un objet, alors il effectue un virage à droite et continue sa route jusqu'à rencontrer un autre objet. Bref, test tout bête mais avec lequel on a pu voir que Mindstorm était capricieux avec certains obstacles.


Etape 3 : Programmation du code

Après longue étude des .pdf que l'on pouvait trouver sur le web au sujet du NXC, nous avons pu écrire l'algorithme (simpliste) du programme suivant :

 Tant que (true)
 
 Réception du message bluetooth
 
 Si il y a un obstacle à moins de 15 cm
 Stop
 Fin si
 
 Si (l'instruction est conforme à celle attendu et si elle est différente de la précédente)
 switch (instruction)
   cas 0 : On arrête les moteurs
   cas 1 : On actionne les moteurs pour faire marche arrière
   cas 2 : On actionne les moteurs pour aller tout droit
   cas 3 : On actionne les moteurs pour aller à gauche
   cas 4 : On actionne les moteurs pour aller à droite
   cas 5 : On actionne les moteurs suivant la direction et la puissance donné par le navigateur de la Foxboard (guidage amélioré)
 Fin switch
 Fin si
 
 Fin tant que

Nous avons équipé notre petit Walle -comme le montre l'algorithme- d'un arrêt d'urgence. En cas de mauvaise manœuvre de l'utilisateur le robot s'arrête à 15 cm d'un obstacle. Seul problème, si l’obstacle et vraiment grand, la tâche 2 qui correspond à "aller tout droit" ne s’exécute pas : forme d'intelligence artificielle ?


Dernière Partie : Démonstration finale des supers pouvoirs de Walle

Pour la démonstration finale, notre Walle pouvait effectuer les actions suivantes :

    - Téléguidage via un smartphone (ou une tablette).
    - Suivi d'une ligne (cas du parcours).
    - Envoie de sa position et de son orientation aux Foxboards proches.
    - Peut dire son nom au démarrage(joli cri Walle qui surprend la première fois).



Dis Bonjour Walle

IMG 0449.JPG


Remerciements

On remercie les professeurs de Polytech'Lille qui nous ont permis de mener à bien ce projet et de découvrir un aspect ludique et joyeux d'IMA et en particulier Mr Xavier Redon pour ses bons conseils et son aide au débbuggage.

On remercie aussi Thomas Maurice et Jean-Dominique Lancieri (autre élève de BE) pour la coopération qu'on a pu entretenir ensemble.

Dernier mot de la fin : Waaaaaaalleeeeeeee !