Outils d'utilisateurs

Outils du Site


informatique:simu14:interaction

Interagir avec le simulateur

La GUI (Graphical User Interface)

L'évolution majeure de la version 2014 du simulateur est l'ajout d'une GUI qui permet d'envoyer quelques commandes au robot, mais surtout de récupérer les actions effectuées par ce-dernier.

La GUI a été réalisé à l'aide de la librairie graphique TKinter (SR01 quand tu nous tiens^^) et se présente sous cette forme :

Outre l'aspect général et les couleurs qui laissent pas mal à désirer (on aura privilégié le fonctionnel au visuel), la GUI se décompose en 4 principaux blocs (ou frame) :

  • Frame “general” (celui tout en haut) qui regroupe les principaux boutons de contrôle du simulateur (Start et Viznavgraph, les autres n'ont pas été implémentés), ainsi que les données générales de la partie (temps écoulé et équipe qui joue).
  • Frame “robots” qui regroupe les données de base sur nos robots et les robots adverses (position, angle, ordre en cours).
  • Frame “actions” qui liste les actions effectuées par nos robots (se base sur les données communiquées entre les robots et l'IA) ainsi qu'une timestamp pour les actions effectuées (fonctionne à moitié).
  • Frame “actionneurs” (et capteurs) qui affiche des données internes au robot (généralement liées aux actions effectuées) et qui permet via des boutons de simuler des effets physiques qui atteignent le robot. On pourra par exemple simuler un blocage de l'asservissement du robot (typiquement quand il est bloqué contre un muret qu'il continue à avancer).

La GUI est certes une ébauche plutôt laide et pas entièrement fonctionnelle, mais elle permet de simuler plusieurs choses difficilement intégrable directement dans le simulateur. De plus, elle permet d'avoir des renseignements faciles d'accès sur les robots.

Au final la GUI s'avère être une bonne idée pour le gain de temps qu'elle apporte sur le débug de l'IA (plus besoin de parcourir les milliers de lignes de logs pour avoir telle ou telle information.

Le contrôle clavier/souris

Comme expliqué plus haut, la GUI permet surtout de récupérer des informations du simulateur et non de lui en envoyer. Il serait par exemple utile de pouvoir déplacer un robot manuellement sur la carte, non ?

C'est là qu'intervient le contrôle du simulateur via le clavier et la souris. Ce contrôle est basé sur la boucle d'événements extérieurs de PyGame. Lorsque l'utilisateur interagit avec la fenêtre du simulateur, la commande est mise en tampon et est exécutée au prochain tour de boucle.

Bref, voici ce qu'il est concrètement possible d'avoir comme interaction avec le simulateur :

  • Clique gauche de la souris :

En cliquant sur la map, vous donnez l'ordre au robot courant (par défaut le gros robot de l'équipe rouge) de se déplacer vers ce point. Le fonctionnement est immédiat, les ordres ne sont pas stockés dans une pile : en cliquant, la pile des ordres de déplacement du robot est vidée et une fois que le robot atteint la position demandée, il ne bouge plus (sauf si on lui redonner un ordre de déplacement).

  • Appuyer sur la touche ctrl gauche :

Si la touche est enfoncée, on contrôle via clique le petit robot de l'équipe courante. Sinon on contrôle le gros robot.

  • Appuyer sur la touche shift gauche :

Permet de changer d'équipe. Par défaut, on contrôle l'équipe rouge. Une pression sur la touche change l'équipe par défaut par l'équipe jaune. Si vous voulez à nouveau faire bouger les robots de l'équipe rouge, il faudra rester appuyer sur la touche shift gauche (pas très pratique, on est d'accord).

A la base il y avait d'avait d'autres actions qui pouvaient être effectuées (start, stop, téléportation, recul, etc) cependant ces fonctionnalités du simulateur 2012 n'auront pas été réimplémentés.

informatique/simu14/interaction.txt · Dernière modification: 2014/08/17 21:24 par tfuhrman