0Home Page test forums FABRICATION MODS Comprendre et apprendre

This topic contains 9 replies, has 4 voices, and was last updated by  laurent 2 years, 6 months ago.

  • Author
    Posts
  • #8245

    My’s Moov
    Moderator

    Bonjour, voilà je post ici quelques choses qui pourrait paraître enfantin à beaucoup d’entre vous, mais n’ayant aucune connaissance en arduino, python, électronique etc etc !!! je pense que mes questions et recherches peuvent aider d’autres novices comme moi, j’aimerais avoir une base “MRL” saine et simplifié de mon robot !!! … J’aimerais apprendre à programmer mon robot moi même suivant mes envies.

    ce que j’ai compris je vais le mettre en image ! (enfin ce que je pense avoir compris) ensuite viendra suivant vos questions/réponses un tuto pour programmer une action suivant un mot clef …

    La suite de se post et suivant vos correctifs de ce que j’ai compris : on fera faire des actions au robot : exemple si je lui dis “Haut les mains” j’aimerais que mon robot léve les mains, claque des dents hochement de la tête et léve les yeux aux ciel (tout en disant uns phrase su style “ne tirer pas j’ai une femme et des enfants”) … cette action fera bouger quasi la totalité du robot si je réussi tout sera ensuite simple car tout partira de la même idée de programmation.

    Pour les novices, je pense que sa pourra les éclairer, car je vais utiliser des mots simples et des schémas pour rédiger ce tuto !!!

    Dominique et Tony, m’ont déjà pas mal éclairé !!! Allez à la correction et explication déjà de ma première analyse ….

    exemple

  • #8246

    Christian
    Participant

    Salut

    Tu as très bien compris, tes commentaires réflete très bien ce qui ce passe

    Voici précision sur le code dont tu parle

    dans le AIML, les tags
    <.mrl>
    <.service><./service>
    <.method><./method>
    <.param><./param>
    <./mrl>

    permet de demander a un service d’executer la méthode spécifié avec les paramettres donnée
    Dans ton example, ca dit au service python d’utiliser la méthode exec avec lookrightside() en parametre. Donc le service python lancera la fonction lookrightside() qui se trouve dans les scripts qu’il utilise.

    Tu pourrais aussi utiliser quelque chose comme
    <.mrl>
    <.service>head.rothead<./service>
    <.method>moveTo<./method>
    <.param>160<./param>
    <./mrl>

    et le AIML tournera la tete en position 160 sans passer par le python
    On passe souvent par un script python puisque ca facilite les choses

    le tag <.srai><./srai> renvoie a un autre entré AIML correspondant au texte donnée
    dans ton cas il recherchera le pattern REPONSE_GESTURE_TETE dans le AIML et l’executera.
    Si tu utile seulement REPONSE. il recherchera un pattern pour REPONSE (ce qui peut etre different de REPONSE_GESTURE_TETE)

    Par convention on utilise fréquamment les ‘pattern’ et les ‘srai’ en majuscule pour plus de clarté. pour distinguer plus facilement ce qui est ‘entendu’ et ce qui est ‘dit’ par le bot. Mais c’est simplement une convention et ce n’est pas obligatoire d’utiliser les majuscules.

  • #8253

    My’s Moov
    Moderator

    J’arrive pas a éditer un post proprement 🙁 … donc je vais mettre une image à la place pas très pratique 🙁 il bug trop ce forum ! ou c’est moi 🙁

  • #8254

    My’s Moov
    Moderator

    reponse

  • #8255

    lecagnois
    Participant

    Salut Alain
    j’ai commencé les tutos dans cet esprit .
    En commençant sans utiliser AIML (avec les leçons) .
    Puis commencer a expliquer ce que j’avais compris sur AIML

    Mais je pense que mes tutos ne sont pas clair pour tout le monde !….
    Pas facile d être pédago

  • #8256

    My’s Moov
    Moderator

    Maintenant en voyant cette commande je me dis ok ! elle est faite pour que inmoov fasse un Happy ! voilà ce que j’ai compris !
    happy
    ce qui me reste à comprendre !!! les valeurs des chiffre en speed = vitesse la je voie 1.0 pour la main !! mais jusqu’où cette valeur existe en mini et maximum 6.0 ? 8.0 ? est-ce que 1.0 est une vitesse rapide ? moyenne / lente ? si je rentre 0.7 ou 0.3 est-ce encore plus lent que 1.0 ?

    ici sur la main y’a 6 valeurs (je suppose que cela correspond au 5 doigts + le poignet ? ) mais si c’est ça ou se trouve le poignet au début ou à la fin ? le pouce suit t’il le même ordre que notre propre main droite ou gauche ?

    pour les mouvements je voie d’autres valeurs par exemple ici :

    i01.moveArm(“left”,30,72,77,10) = donc là je suis sur le mouvement du Arm = Bras gauche, mais 30,72,77,10 ce sont des valeurs de positionnement servo non ? comment on trouve les juste valeurs ? y’a t’il un tableau des valeurs ?

    ensuite je voie que beaucoup de commande commence par i01 sauf moveHand(“left”,180,130,4,0,0,180) pourquoi ?

    Merci de vos précieux avis 🙂

    ps: si il existe pas de tableau de référence des valeurs sa serait peut-être une idée d’en faire un ? non ?

  • #8257

    My’s Moov
    Moderator

    Ha ! excuse moi “Lecagnois” !!! je pensais que tes tutos était plus sur la programmation !!! là moi c’est pas vraiment des tutos !! je mets ici ce que moi j’ai compris, et j’essai de décrypter avec mes mots et ma façon d’analyser les choses !!

    ps: va falloir que je me plonge dans tes tutos alors !!! 🙂

  • #8258

    Christian
    Participant

    L’exemple mentionné n’est qu’un example pour illustrer qu’il n’est pas obligatoire d’utiliser un script python pour activer des fonctionnalités a partir de l’AIML. Bien sur, avec un script python il est plus facile de regler plusieurs parametres en meme temps. Mais dans le cas ou tu veux simplement activé une méthode d’un service, il est possible de la faire sans passer par un script python.

    Pour le tag <.random> la bonne reponse est qu’il utilisera UNE des reponses possibles. Par example pour ton pattern REPONSE_GESTURE_TETE, il repondra “Voila” ou “Bien sur.”, mais pas les deux

    Pour ton <.pattern>TETE<./pattern>, cette category ne sera utilise que si tu lui dit le mot TETE, sans aucun autre mot avant ou apres. donc si tu dis “MA TETE”, cette category ne sera pas utilisé. C’est pour cette raison qu’on utilise souvent les wilds cards (*, #, <set>, etc) pour que le bot puisse comprendre plus facilement des phrases qui peuvent varier.

  • #8259

    Christian
    Participant

    Pour ton autre post, tu as tres bien compris ce qui ce passe.

    Les valeurs de setSpeed vont de 0.0 a 1.0, ou 1.0 = la vitesse maximal de ton servo
    Les valeurs ne sont cependant pas lineaire, donc 0.5 n’est pas 50% de la vitesse maximale. C’est simplement plus rapide que 0.4 et plus lent que 0.6

    Les methodes comme MoveHand() font appel a une methode python. Donc dans tes script python, tu trouvera un def MoveHand():

    si c’est precedé de quelque chose comme i01. Ca fait appel a la méthode d’une classe ou d’un service de MRL. La méthode peut etre trouvé dans le code source de MRL

  • #8263

    laurent
    Participant

    Merci my’s moov, je m’instruit Egalement, l’air de rien tes question m’apporte des réponses aussi

You must be logged in to reply to this topic.