« PC embarqué » : différence entre les versions

De Pensée Profonde - Club de robotique
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(7 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
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.  
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  [http://en.wikipedia.org/wiki/PC/104 PC104], des cartes  [http://en.wikipedia.org/wiki/Mini-ITX mini-ITX] (proposées par Via, Intel ...), des micro-contrôleurs couplés à des DSP ... Au final nous avons retenu une n-ième solution : un [http://fr.wikipedia.org/wiki/Netbook netbook] !  
Dés lors plusieurs solutions s'offrent à nous : les cartes industrielles au format  [http://en.wikipedia.org/wiki/PC/104 PC104], des cartes  [http://en.wikipedia.org/wiki/Mini-ITX 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 [http://fr.wikipedia.org/wiki/Netbook netbook] !  




Ligne 11 : Ligne 11 :
* souple: c'est un PC x86 disposant de tous les périphériques utiles et d'un espace disque conséquent.
* 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.
* simplicité de mise en place: une fois déballé il ne reste qu'à installer nos logiciels.
* le cout final: c'est un des plus faible comparé aux autres solutions.
* le cout final: c'est un des plus faibles comparé aux autres solutions.




=Merci CowCotLand !=
="The One" - Merci CowCotLand !=
[[Image:Cowcotland.png|right]]
[[Image:Cowcotland.png|left]]
[http://www.cowcotland.com/ 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.<br clear="all" />
[[Image:AspireA110aw.jpg|right|200px]]
[http://www.cowcotland.com/ CowcotLand] est un site dédié à l'actualité, tests et guides informatique. Nous le remercions pour le soutien matériel qu'il nous apporte pour les Coupe de France et d'Europe 2009 en nous fournissant un [http://www.acer.com/aspireone/ netbook ACER Aspire One A110aw].
 
Cette machine est équipée d'un ATOM 1.6gHz, de 512mo de ram, 8go de SSD et d'un écran 8.9p d'une résolution de 1024*600. Le tout dans un boitier de 240x195x36mm et un peu moins d'un kilo. Autant dire qu'il rentre parfaitement dans le robot et nous donne une puissance plus que raisonnable.
 
Et si "The One" vous intéresse consultez le [http://www.cowcotland.com/articles/317/test-netbook-acer-aspire-one.html test de CowCotLand] !
<br clear="all" />




Ligne 24 : Ligne 30 :
* la prise de décision
* la prise de décision
* le contrôle des différents périphériques (motorisation, actionneurs …)
* le contrôle des différents périphériques (motorisation, actionneurs …)
Bien sur il est possible de réaliser  toutes ces tâches à l'aide d'une électronique dédiée. Cependant les coûts de développement sont élevés: temps, argent, connaissances… 
<br />L'utilisation d'un PC "classique" permet de réduire énormément ces coûts. Nous disposons ainsi:
* d'une plateforme standard, facilement interchangeable et évolutive.
* de logiciels ayant un niveau professionnels: Linux, OpenCV, GCC, Java, NetBeans …
* de périphériques déjà intégrés ainsi que de larges possibilités d'évolutions: webcam, wifi, écran/clavier/touchpad, bluetooth …


[[Image:Netbook-map.png]]
[[Image:Netbook-map.png]]
==La vision==
<div style="float: right;"><youtube>croChH-If_U&hl=fr&fs=1&color1=0x2b405b&color2=0x6b8ab6&border=1</youtube></div>
La vision est assurée par une webcam USB. Nous avons retenu l'E3500 de Logitech pour sa compatibilité avec le driver [http://linux-uvc.berlios.de/ UVC] intégré au noyau Linux et pour son rapport qualité/prix.
Nous ajoutons un filtre IR devant la webcam. Il nous protège des projecteurs utilisés lors des compétitions.
L'analyse et le traitement d'image sont réalisés en C/C++ à l'aide de la librairie OpenCV. [[Vision_OpenCV|Cliquez-ici pour en savoir plus.]]
<br clear="all" />
==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ériques==
Une classe JAVA nous permet de communiquer aisément avec notre interface [[PC-I2C|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=
<div style="float:right;">
<gallery>
Image:Debian-logo.png|[http://www.debian.org/ Debian]
Image:Ubuntu-logo.png|[http://www.ubuntu.com/ Ubuntu]
Image:Gnome-logo.png|[http://www.gnome.org/ Gnome]
</gallery>
</div>
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 [http://www.debian.org/ Debian] et [http://www.ubuntu.com/ 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. 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 [http://www.gnome.org/ Gnome].
Même si un netbook est très proche d'un PC classique il reste en tête des machines capricieuses. L'utilisation d'un SSD à la place du disque mécanique, d'une carte son et wifi spéciales, de lecteurs de cartes intégrés ... On se retrouve vite à devoir bricoler la configuration des distributions Linux ou recompiler des modules.
Ajoutez à cela un écran, un touchpad et un clavier aux dimensions réduites. Il n'en fallait pas plus pour que soit développées des versions "orientées netbook" des distributions Linux. Notre choix s'est porté sur Linux4One, basée sur Ubuntu 8.04 avec Ubuntu NetBook Remix et tout particulièrement configurée pour l'Aspire One.
=Notre configuration=
La configuration finale de notre Aspire One est le résultat:
* de notre expérience. Cela reste un PC tel que nous en utilisons quotidiennement.
* de nos besoins "spécifiques". Faire tourner un serveur de vision, une IA en java, développer ...
* des articles provenant des communautés Ubuntu, AspireOne ...
* d'une série de tests. Différents réglages, différentes options ... et beaucoup de temps.
Si vous désirez en savoir plus, rendez-vous sur cette page: [[Configuration Aspire One]].

Version actuelle datée du 1 mars 2009 à 13:41

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.


"The One" - Merci CowCotLand !

Cowcotland.png
AspireA110aw.jpg

CowcotLand est un site dédié à l'actualité, tests et guides informatique. Nous le remercions pour le soutien matériel qu'il nous apporte pour les Coupe de France et d'Europe 2009 en nous fournissant un netbook ACER Aspire One A110aw.

Cette machine est équipée d'un ATOM 1.6gHz, de 512mo de ram, 8go de SSD et d'un écran 8.9p d'une résolution de 1024*600. Le tout dans un boitier de 240x195x36mm et un peu moins d'un kilo. Autant dire qu'il rentre parfaitement dans le robot et nous donne une puissance plus que raisonnable.

Et si "The One" vous intéresse consultez le test de CowCotLand !


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 …)

Bien sur il est possible de réaliser toutes ces tâches à l'aide d'une électronique dédiée. Cependant les coûts de développement sont élevés: temps, argent, connaissances…
L'utilisation d'un PC "classique" permet de réduire énormément ces coûts. Nous disposons ainsi:

  • d'une plateforme standard, facilement interchangeable et évolutive.
  • de logiciels ayant un niveau professionnels: Linux, OpenCV, GCC, Java, NetBeans …
  • de périphériques déjà intégrés ainsi que de larges possibilités d'évolutions: webcam, wifi, écran/clavier/touchpad, bluetooth …


Netbook-map.png


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.

Nous ajoutons un filtre IR devant la webcam. Il nous protège des projecteurs utilisés lors des compétitions.

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ériques

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. 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.

Même si un netbook est très proche d'un PC classique il reste en tête des machines capricieuses. L'utilisation d'un SSD à la place du disque mécanique, d'une carte son et wifi spéciales, de lecteurs de cartes intégrés ... On se retrouve vite à devoir bricoler la configuration des distributions Linux ou recompiler des modules. Ajoutez à cela un écran, un touchpad et un clavier aux dimensions réduites. Il n'en fallait pas plus pour que soit développées des versions "orientées netbook" des distributions Linux. Notre choix s'est porté sur Linux4One, basée sur Ubuntu 8.04 avec Ubuntu NetBook Remix et tout particulièrement configurée pour l'Aspire One.


Notre configuration

La configuration finale de notre Aspire One est le résultat:

  • de notre expérience. Cela reste un PC tel que nous en utilisons quotidiennement.
  • de nos besoins "spécifiques". Faire tourner un serveur de vision, une IA en java, développer ...
  • des articles provenant des communautés Ubuntu, AspireOne ...
  • d'une série de tests. Différents réglages, différentes options ... et beaucoup de temps.

Si vous désirez en savoir plus, rendez-vous sur cette page: Configuration Aspire One.