Hi, I start here a new topic for our new Poppy Humanoid (upper half) at Telecom Bretagne.
So up until now we managed to assemble the hardware, and change the ids of the motors (with Dynamixel Wizard).
I can detect all the motors with herborist (on macos) and Dynamixel Wizard (on windows), but when I launch the try to connect to the robot with python, there is an error. I run the following code:
from poppy.creatures import PoppyHumanoid
poppy = PoppyHumanoid()
I get first the error:
Traceback (most recent call last):
File “”, line 1, in
File “/Library/Python/2.7/site-packages/poppy_creature-1.3.0-py2.7.egg/poppy/creatures/abstractcreature.py”, line 72, in new
poppy_creature = from_json(config, sync)
File “/Library/Python/2.7/site-packages/pypot/robot/config.py”, line 200, in from_json
return from_config(config, sync=sync)
File “/Library/Python/2.7/site-packages/pypot/robot/config.py”, line 58, in from_config
check_motor_limits(config, dxl_io, motor_names)
File “/Library/Python/2.7/site-packages/pypot/robot/config.py”, line 152, in check_motor_limits
dxl_io.set_angle_limit(changed_angle_limits)
File “/Library/Python/2.7/site-packages/pypot/dynamixel/io/abstract_io.py”, line 321, in set_angle_limit
if ‘wheel’ in self.get_mode(limit_for_id.keys()):
File “/Library/Python/2.7/site-packages/pypot/dynamixel/io/abstract_io.py”, line 298, in get_mode
return tuple(self._known_mode[id] for id in ids)
File “/Library/Python/2.7/site-packages/pypot/dynamixel/io/abstract_io.py”, line 298, in
return tuple(self._known_mode[id] for id in ids)
KeyError: 32
and when I call again “poppy = PoppyHumanoid();”, I get the error :
Traceback (most recent call last):
File “”, line 1, in
File “/Library/Python/2.7/site-packages/poppy_creature-1.3.0-py2.7.egg/poppy/creatures/abstractcreature.py”, line 72, in new
poppy_creature = from_json(config, sync)
File “/Library/Python/2.7/site-packages/pypot/robot/config.py”, line 200, in from_json
return from_config(config, sync=sync)
File “/Library/Python/2.7/site-packages/pypot/robot/config.py”, line 56, in from_config
dxl_io = dxl_io_from_confignode(config, c_params, attached_ids, strict)
File “/Library/Python/2.7/site-packages/pypot/robot/config.py”, line 105, in dxl_io_from_confignode
port = pypot.dynamixel.find_port(ids, strict)
File “/Library/Python/2.7/site-packages/pypot/dynamixel/init.py”, line 60, in find_port
raise IndexError(‘No suitable port found for ids {}!’.format(ids))
IndexError: No suitable port found for ids [31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 51, 52, 53, 54]!
What is strange is that these ids are exactly those that are seen by herborist and Dynamixel Wizard.