Connecter Poppyergojr a python

Raf91000 -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je débute en python et je n'arrive pas à connecter mon robot poppy à python pour le faire bouger. Je suis le tutoriel indiqué dans l'interface python, mais rien ne marche. Pourtant le robot est bien connecté car j'arrive bien à le programmer en snap/scratch. Voilà ce que je met dans l'interface jupyter et ce qui en sort :

from pypot.creatures import *
​
poppy = PoppyErgoJr()


---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-10-ab6248fd0837> in <module>()
1 from pypot.creatures import *
2
----> 3 poppy = PoppyErgoJr()

/home/poppy/miniconda/lib/python2.7/site-packages/pypot/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, use_ws, ws_host, ws_port, start_background_services, sync, **extra)
117 logger.warning('Init fail: {}'.format(str(e)))
118 else:
--> 119 raise OSError('Could not initalize robot!')
120 poppy_creature.simulated = False
121

OSError: Could not initalize robot!

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Bonjour,

    Peux-tu nous reporter les lignes de
    abstractcreature.py
    qui précedent la ligne 120. Si on se réfère au code mis à disposition ici, différents éléments peuvent déclencher cette exception :
    • le paramètre
      simulator
      passé à
      PoppyErgoJr()
      vaut
      None
      ;
    • ET le paramètre
      config
      passé vaut
      None
      et donc ne permet pas de dire comment se connecter.


    Donc j'imagine qu'il faut renseigner au moins l'un ou l'autre. D'après la documentation tu peux:
    • Passer 'vrep', 'poppy-simu', or 'dummy' pour
      simulator
      (e.g.
      poppy = PoppyErgoJr(simulator="dummy")
      ;
    • Ou bien passer le paramètre
      config
      qui contient le chemin vers le fichier
      .json
      qui renseigne comment se connecter à ton robot (voir par exemple
      poppy_humanoid.json
      ) (e.g.
      poppy =  PoppyErgoJr(config="/home/poppy/poppy_humanoid.json"
      )
    • Ou bien passer explicitement, comme expliqué dans la documentation de la fonction
      PoppyErgoJr.__init__
      d'autres paramètres spécifiant comment se connecter à ton robot. En outre, tu parlais de snap, je vois que le constructeur expose des paramètres
      snap_host
      et
      snap_port
      .


    Bonne chance
    0