Home

Création de modules pour les robots NAO et EMOX - e

image

Contents

1. RunLineDetection MoveHeadPitth MoveBody Ensuite ces n uds qui peuvent tre ralli s sont reli s par des transitions que l on peut programmer Ceci est assez utile et offre une grande versatilit ligne_noire kee g Be e ES Finalement une combinaison entre l interface graphique et l API est une m thode performante pour programmer l Emox En effet l interface graphique permet d exploiter la programmation v nementielle d une fa on plus intuitive et la partie en script nous permettra de cr er nos propres n uds Ceux l pourront tre plus complexes que les existants ou bien tout simplement ils seront mieux adapt s notre application D veloppement de modules de vision pour les robots NAO et EMOX Page 46 Pour apprendre comment crire le code de fa on graphique nous avions utilis le tutoriel fourni par Awabot 7 3 4 Suivi d une ligne Comme nous avons expliqu dans la pr sentation du projet nous voulons qu Emox soit capable de suivre une ligne sur le sol tout en variant son comportement en fonction de la couleur de celle ci Pour cela nous avons s par le probl me en deux sous parties le suivi de la ligne et la d tection de couleurs Le suivi de la ligne est une fa on de montrer le chemin suivre pour le robot C est une partie sur laquelle Awabot a travaill en cr ant un module qui facilite le suivi d une ligne Celui ci se trouve dans la biblioth que Vision Library browser gt
2. lev qu il arr te le mouvement des roues et qu il mette en pause le module e Distance lt 10cm Sharp GP2YO0D81070F devant supportant les capteurs analogiques pour pr venir les collisions COMMANDES valeurs retourn es 0 ou 1 Capteur frontal proximitF val proximityD val Dans la partie m canique il est quip de deux pairs de moteurs pour le mouvement des rues de la t te Deux servomoteurs pour la t te datasheet http www pololu com file 0J507 HD 1581HB pdf Afin de savoir sa position ils sont mont s avec un potentiom tre analogique chacun Les relations entre les valeurs de tension analogiques et les valeurs num riques envoy es sont e Axe horizontal Yaw 0 2V et 4 2 V 800 et 2200 e Axe vertical Pitch 2 2V et 3 9V 800 et 2200 45 pitch C 45 24 Daa o E e sh Sie ke be e L mn d GE s 0 eA ke Il ke 45 ef e D veloppement de modules de vision pour les robots NAO et EMOX Page 35 COMMANDES Axe vertical Activation du moteur headPitch load 1 0 d sactiver 1 activer Connaitre position retourn e headPitch position en radians Donner position tap en radian headPitch val valeur pour degr il faut ajouter deg la fin Axe horizontal Activation du moteur headYaw load 1 0 d sactiver 1 activer Connaitre position retourn e headYaw position en radians Donner position tap en radian he
3. ColorDetection gt FaceDetection gt MoveDetection Tnt Runie Detection Gr ce Line Detection la moiti inf rieure de l image capt e par la cam ra est divis en 3 r gions qui permettent d valuer la position de la ligne courte moyenne puis longue port e On peut alors conna tre la position du centre de gravit de la ligne dans cette r gion avec la commande lineDetection getZone zone x D veloppement de modules de vision pour les robots NAO et EMOX Page 47 Une fois connue la position de la ligne le robot doit tre capable de la suivre Pour cela il y a plusieurs fa ons mais la plus int ressante est que le robot suive la ligne avec la t te puis aligne le corps pour s orienter dans la direction de la ligne Ainsi c est la t te qui dirige ce qui permet de ne pas perdre la ligne Ces actions d alignement du corps et orientation de la t te se succ dent tr s rapidement de sorte qu il n y ait pas de pause et que tout semble simultan Nous allons l illustrer avec un exemple e Nous observons que l on arrive un virage les positions x de la ligne se d placent dans la direction du virage pr ss H for help D veloppement de modules de vision pour les robots NAO et EMOX Page 48 e Ace moment la t te s oriente pour s aligner avec la ligne Pour cela nous utilisons headYaw val headYaw val 0 1 lineDetection getZone x 0 15 lineDetection
4. Library browser SE ES Code executed before b Motion b iZ Vision pkManager registerModule 0 acti colorD amp ection met le color del browse 5rarv3 i Toolbo mme 6 h f g Diii tecti comme vue par defaut d H e red Li S MAN gji kl 0000013414 0000013414 0000013414 Behavior graph C Emox Soft applications learn linetest graphs sequirlineaavanzado_cabeza_para test ubg loaded Learn linetest Simulation Emox Lab La premi re m thode est complexe parce qu il faut conna tre le langage Urbi et ce n est pas si facile m me si on conna t le C Et aussi car pour l instant la documentation du SDK et de l API n est pas compl te Apr s quelques contacts avec des employ s d Awabot via t l phone ou forum on peut confirmer la difficult dominer l API puisqu on a re u certaines r ponses contradictoires Ensuite la m thode graphique est plut t simple utiliser mais ne permet pas le d veloppement d applications trop complexes Elle ressemble la D veloppement de modules de vision pour les robots NAO et EMOX Page 45 programmation utilis e dans des champs tels que l automatique langage graphcet par exemple des automates Dans le cas d Emox elle se sert de 3 biblioth ques principales gt Logic Motion mm vs pe e gt Vision A l int rieur on retrouve les n uds que nous utiliserons lors de la programmation
5. Ou 0 si on ne veut pas qu elle soit visible e Couleur dans la partie inf rieure de l image colorDetection getColor red y lt 2 Nous utilisons ceci pour simuler le comportement du module de d tection de ligne d Awabot Sans cela une ligne color e situ loin l horizon sera trait e comme la ligne suivre D veloppement de modules de vision pour les robots NAO et EMOX Page 60 e Pendant combien de temps Il suffit de rajouter 259ms avec le temps voulue suivie de la condition que l on veut qui soit v rifi e pendant au moins ce temps Certaines transitions relient des n uds qui simplement doivent se succ der et il n est pas n cessaire de mettre des conditions Par contre d autres ont besoins que plusieurs conditions soit v rifi es ou bien une seule parmi plusieurs Dans ces cas il faut rajouter amp amp and ou bien or Nous allons voir un exemple de transition o l on veut passer d un n ud un autre uniquement si une ligne est visible dans les zones 0 ou 1 les plus proches au robot ou bien si les couleurs rouge ou vertes sont d tect es dans la partie inf rieure de l image De plus la condition doit tre vraie pendant au moins une seconde lineDetection getzione 0i visible 1 lineDetection getzone li visible 1 colorDetection L getColor green y lt 0 2 colorDetection getColor red 1 y 0 2 150ma ligne rol Movrehesd rs MoveB
6. del image Dans un premier temps du test ce que nous voulions faire est un code unique avec lequel on re oive une image capt e par Nao cette image devienne la variable img et le texte du code est envoy Nao Pour les images nous avons d velopp un code C permettant de capturer des images en cliquant la touche espace D veloppement de modules de vision pour les robots NAO et EMOX Page 27 Main loop Exit when pressing ESC printf n aqui n bool loop true while loop true int select char cv waitKey 1000 switch select d case 27 loop false break case 32 Tells to AlVideoDevice that it can give back the image buffer to the driver Optional after a getImageRemote but MANDATORY after a getIlmagelLocal cvReleaselmageHeader amp imgHeader printf n bucle n camProxy releaselmage clientName img camProxy getImageRemote clientName imgHeader data uchar img 6 GetBinary camProxy releaselmage clientName cv imshow images imgHeader cvSavelmage imgnao png images printf done n break default A L Malgr le qrdecoder est crit en Python et le code qui prend les images en C cela ne repr sente pas un souci au niveau de compilation puisque Nao est capable de d marrer des codes en cross compilation seulement sur Linux Nous sommes arriv s jusqu ce point car la plateforme Emox est arriv e et nous a
7. 12 KAN NGOME ea ae a de a a ben ie 12 2232 Codo CS DAS ed E a ed de 15 EE 16 LLA een uge E 17 2 3 LESLIBRAIRIESET LES APPLICATIONS TUDI ES stees ees ege Eege 18 e OS e e a a a iError Marcador no definido LLL Ge PV ELA AS EEE 19 e ALDA ae a ne dat ee ae iError Marcador no definido 2 3 2 1 Usage d OpenCV au lieu d ImageMagick seessesossssssseesssrresssreressreesrreresrressseereserreseeeee 21 e CO a iError Marcador no definido 2 3 4 libdmix projet Datamatrix 5h tssseesddilissstetsssheeleassteesennscatocenceisssretesloccnteetnsens 23 2 MIRE ad a 24 2 3 6 Autres libraries EE ne e En ent totnter needed ne terriens 25 D veloppement de modules de vision pour les robots NAO et EMOX Page 3 2 4 INT GRATION DES APPLICATIONS SuUpNAap 25 CO EE 25 22 CORRE 29 3 EMOA EEN 32 LL DESCRIPTION T CONIQURSS a a aan ea a EEEE EN de 32 3 2 INSTALLATION ET CONNEXION sue eueeeeeneenenceneeneeneneeneenenneneeneeneeneneeneeeneeneeneeeneneeneeeneneneesee 39 2 3 PROGRANMATION DU el ME 44 Ja SEENEN 47 3 4 1 Possible am lioration du hardware einen seen eeeneeneneenenerne 51 35 DETECTION DELA COULEUR ae a ei le 53 3 5 1 Comment obtenir les valeurs des couleurs 54 3 5 1 1 travers d une application evterme eeeernrnrerernrne 54 3 5 1 2 travers de la console de debug d Emox Soft 56 3 6 SUIVI D UNE LIGNE AVEC CODE COULEUR ssssssssssseseserersesrsrsesrsrsesesesesesesenesenerersrsrsrsrsrsrsrsrsesesreree 57 31
8. cr le 03 11 2010 par une quipe de d veloppeurs d Aldebaran et D veloppement de modules de vision pour les robots NAO et EMOX Page 23 modifi pour la derni re fois en 07 2012 Nous avons eu acc s ce projet gr ce au site d Aldebaran pour d veloppeurs La derni re version du projet consiste en un fichier Choregraphe Pour ajouter la librairie au projet libdtmx a t link en statique au projet DataMatrix ID Ir Nous avons test l application sur Nao avec succ s sur la version 1 12 Malheureusement le projet n est plus valable sur la version 1 14 de Nao qui est actuellement sur le robot Lors des tests nous avons plac des images avec des Data Matrix devant Nao Ce dernier les a d cod puis nous a transmis l information vocalement Cependant le d codage prenait beaucoup de temps pouvant arriver une vingtaine de secondes De plus nous avons essay de faire une d monstration devant un groupe d l ves en PJ M mais nous n avons pas r ussi que Nao lise les Data Matrix plac s devant lui Ce test nous a montr que Nao n est pas encore tr s au point pour ce type de d fis En effet apr s quelques nouveaux essais nous pouvons expliquer que pour une lecture des codes ceux ci doivent se trouver pr s de la cam ra et tre suffisamment grands et droits par rapport au robot De la m me fa on les conditions de lumi re sont tr s importantes car s il y a des reflets la lecture devient quasi i
9. d information la difficult les d coder puis la complexit de sa programmation en C D veloppement de modules de vision pour les robots NAO et EMOX Page 14 2 2 2 Code de barres Les codes de barres sont des codes d une dimension tr s tendus dans les march s puisque ils sont simples faire et imprimer ils peuvent stocker des num ros ils sont faciles lire avec des lecteurs simples et pas chers Les nouvelles versions des codes permettent aussi de stocker de petits textes mais le r pertoire des caract res permis est tr s limit D autre part ce n est pas possible d y mettre des gros textes Bonjour Je suis HAD P uuu aldebaran robotics c Comme r sultat de son expansion aujourd hui on trouve une vaste gamme d encodages diff rents pour les codes de barres Voici une liste des codes de barres lus par ZBar 6 Version EAN 13 UPC A UPC E Capacit Les UPC A et EAN 13 sont les codes les plus utilis es Ils sont ceux que normalement on trouve sur les produits du march et des magasins Ces codes sont une version des codes UPC A mais plus compacts font en liminant les Z ros contenus Type de caract re Num rique Num rique GA Norme international e ISO IEC 15420 D veloppement de modules de vision pour les robots NAO et EMOX Page 15 Code 128 Code 39 Interlea ved20of5 Petit code cr pour des petits col
10. getZone 1 x 0 2 lineDetection getZone 2 x Ce code s introduit dans les param tres du noeud teDeRcn g MoveHe20PlKh e Es ed Turm Right Lauer reg RS y f Turten A E ligne_noire O Ki Comme la t te tourne positivement vers la gauche tandis que les valeurs de la ligne selon l axe x sont positives vers la droite nous devons mettre un signe n gatif Ensuite nous appliquons des coefficients aux valeurs des diff rentes zones Si les param tres sont trop lev s les corrections de position de la t te sont trop importants et le robot part d un c t puis d un autre sans pr cision Nous avons choisis ces valeurs en essayant plusieurs combinaisons Nous avons test nos valeurs sur un code d Awabot qui n tait pas capable de suivre la ligne et avec nos valeurs le robot est capable de la suivre ce qui prouve l am lioration du syst me SE Wi a s H for help E ma D veloppement de modules de vision pour les robots NAO et EMOX Page 49 e Finalement tout en continuant d avancer le corps s aligne avec la position de la t te et donc avec la ligne Partie Speed Wheel R cm s SE a vitesse Speed Wheel L cm s Partie virage ge De cHon eDe cio MoveHez0P ich a E e e f e ll d e mg gt e V F d d d Sa Ee A E S A lt Tumler A GE ligne_noire Le robot se d place donc une vitesse constante de 20 cm s et tourne avec une vale
11. in ZBar qr code decoder 21 http sourceforge net apps mediawiki ZBar index php title ZBar_Wiki D veloppement de modules de vision pour les robots NAO et EMOX Page 67 gt OpenCV 22 Site officiel d OpenCV http docs OpenCV org 23 http OpenCV willowgarage com wiki 24 http www mattmontag com development notes on using OpenCV 2 3 with visual studio 2010 25 http docs OpenCV org modules core doc intro html gt Libdmtx 26 http wwwlibdmtx org gt ImageMagick 27 http imagemagick org gt Autres librairies tudi es 28 ZXing http code google com p zxing 29 Libdecodegr https github com josephholsten libdecodeqr Int gration des applications sur NAO 30 https developer aldebaran robotics com home 31 http www aldebaran robotics com documentation software choregraphe index html EMOX Description technique 32 http fr wikipedia org wiki Pont_en_H 33 http es wikipedia org wiki Puente_H_ electronica 34 http www dema net pdf sharp GP2YOA41ISKOF pdf 35 http wwwalldatasheet com view jsp Searchword GP2Y0 36 http www pololu com file 0J507 HD 1581HB pdf 37 http datasheet octopart com HN GH12 1634T R Jameco Reliapro datasheet 7274139 pdf 38 http pdfl alldatasheet com datasheet pdf view 42773 SHARP GP1A53HR html http www datasheetdir com OV530 B49 download http www arduino cc fr 39 40 41 42 http www jameco com Jameco Products ProdImag 16138
12. la vue La lecture de codes est un moyen tr s effectif de communiquer avec un robot puisqu elle permet de transmettre une information de fa on pr cise et sans erreurs De plus la lecture de codes n est pas D veloppement de modules de vision pour les robots NAO et EMOX Page 5 un projet limit un cas d application mais est extr mement versatile Par exemple on pourrait envisager un cas d application o un robot identifie des personnes gr ce un badge avec un code ou bien le code peut devenir une indication qui permet au robot de se situer dans un endroit Donc dans la r alisation de notre projet nous travaillerons sur la lecture de codes avec Nao pour recevoir de l information d une mani re fiable gr ce la vision qui lui sera utile pour aider les personnes en identifiant des objets des noms ou tout type de message D autre part Emox est un robot qui est beaucoup plus mobile que Nao Nous nous sommes donc propos d utiliser cette mobilit et de lui donner un sens Imaginons que le robot doit se d placer l int rieur d une usine Afin d arriver sa destination Emox doit s orienter et conna tre le chemin Pour cela une fa on fiable d y arriver est de suivre une ligne sur le sol qui arrive jusqu au lieu indiqu comme s il s agissait d un train sur des rails Cependant nous cherchons am liorer ce syst me en rajoutant la d tection de couleur au suivi de la ligne Gr ce cette modification Emox peut
13. prendre des d cisions diff rentes selon la couleur de la ligne comme par exemple une modification de la vitesse pour freiner avant un virage ou acc l rer sur une ligne droite ou bien suivre un chemin ou un autre selon la couleur Nous allons donc centrer notre projet sur la lecture de codes avec Nao et le d placement d Emox en suivant un chemin avec des indications simples travers de l usage de couleurs D veloppement de modules de vision pour les robots NAO et EMOX Page 6 1 Introduction 1 1 tat de l art 1 1 1 Nao Le robot NAO est d velopp par Aldebaran Robotics entreprise fran aise 100 jusqu mars 2012 o un partie plus de 80 a t achet e par un groupe japonais appel Japan s Softbank L entreprise japonais a pay 100M pour cette partie et elle a investi entre 40M et 50M dans le projet NAO est un robot humano de ressemblant un enfant de 57 cm avec 25 degr s de libert programmable sur plusieurs langages telles que C Python Urbi NET Java et Matlab Son c ur est un processeur Intel ATOM 1 6ghz CPU qui fonctionne sous un noyau Linux qui support l intergiciel d Aldebaran Naoqi Notre projet est centr sous l aspect vision du robot Les cam ras sont positionn es sur la t te mises sur le front et sur la bouche capables de prendre 30 images par second en 920p Aldebaran propose une banque de donn es o on trouve des projets en open source d velopp s par des personnes aya
14. putty et pscp On se dirige au site http wwvw chiark greenend org uk setatham puttv download html D veloppement de modules de vision pour les robots NAO et EMOX Page 64 Et on cherche les fichiers putty exe et pscp exe dans Binaries gt For Windows on Intel x86 Il n y a pas besoin d installation juste double clic 2 Mettez le fichier du firmware l emplacement o on a gard pscp exe Ce que nous avons est nomm rootfs arm_nofpu squashfs_1_22 3 Ouvrez une invite de commande et placez vous dans le dossier o on a mis le pscp exe et le firmware Pour cela tapez cd et ajoutez apr s l adresse Vous pouvez la copier depuis le dossier Windows et la mettre dans l invite de commande en faisant bouton droit de la souris et Coller 4 On doit tendre le router allumer le robot et nous connecter son r seau sous Windows 5 Puis ex cutez pscp exe scp lt NomDuFirmware gt root 172 17 6 1 tmp Dans notre cas pscp exe scp rootfs arm nofpu squashfs 1 22 root 1 72 17 6 1 tmp root 1 72 17 6 1 s password Le mot de passe sera demand marvell Le programme installera le firmware Attendez au message rootfs arm nofpu squashfs 2688 kB 134 4 kB s ETA 00 00 00 100 6 Connectez vous au robot par putty exe voir pas 3 sous le titre Connexion voie router 7 Dans la console de putty ex cutez flashcp lt NomDuFirmware gt dev mtd1 soit flashcp rootfs arm nofpu squashfs 1 22 dev mtd1 8 At
15. sur le forum doivent Ajout par Renaud Didier il y a 20 jours tre v rifi es et valides Emox Lab Lancement du projet Lancement du projet Ajout par thomas faguet il y a 29 jours Voir toutes les annonces Ce projet appel Emox One c est le pas suivant l Emox Lab L id e d Awabot est de cr er un robot plus performant la fin de mars 2013 une maquette ressemblant au produit final avec laquelle ils pourront montrer les fonctionnalit s souhait es pour la version livrable qu ils esp rent avoir fini la fin de 2013 1 1 3 Codes en 1D et 2D La lecture de codes est tr s d velopp e dans le domaine des applications mobiles pour les Smartphones C est la raison pour laquelle on trouve plusieurs librairies destin es ce but la plupart open source Aujourd hui Il existe deux types de codes selon sa dimension en 1D et 2D Les codes en 1D sont les classiques codes de barres qu on trouve dans la plupart de produits mais ils sont tr s limit s M me s il y a plusieurs versions de ce type de codes sa capacit est tr s petite Par rapport aux codes en 2D ou Bidi de bidimensionnelle on trouve diff rents types mais nous nous allons centrer sur ceux qui nous concernent les codes QR et les Datamatrix Les Datamatrix sont les codes trouv s par exemple sur les boites de m dicaments mais ils ne sont pas tr s tendus D autre part les codes QR ont des avantages par rapport eux Ils ont une taille minimale
16. test toutes les deux nous avons choisi la derni re Color Grab puisque elle est capable de nous donner les valeurs qu on voit travers de la cam ra de fa on continue et quand on veut garder les valeurs on fait une photo et elle garde les valeurs dans une liste Avec Color Detector on ne peut que faire des photos pour connaitre les valeurs Gr ce l application mobile Color Grab nous trouvons que les valeurs HSV universelles des rubans adh sifs sont celles qui apparaissent dans limage ci dessous A Color Gra Black Black RGB 5 10 20 050A14 HSV 220 75 7 Alizarin Red RGB 215 35 54 D72336 HSV 353 83 84 Elf Green Green RGB 38 134 110 26866E HSV 165 71 52 tant donn que l Emox Soft ne reconna t que les valeurs compris entre 0 et 255 nous avons cr une table Excel afin de faire la conversation rapidement En plus nous avons cr deux colonnes finales pour calculer directement les valeurs maximale et minimale de chaque composant Pour la teinte nous conseillons que D veloppement de modules de vision pour les robots NAO et EMOX Page 55 l cart des valeurs ne soit pas assez grand puisque on peut prendre plusieurs couleurs diff rentes au m me temps Par rapport la saturation et la valeur normalement on fera l inverse car on veut que la d tection ne soit pas affect e par la lumi re Donc nous avons mis des carts de 10 pour les valeurs de la tein
17. 2 jpg FAGUET Thomas Documentation d EMOX Doc Hardware pdf Version 1 du 12 06 2012 Awabot Robotics Del kel el kel Installation et connexion 43 Documentation d EMOX Manuel d utilisation pdf Awabot Robotics 2012 Programmation du robot 44 Documentation d EMOX Document de programmation graphique VI pdf Awabot Robotics Version 1 0 0 Septembre 2012 45 Documentation d EMOX Emox SDK pdf Awabot Robotics 18 juin 2012 D veloppement de modules de vision pour les robots NAO et EMOX Page 68 Suivi d une ligne 46 http botbench com blog 2011 09 16 exposed lego colour sensor D tection de la couleur 47 http awabot redmine herokuapp com boards 5 topics 4 48 play google com store apps details id com mobialia colordetector 49 play google com store apps details id com loomatix colorgrab Solutions de probl mes 50 http www chiark greenend org uk sgtatham putty download html D veloppement de modules de vision pour les robots NAO et EMOX Page 69
18. ARTS ET METIERS Parislech Paris CER PARIS 19 02 2013 D VELOPPEMENT DE MODULES DE VISION POUR LES ROBOTS NAO ET EMOX RAPPORT DU PROJET FIN D TUDES Del ARROYO LVAREZ LUIS Tuteur p dagogique Ren BOULAIRE CANO GUERE A DANIEL ANN E 2013 N du PE CENTRE DE RATTACHEMENT PE Arts et M tiers ParisTech CER Paris AUTEURS Luis Del ARROYO LVAREZ Daniel CANO GUERENA TITRE D veloppement de modules de vision pour les robots NAO et EMOX ENCADREMENT DU PE M Ren Boulaire Laboratoire de M catronique et Robotique NOMBRE DE PAGES Gg NOMBRE DE R F RENCES BIBLIOGRAPHIQUES 50 R SUME D veloppement d une application pour la lecture de codes QR pour Nao Recherche des diff rents codes existants et son int gration sur le robot Pr sentation du nouveau robot Emox description installation et premiers pas D veloppement d un module pour le suivi d une ligne cod e par diff rentes couleurs Solution des probl mes trouv s MOTS CL S PROGRAMMATION ROBOTIQUE NAO ALDEBARAN CODE QR DATAMATRIX CODE DE BARRES NAOMARK CHOREGRAPHE QRDECODER ZBAR OPENCV EMOX AWABOT EMOXSOFT SUIVI LIGNE D TECTION COULEUR ACC S AU DOCUMENT ACCESSIBILIT DE CE RAPPORT entourer la mention choisie Classe 0 acc s libre Classe 1 Confidentiel jusqu au Classe 2 Hautement confidentiel Nom du signataire Signature D veloppement de modules de vision pour
19. Ate Muck musl Ate eren chedlions echelle 3E _ e mem Le e EE e n x mmm E e EE E a mg mme emm me a ES ss speceberito ee ioihe nert sie MOX0880039385 EMOX088003938 Il faut remarquer que ces valeurs ne doivent pas tre forc ment celles que vous obtiendrez D veloppement de modules de vision pour les robots NAO et EMOX Page 43 3 3 Programmation du robot Emox est une plateforme qui fonctionne avec Linux et enti rement programmable gr ce au langage Urbi Celui ci se compose des UObject du C et du langage v nementiel urbiscript Urbi est n l ENSTA Paristech en 1999 puis est devenue partie de Gostai en 2006 C est cette partie qui rend possible la programmation graphique Pour programmer Emox on utilise l Emox Soft Ce logiciel permet de se connecter au robot et g re la connexion PC robot via wifi Il peut jouer le r le de lanceur d applications et d diteur Nous pouvons donc programmer directement nos modules avec le logiciel puis les ex cuter Les applications sont ex cut es sur l ordinateur De cette fa on le robot renvoie les valeurs des capteurs l ordinateur qui prendra les d cisions et les fera r aliser par Emox Une fois que l on a lanc le programme nous pouvons donc choisir entre trois options de programmation e Programmation en script SDK eme Q Reload Display File Edit Project View Window Help Gi Virtual Wo
20. L et SIP De ces trois librairies celle que nous int resse au niveau de notre projet est la librairie PIL PyQT4 et la librairie des codes charg s de l interface de l application La fen tre affich e les interactions de l utilisateur avec les boutons le design etc sont faits avec ce code D autre part SIP Session Initiation Protocol est une librairie qui g re les sessions interactives avec des l ments multim dia utilisateur machine Par contre la librairie PIL Python Imaging Library fut cr e pour le traitement des images dans les environnements Python Elle est utilis e dans le qrdecoder quand on veut obtenir les donn es de l image souhait e Le code concern est obtain image data pil Image open unicode self lineEdit location text convert l width height pil size raw pil tostring D veloppement de modules de vision pour les robots NAO et EMOX Page 19 Gr ce la premi re ligne on sauvegarde dans la variable pil quelques informations de l image Pour savoir ce qu il est sauvegard on peut ajouter la ligne print pil apr s de la premi re ligne et ensuite ouvrir une terminale Linux et y taper la commande suivante apr s d on se placer dans le dossier contenant le fichier python qrdecoder pyw Cela d marrera le code et montrera ce que la variable pil contient par exemple Image Image image mode L size 250x300 at O x93F18EC gt On voit que le mode de l image es
21. SOLUTIONS DE EE 62 3 7 1 Connexion voie FOUT mamstenedeicssresnetaiensanenesoteatsiheecaeenmeneienesestese este ieiuresee 62 3 7 2 Des autres problemes tro essaie ce cer ae nue 64 D CONCLUSION a a ee dc anne en a ee dde ae eee 66 BIBLIOGRAPHIE EE 67 D veloppement de modules de vision pour les robots NAO et EMOX Page 4 Pr sentation du projet fin d tudes Aujourd hui nous assistons un monde qui est de plus en plus technologique En effet celle ci est de plus en plus pr sente dans nos vies Parmi l expansion des nouvelles technologies la m catronique et la robotique jouent un r le de plus en plus important et semblent destin s s int grer dans le monde quotidien Dans ce cadre de d veloppement l ENSAM veut y participer et un projet de mise en place d un nouveau laboratoire de robotique l ENSAM Paris est en cours L cole a donc achet de nouveaux robots pour la recherche et la cr ation des nouveaux modules avec plusieurs buts dans diff rents domaines devenant ainsi un centre important dans le monde de la robotique Gr ce notre projet nous avons particip la mise en place de ce nouveau p le en d marrant un des premiers projets Ce travail permettra d augmenter la connaissance sur ce champ et donner de l exp rience pour les futurs projets Notre recherche s est poursuivie avec deux robots diff rents Nao d Aldebaran er Emox d Awabot Tous les deux sont de r centes acquisitions de l cole p
22. adYaw val valeur pour degr il faut ajouter deg la fin Remarque Avant de mettre la valeur de l angle il faut tout d abord activer les servomoteurs en entrant les commandes headYaw load 1 et headPitch load 1 Deux moteurs DC DC de 12V et 0 3A pour les roues datasheet http datasheet octopart com HN GH12 1634T R ameco Reliapro datasheet 7274139 pdf avec une vitesse maximal de 200 tr min soit 40 cm s Afin de conna tre sa position ils sont quip s avec deux disques encodeurs de 13 trous chacun ce qui donne un total de 390 pas per tour de roue EE ZS compl te Le capteur charg de cela est un Sharp R GP1A53HR datasheet Ke http dfl alldatasheet com datasheet pdf view 42773 SHARP GP1AS5S3HR html D veloppement de modules de vision pour les robots NAO et EMOX Page 36 COMMANDES Roue droite Position retourn e en cm cm s Roue gauche Position retourn e en C cm s cm s Une bille au dessous et l arri re comme support physique Pour la partie multim dia Une cam ra VGA 30fps de r solution 640 x 480 dans la t te connect par USB datasheet http www datasheetdir com OV530 B49 download COMMANDES Angle d ouverture verticale camera xfov ret en radians ret en radians ret en pixels ret en pixels Un microphone dans la t te c t de la cam ra Un haut parleur mont sur la carte Un laser li
23. anager setVisibleModuleView colorDetection met le color detection comme vue par defaut colorDetection setColorSpace red1 137 153 90 256 54 256 couleur violette d une balle du monde virtual colorDetection startDetection colorDetection addColor UColor new red1 cree la variable red1 Donc ce moment il ne manque que de conna tre les couleurs avec lesquelles on veut travailler 3 5 1 Comment obtenir les valeurs des couleurs 3 5 1 1 travers d une application externe En principe les informations que nous avions sur le robot taient que malheureusement il n existait pas encore la possibilit de savoir les valeurs gard s par Emox travers de la s lection graphique de l aire color e Apr s de faire une recherche afin d avoir une fa on simple intuitive mais surtout qu elle soit accessible aux futurs l ves du projet finalement nous avons d cid utiliser une application mobile pour le Smartphone tant donn que nous avons tous les deux des terminaux Android nous avons cherch une application dans le Google Play et pour l instant il y en a deux pour savoir les valeurs HSV des couleurs qu on pose devant la cam ra soit Color Detector play google com store apps details id com mobialia colordetector D veloppement de modules de vision pour les robots NAO et EMOX Page 54 Color Grab play google com store apps details id com loomatix colorgrab Apr s d avoir
24. atch v 4eBqVn3us5w 3 http searchfortechnology com emox intelligent entertainment robot 4 http awabot redmine herokuapp com NAO Installation des outils et des librairies n cessaires pour la lecture avec NAO sur Linux Ubuntu 5 http www aldebaran robotics com documentation dev cpp install_guide html 6 http old releases ubuntu com releases 7 http code google com p qrdecoder Les codes tudi s 8 http qrworld wordpress com 2011 09 26 qr codes versus data matrix 9 http datamatrix kaywa com 10 http www barcodeisland com 11 http www unitaglive com qarcode 12 Athanasia LOULOUDI Ahmed MOSALLAM Naresh MARTURI Pieter JANSE and Victor HERNANDEZ http ebookbrowse com sais2010 ipw paper pdf d79389844 School of Science and Technology rebro niversity Sweden Les librairies et les applications tudi es gt qrdecoder 13 http code google com p qrdecoder gt PyQT4 PIL et SIP 14 http wwvw riverbankcomputing co uk software pyqt intro 15 http wwvw riverbankcomputing co uk software sip intro 16 http www pythonware com products pil 17 http www pythonware com library pil handbook image htm gt ZBar 18 http sourceforge net apps mediawiki ZBar index php title HOWTO _Sc an_images_using_the_API 19 http sourceforge net apps mediawiki ZBar index php title HOWTO _Sc an_video_using_the_Processor 20 http stackoverflow com questions 9190687 using OpenCV instead of imagemagick
25. bot pour suivre les lignes et nous prenons la position de la couleur comme rep re headYaw val headYaw val 8 1 colorDetection getColor red x D veloppement de modules de vision pour les robots NAO et EMOX Page 59 4 Dans ce n ud on augmente la vitesse du robot puisqu on est dans le cas o la ligne est verte Pour cela on modifie les param tres de la vitesse introduire dans le n ud MoveBody L interet de la ligne verte serai de la placer sur une ligne droite donc nous pouvons augmenter la vitesse sans trop lever le risque de perdre la ligne Les transitions doivent se programmer en script et permettent d introduire des conditions sans quoi nous ne pourrions pas distinguer quel chemin prendre dans le graphe Les transitions relient les diff rents n uds et permettent d aller d un tat un autre En langage logique elles seraient l quivalence d un jf Les principaux crit res que nous avons utilis s dans les transitions pour passer d un n ud l autre sont les suivant e Ligne visible lineDetection getZone zone visible Ou 0 si l on veut que la ligne ne soit pas visible e Ligne n est pas droite lineDetection getZone zone x gt changed On compare les valeurs de x pour savoir si la ligne se d vie pour ensuite corriger la position La m me commande est utilis e pour les lignes rouges colorDetection getColor red x gt changed e Couleur visble colorDetection getColor red visible 1
26. des QR sont n s et ont devenu les concurrents les plus forts Aujourd hui la guerre entre QR et Datamatrix n est pas encore finie puisque selon ce qu on veut faire l un peut tre mieux que l autre Pour les seconds si on utilise des codes avec quatre aires diff renci es et gr ce la correction d erreur Reed Salomon nous pouvons aussi mettre ci dessus des logos Le souci qu on trouve dans ce cas est que la densit de points est plus grande et donc on aura besoin des cam ras plus puissantes La cam ra avec laquelle Nao est quip n a pas la qualit d image n cessaire pour pouvoir lire ais ment ces codes quand ils sont loign s ou tourn s Le code sans le logo a t gr ce au site http datamatrix kaywa com D veloppement de modules de vision pour les robots NAO et EMOX Page 17 Les codes Datamatrix sont surtout utilis s dans le monde industriel de la production On peut les trouver par exemple dans les boites de m dicaments ou dans les tiquettes coll es sur les colis 2 3 Les librairies et les applications tudi es 2 3 1 qrdecoder grdecoder es une application d velopp e par un particulier appel Nicholas Wilde elle est open source et trouvable dans le site de Google de codes http code google com rdecoder Le principal but de l application est la lecture de codes QR dans les images gard es dans l ordinateur L application demandera l adresse du fichier contenant le code QR et en suite en cliqua
27. eight height Y800 scan the image for barcodes Avec OpenCV CvMat cv_ matrix cvLoadImageM argv CV_ LOAD IMAGE GRAYSCALE ImageScanner scanner scanner set config ZBAR NONE ZBAR CFG _ENABLE 1 int width cv matrix gt width int height cv matrix gt height char raw char cv matrix gt data ptr Image image width raw width height height Y800 int n scanner scan image Nous n avons pas finie la conversion du code puisqu il faudrait faire ce changement sur Python La partie changer en Python est la suivante _ obtain image data pil Image open img convert L width height pil size raw pil tostring wrap image data image ZBar Image width height Y800 raw scan the image for barcodes scanner scan image D veloppement de modules de vision pour les robots NAO et EMOX Page 22 2 3 3 OpenCV OpenCV est la librairie de vision open source la plus utilis O actuellement Elle fut invent e par Intel en 1999 et aujourd hui elle dispose de plus de 500 fonctions diff rentes compatibles sur e Q GNU Linux Windows ou Mac OS X Nao utilise ces librairies pour OpenCV cette librairie pour l usage d une autre librairie appel ZBar dont nous parlons par exemple le module de reconnaissance de visages Dans le cadre de notre projet nous avons eu besoin de quelques sections apr s Le souci que nous avons eu c est que normalement
28. er Choregraphe comme l avaient fait les d veloppeurs d Aldebaran dans une version ant rieure def onLoad self from ctypes import cdil LoadLibrary ALFrameManager getBehaviorPath self behaviorld lib libdmtx so def onLoad self import sys os ZBar Image sip string from ctypes import cdil LoadLibrary ALFrameManager getBehaviorPath self behaviorld lib libdmtx so cdll LoadLibrary ALFrameManager getBehaviorPath self behaviorld lib CORE_RL_magick_ lib cdil LoadLibrary ALFrameManager getBehaviorPath self behaviorld _ lib CORE_RL_Magick _lib cdil LoadLibrary ALFrameManager getBehaviorPath self behaviorld _ lib CORE_RL_wand_lib cdil LoadLibrary ALFrameManager getBehaviorPath self behaviorld lib libZBar 0 def cdil LoadLibrary ALFrameManager getBehaviorPath self behaviorld lib libZBar O lib cdil LoadLibrary ALFrameManager getBehaviorPath self behaviorld lib X11 lib Ces librairies se trouvaient dans C Program Files x86 Aldebaran Choregraphe 1 12 0 62 lib ctypes lib Cependant les librairies n taient pas localis es lors de l ex cution D veloppement de modules de vision pour les robots NAO et EMOX Page 30 Cet alors qu un d veloppeur du projet d Aldebaran nous indiqua qu il fallait linker les librairies statiquement Nous n avons plus continu sur ce point puisque la nouvelle plateforme Emox venait d arriver et on arr ta ce
29. essaire Les codes Datamatrix ont t cr s par une D veloppement de modules de vision pour les robots NAO et EMOX Page 16 entreprise nord am ricaine raison pour laquelle ils n ont pas d velopp cet aspect En revanche les codes QR ont la possibilit de les emporter ce qui fait d eux des codes plus internationaux Syst me de control de pertes plus efficace L algorithme de correction s appelle Reed Solomon Cette correction permet d avoir plusieurs niveaux d erreur 7 15 25 ou 30 Le code enregistre l information redondante afin d avoir une compensation des bits qui seront perdus Dans l exemple expos ci dessous nous avons fait un code QR pour acc der au site internet de l cole mais nous avons mis le logo AM au dessus de lui m me avec une petite distorsion des carr s En plus on peut changer la couleur de code sans soucis L outil on line utilis s appelle Unitaglive http www unitaglive com qarcode 2 2 4 Datamatrix Ce troisi me code tudi est en concurrence avec les codes QR Il fut Invent en 1989 par l entreprise tats unienne International Data Matrix Inc aujourd hui appel e CI Matrix La derni re et plus utilis e version du code est dat e du 2005 Malgr que cette fa on d encryptage soit plus ancienne elle n a pas encore la possibilit d y int grer les codes japonais kanji Dans le monde de la technologie Japon fait une partie tr s importante raison pour laquelle les co
30. gne rouge sur la cam ra 8 LEDs en deux groupes de 4 une rouge deux blanche une verte qui informent de l tat des connexions wifi soit e LEDs rouges si fixes cela signifie que le robot est allum D veloppement de modules de vision pour les robots NAO et EMOX Page 37 e LEDs blanches Droite ils montrent l tat de la connexion au r seau gt Clignotantes le recherche le r seau wifi Ici nous avons deux cas que ce soit le robot lui m me qui cr e le r seau avec un algorithme part ou qu il y ait une autre cr e par un router Dans tous les deux le robot se connectera au r seau qu il a comme favorite par d faut son propre r seau ad hoc gt Fixes le robot est connect au r seau Gauche ils montrent l tat de la connexion l Emox Soft gt Clignotantes Le robot n est pas encore connect gt Fixes Apr s d avoir s lectionn le robot depuis l onglet de connexion du logiciel on doit atteindre et finalement ces leds deviendront fixes Le robot est connect est pr t pour le lancement du code e LEDs vertes pas d utilisation pour l instant Pour g rer le fonctionnement de tous les capteurs et du syst me Linux embarqu le robot est quip de deux cartes lectroniques La carte m re avec un processeur Arm9 200 MHz et e Une puce Wifi int gr e e Un pont H pour la gestion des moteurs Ce circuit lectronique permet aux moteurs de tourner dans le
31. inistrateur 2 2 Les codes tudi s 2 2 1 NaoMarks Lors de notre recherche de codes lire par Nao tout d abord nous avons commenc par v rifier s il existait d j un syst me int gr sur la plateforme Cet ainsi que nous avons d couvert les NaoMarks Il s agit de marques cr es par Aldebaran qui contiennent des chiffres Ce sont des cercles noirs avec des triangles blancs orient s vers un cercle blanc central La position des triangles blancs permet de distinguer les diff rentes NaoMark D veloppement de modules de vision pour les robots NAO et EMOX Page 12 Les NaoMarks sont reconnues par le module ALLandMarkDetection impl ment e de base sur le robot Ces signaux permettent de donner des petites informations au robot Gr ce au num ro identifi Nao peut s orienter ou ex cuter une action particuli re Cependant cette information est tr s limit e puisqu il ne s agit que de num ros La lecture de Naomarks a t test e dans des conditions d illumination d entre 100 et 500 lux Pour reconna tre les codes il est important que les images aient un fort contraste puisque que c est justement le contraste de couleurs qui est analys Il est conseill d ajuster le contraste de la cam ra pour une meilleure d tection De plus les NaoMark ont des contraintes en taille et en inclinaison Ainsi la taille de la marque doit tre comprise entre 14 et 160 pixels sur une image QVGA 320x240 pixels Dans le cas de
32. is Cette version permis d encoder des caract res alphanum riques avec en plus d une chiffre checksum pour v rifier l information Code alphanum rique standard Code tr s tendu dans le domaine de la distribution et le storage 2 2 3 Code QR Num rique Alphanum rique Alphanum rique Num rique ISO IEC 15420 L 23457 0 910 ISO IEC 15417 HIS 4567A 12345678910 AR or 16388 TESTER 0SZ d 4 G ISO IEC 16390 567 Cr s en 1994 par Denso wave ces codes ont permis l introduction des symboles Kanji japonais ce que n est pas possible avec les codes de barres ou les Datamatrix Comme il a t expliqu dans l introduction les codes QR ont trois avantages principaux par rapport aux autres codes Son utilisation de l espace est plus efficace L information stock e sur la m me aire que les autres codes est plus grande Cela fait que l espace occup par le code soit mineur mais en revanche au fur et mesure que l information est plus grande le code est plus dense et par cons quent la lecture devient plus difficile Aujourd hui les cam ras des Smartphones ont une puissance suffisante pour les lire mais la r solution des cam ras de Nao est plus faible donc pour l instant nous avons essay avec de codes pas complexes Le stockage des caract res japonais symboles kanji cause de l internationalisation des technologies une standardisation des codes devienne n c
33. jusqu la version 2 1 OpenCV tait divis par librairies dans diff rentes domaines mais tous ensembles dans un module unique Pour int grer ces fonctions notre code il n a fallu qu crire include OpenCV cv h include OpenCV highgui h using namespace CN Mais c est partir de la version 2 2 qu ils ont d velopp une sorte de OpenCV 2 Depuis cette version la librairie est plus divis e en modules qui sont core imgproc video calib3d features2d objdetect highgui gpu et plus d autres petits et des autres changements Maintenant la fa on de l int grer est include OpenCV2 core core hpp include OpenCV2 highgui highgui hpp using namespace cv Nous avons constat ce probl me ci quand nous avons mis jour le syst me de Nao de la version 1 12 la 1 14 Avec la 1 12 l OpenCV compatible tait le 2 1 mais partir de la nouvelle version il utilise la 2 3 et les codes que nous avions crits ne fonctionnaient plus m me pas le lecteur des codes Datamatrix t l charg Avant de pouvoir corriger le souci nous avons pris connaissance que nous allons recevoir la nouvelle plateforme Emox donc nous n avons plus pu nous consacrer Nao pour le r soudre 2 3 4 libdmtx projet Datamatrix Libdmtx est une biblioth que open source pour le codage et d codage de Data Matrix pour Linux Windows etc Cette librairie a t choisie par Aldebaran pour son projet Datamatrix Ce projet fut
34. l inclinaison de l image pour pouvoir d tecter la NaoMark correctement celle ci ne peut avoir que 60 d inclinaison par rapport la cam ra Par contre un avantage des NaoMark est que sa rotation n a aucune influence sur la d tection Nous avons donc test la fonctionnalit des NaoMarks Premi rement nous avons essay avec le Monitor et le Choregraphe D veloppement de modules de vision pour les robots NAO et EMOX Page 13 Comme on peut observer sur l image du monitor Nao reconna t automatiquement les NaoMarks d s qu elles se trouvent dans son champ de vision Avec le Choregraphe il suffit d ajouter le box pour lancer la d tection Cependant nous avons remarqu que la d tection est difficile En effet les marques doivent se trouver pr s du robot dans des conditions de lumi re o il n y ait pas de reflets et le plus de face possible au risque de que Nao commette une erreur et d code mal l information Ensuite nous avons crit notre propre module en C en utilisant AL ALLandMarkDetection Mais il y avait des difficult s acc der l information et de savoir si la marque avait t r ellement d tect e Or comme nous ne voulions pas travailler exclusivement avec les NaoMarks puisqu il s agit d un codage limit et non performant nous n avons plus continu sur ce code voir AL ALLandMarkDetection en annexe Finalement nous avons donc rejet les NaoMarks cause de leur limit capacit
35. lace Le lien ci dessus vous r digera sur le site de l installation du SDK pour la derni re version de Nao existante actuellement 1 14 1 Que ce soit Windows ou Ubuntu le SE s lectionn c est imp ratif de choisir la version 32 bits au moins pour l instant car la compilation n est pas encore fiable sur des syst mes 64 bits L avantage de choisir Ubuntu par rapport Windows c est que dans le premier nous avons la possibilit de compiler du code directement sur le robot ou sur l ordinateur tandis que sur une machine Windows on ne peut que le faire sur l ordinateur Nous avons choisi donc la version 10 04 32bits d Ubuntu trouvable sur le site officiel o on peut y trouver les anciennes versions http old releases ubuntu com releases Une fois install le SE et les outils n cessaires pour la compilation de Nao information disponible sur le lien vers la documentation d installation du SDK C il faut installer les d pendances des librairies qu on utilisera Le cas dont nous parlerons c est l installation des d pendances pour l outil que finalement nous avons utilis le qrdecorer mais la d marche sera toujours pareille Au d but on doit nous diriger au site de l application souhait e et chercher les librairies externes installer Dans notre cas il est dit dans le site http code google com rdecoder Python by the Python Software Foundation PyQt4 GUI toolkit by Phil Thompson GNU GPLv3 D velo
36. les robots NAO et EMOX Page 1 Remerciements Tout d abord nous tenons remercier l ENSAM et notre tuteur de projet M Boulaire qui nous ont donn l opportunit d avoir un contact direct avec la m catronique et qui nous ont confi l acc s deux robots diff rents Nos amis de l universit MaximeDupr s Fantiago Zeva Mordiscain LeRate Guarritr nica Bully Naseto Poio N ni Pichi Francis Electroperra Feli Alpert Metrallote Acho et l quipe Bang LanderLanda XabiRed VictorDisney et Evita De mon c t Luis je remercie mes parents mon fr re igo Mayte qui a t toujours avec moi m me en France et mes amis de l cole et de l universit qui m ont accompagn tout au long de mes tudes d ing nierie pendant six ans et deux pays diff rents De ma part Daniel je souhaite remercier toute ma famille nire neskita et mes amis du lyc e qui mont toujours accompagn Le Caf Momo Olmet Pato et 12 Jant Mr Ricard Pinny et chan chan Il Barone Tru ette Gererare Tilde et Barbie Fanti Cubano D veloppement de modules de vision pour les robots NAO et EMOX Page 2 SOMMAIRE PR SENTATION DU PROJET FIN D TUDES me 5 t Oh eil Hen Ve de 7 E D Sg el CS 7 PE LE Ce EEN 7 Do iz ZE RO ee 7 1 1 3 Codes en 1D et 2D sn eesnnscre teens cosmos 9 2 NAO EEN 11 2 1 INSTALLATION DES OUTILS ET DES LIBRAIRIES N CESSAIRES POUR LA LECTURE AVEC NAO SUR LINUX BIO ET 11 2 ES CODES D E
37. lles habituelles est que pour la programmation d Emox les trois composantes sont mesur es de 0 255 Il existe aussi le mod le RGB Red Green Blue ou Rouge Vert Bleu en fran ais qui est tr s utilis Selon ils expliquent dans le tutoriel du robot ils ont choisi le mod le HSV parce que la teinte est une composante Gr ce la biblioth que de vision du robot on est capable de reconnaitre un ou plusieurs couleurs pos s devant lui et de faire ce qu on veut avec eux comme les suivre par exemple Pour qu Emox garde les couleurs voulus nous avons deux fa ons de les ajouter ou bien par s lection graphique travers de l cran de vision du robot ou bien on peut ajouter manuellement par script les valeurs HSV Nous choisissons les d finir par script car nous voulons d velopper un module qu on soit capable de le d marrer de fa on autonome sans besoin de s lectionner les m mes couleurs chaque fois Nous avons eu des probl mes pour la d finition des couleurs par script dans la programmation graphique mais gr ce au forum dont nous avons parl avec un autre utilisateur d Emox Lab qui nous a aid s avec cette question On peut trouver la question et sa r ponse ce dans cette adresse http awabot redmine herokuapp com boards 5 topics 4 D veloppement de modules de vision pour les robots NAO et EMOX Page 53 Ce que nous devons crire est linkManager register Module colorDetection 0 active le color detection linkM
38. lus pr cis ment Nao a t achet en f vrier 2012 et Emox en janvier 2013 Apr s l achat de Nao et par cons quent notre proposition de projet fin d tudes M Boulaire a connu Emox dans le salon Innorobo Lyon en mars Il s est renseign sur le projet EmoxLab sur les comp tences du robot jusqu au moment mais aussi sur des possibles projets faire Gr ce cette recherche il a d cid de l incorporer au laboratoire Les plateformes de notre projet tant Nao et Emox nous avons cherch d velopper des projets qui s adaptent aux mieux ses caract ristiques Un des aspects les plus importants est que ce sont de robots con us pour l interaction avec des humains En effet Nao tant humano de on s adapte lui d une mani re plus naturelle Quant Emox c est son apparence en tel qu animal de compagnie qui lui conf re la capacit de se rapprocher des humains de fa on confortable De plus les capacit s particuli res de chaque robot ont d termin nos tudes D une part Nao est particuli rement adapt l aide la personne comme le montrent les projets d Aldebaran sur des sujets tels que l autisme Nous avons donc d cid de chercher un projet qui permette Nao de soutenir les personnes g es cet effet nous nous sommes int ress s la prise de m dicaments l id e tant de lire des codes plac s sur ces derniers afin de les identifier Ceci r duira les soucis caus s par la d t rioration de
39. mpossible On peut diminuer les reflets en montrant au robot des images sur papier et non des images sur des crans de PC ou similaire On peut donc conclure que le projet DataMatrix fonctionne correctement sur la version 1 12 mais qu il s agit d un projet avec des limitations cause des probl mes avec la qualit de l image capt e par le robot 2 3 5 ImageMagick ImageMagick est un ensemble de fonctions utilisables partir de la ligne de commande et ne poss de pas d interface graphique d o son choix En effet il est souvent utilis dans des codes et est compatible avec plusieurs formats dont le C et le Python Ce logiciel permet de manipuler des images sous une grande vari t de formats Parmi ses possibilit s on retrouve la modification des couleurs le changement de format la transformation d images la rotation etc D veloppement de modules de vision pour les robots NAO et EMOX Page 24 2 3 6 Autres librairies tudi es Nous avons aussi r vis deux autres librairies d codant des codes QR que finalement nous n avons pas retenu principalement parce qu elles utilisent plusieurs d pendances externes et ces codes sont plus difficiles modifier que celui de ordecoder Cet ajout de biblioth ques compliquait en exc s la programmation et son usage sur Nao le serait galement Celles sont l application ZXing et la librairie libdecodergar 2 4 Int gration des applications sur Nao Nous avons essay d implanter n
40. nt pour la recherche C est un prototype il a juste le structure n cessaire mais il est quip avec tous les l ments techniques n cessaires son cot il est pr sent le projet final qu Awabot lancera au march Ils ont montr dans une vid o les caract ristiques qu Emox aura telle qu un robot domestique http wwvw voutube com watch v 4eBqVn3uS5w Dans cette vid o il est montr comme le robot est capable de projeter des images pour par exemple aider aux enfants pendant ces jeux de construction en projetant les manuels et les tutoriaux ou faire une vid oconf rence tant donn qu il a une cam ra tr s puissante et une connexion wifi Pendant une conf rence Skype avec M Faguet il nous a confirm qu ils travaillent sur une nouvelle version d Emox plus performante avec plusieurs am liorations m caniques qui sera pr sent officiellement dans le salon Innorobo de robotique Lyon du 19 au 21 mars 2013 www innorobo com Apr s cette date Awabot nous changera le robot pour cette nouvelle version gratuitement D autre part Awabot dispose d un forum afin d y r unir tous les personnes travaillant dans un projet d Emox Le site est appel Awabot Redmine car il est bas sur l outil de gestion de forums Redmine On trouve ce site sous l adresse http awabot redmine herokuapp com En tant qu utilisateur ext rieur sans compte enregistr e on peut acc der quelques informations utiles sur le projet conn
41. nt sur le bouton Decode le message cod sera affich On a maintenant le choix de copier le texte ou de l effacer et d coder une autre image Les formats d image support s sont e PNG e JPG e BMP e GIF e PCX e TIF e TGA grDecoder v0 1 2 Image Location About Decode QR Code Clear Exit D veloppement de modules de vision pour les robots NAO et EMOX Page 18 qrDecoder v0 1 ss Image Location About C qrcode png Decode QR Code Clear http code google com p qrdecoder Exit L utilisation est tr s simple pouvant tre d marr sous Windows ou Linux Elle est bas e principalement sur le toolkit PyQt pour le design de la fen tre d interaction et les librairies ZBar pour la lecture des codes et PIL pour le traitement des images son tour ZBar d pend d autres librairies telles qu ImageMagick D autre part cette application est programm e en Python Pendant les cours de m catronique suivis ENSAM M Mechbal nous a conseill d utiliser ce langage puisque est tr s tendu dans le monde de la m catronique donc nous nous sommes renseign s sur cette mode de programmation Une autre avantage de Python est la simplicit d criture ce qui fait de lui un code tr s intuitif tant donn que nous voulions changer et reprogrammer le code pour notre propre but toutes ces raisons nous ont amen s travailler avec le grdecoder 2 3 1 1 PyQT4 PI
42. nt un acc s dans le site On trouve cet outil de projets dans developer aldebaran robotics com Dans ce site nous avons trouv un projet en relation au notre pour la lecture de codes DataMatrix 2 La derni re version du projet est un fichier Choregraphe DataMatrix 1 0 crg voir annexes pr t pour le lancer Pour la lecture des codes le d veloppeur a utilis la librairie libdtmx 3 qui d code les DataMatrix et les codes de barres sur plusieurs syst mes d exploitation Le code est d velopp pour l ancienne version de Nao soit la 1 12 Version sur laquelle le programme a t d marr sans soucis Malheureusement nous avons trouv des probl mes de compatibilit avec la derni re version de Nao classifi e 1 14 1 1 2 Emox Emox est un petit robot ressemblant un chiot avec deux roues une puissante cam ra et plusieurs capteurs Il mesure 23 cm de longueur 15 5 de largeur et 16 cm d hauteur ce moment Emox est un robot en d veloppement raison pour laquelle il est aussi appel EmoxLab Il est d sign par Awabot Robotics une petite entreprise situ en Villeurbanne qui est surtout centr e dans ce projet D veloppement de modules de vision pour les robots NAO et EMOX Page 7 Comme on a expliqu Emox n est pas encore un robot commercialis il est vendu comme un outil pour la recherche Dans l image ci dessous les deux versions d Emox sont pr sent es gauche on trouve celle qui est vendue actuelleme
43. ody Re e E lign e_noire MoveBody_ D veloppement de modules de vision pour les robots NAO et EMOX Page 61 3 7 Solutions de probl mes 3 7 1 Connexion voie router tant donn qu Emox Lab est un prototype nous avons trouv quelques soucis pendant le projet La plupart d eux sont des probl mes en relation avec la connexion wifi En fait c est une partie laquelle selon M Faguet n est pas encore compl tement d velopp e On doit attendre la nouvelle version du robot avec le code d velopp par Awabot m me avec laquelle on esp re ne pas trouver ces difficult s Aujourd hui il existe deux fa ons pour nous connecter au robot voie ad hoc ou voie router Normalement nous avons utilis la connexion ad hoc puisque quand nous avons essay l autre nous avons trouv une connexion pire et moins s re Mais de toute fa on nous vous d taillons les pas suivre pour configurer une connexion travers d un router Dans le laboratoire il y en a un qui cr e un r seau appel default D apr s les indications de M Faguet que nous a envoy par mail les pas sont les suivants Remarque importante Avant de manipuler les configurations du robot on doit tre s rs que la batterie du robot est suffisamment charg e au moins avec 80 de sa capacit 1 T l charger le logiciel putty On se dirige au site http wwvw chiark greenend org ukK sgtatham putty download html Et on cherche le fichier putty exe dan
44. on avec un environnement virtuel ou bien en mode connexion avec le robot r el Pour travailler avec le robot virtuel il suffir de lancer l Emox Soft et le robot virtuel et par d faut choisit Pour se connecter au robot r el il faut suivre certains pas avant le lancement du logiciel Quelques uns ne doivent pas tre oubli s et rajout s aux indications trouv es dans le tutoriel d Awabot 1 Allumez le robot et testez que les leds blancs droits soient fixes et ceux de la gauche clignotants 2 Cherchez le r seau ad hoc cr par Emox dans notre cas elle est appel e Emox_Cristal_0005 et se connecter Conectado actualmente a ENSAM WIFI Acceso a Internet pray Sin acceso a la red Conexi n de red inal mbrica ENSAM WIFI Conectado Emox_ Cristal 0005 default eduroam ENSAM WIFI INVITE e reflex livebox Abrir Centro de redes y recursos compartidos 3 Pendant toute l utilisation du logiciel il faut que le firewall de Windows et ventuellement s il existe celui de l antivirus soient d sactiv s Une autre solution possible est de cr er des exceptions dans tous les deux cas pour le logiciel si l adresse du logiciel n est pas chang e pendant l installation normalement on devra mettre C Emox Soft system bin EmoxsSoft exe 4 Lancez l Emox Soft en tant qu administrateur pour viter de futurs probl mes pendant l utilisation d un module Ce But Seit D veloppement de modules de vision p
45. onna tre le couleur l intensit de lumi re et en plus l utiliser en tant qu un lampe http botbench com blog 2011 09 16 exposed lego colour sensor D veloppement de modules de vision pour les robots NAO et EMOX Page 51 Colour Sensor M Detects different colours and light intensity Use it as Colour Sensor Light Sensor or as a lamp L X Colour Sensor Light Sensor Lamp Nous avons propos M Faguet d quiper Emox avec un capteur RGB Pour l instant on distingue les couleurs travers des images capt es et lues par le logiciel tant donn que le mouvement selon l axe vertical est tr s restreint en direction au sol il y a une diff rence de 16cm environ entre la ligne qui est sous Emox et le limite de la vision ce qui fait tr s faible la performance du robot dans le cas de distinguer les couleurs L image pr sent e ci dessous montre la limite de vision d Emox me D veloppement de modules de vision pour les robots NAO et EMOX Page 52 3 5 D tection de la couleur Pour la d tection de la couleur l chelle que les d veloppeurs ont choisi est le mod le HSV Hue Saturation Value soit en fran ais Teinte Saturation Valeur Normalement ce model est mesur dans ces carts Value 1 00 Hue 135 Satur ation Hue 225 Hue 315 Pour la Teinte 02 3602 Pour la Saturation 0 100 Pour la Valeur 0 100 La diff rence par rapport aux che
46. onnecter comme on fait normalement 5 Lancer l application Color Detection et s lectionner la couleur souhait e gr ce la souris Ensuite on va sur la console de debug et on cherche la derni re ligne qui nous montre la plage de la couleur s lectionn e sous la forme Color changed to detect H 85 1901 S 90 256 V 90 256 Les valeurs trouv es gr ce cette d marche sont celles que nous avons mises dans le code pour s lectionner le comportement selon la couleur de la ligne 3 6 Suivi d une ligne avec code couleur Avec le module de suivi d une ligne que nous avons am lior et la d tection de la couleur en d finissant les couleurs manuellement nous voulons faire qu Emox suive un circuit avec de diff rents comportements en fonction de la couleur de la ligne Il faut remarquer que dans le module d Awabot aucune distinction de couleur n est faite et que toutes les couleurs apparaissent comme noir Nous avons donc achet trois rubans adh sifs de couleurs diff rentes noir vert et rouge pour simuler un circuit D veloppement de modules de vision pour les robots NAO et EMOX Page 57 Nous souhaitons que le robot soit capable de suivre la ligne noire tout en ob issant aux comportements pr par s par les lignes de couleurs tout en les suivant Nous avons d cid qu une ligne verte indiquera une augmentation de la vitesse et une ligne rouge dans une bifurcation donnera de la priorit se chemin et se sera donc cel
47. os propres modules pour le d codage de QR codes sur Nao en utilisant la librairie ZBar Pour cela nous avons utilis deux m thodes e En cr ant des modules C e Avec un projet Choregraphe 2 4 1 Par console Prenant de basse le code grdecoder pyw nous l avons reprogramm afin de pouvoir l utiliser pour la reconnaissance des codes QR par Nao Nous rappelons que le code original permet de d coder un code QR contenu dans une image qu on ajoute dans l interface de l application Ce que nous voulons d velopper c est de modifier le code afin de d coder l image capt e par Nao Pour cela ce que nous avons modifi est la fa on de prendre le fichier Normalement le code obtienne l image partir de l adresse de cette fa on ci pil Image open unicode self lineEdit location text convert Ll tant self lineEdit location text la commande qui retourne la localisation de l image Ici ce qu il faut changer c est cette commande par un variable contenant l adresse par elle m me Autrement dit ce qui Nao fait quand il prend des images est las sauvegarder en m moire Nous simulons le fonctionnement avec une adresse de fichier mais elle sera valide m me avec une adresse de m moire Ci dessous deux petites parties du code qui montrent son fonctionnement voir le code complet en annexe 4 Decoder QR code avec ZBar D veloppement de modules de vision pour les robots NAO et EMOX Page 25 print vn Quelle image voule
48. our les robots NAO et EMOX Page 40 5 Dans le logiciel cliquez sur le bouton Simulation Emox Lab situ en bas droite sur la barre bleue On devra trouver un onglet comme celle de l image suivante ED G Learn Apps Tools New application OoOO Simulation Emox Lab a Network Categories Livebox ff03 EmoxCrista 005 Connection SFR WFi Mobile Livebox 568 1 FREEBOX_SERGE Livebox dcSd Livebox 6d20 Emox_Cristal_0005 Simulation Simulation Emox Lab La premi re fois qu on d marre le logiciel apr s d avoir allum le robot ce n est pas rare qu on ne trouve pas le robot dans la liste situ e droit le robot doit prendre son temps pour tre pr t Si c est le cas il ne faut que cliquer sur le bouton bleu Reload ou bien si cela ne suffit pas relancer l Emox Soft 6 Attendez que la barre rose de connexion sur la barre bleue soit compl te et afin de tester qu on est bien connect et que on n a pas des autres soucis d marrez une application si c est votre premi re connexion voir 7 Si tout est bien pass on devrait obtenir un cran comme celui ci dessous D veloppement de modules de vision pour les robots NAO et EMOX Page 41 Tools New application CEE 10 EmoxCristai000S Emox_Cristal_0005 Connecting emez Apps Tools New application mox_Cristal_0005 EmoxCristal000 p Une fois connect s si on trouve que le logiciel n arrive pas mon
49. plus petite donc l utilisation de l espace est plus efficace ils peuvent stocker des symboles japonais appel s symboles kanji et ils ont une meilleur gestion pour la perte d information donc il existe la possibilit d y mettre au dessus des logos Cette particularit fait que ces codes ci puissent porter des publicit s et soient donc plus attractifs pour les entreprises D veloppement de modules de vision pour les robots NAO et EMOX Page 9 Ci dessous un code QR qui contient un lien vers http www ensam fr H Col e ET M TIERS Parislierl D veloppement de modules de vision pour les robots NAO et EMOX Page 10 2 NAO 2 1 Installation des outils et des librairies n cessaires pour la lecture avec Nao sur Linux Ubuntu Premi rement nous avertissons quil est tr s importante de regarder l information en relation au syst me d exploitation choisi dans le site de documentation d Aldebaran dans la rubrique C SDK Installation http www aldebaran robotics com documentation dev cpp install guide html car selon la version install e sur Nao on doit choisir une version concr te du SE surtout par rapport l installation de Linux normalement la derni re version d Ubuntu ne sera pas compatible car c est un SE toujours mis jour et il peut y avoir des incompatibilit s avec le robot On doit bien regarder sur le coin sup rieur gauche que la documentation lue et celle de la version de Nao qu on a mise en p
50. ppement de modules de vision pour les robots NAO et EMOX Page 11 SIP by Phil Thompson GNU GPLv3 ZBar by Jeff Brown GNU LGPLv2 1 Python Imaging Library PIL by Secret Labs AB amp Fredrik Lundh Il existe un outil Linux pour faire l installation de fa on presque automatique On doit ouvrir une terminale pour y travailler Les commandes qu on utilisera sont sudo apt get install lt librairie installer gt gr ce ce commande ci le programme cherchera s il existe la librairie dans la base de donn es vous dira la taille de l installation et vous demandera si l on veut continuer ou pas S il n existe pas la d pendance sous le nom que nous avons mis il faut crire le suivant commande apt cache search lt librairie chercher gt parfois lorsqu on met le nom de la librairie l application dit que n existe pas Ce cas n est pas rare et c est parce que il y a des librairies qui ont plusieurs paquets diff rents plus d une version ou tout simplement parce que le nom n est pas concret en soi m me Si on trouve ce souci on crit apt cache search et nous arriverons trouver une liste des possibles solutions On choisit celle qu on croie qui sera la librairie cherch e et on tape la commande d installation ci dessus Remarque Il est n cessaire d crire le mot sudo devant la commande puisque on a besoin des droits de super utilisateur de m me fa on qu on fait sur Windows en choisissant en tant qu adm
51. rld Clean previous code if hasLocalSlot _ root seguirlineaavanzado cabeza Si if Object hasLocalSlot removeLocalSlot H removeLocalSlot _root_seguirlineaavanzado_cabeza_5 else H removeSlot _root_seguirlineaavanzado_cabeza_5 var _root_seguirlineaavanzado_cabeza_5 fsm State new _root_seguirlineaavanzado_cabeza_5 _root_seguirlineaavanzado_cabeza_5 params_dict Dictionary new var root _seguirlineaavanzado cabeza pb _nodes_ Object new TurnRight state declaration var _root_seguirlineaavanzado cabeza 5 _ nodes_ TurnRight fsm State create_ _root_seguirlineaavanzado cabeza 5 _nodes _TurnRight root seguirlinesavanzado cabeza S function push 1 TurnRight pop 0000013414 0000013414 Check our community site http www 1 ifor 0000013414 Urbiscript C Emox Soft applications learn linetest graphs seguirlineaavanzado_cabeza u loaded Learn linetest Simulation Emox Lab D veloppement de modules de vision pour les robots NAO et EMOX Page 44 e Programmation graphique emex 5 Q Reload Display virtual worid File Edit Project View Window Help b Logic gt Motion b Vision RunColaDetection Console 0000013414 0000013414 0000013414 Learn linetest Simulation Emox Lab e Programmation mixte eme Q Reioaa Display Edition Cl virtual world File Edit Project View Window Help
52. rocessor Le scan de vid os en temps r el permis par ZBar est tr s int ressant pour notre projet puisque de cette fa on Nao serai capable de d tecter un code QR n importe quel instant sans avoir l avertir par exemple Nous avons crit un code en Python pour lire des QR codes dans des images qui se trouve en annexes Ce code a t test et fonctionne correctement sous linux KEE Usage d OpenCV au lieu d ImageMagick ZBar n est pas capable par lui seul d ouvrir des fichiers tel que de images c est pour cela que l on doit faire recours l ImageMagick Cependant Nao incorpore d j une biblioth que pour traiter des images Il s agit de l OpenCV De plus dans la version 1 14 la version d open cv int gr e dans Nao est upgrad e la 2 3 1 Travailler avec ImageMagick nous oblige inclure une biblioth que suppl mentaire c est pour cela qu il est int ressant de remplacer ce logiciel par l OpenCV Pour faire ce remplacement il faut faire charger l image de la mani re suivante en C D veloppement de modules de vision pour les robots NAO et EMOX Page 21 Avec ImageMagick read an image file Magick Image magick argv 1 extract dimensions int width magick columns int height magick rows extract the raw data Magick Blob blob magick modifyImage magick write amp blob GRAY 8 const void raw blob data wrap image data Image image width raw width h
53. s Binaries gt For Windows on Intel x86 Il n y a pas besoin d installation juste double clic 2 D marrer le robot et nous connecter son r seau sous Windows pas sous Emox Soft 3 Lancer l ex cutable afin d obtenir l ouverture de la fen tre ci dessous D veloppement de modules de vision pour les robots NAO et EMOX Page 62 SS PuTTY Configuration Category Session Ligen L DE Window is Ve m Appearance H Behaviour EE Serial Load save or delete a stored session Translation Saved Sessions Selection orm Default Settin famosa Defaut Settings Co nnection Load Data KS Telnet Delete Rlogin d SSH E Close window op exit Always Never Only on clean EES W Sa About Cancel Il faut s lectionner SSH comme type de connexion et crire Adresse par d faut en ad hoc 172 17 6 1 Port de communication 22 D marrer le programme 4 Le programme doit ouvrir une console comme la suivante 172 17 6 1 PuTTY ce X On y doit crire Nom d utilisateur root Mot de passe marvell Maintenant nous sommes connect s au syst me interne Linux du robot D veloppement de modules de vision pour les robots NAO et EMOX Page 63 5 Pour configurer la connexion wifi par router les commandes taper sont cfg set wireless fav infra lt SSID gt
54. s deux sens de rotation Les sch mes des deux positionnements d un pont H simple sont e Un syst me Linux embarqu D veloppement de modules de vision pour les robots NAO et EMOX Page 38 Une carte Arduino d extension avec un microcontr leur Atmel 8Mhz http www arduino cc fr L avantage de cette carte c est qu on dispose des ports libres en plus pour y int grer des autres capteurs ou moteurs Port 12C Entr e Sorties num riques Mesure capteurs analogiques 5 et 6 Mesure sortie codeurs moteurs Mesure sortie servomoteurs 12C non fonctionnel Entr e sortie num riques Arduino num ro de port arduino en rouge Capteurs 5 amp 6 Valeur capteur 6 Valeur capteur 5 Sortie codeur Codeur Droit Codeur Gauche moteur Signaux PWM Signal PWM2 Signal PWM1 servomoteurs PAN TILT 3 2 Installation et connexion Apr s l installation de la premi re version du logiciel Emox Soft 1 0 0 nous n avons pas r ussi nous connecter correctement au robot et nous n avons pu d marrer aucun module Nous avons suivi le Manuel d utilisation et contact avec M Faguet pour chercher une solution D veloppement de modules de vision pour les robots NAO et EMOX Page 39 Dans un second terme M Faguet nous a fourni une deuxi me version du logiciel Emox Soft 1 0 1 avec lequel nous avons finalement r ussi nous connecter au robot Ce logiciel permet de travailler en simulati
55. s entre 4 et 40cm datasheet http www dema net pdf sharp GP2YOA41SKOF pdf Il faut remarquer que la mesure minimale est 4 cm car la distance des objets dispos s une distance inferieure peut ne pas correspondre la celle qu on a r ellement telle que l image ci dessous nous montre 40 35 30 25 distance mesur e 20 15 10 i 5 0 5 10 15 20 25 30 35 40 45 0 distance r elle Comparaison entre la distance r elle en centim tre de l obstacle et la valeur mesur e par le capteur On remarque qu courte distance c est dire moins de 4 em la valeur mesur e peut correspondre deux distances r elles Ils sont situ s e 4 en face positionn s de telle fa on qu il puisse reconna tre ce qu il a juste devant et sur les deux c t s gor b Capteur frontal gauche distanceFL val Capteur gauche distanceL val e 2a l arri re pour la m me raison COMMANDES valeurs retourn es en cm Capteur de derri re droit distanceBR val Capteur de derri re gauche distanceBL val D veloppement de modules de vision pour les robots NAO et EMOX Page 34 Deux capteurs de distance num riques infrarouges Sharp GP2Y0 datasheets http www alldatasheet com view jsp Searchword GP2Y0 e Distance lt 5cm Sharp GP2YOD80570F situ dans la partie du dessous pour d tecter s il est appuy sur une surface Son principale utilisation est pour le programmer de telle fa on que s il est pris et
56. t L Cela est le produit d avoir ins rer la commande Convert LL Convert est une m thode d une instance Image qui retourne une copie transform e de l image Dans ce cas l ordre L transforme l image de couleur une image noir et blanc La commande self lineEdit location text envoie l adresse de l image qu on a mise dans l interface La commande pilsize retourne les deux valeurs des dimensions de l image largeur et hauteur 250 et 300 dans l exemple width height pil size La troisi me ligne raw pil tostring sauvegarde dans raw une cha ne contenant les donn es des pixels de l image avec un encodage de type raw 2 3 2 ZBar ZBar est une librairie crite en C open source compatible avec CC python ainsi que d autres langages de programmation Cet outil permet une rapide d tection ainsi que le d codage de codes barres et QR codes Plus pr cis ment les codes que ZBar est capable de reconna tre sont e QR codes e EAN 13 e UPC A e UPC E e EAN 8 e Code 128 e Code 39 e nterleaved2of5 Avec cette librairie on peut scanner des images une une fonction ImageScanner ou bien une vid o avec la mise en place d un callback D veloppement de modules de vision pour les robots NAO et EMOX Page 20 fonction The Processor Des codes en C ou Python sont propos s pour utiliser ces fonctions http sourceforge net apps mediawiki ZBar index php title HOWTO Sc an video using the P
57. te Nous faisons aussi le calcule de S et V mais nous utiliserons les valeurs fixes 50 256 HSV CONVERTISSEUR 156 146 166 gt 204 251 241 261 224 217 207 201 127 CH us VERT Quand nous avons mis ces valeurs dans le script nous avons constat que 193 135 125 145 les couleurs pour l Emox Soft ne co ncident pas avec les couleurs r elles sur l chelle 0 255 que nous croyions Pour cette raison nous avons d cid de le faire de la fa on suivante 3 5 1 2 travers de la console de debug d Emox Soft Dans un deuxi me temps nous avons mis les valeurs obtenues dans le code mais nous avons trouv que les couleurs d tect es ne correspondaient pas aux trois couleurs souhait es Pour cette raison nous avons mis une question concernant ce soucis dans le forum et nous avons obtenu une r ponse tr s utile il est possible de savoir les valeurs capt es par le logiciel quand on d marre l application de choix de la couleur par la souris Ce qu on doit faire est lancer l Emox Soft avec la console de debug Pour cela et pour conna tre les couleurs il suffit de D veloppement de modules de vision pour les robots NAO et EMOX Page 56 1 Ouvrir une invite de commandes 2 Se placer dans le dossier contenant l ex cutable emoxsoft exe 3 Taper EmoxSoft exe dev L Emox Soft sera lanc avec une console qui nous dira l information qu on veut 4 Chercher le robot et nous c
58. tendez que le prompt soit disponible attendez au symbole puis tapez reboot et finalement red marrez le robot D veloppement de modules de vision pour les robots NAO et EMOX Page 65 4 Conclusion Gr ce ce projet nous avons eu l occasion de conna tre deux robots diff rents les diverses fa ons existantes pour les contr ler et en plus nous avons appris des nouveaux langages de programmation Nous avons tabli les bases pour la continuation de ces projets au sein du laboratoire de M catronique et Robotique Par rapport Nao nous avons d j fait la recherche des librairies et applications existantes pour arriver une solution Nous avons d autre part tudi les multiples fa ons de les int grer lesquelles sont toutes d taill es dans le rapport Pour la partie d Emox nous avons t les l ves charg s de l accueillir de l tudier et de d couvrir et apprendre son fonctionnement et le langage associ En plus nous avons expliqu les possibles soucis avec ce robot prototype et les solutions connues jusqu au pr sent Nous esp rons que la nouvelle version du robot sera plus performante plus fiable et que le syst me embarqu cette fois d velopp par Awabot m me permettra une programmation plus compl te et accessible D veloppement de modules de vision pour les robots NAO et EMOX Page 66 BIBLIOGRAPHIE Introduction 1 http developer aldebaran robotics com 2 http www youtube com w
59. trer aucune image de la cam ra d Emox ou qu il se plante cela peut tre caus par Le firewall de l antivirus n est pas bien d sactiv Nous avons appr ci que quand on a oubli d sactiver celui de l antivirus quand on d marre une application par exemple Head Calibrator le logiciel ne montre aucune image ne r pond pas puis plante finalement D veloppement de modules de vision pour les robots NAO et EMOX Page 42 Probl me associ la carte vid o Il est dit dans le Manuel d utilisation qu une requise d hardware est d avoir une carte vid o avec 512 Mo de Ram d di e 7 En cas de premi re connexion avec la plateforme il faut lancer avant tout une application qui permet de calibrer les moteurs de la t te Cette tape permet de prot ger les servomoteurs Elle est appel Head Calibrator et on la trouve dans l onglet Tools Quand on d marre l application on devra voir l image capt e par la cam ra du robot et quatre num ros situ s droit gauche en bas et en haut Ces num ros indiquent les valeurs de rotation des servomoteurs Suivez les indications montr es bougez la t te jusqu au maximum selon les deux axes de rotations Attention bougez la t te doucement et ne forcez pas les limites du mouvement Apr s suivre les indications les valeurs que nous avons obtenues sont emez QO Reload men Edition Gi Virtual World Siam mneh ElupliteEst liliclion
60. tte partie du projet Il faudrait donc pr sent linker les librairies n cessaires ZBar et ImageMagick si on ne la change pas par OpenCV comme nous en avons expliqu pr c demment D veloppement de modules de vision pour les robots NAO et EMOX Page 31 3 EMOX 3 1 Description technique Nous parlerons des d tails techniques de cette version prototype d Emox l Emox Lab En principe la nouvelle version qui arrivera en mars sera quip e avec presque les m mes caract ristiques mais nous ne sommes pas certains pour l instant Dans cette section nous ne nous arr terons pas dans la description des l ments m catroniques mais aussi nous parlerons de ses r sultats pendant son fonctionnement et les commandes du control dans la console du logiciel D veloppement de modules de vision pour les robots NAO et EMOX Page 32 snoss p ap anA uoIsus3 Xs p sIn p uuo l Pi l uono ES Ba HO UO uoynog ina 1ed 1neH IN enbuawunu inaide 9191113P ap anA CN nbu wnu inajde LA 1 u enb ojeue LI anbi ojeue yi Image ge wes A Hi nade A anbiSojeue ag yi mande apbu oupug G u anbiSojeue g u anbisojeue e yi inade ylinajde yi made auoydonyy Page 33 D veloppement de modules de vision pour les robots NAO et EMOX Pour la lecture de l environnement il est compos de Six capteurs Sharp GP2YOA41SKO0F de distance analogiques infrarouges qui d tectent des obstacles pos
61. u comme Emox One Lorsqu on cr e une compte on peut lire en plus les informations et les questions post es dans le forum sur le projet Emox Lab ce que nous int resse dans le cadre de notre projet D veloppement de modules de vision pour les robots NAO et EMOX Page 8 Accueil Ma page Projets Aide Connect en tant que LuisArroyo Mon compte D connexion Recherche M TETE ME P Awabot Redmine Accueil Derni res annonces Derniers projets Emox One ROS Fuerte e Emox One 15 01 2013 14 45 Choix de version ROS Emox One est le projet de robot compagnon d Awabot L objectif pour fin 2013 est d aboutir Ajout par Renaud Didier il y a 11 jours un d monstrateur produit un maquette du design potentiel et un ensemble de support pour pitcher le produit Emox Lab News du projet Ajout par thomas faguet il y a 18 jours Premi re phase gt 31 03 2013 SE i D velopper une plateforme prototype exposant toutes les fonctionnalit s n cessaires Emox One Premi re intervention de matali Crasset Workshop bilan exp rience Emox Lab e Emox Lab 07 01 2013 08 59 Ajout par Renaud Didier il y a 19 jours Ce projet a pour but d industrialiser le robot Emox et de finaliser le logiciel Emox Soft Emox One Int gration de Caroline Queva R gles de fonctionnement du Redmine Emox Lab Caroline est la premi re ing nieur stagiaire rejoindre le projet Emox One Les informations post es sur le wiki les documents et les informations
62. ui l qu Emox devra suivre Le comportement sur le circuit serait donc le suivant Parcours avec Parcours sans comportement selon la comportement selon la couleur couleur is Suivi de la ligne rouge E EE DIE Vitesse augment e Os 1 Point de d part Point de d part Nous avons vue ant rieurement comment programmer le suivi d une ligne et comment d tecter les couleurs par script c est gr ce ces deux concepts qu on est capable de concevoir notre module D veloppement de modules de vision pour les robots NAO et EMOX Page 58 1 Lors du d marrage du module nous introduisant un n ud que l on programme uniquement avec du script pour s lectionner les couleurs comme expliqu auparavant Il est cependant important de signaler qu il est n cessaire de lancer colorDetection startDetection apr s introduire une nouvelle couleur colorDetection addColor UColor new red colorDetection setColorSpace red 166 2 60 256 60 256 colorDetection startDetection colorDetection addColor UColor new green colorDetection setColorSpace green 72 95 60 256 60 256 colorDetection startDetection 2 Cette partie est en charge du suivi des lignes noires 3 Ce n ud g re le suivie de la ligne rouge Au contraire que pour le suivi de la ligne la t te ne va pas suivre une ligne mais une couleur En effet nous ne nous servons pas du module d Awa
63. ur 20 orientation de la t te cm s Comme il y a une partie constante dans la vitesse le robot va avancer de fa on constante et les corrections de position pour suivre la ligne vont tre int gr es dans le mouvement de sorte que l utilisateur le per oit comme une seule action press H for help ee I mm D veloppement de modules de vision pour les robots NAO et EMOX Page 50 Le graphe est le suivant te on d ees MoveH oPiEn sr d p P n P e em o a A mm f S K Yi 7 d mg em a Wm K e pon o f 8 D D marrage marrage On baisse la re suivi dela _ is t te au robot j ligne d pour regarder le sol gt e Be LE ligne or Si le robot perd de vue la ligne il N ud qui g re l alternance entre le tourne sur lui m me pour la mouvement de la t te pour regarder retrouver la ligne puis du corps pour s aligner 3 4 1 Possible am lioration du hardware Il existe un projet dans le laboratoire de m catronique de PENSAM avec un robot de la marque de jouets Lego connu comme Lego Mindstorms NXT 2 0 Q 2 r N d i Ce projet est tr s proche au notre car ils ont construit une robot voiture qui doit suivre une ligne et r aliser diff rents mouvements selon les couleurs Par rapport Emox le robot de Lego emporte un capteur tr s utile pour cette fonction un capteur de couleur C est le capteur RGB montr dans l image ci dessus avec lequel on peut rec
64. vons d arr ter le projet Nao Le projet donc reste ouvert pour les nouveaux l ves D veloppement de modules de vision pour les robots NAO et EMOX Page 28 2 4 2 Choregraphe Apr s avoir vu le projet DataMatrix d Aldebaran nous avons voulu le modifier de fa on ce qu il lise les codes QR Pour cela nous avons modifi le script bu box du projet d Aldebaran Le script r cup re l image du robot puis l analyse avec le libdtmx C est cette derni re partie qu il faut modifier Get image from Nao s camera self cam subscribe dmtx kQQVGA kRGBColorSpace 5 Warning use QQVGA 160x120px otherwise it s horribly long img self cam getImageRemote dmtx self cam unsubscribe dmtx Pour d coder l image on utilise le m me code que dans la section pr c dente par console Decode the image decodelmage img au lieu de self dm decode img img 1 buffer img 6 On rappelle que img self cam getImageRemote nom image Parse results result list symbol data Hpour remplacer result list self dm message i for i in range 1 self dm count 1 D veloppement de modules de vision pour les robots NAO et EMOX Page 29 Une fois ce code crit nous devons inclure la librairie dans le projet C est cette tape qui n a pas t conclue et qui ne nous a donc pas permis de tester nos codes Nous avons essay de linker les librairies en les copiant dans un dossi
65. wep ou wap lt key gt cfg commit reboot Dans notre cas cfg set wireless fav infra default cfg commit reboot 6 Les leds hauts du robot seront tendues et alors on doit red marrer le robot Peut tre on veut remettre les configurations initiales du wifi pour nous connecter voie ad hoc car on ne veut plus se servir du router Les pas suivre sont les m mes qu on a suivi ci dessus mais au pas 5 nous devons taper cfg set wireless fav infra lt gt wep lt gt cfg commit reboot 3 7 2 Des autres probl mes trouv s Apr s avoir chang la configuration du r seau pour nous connecter travers du router nous avons test que la connexion n t pas plus performante et nous avons plus de pertes de connexions raison pour laquelle nous avons suivi les pas n cessaires pour retourner la configuration initiale Apr s cette d marche nous n avons pas r ussi nous connecter Malgr que le r seau ad hoc a t cr e et que nous trouvons le robot depuis le logiciel au moment de la connexion sur le coin inferieur droit on trouvait Emox Cristal 0005 Concecting Si on trouve ce souci une solution possible est de reflasher le firmware du robot Les pas qu on doit suivre sont les suivants Remarque importante Avant de manipuler les configurations du robot on doit tre s rs que la batterie du robot est suffisamment charg e au moins avec 80 de sa capacit 1 T l chargez les logiciels
66. z vous d coder n imagen raw input gt imagen home luis PJE linux qrdecoder qrdecoder 1 2 test baboon jpg decodelmage imagen def decodelmage img scanner ZBar ImageScanner scanner parse config enable pil Image open img convert L width height pil size raw pil tostring pil show Dans le main il est positionn la fin du code nous d finissons la variable imagen qui sera appel dans la fonction decodelmage La fonction raw_input gt permet obtenir l adresse mise par terminale Quand la fonction decodelmage est appel e la variable d entr e est img En plus nous avons ajout pil show la fin une fonction du PIL pour montrer l image trait e Avec ces changements et l limination des lignes concernant l interaction avec l interface le code est pr t pour recevoir l image la d coder et envoyer le message contenu La partie du code charg e du d codage est D veloppement de modules de vision pour les robots NAO et EMOX Page 26 scan the image for barcodes scanner scan image extract results for symbol in image if symbol print Image contain a code else print Image does not contain a OR code for symbol in image print symbol type do something useful with results if symbol type is not symbol QRCODE print Image does not contain a OR code return print L information du code est n symbol data vn clean up

Download Pdf Manuals

image

Related Search

Related Contents

Optibox pony - Users Manual German  V7 TFT / LCD Cleaning Wipes  Installation Guide  Nortel Networks Industrial Handset User's Manual  救護所用空気膨張式テント 及び 空港用救急医療資器材 仕 様 書  König SEC-DUMMYCAM90  Z-Flash UG_EN.fh10  USER GUIDE - Solid Signal  Fujifilm QP242 User's Manual  054305 Walkie  

Copyright © All rights reserved.
Failed to retrieve file