Découvrir Naoll-E

Naoll-E est un projet qui a vu le jour sur un coup de tête en juillet 2017 : étudiant dans le domaine de la robotique, je voulais faire mon propre robot. Profitant de quelques jours de congés, je me suis lancé et après deux semaines d’étude, de mesure, de modélisation et d’impression 3D, de soudure (quelques brûlures au passage), de programmation, de tests, 24 cafés et deux-trois nuits blanches, le robot était né ! Mais puisque nous avons une page entière consacrée au projet, ne nous gênons pas et entrons un peu dans le détail !

Erratum : Je me suis rendu compte a posteriori (que j’utilisais trop de mots latins !) que je m’étais un peu emballé et que je vous avais fait ici un roman ! Je vous mets donc un petit sommaire qui pourra servir de marque-page si vous voulez faire une pause dans la lecture (vous pouvez aussi faire comme lorsque vous aviez des lectures imposées et diviser le nombre de chapitres par le nombre de jours qu’il vous reste).

Les prémices :

Faire un robot d’accord… mais que doit-il faire ? Eh bien... le plus de choses possible ! L’idée avec ce robot est de retravailler les compétences acquises durant mon parcours scolaire, personnel et professionnel et également d’en acquérir de nouvelles. Naoll-E ne désigne finalement pas uniquement le robot, qui est en fin de compte la partie visible de l’iceberg, mais plutôt ce projet pluridisciplinaire en adéquation avec mon parcours (vous trouverez plus d’info à ce sujet dans l’onglet « Mon créateur »). Mon choix s’est porté sur un robot d’interaction qui s’avère être le plus malléable, offrant un champ d’actions illimitées (et aussi très amusantes). Ayant eu la chance de réaliser des projets avec des robots Pepper au cours de mes études, je voulais en quelque sorte refaire le mien à la maison.

Préparation :

J’ai commencé par chercher ce que je voulais faire faire à Naoll-E. Après réflexion, deux applications se sont distinguées et j’ai donc choisi de créer deux modes distincts :

Le mode autonome consiste à laisser Naoll-E évoluer seule dans son environnement. Le but étant d’expérimenter une programmation de type système embarqué : Naoll-E est alors à l’écoute de ses capteurs et réagit en temps réel. Pour commencer, l’objectif était que le robot se déplace de manière autonome dans un environnement inconnu en évitant toute collision et en essayant d’avoir un début de raisonnement dans le choix des directions. Etant donné que TOUT mon entourage me demande un robot aspirateur... Disons que c’est un bon exercice.

Le mode interaction est plutôt le côté ludique, ou scénique, de Naoll-E. Il faut avouer que regarder un robot se déplacer tout seul dans une pièce, c’est amusant au début mais on s’en lasse… (le cas du robot aspirateur encore une fois). Alors que parler et interagir avec lui ! Je voulais ici revoir mes études dans les sciences cognitives et les relations homme-machine : par quels canaux de communication faire passer un message voire des émotions.

Une fois ces objectifs définis, je pouvais me consacrer aux choix des capteurs et actionneurs qu’intègrerait le robot. Ce qui nous amène au point suivant : l’électronique.

L’électronique :

A ce jour, Naoll-E intègre donc :

Le chef d’orchestre de ces capteurs et actionneurs est un Aduino MEGA (équipé d’un microcontrôleur ATmega2560 8bits fonctionnant sous 5V). Ce dernier présente l’avantage de posséder un grand nombre d’entrées/sorties et plusieurs ports série ce qui permettra de rajouter des fonctionnalités à l’avenir. L’un de ces ports série est justement relié à un HC-06 qui permet de communiquer en Bluetooth avec Naoll-E.

Pour le contrôle des moteurs, j’ai utilisé un double pont H histoire de pouvoir faire varier la vitesse par PWM et également changer le sens de rotation. Chaque pont H contrôle une chenille, soit deux moteurs.

L’alimentation principale du robot est une batterie Li-Po de 7,2V (2 cellules) d’une capacité de 1300mAh. Cette dernière alimente en direct les moteurs ainsi que l’Arduino qui intègre un régulateur 5V en interne (sur la board). La tension de la batterie est également régulée par un régulateur linéaire 7805 pour les divers modules fonctionnant sous 5V (servomoteur, télémètre… etc.). D’où l’ajout du ventilateur qui vient refroidir un peu tout ce beau monde et éviter à Naoll-E d’avoir des bouffées de chaleur ! Une bonne amélioration serait un régulateur "intelligent" à découpage afin de ne pas dissiper autant d’énergie inutilement et également permettre d’être moins limité en courant. Mais ça viendra ne vous en faites pas.

L’électronique embarquée dans Naoll-E se détaillait peu à peu. J’ai donc commencé les tests de l’électronique et en parallèle la modélisation 3D pour vérifier l’intégration de l’électronique dans cette dernière et la tester une fois installée.

La 3D :

Tout d’abord, des croquis ! Je commence souvent par faire des petits dessins sur un coin de papier histoire de tester plusieurs combinaisons d’idées, de formes… etc. Fan incontesté de Disney et Pixar, j’ai emprunté à Wall-E ses chenilles, système présentant de nombreux avantages : plus esthétiques que les roues, elles laissent la possibilité de se déplacer sur plusieurs types de surface et avec une bonne vitesse (n’ayant pas les moyens de Boston Robotic, je n’ai pas voulu expérimenter la course avec les jambes robotisées). Pour ce qui est du corps, je ne voulais pas quelque chose de carré, plutôt quelque chose comme Eve (pour rester dans le même thème).

J’ai commencé par modéliser et imprimer la tête, d’abord pace qu’elle donne vie au projet et la motivation s’en trouve décuplée, mais également pour une raison pratique d’intégration. La tête contient un télémètre ainsi que les haut-parleurs, qui sont 2 éléments importants pour l’interaction ; le son en particulier, étant le vecteur principal de communication de Naoll-E, devait être soigné. INFO BONUS : l’ouïe est le seul sens qu’on ne peut volontairement suspendre. On peut volontairement fermer les yeux, ne pas toucher, ne pas gouter, ne pas sentir mais pas ne pas entendre… l’ouïe est tout le temps sur ON et à 360° => bon vecteur de communication. C’était l’info bonus !

Bref… tout ça pour dire que, au tout début, Naoll-E c’était ça :

Oups ! picture fail  (3D_1)!

Puis petit à petit ont suivi les épaules, le buste et finalement la taille, véritable panneau de contrôle de Naoll-E ! Bon d’accord il y a 3 boutons… Mais tout de même, il est très important : de ce petit panneau de contrôle, on peut démarrer Naoll-E, changer de mode, la recharger et également flasher son programme. Je l’avais bien dit : un véritable panneau de contrôle !

Oups ! picture fail  (3D_2)!

Vient ensuite le tour des… pieds ?! Parlons peut-être de base, pour les plus sensibles d’entre vous (des podophobes dans la salle ?). Comme dit précédemment, je voulais des chenilles pour la base roulante de Naoll-E. Je ne voulais pas prendre une base roulante déjà toute faite car je voulais y intégrer toute l’électronique et ne pas avoir de disparité entre le corps et la base (et puis… €_€). J’ai trouvé sur Thingiverse un modèle de chenille à imprimer dont vous trouverez le lien dans les mentions légales (footer). Je n’ai pris de ce model que le système de chenille et non la base dont la forme me plaisait mais que j’ai préféré entièrement remodéliser pour y ajouter des fonctionnalités (le ventilateur, intégration de l’électronique…). J’ai ajouté des rivets en métal plutôt que du filament de PLA pour maintenir les chenilles. Une solution plus esthétique mais qui m’a joué des tours sur la dynamique du système. En tout cas, ça a fini par tourner sans trop forcer et ça ressemblait à ça :

Oups ! picture fail  (3D_3)!

Est venu ensuite le tour de la base et de l’intégration de l’électronique dans cette dernière. Le but était d’avoir quelque chose de compact mais surtout DEMONTABLE ! Si j’ai bien appris quelque chose dans mes différents projets et formations personnelles c’est de songer au démontage ! De plus comme je savais que l’électronique du projet était vouée à évoluer, j’ai pris les précautions nécessaires. Par exemple, le haut du corps est séparable de la base sans avoir besoin de couper tous les fils à grand coup de pince ! Après 2 impressions de 12h contrôlées jour et nuit toutes les 2h (quand on aime on ne compte pas), voilà ce qu’ont donné les premiers assemblages :

Oups ! picture fail  (3D_4)!

On assemble le tout et on a un joli robot qui… vous regarde inlassablement sans bouger ? Donnons-lui un peu de vie avec un beau programme cousu maing ! (dsl ça m’est venu comme ça… mais restez les autres transitions sont bien meilleures !)

Le programme :

Là aussi, il y a eu pas mal de préparation : plutôt que de me lancer brutalement dans le code, j’ai préféré préparer toute sa structure, la dénomination des variables, des fonctions… etc. Mais comme disait ma professeure de SVT de 1ere : un bon schéma vaut mieux qu’un long discours (le tout avec un petit accent chantant du sud et vous avez un dicton qui vous reste à vie) :

Oups ! picture fail  (programme_screenshot)!

Mode autonome :

A ce jour, Naoll-E peut donc se déplacer dans une pièce et, dès qu’elle rencontre un obstacle, elle scrute les alentours et choisit la direction la plus dégagée. Notons quand même qu’il vaut mieux éviter les escaliers pour le moment.

Mode manuel (interaction) :

Ce mode nécessite d’avoir un smartphone avec Bluetooth pour contrôler Naoll-E. Deux applications peuvent être utilisées : l’application "Bluetooth RC Controler" disponible sur Playstore, qui permet de télécommander Naoll-E sans réelle interaction, et l’application "Naoll-E" disponible dans l’onglet "Téléchargement" que je vais vous présenter ci-après.

L’application :

Pour le moment, j’ai développé le prototype de l’application avec l’outil MIT App Inventor 2. C’est un outil vraiment pratique pour développer rapidement une application mobile : si vous voulez réaliser des prototypes d’application, je vous le recommande. Une fois les objectifs de l’application entièrement définis, je la recoderai de zéro en JAVA afin d’avoir davantage d’expérience dans la programmation mobile. Mais pour le moment, voilà une capture d’écran de l’application:

Oups ! picture fail  (apk_screenshot)!

L’application utilise la reconnaissance vocale de Google pour transformer ce que vous dites en texte (l’écoute n’est pas permanente, uniquement lorsque vous appuyez sur la tête de Naoll-E). En fonction de ce qui est compris par l’API, l’application envoie une instruction au robot via Bluetooth. Pour plus de sécurité et rendre le dialogue plus flexible, j’ai enregistré plusieurs choix possible dans l’application (Naoll-E pourra répondre par exemple à bonjour, salut, coucou).

Le but final serait d’intégrer directement la reconnaissance vocale dans le robot : ce sera pour la mise à jour 2.0 qui (je pense) combinera le microcontrôleur et un micro-ordinateur (Raspberry pi Zero W). J’y travaille ! Alors n’hésitez pas à jeter des coups d’œil de temps en temps sur le site pour voir où en sont les améliorations ! En parlant du site internet…

Le site internet :

Ca faisait longtemps que je voulais me faire un site internet : comme chacun sait, les sites internet sont un des vecteurs de communication majeurs du XXIème siècle, et travaillant dans le domaine du digital, de la robotique et des nouvelles technologies, cela me semblait presque nécessaire d’avoir le mien. Naoll-E était un bon alibi pour sauter le pas et créer un site vitrine offrant plusieurs avantages : il me permet de me présenter, de présenter le projet Naoll-E et également de fournir une plateforme de téléchargement pour l’application.

Aujourd’hui, le site est en HTML et CSS avec une pincée de JavaScript. J’essaie de le développer en responsive pour qu’il s’adapte à tout type de support (PC, tablette, téléphone…). D’ailleurs si vous avez un problème d’affichage sur votre écran, merci de me le signaler par mail (onglet contact) afin que je corrige le problème au plus vite. Le prochain jalon sera de passer à un site dynamique en PHP et intégrer ainsi des outils comme Smarty ou Wordpress. Le premier permettra d’améliorer et faciliter la gestion du site internet et j’utiliserai le deuxième pour vous écrire des articles présentant mes autres projets (borne d’arcade, avion RC, menuiserie…).

Je développe le site internet petit à petit, lorsque j’ai un peu de temps, d’où la présence de la mention "Work in progress" un peu partout sur le site.

J'aimerais remercier Floriane Lagarrigue qui m'aide dans la traduction du site : elle vous a épargné quelques fautes disgracieuses! Donc tous en coeur: merci Floriane!

L’animation :

Je voulais que le site internet soit accueillant et donne une image sympathique de Naoll-E. Ainsi, avant de le commencer, j’ai créé une modélisation de la tête de Naoll-E. L’idée originale était de lancer une animation à l’ouverture du site encore un work in progress ! J’utilise pour l’instant une image fixe, la première frame de l’animation, qui est devenue en quelque sorte le logo du projet : pendant la réalisation de l’animation, j’ai vraiment cherché un design qui me plaisait et que je pourrais intégrer dans tous les supports (application, site internet, etc.). Cela a apporté une réelle homogénéité artistique au projet. Même mon CV essaie de reprendre les couleurs du site !

Le fond triangle est une image libre de droit trouvée sur internet (idem, le lien se trouve dans les mentions légales): j'en profite pour remercier au passage ces personnes qui mettent à disposition leur travail sur le web (vive l'open source!).

Pour parler un peu plus de technique : j’ai utilisé pour l’animation le logiciel Blender, un logiciel libre de modélisation, animation et rendu 3D que j’ai eu l’occasion d’utiliser en infographie dans mon cursus universitaire. J’ai fait plusieurs tests, notamment des changements de moteur de rendu, avant de m’arrêter sur cette solution. Finalement je trouve que ça valait le coup d’expérimenter ! Et vous ?

Oups ! picture fail  (animation)!

La vidéo :

Après un si long discours qui j’espère vous a mis l’eau à la bouche, je me devais de vous mettre un lien vers une petite vidéo de présentation !

Et ensuite ?

Comme vous l’avez constaté, le projet Naoll-E a encore de belles heures devant lui ! Les idées foisonnent et c’est davantage le temps qui vient à manquer plutôt que l’envie ! La prochaine modification importane sera l’intégration d’un raspberry pi Zero, qui me permettra d’élargir le champ d’action de Naoll-E. N’hésitez pas à venir périodiquement sur le site pour voir l’avancée du projet !

SI vous avez des remarques, des questions ou si vous voulez simplement me soutenir dans ce projet, n’hésitez pas à m’envoyer un message à contact@naoll-e.fr

Vous pouvez également visiter les autres pages de ce site internet et en découvrir davantage sur ma personne :)

En espérant que la lecture vous a plu !