samedi 22 septembre 2007

photos de la plateforme




Je profite de 5 minutes de libres pour poster des photos du robot sur lequelje travaille.
Les connaisseurs reconnaitront d'ou m'est venue l'idée...
Là, la plateforme est fonctionelle, 2 degrés de liberté pour la tete, ca suffit pour s'amuser...
Bon, j'avoue que le corps n'est pas tres esthétique, mais j'ai fait ca avec les moyens du bord...
Si certaines personnes peuvent me donner de bonnes adresses pour faire découper de l'alu, ca m'interesse...
Tout n'est pas "droit", ce que je voulais était une tete, et une structure pour accueillir les cartes.

jeudi 20 septembre 2007

IHM

Je viens de l'écrire, j'ai déja programmé une interface en WxWidget, mais je me suis rendu compte que pour la portabilité, meme sur une machine windows, c'est pas terrible...
Toutes les infos, envoyées ou recues, passant par socket, j'ai pensé que reprogrammer en java était une bonne idée. En plus, ca m'a rappelé de bons souvenirs de l'école^^.
A l'origine, j'avais écarté java, car j'avais besoin de récupérer des infos sur le port série, et les API java pour la comm materielle sont pas compatibles windows/ linux, ou moyennement... Sur l'image ci-dessous, on voit à quoi ressemble cette interface.
J'utilise swing, encore pour des raisons de portabilité. Le rectangle orange correspond à la fenetre de visualisation du flux vidéo, à coté, un panel pour gérer les algos, et la connection vidéo au robot.
Un second panel permet de gérer les mouvements du robot.
L'interface en est à ses débuts, et, meme si elle n'est pas tres "esthétique", je pense que c'est une bonne base pour ce projet.
Le but est de pouvoir commander le robot dans toutes ses actions à partir d'un PC fixe, mais aussi, à terme, de voir ce qu'il accompli de lui meme.
Première étape: le logiciel embarqué
J'ai choisi , à l'origine, de partir sur du non temps réel, car le temps réel me paraissait inutile.
Néanmoins, étant à la seconde version de mon projet, j'ai décidé de passer en temps réel pour avoir plus de réactivité de la part de certaines taches, et aussi pour gérer de manière précise chaque tache.
J'ai choisi Xenomai, apres avoir essayé RTAI, car celui-ci me parait plus facile d'acces, et grace à son systeme de skins, permet d'utiliser les fonctions VxWorks, par exemple.
J'ai X taches:

- Tache de communication avec le PC hote sur lequel est situé l'IHM, qui gère justement cette communication. Cette tache est en temps réel, périodique de période 150 ms, et de forte priorité. Elle doit préempter les autres taches, car je veux traiter toutes les demandes de l'utilisateurs devant son PC le plus prioritairement possible.

- Tache "IA", qui décide quoi faire à quel moment. De faible priorité, non temps réel, pour l'instant, existe, mais je n'ai rien mis dedans.

- Tache Acquisition/traitement vidéo. Pour l'instant, non temps réel, à cause des problèmes d'acquisition non temps réel, et des algos de durée variable...

- Tache de mouvements: non temps réel pour l'instant, mais ca va tarder! De forte priorité, pour tout préempter, périodique de période 200 ms -->200 ms de retard au pire. Je sais que les delais sont énormes, mais mon traitement vidéo prend beaucoup de ressources...L'idéal serait de le déporter sur FPGA ou DSP, mais ca constituerai un autre projet! Et mes algos n'étant pas tous au point, il me faut pouvoir les tester aisément avant...

- Enfin, ce n'est pas une tache, et je ne m'y suis pas du tout mis, mais je gèrerai les capteurs par interruptions/ microcontroleur...Si un electronicien est interessé pour programmer un peu sur PIC ou AVR, je ne refuse pas!!

Voila, mon avancement: le noyau temps réel tourne, mon appli aussi, la communication avec l'IHM est OK, la capture aussi...Je dois reprendre un paquet de fonctions développées pour la première version du projet, que l'on peut trouver sur la page: http://quibot.centerblog.net/

Enfin, j'ai recommencé à bosser sur mon interface. Dans la première version, elle était programmée en WxWidget, mais j'ai décidé de la refaire en java, pour des raisons de portabilité. J'explique tout ca dans le prochain post!

lundi 3 septembre 2007

Premier post

Bonjour, je me présente: je suis étudiant en troisième année d'école d'ingénieur, et passionné de robotique.
Je suis en train de concevoir un robot mobile, que je souhaite utiliser principalement pour du traitement d'images.
Pour l'instant, le projet est constitué d'une grosse partie logicielle, embarqué + IHM.
Je suis sur le point de créer une structure materielle.
Le modèle de robot est papero, robot de NEC: deux DDL pour la tete, et deux roues.
C'est largement suffisant pour obtenir des résultats intéressants.
Dans le prochain post, je présenterai la structure du soft embarqué.
 
Il y a actuellement personnes connectes Over-Blog dont sur ce blog