Outils d'utilisateurs

Outils du Site


projets:hackathon_nao:tortues_naonja

Nao conteur (2014)

Équipe : Tortues Naonja.

Descriptif du projet

La deuxième édition de l’Hackathon Nao avait pour thème « Mon robot et moi ; à la folie, pas du tout ».

L’objectif était de créé un scénario à l’aide de Nao en 36 heures, répondant à ou développant la problématique.

Nous avons choisi de créé un Nao conteur d’histoire après avoir vu des enfants interagissant avec le robot comme à un être vivant :

  • Les enfants posait naturellement des questions à Nao et attendais des réponses, puis s’étonnais de son mutisme, comme si son inactivité n’était PAS naturel.
  • Les plus audacieux et les plus petits allait même jusqu’à vouloir le prendre dans leur bras de la même façon qu’il l’aurait fait avec un animal.

Suite à ça il parut évident que la communication était une clef de la problématique. Notre idée s’est ensuite développer jusqu’à l’idée du conte, participatif ou non.

Nous avons donc créé un « moteur de lecture de conte » pour Nao. La principale nouveauté par rapport à ce que Choregraphe propose déjà est qu’il suffit d’insérer un fichier .xml à la racine de la mémoire (/home/nao/stories/ actuellement) de Nao pour que celui-ci la détecte et soit capable de la lire.

Il n’y a donc plus besoin de passer par un logiciel de programmation, un simple échange FTP des fichiers nécessaires, et Nao est prêt à raconter de nouvelles histoires.

Un exemple de fichier est en annexe 1.

La balise <Story name=” MON HISTOIRE”> contient en attribut le nom de l’histoire que Nao lit à haute voix quand il propose le choix et reconnais quand on la lui demande.

Tout le contenu de l’histoire est contenu entre les balises <Story> et </Story>.

La balise <Step id=“X” next=“Y”> contient en attribut un ID permettant d’y revenir à n’importe quel moment grâce au pointage. L’attribut ‘next’ est facultatif. Sans lui la balise ira simplement à l’étape X+1. Avec, il autorisera un changement de branchement, n’importe quel ID pouvant être visé, précédent ou subséquent l’étape.

La balise ‘Step’ peut encadrer jusqu’à trois autres balises :

  • <Text> </Text> : Contient le texte qui sera lu par Nao.
  • <Animation> </Animation> : Joue l’animation demandé. (codé dans le moteur du jeu)
  • <Sound> </Sound> : Lance le bruitage demandé (stocké dans la mémoire de Nao)

Aucunes des balises n’est nécéssaires ; une ‘Step’ ne peut contenir que du texte et une animation, que du son, les trois en même temps, etc. En revanche les balises se lance en même temps au déclenchement de la ‘Step’.

En parallèle des balises ‘Step’ existe les balises <Branch id=“Y”> autorisant l’auteur de l’histoire à la faire diverger en divers chemin. Elle encadre deux balises qui sont obligatoires à son bon fonctionnement :

  • <Question> </Question>
  • <Choice next=“Z” words=“mot1 ; mot2”/>
  • <Choice next=“U” words=“mot3 ; mot4”/>

Nao lit la balise ‘Question’ puis active la reconnaissance vocal afin de détecter un des mots choisis par l’auteur dans les balises ‘Choice’. Suivant le mot reconnu, Nao continuera son histoire à une ID différente.

Dans la version actuelle, une balise ‘Branch’ ne peut contenir ni animation ni son.

Les deux balises, ‘Step’ et ‘Branch’ permettent de construire n’importe quel type d’histoire, du simple conte au « livre dont vous êtes le héros ».

Les bruitages et les fichiers xml sont stockés dans le robot dans les dossiers respectifs ‘…/stories/sounds’ et ‘…/stories’. L’ajout est rapide et ne nécessite aucune compétence (à part l’envoie de fichier par un ftp).

Les animations sont codées dans le moteur. L’ajout se fait par la modification d’une boite contenant l’intégralité des animations disponible pour le conte.

Actuellement, Nao propose à l’utilisateur de choisir une histoire parmi toute celle qu’il « connait » en introduction et demande à la fin si l’utilisateur veut écouter un autre conte. En cas de réponse négative, Nao salut et termine le programme.

A la fin du Hackathon, le programme dans sa description faite ci-dessus était totalement opérationnel. Une histoire ayant été retranscrite, animé puis envoyé dans le robot en moins de 20 minutes peu avant la présentation du projet.

Équipement nécessaires à la réalisation

Les principaux outils a été le logiciel Chorégraphe et le langage python pour codé les fonctions.

Étapes de réalisation

  • Le premier jour a été consacré surtout à la découverte du robot, à son logiciel de programmation et à la recherche d’idée. L’idée du Nao conteur a été trouvée en fin de soirée.
  • Le second et troisième jour ont été essentiellement consacré à l’écriture du code et des différentes histoires.

Code

Suite du projet

Le moteur du jeu pourrait être agrémenté de nombreux paramètres améliorant la lecture de Nao :

  • Utilisation de voix et intonations différentes, modulation en vitesse, amplitude, etc.
  • Ajout d’un paramètre pouvant décaler le bruitage, l’animation ou le texte de chaque ‘Step’.
  • Amélioration de la lecture d’animation afin de pouvoir en rajouter plus facilement.

De même, un logiciel graphique pourrait être créé afin de faciliter l’utilisation du fichier .xml : N’importe qui, même un enfant, pourrait créer ses propres histoires et les voir raconter par Nao.

Création d’une bibliothèque dans le « cloud » d’histoire, permettant à Nao de récupérer, automatiquement ou non, du matériel.

Crédits

Licence du projet

projets/hackathon_nao/tortues_naonja.txt · Dernière modification: 2014/12/12 12:32 par meli_melo