Poppy à la Japan-Expo à Paris

Voici un debrief de la Japan-Expo sur le stand Caliban.

C’est toujours un salon très original qui traite de la culture japonaise, des mangas, des jeux vidéos… On y croise des Link, des Mario, des Assassin’s Creed ou autre Lara Croft…On ose tout. La culture japonaise implique forcément un espace dédié à la robotique. Cette année, c’était près de 300m².
Le salon dure 4 jours, les jeudi et vendredi sont en général assez légers en fréquentation. Par contre, les samedi et dimanche sont un vrai marathon pour les robots comme pour les exposants. Cette année, c’est 250 000 visiteurs qui ont été sur le salon.
Le but de ce salon n’est pas de conclure des marchés et d’acheter des puits de pétrole, c’est clair mais plutôt de :

  • Tester le robot devant un public conquis d’avance
  • Faire de la pédagogie sur ce que peut et ne peut pas faire un robot à l’heure actuelle.

Pour ce salon, j’avais quatre animations différentes que je présente ici, ça peut donner des idées :

Contrôle de la tête de Poppy via Leap-Motion

Ici, le but était de controler la tête du robot uniquement avec une Leap-Motion. Je récupère le tangage et le lacet de l’index, et je l’envoie directement sur les deux moteurs de la tête.
Voici le code assez simple :

# -*- coding: utf-8 -*-
"""
Created on Fri Jun 19 22:25:00 2015

@author: Thomas
"""
import Leap
import pypot.robot
import time

c = Leap.Controller()
r = pypot.robot.from_json('full_poppy.json')
r.start_sync()
r.head_z.compliant = False
r.head_y.compliant = False
r.head_z.moving_speed = 0
r.head_y.moving_speed = 0

while True:
    frame = c.frame()
    
    for f in frame.fingers:
        if f.type == f.TYPE_INDEX and f.is_valid and f.is_extended:
            pitch = f.direction.pitch
            yaw = f.direction.yaw
            r.head_z.goal_position = -2.0*yaw*180.0/3.14
            r.head_y.goal_position = -2.0*pitch*180.0/3.14
    time.sleep(0.02)

J’ai été très étonné du temps de réponse. Je pouvais donc utiliser le robot pendant que tout le reste du corps refroidissait (s’il y avait besoin).
J’étais souvent en embuscade à faire le marionnettiste, suivre les gens du regard, ou suivre leur mains quand ils l’agitaient ou bien répondre par oui ou non aux questions qu’ils posaient (là ils étaient très souvent surpris :smile: )

Contrôle du corps via Leap Motion

Ici, le principe est le même mais le robot est assis. Avec l’index de la main gauche, je contrôle la tête de Poppy de la même manière qu’au dessus et avec la position de ma main droite, je pilotais la position de la main droite. C’est le mode marionnette “Tatayet”. Ici, le code est plus complexe puisque le corps du robot était soumis à différentes contraintes géométriques, dépendant de la Leap-Motion. C’est ce code que je compte mettre au propre pour faire le soft FIRE.
Bon, avec ce mode, j’étais du coup capable de toucher les gens avec les mains en plus de jouer avec la tête.
Les gens étaient surpris quand le bras bougeait. L’autre activité intéressante est quand je donnais aux enfants la Leap Motion pour qu’ils manipulent. Souvent, les vitesses maximales des servos étaient atteintes… Mais ça a eu un effet très hypnotique sur certains qui se sont mis à me poser des questions sur le langage Python etc…
Pour l’occasion, j’avais aussi utilisé la librairie pyttsx pour faire parler le robot… mais nous étions à côté de deux stands de jeux musicaux comme si on avait un concorde prêt à décoller en permanence à côté (oui j’exagère…) donc c’était assez inutile.

La marche

Enfin je pouvais répondre à la question “Est-ce qu’il marche ?” à partir du samedi. J’avais utilisé l’algorithme que j’utilisais à l’époque de mes premiers robots (si contact sol, je passe l’autre pied devant en éteignant l’articulation du genou) Malheureusement, il faut tenir le robot par les mains…
Le code est le même que celui qui fait bouger les bras et la tête, j’avais tout intégré dans un seul soft.

Video de Poppy à la Japan Expo

Conférence “Robot : science ou fiction”

Dans le cadre du salon, il nous est demandé de faire une présentation généraliste de l’état de l’art en robotique. Pour l’occasion, j’ai fait une présentation centrée sur les frères Capek (Josef et Karel) qui ont créés le mot “Robot” dans la pièce de théâtre RUR dont j’avais eu l’occasion de jouer quelques extraits.
Les questions sont souvent les mêmes :

  • Pourquoi humanoïde alors que R2D2 peut faire plus de choses de C3PO ? (Le robot d’Interstellar a été aussi beaucoup cité… C’est pourtant un robot armoire…)
  • Est-ce que Skynet va arriver ?
  • A quand une IA comme Glados (Iron Man)
  • Vaut il mieux une IA centralisée ou des robots en essaim ?
  • Quels-sont les problèmes éthiques liés à la robotique ?
  • Pourquoi ne pas mettre directement les 3 lois d’Asimov ?

Bilan

Au bilan, par rapport aux autres robots que j’avais présenté avant, Poppy a tenu largement le choc. Il a perdu 3 vis à l’épaule, des faux contacts sont apparus sur les hubs Dynamixel. Les deux premiers jours de canicule, la clim était en panne… Le robot est monté jusqu’à 65deg dans le moteur abs_y mais je l’ai laissé reposer. Les deux derniers jours, la clim était là et le robot se maintenait au max à 55deg, avec une pointe à 60deg dans le cou (un enfant qui faisait du headbang :pensive: )
En revanche, j’ai eu une ribambelle de “checksum error” qui ont été amplifiés par le faux contact. Je vais re-tester si les checksum errors étaient dûs uniquement au faux contact.

8 Likes