Aller au contenu


Hologram

Inscrit(e) (le) 15 avril 2018
Déconnecté Dernière activité mai 26 2024 10:41
-----

Sujets que j'ai initiés

Burn-E

23 janvier 2021 - 06:48

Nouveau projet donc nouveau sujet ...

 

Même si je suis très loin d'avoir terminé Wall-E (https://www.robot-ma...c/12048-wall-e/), j'ai envie de me lancer dans un nouveau projet en parallèle. En effet, depuis quelques temps, j'ai remarqué qu'une de mes anciennes vidéos avait un certain succès (du moins, comparée à mes autres vidéos !  :D). C'est une vidéo où je teste un écran OLED en animant des yeux pour lesquels je m'étais très fortement inspiré des yeux de Cozmo.

 

 

Mais étant parti sur la construction de Wall-E, ce module était devenu inutile. Je l'ai donc mis de côté dans une boîte, ainsi que tout le code qui va avec. Maintenant que je vois qu'il y a de l'intérêt pour cette vidéo, je me dis que c'est dommage de ne pas l'utiliser et que je devrais mettre tout ce travail à profit dans un projet. Je me suis donc mis en quête d'un nouveau robot à construire pour lequel l'écran OLED aurait toute sa place, sans pour autant partir sur Cozmo. Et là, je n'ai pas eu à aller chercher bien loin pour trouver un robot avec un écran à la place du visage. Dans le film Wall-E, il y a un petit robot "réparateur" que l'on voit apparaître de temps en temps, mais qui a tout de même eu droit à son propre court-métrage de la part de Pixar :

 

BURN-E !

(prononcé "beurreni" svp car je pressens certains esprits mal placés  :laugh1:

 

Fichier joint  BURN-E_r.jpg   132,29 Ko   60 téléchargement(s)

 

Pour l'instant, ce n'est qu'une idée que j'ai en tête et je n'en suis qu'au stade des recherches.

Je pense que celui-ci est approprié pour l'impression 3D (que je m'y mette enfin). J'ai déjà trouvé le modèle 3D sur Thingverse (https://www.thingive...m/thing:2349088) ainsi qu'un modèle papier à plier qui pourra peut-être m'aider pour certaines mesures ( http://paper-replika.com/index.php?option=com_content&task=view&id=466&Itemid=30).

 

Maintenant, y a plus qu'à ...  :P  

 

Mais je n'abandonne pas du tout Wall-E.


Wall-E

21 avril 2018 - 05:18

Voici une présentation de mon projet robotique.
 
 
Petit historique :
A la base, je n'avais pas prévu de concevoir un robot. Initialement, il y a de cela plusieurs années, je me suis intéressé à la vision artificielle et plus particulièrement aux algorithmes de détection de visages, notamment en temps réel. Après avoir lu plusieurs articles sur le sujet, je me suis lancé dans l'implémentation Java d'un de ces algos issu d'une thèse : l'algorithme de Viola et Jones. Ca n'a pas été simple mais j'y suis quand même parvenu. Dans ma lancée, je me suis alors intéressé aux algos de reconnaissance faciale qui sont, sur le principe, relativement simples à comprendre mais beaucoup plus complexes à implémenter (Eigenfaces, Fisherfaces, ...). Malgré ma persévérance, je n'y suis pas parvenu (manque de courage ;) ). A cette période ont commencé à apparaître des librairies Java implémentant tous ces algorithmes, dont une qui m'a tout de suite plu : OpenImaj. Je me suis donc empressé de la tester avec différentes images, la webcam, ... La preuve ici. C'est à partir de ce moment-là qu'a commencé à germer ce projet de robotique.
Dans un premier temps, j'ai créé et développé un programme de suivi de visage à partir d'une webcam et de Lego Mindstorm (dont la vidéo est ici). J'ai poussé un peu plus loin l'idée en adaptant le programme pour des servomoteurs standards (avec l'aide d'un servo-controller et d'un système de pan & tilt). Résultat : mon attrait pour la robotique était né et depuis, je fais évolué ce petit système rudimentaire vers un robot qui a plus de "gueule".
 
Au fil du temps, je lui ai rajouté pas mal de fonctionnalités (essentiellement logicielles) mais j'aimerais maintenant qu'il ne soit plus un simple programme mais quelque chose de plus "matériel", plus "vivant" en quelque sorte.
 
 
Le projet :
Mon but est de créer un robot "compagnon" autonome. Bon, ça, c'est sur le papier pour l'instant. Je ne sais pas si je l'atteindrai, mais quand on est passionné ...
N'étant pas d'une imagination débordante pour le design, je préfère partir sur un modèle de robot existant et essayer d'en faire une réplique.
Je souhaite avant tout, que ce robot ait un visage expressif mais avec un aspect "boîte de conserve". Le plus connu d'entre eux est Wall-E, bien évidemment. De nombreuses vidéos montrent des "Wall-E builders" qui ont construit des répliques impressionnantes et très expressives :
Pendant un certain temps, j'ai hésité à me tourner vers un robot de type Cozmo qui a des expressions très rigolotes. Cela m'a valu l'achat d'un écran OLED pour effectuer quelques tests assez concluants.
 
Mais j'ai finalement choisi de partir sur un Wall-E qui a plus de charme avec son côté "tas de ferraille".
Dans un premier temps, je vais me concentrer sur la tête. Le reste du corps, notamment la partie déplacement, sera fait dans un second temps, si je n'ai pas abandonné d'ici là ;-)
Je pense faire ça quasiment en taille réelle, un peu comme sur les vidéos. N'étant pas un grand bricoleur, je vais concevoir les pièces nécessaires en 3D pour pouvoir les faire imprimer (je consacrerai un post pour ça).
 
 
Contraintes :
- Langage JAVA le plus possible (vous l'aurez sûrement compris, c'est mon langage de prédilection et que j'utilise tous les jours au boulot par la même occasion)
- Doit fonctionner sur une carte ARM (type Raspberry, Odroid, ...). Actuellement, tourne sur PC car j'ai des problèmes de capacités de calculs notamment pour la détection de visages en temps réel)
- Doit pouvoir être alimenté de façon autonome : via batteries (type chargeur de téléphone Power Bank, ou par piles)
- Plug & play : je veux éviter d'avoir des soudures à faire (je n'ai pas de fer à souder de toute façon ;) ). Je privilégie les cartes avec interfaçage USB via des API.
- Doit coûter le moins cher possible : mais quand on aime, on ne compte pas ... enfin, un peu quand même ;)
 
 
Fonctionnalités attendues (pour certaines déjà développées) :
- robot autonome
- détection de la parole (développé maison avec TarsosDSP)
- reconnaissance vocale (développé en faisant appel aux webservices de l'API Bing Speech, moins chère que celle de Google). Auparavant, j'utilisais Sphinx4, une librairie de reconnaissance embarquée mais très gourmande en ressources.
- détection de visage (développé avec OpenImaj)
- reconnaissance faciale (développée avec OpenImaj mais problème au niveau de l'apprentissage)
- reconnaissance d'objet (développée en faisant appel aux webservices de l'API Google Vision)
- système de discussion type chatbot (embryon de développement basé sur AIML)
- prise de décision en fonction du contexte (de ce qu'il voit, ce qu'il entend, ce qu'il a mémorisé, ...). Ex : si je lui demande "Qu'est-ce que c'est ?" en lui montrant un objet avec mon doigt, il doit être capable de me répondre. (non développé).
- Mouvements du visage, des yeux (via servo-moteurs) (en préparation, interfaçage programme / servo moteur en partie développée).
- Vision 3D (non développée)
- serveur web embarqué pour pouvoir le contrôler à distance et accéder au flux audio et vidéo (en partie développé)
- ... et j'en oublie certainement.
 
 
Matériel pour l'instant à ma disposition :
- 1 Raspberry Pi Type B
- 1 Raspberry Pi 2 Modèle B
- 1 Odroid C2
- 1 alimentation PowerBank 10000 mAh 5V / 2A
- 1 contrôleur 8 servomoteurs PhidgetAdvancedServo
- 2 servomoteurs Hitec 422 (il m'en faudra au moins 4, reste à savoir lesquels)
- 3 webcams Hercules HD Twist (dont une que j'ai désossée)
- 1 enceinte X-mini
- 1 écran OLED Yoctopuce Yocto-MaxiDisplay
 
Je ne pense pas me servir de tout ça mais il me faudra sûrement du matériel supplémentaire.
 
Maintenant, après toutes ces explications, il n'y a plus qu'à s'y mettre ...
 
Première étape, la partie mécanique avec réalisation de la tête et tous ces degrés de liberté. Ce n'est pas un domaine où je suis très à l'aise mais on n'est là pour apprendre. Je vais m'inspirer de ces vidéos pour la réaliser :
Pour cette partie-là, je pense que je ferais appel à vous pour me conseiller dans certains choix.
 
C'est parti ... 
 
A bientôt

Encore un de plus !

15 avril 2018 - 11:04

Bonjour à tous,
 
Je m'appelle Nicolas et j'ai 36 ans. Je suis développeur d'applications web et mon langage de prédilection est le Java. 
Histoire de changer un peu des applications de gestion que je fais à longueur de journée, je me suis lancé, depuis quelques années déjà, dans la conception d'un robot.
Au tout début, je m'étais essentiellement intéressé au domaine de la détection de visage que j'avais réussi à complètement implémenter en JAVA. Une fois cela fait, j'ai ensuite abordé la reconnaissance faciale au travers de différentes librairies.
Je me suis alors dit : "Pourquoi ne pas tenter d'aller un peu plus loin et faire du suivi de visage avec une webcam ?" J'ai donc acheté 2 servos-moteur, un contrôleur "plug & play" USB et un simple système de Pan / Tilt, et relié le tout à un programme "maison". Un embryon de tête était né et une nouvelle passion pour la robotique aussi.
N'étant pas un manuel et un grand bricoleur, je me suis essentiellement concentré sur la partie logiciel en rajoutant de nouvelles fonctionnalités : détection et reconnaissance de la parole, reconnaissance des émotions, pseudo intelligence artificielle type chatbot, application web de contrôle à distance, ... Toutes ces connaissances, j'ai essayé de les partager au travers d'un blog.
Le défi pour moi maintenant est de rendre ce projet plus réel, lui donner vie dans le monde physique pour qu'il ne soit plus un simple programme coincé au fond de mon ordinateur mais un vrai robot autonome. Bon, pour l'instant, Tout ça, c'est sur le papier ;-) C'est pour cela que je m'inscris sur ce forum (que je visite depuis pas mal de temps) afin, tout d'abord, de partager ce projet et mes connaissances avec vous, mais aussi pour y trouver des conseils, notamment à propos de sujets comme la mécanique, l'électronique ou l'impression 3D.
 
Je vais créer un fil de discussion pour essayer de présenter mon projet, ce qui a été fait, ce que je souhaite faire, ...
 
A bientôt