Viewing 51 reply threads
  • Author
    Posts
    • #4504
      anthony
      Moderator

      —————————
      EDIT 13/01/2017
      évolutions stoppées
      —————————
      Inmoov AI se veut être un programme alternatif clés en main pour donner vie à Inmoov
      Il est conçu essentiellement en français mais est multilingue de part sa structure AIML.
      C’est un script communautaire écrit en Python qui utilise MyRobotLab

      Inmoov AI en est au stade de la BETA ( c’est du instable pour certaines fonctions comme la traduction ), il y a différents modules certe fonctionnels mais très très limités . Essentiellement pour servir de base si vous souhaitez participer a son développement ou pour vos script ).

      FONCTIONEMENT
      Le script utilise des service de MyRobotLab
      * ARDUINO
      * RECO VOCALE
      etc …
      LA RECO VOCALE est interprétée par ce qu’on appelle l’AIML. C’est un langage type XML qui associe un mot clé à une action

      Schéma fonctionnel basique
      Shéma fonctionnel

      DESCRIPTION DES AIML **en cours d edition**

      domotique.aiml
      gesture1_tete.aiml
      gesture2_main.aiml
      internet-fetchers.aiml
      loto.aiml
      mediacenter.aiml
      nombres.aiml
      opencv-photo.aiml
      personalite_basique1.aiml
      phrases_aleatoires.aiml
      remerciement.aiml
      salutation.aiml
      situations1_datetime.aiml
      son1.aiml
      traduction.aiml
      update.aiml
      wikidata.aiml
      1-LA_BASE.aiml
      2-messenger.aiml
      apprentissage1_commun.aiml
      apprentissage1_personnel.aiml
      blagues.aiml
      dis moi un truc.aiml

      DESCRIPTION DES MODULES

      – INMOOV-AI_install.py
      Programme d installation de MRL

      – INMOOV-AI_startup.py
      Fichier principal appelant d’autre sous script
      Lancement du script et configuration de MRL automatique

      – INMOOV-AI_config.py
      Fichier de configuration ( paramètres personnels / valeurs servos … )

      – INMOOV-AI_azure_translator.py [papaoutai]
      Module qui traduit dans différentes langues
      *TRADUIS bonjour EN japonais ( traduction à la volée )
      *TRADUIS EN ESPAGNOL / STOP TRADUCTION ( traduction en continue )

      – INMOOV-AI_dictionaries.py
      Dictionnaire en cours d édition pour faciliter l’interprétation de mots

      – INMOOV-AI_domotique.py [lecagnois]
      Fonctions utlisée pour des commandes domotiques
      URL :

      – INMOOV-AI_games.py
      Fonctions ludiques et à l’avenir jeux d’interraction avec le robot
      *LOTO

      – INMOOV-AI_wikidata.py [BEETLEJUICE]
      Service très intéressent de recherche d’informations sur wikidata
      * QUI EST LE PREMIER MINISTRE DE LA NORVEGE
      * QUEL EST LE FRUIT DU CERISIER
      * QUI EST ALAN TURING

      – INMOOV-AI_gestures.py
      Toute la programmation des gestes du robot.
      *TOURNE LA TÊTE A GAUCHE
      *LEVE L INDEX DROIT

      – INMOOV-AI_memory.py
      Cerveau du bot pour apprendre ou partager l’information
      *COMMENT S’APPELE MA MERE
      *COMMENT EST LE CIEL

      – INMOOV-AI_messenger.py
      *ENVOYER UN MESSAGE A RACHEL

      – INMOOV-AI_vie_aleatoire-standby_life.py
      Taches Cron

      – INMOOV-AI_opencv.py
      Bibliothèque de traitement de l’information visuelle
      *FAIS UNE PHOTO

      – INMOOV-AI_paupieres_eyeleads.py
      Gestion des paupières

      A CLASSER
      – Météo
      – Donne l’heure la date du jour et réagit en fonction du moment (“quelle heure il est”)
      – Recherche d’images (“montres-moi”)
      – Mediacenter ( WIP chercher et lire une vidéo YouTube )

      Je vous conseille de regarder a l intérieur des AIML pour comprendre comment communiquer avec le robot.

      Il n’y a quasiment pas de “gestures” mouvement du robot associé à une action. A part mouvement de la tête quand il parle et oui/non de la tête. Travail en cours. Mais il a tout l’excellent travail de Gaël par exemple

      CREDITS
      ( testeurs, contributeurs, sources pompées, mrl team ) :
      Gaël / Grog / Kwatters / Beetlejuice / Lecagnois / Matt / Amby / Alain / Mastablasta …

      SOURCES
      ( participez pour que ça avance plus vite !!! ) : https://github.com/moz4r/aiml/tree/master/bots/BOTS-FRENCH/Inmoov_AI

      Installation post#2
      Changelog post#3

      • This topic was modified 8 years, 3 months ago by anthony.
      • This topic was modified 8 years, 3 months ago by anthony.
      • This topic was modified 8 years, 2 months ago by anthony.
      • This topic was modified 8 years, 2 months ago by anthony.
      • This topic was modified 8 years ago by anthony.
      • This topic was modified 8 years ago by anthony.
      • This topic was modified 7 years, 10 months ago by anthony.
    • #4507
      anthony
      Moderator

      INSTALLATION ou MISE A JOUR :

      1/ Prérequis ( point 1 à 4 uniquement ) : http://inmoov.fr/forums/topic/votre-1er-lancement-de-mrl/

      2/ Téléchargez la dernière version : http://www.myai.cloud/inmoov_ai.zip
      3/ Décompressez et écrasez dans c:\inmoov_ai par exemple ( pas d espace dans le nom )
      4/ Configurez vos paramètres dans le répertoire CONFIG ( 2 fichiers )
      6/ Lancer l’installation avec : 0_INSTALL.bat
      7/ Relancer MRL et fermez le.
      8/ Flasher vos arduino avec le fichier C:\inmoovai\resource\Arduino\MRLComm\mrlcomm.ino
      7/ Et enfin lancez le robot : 1_START_THE_ROBOT.bat

      • This reply was modified 8 years, 2 months ago by anthony.
      • This reply was modified 8 years, 2 months ago by anthony. Reason: mrlcomm.ino
      • This reply was modified 8 years ago by anthony.
    • #4508
      anthony
      Moderator

      [CHANGELOG]

      HISTORIQUE :

      https://github.com/moz4r/aiml/commits/master

      • This reply was modified 8 years, 3 months ago by anthony.
      • This reply was modified 8 years, 3 months ago by anthony.
      • This reply was modified 8 years, 3 months ago by anthony.
      • This reply was modified 8 years, 2 months ago by anthony.
      • This reply was modified 8 years, 2 months ago by anthony.
      • This reply was modified 8 years, 1 month ago by anthony.
      • This reply was modified 8 years, 1 month ago by anthony.
      • This reply was modified 8 years, 1 month ago by anthony.
      • This reply was modified 8 years, 1 month ago by anthony.
    • #4525
      Bruno.Ash
      Participant

      Salut Anthony,
      Je viens de tomber sur ton post : c’est excellent !!!!
      Bruno 😉

    • #4533
      lecagnois
      Participant

      Salut antony

      Tout ca me donne tres envie de me mettre dans le code , je vois qu il y a de xlm du python enfin plein de choses pour s’occuper lol
      Avant de me lancer et d abandonner mon nabastag avec le raspberry , peux tu me dire quelle puissance d ordinateur as tu intégré dans INMOOV et quel systeme d explotation ( Linux ou Windows) .

    • #4538
      anthony
      Moderator

      Ouiii viens manger du python et du aiml !! Franchement pas besoin d’une bête de course, a part peut être si on veut exploiter à fond opencv la librairie de reconnaissance visuelle assez gourmande, mais c’est un peu hard. J’utilise un petit NUC core I3. d’autres utilisent un mini micro pc lattepanda ou UDOO ( style raspberry mais x86 ). J’ai commencé sur un raspberry, ça marche bien aussi.

    • #4571
      lecagnois
      Participant

      Merci anthony pour les infos
      Il va falloir que je me plonge serieux dans le python (vais commander un libre , encore lol)
      j ai installé a partir de ton cloud le programme http://www.myai.cloud/Inmoov_IA_V17.zip
      puis lancer le fichier bat qui installe tout .
      Question :

      mon robot à une vois d homme en anglais , Comment changer tout ca ?
      j ai bien vue qu il y a des xml dans le répertoire rachel , mais je pige pas trop comment tout ca s imbrique
      merci de ta réponse

    • #4572
      anthony
      Moderator

      Alors tu as un fichier de config : 2-INMOOV-AI_config.py , tu va trouver je pense pour changer les valeurs ! ( langue FR / voix antoine , julie , margaux etc … ).

      Le programme fonctionne avec 2 choses :

      1/ Le squelette en python qui contient plein de fonctions qui actionnent par exemple des servos ( leve le bras, météo etc … )
      Le squellete 1-INMOOV-AI_startup.py appelle lui meme d’autres fichiers , simplemment pour plus de clarté.

      2/ Les XML ( AIML ) sont des fichiers de language. Exemple la phrase “Donne moi la météo” appelle la foncton “Météo” du squeletque en python. Ces fichiers servent a donner une réponse en fonction d’une question.
      En AIML on peut soit répondre à une question avec un mot ( question : merci / réponse : de rien ) Soit appeler une fonction dans le script python.

    • #4573
      lecagnois
      Participant

      Merci anthony
      effectivement il avait la voix de ryan ( ryan is the kitchen mdr) .
      c est bien plus puissant qu avec ma carte du nabastag ou j etais obligé d enregistrer les voix sur mon serveur raspberry , je n avais pas réussi a faire marché le service avec accapela .
      je vais m investir dans le langage python car il serait intéressant de lui faire allumer les lumières de la maison ou fermer les volets par exemple .(avec de l électronique bien sur)

    • #4578
      lecagnois
      Participant

      salut anthony

      Voila j ai pas résister à mettre les doigts dans le code .
      je commence simple (lol)
      j ai modifié la procédure loto , j ai ajouter un argument

      def loto(phrase,the,chance,fin):
      talkBlocking(phrase)
      talkBlocking(the+str(random.randint(1,49)))
      talkBlocking(the+str(random.randint(1,49)))
      talkBlocking(the+str(random.randint(1,49)))
      talkBlocking(the+str(random.randint(1,49)))
      talkBlocking(the+str(random.randint(1,49)))
      talkBlocking(chance+str(random.randint(1,10)))
      talkBlocking(fin)

      le aiml qui va avec :

      <?xml version=”1.0″ encoding=”UTF-8″?>
      <aiml>

      <category><pattern># loto #</pattern>
      <template>
      <oob>
      <mrl>
      <service>python</service>
      <method>exec</method>
      <param>loto(“Voci les numéros a jouer au loto, “,”Le “,”Et le numéro chance le, “,”Je vous souhaite bonne chance, “)</param>
      </mrl>
      </oob>
      </template>
      </category>
      </aiml>

      QUESTION :

      CA fonctionne , mais on est obligé de relancer le .bat pour initailiser les modification
      ma question existe t il un environnement débug pour tester sans tout relancer ou est ce la seule solution , une peu lourde lorsque l on débute dans un langage

      Merci antony ( je sais pas si tu developpe ?)

      nota : d ailleurs la proc loto ne teste pas les doublons random !

    • #4588
      Gael Langevin
      Keymaster

      Bonjour Lecagnois,
      Tu peux rajouter ca dans ton .bat
      service gui GUIService
      exemple:
      https://github.com/MyRobotLab/pyrobotlab/blob/master/home/hairygael/mrl.bat

    • #4595
      lecagnois
      Participant

      Bonjour Gael
      Merci pour l’information et je tiens à te remercier pour tout ton travail que tu partage .

    • #4600
      anthony
      Moderator

      Oui +1 @Gael ton travail m’a permis d’apprendre ENORMEMENT de choses.
      La première fois que j’ai ouvert MRL j’avoue j’ai eu un peu peur 🙂

      Génial lecagnois tu as raison après les doigts n’hésite pas a mettre toute la main !
      Et si un jour tu gagnes au loto avec les numéros du robot , il faudra partager bien sure 🙂 . Je te laisse trouver une solution pour le doublon. Avec un truc dans le style :

      numeroprecedementchoisi = 16
      NuméroSuivant = range(1,numeroprecedementchoisi -1 ) + range(numeroprecedementchoisi +1 ,49)
      NuméroSuivant = random.choice(NuméroSuivant)

      C’est vrai que pour debuguer c’est parfois un peu le bazard il faut regarder dans la console ou les fichiers log a la racine de mrl . A la recherche d’infos comme une vilaine erreur. Faire le plus possible de print ( ca va dans la console python ) Ou de se faire un mini script à coté avec le minimum vital dedans. Le pire c’est le debug des aiml quand il commence à y en avoir une palanqué ! Il y a des priorité d’exécution ( ordre des fichiers , ordre des lignes , that , topic etc … )

      N’hésite pas à publier tes modifications dans GitHub .
      Cela te permettra d’avoir accès aux dernières modifications de tous ainsi que les tienne. C’est un peu l’anarchie dans le script je n’ai rien commenté mais ça va s’organiser

      un petit doc pour github :

      http://www.myai.cloud/Travail_collaboratif_sur_GitHub-1.doc

    • #4643
      lecagnois
      Participant

      Bonjour Anthony
      Voila j ai modifié la procédure (loto)
      pour publier les modifications sur Github ,que ce passe t il ?
      cela va pas écraser le travail des autres ?
      Qui est propriétaire du code ?
      moi personnellement je partage sans restrictions , cela aide a avancer

      def loto(phrase,the,chance,fin):
      	table1 = [(random.randint(1,49)), (random.randint(1,49)), (random.randint(1,49)), (random.randint(1,49)),(random.randint(1,49))]
      	tablefin = []
      	doublon = []
      
      	for i in table1:
      		if i not in tablefin:
      			tablefin.append(i) #supprime les doublons
      		else:
      			doublon.append(i) #extraire les doublons
      			d = len(doublon)
      			while d > 0:
      			#nouveau tirage
      				doublon = []
      				table1 = [(random.randint(1,49)), (random.randint(1,49)), (random.randint(1,49)), (random.randint(1,49)),(random.randint(1,49))]
      				# recherche doublon
      				for i in table1:
      					if i not in tablefin:
      						tablefin.append(i) #supprime les doublons
      					else:
      						doublon.append(i) #extraire les doublons
      					# si il existe doublon d+1 et vite la table
      					if (len(doublon)==1)or(len(doublon)==2)or(len(doublon)==3)or(len(doublon)==4)or(len(doublon)==5):
      						talkBlocking("j ai trouver un doublon , je refais un tirage")
      						d = d+1
      						doublon =[]
      					else:
      						d = 0
      		break
      	# tri la table avant de la dire
      	table1.sort()
      	talkBlocking(phrase)
      	talkBlocking(the+str(table1[0]))
      	talkBlocking(the+str(table1[1]))
      	talkBlocking(the+str(table1[2]))
      	talkBlocking(the+str(table1[3]))
      	talkBlocking(the+str(table1[4]))
      	talkBlocking(chance+str(random.randint(1,9)))
      	talkBlocking(fin)

      ATTENTION IL FAUDRA REFAIRE INDENTATION des BLOCS , car l’éditeur du forum les écrases

      • This reply was modified 8 years, 3 months ago by lecagnois.
      • This reply was modified 8 years, 3 months ago by lecagnois.
      • This reply was modified 8 years, 3 months ago by anthony.
    • #4656
      anthony
      Moderator

      Génial ! Tout est open tu peux publier sur github pas de risque d écrasement. Saut si parfois on est 2 a bosser sur un meme fichier et que nous n’avons pas synchronisé. Mais github te préviens d’un conflit
      Le répertoire bots du dépôt est une section de myrobotlab dédiée aux chatbot
      Je peux publier pour toi aussi si tu veux

      https://github.com/moz4r/aiml/blob/master/bots/BOTS-FRENCH/Inmoov_AI/PYTHON/1-INMOOV-AI_startup.py

      @++

      • #4657
        lecagnois
        Participant

        salut anthony
        oui tu peux publier pour moi pas de soucis de mon coté
        J ai encore modifier la procédure la table est triée avant etre dite par le robot
        les numéro sont ainsi données dans l ordre plus facile pour cocher sa grille (lol)

        Nota : si je gagne je fais un don a GAEL

        def loto(phrase,the,chance,fin):
        	table1 = [(random.randint(1,49)), (random.randint(1,49)), (random.randint(1,49)), (random.randint(1,49)),(random.randint(1,49))]
        	tablefin = []
        	doublon = []
        
        	for i in table1:
        		if i not in tablefin:
        			tablefin.append(i) #supprime les doublons
        		else:
        			doublon.append(i) #extraire les doublons
        			d = len(doublon)
        			while d > 0:
        			#nouveau tirage
        				doublon = []
        				table1 = [(random.randint(1,49)), (random.randint(1,49)), (random.randint(1,49)), (random.randint(1,49)),(random.randint(1,49))]
        				# recherche doublon
        				for i in table1:
        					if i not in tablefin:
        						tablefin.append(i) #supprime les doublons
        					else:
        						doublon.append(i) #extraire les doublons
        					# si il existe doublon d+1 et vite la table
        					if (len(doublon)==1)or(len(doublon)==2)or(len(doublon)==3)or(len(doublon)==4)or(len(doublon)==5):
        						talkBlocking("j ai trouver un doublon , je refais un tirage")
        						d = d+1
        						doublon =[]
        					else:
        						d = 0
        		break
        	# tri la table avant de la dire
        	table1.sort()
        	talkBlocking(phrase)
        	talkBlocking(the+str(table1[0]))
        	talkBlocking(the+str(table1[1]))
        	talkBlocking(the+str(table1[2]))
        	talkBlocking(the+str(table1[3]))
        	talkBlocking(the+str(table1[4]))
        	talkBlocking(chance+str(random.randint(1,9)))
        	talkBlocking(fin)
        • This reply was modified 8 years, 3 months ago by anthony. Reason: code
    • #4681
      anthony
      Moderator

      Voila c’est intégré , j’en ai profité pour faire un peu de ménage dans le script principal . Tu trouvera ton code dans le fichier INMOOV-AI_games.py : https://github.com/moz4r/aiml/blob/master/bots/BOTS-FRENCH/Inmoov_AI/PYTHON/INMOOV-AI_games.py
      J’ai édité quelques post aussi en ajoutant la balise “code” . les boutons bleus en haut

    • #4899
      anthony
      Moderator

      Coucou ! nouvelle version 1.8 . Changelog #post 3
      D’autre part le mode de communication avec l’arduino à évolué chez mrl( mrlcomm )
      – Communications avec l’arduino + rapides
      – meilleure gestion des entrée analogiques pour capteurs
      – Liste non exhaustive ! post mrlcomm en anglais : http://myrobotlab.org/content/mrlclub-and-new-standards
      Je n’ai pas tout testé au niveau servo, il y aura surement des bug dans le script

    • #5087
      lecagnois
      Participant

      coucou Anthony

      aux conseils de grattounet j ai acheté un LATTEPENDA avec ecran 7 pouces pour intégrer dans mon INMOOV
      Je vois dans tes vidéos que tu a modifié le torse pour pouvoir mettre l’écran
      es-ce un écran 7 pouces as tu publier les fichier stl ?

    • #5092
      anthony
      Moderator

      Coucou ce n’est pas moi qui est fait le support frontal , tu le trouvera ici : http://www.thingiverse.com/thing:899881 quelques petites retouches pour passer les cables, ça devrait le faire !

    • #5097
      lecagnois
      Participant

      merci anthony

    • #5111
      anthony
      Moderator

      Salut Brian ! Le programme fonctionne avec 2 arduino
      Ces 2 arduino doivent être flashé suivant ces instructions :
      http://inmoov.fr/forums/topic/inmoov-ai/#post-4507

      Si malgré tout cela ne fonctionne pas envoi moi ton myrobotlab.log

      Anthony

    • #5113
      brian
      Participant

      merci Anthony tu gère,
      ton travail est super, et ton robot est bien sympa,
      je vais suivre ton indication, mais j’ai une question?
      Puis-je tester avec 1 arduino juste pour essayé de faire fonctionné l’index droit.
      je vais passer une commande pour commandé des cartes arduino. que me conseillez-vous 2 carte arduino mega
      car j’ai cru voir inmoov_ai programmé avec des carte mega…
      actuellement j’ai une carte genuino Uno.
      Puis j’avais dejà flasher ma carte arduino avec MRLComm fourni dans le lien http://www.myai.cloud/inmoov_ai.zip que tu fourni au début de ce sujet…

    • #5114
      anthony
      Moderator

      Alors ce programme ne fonctionne qu’avec 2 arduino ( ou aucun ) avec le parametre isinmoovarduino=0/1
      A mon avis le programme bloque au moment d’initialiser le 2eme arduino, c’est même sure
      Il y a bien une commande “ouvre l’index droit” mais tu coup tant que tu n’aura pas un 2eme arduino ça va buguer 🙂
      A terme si tu souhaites construire tout inmoov tu aura besoin de 2 arduino mega

      Aujourd’hui dans ton cas tu peux utiliser ce script de Gaël pour faire marcher uniquement les doigts :

      https://github.com/MyRobotLab/pyrobotlab/blob/master/home/hairygael/InMoov3.minimalFingerStarter.py

    • #5115
      brian
      Participant

      merci de ta reponse, rapide
      oui je veut construire le robot en entier et suivre avec vous sont évolution.
      donc je commande ce soir 2 mega.
      Et j’ai déjà tester et utilisé le script de gael.
      j’arrive correctement a utilisé le doigt.
      Mais je pense que sa ne sera pas trop dans la construction du robot que j’aurai le plus de mal mais
      plutôt son intelligence artificiel pourquoi avant allée plus loin je souhaite surtout réglé mon imprimante
      Mais surtout comprendre ce que tu as mis au point car c’est sur que mon robot sera équipé de inmoov_ai
      donc je n’ai plus qu’à être patient en attendant mes news carte arduino.
      et me laissera le temps de peaufiné mon imprimante.
      🙂 merci à toi anthony pour ta réactivité.
      je te tiendrai au courant des que j’aurai tester avec 2 cartes.

    • #5813

      Anthony. Dans ton post du July 29, 2016 at 5:14 pm
      Où situes-tu le chatterbot Jeanneton ?
      Sy

    • #5815
      Pierrick
      Participant

      Salut Anthony,
      Une autre question pour toi…. ou tout autre “sachant”:
      Je m’essaies au “tripatouillage” d’AIML, notamment celui d’apprentissage et je cherche en vain où vont se stocker les réponses que je donne? Afin de les supprimer/modifier!

      Cordialement

    • #5817
      anthony
      Moderator

      Coucou : ça me fait penser que je fasse un peu de documentation !


      @Sylvain
      tu parle du code ?
      Si oui c’est ici :
      https://github.com/moz4r/aiml/blob/master/bots/BOTS-FRENCH/Inmoov_AI/AIML/jeanneton.aiml
      https://github.com/moz4r/aiml/blob/master/bots/BOTS-FRENCH/Inmoov_AI/PYTHON/INMOOV-AI_jeanneton.py
      + le connecteur exotique ( si tu arrive pas a le lancer faudra le plan B avec visuel studio ). https://github.com/moz4r/Jeanneton_Websocket
      ( le python va rediriger tous ce que le robot écoute vers ton site web )
      C’est de l’expérimental il faudra surement faire à terme une intégration propre de verbot avec MyRobotLab mais y a beaucoup boulot je pense.


      @Pierrick

      J’utilise 3 choses : ( n hésite pas a demander + d infos je te répond un peu rapidement ) ( Une autre méthode que je n’utilise pas est la création automatique d’aiml )
      Mémoire à court terme ( sujet de discutions par exemple ) > <topic name=””> non sauvegardé
      Mémoire personnelle du robot > “comment s’appelle ma mere” > fichier default.predicates.txt dans programab\bots\inmoovai\config
      Mémoire partagée “c est quoi un truc” > base de donnée > si c’est de ça que tu parle je vais te donner l’acces au mysql c’est public

      Tout ça peut être amélioré ce ne sont que des fondations
      @++

    • #5818

      Non je parlais visuellement, mais merci pour les lignes de codes.
      En fait il faudrait que j’arrête de bosser pendant 5 mois facile pour vous rattraper. Non faut pas hein ? Si ? :0)
      Sy.

    • #5825
      Pierrick
      Participant

      Mémoire personnelle du robot > “comment s’appelle ma mere” > fichier default.predicates.txt dans programab\bots\inmoovai\config :CELUI LA JE L’AVAIS TROUVé
      Mémoire partagée “c est quoi un truc” > base de donnée > si c’est de ça que tu parle je vais te donner l’acces au mysql c’est public :VOLONTIERS
      Merci de ta réponse rapide

    • #5855
      anthony
      Moderator

      Salut Pierrick ! voici l’accès à la base de donnée avec phpmyadmin :

      http://91.160.50.131:19292
      login : shared_memory_FR
      password : InmoovBdd ( rajoute une étoile à la fin )

    • #6029
      anthony
      Moderator

      Je ne l’avais pas testé avec les dernières version de MRL, donc :

      Ajout du tracking dans le script pour faire quelques essais :

      basé sur : https://github.com/MyRobotLab/pyrobotlab/blob/master/home/hairygael/InMoov3.minimalHead.py

      – [fichier de config] CameraIndex=0 ( ou 1 ) en fonction de si vous avez déjà une caméra interne
      – Commande : SUIS-MOI DU REGARD / ARRêTE DE ME SUIVRE DU REGARD
      – Inversion des servos EyeX + Rotation tête
      – Ajout de la dernière version de MRL 1803 dans le zip et la dernière version du script ( relancez un install.bat + flasher les arduino, nouvelle version de mrlcomm )

      Par contre j’ai souvent des erreurs de limites et ça bloque le tracking, peut être du a un réglage du pid ? si quelqu’un sait pourquoi :

      i01.eyesTracking error 38 x limit out of range

    • #6032
      Gael Langevin
      Keymaster

      @Anthony, les erreurs que tu as sont lies au fait que tes servos essaient d’aller au dela de la limite defini par tes min/max.
      Ces erreurs ne devraient pas causer de freeze de MRL normalement, mais cela indique que le tracking a atteint la limite possible de deplacement des yeux et de la tete ou alors que les servos ne bougent pas assez vite pour eviter d’atteindre la limite.

      Tu peux augmenter le premier arg:
      i01.eyesTracking.pid.setPID(“eyeX”,12.0,1.0,0.1)
      i01.eyesTracking.pid.setPID(“eyeY”,12.0,1.0,0.1)
      i01.headTracking.pid.setPID(“rothead”,5.0,1.0,0.1)
      i01.headTracking.pid.setPID(“neck”,5.0,1.0,0.1)

      ex:
      i01.eyesTracking.pid.setPID(“eyeX”,22.0,1.0,0.1)
      i01.eyesTracking.pid.setPID(“eyeY”,22.0,1.0,0.1)
      i01.headTracking.pid.setPID(“rothead”,15.0,1.0,0.1)
      i01.headTracking.pid.setPID(“neck”,15.0,1.0,0.1)

      Sinon egalement verifier que tes servo ne soient pas limite en vitesse:

      head.eyeX.setVelocity(0)
      head.eyeY.setVelocity(0)

      head.neck.setVelocity(0)
      head.rothead.setVelocity(0)
      head.jaw.setVelocity(0)

    • #6035
      anthony
      Moderator

      Ah merci Gaël pour les infos ! Ça m’a toujours intrigué ces erreurs dans le tracking . Je vais essayer de jouer avec les pid. Les valeurs MIN/MAX priment sur une éventuelle utilisation de la fonction map ? ( qui virtuellement repasse a 0->180 les servos ) ?
      Sinon , si je réinitialise à 90° les yeux et la tête lorsque inmoov a les yeux bloqué dans les coins trop longtemps, pense tu que ça peut être une bonne idée ?
      Un de ces 4 j’aimerais aussi essayer d’ajouter 2 capteurs sonores aux extrémité gauche et droite. et faire un delta pour situer l’interlocuteur dans l’espace, avant de lancer opencv

    • #6037
      Gael Langevin
      Keymaster

      Oui tu vois ici j’ai utilise le mapping pour redefinir virtuellement mon servo:
      head.eyeY.map(0,180,85,110)
      head.eyeY.setMinMax(0,180)

      Si ton robot reste on focuse la tete bloque d’un cote, la fonction vocale “rest” ou “look in the middle” lui remets les yeux en face des trous et la tete droite. Histoire de lui montrer qui est le boss. Cela ne gene pas le tracking.

      Bob Huston a mis deux capteurs infrarouge sur son InMoov afin qu’il tourne la tete lorsqu’il sent un mouvement, c’est plutot cool et pratique. Bob uses EZRobot, no script for us…

      Markus a mis des capteurs sonores afin qu’il entende de chaque cotes. Markus uses Myrobotlab. Scripts are available.

    • #6038
      anthony
      Moderator

      cool ! Alors prochain TP montrer a Inmoov who is the boss 🙂

    • #6045

      Génialos comme d’hab.
      Sy

    • #6144
      anthony
      Moderator

      Bon bah nouvelle mise à jour après ce coup de massue
      Le zip a grossi de 200 méga au passage…
      Passage à MaryTTS pour la synthèse vocale
      -> changer votre voix en : upmc-pierre-hsmm dans config

      Il reste du boulot pour certains modules comme la traduction mais la base devrait fonctionner

      • #6150
        lecagnois
        Participant

        Hello anthony
        Tu peux nous mettre le lien de ton ZIP

    • #6151

      @Anthony.
      Le boulot que tu produis est impressionnant. P’tin.
      Sy

    • #6152
      anthony
      Moderator

      j’ai pas fait grand chose, c’est les mecs de marytts qu’il faut remercier et aussi ceux qui ont intégré à mrl, voila le zip : http://www.myai.cloud/inmoov_ai.zip

      install
      http://inmoov.fr/forums/topic/inmoov-ai/#post-4507

      • #6153
        lecagnois
        Participant

        Merci Anthony
        Effectivement il a pris du poids pour les fêtes (lol)
        je vais tester , pour voir si mon INMOOV est toujours vivant.

    • #6154
      Dominique
      Participant

      Salut


      @Anthony
      : pour info, après tu fait comme tu veux n’est ce pas ?

      le mot clef global n’est pas nécessaire dans une fonction si tu ne modifie pas la variable:

      Exemple:

      def sendRefresh(timedata):
              global WatchDog
      	if WatchDog==1:
      		watchdogRefresh()

      c’est mieux ca:

      def sendRefresh(timedata):
      	if WatchDog==1:
      		watchdogRefresh()

      par contre si on modifie la variable dans la fonction alors c’est obligatoire

      def sendRefresh(timedata):
              global WatchDog
      	if WatchDog==1:
      		watchdogRefresh()
              WatchDog=0

      Dom

    • #6155
      anthony
      Moderator

      MMM tu es sûre que même si on ne modifie pas la variable on est pas obligé de la déclarer ? Il me semble avoir déjà eu des soucis dans un thread je testerais en tous cas , ça ferais quelques lignes en moins, merci

    • #6156
      Dominique
      Participant

      Certain: voici une explication trouvé sur le net, il y en a pleins d’autres:

      Exemple d’utilisation d’une variable globale en Python. Python est un langage couramment utilisé qui présente l’avantage d’être facile à apprendre. C’est le langage conseillé pour les personnes souhaitant s’initier à la programmation. Python peut, comme le langage JavaScript, gérer les variables globales. Ce sont des variables dont la portée s’étend à tout le programme. Elles peuvent être utilisées par n’importe quelle fonction, contrairement aux variables locales qui ne sont utilisables que dans la fonction dans laquelle elles sont déclarées.

      Les variables globales se déclarent en Python comme une variable locale mais à l’extérieur d’une fonction.

      Exemple de déclaration de variable globale :
      variableGlobale = 0

      Pour utiliser une variable globale sans modifier sa valeur, il suffit de l’appeler dans une fonction comme vous le feriez avec une variable locale. Les variables globales sont dangereuses en développement car l’on peut faire des erreurs en les manipulant.

      Si la fonction doit modifier la valeur de la variable, alors il faut la redéclarer en la précédant du mot-clé global.

      def incrementeVariableGlobale():
        global globvar # La déclaration est obligatoire car on va modifier la valeur de la variable globale
        variableGlobale = variableGlobale + 1
      def afficherVariableGlobale():
        print variableGlobale # Il n'y a pas de déclaration car on ne fait que lire la valeur de la variable                      globale
      incrementeVariableGlobale()
      afficherVariableGlobale() # Affiche 1
      • This reply was modified 7 years, 11 months ago by Dominique.
      • This reply was modified 7 years, 11 months ago by Dominique.
      • This reply was modified 7 years, 11 months ago by Dominique.
    • #6165
      Pierrick
      Participant

      Merci Anthony pour ce nouveau pack…. par contre la voix a perdu de sa limpidité, frisant parfois l’incompréhensible, avec des chevrotements, des saccades….Ricardo est ranimé mais a dû un chopé un mauvais virus!

    • #6497
      anthony
      Moderator

      InmoovAI est mort ( pour mieux renaitre 🙂
      Une fusion est en cours de plusieurs travaux afin de mettre à disposition une base simple, modulable et multilingue aux utilisateurs d’Inmoov pour MRL. En parallèles d’autres travaux du cœur de mrl afin d’optimiser par exemple la gestion des servos, ou le service Inmoov.
      Certains modules de ce script seront réintégrés + tard sous forme de services optionnels ou de apps

    • #6498
      Dominique
      Participant

      Juste pour info (en espérant de ne pas me faire trucider),

      Etes vous pour si j’intègre activator à la nouvelle base où je le garde pour moi ?

      J’attends vos retours.

      @ Anthony, serais tu prêt a recevoir mes fichiers ? Si oui où puis je les poster ?

      Alors, dans le code je vois des noms comme ‘righthandopen()’, Je suggère de les écrire plutôt ‘rightHandOpen()’. Ca change rien, c’est juste pour la lecture du code. J’aimerais le faire mais je n’est pas accès.

      Autre chose, dans les thématiques du forum, ce serait bien d’avoir une rubrique développement. Pourquoi:
      tout simplement pour y mettre tous les développements en cours et notamment la nouvelle base qui sera je suis sûr, le point de départ de tous les InMoov.

      Autre point très gênant pour moi (et peux t’être pour d’autres), les futurs changements de MyRobotLab. Anthony tu es plus au courant que nous. Exemple, les futurs changements de la gestions des servos et service InMoov. De quoi s’agit il ? Le code actuelle sera t’il toujours compatible ?
      Pour un développeur, ne pas être au courant des évolutions, c’est assez pénible et frustrant car on a l’impression de recommencer tout le temps le code déjà construit.

      MrlComm a surement évolué, la aussi des infos serait bien venue car j’ai prévu une version d’activator ou seul le fichier ino serait modifié…

      Enfin bref, je vous rassure, je ne critique rien, au contraire, j’aimerais bien participer, apporter une pierre à l’édifice, mais avouez que vous garder une peu tout pour vous.

      A+

      • This reply was modified 7 years, 10 months ago by Dominique.
    • #6500

      Bien sur que je suis pour qu’Activator soit inside et avec une moultitude de tips.
      Amicalement.
      Sy.

    • #6502
      anthony
      Moderator

      @Dom promis personne ne sera trucidé durant l’opération 🙂
      Je ne suis prêt a rien du tout, ce sont des décisions communes.
      Et si quelqu’un doit prendre des décisions c’est uniquement Gael et Grog; sans eux on ne serait pas la a palabrer.
      Pour la thématique du forum, autre sujet.
      Pour la compatibilité justement, c’est l’objet de ce projet, standardiser une base minimale ( enfin autant que faire ce peut ) pour rendre compatible entre autre et ne pas être bloqué à chaque mise à jour du cœur.
      En partant d’un fingerstarter fonctionnel à tous les coups
      A terme cette base sera justement intégrée à MRL pour être testable à chaque nouvelle compilation et éviter par exemple des problèmes de dépendance ou de méthodes obsolètes.
      Tu à le droit de critiquer c’est même conseillé pour avancer ! et ton expertise est bienvenue.
      Sauf pour le “on garde tout pour nous” la c’est insultant mais on ne va pas relever, je laisse éventuellement le bot répondre à notre place, il connait pas mal de répliques familières de circonstance, il va avoir beaucoup de travail. on va dire que tu as bugué.
      Je te rappelle que tout est publié sur Github et fait l’objet de multiples discussions avec les développeurs et utilisateurs de mrl . Et que tous les dépôts officiels sont publiques sans autorisation pour faire des commit. Soumis a discutions si un commit fait débat.
      Discussion ici pour les servo : http://myrobotlab.org/content/servo-speed-control . Ou au fil de l’eau dans la shoutbox. Ou peut être dans ce post référence du projet … : http://myrobotlab.org/content/inmoov-script-merge-them-all-wip-status-inmoov3minimalarmpy . tout cela fera bien sure l’objet d’une synthèse quand le stade du workinprogress sera passé et surtout à la prochaine version stable de mrl. En attendant welcome pour les discussions et les idées dans ce post international.


      @Sylvain
      Entièrement d’accord, j’aimerais beaucoup pour moi et surtout les autres un nouveau service dans mrl basé sur ce travail respectable. pour pouvoir utiliser par exemple cette petite carte adafruit amplificatrice de son, avec en bonus la lecture standardisée du signal audio pour faire bouger la mâchoire 🙂
      Qui ouvre un petit post chez mrl ?

    • #6516
      Dominique
      Participant

      Oui c’est vrai que je suis parfois impulsif, je l’admet.

      Autrement pour les infos, pas évident car il faut chaque fois allez voir sur myrobotlab en anglais. Cela aurait été bien d’avoir une synthèse des évolutions ici en français (je parle pas uniquement pour moi car je vais tous les jours suivre ce qui se passe sur mrl).

      Autrement, comme tu a mis que ImoovAI était obsolète, j’ai cru que la nouvelle base était prête, tout simplement.

      Sais tu me dire si les communications entre MyRobotLab et MrlComm sont opérationnel et sans bug ?
      Sais tu me dire quelle version stable on a actuellement pour MyRobotlab et MrlComm ?

      Pour le moment je suis resté à la 1803 et MrlComm version 41.

      N’hésite pas à demander des coup de main. (pour l’AI, vous êtes suffisamment je pense).

    • #6523

      Je vais un peu taper l’incruste sorry, mais Dominique tu parles de version 1803 alors qu’en download c’est Lamiak vers 1758 et de version de MrlComm 41 !? Any explanations ? Je sais il faut toujours tt m’expliquer.
      Amicalement
      Sy.

    • #6525
      Dominique
      Participant

      Le 1803 permet d’utiliser MaryTTS. Il est dans le dernier InMoovAI d’Anthony.

    • #9898
      Antoine TABET
      Participant

      Bonjour à tous,

      je suis assidument le développement de la version IA. Je souhaite tester cette version sur mon InMoov mais les liens vers le .py sont malheureusement morts …

      Quelqu’un pourrait-il mettre à jour un lien pour télécharger ces fichiers ? Je serais heureux de pouvoir tester ça 🙂

      Merci d’avance et à bientôt.

    • #9899
      anthony
      Moderator

      Hello ! Ce script n’est plus en développement , certaines parties ont fusionné avec d’autres.
      La documentation du service Inmoov est en cours de rédaction, en attendant tu trouvera ton bonheur dans la dernière version BETA de MRL, tout est intégré :

      https://github.com/MyRobotLab/inmoov/wiki/HOWTO—SETUP-&-PREREQUISITES

    • #5108
      brian
      Participant

      bonjour a tous.
      je suis un nouveau pour la réalisation de ce projet qui est inmoov
      mes connaissances en programmation et anglais surtout sont limité.
      j’ai installé inmoov_ai sans trop de problème.
      tous s’ouvre et me permet de communiqué avec le robot.
      le soucis est l’arduino je n’arrive pas à mis connecté, je n’ai pas de com proposer pour mis connecté
      et j’ai essayer de modifier le fichier INMOOV-AI_config pour activé arduino
      test réussi mais maintenant la page googlechrome ne s’ouvre plus donc pas de communication et via myrobotlab impossible attaché le servo au pin 3.
      j’ai trouvé dans INMOOV-AI_startup.py une commande
      #start webgui
      webgui = Runtime.create(“WebGui”,”WebGui”)
      webgui.autoStartBrowser(False) j’ai tester True…
      webgui.startService()

      de cette manière une page googlechrome s’ouvre mais ce connect pas…
      sa doit faire 3 jours que je bataille dessus sans résultat.

      Pourriez-vous avoir l’amabilité de me venir en aide car j’ai beau fouiné dans tous les fichiers à part mis perdre de + en + je ne fait pas beaucoup de resultat…

      Pour info j’ai dejà réaliser le fingerStart avec myrobotlab d’origine et tous fonctionnai correctement.
      je ne vous présente pas la réalisation du doigt car j’ai pas encore trouver la configuration parfait pour pouvoir me sortir un produit lisse sur la couche extérieur.

Viewing 51 reply threads
  • You must be logged in to reply to this topic.