Animatronic Interactif : Le Live

Auteur avatar3regards | Dernière modification 18/02/2022 par L'Atelier-Bellangerais

Introduction

Des quatre coins de Rennes et de l'Hexagone, une équipe de Makers se réunit à l'occasion d'un Festival pour tenter la réalisation d'un personnage animé et interactif.


Lien vers l'album Photos

Lien du stream vidéo


Quelques contraintes propres au Hackathon : 2 jours (+une soirée), une dizaine de participants et une restitution ouverte au public le deuxième jour.

L'objet de cette page est de documenter en temps quasi réel les avancées du projet, afin de pouvoir en reproduire les étapes, voire, de les améliorer.

C'est parti !


Matériaux

Outils

Étape 1 - Jour 0, Jour 1 Jour 2 - Commencer à documenter

Ce sera LA contrainte, pour que :


1) Tout les participants (et les visiteurs), sachent "où on en est ?"

2) A l'issue du projet : Bravo ! Tout est déjà documenté pour être remixé

Conseil : Nommer un rapporteur par pôle pour faciliter la remontée d'informations auprès des facilitateurs...

Étape 2 - Jour 1 - Samedi Matin : Faire connaissance, trouver les affinités

Un résumé de qui est qui et qui de fait quoi...

  • Ivan, Valentin et Tonino planchent sur les capteurs avec Ardunio et Rapi...
  • Yo, Marc, Rémy, Pierre sur le chariot à roues du robot
  • Tony et Stéphane sur la Documentation
  • Marie, Chloé, Lucie sur les éléments textiles, un haut de forme et même un nœud papillon.
  • La découpeuse laser permet de prototyper certaines pièces en carton ou en bois (Rémy, Chloé ou Stéphane)
  • Olivier démonte des trucs pour récupérer des choses (engrenages, courroies)
  • 3 imprimantes 3D sont prêtes à démarrer (Marc et Tony)

Les Groupes que l'on à pus observer :

  • 👘 Habillage de l'automate : Marie, Chloé, Lucie.
  • ⚙️ Structure de l'automate : Yo, Marc, Rémy, Pierre.
  • 😀 Animation de l'automate : Valentin, Yvan, Gaël (Pierre et Tony en aide).
  • 🎤 Reconnaissance vocale : Tonino (Tony en aide).
  • 🚗 Système de déplacement : Yo, Marc.
  • 📄 Documentation générale : Stéphane, Tony.




Étape 3 - Jour 1 - Samedi après-midi - Les défis

Lister les Tâches, les Trier par Pôle:


💚 Ce qui fonctionne !

  • Le chariot roule !
  • L'œil bouge !
  • La main droite bouge
  • Les accessoires textiles sont en bonne voie


💙 Ce qui semble facile :

Faire rouler l'animatronic


💛 Ce qui mérite réflexion :

Calibrer les moteurs pas à pas pour les mouvements envisagés

Synchroniser mouvement et paroles de l'animatronic


💔 Ce qui ne semble pas facile :

Installer "Jarvis" sur un Raspberry Pi


❌ Ce qui ne sera pas fait (a priori...) :

  • Permettre à l'animatronic "d'apprendre" de nouvelles choses
  • Rendre aléatoires les "routines" d'expression de l'animatronic



Étape 4 - Jour 1 - 👘 Le robot prend corps !

Processus :


Fichiers open-sources : [Photo des plans]


Ressources utilisées :

Machine : Machine à coudre

Technique : Patronage de pour le textile


To Do : photos des proto / plans des habits


Étape 5 - Jour 1 - ⚙️ Structure de l'Animatronic

Processus :


Le Chariot motorisé : comment il va pouvoir bouger ce petit bonhomme ?

  • La sécurité d'abord ! (Parce qu'il avance comme un âne ce diable !)
  • Capteurs de proximité (infrarouge)
  • Pare-choc "intelligent" pour arrêter le moteur en cas de rencontre avec un obstacle

La structure / La motorisation / L'alimentation / La sécurité / Détection des collision / Arrêt d'urgence

La structure tient : Le ventre de la bête / La tête / Les accessoires


📝 Bonne avancée mais difficile de donner des plans numériques


Fichiers open-sources : [Photo des plans]


Ressources utilisées :

Machine : Soudure à l'arc, Meuleuse

Technique : Soudure.

To Do : photos des proto / plans des habits




Étape 6 - Jour 1 - 😀 Animation : capteurs et réponses

Quelques mots :


Processus :

  • Action / Réaction : Qu'est-ce qui provoque quoi ?
  • Capteur Passifs / Actifs : On a tout ce qu'il faut ?
  • Remonter des infos (mais pas trop) : Quel support ? Quel format ?
  • Déclencher une réaction (ou pas !!!!) : Commande et puissance...
Conseil : Pour valider un montage, utiliser une breadboard avant de tout souder...
📝 Beaucoup de difficulté au début mais, tout le monde à surmonté les problèmes


Fichiers open-sources : [Code arduino / branchements ?]


Ressources utilisées :

Machine : Ordinateurs

Logiciel : Arduino / bibliothèque : Max72XX, Servo ...


To Do : Code à remettre / schéma de cablage




Étape 7 - Jour 1 - 🎤 Synthèse vocale ou Interface plus exotique ?

1- L'IDEE INITIALE : Une reconnaissance vocale opérée par un rapsberry pi.


Les enfants poseraient leurs questions en lien avec l'environnement en français et le robot répondrait en français.


2 - PROBLEME TECHNIQUES :

  • Des professionnels de la silicone vallée bosse à plein temps pour avoir des IA qui permettent de parler avec des machines en Language naturel et de passer le test de Turing. Je vous laisse imaginer la complexité de la tache.
  • A la manière de Siri il est possible de faire reconnaitre de mots clefs et de demander à un algorithme d'associer ces mots clefs avec une intention. En fonction de l'intention reconnue une réponse est déclenchée. Il faut donc de toute manière avoir un set de questions et de réponses pré-conçue.
  • Le moteur "speech to text" ou stt sur lequel se base "JARVIS", snow boy, n'existe plus.
  • L'autre stt gratuit et hors ligne pocketSphynx ne fonctionne qu'en anglais, et pas très bien.
  • Même problème est la synthèse vocale, souvent en anglais.
  • L'IOT et les APIs, c'est pas ma tasse de thé. Compliqué de faire fonctionner JARVIS (qui n'est pas maintenu depuis 3 ans) avec Google speech. Peut-être une histoire de ficher Json.
  • Le bruit ambiant rend la compréhension des mots clefs super difficile.
  • Le "parlé" enfant peut-être une source de complexité supérieur
  • Pour atteindre une bonne efficacité il faut entrainer l'algorithme, ce qui n'est pas adapté lorsqu'il y a plusieurs interlocuteurs.


3 - CONCLUSION INTERMEDIAIRE ==> EXIT JARVIS ET LA RECONNAISSANCE VOCALE


4 - SOLUTION ALTERNATIVE :


Plus simple et plus consistant, remplacer de la reconnaisse vocale par de la reconnaissance optique.


Avantages :

  • Plus consistant : la reconnaissance optique n'est pas dépendant du volume ambiant ou du contexte, surtout s'il intègre son propre système d'éclairage.
  • Questions et réponses rédigé. Un peu à la manière d'un QR code, le décryptage d'une couleur ou d'un motif déclenche une réponse.
  • Permet la manipulation d'objets. C'est pas COVID mais c'est rigolo.


Principes : Une caméra reconnais un code à deux couleurs. En fonction du code reconnu, déclenche la lecture d'un fichier MP3.


Matériel nécéssaire :


Voir en J2 (plus bas) pour le détail du fonctionnement.




Étape 8 - Jour 1&2 - 🚗 Le robot dans sa mobilitée

Processus :


Fichiers open-sources : [Schéma de câblage / y'a t'il un code ?]


Ressources utilisées :

Machine : Ordinateur / Arduino / Électronique

Technique : Logiciel de reconnaissance vocal Jarvis


Technique : Montage électronique / Codage


To Do : ??

Étape 9 - Jour 1&2: 📄 Documenter pour Restituer

To Do : La visio à documenter / la grille des avancées du projet.
Conseil 1: Le A3 ou le PowerPoint, ben c'est pas si mal !

Conseil 2 : Un bon pitch est un Pitch court (2 à 4min max)

Conseil 3 : Un rapporteur ou plusieurs intervenants ?

Conseil 4 : Penser à ceux qui "n'y connaissent rien..."

Étape 10 - Jour 1&2 : Tester... Encore et encore

... Jusqu'à ce que ça marche... Ou qu'on abandonne (à un moment, il faut)

Étape 11 - Jour 2, le matin : Choisir, c'est renoncer

... Heu... Et si en fait, on ne faisait que ce qui marche ? (ou pas...)


Les groupes sur le jour 2 :


To do : Y-a t'il des changement ?


  • 👘 Habillage de l'automate : Marie, Chloé, Lucie.
  • ⚙️ Structure de l'automate : Yo, Marc, Rémy, Pierre (Stéphane, Chloé en aide).
  • 😀 Animation de l'automate : Valentin, Yvan.
  • 🎤 Reconnaissance vocale : Tonino, Tony (Stéphane et Chloé en aide).
  • 🚗 Système de déplacement : Yo, Marc.
  • 📄 Documentation générale : Stéphane, Tony.


Étape 12 - Jour 2 - Combiner les fonctions

Tout ça, faut que ça marche ensemble...


  • Aller voir les copains
  • Piquer des idées
  • Mutualiser du matériel
  • Pensez à plusieurs pôles ?
  • Dire les problèmes, pas les planquer...

Étape 13 - Jour 2 - 👘 Le robot prend corps !

texte

Étape 14 - Jour 2 - ⚙️ Structure de l'Animatronic

texte

Étape 15 - Jour 2 - 😀 Animation : capteurs et réponses

texte

Étape 16 - Jour 2 - 🎤 Reconnaissance optique (anciennement vocale)

Comment ça marche !


1- LA BOITE

Construction d'une boite à la découpeuse laser. Sur cette boite la caméra pixy2 et quatre led blanche pour éclairer l'intérieur. La boite comporte une fente pour y insérer les cartes de couleurs.

Ressources :

....> Plan de la boite à découper à la laser

....> Plan des cartes à découper à la laser


2- LES CARTES

Les cartes doivent être découper en trois section puis peintes :

  • Une qui reste blanche c'est la partie que l'on garde en main, sur laquelle on peut écrire à quoi sers la carte
  • La partie du milieu à peindre d'une couleurs
  • La partie supérieure à peindre également
  • Un trait noir doit-être tracer entre les deux couleurs pour permettre à la caméra une reconnaissance aisée.

Chaque combinaison de couleur est unique et déclenche une réponse unique.


3- LA CAMERA

La caméra est une caméra pixy2, conçus pour la reconnaissance de couleurs. Elle peut stocker en mémoire la reconnaissance de 7 couleurs.

La caméra est "entraînée" à reconnaitre les couleurs sur un ordinateur grâce au logiciel pixymon.


Voici le tutorial pour entrainer la caméra à reconnaitre les couleurs : https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:teach_pixy_an_object_2


  1. Positionner la couleur à reconnaitre, bien éclairée face à la caméra.
  2. A l'aide de PixyMon sélectionner la couleurs à reconnaitre sur l'image renvoyé par le logiciel (PC, MAC, et LINUX)
  3. La caméra garde cela en mémoire, même une fois débrancher.
  4. Faites de même pour toute les couleurs
  5. Utiliser les paramètres du logiciel pour paramétrer la tolérance de reconnaissance et les paramètre de la caméra (balance des blancs etc.)


4- LA Raspberry Pi ET LE CODE PYTHON

  1. La pixy cam est branchée en USB
  2. Les led sont branché sur la broche 3.3V d'un coté et GND de l'autre
  3. Tuto pour installer la PixyCam2 sur la Raspberry Pi :https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:hooking_up_pixy_to_a_raspberry_pi
  4. Tuto pour utiliser le module en python "Build SWIG MODULE":https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:building_libpixyusb_as_a_python_module_on_linux&s%5B%5D=python&s%5B%5D=api
  5. Copier le code que l'on fournis dans le répertoire ==>
  6. Lancer le programme python grâce à la ligne de commande suivante
  7. Chaque carte déclenche la lecture d'un fichier audio situé dans le dossier "Musique". La carte rouge-rouge déclenche le 1. Etc. Pour changer la piste lu, écraser le fichier de votre choix par une bande audio de votre choix. Ce qui compte c'est qu'elle ai le même nom. Penser à changer dans le code python la valeur de la variable "sound_time[piste modifié]" pour qu'elle corresponde au temps de la nouvelle piste, en seconde.


Pour info, voici la matrice des cartes :

Rouge(1) Vert(1) Bleu(1)
Rouge(2) 1 4 7
Vert(2) 2 5 8
Bleu(2) 3 6 9


5- Lancer le programme au démarrage de la Raspberry Pi

  • Lancer la commande "sudo crontab -e"
  • Insérer la ligne "@reboot python3 ....Chemin absolu vers le code python...."
  • Sauvegarder


Fichiers open-sources : [Programme reconnaissance couleur / Plan des cartes et de la boite de détection / Schéma de câblage pour le détecteur de couleur]


To Do : ajouter les sources : Programme Python de la reconnaisance vocal / Programme Python de la reconnaisance des couleurs / Plans de la boite et des cartes colorées.


Étape 17 - Jour 2 - Restituer : Le bilan

  • Si rien ne marche, Peaufiner le Pitch
  • Est-ce qu'on ne peut pas "tricher" pour la présentation ?
  • Débusquer "le diable dans les détails"
  • Faire simple...
  • Si ça marche pas, c'est pas grave, c'est l'intention qui compte...

Étape 18 - Le début de la Fin

Arrivé ici:


  • L'animatronic doit commencer à fonctionner un peu tout seul...
  • Certains n'ont plus rien à faire, sinon à regarder...
  • Ca serait bien de lui donner un nom ? non ?


... Hey ! Est-ce que tout est bien documenté ? Y a des photos ? des vidéos ? Du son ?


Conseil : Si ça sert plus, alors c'est peut-être le moment de ranger...

Étape 19 - Epilogue...

  • Comment ça s'est passé ?
  • La météo de l'humeur de chacun
  • Les réussites,
  • Les échecs,
  • Les frustrations
  • Ce qu'on a appris / confirmé / maitrisé.


C'est la Fin !

Notes et références

Cahier des charges et Liste des ressources disponibles réalisé en amont du Hackathon :

https://docs.google.com/document/d/1KuY6qdZxfLTBXZP8aNcI_dwIocBYwu62WJG46BG2STs/edit?usp=sharing_eil_m&ts=61e14799

Commentaires

Published