Hi! I have been looking through this awesome forum to find a similar issue but couldn’t find one.
I am using the Stretch2 with the Dex Wrist. I am trying to use the Home Robot stack. However, when I am trying to get the robot to move to poses with the arm and wrist, I get the warning “Joint goal not achieved” and the message “[ERROR] /stretch_driver joint_traj action: Received only 6 valid joints out of 8 total joints. Received …”. I have attempted to update everything required based on installing the Dex Wrist (i.e., the urdf etc.). I have tried debugging it, and it doesn’t look like the values are out of the limits in the urdf. And the joint names all look valid. I have attached an image with some of the error outputs.
Looking for any advice on debugging or where you think the error might be.
Please let me know any more information I can provide.
Hey! Thanks for the response! Yep, so on the right is the ok-robot script and on the left the startup_stretch_hector_slam.launch file.
I’ll be able to share the output in a couple hours (not with the robot ATM). Although, the previous two errors don’t include the mobile translation joint, and have all valid joints, which seems odd to me.
Yes, I tried reaching out on the discord last week
Viewing the /joint_states, it doesn’t include the wrist roll or pitch (or the translate mobile base). I’m assuming it should? Is there something I haven’t updated properly? (image attached)
I find the instructions for updating the urdfs a bit confusing transitioning between what is asked to do from the stretch doc pages, home-robot docs, and ok-robot. Although, regardless, is there something I have missed so that these are part of the joint_states?
Take a screenshot and share. alternately, you can do
rosparam get robot_description | grep roll
and see if there’s a wrist joint in your URDF. I’m guessing there isnt, which means you just need to follow the instructions to update your urdf to include dex wrist!
It seemed to set the /robot_description. Although this did not fix the error. And I still see “/stretch_driver joint_traj action: Received only 6 valid joints out of 8 total joints”, when running. Output of robot_description:
Hey @gonia, this one is a bug in Stretch Body. I was able to reproduce it and the fix was shipped in v0.7.15. You can update using pip3 install -U hello-robot-stretch-body.
Would you send a picture of the robot to confirm it has a Dex Wrist. Also would you try the stretch_system_check.py CLI and report the results.
Viewing the /joint_states, it doesn’t include the wrist roll or pitch (or the translate mobile base). I’m assuming it should? Is there something I haven’t updated properly? (image attached)
You should be seeing joint states from the wrist. Its ok not to have translate mobile base.
Can you use rostopic echo to show the actual messages being sent on the joint_traj action server which are causing the error?
And running pip3 install -U hello-robot-stretch-body solved the stow issue, thank you!
But when running system check, it has a warning that I need to update packages, even after updating…?
So, my mistake earlier, but I didn’t previously notice the distinction between the rostopic ‘/stretch/joint_states’ and ‘/joint_states’. The ‘/joint_states’ topic prints the wrist_roll and wrist_pitch.
@Mohamed_Fazil I think @gonia has found a bug with newer versions of Stretch Body, where the command group classes for Pitch and Roll aren’t being loaded in because the Tool Share was deprecated. IIRC, this is a simple fix by changing where the ROS driver looks to import these two classes. We already fixed this in the ROS 2 driver. Would you backport this fix to Noetic?
@gonia Thanks for digging into this! I appreciate that you reported this. Either Mohamed or I (I’m out of office this week) should be able to fix this ASAP.