Prise en main du robot AIBO et développement d`un programme
Transcription
Prise en main du robot AIBO et développement d`un programme
École Polytechnique de l’Université de Tours 64, Avenue Jean Portalis 37200 TOURS, FRANCE Tél. +33 (0)2 47 36 14 14 www.polytech.univ-tours.fr Département Informatique 4e année 2012 - 2013 Rapport de Projet de Robotique Prise en main du robot AIBO et développement d’un programme pour faire interagir le robot avec des objets Professeur Mohamed SLIMANE [email protected] Nicolas MONMARCHE [email protected] Étudiants Erwann Cloarec [email protected] Anais Linot [email protected] Université François-Rabelais, Tours DI4 2012 - 2013 Version du 15 janvier 2013 Table des matières 1 Introduction 2 Présentation générale 2.1 Un compagnon unique . . . . 2.2 Un compagnon divertissant . 2.3 Un compagnon qui s’exprime 2.4 Un compagnon intelligent . . 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 9 10 3 D’un point de vue robotique 3.1 Composition d’AIBO . . . . . . 3.1.1 L’anatomie du robot . . 3.1.2 Les capteurs du robot . . 3.1.3 Les moteurs du robot . . 3.2 Contrôler AIBO . . . . . . . . . 3.2.1 Comportement par défaut 3.2.2 Autres solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 11 11 12 12 12 12 . . . . . . . . . . . . . . . . . 13 13 13 14 14 14 14 15 17 17 17 17 18 19 19 19 20 20 . . . . 4 Programmation d’AIBO 4.1 Activation d’AIBO . . . . . . . . . . . . . . . . . . 4.1.1 La carte contenant le logiciel AIBO MIND-2 4.1.2 La carte programmable . . . . . . . . . . . 4.1.3 La communication . . . . . . . . . . . . . . 4.2 Manipulation des logiciels fourni par Sony . . . . . 4.2.1 AIBO WLAN Manager . . . . . . . . . . . 4.2.2 AIBO Entertainment Manager . . . . . . . 4.3 R-CODE . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Le langage . . . . . . . . . . . . . . . . . . 4.3.2 Application . . . . . . . . . . . . . . . . . 4.4 URBI . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Le langage URBI : les objets pour AIBO . . 4.4.2 Le langage URBI : la grammaire . . . . . . 4.4.3 La configuration des fichiers . . . . . . . . 4.4.4 Le contrôle à distance . . . . . . . . . . . . 4.4.5 Balltracking . . . . . . . . . . . . . . . . . 4.4.6 Notre programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Conclusion 22 6 Bibliographie 23 7 Annexes 24 III Table des figures IV 1.1 AIBO ERS-7, le petit chien robot de SONY . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1 2.2 2.3 AIBO et ses deux jouets préférés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les zones tactiles d’AIBO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Différents états d’AIBO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 9 10 3.1 Capteurs d’AIBO permettant la relation avec un objet . . . . . . . . . . . . . . . . . . . . 12 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 AIBO dans sa position avant l’allumage . Les deux cartes d’AIBO . . . . . . . . . . Le logiciel WLAN Manager : configuration Le logiciel WLAN Manager : configuration Le logiciel AIBO Entertainment Manager : Le logiciel AIBO Entertainment Player . . AIBO recherche la balle . . . . . . . . . . AIBO a trouvé sa balle . . . . . . . . . . 13 14 15 15 16 16 21 21 . . . . . . . . . . . . . . . . . . du Wifi . . . . de l’utilisateur . configuration de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . la connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des tableaux 4.1 4.2 Détails des moteurs du robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Détails des capteurs du robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 19 V Introduction Depuis 1999 et jusqu’en 2006, l’entreprise SONY a créé et mis sur le marché de nombreux robots chiens appelés AIBO. Leur création avait pour but d’introduire les robots dans la vie quotidienne des humains et de les faire interagir avec, afin de le familiariser avec ces derniers. Ainsi, ces robots présentent des capacités : – De chien de compagnie : grâce à leur capacité d’auto-apprentissage, ils peuvent apprendre à reconnaitre les personnes qui l’entourent et ainsi ressentir de l’affection pour eux, apprendre différents ordres enseignés par leurs maitres, jouer avec leurs jeux préférés : la balle rose et l’os, le jouet AIBOne. – De robot : même si ils ont la capacité de l’auto apprentissage, ils ne peuvent encore remplacer aucun animal de compagnie. En effet, leur réaction avec l’humain n’est pas directe et l’interaction n’est pas toujours facile, ils nécessitent de la batterie pour être utilisés, mais surtout, ils exécutent des actions qu’aucun animal de compagnie n’est capable de faire telles que prendre des photos, envoyer des mails etc. Ces robots ont ainsi d’énormes capacités à exploiter, ils sont capables d’apprendre beaucoup de commandes et d’actions. Ainsi, à travers ce projet, nous devons tout d’abord prendre en main le robot AIBO, afin de nous habituer à communiquer avec lui, autant en interagissant avec lui(jouer avec lui, lui parler etc), qu’en codant des programmes à exécuter(programmes permettant des déplacements, mouvements sur le robot etc) pour ainsi voir l’étendue des actions qu’il peut faire et apprendre. Puis par la suite, nous devons lui apprendre une nouvelle commande : suivre un objet qui lui est présenté. C’est à dire qu’à partir de n’importe quel objet qui lui est présenté, le robot devra réagir, reconnaitre l’objet et le suivre de son regard, se déplacer. Figure 1.1 – AIBO ERS-7, le petit chien robot de SONY 6 Présentation générale Le robot sur lequel nous allons travailler est le chient robot AIBO ERS-7. Il a été créé en 2002 par l’entreprise SONY, il est l’un des derniers chiens robots et fait partie de la 3ème et dernière version des robots chiens. Son nom AIBO est un diminutif venant du fait qu’il est doté d’intelligence artificielle (AI) et que c’est un robot (BO). Le but principal de sa création était de faire interagir les robots dans la vie quotidienne des humains : C’est pour cela qu’AIBO est un robot très autonome, qui sait se prendre en main (aller se recharger tout seul, entrer en interaction avec des humains...) et qui s’adapte à la vie des humains, mais qui a beaucoup besoin des humains pour vivre, apprendre et avoir sa propre personnalité. Nous allons dans cette partie présenter les qualités d’AIBO dans sa fonction d’animal de compagnie. 2.1 Un compagnon unique A la manière dont ils sont éduqués et entourés, les chiens robots AIBO sont uniques. C’est l’ensemble des relations qu’il entretient avec les personnes qu’il rencontre, et les expériences qu’il apprend, qui font grandir le robot AIBO. En effet, il apprend principalement de ses maitres. Le robot enregistre tout d’abord les voix et les visages des personnes qu’il rencontre et plus il les voit, plus il montrera des signes d’affections envers eux. Il peut apprendre à reconnaitre les objets préférés de ses maitres grâce à des commandes préconfigurées, et également ce que ses maitres aiment et ce qu’ils n’aiment pas. C’est pour cela qu’il est unique, aucun chien ne sera éduqué de la même manière. 2.2 Un compagnon divertissant AIBO est également un compagnon très divertissant. Tout d’abord, il a avec lui ses deux jouets préférés qu’il reconnait très bien et avec lesquels il adore jouer : – Son AIBOne : AIBOne est une contraction de AIBO et de BONE, signifiant os en anglais. Lorsqu’il voit son AIBOne, il affiche sur son visage une représentation de son AIBOne, il se rapproche de lui et se met en position pour l’attraper et le tenir dans sa bouche. – Sa balle rose : lorsqu’il voit sa balle rose, il affiche également une représentation de la balle sur son visage, puis se rapproche de sa balle et joue avec, en mettant des légers coups de pattes dedans. Le robot apprend à jouer avec, et par de nombreuses pratiques, il acquerra des niveaux. Il peut également aller instinctivement vers eux s’il les aperçoit et jouer avec. AIBO est tout joyeux à la vue d’un de ses deux jouets, il le montre grâce aux expressions sur son visage. Le robot est configuré pour reconnaitre ses jouets. En effet, il reconnait ses jouets dès qu’on lui présente mais également, il reconnait des commandes vocales qui permettent de faire jouer l’humain avec le robot et avec ses deux jouets. Le robot reconnait trois commandes vocales : – Find your AIBOne, AIBO effectue des mouvements de tête pour chercher autour de lui s’il voit son os. Des qu’il l’aperçoit, il le prend dans sa bouche. – Bring me your AIBOne, cette commande doit être dite quand le robot a son os dans la bouche. Il y répond en éjectant l’os de sa bouche avec ses deux pattes avant et le renvoie vers la personne qui lui a dit cette commande. – Find your ball, AIBO effectue des mouvement de tête pour chercher autour de lui s’il voit sa balle rose. Des qu’il l’aperçoit, il s’approche d’elle et joue avec. 7 Chapitre 2. Présentation générale Avec ces commandes, le robot répond à un algorithme préconfiguré. Or si personne ne joue avec lui, le robot est en mode autonome, c’est à dire qu’il décide de la façon dont il s’amuse avec ses deux jouets s’il les aperçoit, il posera ses propres jugements, ce que l’on appelle de la communication visuelle. Figure 2.1 – AIBO et ses deux jouets préférés Egalement AIBO, tout comme un vrai chien est doté de trois zones sensibles et tactiles : – une sur sa tête – une sur son dos – une au niveau de son menton Sur ces trois zones, AIBO ressent des caresses et va réagir en émettant des sons ou en allumant ses leds pour montrer qu’il est heureux. AIBO est doté d’un mode jeux. Ce mode s’active avec de cartes qu’il reconnait, il suffit de les positionner devant sa caméra, et AIBO reconnait directement les cartes et fait le jeu demandé. AIBO répond à un grand nombre de commandes vocales, qui demandent au robot de se déplacer, de jouer un air de musique, de faire une chorégraphie etc. Mais le robot sait divertir par lui-même en faisant des mouvements qu’il n’est pas possible de lui demander par des commandes vocales : donner la patte, regarder une personne et aboyer, demander de l’affection (caresser sur le dos ou sur le menton, recevoir des compliments) etc. Ainsi, ce qui fait de ce robot, un robot divertissant est principalement dû au fait que l’on peut communiquer avec lui. Cependant, même sans communiquer avec le robot, il sait par lui-même divertir les humains en les faisant prendre part à ses activités, en communiquant avec eux ou en demandant de l’affection. 8 Un compagnon qui s’exprime Figure 2.2 – Les zones tactiles d’AIBO 2.3 Un compagnon qui s’exprime Dans de nombreuses situations, AIBO va exprimer ses humeurs. Il peut être soit content, triste, apeuré, surpris ou en colère. Il exprimera ses humeurs en fonction de l’état dans lequel il se sent mais surtout en fonction des remarques de ses maitres. En effet, des commandes vocales sont préfigurées pour féliciter, gronder ou encourager le robot. On peut alors dire à AIBO qu’on est fier de lui ou au contraire le gronder parce qu’il n’écoute pas ce qu’on lui dit, ne fait pas l’action qu’on lui demande etc. On comprend alors dans quel état se trouve AIBO via les différentes couleurs de ses diodes sur son dos et sur son visage illuminés, en fonction de son état. Le robot peut également exprimer ses émotions avec des tonalités musicales. Il exprime ses émotions grâce aux instincts configurés dans son esprit . Il a cinq instincts de base : – L’instinct d’amour qui se traduit par la volonté de communiquer. – L’instinct de recherche qui se traduit par la recherche de connaissances sur son entourage. – L’instinct de mouvement qui se traduit par l’envie de se déplacer. – L’instinct de recharge qui se traduit par le besoin d’aller recharger sa batterie. – L’instinct de repos qui se traduit par le besoin de recharger sa batterie Ces expressions sont principales pour pouvoir faire communiquer AIBO avec l’humain .Mais ce qui fait principalement d’AIBO, un compagnon unique et divertissant, est dû au fait qu’il utilise son intelligence artificielle pour s’intégrer au mode de vie des humains. 9 Chapitre 2. Présentation générale Figure 2.3 – Différents états d’AIBO 2.4 Un compagnon intelligent La capacité à être intelligent, autonome et ainsi retenir des personnes qui l’entourent, provient principalement de son intelligence artificielle. AIBO est un compagnon intelligent dans la mesure où il répond à des commandes vocales préconfigurées, lui permettant de se lever, de danser, de chercher son AIBOne etc. Il répond par exemple aux commandes : – AIBO, stand up, AIBO se lève. – Let’s dance, AIBO effectue des mouvements de pattes et de la tete qui le font danser, sur une chorégraphie improvisée et sur un air de musique qu’il joue lui-même. Egalement dus à ces instincts, AIBO va se montrer intelligent : – Lorsque sa batterie faiblit, AIBO se rend automatiquement à la station de chargement pour recharger sa batterie. – Si personne ne lui porte d’affection, il peut se déplacer tout seul et jouer avec ses jeux ou alors aller attirer l’attention de quelqu’un en fixant son regard sur lui et en aboyant. – S’il rencontre un obstacle, il va le contourner. L’ensemble de ses capacités lui sont dues grâce aux logiciels qu’il a, qui permettent son intelligence artificielle, mais également grâce à ses capteurs et ses moteurs qui lui permettent l’ensemble de ses mouvements. 10 D’un point de vue robotique 3.1 Composition d’AIBO De quoi est composé AIBO pour pouvoir communiquer et comprendre les humains ? 3.1.1 L’anatomie du robot AIBO mesure 27,8 cm et pèse 1,65kg. Il est composé de : – une tête – deux oreilles – une bouche – quatre pattes – une queue – un estomac – des leds – une caméra – des haut-parleurs – des lumières – 18 moteurs – des capteurs – 20 articulations (degrés de liberté) Son estomac est le dessous du corps du chien, il permet de pouvoir mettre les cartes memory stick contenant les logiciels d’AIBO. Son logiciel principal est le logiciel AIBO MIND 2, qui est sur une Memory Stick. AIBO contient également un module Wifi pour assurer la communication depuis un ordinateur. 3.1.2 Les capteurs du robot Tout comme un autre animal, AIBO a des sens qui lui permettent de ressentir les choses et les interactions avec les humains, le sol etc. Des sens lui viennent des différents capteurs qu’il possède : – Le sens du toucher : Le robot contient quatre capteurs tactiles qui lui permettent de ressentir toutes interactions. Il en a un sur la tête, un sur le menton et un sur le dos, pour ressentir les caresses des humains. Et un sur les pattes pour lui permettre de détecter tout contact avec le sol. – Le sens de l’ouïe : AIBO détecte des sons grâce à une paire de micros stéréo au niveau de ses deux oreilles. Elles lui permettent de capter des sons et ainsi réagir aux voix qu’il entend. – Le sens de la vue : AIBO est doté d’une caméra au niveau de sa truffe et de capteurs de distance par infrarouge au niveau de son collier. C’est une caméra couleur, qui permet de prendre des photos, et ainsi pour AIBO de reconnaitre les personnes qu’il a rencontré et d’éviter les obstacles lorsqu’il se déplace. – Le sens de l’équilibre : AIBO est composé de capteurs de vitesse et de capteurs tactiles au niveau des pattes. Ils lui permettent de se lever et se déplacer tout en gardant un équilibre. 11 Chapitre 3. D’un point de vue robotique Figure 3.1 – Capteurs d’AIBO permettant la relation avec un objet 3.1.3 Les moteurs du robot Ce qui nous intéresse particulièrement dans AIBO, c’est que c’est un robot. Il est composé de 18 moteurs qui n’effectuent que des rotations. Ces 18 moteurs permettent au robot d’effectuer des mouvements ressemblant à ceux d’un chien. Ces 18 moteurs sont disposés en modules : – Un module pour chaque patte, composé de 3 moteurs. – Un module pour la queue, composé de deux moteurs. – Un module pour la tête, composé de 3 moteurs. – Un module pour la bouche, avec un seul moteur. Chaque moteur est défini par un angle et permet donc une rotation. On peut considérer par exemple que chaque patte est un bras robotique de type 3R. 3.2 3.2.1 Contrôler AIBO Comportement par défaut Par défaut, Sony fournit une carte mémoire (AIBO MIND 2) contenant le comportement de AIBO, c’est l’esprit d’AIBO dans son mode chien de compagnie. L’IA du robot de Sony est particulièrement bien développée. Elle permet un apprentissage du robot au fur et à mesure de sa vie. Il est toutefois possible de réinitialiser AIBO au début, c’est à dire qu’il revienne au mode "‘chiot"’. Avec cette carte mémoire il est possible de prendre le contrôle d’AIBO avec un logiciel également fourni par Sony. Nous verrons le détail dans le chapitre suivant. 3.2.2 Autres solutions Nous verrons également dans le chapitre suivant comment il est possible de programmer AIBO et prendre entièrement son contrôle. Cela est possible grâce à sa carte mémoire programmable. Plusieurs solutions existent, et permettent toutes un contrôle plus ou moins avancé du robot. 12 Programmation d’AIBO 4.1 Activation d’AIBO Pour activer AIBO, il faut tout d’abord lui insérer une carte et sa batterie. AIBO a deux cartes mémoires, et l’utilisation sera différente en fonction de la carte utilisée. Avant de l’allumer, il faut s’assurer que le robot soit bien chargé. Il faut le mettre dans une position spéciale afin qu’il ne soit pas gêné par ses futures mouvements et déplacements et/ou qu’il n’abime pas les différentes parties de son corps. Figure 4.1 – AIBO dans sa position avant l’allumage Pour allumer AIBO, il faut appuyer sur le bouton placé sur sa nuque. 4.1.1 La carte contenant le logiciel AIBO MIND-2 Cette carte est une Memory stick contenant le logiciel AIBO MIND-2, elle sert à utiliser AIBO pour tout utilisateur, c’est à dire que l’ensemble des gestes, mouvements et actions qu’effectuera le chien ont été codés par l’entreprise SONY. Lorsque AIBO est allumé avec cette carte, ses diodes s’éclairent en blanc, AIBO joue un air de musique et effectue des mouvements de la tête. Il faut laisser quelques minutes à AIBO pour se préparer. Puis quand 13 Chapitre 4. Programmation d’AIBO il est prêt, il se lève, se déplace, regarde autour de lui, émet des sons. S’il reconnait un de ses maitres, il va s’approcher et essayer d’attirer son attention pour jouer avec lui, ou s’il voit ses jouets, il va s’en approcher etc. Avec cette carte, AIBO est maitre de lui-même, il répond aux commandes vocales préconfigurées, joue avec ses jouets etc. C’est surtout dans ce mode que l’on peut voir l’intelligence artificielle d’AIBO. En effet, dans ce mode, le chien est maitre de lui, ce qui veut dire qu’il "‘est conscient"’ de ce qu’il fait. Ainsi, dans ce mode, lors de déplacements, le robot évitera les obstacles et les murs sans qu’on ait à lui dire. 4.1.2 La carte programmable Cette carte est également une Memory Stick, elle est utilisée pour ceux qui veulent programmer AIBO, et lui faire faire des commandes internes. Pour allumer AIBO, il faut également appuyer sur le bouton sur sa nuque, AIBO se réveille différemment, il joue une mélodie différente, bouge la tête, puis exécute directement le code préconfiguré sur la carte mémoire. Figure 4.2 – Les deux cartes d’AIBO 4.1.3 La communication Ces deux cartes permettent une communication différente avec le robot. La première, une communication d’auto-apprentissage, et la seconde, une communication d’exécution. 4.2 4.2.1 Manipulation des logiciels fourni par Sony AIBO WLAN Manager AIBO peut être manipulé à distance grâce à des logiciels donnés par Sony. Le premier logiciel, AIBO WLAN Manager 2, permet de configurer la carte mémoire afin de se connecter à AIBO. La carte mémoire à configurer avec ce logiciel est la memory stick rose avec marqué "AIBO MIND 2" (c’est la carte avec le comportement par défaut d’AIBO). Le robot se connecte à un réseau Wifi configuré avec une clé WEP comprenant 5 caractères ou 13 caractères, ou des nombres en hexadécimal de longueur 10 ou 26. Ces nombres correspondent à soit 64bits, soit 128bits, auxquels on ajoute 24 bits. C’est un système très restrictif, qui ne gère pas les clés de type WPA ou WPA2. Il peut également se connecter à un réseau Wifi sans clé de cryptage. Il faut donc renseigner à AIBO ce qu’il faut pour pouvoir se connecter au réseau que nous avons configuré précédemment. Dans un premier temps, nous avions un routeur wifi ne nous permettant que de nous connecter sans clé de cryptage, puisqu’il ne gérait que des mots de passes WEP de longueur de 10 caractères ou 23 caractères. Une fois choisi le bon chemin pour la carte mémoire, nous avons donc rentré un nom réseau pour AIBO puis le SSID du wifi. 14 Manipulation des logiciels fourni par Sony Figure 4.3 – Le logiciel WLAN Manager : configuration du Wifi Une autre configuration était nécessaire lors de notre première utilisation, la définition d’un mot de passe utilisateur. En effet, nous n’avons pas pu trouver quel était le mot de passe configuré sur la carte. Nous avons donc laissé l’utilisateur "aibo", et posé le mot de passe "polytech". Figure 4.4 – Le logiciel WLAN Manager : configuration de l’utilisateur 4.2.2 AIBO Entertainment Manager Une fois la carte configurée et remise dans AIBO, nous pouvions commencer à utiliser le deuxième logiciel, AIBO Entertainment Manager. Ce logiciel permet de prendre en main AIBO à distance. Il faut tout d’abord configurer le logiciel pour qu’il retrouve AIBO. Nous pouvons effectuer une recherche automatique de AIBO, ou rentrer directement son adresse IP. La recherche automatique n’a pas fonctionné pour nous, mais nous avons pu entrer son adresse IP. Une fois accepté, nous sommes invités à rentrer l’identifiant et 15 Chapitre 4. Programmation d’AIBO le mot de passe configuré précédemment, ou une erreur apparaît si il n’y a pas de connexion avec le robot. Figure 4.5 – Le logiciel AIBO Entertainment Manager : configuration de la connexion Après cela, le logiciel se connecte automatiquement à AIBO, et nous en prenons le contrôle. Nous pouvons donc le faire bouger grâce à des contrôles comme avancer, se tourner ou reculer. Nous pouvons commencer à faire des mouvements prédéfinis comme danser, dire bonjour ou être gentil. On peut également lui faire jouer de la musique présente sur le PC. De plus, nous avons une vue directe de ce que voit AIBO via sa caméra. Nous avons également une vue en 3D reconstitué de la position d’AIBO. Figure 4.6 – Le logiciel AIBO Entertainment Player 16 R-CODE 4.3 R-CODE Le R-CODE est un moyen simple de débuter la programmation de AIBO. Ce langage de script nous permet de lancer un programme simple sur AIBO. Le R-CODE permet de lancer un programme directement dans AIBO ou par communication Telnet. 4.3.1 Le langage Pour commencer, un programme en R-CODE nécessite la commande : ST ART . Elle indique le début du programme. Ce langage a une syntaxe particulière, avec beaucoup de :. Voici une liste non exhaustive de commandes utilisable en R-CODE : – IF :<value1> :<operator> :<value2> :THEN / ENDIF (structure classique de si) – DO / LOOP (boucle infinie) – WHILE :<value1> :<operator> :<value2> / WEND (boucle tant que) – WAIT :<ms> (attend ms millisecondes) – SWITCH :<var> / CASE :<constant> :<command> (commande switch) – ... Pour faire des actions, il faut utiliser la commande PLAY :ACTION :<action> :<arguments>. Beaucoup d’actions sont possibles avec AIBO, par exemple PLAY :ACTION :WALK :0 :1000 fera marcher AIBO sur 1000mm, ou PLAY :ACTION :SIT fera assoir le chien. 4.3.2 Application Pour faire fonctionner du R-CODE, il faut déjà préparer la carte mémoire "‘programmable"’ de AIBO. Il est à noter qu’il ne faut jamais formater les cartes mémoires de AIBO. Pour faire fonctionner du RCODE, il faut copier les fichiers nécessaires 1 dans la carte mémoire vide. Il suffit ensuite d’ajouter le fichier R-CODE.R contenant le code à exécuter dans le dossier /OPEN-R/APP/PC/AMS/. Le programme sera alors automatiquement exécuté lors du démarrage de AIBO. Nous pouvons également configurer le R-CODE pour que l’on puisse accéder à AIBO et de lancer des commandes R-CODE à distance, via le protocole Telnet. Il faut tout d’abord configurer le fichier WLANCONF.TXT, situé dans le dossier /OPENR/SYSTEM/CONF/. Pour cela, il faut compléter la ligne "‘ESSID="’ avec le SSID du réseau wifi. Si le réseau utilise une clé WEP, il faut alors écrire "‘WEPENABLE=1"’ et ensuite rentrer "‘WEPKEY="’ avec la clé associée. Il est à noter que la clé ne peut pas être de type WPA. Si le réseau n’est pas protégé par une clé, il suffit de mettre "‘WEPENABLE=0"’. La communication est désormais possible avec AIBO, en utilisant un client Telnet. Sous Windows, le logiciel PuTTY est gratuit. Sous Linux, une simple commande Telnet suffit. Pour finir, il est possible de voir différentes erreurs d’exécution dans le fichier error.log. Cela nous a particulièrement aidé, lorsque nous devions créer nos premier programmes en R-CODE. 4.4 URBI URBI est une plateforme de logiciels open-source qui n’est pas propre à AIBO, mais qui permet un plus grand contrôle du chien. C’est avant tout un langage orienté objet qui nous permet de contrôler AIBO dans ses moindres détails, par exemple contrôler exactement l’orientation d’un moteur, ou de vérifier la valeur d’un capteur. Il nous permet également d’apporter des comportements spécifiques à AIBO grâce à la grammaire du langage. 1. PMS-Redist7-v3.zip trouvable sur internet, dans le dossier Redist7_ver3/Redist7/Eng. 17 Chapitre 4. Programmation d’AIBO 4.4.1 Le langage URBI : les objets pour AIBO Nous allons tout d’abord voir les principes du langage URBI et particulièrement la syntaxe utilisée pour contrôler AIBO. Celui-ci est composé de 18 moteurs, tous accessible via un objet avec le nom du moteur. La figure suivant détaille les noms des moteurs avec leurs angles maximums effectifs. Les angles sont en degrés. Nom du moteur legRF1 legRF2 legRF3 legRH1 legRH2 legRH3 legLF1 legLF2 legLF3 legLH1 legLH2 legLH3 neck headTilt headPan mouth tailPan tailTilt Valeur minimale -134.000000 -9.000000 -29.000000 -134.000000 -9.000000 -29.000000 -120.000000 -9.000000 -29.000000 -120.000000 -9.000000 -29.000000 -79.000000 -16.000000 -91.000000 -58.000000 -59.000000 2.000000 Valeur maximale 120.000000 91.000000 119.000000 120.000000 91.000000 119.000000 134.000000 91.000000 119.000000 134.000000 91.000000 119.000000 2.000000 44.000000 91.000000 -3.000000 59.000000 63.000000 Description Moteur 1 de la patte avant droite Moteur 2 de la patte avant droite Moteur 3 de la patte avant droite Moteur 1 de la patte arrière droite Moteur 2 de la patte arrière droite Moteur 3 de la patte arrière droite Moteur 1 de la patte avant gauche Moteur 2 de la patte avant gauche Moteur 3 de la patte avant gauche Moteur 1 de la patte arrière gauche Moteur 2 de la patte arrière gauche Moteur 3 de la patte arrière gauche Moteur du cou Moteur d’inclinaison de la tête Moteur d’orientation de la tête Moteur de la bouche Moteur de la queue Moteur d’inclinaison de la queue Table 4.1 – Détails des moteurs du robot Nous pouvons également contrôler les différentes LEDs et lumières de AIBO. Ici les valeurs possibles sont soit 0 : éteint, soit 1 : allumé. Nous remarquons par ailleurs que nous ne pouvons pas contrôler chaque LED, mais un groupe de LED. Cela est peut-être dû au matériel, avec des groupes de LEDs connectées entres-elles. Les objets LED du visage ont pour nom ledFx, avec x un nombre entre 1 et 14. Nous avons également des LED sur le dos d’AIBO, de plusieurs couleurs. Le dos est composé de 3 parties éclairées, les unes à la suite des autres. – ledBFC : LED la plus en devant colorée – ledBFW : LED la plus en devant blanche – ledBMC : LED du milieu colorée – ledBMW : LED du milieu blanche – ledBRC : LED la plus derrière colorée – ledBRW : LED la plus derrière blanche Nous avons aussi d’autres objets moins utiles que nous pouvons utiliser : – ledHC : Led colorée sur la tête – ledHW : Led blanche sur la tête – modeB : Indicateur bleu – modeG : Indicateur vert – modeR : Indicateur rouge – earL : Oreille gauche – earR : Oreille droite – WIFIswitch : Bouton Wifi – ledWIFI : Led Wifi 18 URBI Pour finir nous avons également accès aux capteurs. Les capteurs situés sur les pattes et celui sur le menton sont binaires : la valeur est soit 0 soit 1. Nous avons également accès aux objets camera, speaker et micro qui sont respectivement les objets liés à la caméra, aux haut-parleurs et au micro. Pour chacun des objets vu précédemment, nous pouvons lire ou modifier sa valeur via l’attribut val. Nom du capteur pawLF pawLH pawRF pawRH accelX accelY accelZ chinSensor headSensor distanceChest distanceNear distanceFar backSensorF backSensorM backSensorR Valeur minimale 0.000000 0.000000 0.000000 0.000000 -19.613300 -19.613300 -19.613300 0.000000 0.000000 19.000000 5.700000 20.000000 0.000000 0.000000 0.000000 Valeur maximale 1.000000 1.000000 1.000000 1.000000 19.613300 19.613300 19.613300 1.000000 35.000000 90.000000 50.000000 150.000000 60.000000 60.000000 60.000000 Description Capteur patte avant gauche Capteur patte arrière gauche Capteur patte avant droite Capteur patte arrière droite Capteur d’accélération (avant-arrière) Capteur d’accélération (gauche-droite) Capteur d’accélération (haut-bas) Capteur du menton Capteur sur la tête Capteur de distance du torse Capteur de distance de la tête (proche) Capteur de distance de la tête (lointain) Capteur du dos (devant) Capteur du dos (milieu) Capteur du dos (derrière) Table 4.2 – Détails des capteurs du robot 4.4.2 Le langage URBI : la grammaire Le langage URBI ressemble au langage C/C++. Il y a les structures if (), while() et f or(). Il y a également des structures de type f oreachiintab, loop et loopn. Mais les structures les plus importantes de URBI sont les structures liés aux évènements. En effet, nous disposons des structures at() et whenever() qui permettent de réaliser du code à un événement. Pour "‘at"’, il se fait qu’une seule fois lors du déclenchement de l’évènement, alors qu’avec "‘whenever"’, le code est effectué tant que la condition est vérifiée. L’évènement est par exemple la modification d’une valeur, comme par exemple whenever(ball.visible).... Les commentaires sont les même qu’en C/C++. 4.4.3 La configuration des fichiers Pour exécuter du code URBI, le fichier custom.u est fait pour cela. Il suffit de mettre le code à exécuter dans ce fichier. Il sera automatiquement lié à URBI dans AIBO. Il y a d’autres fichiers que l’on peut modifier afin de personnaliser le démarrage et le comportement d’AIBO, comme par exemple URBI.INI, qui est le fichier appelé au démarrage d’AIBO, ou std.u, qui est le fichier chargeant les variables et qui est appelé par URBI.INI. 4.4.4 Le contrôle à distance URBI permet également de le contrôler à distance. Le fichier de configuration est exactement le même que pour le R-CODE. Mais nous pouvons contrôler AIBO grâce au logiciel URBILab. Ce logiciel permet d’avoir des informations sur les variables du robot, ou de les modifier, avec une vue directe sur ces informations. Nous pouvons donc utiliser les commandes URBI classiques. Ce logiciel est très pratique lorsqu’il s’agit de vérifier du code, puisqu’il permet d’avoir une sortie sur l’écran en cas d’erreurs. Il permet aussi de vérifier le niveau de la batterie. 19 Chapitre 4. Programmation d’AIBO 4.4.5 Balltracking Pour mettre en pratique nos connaissances sur AIBO, nous nous sommes fixé comme objectif de donner à AIBO une fonctionnalité : suivre un objet qui lui est présenté. Nous avons tout d’abord remarqué lors de nos recherches qu’il y avait un objet ball présent dans URBI, qui permettait de savoir si sa balle rose est visible et quelle est sa position. Nous avons donc pu dire à AIBO de suivre la balle avec sa tête, sans autre déplacement. Nous nous sommes ensuite fixé comme objectif que AIBO recherche sa balle lorsqu’il ne la voit pas. Nous avons donc établi une petite fonction de recherche, qui fait faire tourner la tête d’AIBO de gauche à droite. Dès qu’il trouve sa balle, il la suit encore. Nous avons ensuite décidés d’essayer de faire suivre sa balle au robot. Pour cela, nous utilisons le capteur de distance qui nous permet de savoir à quelle distance se situe la balle. Ainsi nous avons programmé AIBO pour qu’il avance lorsque la balle s’éloigne de lui. Nous avons également programmé le fait que quand la balle est trop sur le côté, il pivote pour la garder face à lui. Ainsi nous avons réussi à atteindre notre objectif, mais seulement avec la balle rose. Nous avons rencontré des problèmes, principalement avec le capteur de distance qui est très variable et ne repérait pas forcément la distance de la balle. Ainsi, le robot a tendance à avance même si la balle est proche de lui. Nous avons également eu des problèmes dans des situations d’éclairage non naturel. En effet AIBO capte beaucoup moins sa balle lorsqu’il fait moins jour. Un autre problème pour la phase de codage fut lorsqu’il fallait tester le code sur AIBO il nous fallait enlever la carte mémoire, modifier le fichier custom.u, remettre la carte et démarrer AIBO à chaque fois, ce qui nous faisait perdre du temps. Un dernier problème fut le fait que nous n’avons pas eu à disposition un routeur wifi. Nous avons dû configurer une Box personnelle pour que nous nous connections à distance à AIBO. Pour terminer, nous avons réfléchi à comment repérer un objet autre que la balle rose, et nous avons remarqué qu’il est possible de configurer l’objet ball lors de sa création dans le fichier std.u pour qu’il repère d’autres couleurs que le rose. Pour cela il faut configurer son initialisation avec des couleurs YCrCb, avec un minimum et un maximum pour chaque valeur. Nous ne pouvons pas par contre configurer la forme de l’objet. 4.4.6 Notre programme Notre programme présente la communication de la balle rose avec AIBO. Nous avons donc programmé AIBO pour qu’il puisse répondre à notre objectif. Le comportement d’AIBO est donc le suivant : – AIBO est mis dans sa position initiale. – AIBO s’étire et met ses jambes dans la bonne position pour se lever. – AIBO se lève et cherche la balle. – Lorsqu’il ne voit pas sa balle, il la recherche en regardant de droite à gauche. – Lorsqu’il voit sa balle : – Si la balle est loin, il va chercher à s’en approcher. – Si la balle est proche, il va suivre la balle de son regard, en faisant des mouvements de la tete du haut vers le bas et de la droite vers la gauche pour essayer de ne pas la perdre. – Si la balle est trop sur le côté et qu’AIBO ne peut plus tourner la tête pour la voir, il va marcher en tournant pour diriger son regard vers la balle. 20 URBI Figure 4.7 – AIBO recherche la balle Figure 4.8 – AIBO a trouvé sa balle 21 Conclusion AIBO est un robot très complet et très intelligent. En effet il a différents modes de communication et est doté de beaucoup de sens. Il est conçu pour s’adapter à la vie quotidienne des humains. Or, vivre avec un robot est une nouvelle habitude à prendre, nous avons donc dû commencer par apprendre à vivre avec AIBO, c’est-à-dire , lui donner un espace de vie, penser à le recharger, jouer avec lui, et toutes autres actions nécessaires au bon fonctionnement du robot. Nous avons beaucoup appris à cette étape sur son intelligence artificielle, c’est-à-dire comment le robot interagit avec l’environnement, avec nous, avec les objets, comment il se déplace et effectue des mouvements, de quoi est-il composé. Dans la seconde partie ou nous devions faire un programme pour AIBO, nous devions tout d’abord choisir quel serait le langage le mieux adapté à notre utilisation. Nous avons travaillé sur l’ensemble des langages interprétables par le robot. Cela nous a été très profitable pour apprendre la partie robotique de AIBO et comment programmer un robot. En effet la programmation en robotique diffère d’une programmation classique. Il est dommage que Sony ait arrêté la production de ce robot depuis 2006, car sinon ils auraient pu démocratiser le robot comme animal domestique. 22 Bibliographie PDF : – The URBI Tutorial v1.0 Jean-Chrisophe Baillie Octobre 2005 – URBI Server for Aibo ERS2xx ERS7 Introduction Manual v 1.2 Jean-Christophe Baillie September 2005 – R-Code SDK Tutorial by Ricardo A. Téllez, v1.2 4th September 2004 – The Urbi Software Development Kit Version 2.7.5 Gostai July 26, 2011 (Revision 2.7.5) Site Web : – http ://www.urbiforge.org Manuels : – ERS-7M2 guide de l’utilisateur Sony – Brochure d’AIBO par Sony Rapport : – Aibo : prise en main de l’existant et d’un environnement logiciel Ludovic Dupraz et Sebastien LACROIX 23 Annexes Notre programme pour faire chercher sa balle rose à AIBO. Initialisation de la balle dans le fichier std.u : var ball = new colormap("camera.raw",0,255,120,190,150,230, 0.0015); Reste du programme dans custom.u : //active les moteurs motor on; //le robot s’étend et est dans une position idéale pour se lever robot.initial(); //le robot se lève robot.stand(); //coefficient d’absorption de la balle ball.a = 0.9; //configuration des fonctions at(ball.visible) stop recherche; at(!ball.visible) stop marche; //Lorsque la balle est visible whenever (ball.visible ~100ms) { //La balle est loin if(distanceNear.val > 20) { if(headPan.val > 60) { //Le robot tourne en marchant walk.turn(60) & marche : walk.go(1); } else{ if(headPan.val < -60) { //Le robot tourne en marchant walk.turn(-60) & marche : walk.go(1); } else { //Le robot suit la balle de la tête tout en marchant headPan.val = headPan.val + ball.a *camera.xfov *ball.x & headTilt.val = headTilt.val + ball.a *camera.yfov *ball.y & marche : walk.go(1); } } 24 } //La balle est proche else { //On tourne la tête if(headPan.val > 60) { walk.turn(60); } else{ //On tourne la tête if(headPan.val < -60) { walk.turn(-60); } else { //On suit la balle de la tête headPan.val = headPan.val + ball.a *camera.xfov *ball.x & headTilt.val = headTilt.val + ball.a *camera.yfov *ball.y; } } } } //La balle n’est pas visible donc on la cherche else { recherche: headPan.val = 0 sin:4s ampli:50; } 25 Prise en main du robot AIBO et développement d’un programme pour faire interagir le robot avec des objets Département Informatique 4e année 2012 - 2013 Rapport de Projet de Robotique Résumé : Ce rapport présente le robot AIBO, en fonction du mode utilisé : que ce soit en tant qu’animal de compagnie et de robot, puis, comment se passe l’interaction avec un objet. A travers ce projet, nous avions pour objectif de prendre en main le robot, puis travailler sur un nouveau mode de communication, la communication avec un objet. Nous avons ainsi exploré ceci avec sa balle rose, un de ses deux jouets préférés. Mots clefs : AIBO, robot, intéraction, objet, communication Abstract: This report presents the AIBO robot, depending on the method used: whether as pets and robot, then, how is the interaction with an object. Through this project, we aimed to take control of the robot, and then work on a new communication mode, the communication with an object. We have explored this with its pink ball, one of its two favorite toys. Keywords: AIBO, robot, interaction, object, communication Professeur Mohamed SLIMANE [email protected] Nicolas MONMARCHE [email protected] Université François-Rabelais, Tours Étudiants Erwann Cloarec [email protected] Anais Linot [email protected] DI4 2012 - 2013
Documents pareils
de l`IUT de Vélizy - Université de V
Département Génie Électrique et Informatique Industrielle
IUT de Vélizy - Établissement de l'université de Versailles Saint-Quentin-en-Yvelines