I have been following this tutorial to install a ubuntu 22.04 system alongside the existing 20.04 system and performed a robot-level install.
However, everything worked fine until I ran the shell script: ./stretch_new_robot_install.sh. I got an error during the creation process for ament_ws , probably due to the poor internet environment (I was not using a cable connection for internet but only wi-fi):
ERROR: the following rosdeps failed to install
pip: command [sudo -H pip3 install -U torch] failed
So I tried to create the ament_ws again according to this tutorial:
cd ~\stretch_install
./factory/22.04/stretch_create_ament_workspace.sh -w ~/ament_ws
And this worked. I have successfully created the ament_ws which can be built and sourced. Then I did the firmware update REx_firmware_updater.py --install without any error. I also commented out the following in ~/stretch_user/stretch-re2-xxxx/stretch_configuration_params.yaml to prevent deprecated warning:
But when I moved on to setup the stretch dex wrist, I got the following error when running REx_calibrate_guarded_contact.py --arm:
For use with S T R E T C H (R) from Hello Robot Inc.
---------------------------------------------------------------------
Joint not calibrated. Exiting.
Then I tried to perform the calibration first, but the stretch_robot_home.py returns:
For use with S T R E T C H (R) from Hello Robot Inc.
---------------------------------------------------------------------
[ERROR] [wrist_pitch]: DynamixelCommError. Mismatched baud rate. Expected 115200 but servo is set to -1.
[WARNING] [wrist_pitch]: DynamixelHelloXL430 Ping failed... wrist_pitch
DynamixelHelloXL430 Ping failed... wrist_pitch
Dnamixel Com error:
[ERROR] [robot]: Failed to startup connection to robot
Did I miss anything after the creation of ament workspace in ./stretch_new_robot_install.sh? How can I solve the communication error and could a calibration solve the Joint not calibrated error in REx_calibrate_guarded_contact.py --arm?
Hi @Januxes, welcome to the forum! You’re likely correct about a poor internet connection causing the issue initially. I’m glad you were able to create another ament_ws. It looks like the reason stretch_robot_home.py is failing is because the wrist pitch joint isn’t communicating on the correct baud rate. Let’s start by asking the hardware what baud rate it’s currently using:
Thanks! The serial number is 2031, and this is the output from the scan:
REx_dynamixel_id_scan.py /dev/hello-dynamixel-wrist
For use with S T R E T C H (R) from Hello Robot Inc.
---------------------------------------------------------------------
Scanning bus /dev/hello-dynamixel-wrist
Checking ID 0
Checking ID 1
Checking ID 2
Checking ID 3
Checking ID 4
Checking ID 5
Checking ID 6
Checking ID 7
Checking ID 8
Checking ID 9
Checking ID 10
Checking ID 11
Checking ID 12
Checking ID 13
[Dynamixel ID:013] ping Succeeded. Dynamixel model : XC430-W240. Baud 115200
Checking ID 14
[Dynamixel ID:014] ping Succeeded. Dynamixel model : XL430-W250. Baud 115200
Checking ID 15
Checking ID 16
Checking ID 17
Checking ID 18
Checking ID 19
Checking ID 20
Checking ID 21
Checking ID 22
Checking ID 23
Checking ID 24
Found 2 servos on bus /dev/hello-dynamixel-wrist
I also tried stretch_params.py | grep baud, which gives 115200 for all devices:
Hi @Januxes, it looks like from the output that the wrist pitch and wrist roll joints aren’t present. This might be because your robot doesn’t have the Dex Wrist tool, which was an optional accessory for Stretch 2. Could you take a picture of the tool at the end of the robot’s arm?
If your Stretch doesn’t have the Dex Wrist tool, it likely has the Standard Gripper tool. Let me know if you had mistakenly run the stretch_new_dex_wrist_install.sh script.
Thanks! I changed the tool setting in the .xacro file, built the workspace again and it worked! Sorry I mistaken the standard gripper for Dex Wrist. Now I finally can home the robot and calibrate it correctly.