Comme ce projet avance par étapes, je me propose d’en relater les avancées ici. Eh oui, c’est finalement assez complexe, et ça mérite quelques éclaircissements. Il ya :
Le hard
le logiciel bas niveau
les processus LAN
du temps réel
l’interface WEB
de la compression
des stockages et transmission de données
Actuellement (novembre 2009), le hard est posé dans les grandes lignes; mais pas complètement arrêté. La clock RTC sera matérialisé par un DS1307, une pile, un quartz. La commande de triacs sera fortement inspirée d’une interface de Franic (merci Laurent!).
Les couches logicielles assez bien définies; toutefois, c’est la partie qui risque de subir les plus grand changements – même si le hard est terminé! Chacun pour
clock et datas
ra peaufinner son interface WEB. Pour cela, il faudra une bibliothèque bien établie de tags, et de modules en Javascript. Et de modules en C, bien sûr.
Le tout est téléchargeable ici: http://yves.masur.microclub.ch/articles/
Ce n’est pas vraiment un article, mais il y a: le code source, les pages WEB, et deux documents au format pdf. “MXBOARD_decouverte” présente les différentes facette de cette plateforme, alors que “barette” est le cahier des charges – qui se transforme en cahier de réalisation petit à petit.
Wireshark 1.2.4 (stable) has been released – ça fait plaisir! Enfin on peut utiliser cet analyseur de réseau sous Windows 7. Et il s’installe sans coup férir (32 bits – je n’ai plus la 64 bits…)
En effet, pour le projet “Barrette écologique”, j’avais besoin de sniffer ce qui se passe entre le module MXBOARD. Jusqu’ici, je devais passer par le débugger et voir ainsi les trames reçues/envoyées, via ligne série!
Le but est de trouver une requête régulière que ferait un PC, pour lancer un timer de prolongation de durée de l’enclenchement du secteur.
“Roadrunner” peut effectuer 1 petaflops, soit un million de milliards d’opérations arithmétiques par seconde et vaut des millions d’euros. Vous pouvez aujourd’hui assez facilement disposer dans votre PC du millième de cette puissance pour quelques centaines d’euros seulement.
En effet, les processeurs graphiques “GPU” récents sont formés de centaines d’unités de calcul en flux assez semblables aux 8 SPU du Cell. Initialement dédiés à la génération d’images réalistes en 3D temps réel et limités au calcul en virgule fixe, les GPU sont devenus capables d’exécuter certains programmes en virgule flottante beaucoup plus rapidement que sur les processeurs classiques : c’est le calcul générique sur GPU (GPGPU).
Suite à la présentation d’Aseba par Stéphane Magnenat, je me suis attaqué à la programmation d’un robot mobile pour le “Challenge”. Voici le résultat d’un duel de deux exemplaires partageant le même code:
Si vous voulez vous y mettre et tenter de battre mon robot :
lancez asebachallenge et créez 2 robots : un “Goulu” et un pour vous
lancez asebastudio.exe, connectez vous au port 33333 (par défaut), coupez/collez mon code ci-dessous et cliquez [Charger] puis [Executer] : mon robot démarre. fermez asebastudio
relancez asebastudio.exe, connectez vous au port 33334 et programmez votre robot. Si vous battez le mien, mettez votre code dans un commentaire, ça m’intéresse
var gains_R[3]=1,0,-1
var gains_B[3]=-1,0,1
var speed=0
var turn=0
var turn_R=0
var turn_B=0
var mode=1
onevent timer
if mode==1 then #forward
speed=(camB[1]-camR[1])/5
call math.dot(turn_R,camR,gains_R,3)
call math.dot(turn_B,camB,gains_B,3)
turn=turn_R+turn_B
leftSpeed=speed+turn
rightSpeed=speed-turn
if leftSpeed<2 and rightSpeed<2 then
mode=2
colorB=255 #follow me
colorR=0
colorG=0
end
elseif mode==2 then #rotate
leftSpeed=-max_speed/3
rightSpeed=-max_speed
speed=(camB[1]-camR[1])/8
if speed>5 then
mode=1
colorB=0
colorR=255 #avoid me
colorG=0
end
end
Pour rappel et pour publicité j’ai traduit en français la description d’Aseba figurant sur la page de l’EPFL :
Aseba est une architecture basée “événements” pour la commande distribuée des robots mobiles. Il cible les robots intégrant plusieurs processeurs, ou des groupes d’appareils mono-processeurs pour autant qu’il communiquent par un réseau. Le coeur d’Aseba est une machine virtuelle légère, assez petite pour tourner sur un microcontrôleur. En Aseba, on écrit les comportements du robot dans un langage de script. Ceci se fait dans un environnement de développement tournant sur un PC. L’environnement permet de compiler, déployer et déboguer les comportements en temps réel. Aseba s’applique dans plusieurs contextes:
Dans des robots à multiples microcontrôleurs, Aseba permet de tirer parti de la puissance des microcontrôleurs pour atteindre une modularité hardware, une faible latence entre perception, et une utilisation économique de la bande passante du bus. De plus, son langage facile à comprendre permet l’écriture rapide de comportements du robot (article IROS 2007).
En robotique collective, Aseba accélère le processus de développement en permettant des modifications instantanées du code ainsi que le déboguage en parallèle de tous les robots (article SIMPAR 2008).
Dans l’éducation, la facilité d’apprentissage du langage Aseba, son environnement de programmation user-friendly , et le plaisir de faire bouger un robot apportent une approche originale à l’enseigement et à l’apprentissage de la programmation (article FNG 2008).
Aseba est “open source” et tout le monde peut l’utiliser et le modifier gratuitement tant que l’on respecte la licence (GNU General Public License version 3).
Pour en savoir plus sur Aseba, regardez la presentation ou lisez les articles sus-mentionnés.
Pour ceux qui ne l’auraient pas vue, voici une vidéo assez spectaculaire du “robot bibliothécaire” en cours de développement dans ce labo :
Le Microclub est le meilleur club d'informatique de Suisse Romande. Fondé à l'EPFL en 1976, il est aussi le plus ancien de Suisse, peut-être d'Europe, voire du Monde !
Si vous êtes membre, vous avez le droit de publier des articles sur ce blog, d'y référencer votre site perso et d'y incorporer votre flux RSS ! Voici comment faire.
Commentaires récents