PC embarqué
Avant de parler d'intelligence (IA) ou de programmation il faut penser au support : un système à la fois suffisamment petit et autonome pour être embarqué, suffisamment puissant et souple pour travailler sans contraintes.
Dés lors plusieurs solutions s'offrent à nous : les cartes industrielles au format PC104, des cartes mini-ITX (proposées par Via, Intel ...), des microcontrôleurs couplés à des DSP ... Au final nous avons retenu une n-ième solution : un netbook !
Pourquoi un netbook ?
Celui-ci va au delà de nos besoins:
- petit: 28cm*20cm*3cm, il trône sans problème au sommet du robot.
- autonome: plusieurs heures sur sa propre batterie.
- puissant: Atom 1.6GHz.
- souple: c'est un PC x86 disposant de tous les périphériques utiles et d'un espace disque conséquent.
- simplicité de mise en place: une fois déballé il ne reste qu'à installer nos logiciels.
- le cout final: c'est un des plus faibles comparé aux autres solutions.
Merci CowCotLand !
CowcotLand est un site dédié à l'actualité, tests et guides informatique. Nous le remercions par avance pour le soutien matériel qu'il nous apportera pour les Coupe de France et d'Europe 2009 en nous fournissant un netbook.
Utilisation
Le NetBook sera la brique centrale du robot. Ses principales fonctions seront :
- la vision à l'aide d'une webcam
- la prise de décision
- le contrôle des différents périphériques (motorisation, actionneurs …)
La vision
La vision est assurée par une webcam USB. Nous avons retenu l'E3500 de Logitech pour sa compatibilité avec le driver UVC intégré au noyau Linux et pour son rapport qualité/prix.
L'analyse et le traitement d'image sont réalisés en C/C++ à l'aide de la librairie OpenCV. Cliquez-ici pour en savoir plus.
Prise de décision
L'intelligence artificielle (IA) est entièrement réalisée en JAVA. La forte modularité de la programmation objet, le multithreading et la portabilité nous ont poussés à utiliser JAVA comme langage de l'IA.
Contrôle des périphérique
Une classe JAVA nous permet de communiquer aisément avec notre interface USB-I2C. Dés lors il est possible d'interroger et de contrôler l'ensemble des périphériques présents sur le bus I2C.
Le système d'exploitation
Nos développements sont réalisés afin de fonctionner sur différents systèmes. Cependant pour des raisons de fiabilité, cout et facilité de développement nous avons retenu un système à base de noyau Linux.
Parmi les différentes distributions Linux nous avons retenu Debian et Ubuntu. Leur grande similitude permet de passer de l'une à l'autre facilement tandis que leur large communauté assure une évolution constante.
Grâce au netbook nous disposons d'un moyen simple de configurer le robot avant un match. Avant un match l'écran permet d'afficher les différents paramètres et de les vérifier très rapidement. Durant les phases de développement nous pouvons visualiser ce que capte la webcam ou utiliser une IDE telle que NetBean ou Eclipse. L'environnement graphique retenu est Gnome.