0Home Page test forums PROGRAMMATION MYROBOTLAB Servo HK15298B et programmation MRL

This topic contains 26 replies, has 4 voices, and was last updated by  Olivier 2 years, 3 months ago.

  • Author
    Posts
  • #7073

    Olivier
    Participant

    Bonjour,
    Il est recommandé d’utiliser des servos HK15298B pour les doigts. Ceux-ci ont normalement une amplitude de 90°. Dans le programme InMoov3.minimalFingerStarter.py l’amplitude maximum est définie à 180. Y-a-til une raison à cela ou faut-il simplement modifier le programme ?

    Merci d’avance pour votre réponse.

  • #7090

    Gael Langevin
    Keymaster

    Bonjour Olivier,
    Le programme InMoov3.minimalFingerStarter.py est écrit pour fonctionner avec différent type de servo dont certain avec une amplitude de 0 à 180.
    Si vous utilisez un HK15298B, celui ci aura une rotation de 0 à 90 même si le programme lui dit d’aller à 180.
    Vous pouvez modifier le script pour tester sans souci.
    Les scripts pour les bras sont également écrit pour du 0-180, et pourtant j’utilise des HK15298B.
    Petite histoire: Grâce au mapping de MyRobotLab on peut désormais prédéfinir l’amplitude du servo, mais à l’époque ou j’ai écris le script InMoov3.minimalFingerStarter.py, il n’y avait pas de mapping.

  • #7124

    CIVETTA
    Participant

    Bonjour, pourriez vous me dire comment modifier le script d’amplitude des servo.
    Directement dans MRL ou doit-on passer par Arduino ?

  • #7130

    anthony
    Moderator

    Bonjour Civetta, il va falloir que tu modifie la fonction map dans ton script directement.
    exemple ( rightArm.biceps.map(0,180,TONMINIMUM,TONMAXIMUM) )
    je posterais ce soir la première partie d’une synthèse à propos des servos, grâce à de nombreuses discutions enrichissantes, il est temps de poser quelques bases vulgarisées , autant que faire ce peut.

  • #7150

    CIVETTA
    Participant

    Merci pour ta réponse, j’ai fait les modifs comme décrit et j’ai enregistré la nouvelle version mais….impossible de la récupérer dans python !
    J’ai du faire une mauvaise manip, je tacherais de trouver ça demain.
    Bonne idée la synthese…pour les nuls, ça va en aider plus d’un, dont moi .

  • #7203

    Olivier
    Participant

    Bonjour,
    Avec MRL ( programme InMoov3.minimalFingerStarter.py) mes servos HK15298B font des mouvements rapides d’avant en arrière pendant la rotation au lieu de tourner franchement (alors que mes servos MG995 ne posent pas de problème). Pourtant Mes servos HK15298B tournent très bien avec le programme “Arduino-Schetch-servo-zerorestmax”. Avez-vous idée du problème ?

    Merci.

  • #7214

    Gael Langevin
    Keymaster

    Avez-vous bien mis l’alimentation de masse sur l’arduino et sur le servo?
    http://inmoov.fr/wp-content/uploads/2013/12/ArduinoPowerSupply1-1024×771.png

    • #7216

      Olivier
      Participant

      Bonsoir,
      Oui. J’ai aussi fait le test avec une arduino uno et une mega 2560 et j’ai le même souci de mouvements saccadés avec les HK15298B et MRL 1.0.1723. Les servos fonctionnent pourtant très bien avec ces cartes en dehors de MRL. Je vais essayé une autre version (plus ancienne). Je me demande si je n’ai pas un souci avec le MRLcomm.ino car quand je coupe MRL les moteurs continuent à bouger quelques secondes, s’arrêtent puis redémarrent. Je continue de chercher… Merci

  • #7218

    Gael Langevin
    Keymaster

    Essayez avec la version 1412 afin de voir si vous avez le meme comportement, sinon il s’agirait d’un pb hardware et non software.

  • #7221

    Olivier
    Participant

    Je viens d’essayer avec la version 1412, les moteurs fonctionnent correctement. (j’ai seulement un petit message d’erreur de MRL qui dit qu’il attend la version MRLcomm 34 et non 35, mais ça fonctionne). J’ai essayé sur un autre PC au cas où j’aurais un problème hardware, mais les résultats sont les mêmes. la version 1412 est ok mais pas la 1723Sur les 2 PC j’utilise Windows. 10 cela a peut être une importance. Merci beaucoup pour votre aide.

  • #7226

    Gael Langevin
    Keymaster

    quelle est la version de java des pc?

    • #7227

      Olivier
      Participant

      La version de java est la dernière Version 8 update 121.

  • #7228

    Olivier
    Participant

    Ce problème est reproductible chez moi sur deux ordinateurs différents (portable Asus et fixe HP), mais personne d’autre n’a fait part de ce problème alors je suppose que le problème est chez moi. Je fais une petite synthèse, peut-être cela permettra-t-il d’identifier un problème.
    Donc J’utilise :
    – Windows 10
    – Google Chrome 56.0.2924.87
    – Port COM 115200 bauds
    – Java 8 – 121
    – Arduino 1.8.1
    – MRL depuis le lien fourni dans “How to start myrobotlab” versions 1.0.1723 et 1.0.1412
    – InMoov3.minimalFingerStarter.py
    – Carte Arduino Mega 2560 et Uno avec la version MRLcomm fournie avec les versions MRL
    – Servos HK15298B (neufs, reçus le 15/02/2017) connectés selon le schéma disponible dans “Hardwaremap + Bom”

    Mes servos HK15298B fonctionnent avec MRL 1.0.1412.
    Mes servos HK15298B ne fonctionnent pas correctement avec MRL 1.0.1723, des petits mouvements saccadés, rotation incomplète.

  • #7238

    Gael Langevin
    Keymaster

    Mmmh, effectivement c’est plutôt étrange.
    Cette version à été utilisé par énormément de monde sans rencontrer ce problème.
    J’imagine que vous aviez téléchargé la bonne version 32 ou 64 bits afin d’être compatible avec votre PC.
    Vous pourriez tenter la dernière version de MRL. Par contre il faudra faire l’installation complète.
    Créez un nouveau dossier pour cela dans votre dossier C:/myrobotlab/myrobotlab.1.0.1941.

    http://mrl-bucket-01.s3.amazonaws.com/current/develop/myrobotlab.jar

  • #7239

    Olivier
    Participant

    (je suis en 64 bits) Malheureusement c’est la même chose. Le servo tourne, mais de manière saccadée au lieu de tourner franchement comme avec la version 1.0.1412.

  • #7247

    Olivier
    Participant

    Bonjour,
    J’ai enfin solutionné mon problème en ajoutant la commande :

    i01.startRightHand(rightPort)
    i01.rightHand.index.setVelocity(0) (idem pour les autres doigts)

    Merci

  • #7254

    Gael Langevin
    Keymaster

    Ah c’est etrange car la version 1723 n’avait pas encore “setVelocity”.
    En tout cas c’est une bonne information et une bonne nouvelle pour vous.

  • #7256

    Olivier
    Participant

    Bonsoir,

    J’ai trouvé cette fonction dans le fichier MrlServo.cpp dans MRLComm. Par contre les servos bourdonnent pas mal et la position n’est pas stable (mouvements d’aller-retour) quand elle est différente de 0° ou 90°. J’ai lu dans le forum qu’il serait possible de résoudre ce problème à l’aide de condensateurs. Avez-vous l’expérience de cela ?

    Merci

  • #7258

    Gael Langevin
    Keymaster

    Les dernieres version de MRL implementent setVelocity et les mouvement sont effectues en micro seconde, ce qui rend les mouvements plus fluides.
    D’autre part il y a egalement desormais une fonction appelle autodetach pour les servos. Ceux ci s’autodetach lorsqu’ils ont atteinds leurs position, supprimmant le bourdonement et le risque de surchauffe.
    Il faut telecharger la derniere version avec le lien que je vous ai donne.

    PS:clavier qwerty sans accent…

  • #7262

    Olivier
    Participant

    Bonjour,
    Avec la nouvelle version, sans setVelocity les servos fonctionnent mal (comme avant) avec setVelocity les servos ne fonctionnent plus du tout. Vraiment je galère.

    Note: L’upload de MRLComm de la dernière version donne une erreur au moment de la compilation. Dans msg.cpp la fonction est :

    void Msg::publishServoEvent( byte deviceId, byte eventType, int currentPos, int targetPos)

    et dans le fichier msg.h:
    void publishServoEvent( byte deviceId, byte eventType, byte currentPos, byte targetPos);

    Il y a un petit problème de typage des currentPos et targetPos

  • #7264

    anthony
    Moderator

    Coucou Olivier et all ! Il serait interressant d ouvrir un demande d aide chez mrl avec un petit recap et l envoi d un “no worky” . avec si possible le script que tu utilise. De retour chez moi si bison futé le permet j essairais de reproduire ce probleme, et on completera le post. Peut etre que l utilisation des microsecondes est un peu plus gourmand en bande passante . a creuser

  • #7266

    Olivier
    Participant

    Bonjour Anthony,
    Je le faire ce week-end.

  • #7278

    anthony
    Moderator

    J’ai fais plusieurs essais , j’avais des petits soucis peut être similaires au tiens, que je ne retrouvent plus dans la toute dernière version.
    Je vais retester cette semaine en profondeur @++

  • #7281

    Olivier
    Participant

    Bonjour Anthony,
    J’ai placé un commentaire dans le forum sur myrobotlab.org. En lisant d’autres commentaires, je vois que d’autres ont le même problème de compilation et disent que la version 1.8.x d’arduino ne convient pas, qu’il faut utiliser une versuin 1.6.x. Pour corriger ce problème j’avais moi-même corrigé le type des variables de msg.cpp. Cependant mon souci avec setVelocity est peut-être lié. Je vais essayer ce soir de recompiler MRLComm avec une version 1.6.x.
    Merci

  • #7285

    Olivier
    Participant

    Bonjour,
    J’ai donc soumis mon problème à myrobotlab.org qui n’a pas tardé à me répondre. Voici la réponse :

    ” Hi
    There was a problem with MRLComm in version 1943. It has been corrected in version 1944. If you want to use the servo at full speed use setVelocity(-1)

    If you want it to move slow, use setVelocity(<speed in degrees/s>)
    For example setVelocity(10)”

  • #7286

    anthony
    Moderator

    Oui l’erreur de compilation a été corrigé dans la dernière version. Si tes derniers essais ne sont pas concluants, n’hésite pas à compléter le post avec le script que tu utilise ainsi que l’envoi d’un noworky apres avoir reproduis le problème

  • #7501

    Olivier
    Participant

    Bonjour A tous,
    Depuis ce soir j’utilise la nervoboard, et miracle : plus de problème avec les servos. (breadboard pas chère + cables de connecion pas chère = probèmes assurés).

    Merci pour votre aide.

You must be logged in to reply to this topic.