Introduction

Vous disposerez sous peu chacun d'un robot 3pi.

Chacun de ces robots a été modifié pour pouvoir communiquer sans fil (en ZigBee) avec un des ordinateur de la salle A405. Vous pourrez alors, à l'aide messages 0MQ récupérer les valeurs de capteurs des robots et piloter leur éléments (moteurs, aficheur, buzzer, etc.). L'objectif final sera de faire parcourir un labyrinthe à votre robot tout en évitant les robots des autres.

Première phase

Nous avons mis en place un serveur de carte, un peu dans le même esprit que l'exercice sur les lignes de métro. Ce serveur vous renvoie une carte au format décrit sur cette page-ci.

L'objectif de cette étape est de pouvoir récupérer cette carte en JSON, et pouvoir en extraire un plus court chemin pour aller d'un nœud à un autre.

Remarque : pour vous simplifier la vie, vous pouvez dans un premier temps ignorer la longueur des segments pour la recherche de plus court chemin.

Deuxième phase

Cette partie est indépendante de la précédente. Ici, vous allez piloter un robot virtuel et lui demander de parcourir tous les nœuds possibles en faisant un parcours main gauche en premier (on suit le mur de gauche). Ce style ne parcours ne convient pas à tous les labyrinthes, mais il convient à celui que vous sert le serveur de carte pour l'instant.

Votre objectif : écrire une classe robot disposant d'une méthode left_hand() qui fait effectuer à votre robot un parcours main gauche. Les commandes à donner à votre robot sont détaillées sur cette page-ci. Les ordres sont à envoyer en REQ à tcp://a405-01.enst.fr:4160.

Remarque : pour vous faciliter la vie, vous disposez pendant les heures de cours d'un visualisateur graphique.

Phases suivantes

Patience...