Club robotique de Sophia-Antipolis

Accueil > Projets et études > Nos robots > Robots du club > Robots à roues > Base "Pobot Easy" (2009) > Pilotage du Pobot Easy

Pilotage du Pobot Easy

interfaces de télécommande et de télémétrie

lundi 2 mars 2009, par Julien H.

On va pouvoir piloter le robot à distance avec les modules XBee. Une bonne occasion de faire un peu de télémétrie pour recevoir les différents événements qui se produisent à bord.

L’idée est d’installer sur ordinateur tout un tas de petites applets de visualisation : consignes de vitesse, vitesses des servomoteurs, positionnement par odométrie, vision par capteurs Sharp, etc...

PNG - 257.9 ko
Premières interfaces
PNG - 260.2 ko
Interface supplémentaire
PNG - 19.2 ko
Visualisation de l’odométrie
En haut les odomètres, en bas les consignes de vitesse.

 Premier essai

On aura pour commencer :
- la production des consignes de vitesse, grâce à notre panneau de contrôle (il n’est pas parfait mais il fonctionne) :
- la consommation pour affichage dans un graphique
- la consommation pour envoi au robot Pobot Easy

PNG - 257.9 ko
Premières interfaces

Voici les projets pour P5 [1] 1.0.3.

Zip - 2.4 Mo
Easy Control v2
consignes de vitesse en polaire et en cartésien
Zip - 598 octets
Easy Robot
transmission des consignes et gestion de la liaison série
Zip - 473.3 ko
Easy Visualisation Consignes
graphe temps réel des consignes

Et le code côté Arduino :

Zip - 71.1 ko
Code Arduino pour télécommande

Le principe est d’utiliser des sockets de connexion réseau pour gérer la production d’information et leur consommation. Avec Processing, c’est très simple :


import processing.net.* ;

// le serveur qui diffusera les consignes de vitesses
Server myServer ;

// démarre le serveur sur un port quelconque
myServer = new Server(this, 5204) ;

// envoyer les valeurs de vitesse
myServer.write(0xFF) ;
myServer.write((int)vg) ;
myServer.write((int)vd) ;

Et le client :


import processing.net.* ;

// un des clients qui recevra les valeurs envoyées par le serveur
Client myClient ;

// initier le client en se connectant au même port et sur l’IP du serveur (ici, local)
myClient = new Client(this, "127.0.0.1", 5204) ;

int val ;

// tester s’il y a des données disponibles
if (myClient.available() > 1)
val = myClient.read() ;

Fabrice a amélioré l’algorithme de calcul des vitesses. La nouvelle version v2 de Easy Control est vraiment plus pratique.

 Seconde version

Maintenant, on va s’occuper de représenter le parcours du robot, c’est le programme "Easy Visualisation Map". Pour l’instant, il est basé sur les consignes de vitesse, mais plus tard il y aura la position "réelle" du robot basée sur les odomètres.

PNG - 260.2 ko
Interface supplémentaire

Voici le projet pour P5.

Zip - 967 octets
Easy Visualisation Map
affichage de la position supposée

 Troisième version

On met de côté la cartographie, le temps d’intégrer les odomètres. Dans cette version, on visualise les valeurs brutes des compteurs incrémentés par le robot.

PNG - 19.2 ko
Visualisation de l’odométrie
En haut les odomètres, en bas les consignes de vitesse.
Zip - 59.9 ko
Code Arduino v2
La télécommande + compteur des odomètres
Zip - 754 octets
Easy Robot v2
avec lecture de la télémétrie du robot
Zip - 7.5 ko
Easy Visualisation Odométrie

[1P5 = Processing = Proce55ing

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document