Teleguide2011-1

De Wiki de bureau d'études PeiP
Révision datée du 11 mars 2012 à 13:45 par Tmaurice (discussion | contributions) (Principe)

Robot téléguidé 1, le Gros Tony

Étudiants: Jean-Dominique Lancieri et Thomas Maurice.

1ère étape, construction du robot

Pour construire le robot, nous avons d'abord essayé de suivre les instructions du manuel Lego fourni, mais plusieurs problèmes d'érgonomie sont assez vite apparus, comme par exemple la non utilisation d'un moteur et l'espace insuffisant entre les moteurs restants pour intercaler les capteurs de luminosité et de puces RFID. Nous avons donc décidé de développer notre propre châssis plus large que celui de base, pour éviter de trop élever le robot par la suite en ajoutant des composants, afin de conserver un assez bon équilibre.

la construction du robot
Châssis du robot au début








Idée d'amélioration du guidage par wifi

Plutôt que de récupérer les ordres de direction lorsque l'on clique sur la page web du robot, on peut les récupérer via un joystick raccordé à une machine qui enverra les ordres a la foxboard par wifi. Le guidage sera ainsi plus intuitif (et plus rigolo...).

Principe

  • Un programme client récupère les informations d'une manette de jeu (état des axes, hats et boutons) et les convertit en ordres simples (avancer/tourner à telle vitesse).
  • Le programme client envoie les ordres via un protocole textuel simple à un programme serveur tournant sur la foxboard.
  • Le programme serveur actionne /usr/bin/commande avec les paramètres fournis par le client pour piloter le robot.

(Programme client en C++ avec la SDL pour la gestion du joystick et programme serveur en C++ standard)

le prototype est bien avancé...
Le gros tony ne demande plus qu'à être ptogrammé...

Page man du programme joystick

   joystick(1)              Joystick Mindstorm controller             joystick(1)
   
   
   
   NAME
               joystick  -  Logiciel  de  contrôle du robot Lego Mindstorm via le
          réseau.
   
   
   SYNOPSIS
          joystick --host host --port port --key key
   
   
   DESCRIPTION
          Ce programme permet de communiquer avec le serveur  joystick-server  et
          de  ce fait de contrôler le robot Lego Mindstorm qui est equipé du pro‐
          gramme guidage.nxc. Ce programme est développé pour la manette  de  jeu
          Logitech  RumblePad  2,  il  est  donc  possible  qu'une  autre manette
          provoque des comportements inattendus si elle est utilisée avec ce pro‐
          gramme.  Pour capter les évènements de la manette, le programme utilise
          la bibliothèque SDL, et  pour  communiquer  à  travers  le  réseau,  il
          utilise  la  libtsocket  une  petite bibliothèque réseau orientée objet
          développée en C++.
  
  
   OPTIONS
          --host host
                 Spécifie l'host de connexion
   
          --port port
                 Spécifie le port de connexion
   
          --key pass
                 Spécifie le pass de connexion
   
   
   UTILISATION
          Le programme se lance après avoir une manette configurée branchée à  la
          machine,  la  manette  sera automatiquement détectée (en théorie) et la
          connexion au serveur se fera automatiquement après la détection  de  la
          manette.  Les contrôles sont simples :
   
   
          Les hats
                 Permettent  de contrôler le robot pas à pas, en fait ils permet‐
                 tent de résaliser le  plus  petit  déplacement  possible  dl  de
                 manière à diriger le robot en précision.
   
   
          Les axes
                 Permettent de diriger le robot en continu et non pas à pas comme
                 avec les hats. Lors d'un déplacement en avant, il  est  possible
                 de faire tirer le robot plus à droite ou plus à gauche pour cor‐
                 riger un éventuel défaut mécanique  ou  une  inégalité  du  sol.
                 C'est  en  revanche  impossible  si le robot recule, il reculera
                 bêtement en ligne droite. Notez que si le robot tourne, par gain
                 de  place,  il tournera sur place ce qui permet d'affiner encore
                 la direction.
   
   
          Les boutons
                 Le bouton 9 est le bouton d'arrêt du  programme,  il  doit  être
                 utilisé pour quitter le programme joystick.  Le bouton 10 est le
                 bouton d'arrêt du programme ET du serveur (hébergé sur  la  même
                 machine  ou  sur  la  foxboard).  Appuyer  sur ce bouton causera
                 l'arrêt des deux processus.  Les boutons 3 et 1 permettent quand
                 à  eux  de  pivoter légèrement sur place sur la droite ou sur la
                 gauche.  Le bouton 5 permet au  robot  de  jouer  les  permières
                 mesures  de la marche impériale de Star Wars, du plus bel effet.
                 Le bouton 2 est un avertisseur sonor, un genre de klaxon  si  le
                 robot en a besoin.
   
   
   PROBLEMES CONNUS
          Parfois  les contôles semblent inversés, c'est parce que la manette est
          passée pour une raison X ou Y en mode axes  inversés,  appuyez  sur  le
          bouton mode et tout devrait rentrer dans l'ordre.
   
   
   AUTEURS
          Thomas Maurice <thomas.maurice@polytech-lille.net>
          Jean-Dominique Lancieri <jean-dominique.lancieri@polytech-lille.net>
   
   
   
   Version 1.0               Thomas MAURICE - Mars 2012               joystick(1)