Démarrer avec Poppy4dofmini

Mon objectif est de trouver un robot le moins cher possible et le poppy-4dof-arm-mini me semble mieux correspondre à mon attente que les projets actuellement en cours.
Je n’avais pas bien compris ce que “dof” signifiait mais j’ai regardé sur Google et j’ai trouvé !

La question que je me pose, c’est quel est le nombre de moteurs que cela implique, puisque c’est semble-t-il ce qui est le plus cher dans ces robots.

D’autre part, dans une visée pédagogique, qu’est -ce qui est le plus important ? Est-ce le nombre de degrés de liberté ou d’autres éléments comme programmer en plus des capteurs, etc ?

Je réponds rapidement sur la partie poppy-4-dof-arm-mini.


Pour la partie pédagogique, je poke @droy, @Stephanie, @juju , …

Merci.
Je regarde sur Poppy Education: brainstorming sur les objectifs pédagogiques, j’ai bien installé poppy-4dof-arm-mini avec pip mais bien que j’ai trouvé le code à utiliser ici, j’ai une erreur qui s’affiche quand j’appelle le simulateur vrep:
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
in ()
1
2
----> 3 mini_dof = Poppy4dofArmMini(simulator=‘vrep’)
4

/usr/local/lib/python2.7/dist-packages/poppy/creatures/abstractcreature.pyc in __new__(cls, base_path, config, simulator, scene, host, port, id, use_snap, snap_host, snap_port, snap_quiet, use_http, http_host, http_port, http_quiet, use_remote, remote_host, remote_port, sync)
     64         creature = camelcase_to_underscore(cls.__name__)
     65         base_path = (os.path.dirname(__import__(creature).__file__)
---> 66                      if base_path is None else base_path)
     67 
     68         if config is None:

ImportError: No module named poppy4dof_arm_mini

Bizarrement, j’ai aussi des soucis avec Poppy Ergo Jr lors de l’appel du simulateur Vrep.
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
in ()
----> 1 jr = PoppyErgoJr(simulator=‘vrep’)

/usr/local/lib/python2.7/dist-packages/poppy/creatures/abstractcreature.pyc in __new__(cls, base_path, config, simulator, scene, host, port, id, use_snap, snap_host, snap_port, snap_quiet, use_http, http_host, http_port, http_quiet, use_remote, remote_host, remote_port, sync)
     84                 if ((os.path.basename(scene) != scene) or
     85                         (not os.path.exists(os.path.join(scene_path, scene)))):
---> 86                     raise ValueError('Could not find the scene "{}"!'.format(scene))
     87 
     88                 scene = os.path.join(scene_path, scene)

ValueError: Could not find the scene "poppy_ergo_jr.ttt"!

Par contre, Poppy se lance bien dans Vrep.

Si ces problèmes doivent être vus dans un autre topic, n’hésitez pas à me le dire.

Oui, je viens de déplacer les posts dans un nouveau topic, je vous laisse modifer l’introduction de vos posts précédents si besoin.

Concernant vos questions, je ne sais pas y répondre en détails.

Il semble que dans le premier cas le module n’existe pas donc un problème soit lors de votre installation, soit du package qui est sur pip, soit du tuto p-t pas à jour. Voir avec @juju.

Dans le second c’est le fichier de la scène V-Rep qui n’est pas présent et je ne sais du tout où il devrait se trouver, voir avec @Pierre

Bonjour,

Pour Ergo Jr, je ne crois pas qu’il y ait de scene v-rep de constituée, donc c’est normal que python renvoit une erreur.

Pour mini_dof, le nom du module n’est pas le bon ce devrait être poppy_4dof_arm_mini et pas poppy4dof_arm_mini. Le problème vient du package poppy-creature. Pourriez vous me donner la version de poppy-creature qui est installée sur votre machine ?

Normalement, le module doit fonctionner avec le dernier poppy-creature donc, pourriez vous éxécuter dans un shell windows :
pip install -U poppy-creature
et retester ensuite.

Le nom du module est Poppy4dofArmMini
La partie du script from poppy.creatures import Poppy4dofArmMini qui fonctionne bien le confirme.

En regardant dans le dossier /usr/local/lib/python2.7/dist-packages (je suis sous Ubuntu 14.04), je trouvais le dossier poppy_creature-1.6.1.dist-info.

Après la commande que tu m’as donnée (et après avoir changé les droits car je ne sais pas pourquoi, je suis obligée de me mettre en root pour lancer pip), il s’agit maintenant de la version 1.7.1.

Quand je lance la simulation vrep, le robot simulé apparaît bien cette fois, mais le code suivant apparaît:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in ()
----> 1 mini_dof = Poppy4dofArmMini(simulator=‘vrep’)

/usr/local/lib/python2.7/dist-packages/poppy/creatures/abstractcreature.pyc in __new__(cls, base_path, config, simulator, scene, host, port, id, use_snap, snap_host, snap_port, snap_quiet, use_http, http_host, http_port, http_quiet, use_remote, remote_host, remote_port, sync)
     84                 # TODO: use the id so we can have multiple poppy creatures
     85                 # inside a single vrep scene
---> 86                 poppy_creature = from_vrep(config, host, port, scene)
     87 
     88             elif simulator == 'threejs':

/usr/local/lib/python2.7/dist-packages/pypot/vrep/__init__.pyc in from_vrep(config, vrep_host, vrep_port, scene, tracked_objects, tracked_collisions)
     87 
     88     vc = VrepController(vrep_io, scene, motors)
---> 89     vc._init_vrep_streaming()
     90 
     91     sensor_controllers = []

/usr/local/lib/python2.7/dist-packages/pypot/vrep/controller.pyc in _init_vrep_streaming(self)
     97             self.io.call_remote_api('simxSetJointForce',
     98                                     self.io.get_object_handle(m.name),
---> 99                                     torque_max[m.model],
    100                                     sending=True,
    101                                     _force=True)

KeyError: u'XL-320'

Ok, cette fois cela vient de Pypot. La version sur Pip n’est pas tout à fait à jour (@Pierre : pourrais-tu updater pypot sur Pypi car il n’y a pas les dernières modifications -> le max_torque pour les xl-320)

Deux solutions :

Réinstaller Pypot à partir des sources de Github qui sont à jour.

Rajouter une ligne dans le fichier pypot/dynamixel/conversion.py :
ligne 36 :
'XL-320': 0.39,

ou remplacer le fichier conversion.py par le fichier joint : conversion.py (7.5 KB)

J’ai essayé d’installé à partir de github mais je ne sais pas si j’ai procédé correctement.

J’ai downloadé et décompressé l’archive pypot-master, puis je l’ai installée dans /usr/local/lib/python2.7/dist-packages avant de lancer les commandes préconisées sur la page de pypot mais j’ai remplacé ci-dessous pypot par pypot-master car c’est dans ce dossier que se situe setup.py
cd pypot-master
sudo python setup.py install

Pour être sûre que tout aille bien, j’ai aussi changé les droits sur pypot-master avec un chmod. Les fichiers dist-info et .egg indiquent que j’ai la version 2.10.0, ainsi que le fichier _version.py contenu dans le dpossier pypot et lui-même contenu dans pypot-master.
Le robot apparaît toujours bien dans vrep quand je le lance avec mini_dof = Poppy4dofArmMini(simulator='vrep') mais le code suivant apparaît maintenant.
---------------------------------------------------------------------------
VrepIOErrors Traceback (most recent call last)
in ()
----> 1 mini_dof = Poppy4dofArmMini(simulator=‘vrep’)

/usr/local/lib/python2.7/dist-packages/poppy/creatures/abstractcreature.pyc in __new__(cls, base_path, config, simulator, scene, host, port, id, use_snap, snap_host, snap_port, snap_quiet, use_http, http_host, http_port, http_quiet, use_remote, remote_host, remote_port, sync)
     84                 # TODO: use the id so we can have multiple poppy creatures
     85                 # inside a single vrep scene
---> 86                 poppy_creature = from_vrep(config, host, port, scene)
     87 
     88             elif simulator == 'threejs':

/usr/local/lib/python2.7/dist-packages/pypot-2.10.0-py2.7.egg/pypot/vrep/__init__.pyc in from_vrep(config, vrep_host, vrep_port, scene, tracked_objects, tracked_collisions)
     87 
     88     vc = VrepController(vrep_io, scene, motors)
---> 89     vc._init_vrep_streaming()
     90 
     91     sensor_controllers = []

/usr/local/lib/python2.7/dist-packages/pypot-2.10.0-py2.7.egg/pypot/vrep/controller.pyc in _init_vrep_streaming(self)
    110         # And actually affect them
    111         for m, p in zip(self.motors, pos):
--> 112             self.io.set_motor_position(m.name, p)
    113             m.__dict__['goal_position'] = rad2deg(p)
    114 

/usr/local/lib/python2.7/dist-packages/pypot-2.10.0-py2.7.egg/pypot/vrep/io.pyc in set_motor_position(self, motor_name, position)
    151                              self.get_object_handle(motor_name),
    152                              position,
--> 153                              sending=True)
    154 
    155     def get_motor_force(self, motor_name):

/usr/local/lib/python2.7/dist-packages/pypot-2.10.0-py2.7.egg/pypot/vrep/io.pyc in call_remote_api(self, func_name, *args, **kwargs)
    353             msg = ' '.join([vrep_error[2 ** i]
    354                             for i, e in enumerate(err) if e])
--> 355             raise VrepIOErrors(msg)
    356 
    357         return res

VrepIOErrors: No value

Je pensais à quelque chose. Dans l’activité déplacer un objet à l’aide d’un bras robotisé, ainsi que dans la page de poppy-prof, est-ce que ça ne vaudrait pas le coup de préciser les versions que tu as utilisées pour les différents softs et l’OS ?

Ou éventuellement de mettre un lien vers ce topic pour les personnes qui auraient des soucis dans la réalisation de l’activité ?

Bon, ll se peut que ce soit le dernier problème… Est-ce qu’une fenêtre apparaît dans V-REP en même temps que le robot ?
Si c’est le cas, c’est cette fenêtre qui bloque la communication, il faut cocher ne plus montrer cette fenêtre et relancer le robot. La fenêtre apparaîtra 3 fois avant de ne plus revenir.
Je n’ai pas trouvé d’option dans V-REP pour désactiver cette fenêtre.

C’est fait.

Il n’y en pas malheureusement.