Teleguide2012-2 : Différence entre versions
(→La construction du robot) |
(→La construction du robot) |
||
Ligne 10 : | Ligne 10 : | ||
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. | Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. | ||
− | Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. '''''Schéma et photos à ajouter''''' | + | Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. |
+ | |||
+ | '''''Schéma et photos à ajouter''''' | ||
+ | |||
+ | [[Fichier:RL_SchémaMindstorm.jpg]] | ||
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel). | Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel). |
Version du 13 mars 2013 à 17:33
Objectifs
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une "voiture" à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).
La construction du robot
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome.
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage.
Schéma et photos à ajouter
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).
La programmation
Principe de fonctionnement
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.
Programmation du boîtier NXT
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.
Pour revenir à l'algorithme même, il se décompose comme suit :
Tant que vrai Recevoir message bluetooth Associer la valeur du message à une variable Si nouveau message Comparaison de la valeur du message 0: Arrêt 1: Avancer 2: Reculer 3: Tourner à gauche 4: Tourner à droite Fin comparaison Fin si Envoi message de confirmation Fin tant que
Programmation de la FoxBoard G20
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :
ssh root@192.168.100.1 ou ssh root@192.168.1.1
La commande change selon le type de connexion (filaire ou non). A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations. Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard.
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :
192.168.100.1 ou 192.168.1.1
Encore une fois, l'adresse diffère selon le type de connexion employée.
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.
Screenshot nécessaire
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.