MatérielNotre robot est principalement composé de deux cartes électroniques : la première à base de PIC32 est chargée de piloter les actionneurs (moteurs) et de lire les informations fournies par les capteurs. La seconde carte est un Seagate Dockstar c'est un produit qui est à l'origine destiné à servir de dock réseau pour disque dur. Il s'agit d'un Marvell Kirkwood à 1,2 GHz (ARM9) avec 128 Mo de RAM et 256 Mo de flash.Ces deux cartes communiquent à l'aide d'une connexion ethernet. L'ARM est responsable de la stratégie et envoie ses requêtes au PIC32 qui est chargé de piloter le robot en conséquence. Ceci nous permet de développer la stratégie à Strasbourg et l'informatique bas niveau à Lyon en n'ayant qu'un protocole simple entre les deux entités. LogicielLe code présenté ici concerne la stratégie embarquée sur la carte ARM.Nous avons choisi de développer un maximum de code en Python principalement parce que nous sommes très à l'aise avec ce langage et qu'il permet de développer très rapidement. Pour les outils graphiques, nous utilisons le framework Qt à travers les bindings PyQt. Nous faisons l'hypothèse que ces programmes seront exécutés sur un système Unix (Linux ou Mac OS X). Ils fonctionnent mal ou ne fonctionnent pas sous Windows bien qu'il soit tout à fait possible de les adapter pour ce système. Visualiseur de logsTous les évènements qui transitent entre les deux cartes sont loggées dans un fichier.Ce module nous permet d'inspecter un log et d'en filtrer le contenu afin de savoir ce qu'il s'est passé en cas de dysfonctionnement. Il nous permet également de voir la trajectoire demandée et réelle du robot sur le terrain. SimulateurC'est l'un des composants les plus importants de notre infrastructure. Il nous permet de tester le code de la stratégie de sans avoir le matériel (avant même qu'il ne soit construit !). Ce simulateur se comporte comme une carte PIC32 et nous permet d'exécuter la stratégie. La visualisation graphique nous permet de vérifier que le robot se comporte comme voulu.Linux embarquéNous construisons notre propre linux embarqué à l'aide de Buildroot. Ceci nous permet d'avoir un système minimaliste taillé à nos besoins sans superflu. Le système utilisé en 2012 consommait 5 Mo de RAM une fois chargé et disposait entre autre des outils suivants:
Code Open Source |
Robotique >