Hi all, we updated the OS of our Stretch RE1 to Ubuntu 20.04 and now are facing an issue with the hello-motor-lift that it seems is unable to communicate with the OS. We tried several procedures and tools mentioned in the forum but none of them solved it.
Here is a list of what we tried:
Running the REx_firmware_updater.py --install.
Running the REx_firmware_flash.py
Verified the udev rules and the serial number.
The output we got from running REx_firmware_updater.py --install:
[WARNING] [hello-motor-lift]:
---------------
Firmware protocol mismatch on hello-motor-lift.
Protocol on board is p5.
Valid protocols are: dict_keys(['p0', 'p1', 'p2']).
Disabling device.
Please upgrade the firmware and/or version of Stretch Body.
----------------
Unable to communicate with device hello-motor-lift
WARNING: Device hello-motor-lift is not valid. Unable to attempt the firmware update. Skipping device
Hi @argen1s, looks like you’re running into the opposite issue; your firmware is more up-to-date than your SDK is. Would you run the following command stretch_system_check.py and report its output here?
I know right, it seems that at some point the firmware got update to a newer version.
When I try to run the stretch_system_check.py I got command not found. However I can run stretch_robot_system_check.py .
Here is its output in case you need it:
[WARNING] [hello-motor-lift]:
----------------
Firmware protocol mismatch on hello-motor-lift.
Protocol on board is p5.
Valid protocols are: dict_keys(['p0', 'p1', 'p2']).
Disabling device.
Please upgrade the firmware and/or version of Stretch Body.
----------------
[WARNING] [stretch_gripper]: DynamixelHelloXL430 Ping failed... stretch_gripper
DynamixelHelloXL430 Ping failed... stretch_gripper
---- Checking Devices ----
[Pass] : hello-wacc
[Pass] : hello-motor-left-wheel
[Pass] : hello-pimu
[Pass] : hello-lrf
[Pass] : hello-dynamixel-head
[Pass] : hello-dynamixel-wrist
[Pass] : hello-motor-arm
[Pass] : hello-motor-right-wheel
[Pass] : hello-motor-lift
[Pass] : hello-respeaker
---- Checking Pimu ----
[Pass] Voltage = 13.041690587997437
[Pass] Current = 1.7860200913513409
[Pass] Temperature = 23.93553226422041
[Pass] Cliff-0 = 30.01885986328125
[Pass] Cliff-1 = 35.606689453125
[Warn] Cliff-2 = -124.20953369140625 out of range -50 to 60 - calibrate using REx_cliff_sensor_calibrate.py
[Warn] Cliff-3 = -93.04324340820312 out of range -50 to 60 - calibrate using REx_cliff_sensor_calibrate.py
[Pass] IMU AZ = -9.73032283782959
[Pass] IMU Pitch = -1.2088491916656494
[Pass] IMU Roll = 1.8359375
---- Checking EndOfArm ----
[Fail] Ping of: stretch_gripper
[Fail] Ping of: wrist_pitch
[Fail] Ping of: wrist_roll
[Pass] Ping of: wrist_yaw
[Fail] Not Calibrated: wrist_yaw
---- Checking Head ----
[Pass] Ping of: head_pan
[Pass] Ping of: head_tilt
---- Checking Wacc ----
[Pass] AX = 9.65605640411377
---- Checking hello-motor-left-wheel ----
[Pass] Position = -0.8890706896781921
---- Checking hello-motor-right-wheel ----
[Pass] Position = -2.8143434524536133
---- Checking hello-motor-arm ----
[Pass] Position = 2.7623326778411865
[Fail] Position Calibrated = False
---- Checking hello-motor-lift ----
[Fail] Position = 0
[Pass] Position Calibrated = 0
Gotcha, it certainly looks like we should update the SDK. Would you run through this guide:
In particular, you’re interested in the Python Libraries section. After you’ve updated “hello-robot-stretch-body-tools”, you’ll see the stretch_robot_system_check.py CLI has been replaced by stretch_system_check.py.
Also, I’m noticing that there’s [Fail] Ping of: wrist_<something> in your sys check output. Would you send me a picture of your robot? I think the software is confused about which tool is attached to your robot.
Magnificent!
Updating the SDK and running the REx_firmware_updater.py --install now worked. Here is the output for the command: REx_firmware_updater.py --current
REx_firmware_updater.py --current
----------- Deprecation Warning -----------
Your robot params are configured to load DexWrist2 params from Stretch Tool Share
Support for the DexWrist2 has moved to Stretch Body
1) Open stretch_user_params.yaml and stretch_configuration_params.yaml in
the ~/stretch_user/stretch-yyy-xxxx directory.
2) Locate the following text in one of those files and remove it:
params: stretch_tool_share.stretch_dex_wrist.params
or
params:
- stretch_tool_share.stretch_dex_wrist.params
More information can be found at: https://github.com/hello-robot/stretch_body/pull/272
-------------------------------------------
Collecting information...
######################################## Currently Installed Firmware ########################################
------------ HELLO-MOTOR-LIFT ------------
Installed Firmware: Stepper.v0.7.4p5
Installed Stretch Body supports protocols: p0 , p1 , p2 , p3 , p4 , p5
Installed protocol p5 : VALID
------------ HELLO-MOTOR-ARM ------------
Installed Firmware: Stepper.v0.7.4p5
Installed Stretch Body supports protocols: p0 , p1 , p2 , p3 , p4 , p5
Installed protocol p5 : VALID
------------ HELLO-MOTOR-LEFT-WHEEL ------------
Installed Firmware: Stepper.v0.7.4p5
Installed Stretch Body supports protocols: p0 , p1 , p2 , p3 , p4 , p5
Installed protocol p5 : VALID
------------ HELLO-MOTOR-RIGHT-WHEEL ------------
Installed Firmware: Stepper.v0.7.4p5
Installed Stretch Body supports protocols: p0 , p1 , p2 , p3 , p4 , p5
Installed protocol p5 : VALID
------------ HELLO-PIMU ------------
Installed Firmware: Pimu.v0.7.0p5
Installed Stretch Body supports protocols: p0 , p1 , p2 , p3 , p4 , p5
Installed protocol p5 : VALID
------------ HELLO-WACC ------------
Installed Firmware: Wacc.v0.5.1p3
Installed Stretch Body supports protocols: p0 , p1 , p2 , p3
Installed protocol p3 : VALID
Here is the new output for the stretch_system_check.py command
[ERROR] [stretch_gripper]: DynamixelCommError. Mismatched baud rate. Expected 115200 but servo is set to 57600.
[WARNING] [stretch_gripper]: DynamixelHelloXL430 Ping failed... stretch_gripper
DynamixelHelloXL430 Ping failed... stretch_gripper
Dnamixel Com error:
---- Checking Hardware ----
[Fail] Comms not ready (failed to ping stretch_gripper)
[Fail] Actuators not ready (robot not homed, run stretch_robot_home.py)
[Pass] Sensors are ready
[Pass] Battery voltage is 13.0 V
---- Checking Software ----
[Pass] Ubuntu 20.04 is ready
[Pass] All APT pkgs are setup correctly
[Pass] Firmware is up-to-date
[Warn] Python pkgs not up-to-date (run pip3 install -U hello-robot-stretch-factory)
[Pass] ROS Noetic is ready
Lastly, attached here are some pictures of the robot.
@bshah I just wanted to thank you again for the help and inform you that I already solved the issue with the wrist tool using the topic post I attached to my previous response.