Forum Replies Created

Viewing 14 reply threads
  • Author
    Posts
    • #8340
      Christian
      Participant

      salut Laurent

      Tu dois avoir le Kinect SDK installé sur ton ordi pour pouvoir utiliser la kinect. fait une recherche sur le site de microsoft

      La version que tu aura besoin depend du model de ta kinect. Pour moi, la version 1.7 fonctionne bien, 1.8 ne fonctionne pas.

    • #8326
      Christian
      Participant

      Salut Bruno

      J’ai une imprimante open source de type prusa i3 que j’ai modifier (ajout d’un ‘enclosure’ pour imprimer l’ABS et changer l’extrudeur pour pouvoir imprimer du flexible). Au total ca m’a couter environs 500-600$CA (400 euro?) C’est pas très compliquer a monté, mais tu dois avoir une certaine débrouillardise en bidouillage 🙂 L’avantage est le cout et que ca te permet de comprendre comment ca marche. Le désaventage est que tu as très peut de support technique pour réaliser l’assemblage.

    • #8325
      Christian
      Participant

      Afin que le robot puissent se tenir en equilibre, l’information devra etre traité de facon centraliser. La position des moteurs de la jambe droite doit pouvoir savoir ce que fait toute les parties du robot et pouvoir s’adapter en fonction de la position de toutes les autres partie du robot et de préférence pouvoir ‘prévoir’ ce que les autres partie du robot vont faire. Il sera difficile de traiter ces informations de facon décentralisé.

      Je suis certain que le traitement par un ordinateur normal (je parle pas d’un rasbery pi ou d’un latte panda) pourra traité et transmettre cet information dans des temps similaire au cerveau humain. Dans le meilleur des cas, les réflexes humain sont de l’ordre de 200-400ms, pour des evenements prévisible dont on est entrainé.

      Je n’ai pas trop de soucis a ce niveau.

      Mon soucis est plus que un InMoov est beaucoup plus lent pour déplacer ses membres qu’un humain et a beaucoup moins de flexibilité.

      Je crois qu’avec ce qui est déja en place, qu’un inMoov pourrait ce tenir debout et meme lever un bras sans perdre l’équilibre, Mais si on le pousse, il aura beaucoup de difficulté a récupere afin de ne pas tomber

    • #8318
      Christian
      Participant

      Dans le service IntegratedMovement de MRL, il y a un algorythme qui permet au robot de modifier par lui meme la position de ses membres de facon a conserver son centre d’equilibre en son centre. C’est bien sur pas encore teste avec des jambes et c’est probablement pas suffisant pour un equilibre parfais, mais c’est un “pas” dans la bonne direction. Tout dependra de la vitesse des moteurs et de son temps de reaction.

    • #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

    • #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.

    • #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.

    • #8022
      Christian
      Participant

      Ces servos semble avoir besoin d’une librarie specifique pour fonctionner, donc pas directement compatible avec l’utilisation des servos normal

      Pour tester, il faudra donc dans un premier temps incorporer la librairie dans un mrlcomm modifié et communiquer avec les custom messages. Si ca en vaut la peine, il est possible de créer un service dédier a ces servos

    • #7957
      Christian
      Participant

      Salut Gael

      desolé pour la réponse tardive

      ton no worky montre que tout ce passe bien avec ton script jusqu’a ce que tu tente de bouger un servo, le signal est envoyé, mais l’arduino cesse de répondre.

      Donc ton script est correct, mais je suspecte que ton hardware est mal connecté puisque l’arduino cesse de fonctionner. L’erreur la plus commune est d’alimenté les servos a partir de la carte arduino. L’Arduino n’est pas capable d’alimenter correctement les servo (peut-etre un petit, mais sans plus).

      Tu dois utiliser une batterie (ou une autre source suffisante d’électricité). Un servo comme un HS805 peut prendre plus de 2A (l’arduino peut fournir au maximum 0.2A).

      La bonne facon de connecter tes servos a l’arduino est la suivante
      Le fil S (jaune ou orange) sur une pin de l’arduino
      Le fil + (rouge) sur la polarité + de la source de courrant
      le fil – (marron ou noir) sur la polarité – de la source de courrant
      tu dois aussi connecté une fiche ground de l’arduino a la polarité négative de ta source de courrant pour assurer le meme référentiel.

      • This reply was modified 5 years, 8 months ago by Christian.
    • #7918
      Christian
      Participant

      il est possible que ton fichier myrobotlab.log soit trop volumineux.

      Ferme MRL, efface le ficher myrobotlab.log, et relance. Avant de renvoyer un no worky, oublie pas de répliquer ton probleme (sinon il ne sera pas dans le log file)

    • #7914
      Christian
      Participant

      envoie un no-worky (help, about, help it’s no worky). Ca me permettra de voir ce que tu essaie de faire

    • #7910
      Christian
      Participant

      As-tu bien mis a jour ton arduino avec le MRLComm qui vien avec la version de MRL que tu utilises?
      sinon, peut-etreles setting pour tes servos ne sont pas correct (map, min/max?)

    • #7908
      Christian
      Participant

      Salut Gael

      La procédure est la meme sous MAC ou pour n’importe quel systemes d’exploitation, seul les chemins d’accès au fichier et le nom des ports sont succeptible de changer

      Tu ne donne pas beaucoup d’info sur ce qui ne fonctionne pas pour toi. Qu’est-ce que tu essais, qu’est-ce qui ne semble pas marcher etc. Ca aiderai a mieux te guider

      Les meilleurs sources d’information pour démarer MRL peuvent etre trouvé ici
      http://myrobotlab.org/quick_start
      et ici
      http://myrobotlab.org/tutorials

      Bonne chance et hésite pas a poser plus de question

    • #7875
      Christian
      Participant

      Salut Steve

      Il existe tout un tas de tutoriel pour comprendre comment Git fonctionne, j’entrerais pas dans les détails parce que je suis pas un spécialiste moi meme et que c’est tuto vont t’expliquer Git bien mieu que je peux le faire.

      En gros, modifier une branche sur git, ta version locale doit être au meme point + tes modifications.

      Pour y arriver, la premiere étape est d’avoir le code de MRL en local dans eclipse. La procedure pour l’installer de facon initial est expliquer ici
      http://myrobotlab.org/quick_start

      Tu peux alors effectuer les modifications que tu veux au code et vérifier que ca cause pas de problemes. et faire un commit de tes changements.

      Lorsque tu est pret a soumettre ton code, tu dois vérifier que le code sur GitHub n’a pas été modifier par quelqu’un d’autre. La commande fetch va vérifier si il y a des modification au code depuis la derniere fois que tu as vérifier.

      Si il y a des changements, tu dois incorporer ces changements a ton code local en faisant un right-click sur la branche en remote et selectionnant merge. La plupart du temps le merge s’effectue sans problemes, mais il arrive que git y voit des conflicts que tu doit gerer (la plupart du temps c’est causé par une ligne de code modifié localement et aussi modifié sur github).

      une fois que ton code local est au meme point tu peux faire un push de ta branche locale vers la branche de github.

      Note, si tu es pas membre du dev team de MRL, tu ne pourra pas faire le push directement. La meilleur facon est de faire le push vers ton compte de github, et de la faire un push request. Un membre de la devteam pourra revoir ton code et l’accepter

    • #7702
      Christian
      Participant

      Effectivementle MAX9744 n’a en commun que la méthode d’écriture avec le PCF8574.

      Pour faire un service pour le MAX9744 il sera facile de le faire en se basant sur le code du service PCF8575 et implémenté les méthodes spécifique du MAX9744. Puis de faire un GUI avec un slider pour regler le volume etc.

Viewing 14 reply threads