Home
        Projet SCOR — Bilan Table des mati`eres 1 Démarche
         Contents
1.     11    Le shoot correspond en fait    intercepter et ensuite tirer dans la balle pour le robot le  plus proche  le second allant se replacer     Pour transmettre ses ordres aux robots  l intelligence artificielle utilise la classe RobotIA  pour calculer les points que les robots doivent atteindre  en coordonn  es absolues  puis  transmet ce point ainsi que la position et l   orientation du robot concern      la t  che qui le  contr  le via une bo  te aux lettres     6 Bilan    La fin du projet a amen   son lot de d  ception  puisque nous ne sommes pas parvenu     aboutir    une solution fonctionnelle  Cela d  coule de notre id  e de vouloir repartir de  rien  ou presque  et aboutir    des solutions robustes  Nous avons donc fait beaucoup  d exploration  dont une certaine partie n   a toutefois pas   t   vaine  Nous esp  rons   galement  que certains morceaux de notre travail pourront servir de blocs de base pour des projets  futurs  c   est en tout cas dans cette optique qu   ils ont   t     crits    La fin de projet que nous avons constat  e est le r  sultat des choix de gestion de projet  que nous avons fait  C   est l   un r  sultat inattendu de ce projet qui pr  tendait ne pas nous  charger avec la gestion de projet ch  re aux projets de conception 5IF  G  rer un projet sur  une dur  e importante  nous avons commenc   t  t  est l   occasion de se casser les dents  ce  qui est bien plus formateur que de se laisser guider comme c   est d ordinaire le cas    Techniquement
2.  Webcam    Il a   t   mentionn   plusieurs fois dans les rapports des ann  es pr  c  dentes que la faible  r  solution de la capture vid  o emp  chait peut   tre d effectuer des analyses fines de l   image   Nous avons exp  riment   cette voie pour r  aliser une capture de plus grande taille que les  640 par 480 fournis par d  faut  Il se trouve que cette r  solution est fix  e en dur  dans le  fichier modules highgui src cap_v4l cpp des sources de OpenCV  Comme il a   t   mentionn    plus haut  l interface    la Webcam que fournit GNU Linux est VideodLinux  OpenCV  poss  de deux interfaces pour utiliser Video4Linux  celle qui fixe la r  solution  cap_v l cpp   et une autre  cap_libu l cpp  dans le m  me r  pertoire  qui utilise la biblioth  que libv4l   Nous avons tent   d utiliser OpenCV avec cette derni  re  sans grand succ  s  m  me s   il faut  admettre que nous n   avons pas   t   tr  s tenaces  OpenCV supporte d     tre utilis   avec des  donn  es import  es par ailleurs  nous avons donc utiliser l   interface VideodLinux  dans sa  version 2  directement    Cette interface est tr  s bien document  e  ce qui nous a permis d obtenir de bons r     sultats tr  s rapidement  Entre autres choses  elle permet d interroger la cam  ra sur ses  capacit  s  ce qui nous a rendu la vie facile  Le code d   interrogration est encore disponible  dans le fichier Acquisition CameraHanider viltest cpp des sources de notre projet  La  fonction main   demande un peu de remaniement  mais le
3.  le projet a   t   l   occasion de nous initier    la vision par ordinateur      Video4Linux et    l interface du noyau Linux pour les lignes s  rie  Il a   t   l   occasion  d architecture un projet de taille relativement importante et de le r  aliser    Notre organisation du travail a   t   assez libre   chacun a travaill   sur la partie qui  l   int  ressait  avec un recadrage r  gulier  La branche principale du projet a toutefois   t    administr  e exclusivement pas le chef de projet  ce qui a permis de garder une certaine  coh  rence de l   ensemble  Enfin  notre m  thode de d  veloppement nous a permis de toujours  conserver un ensemble fonctionnel pour un sous ensemble de fonctionnalit  s   la partie  g  nie logiciel a plut  t bien fonctionn       12    
4.  lire l   image proprement dit et de l   analyser  c   est    dire  en d  gager les positions et l orientation des robots et la position  la vitesse et la  direction de la balle     Le contr  le des robots  Il existe une t  che par robot  qui le pilote  Au plus bas niveau   elle lui envoie des commandes qu   il est capable de comprendre  Nous avions   galement  en projet qu   elle r  alise un asservissement en position du robot     L intelligence artificielle  Il s   agit de la composante strat  gique qui    tant donn  s les  r  sultats de l   analyse d image  produit des ordres pour les robots     Graphiquement  cela donne la figure  i  Si abstraction est faite du shell     encha  nement  naturel acquisition     intelligence artificielle     robot appara  t              Intelligenc    Shell       Acquisition Vid  o                    FIGURE 1     L architecture en t  ches de notre solution     4 1 Communication entre T  ches    Les communications entre le shell et les autres t  ches sont r  alis  es    l   aide de bo  tes     lettres  puisqu elles constituent un canal avec historique  La communication entre lintel   ligence artificielle et le contr  leur de robot se fait   galement par bo  te    lettres  La raison  initiale   tait que le destinataire   tait suppos   consommer les messages bien plus vite qu   il  ne les recevait  Notre essai d   asservissement nous a montr   l   inverse  Nous y revenons plus  bas    Enfin  nous n avons  cette fois ci  pas voulu faire d   hypo
5.  nous avons commenc   par   crire les composants de plus  bas niveau avant de s   atteler aux suivants  Pour ce faire de fa  on constructive  il a   t    n  cessaire de mettre en place l   infrastructure n  cessaire au test     ceci s ajoute un constat  d     chec lorsque nous avons voulu lancer pour essai le programme des vainqueurs de l   ann  e  pr  c  dente   nous ne savions pas comment l   ex  cuter et son ex  cution sans param  tre a  abouti    une erreur de segmentation    Nous avons donc con  u une interface de type shell pour contr  ler individuellement les  fonctionnalit  s de notre programme  Ce shell se veut en partie auto document       l   aide  du drapeau  h que supporte l   ex  cutable et de la commande help de notre shell  une  fois celui ci lanc    Le shell est la seule interface au programme et  dans notre conception  initiale  devait   tre seul    contr  ler l affichage dans le terminal  En pratique  la convention  a subi des exceptions pour les traces de mise au point  Le shell est   galement scriptable     10    R  f  rences aux sources   Shell   Il est globalement r  utilisable en l     tat  Attention    toutefois  pour ajouter ou supprimer une commande  il est n  cessaire de modifier la d  cla   ration  Shell Shell h  et la d  finition  Shell Shell cpp  du tableau cmds     Pistes d   am  lioration  En l     tat actuel  le shell est une grosse classe  Son impl  menta   tion se r  partit sur plusieurs fichiers  mais il est mono bloc au niveau logique  Il
6.  pourrait    tre int  ressant de mettre dans des classes s  par  es  dont des instances seraient membres  de Shell  les m  thodes de gestion de l   acquisition vid  o  de l intelligence artificielle et les  contr  leurs de robot  Une am  lioration utile serait de corriger les br  ches de l   encapsula   tion du contr  le du terminal par le shell en mettant au point un m  canisme de journal   dans des fichiers par exemple  Cela rendrait aussi plus exploitables les traces  Enfin  il  faut pour l instant lanc   la t  che concern  e pour tester une fonctionnalit    par exemple   lancer la t  che acquisition pour analyser des images   Pour tester une fonctionnalit   bien  pr  cise  une ex  cution multi processus n   est sans doute pas n  cessaire  S   il existe un moyen  simple de pouvoir lancer des m  thodes directement depuis le shell  il pourrait   tre int     ressant de l   exploiter  Utiliser un vrai outil pour l   analyse syntaxique des commandes est  r  solumment n  cessaire     5 3 Le Contr  le du Robot    La premi  re chose que nous avons faite sur ce projet a   t   de faire en sorte de com   muniquer correctement avec le robot  Nous avons pour ce faire corriger quelques erreurs  dans le param  trage de la ligne s  rie qui sert    dialoguer avec le robot  Cela a abouti    la  classe Khep  Khep Khep h  que nous n   avons pas eu besoin de retoucher par la suite       la fin du projet  nous avons d  cid   de mettre un peu d   intelligence dans cette t  che et  de la rendre c
7.  ro     y    gtk enat    y    gtk butt       Menu FE   Acquisition    video cpp    Burea m mew img m mask   fieldimg DEF ven  13 janv  15 20 e    o    FIGURE 4     Les diff  rentes   tapes de la d  tection du terrain     pertinents  Remonter dans le temps pose n  anmoins des probl  mes dans la mesure o    consid  rer deux positions pour calculer une vitesse  l   une avant un impact et un rebond et  l   autre apr  s  va donner des r  sultats aberrants    Nous avons utilis   une m  thode qui consiste    utiliser deux points pour calculer la  direction et la vitesse  Le premier est le position de la balle dans l   image que nous sommes  en train d analyser  Le second est la position de la balle    un instant t dans le pass    distant  de moins d   une demie seconde  En plus de cette condition  ce point     doit   tre tel que   si on nomme p    le point dans l   image que nous sommes en train d   analyser  p   le point  de l   image imm  diatement pr  c  dente et ainsi de suite jusqu      pn  la relation suivante est  v  rifi  e     n   1l  X pipi 1    1       pobn  0  L id  e sous jacente est qu   on s   autorise    remonter dans le temps tant que la balle conserve  la m  me direction  En pratique  nous avons pris       0 1     R  f  rence aux sources   Acquisition ballFinder h et Acquisition ballFinder cpp  La  classe est tout    fait r  utilisable en l     tat     Pistes d   am  lioration  L analyse  pour l instant  est r  alis  e sur une repr  sentation  RGB de l   image  Le 
8.  s   inscrit pas    notre effort de rendre  les algorithmes moins d  pendants des couleurs  Nous avons repris exactement la m  me id  e  que les ann  es pr  c  dentes pour d  tecter la balle   elle est consid  r  e comme se trouvant  au barycentre des pixels rouges du terrain  Si  pour un pixel p repr  sent   en RGB  les  fonctions R p   G p  et B p  repr  sentent chacune de ses composantes  un pixel rouge est  un pixel p qui v  rifie      R p   gt  G p    seuil et R p   gt  B p    seuil    En pratique  nous avons pris une valeur de seuil    100    L   o   le code d   origine r  alisait un masque pour obtenir une image binaire  puis r  alisait  le barycentre sur cette image binaire  nous ne faisons qu   une seule passe en r  alisant le  barycentre sur les pixels rouges directement     R  f  rence aux sources   Acquisition ballFinder h et Acquisition ballFinder cpp  La  classe est tout    fait r  utilisable en l     tat     5 1 4 D  placement de la Balle    La d  termination de la vitesse et de la direction de la balle requiert de conserver un  historique de points  Nous n   avions aucune id  e du nombre d   images que nous pourrions  traiter par seconde lorsque nous nous sommes pench  s sur cette partie  L   algorithme devait  consid  rer des positions de la balle suffisamment   loign  es pour que les calculs restent       rotation sur ce dernier  nous avons choisi    pour avoir des   quations de droite dont les coefficients ne sont    4  ni trop grands  ni trop proches de z 
9. Projet SCOR     Bilan    Alexis Fouilhe  Quentin Legrand et Charlotte Simonnet    19 f  vrier 2012    Table des mati  res    1  2   tat des Lieux en Fin de Projet 2  3 Environnement et Mode d Emploi 2  gl OpenCV ea des LIAISON MER RN NE AR am AN Een a 2  3 2  COMPIATION   ees e      ue du A D dun ua anna alu dl an LE 3  3 3 Lancer l   Ex  cutablel                                  3   4 Architecture 3  4 1 Communication entre T  ches                             4   5 D  tail des Composants 4  5 1 L   Acquisition Vid  o                                 4  5 1 1 Utilisation de la Webcam                           5   5 1 2 D  tection Automatique du Terrain                     5   5 1 3 Position de la Balle                               7   5 1 4 D  placement de la Balle                           7   5 1 5 Position des Robots                             9   D2 Le Shell coa am e RE SIA RIT AN NI a a E E E NUE a 10  5 3 Le Contr  le du Robot                                11  5 4 Intelligence Artificiellel                                   11   12    Nous pr  sentons ici notre retour sur exp  rience sur le projet SCOR  Pour rappel  cela  consiste en faire s   affronter deux   quipes de deux robots  pilot  s de fa  on automatique     l   aide d informations fournies par une Webcam  Le jeu ressemble sensiblement    Pong et  se joue avec une balle  Une description plus d  taill  e est disponible sur le site Web du  projet    Ce rapport a   t     crit apr  s la fin du projet et m  ritera
10. Transform  e de Hough  Plut  t que de calculer sur des clusters sur une image de la   quelle ont   t   enlev  s un certain nombre de parasites  le fl  au  notamment   nous  avons essay   de r  aliser les deux filtrages pr  sent  s au d  but de cette longue partie     puis d   additionner les deux images binaires r  sultantes  L id  e ici   tait de reconsti   tuer les cercles de robots pour les rep  rer    l   aide de la transform  e de Hough  nous  affranchissant ainsi d enlever les parasites longilignes  Cela est peut   tre d      une  mauvaise compr  hension de l   algorithme  mais nous avons obtenu de nombreux faux  positifs  Peut   tre est il possible de s   en d  barraser ensuite  par exemple en cherchant  des lignes dans les cercles obtenus pour v  rifier que la ligne de s  paration entre blanc  et bleu s   y trouve bien  Nous ne sommes toutefois pas all  s si loin et avons abandonn    la piste     R  sultat des courses  La motivation de tout ce travail   tait     l   origine  de trouver une  m  thode d identification des robots plus robuste aux variations d   clairage  permettant    galement de s affranchir de la couleur bleue  Nous ne sommes pas sp  cialistes de l   analyse  d image  mais nos quelques essais n   ont pas vraiment abouti    quelque chose de fantastique   De fa  on assez ironique  la m  thode utilis  e les ann  es pr  c  dentes semble avoir   t   plus  robuste aux adaptations du terrain r  alis  es en fin de projet     R  f  rences aux sources  Acquisiti
11. ait    tre encore plus utile     5 1 2 D  tection Automatique du Terrain    Cette partie est particuli  rement complexe et sujette    l   clairage de la salle  En effet   la couleur du terrain n   est pas uniforme  Elle est tr  s claire au centre et fonc  e pr  s des  bords  Vous pouvez voir l   image transmise par la cam  ra sur la figure  2        FIGURE 2     L image de base sur laquelle nous travaillons     Pour d  tecter le terrain  nous cherchons    obtenir un masque binaire de l   image o   le  blanc repr  sente la couleur verte  le terrain  et le noir le reste  Pour ce faire  nous r  alisons  un seuil sur la couleur verte en HSV  Hue Saturation Value  qui est un espace de couleur    quivalent au RGB  C   est ici que les constantes de couleur sont tr  s arbitraires et surtout  ne sont pas identiques pour les deux cam  ras  Il serait bon d   envisager leur d  termination  de fa  on automatis  e    Une fois le masque binaire obtenu  une dilatation puis une   rosion sont appliqu  es  avec un rayon important pour homog  n  iser le terrain car nous avons besoin qu   il ne reste  aucun bruit sur celui ci  Graphiquement  cela donne la figure  3    Enssuite  nous cherchons le centre approximatif du terrain et nous remontons vers le  haut jusqu      trouver du noir     ce point pr  cis  nous sommes normalement sur le bord  sup  rieur du terrain  fronti  re blanc     noir   En prenant plusieurs points par bord  on  peut trouver un ligne qui correspond exp  rimentalement assez bi
12. apable d   asservir en position le robot  Par manque de temps  nous n   avons pas  trouv   de solution    ce probl  me  L   se trouve d   ailleurs la raison du non aboutissement  de notre projet  Entre autres choses  nous avons   t   confront  s au probl  me du temps    le calcul des consignes au vu des r  sultats de l   analyse d   image est bien trop rapide par  rapport aux d  placement des robots     R  f  rences aux sources   Khep   Dans ce dossier  seuls Xhep h et Khep cpp sont  r  utiliables en l     tat     Pistes d   am  lioration  Ce n   est pas r  ellement une am  lioration   il faut  dans nos     plans    tre capable d   asservir le robot en position     5 4 Intelligence Artificielle    L intelligence artificielle est relativement basique et est synchronis  e via un s  maphore  avec l acquisition pour effectuer un traitement apr  s chaque acquisition     chaque capture   elle copie le contenu de la m  moire partag  e qui contient la position  la vitesse et la  direction de la balle  ainsi que la position et l orientation des robots  puis elle   tablit une  strat  gie et transmet ses ordres aux robots    La strat  gie est   tablie sur deux crit  res         la position de la balle  est elle dans notre demi terrain ou non          la direction de la balle  va t elle vers nous ou vers les buts adverses      Elle consiste en deux actions envisageables        se replacer  les robots reprennent leur position d   attente       shooter  essayer tout du moins  dans le balle
13. en au bord r  el tant que  le masque du terrain est correct  c   est    dire sans trou     Avec cinq points par bord  nous calculons les   quations des quatre droites que suivent  les quatre bords gr  ce    une r  gression lin  aire  m  thode des moindres carr  s   Nous avons  parfois constat   des points aberrants  c   est    dire des points qui ne se trouvent pas sur  bord du terrain  Cela peut se produire en cas de discontinuit   dans ce dernier  Pour rendre  notre algorithme plus robuste    des erreurs de ce type  nous calculons en fait l   quation  de la droite que suit le bord du terrain pour chaque sous ensemble de quatre points des  cinq points que nous avons positionn  s pr  c  demment  Nous s  lectionnons l     quation qui  minimise la somme des distances ces quatre points    la droite  Le point qui ne fait pas  partie de sous ensemble est donc   cart         partir de ces quatre droites  on obtient facilement  la position des coins du terrain        1  enfin presque   les bords du terrain   tant presque parall  les aux axes du rep  re  il faut effectuer une       FIGURE 3     Le masque obtenu par seuillage de la couleur verte     Les fonctions de OpenCV getPerspective Transform   et warpPerspective   permettent en   suite de changer la perspective de l   image pour travailler sur un terrain rectangulaire   La figure  A  montre les diff  rents traitements appliqu  s successivement     5 1 3 Position de la Balle    Pour plusieurs raisons  la d  tection de la balle ne
14. er  grandement les traitements     3 Environnement et Mode d Emploi    Notre solution est d  velopp  e en C    et utilise OpenCV et Video4Linux  Nous l   avons  test  e sur les deux machines de la salle o   se trouvent les robots  c   est    dire sur Ubuntu  10 10 et 11 04  La version 2 de VideodLinux a   t   utilis  e     3 1 OpenCV    Nous avons utilis   exclusivement l interface C   de OpenCV  Certains morceaux   KheperaFinder et BallFinder  ont   t   test  s avec OpenCV 2 2 0 et l int  gralit   a   t    test  e avec OpenCV 2 3 1a    Nous avions peu de connaissances en mati  re d analyse d image avant de d  marrer  le projet et OpenCV ne nous a pas aid   de ce point de vue  On ne trouve pas dans sa    documentation des m  thodes pour accomplir un but  seulement la description de briques  de base qu   il faut ensuite assembler    Une fois ceci compris  la biblioth  que est d   utilisation ais  e  Il a   t   n  cessaire  par  contre  d utiliser des tutoriaux ou de plonger dans des livres sur l   analyse d   image et la  vision par ordinateur     3 2 Compilation    Pour compiler notre projet  il suffit de lancer make    la racine de son arborescence   Attention toutefois aux conflits entre versions d    OpenCV  Plusieurs versions sont instal   l  es sur les postes et ce     plus endroits  Nous avons eu besoin de compiler notre propre  OpenCV  d   o   le chemin vers OpenCV dans mk rules mk  Par facilit    nous avons n  an   moins mis les biblioth  ques binaires dans le chemin 
15. ex   tr  mit  s de l   adh  sif se d  tache et ne forment pas une ligne  La solution que nous  avons retenu est de r  duire la zone de recherche    notre moiti   du terrain en commen     ant juste apr  s la bande d   adh  sif  Cette solution  toutefois  n   est pas satisfaisante  puisqu elle ne permet pas de rep  rer les robots ennemis  Puisque la bande est fixe   on pourrait envisager dessiner dessus de mani  re inconditionnelle        Peu avant la fin du projet  le terrain a   t   modifi   et les fl  aux mentionn  s ci dessus  ont   t   supprim  s  Les ont remplac  s de petits d  rouleurs fix  s avec le m  me adh  sif  qui appara  t blanc  De nouveaux points ind  sirables apparaissent sur le premier filtre   Nous n   avons pas eu le temps d   envisager des corrections au probl  me     Autres essais  Avant d aboutir    la solution d  crite ici  nous avons eu l   occasion d   es   sayer plusieurs autres algorithmes  Voici un r  sum   de nos tentatives infructueuses      D  tection d   ar  tes  Nous avons essay   d utiliser l   algorithme de d  tection d   ar  tes de  Canny  Canny edge detector  dans l   espoir de voir se dessiner les robots sous la  forme d   un cercle travers   par un diam  tre  Nous sommes parvenus    cela  mais  avec beaucoup de bruit autour  le fl  au  la balle  parfois des reliefs du terrain    La transform  e de Hough semble n  cessit   des disques plut  t que des cercles  nous    n avons pas pu l utiliser  De l    aucune piste ne s   est d  gag  e     
16. fait que la balle soit rouge rend la chose facile  Une m  thode plus  g  n  rique utiliserait une repr  sentation HSV  cela fonctionne d   apr  s nos tests avec un  algorithme pr  liminaire  L approche originale par masque n   apporte pas grand chose en  l     tat  mais on pourrait envisager y appliquer une transform  e de HoughP  La chose au   rait l   avantage d utiliser OpenCV et son impl  mentation a priori efficace des algorithmes   Rechercher explicitement des cercles permet   galement s affranchir du bruit   ventuel    connecteur rouge  fil rouge dans le c  ble s  rie  etc         2  La transform  e de Hough permet  dans une de ses variantes  de rep  rer des disques dans une image     5 1 5 Position des Robots    Dans le principe  une fois encore  notre solution de rep  rage des robots est similaire     celle propos  e les ann  es pr  c  dentes  Elle s   en   loigne toutefois davantage que dans le  cas de la balle  Comme les ann  es pr  c  dentes  un disque   tait dispos   sur le dessus des  robots  Le disque est color   pour moiti   de bleu  et pour moiti   de blanc    Pour commencer  l   analyse est effectu  e sur une repr  sentation HSV de l   image  Par  visualisation s  par  e des trois canaux     trois images en niveau de gris     nous avons  remarqu   que la valeur de saturation permettait de distinguer de fa  on marqu  e la moiti    blanche des disques  Ce choix s   est impos   de lui m  me en raison de la faible distance   suivant l   clairage  entre les pixel
17. it d     tre bien davantage illustr       1 D  marche    Nous avons acc  s aux sources des solutions des ann  es pr  c  dentes d  s le d  but du  projet  ce qui constitue une source d inspiration non n  gligeable  N  anmoins  l     tat du  code ne nous a pas permis de le r  utiliser en l     tat  Assez rapidement  il a   t   d  cid    de tout r   impl  menter  Bien que cela soit confortable de travailler avec des composants    que l   on a   crit soi m  me  les   crire prend du temps  qui ne peut donc   tre investi sur  autre chose  C   est sans doute regrettable  si on consid  re que le projet est propos   depuis  plusieurs ann  es  Un des objectiifs que nous nous sommes fix  s  par cons  quent  a   t   de  produire des modules r  utilisables et document  s  Malheureusement  si nous avons atteint  en partie cet objectif  nous ne sommes pas parvenus    atteindre l   objectif initial   faire  jouer les robots    la balle    Cela   tant dit  nous sommes partis sur une d  marche de d  veloppement it  rative afin  de se pr  munir des probl  mes d int  gration de fin de projet  L   id  e a donc   t   d     crire  les composants un    un  en partant des interfaces avec le mat  riel  robots et Webcam   pour finir par l intelligence artificielle  Nous avons ainsi pu r  aliser des tests sur de vraies  donn  es et ne pas avoir    figer des interfaces avant de pouvoir   valuer les besoins de  communication entre les modules    L approche fonctionne plut  t bien   nous nous sommes retrou
18. on kheperaFinder h et Acquisition kheperaFinder cpp   Ce code est r  utilisable     voir si conserver cette m  thode d   analyse apporte r  ellement  quelque chose     Pistes d   am  lioration  Dans son   tat actuel  l   algorithme de d  tection des robots est  responsable la majorit   du temps n  cessaire    l   analyse d   une image  Bien que nous ne  l   ayons pas test    nous supposons que cela est  en grande partie  d   aux allocations dy   namiques de grande taille  plusieurs m  gaoctets  que r  alise l   algorithme  Dans le d  tail      chaque fois qu   il est appel    des nouvelles matrices  qui repr  sentent  les images sont  allou  es  trait  es  puis lib  r  es  Puisque nous n   analysons qu   une image    la fois  il est tout     fait possible de faire les allocations lors de l   initialisation de la t  che  La raison d   un tel  comportement de l   algorithme est le fait qu   il   tait ainsi plus facile      crire et    modifier  pour r  aliser des essais  la gestion de la m  moire est transparente lorsqu on utilise l   inter   face C   de OpenCV  et que nous n   avons pas eu le temps de le reprendre une fois qu   il  a   t   stabilis    Y a t il toutefois besoin d   un gain de performance    ce niveau  la question  reste ouverte  Il pourrait   tre int  ressant d   exp  rimenter les techniques de rep  rage    base  de transform  e de Fourier  du type r  alis   en 3IF pour rep  rer des caract  res dans une  image     5 2 Le Shell    Dans notre approche it  rative 
19. s bleus et le pixels verts du terrain    Une fois le centre des demi cercles blancs trouv   par clustering  on recherche  dans  une zone r  duite  les demi cercles bleus    l   aide d   un crit  re portant sur la teinte et la  saturation  sup  rieure    celle des pixels du terrain   Un barycentre nous donne la position  de son centre  Les centres des deux demi cercles nous donnent le centre du robot  qui pour  nous d  finit sa position  et sa direction  qui est celle du vecteur qui relie les deux points  une fois l   avant  le blanc dans notre cas  d  cid  e de l   arri  re     Tout n   est pas si simple  Ca aurait   t   trop beau  Plusieurs probl  mes se posent         Dans la version initiale du terrain  les robots   taient reli  s    l   ordinateur par un  fl  au  visible depuis la Webcam et couleur aluminium  La valeur de saturation du  gris aluminium est tr  s comparable    celle de la moiti   blanche du dessus des robots   Elle appara  t donc sur l   image apr  s le premier filtre  La transform  e de Hough nous  permet de rep  rer les longues lignes sur l   image  ce qui inclut le fl  au  et nous donne  les coordonn  es de leurs extr  mit  s  Il ne reste plus qu      les retirer en dessinant  dessus        La bande d   adh  sif au milieu du terrain ne colle plus tr  s bien et  lorsqu elle se d     colle  elle appara  t blanche    la Webcam  avec l   effet que l   on devine  La technique  pr  c  dente    base de transform  e de Hough ne fonctionne pas puisque seules les 
20. s fonctions sont op  rationnelles    R  aliser cette interface nous a permis d   obtenir des images de 1600 par 1200 pixels   m  me si nous n   en avons s  rement pas encore tir   le meilleur parti     Utilisation de fichiers  Pour r  aliser des tests  il peut   tre fastidieux d   avoir    utiliser  la Webcam  puisque cela implique de se rendre dans la salle  alors qu   il est simple de se  constituer une biblioth  que d   images sur lesquelles faire tourner ses algorithmes  Pour r     pondre    ce besoin  nous avons cr     une interface  ImageProvider  qui fournit des captures  au reste de l   application  Cette interface est instanci  e par CameraHandler qui utilise la  Webcam et par VirtualCamera qui utilise des fichiers     R  f  rence aux sources   Acquisition CameraHandler   Le code est r  utilisable en  l     tat  Attention toutefois  pour   viter toute surprise  la configuration de la Webcam fixe  tous les param  tres dont d  pend le reste du programme et l  ve une exception si l   une  d   entre elles n   est pas disponible  En pratique  il y a toutes les chances qu   il soit impossible  de construire avec succ  s une instance de CameraHandler sans la Webcam qui   quipe les  postes de la salle machine     Pistes d   am  lioration  La Webcam est capable de transmettre les donn  es encod  es  en deux formats   UY UV  qui est celui que nous avons utilis    et MJPEG  qui ne tol  re  que des r  solutions inf  rieures mais que nous n   avons pas test    VirtualCamera pourr
21. standard  mais il est possible de jouer  avec le drapeau  rpath de ld  ou la variable d environnement LD_LIBRARY_PATH pour  utiliser des biblioth  ques install  es    des endroits arbitraires     3 3 Lancer l   Ex  cutable    Le programme est  dans une certaine mesure  auto document     nous renvoyons       scor  h pour le synopsis de la commande  Le programme se pr  sente sous la forme  d   un shell  dans lequel la commande help fonctionne    Il faut cr  er les t  ches qui g  rent les robots avant de lancer l intelligence artificielle   Lancer cette derni  re  toutefois  lancera la t  che acquisition d images  La s  quence suivante  fonctionne      1  newKhep  dev ttyUSBO  2  newKhep  dev ttyUSB1  3  startIA    4 Architecture    L architecture    laquelle nous avons abouti est r  partie sur plusieurs processus  Les  machines    notre disposition g  rant plusieurs fils d ex  cution en parall  le  cela nous permet  de pipeliner les traitements et de r  partir les attentes bloquantes  rendant les algorithmes  plus simples      crire  Plus pr  cis  ment  nous avons le d  coupage suivant      Le shell  C   est l interface avec l utilisateur  Il permet de contr  ler l   ensemble des autres  t  ches  les d  marrer et les arr  ter  et permet   galement de piloter les robots en leur  envoyant des commandes brutes  celles qui sont envoy  es sur le ligne s  rie      L   acquisition vid  o  Comme son nom l indique  il s   agit de l interface avec la Webcam   la t  che est responsable de
22. th  se sur la communication  entre l   acquisition et l intelligence artificielle  Puisqu   on ne traite que la derni  re image  re  ue  la communication est r  alis  e par m  moire partag  e dont l   acc  s est prot  g   par un  s  maphore     5 D  tail des Composants    Dans la partie qui suit  nous allons d  tailler les diff  rentes parties de ce que nous avons  fait  en montrant ce que nous avons essay   d am  liorer par rapport aux ann  es pr  c  dentes   Chaque partie dresse   galement un tableau de ce que nous pensons qui peut   tre r  utilis     Les r  f  rences aux fichiers sources sont relatives au dossier src     la racine de l   arborescence  du projet     5 1 L   Acquisition Vid  o    L   acquisition vid  o a  tous comptes faits  repr  sent   la majeure partie de notre tra   vail sur le projet  La probl  matique    laquelle nous avons essay   d apporter une solution  est la d  pendance des algorithmes utilis  s jusqu      maintenant aux couleurs choisies pour  identifier tel ou tel   l  ment  En d   autres termes  il est absolumment indispensable que la  balle  le terrain et les robots sont de trois couleurs qui soient    primaires     au sens RGB du  terme  et diff  rentes  Nous ne trouvions pas cette contrainte satisfaisante et avons t  ch       sans beaucoup de succ  s  d am  liorer les choses     R  f  rences aux sources   Acquisition video h et Acquisition video cpp  C   est l   qu   a  lieu l   aggr  gation de tous les r  sultats     5 1 1 Utilisation de la
23. v  s rapidement avec des  modules qui n   ont pas eu besoin d     tre retouch  s ensuite  C   est le cas  par exemple  des  classes CameraHandler et Khep  L   impl  mentation de certaines fonctions a   t   valid  e     l   aide d     bauches de tests unitaires  Malheureusement  ceux ci n   ont parfois pas suivis  l     volution de derni  re minute desdites fonctions  mais ils sont encore disponibles dans les  sources sous forme de fichiers dont le nom commence par test     2   tat des Lieux en Fin de Projet    Comme il a dit   t   dit plus haut  nous ne sommes pas parvenu    aboutir    une solution  compl  te  L intelligence artificielle est basique  incompl  te et mal test  e  de m  me que  l   asservissement en position du robot qui  lui  ne fonctionne pas du tout  Cela a   t   le fruit  d   un d  veloppement en urgence quelques jours avant la d  monstration    Le reste  par contre  fonctionne correctement  et a   t   test   de mani  re raisonnable  Il  n   est pas parfait  pour s  r  certains commentaires dans le code et les remarques ci dessous  donnent les axes que nous pensons   tre    am  liorer    Chaque fois que nous avons utilis   des algorithmes ou des configurations non triviaux   nous avons fait de notre mieux pour les commenter de fa  on    les rendre rapidement  compr  hensibles    Pour finir  nous n   avons jamais eu de probl  mes de performance  S   il devait en survenir   il y a suffisamment de parall  lisme dans la plupart des actions pour pouvoir acc  l  r
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
HP M175a Quick Reference Guide  ESTE PROYECTO CONTIENE LOS SIGUIENTES  MANUAL ED208  Urban Factory NOT01UF  Benutzerhandbuch MAXDATA SN 40 M1  LSP-Bー 取扱説明書 sps エス・デ~イ    Scarica PDF  FHCS_CAV802 User Manual  MANUAL DE INSTALACION Y OPERACION DE CHILLERS CON    Copyright © All rights reserved. 
   Failed to retrieve file