Can´t create poppy = PoppyHumanoid()

Hello everybody,
I have been searching and didn´t find an answer yet. I hope you can realy healp me.
If I try to run the code
"from poppy.creatures import PoppyHumanoid
poppy = PoppyHumanoid()"

It just says :

"WindowsError                              Traceback (most recent call last)
<ipython-input-4-8559991d5db6> in <module>()
      1 from poppy.creatures import PoppyHumanoid
----> 2 poppy = PoppyHumanoid()

C:\Users\Kevin\Anaconda2\lib\site-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)
     98         else:
     99             try:
--> 100                 poppy_creature = from_json(config, sync)
    101             except IndexError as e:
    102                 raise IOError('Connection to the robot failed! {}'.format(e.message))

C:\Users\Kevin\Anaconda2\lib\site-packages\pypot\robot\config.pyc in from_json(json_file, sync, strict, use_dummy_io)
    242         config = json.load(f)
    243 
--> 244     return from_config(config, sync=sync, strict=strict, use_dummy_io=use_dummy_io)
    245 
    246 

C:\Users\Kevin\Anaconda2\lib\site-packages\pypot\robot\config.pyc in from_config(config, strict, sync, use_dummy_io)
     58         attached_ids = [m.id for m in attached_motors]
     59         if not use_dummy_io:
---> 60             dxl_io = dxl_io_from_confignode(config, c_params, attached_ids, strict)
     61 
     62             check_motor_limits(config, dxl_io, motor_names)

C:\Users\Kevin\Anaconda2\lib\site-packages\pypot\robot\config.pyc in dxl_io_from_confignode(config, c_params, ids, strict)
    137 
    138     if port == 'auto':
--> 139         port = pypot.dynamixel.find_port(ids, strict)
    140         logger.info('Found port {} for ids {}'.format(port, ids))
    141 

C:\Users\Kevin\Anaconda2\lib\site-packages\pypot\dynamixel\__init__.pyc in find_port(ids, strict)
     81     """
     82     ids_founds = []
---> 83     for port in get_available_ports():
     84         for DxlIOCls in (DxlIO, Dxl320IO):
     85             try:

C:\Users\Kevin\Anaconda2\lib\site-packages\pypot\dynamixel\__init__.pyc in get_available_ports(only_free)
     47 
     48 def get_available_ports(only_free=False):
---> 49     ports = _get_available_ports()
     50 
     51     if only_free:

C:\Users\Kevin\Anaconda2\lib\site-packages\pypot\dynamixel\__init__.pyc in _get_available_ports()
     34         ports = []
     35         path = 'HARDWARE\\DEVICEMAP\\SERIALCOMM'
---> 36         key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, path)
     37 
     38         for i in itertools.count():

WindowsError: [Error 2] The System can´t find the data"

If I try to run the simulation with the “v-rep” simulation everything works great.

It seems to be related with our method to find available serial port in Windows.

Which windows version are you using?

Thanks for your fast reply.
I am using windows 10 since a few month.

Unfortunately I don’t have a windows 10 setup to test and check exactly how to solve the problem.

Yet, there is a “simple” way to solve the problem. You can directly specify the serial COM port you are using in the robot configuration file (poppy_humanoid.json) instead of the ‘auto’ value.

I’ll try to come with a proper fix in the next release.

When I got you right, I think this Solution works on communicationg over the USB port ?
I tried to connect poppy with my Leptop via ethernet because when I connected Poppy via USB it happens nothing. So my Leptop doesn´t even recognize that there is something connected via USB. Using the ethernet cable i at least can connect to Poppy (simply using “Ping poppy.local”). I think i schould have mentiont this at the top :D.

Thanks :slight_smile: