Teleguide2011-2 : Différence entre versions
(→Etape 3 : Programmation du code) |
(→Introduction à la partie contrôle à distance) |
||
(14 révisions intermédiaires par 2 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. | ||
− | + | [[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 | + | 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/> | ||
Ligne 36 : | Ligne 36 : | ||
</gallery> | </gallery> | ||
+ | === 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 | + | |
+ | 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 === | ||
Ligne 54 : | Ligne 58 : | ||
Si il y a un obstacle à moins de 15 cm | Si il y a un obstacle à moins de 15 cm | ||
− | + | Stop | |
− | |||
Fin si | Fin si | ||
Ligne 71 : | Ligne 74 : | ||
Fin tant que | 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 | + | 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.
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
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 !