Hello! I’m working with a Stretch with a Beta Dex Wrist, and I’m having some trouble with the wrist motors. I set up my environment using the Dex Wrist Installation Guide, and at first, I was briefly able to drive all three DOF of the wrist using the xbox and keyboard
teleop.py scripts. After some use, and a Stretch reboot, the Stretch system check now reads:
lamsey@stretch-re1-1053:~$ stretch_robot_system_check.py For use with S T R E T C H (TM) RESEARCH EDITION from Hello Robot Inc. Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner self.run() File "/home/lamsey/.local/lib/python2.7/site-packages/stretch_body/robot.py", line 84, in run self.robot.collision.step() File "/home/lamsey/.local/lib/python2.7/site-packages/stretch_body/robot_collision.py", line 81, in step new_limits=m.step(status) File "/home/lamsey/.local/lib/python2.7/site-packages/stretch_tool_share/stretch_dex_wrist/collision_model.py", line 19, in step x_roll=status['end_of_arm']['wrist_roll']['pos'] KeyError: 'wrist_roll' ---- Checking Devices ---- [Pass] : hello-wacc [Pass] : hello-motor-left-wheel [Pass] : hello-motor-arm [Pass] : hello-dynamixel-wrist [Pass] : hello-motor-right-wheel [Pass] : hello-motor-lift [Pass] : hello-pimu [Pass] : hello-respeaker [Pass] : hello-lrf [Pass] : hello-dynamixel-head ---- Checking Pimu ---- [Pass] Voltage = 13.5132551193 [Pass] Current = 2.09771637969 [Pass] Temperature = 30.7234678513 [Pass] Cliff-0 = 5.6728515625 [Pass] Cliff-1 = -5.36968994141 [Pass] Cliff-2 = -11.794128418 [Pass] Cliff-3 = -5.93902587891 [Pass] IMU AZ = -9.80333328247 [Pass] IMU Pitch = -2.82402253151 [Pass] IMU Roll = 2.2745513916 ---- Checking EndOfArm ---- Traceback (most recent call last): File "/home/lamsey/.local/bin/stretch_robot_system_check.py", line 78, in <module> if w.motors[mk].do_ping(): File "/home/lamsey/.local/lib/python2.7/site-packages/stretch_body/dynamixel_hello_XL430.py", line 99, in do_ping return self.motor.do_ping(verbose) File "/home/lamsey/.local/lib/python2.7/site-packages/stretch_body/dynamixel_XL430.py", line 249, in do_ping if self.handle_comm_result('XL430_PING', dxl_comm_result, dxl_error): File "/home/lamsey/.local/lib/python2.7/site-packages/stretch_body/dynamixel_XL430.py", line 226, in handle_comm_result raise DynamixelCommError stretch_body.dynamixel_XL430.DynamixelCommError
RE1_dynamixel_id_scan.py /dev/hello-dynamixel-wrist --baud 115200 (as well as
--baud 57600 and
--baud 1000000) yields “ping failed” for all 0-24 IDs. I am able to see the head IDs when I scan for those.
We’ve been having trouble with the wrist cabling, as detailed here. However, I checked the cabling, and nothing seems severed or unseated. When I run
RE1_dynamixel_id_scan.py /dev/hello-dynamixel-wrist --baud 115200, all of the Dex Wrist motors hold their position, so they are receiving power. If the motors are unplugged and replugged, they no longer hold position until that command is run again.
factory_params: stretch_re1_factory_params.yaml tool_params: stretch_re1_tool_params.yaml # You can override factory settings for each device here # Otherwise defaults to the factory 'robot_params' # USE WITH CAUTION. IT IS POSSIBLE TO CAUSE UNSAFE BEHAVIOR OF THE ROBOT # params: - stretch_tool_share.stretch_dex_wrist.params tool_none: baud: 11520 tool_stretch_gripper: baud: 115200 head: baud: 115200 wrist_yaw: baud: 115200 head_tilt: baud: 115200 head_pan: baud: 115200 stretch_gripper: range_t: - 0 - 6415 zero_t: 4017 baud: 115200 lift: i_feedforward: 0.75 hello-motor-lift: gains: i_safety_feedforward: 0.75 end_of_arm: devices: stretch_gripper: py_class_name: StretchGripper py_module_name: stretch_body.stretch_gripper robot: use_collision_manager: 1 tool: tool_stretch_dex_wrist log_to_console: 0 tool_stretch_dex_wrist: use_group_sync_read: 0
Any advice on troubleshooting would be appreciated! We’re out of spare Dynamixel cables, so I haven’t been able to try changing those out. I’m happy to provide any more info, if needed.