mercredi 5 décembre 2007

Here is the interface, I try to show what I did...I am still programming, its not finished, this is why there are some problems...it could be called a pre-alpha version^^

Sorry for the princes of the Universe, but I'm too lazy to get another shot...^^
Today, I'm going to explain how my interface is programmed...
Or, at least, how the "mouvement" frame is programmed....
I created 1 class Project, 1 class sequence, 1 class position.
The class project has a field sequence[], and each sequence has a field position[].
I can add, remove, move, a position in a sequence. (A sequence corresponds to a sequence of positions).
I can create a new project, and choose the architecture of the robot, and the number of motors. It will create the right number of spinners, and everything to control exactly the number of motors.
When I want to create a new sequence, i have 2 solutions:
- selecting the position of every motor with the spinners
-positioning manually the motors , and getting their positions (I will use the dynamixels)

I also created a panel to configure the motors, their max torque, min/max position, their mode, communication speed, and other options I can choose with dynamixels

As usually, I want to create an interface for many different architectures.
When I choose the architecture while I create a project, it will place the spinners to the right place, in order to correspond as much as possible to the robot.


Now, I still have to finish this part of the interface...
I know that the generated movements will not be "graceful", but I think I will develop some algorithms to go from one position to an other, given sensors, and the positions I decided...Some "semi-autonomous" dynamic walk...


An other interesting point is that I bought an USB2Dynamixel, and I checked, it works with Linux! I am going to use it , before creating my own device...

After all that things, or in the same time, I will make some experiments with an Atmel board, I met somebody during an exhibition, who agrees to give me a development kit during 6 months! The board will be based around one of the latest SAM...

lundi 3 décembre 2007


Hi,
just a new shot of the interface, I have no time to explain everything I did, but maybe, in the next days, I will try to do it...

dimanche 11 novembre 2007

Hi! new post...
Next week, I have to present a thesis topic in front of my lab's members, so I had no time to develop....
However, since my interface is becoming "mature", I thought about next step.

I bought a servomotor from bioloid, I'm waiting for it now. I bought it because I wanna know what is possible to do with such a motor.
I also went to akihabara, to buy an AVR programmer, because I want to start the electronic part of the project (about sensors...).
Akihabara is a very good place, i spent about 1 hour before finding a good shop.
Moreover, it is not very expensive, maybe thanks to low taxes...(?)
I bought an AtMega32, with MAX232 to communicate with a computer.
This is mainly to make experiments with AVR. I already tried to program PIC, and I can say it is quite easier with AVR family. I use AVR-GCC to program in C, because I have no time to learn assembler language...
In 2 hours, i succeeded to set up every thing, and to load and execute a code (switching a led on and off...).
Next step is to communicate with my laptop by RS232 port. I hope it will be easy.
Oh! Since I had no power supply, i use a USB port to get the 5v. It can work because the consumption of AVR is very low...
So, next time, RS232!

I also thought about a global architecture for sensors, motors, ...
But this is for the next post^^

mercredi 7 novembre 2007

mardi 30 octobre 2007

news

Hi,
now, i think I will write my blog in english, so that more people can understand.
If i have enough time, i will translate the first posts.
As a summary, I'm developing a embedded software for a robot, + an interface. The embedded software runs under RT Linux, Xenomai. And the interface is written in Java, for portability.
Both communicate with sockets. The photos you can see on the previous post represent my "robot". In fact, it can only move the head. I already tried to build a more complete robot, but it is too complicated, and I have no time. The most important for me is the software and the interface.
My goal is to create a new project about robotics. In fact, It's not only robotics, it's also domotic, but both are quite linked. My idea is to create a kind of interface between us and ...technology. I know that the idea already exists. You can look for papero on the web, I got inspiration from this robot. Nevertheless, papero has a constant architecture, and is VERY expensive. But i think the idea is very interesting...
I build a robot like papero, because it was easy to do so, but I think the most important think is to create a common software for lots of different types of robots, and "patches" for specific use.
I fact, I also wanted to build this robot for a educational purpose, because I want to experiment with algorithms, especially vision-based algos.
I recently moved to Japan, so i had no time for developing, but now, I'm re-starting the project.
I choose Java for portability, because if people are interested in this kind of project, it's easier to share code source with java.

Now, I can't use my board, because i need a power supply, and there is none here...So i'm trying to improve the interface.
The two last steps were to create an alarm clock and a .ics reader for setting alarms when needed.
The phot represents the software, connected to the embedded program (which captures video flow, and process it + send it to the interface if needed)
(The resolution is quite low, because I have some display problems linked to my real-time kernel, because i build it for my former PC...)

If you are interested in this project, or even in only one of its aspect, contact me, i would be pleased to answer U.

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