Home

Projet SCOR — Bilan Table des mati`eres 1 Démarche

image

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

image

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