0Home Page test forums PROGRAMMATION MYROBOTLAB Dynamic update

This topic contains 58 replies, has 8 voices, and was last updated by Profile photo of anthony anthony 3 weeks ago.

Viewing 15 posts - 1 through 15 (of 59 total)
  • Author
    Posts
  • #8978
    Profile photo of cholet
    cholet
    Participant

    Bonjour,

    Je commence doucement à utiliser les scripts python et aiml et j’aurais quelque question :

    – Est-il possible de mettre à jour un fichier aiml ou py sans avoir à relancer myrobotlab à chaque fois.
    – Peut ton ouvrir ou contrôler des applications (windows, linux….).

    – Pour tout ce qui est connexion à un serveur (local ou distant) comment sa se passe quelque sont les limite . ex: j’utilise Octoprint comme serveur d’imprimante 3D puis-je demande au bot de se connecter a une imprimante en particulier l’allumer(via arduino relais) et manipuler vocalement l’imprimante (x a droite, z en haut……, allume extrudeur)

    – Concernant l’Aiml, durant une conversation, si un mot et inconnue (ex: chat) peut on enregistrer et classifié se mot dans une catégorie ou contexte.

    ex de conservation:
    – moi: j’aime les chats
    – bot: (ne connais pas le mot chat)
    – moi: un chat est un animal
    – bot: (créer une catégorie nommée animal et y stock le mot chat) et (ne connais pas le mot animal)
    – moi: un animal est un être vivant
    – bot: ne connait pas animal donc stocke le mot expliqué
    – etc…….

    ce qui créer un sorte de hiérarchie (parent/enfant) et pour chaque mot on peut passer des paramètres

    – moi: le chat a 4 pattes
    – bot: (connais le mot chat, donc il va lié 4 pattes à chat
    etc….

    Voila déjà pour quelque question :)

    #9004
    Profile photo of Gael Langevin
    Gael Langevin
    Keymaster

    Hello,
    -Tu peux modifier tes scripts python dans le tab Python de MyRobotLab.
    Copie colle dans le tab python ta fonction par ex:
    def stopTracking():
    i01.headTracking.stopTracking()
    i01.eyesTracking.stopTracking()

    puis cliques sur “execute”.

    -Pour l’instant tu ne peux modifier ton AIMl dans MRL sans être obligé de relancer MyRobotLab.

    Pour lancer une application sous Python, tu peux suivre cet exemple:

    Pour lancer une application sous ProgramAB, c’est moins simple car tu ne peux pas tout te permettre:

    En ce qui concerne ta demande par rapport à l’apprentissage:
    La version InMoov Anglaise peut faire ce que tu souhaites, mais la version Française n’est pas aussi évoluée. A ce jour, sauf erreur de ma part, la VF ne peut pas faire ce que tu souhaites car les AIML ne comportent pas le mode apprentissage.

    #9005
    Profile photo of anthony
    anthony
    Moderator

    Hello ! je te répond rapidement je ferais un 2ème message avec des exemples pour l’apprentissage basé sur la balise learn ainsi que les predicates

    Vu que les aiml et les .py sont chargés en mémoire au démarrage je ne pense pas. tu peux accélérer les chargements en désactivant les sons au démarrage ( ismute=1)

    pour contrôler basiquement un process local ce que j’utilise, exemple pour lancer vlc avec des paramètres optionnels :
    p = subprocess.Popen([“C:/Program Files (x86)/VideoLAN/VLC/vlc.exe”,”parametres1″,”parametres2…”])

    Pour octoprint il existe une api , voici un exemple en python, il y en a d’autre

    https://github.com/dragondgold/octo-control

    Basiquement tu peux utiliser des choses comme cela aussi pour communiquer avec un serveur web
    contenuWWW=urllib2.urlopen(“http://mapageweb”).read()

    #9006
    Profile photo of anthony
    anthony
    Moderator

    lol on a répondu en même temps pile poil :) @++

    #9007
    Profile photo of Gael Langevin
    Gael Langevin
    Keymaster

    Ahaha, effectivement! Hello Anthony.
    J’ai d’ailleurs utilisé ton exemple de lancement de VLC.

    Tu dis qu’il y a la fonction apprentissage (learn.aiml) en VF?
    Comment lui dis-tu de que sa réponse est incorrecte afin de lui faire mémoriser la bonne?

    En Anglais il suffit de lui dire “that is not correct” et ensuite il demande quelle réponse il doit apprendre à la place.

    #9009
    Profile photo of anthony
    anthony
    Moderator

    J’avais commencé un travail dessus qui n’est pas dans le dépôt actuel.
    Il y avait 3 niveaux
    – Mémoire à court terme > ce peut être des variables temporaires type heure / capteurs …
    – Mémoire personnelle > quel est le nom de mon chat
    – Mémoire partagée avec les clones > c’est quoi un spéculos . sur ce point j’utilisais un serveur perso public pour stocker en bdd, je peux le ressusciter ou attendons peut être le future réseau “mrl p2p” ou utilisons le serveur inmoov @Sebastien ?

    A terme cela risque d’être sympa avec dl4j le moteur de machine learning ! on pourra théoriquement apprendre au robot ce qu’il voit et qu’il ne comprend pas. Il pourra surtout partager sa couche d’apprentissage avec les autre en p2p, et c’est parti :) autre sujet, enfin les 2 seront liés (chatbot+dl4j).

    petit schéma qu’a posté Greg pour comprendre le moteur :

    @cholet ton idée de hiérarchie est ce sur quoi il faut se diriger je pense. L’aiml offrant de telles possibilité grâce aux catégories. reste a cuisiner cela. on va déjà remettre les fonctions d’apprentissage de base ça va être rapide, en se calquant sur le chatbot anglais pour garder la même logique.

    I’ll be back, pour quelques exemples simples

    #9011
    Profile photo of cholet
    cholet
    Participant

    Salut, merci de vos réponse. J’ai de quoi m’occuper la.

    @Gael, sur le coup oui je n’ai pas pensé à passer par l’interface myrobotlab je redémarré à chaque fois et étant donné que dans les scripts python on fait vite des erreurs sa devenait un peu long.

    Par contre concernant l’Aiml étant donner la structure assez simple des fichiers il serait intéressant d’avoir une interface pour taper nos Patterns,Template….etc et avoir une droplist de nos variable et fonction python existante afin de générer nos fichier Aiml. Au boulot je bosse en c# et on à certaine méthode qui génère du XML à partir de data, donc je pense que c’est faisable et il me semble avoir vu traîner des fichiers angular (ce doit être pour la webGui) ce serait pas mal d’avoir une interface web permettant la gestion de nos robots(à moins que ce soit déjà prévu ?). Angular est assez facile à prendre en main, je bosse avec la version 2 au boulot, je vais voir si je peut aller bidouiller la webGui.

    @Anthony, Je ne connaissait pas dl4j sa mal l’air vraiment intéressant de plus apparemment il y a une api pour python(Keras). je pense que dl4j doit rassembler plusieurs algo d’apprentissage et on peut importer nos propre algo (TensorFlow……). Concernant ton approche c’est un bon début pour commencé à vraiment donné de l’autonomie au robots, le stockage en bdd et indispensable, je serait vraiment intéressait de voir ce que tu a déjà fait (comment tu a structurer tes tables, les liaisons….) si tu à un schéma de ta bdd se serait cool. Je vais me documenté sur tout ça et si tu à quelque exemple d’utilisation avec dl4j je suis preneur.

    • This reply was modified 2 months, 3 weeks ago by Profile photo of cholet cholet.
    • This reply was modified 2 months, 3 weeks ago by Profile photo of cholet cholet.
    #9055
    Profile photo of anthony
    anthony
    Moderator

    Hello ! il y a eu beaucoup de modif concernant l’apprentissage je ferais une synthèse claire prochainement.
    Il reste encore un bug ( bien planqué ) à corriger concernant la prise en charge de l’UTF8 dans le moteur d’Alice.

    Pour la GUI c’est dans les tuyaux ( elle est même fonctionnelle ) . Manque juste le feu vert, ou rouge. On passera a l’orange sinon :)
    Il n’y a pas de module de prévu pour gérer graphiquement les AIML donc si tu veux faire quelque chose cela sera bienvenue et très utile pour tous !
    dl4j est en cours d’intégration https://github.com/MyRobotLab/myrobotlab/blob/develop/src/org/myrobotlab/service/Deeplearning4j.java
    Kevin pourra te renseigner sur l’avancement et l’utilisation

    @++

    #9065
    Profile photo of anthony
    anthony
    Moderator

    En attendant la prochaine maj concernant l’apprentissage qui ne devrait pas tarder ( bug utf8 ok / bug wikidata nok + polissage )
    Voila déjà un schéma explicatif de l’apprentissage sémantique. J’ai pris comme base le chatbot en français pour ne pas casser le chatbot anglais qui fonctionne plutôt bien. Les 2 devront à terme suivrent le même schéma a quelques différences prêt . ( Le chatbot EN n’utilise pas wikidata mais des web services avec retours non catégorisés )

    Il reste à traiter l’enregistrement local de la petite base de donnée aiml, ainsi que la partage des connaissances. Mais comme tout ça est sans fin on a le temps :)

    Les graph sont open pour qui veut modifier la chose

    https://github.com/MyRobotLab/inmoov/wiki/BRAIN-DOCUMENTATION

    https://github.com/MyRobotLab/inmoov/tree/develop/tools/shared_diagrams_documentation

    #9066
    Profile photo of Gael Langevin
    Gael Langevin
    Keymaster

    Merci Anthony pour le partage des graphs, cela va en aider plus d’un à comprendre le process.

    #9068
    Profile photo of cholet
    cholet
    Participant

    Merci Anthony.

    #9070
    Profile photo of Dominique
    Dominique
    Participant

    Super Anthony. Ca c’est une bonne nouvelle, les choses sérieuses vont pouvoir commencer…

    #9073
    Profile photo of laurent
    laurent
    Participant

    Bonjour, cela semble super cool, mais eu quelqu’un pourrait expliquer de façon plus basique de quoi vous parlez, et ce que va apporter ces choses ? pitié for for the no inicier

    #9075
    Profile photo of anthony
    anthony
    Moderator

    coucou laurent, ce sont des améliorations liées au chatbot. Une des fonctionnalités du chatbot est l’analyse sémantique ( signification des mots )
    Ceci à pour objectif d’accroire la possibilité de réponses données par le robot. Et d’autre part améliorer la logique de la conversation. Dans ce cas précis ce sont des améliorations liées aux capacités du chatbot d’apprendre des choses qu’il ne connait pas, après être allé cherché des infos sur le net.
    Il y a plusieurs façons de parler au robot. Coder en dure des réponses , ou tenter d’analyser le sens de la question sans prendre la phrase complète au sens littéral.

    Une ébauche de doc : http://inmoov.fr/forums/topic/tuto-aiml/

    #9078
    Profile photo of laurent
    laurent
    Participant

    excellent ;); merci Anthony, tu nous prévient des que la mise a jour est dispo ?

Viewing 15 posts - 1 through 15 (of 59 total)

You must be logged in to reply to this topic.