After overloading the gripper and running stretch_robot_dynamixel_reboot.py, I see the following error. The motors appear to successfully reboot, though.
For use with S T R E T C H (R) from Hello Robot Inc.
---------------------------------------------------------------------
[WARNING] [stretch_gripper]: WARNING: Servo stretch_gripper in error state: overload_error. Reboot servo with stretch_robot_dynamixel_reboot.py
Dnamixel Com error:
Rebooting: head_pan
[Dynamixel ID:011] Reboot Succeeded.
Rebooting: head_tilt
[Dynamixel ID:012] Reboot Succeeded.
Rebooting: wrist_pitch
[Dynamixel ID:015] Reboot Succeeded.
Rebooting: wrist_roll
[Dynamixel ID:016] Reboot Succeeded.
Rebooting: wrist_yaw
[Dynamixel ID:013] Reboot Succeeded.
Rebooting: stretch_gripper
[Dynamixel ID:014] Reboot Succeeded.
[WARNING] [robot_monitor]: Dynamixel overload_error on eoa_wrist_dw3_tool_sg3:stretch_gripper
Process Process-1:
Traceback (most recent call last):
File "/home/hello-robot/.local/lib/python3.10/site-packages/collada/triangleset.py", line 224, in load
index = parse_p(indexnode)
File "/home/hello-robot/.local/lib/python3.10/site-packages/collada/triangleset.py", line 207, in parse_p
if indexnode.text is None or indexnode.text.isspace():
File "/home/hello-robot/.local/lib/python3.10/site-packages/stretch_body/robot_collision.py", line 349, in signal_handler
sys.exit(0)
SystemExit: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/home/hello-robot/.local/lib/python3.10/site-packages/stretch_body/robot_collision.py", line 334, in _collision_compute_worker
if collision_compute.startup():
File "/home/hello-robot/.local/lib/python3.10/site-packages/stretch_body/robot_collision.py", line 513, in startup
self.urdf = urdf_loader.URDF.load(urdf_name)
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 3825, in load
return URDF._from_xml(node, path, lazy_load_meshes)
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 4035, in _from_xml
kwargs = cls._parse(node, path, lazy_load_meshes)
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 361, in _parse
kwargs.update(cls._parse_simple_elements(node, path, lazy_load_meshes))
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 333, in _parse_simple_elements
v = [t._from_xml(n, path, lazy_load_meshes) for n in vs]
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 333, in <listcomp>
v = [t._from_xml(n, path, lazy_load_meshes) for n in vs]
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 383, in _from_xml
return cls(**cls._parse(node, path, lazy_load_meshes))
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 361, in _parse
kwargs.update(cls._parse_simple_elements(node, path, lazy_load_meshes))
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 333, in _parse_simple_elements
v = [t._from_xml(n, path, lazy_load_meshes) for n in vs]
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 333, in <listcomp>
v = [t._from_xml(n, path, lazy_load_meshes) for n in vs]
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 1245, in _from_xml
kwargs = cls._parse(node, path, lazy_load_meshes)
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 361, in _parse
kwargs.update(cls._parse_simple_elements(node, path, lazy_load_meshes))
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 322, in _parse_simple_elements
v = t._from_xml(v, path, lazy_load_meshes)
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 383, in _from_xml
return cls(**cls._parse(node, path, lazy_load_meshes))
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 361, in _parse
kwargs.update(cls._parse_simple_elements(node, path, lazy_load_meshes))
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 322, in _parse_simple_elements
v = t._from_xml(v, path, lazy_load_meshes)
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 698, in _from_xml
meshes = cls._load_and_combine_meshes(fn, combine)
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/urdf.py", line 681, in _load_and_combine_meshes
meshes = load_meshes(fn)
File "/home/hello-robot/.local/lib/python3.10/site-packages/urchin/utils.py", line 225, in load_meshes
meshes = trimesh.load(filename)
File "/home/hello-robot/.local/lib/python3.10/site-packages/trimesh/exchange/load.py", line 133, in load
loaded = load_mesh(file_obj,
File "/home/hello-robot/.local/lib/python3.10/site-packages/trimesh/constants.py", line 134, in timed
result = method(*args, **kwargs)
File "/home/hello-robot/.local/lib/python3.10/site-packages/trimesh/exchange/load.py", line 209, in load_mesh
results = mesh_loaders[file_type](file_obj,
File "/home/hello-robot/.local/lib/python3.10/site-packages/trimesh/exchange/dae.py", line 43, in load_collada
c = collada.Collada(file_obj)
File "/home/hello-robot/.local/lib/python3.10/site-packages/collada/__init__.py", line 231, in __init__
self._loadGeometry()
File "/home/hello-robot/.local/lib/python3.10/site-packages/collada/__init__.py", line 316, in _loadGeometry
self.handleError(ex)
File "/home/hello-robot/.local/lib/python3.10/site-packages/collada/__init__.py", line 314, in _loadGeometry
G = geometry.Geometry.load(self, {}, geomnode)
File "/home/hello-robot/.local/lib/python3.10/site-packages/collada/geometry.py", line 214, in load
_primitives.append(triangleset.TriangleSet.load(collada, sourcebyid, subnode))
File "/home/hello-robot/.local/lib/python3.10/site-packages/collada/triangleset.py", line 232, in load
raise DaeMalformedError('Corrupted index in triangleset')
collada.common.DaeMalformedError: DaeMalformedError: Corrupted index in triangleset
s
Dynamixel servo reboot complete. You will need to re-home servos now.
@hello-binit suggests wrapping CollisionJoint._collision_compute_worker in a try / catch block (code here).
After overloading the gripper and running
stretch_robot_dynamixel_reboot.py
, I see the following error. The motors appear to successfully reboot, though.pip package versions:
error text:
@hello-binit suggests wrapping
CollisionJoint._collision_compute_worker
in a try / catch block (code here).