Cozmo est un concentré de technologie et d’émotions. Il est fourni avec une bibliothèque très complète d’expressions et d’animations. Le robot Cozmo est très expressif : curieux, joyeux, mécontent, fâché, désolé, boudeur ou surexcité, … il se fait comprendre grâce à ses yeux, ses bruits et ses mouvements.
L’API permet de déclencher ces comportements et mouvements. Nous allons voir comment faire.
Objectif : comprendre le fonctionnement des animations sur Cozmo
- Durée : 30 minutes
- Niveau de difficulté : débutant
- Compétence acquises : gestion des animations
Les prérequis
- Avoir établi la connexion entre Cozmo et l’ordinateur : Cozmo SDK : deux méthodes pour se connecter au robot
Où se trouve la bibliothèque d’animations de Cozmo ?
Les émotions et les petites mimiques que vous avez vu sur Cozmo sont embarquées. Cette bibliothèque d’animations est accessible de deux façons :
- via les triggers (voir cozmo.anim.Triggers )
- via les noms des animations
L’intérêt des Triggers (déclencheurs) est qu’ un Trigger va pouvoir déclencher une animation parmi plusieurs de façon appropriée et générer de la variété dans les réactions de Cozmo .
Pour rendre votre robot plus vivant, l’utilisation des Triggers est recommandée.
Le déclenchement des animations par leur nom via l’API est susceptible d’être modifié dans le futur.
Il existe un troisième type d’animation, les behaviors (comportements). Les exemples ci-après montre comment les déclencher. Un prochain TP expliquera plus en détails le fonctionnement des behaviors. Les behaviors se trouvent dans cozmo.behavior.BehaviorTypes.
Exécuter des animations par des Triggers ou par leur noms
Nous allons détailler ci-dessous les deux façons de jouer des animations sur le robot Cozmo : par le biais d’un Trigger ou via le nom de l’animation .
Les triggers
C’est la méthode recommandée. Vous utiliserez la méthode play_anim_trigger .
Dans cet exemple on joue le trigger OnSpeedtapRoundPlayerWinHighIntensity.
Remarque : on peut jouer une animation tout en bloquant les chenilles de Cozmo grâce à la variable ignore_body_track=True à l’appel de play_anim_trigger.
Le nom d’une animation et la fonction play_anim()
Dans ce cas c’est la méthode play_anim qui est utilisée. Dans cet exemple on joue l’animation anim_greeting_happy_03 .
Vous pouvez retrouver sur notre repository GitHub tous les exemples de code. Ci-dessous, l’exemple complet.
Obtenir la liste des animations
Les animations sont jouées aléatoirement par le robot lors de l’appel de certaines fonctions. Vous pouvez accéder à ces animations et en récupérer la liste.
Le code ci-dessous permet de lister les triggers ainsi que les noms des animations et de les stocker dans une liste. Elle sera affichée sur votre écran.
Vous pouvez aussi accéder à la liste des Triggers dans la documentation du SDK sur le site de Anki.
Il est également possible d’accéder à cette liste via un explorateur web (voir en fin d’article).
Astuce !
Les Triggers sont des objets aussi si vous souhaitez utilisez le nom de la Trigger et donc utiliser la string vous pouvez exécuter cette Trigger avec ce petit bout de code en utilisant la fonction getattr .
L’explorateur d’animations
Nous vous recommandons d’utiliser ce browser d’ animations , de triggers et de behaviors disponible sur github : Cozmo Animation Explorer by Grinning Hermit
Les animations , triggers et behaviors seront ainsi accessibles via un navigateur grâce à Flask et accessible à l’adresse 127.0.0.1:5000 en local.