Hello,
i have seen this Topic and have the same error.
my code is:
import time
import pypot.robot
from poppy_humanoid import PoppyHumanoid
poppy=PoppyHumanoid()
for m in poppy.motors:
m.compliant = False
for m in poppy.motors:
m.goto_position(0, 5)
time.sleep(5)
my error so like this:
SerialTimeoutException Traceback (most recent call last)
<ipython-input-2-8d9580d17572> in <module>()
2 import pypot.robot
3 from poppy_humanoid import PoppyHumanoid
----> 4 poppy=PoppyHumanoid()
5
6 for m in poppy.motors:
C:\Anaconda\lib\site-packages\poppy\creatures\abstractcreature.pyc in __new__(cls, base_path, config, simulator, scene, host, port, id, use_snap, snap_host, snap_port, sync)
71
72 else:
---> 73 poppy_creature = from_json(config, sync)
74 poppy_creature.simulated = False
75
C:\Anaconda\lib\site-packages\pypot\robot\config.pyc in from_json(json_file, sync)
198 config = json.load(f)
199
--> 200 return from_config(config, sync=sync)
201
202
C:\Anaconda\lib\site-packages\pypot\robot\config.pyc in from_config(config, strict, sync)
54
55 attached_ids = [m.id for m in attached_motors]
---> 56 dxl_io = dxl_io_from_confignode(config, c_params, attached_ids, strict)
57
58 check_motor_limits(config, dxl_io, motor_names)
C:\Anaconda\lib\site-packages\pypot\robot\config.pyc in dxl_io_from_confignode(config, c_params, ids, strict)
103
104 if port == 'auto':
--> 105 port = pypot.dynamixel.find_port(ids, strict)
106 logger.info('Found port {} for ids {}'.format(port, ids))
107
C:\Anaconda\lib\site-packages\pypot\dynamixel\__init__.pyc in find_port(ids, strict)
48 try:
49 with DxlIOCls(port) as dxl:
---> 50 founds = len(dxl.scan(ids))
51
52 if strict and founds == len(ids):
C:\Anaconda\lib\site-packages\pypot\dynamixel\io\abstract_io.pyc in scan(self, ids)
219 def scan(self, ids=xrange(254)):
220 """ Pings all ids within the specified list, by default it finds all the motors connected to the bus. """
--> 221 return [id for id in ids if self.ping(id)]
222
223 # MARK: - Specific Getter / Setter
C:\Anaconda\lib\site-packages\pypot\dynamixel\io\abstract_io.pyc in ping(self, id)
212
213 try:
--> 214 self._send_packet(pp, error_handler=None)
215 return True
216 except DxlTimeoutError:
C:\Anaconda\lib\site-packages\pypot\dynamixel\io\abstract_io.pyc in _send_packet(self, instruction_packet, wait_for_status_packet, error_handler, _force_lock)
522
523 if not error_handler:
--> 524 return self.__real_send(instruction_packet, wait_for_status_packet, _force_lock)
525
526 try:
C:\Anaconda\lib\site-packages\pypot\dynamixel\io\abstract_io.pyc in __real_send(self, instruction_packet, wait_for_status_packet, _force_lock)
481
482 data = instruction_packet.to_string()
--> 483 nbytes = self._serial.write(data)
484 if len(data) != nbytes:
485 raise DxlCommunicationError(self,
C:\Anaconda\lib\site-packages\serial\serialwin32.pyc in write(self, data)
293 err = win32.GetOverlappedResult(self.hComPort, self._overlappedWrite, ctypes.byref(n), True)
294 if n.value != len(data):
--> 295 raise writeTimeoutError
296 return n.value
297 else:
SerialTimeoutException: Write timeout
maybe the motor ist demaged but not enough to be broken. I think maybe one or two motor in legs are broken. but how should i check this? In Herborist all Motor looks fine.
Thanks a lot
Best Regards
Shuting