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

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

Plus en détail