I have a hello robot whose 0, 0, 0 rpy doesn’t seem aligned with gravity. I feel this could be cause of overuse but not sure.
Wanted to know how can we calibrate the dexterous wrist manually so as to fix this misalignment? Thanks in advance for the help.
Hi @Anant_Rai, good question! Each of the roll/pitch/yaw Dex Wrist joints have offset parameters you can use to correct any misalignment. Here’s a manual procedure you could use to fix the offsets:
- Home the robot using
- The Dex Wrist should be pointed out like:
- Login and open iPython in a terminal. Create an instance of the Robot class using:
- Put a level tool on the Dex Wrist. You might be able to find a level tool app on your phone’s app store (e.g. I used this one).
- Try to get the bubble centered by commanding small increments to the pitch/roll joints using the iPython terminal:
- The offset parameter for Dxl joints is defined in “ticks”, which is the smallest unit of motion for the motor. We can read the joint’s current position in ticks using the
- Since the yaw joint doesn’t affect the level tool’s reading, you can visually calibrate it by using step 4-5 until the wrist is pointed out and away from the robot.
- You can now close the Robot class using
r.stop() and exit out of iPython.
- The offset parameter for a Dxl joint is called
zero_t. We can query the current offsets for the roll/pitch/yaw joints using:
- Open “~/stretch_user/stretch-rey-xxxx/stretch_user_params.yaml” in a file editor and set the new offsets.
stretch_params.py again to verify the changes took effect.
- Open iPython again and command the joints to 0.0 rad. Then verify the Dex Wrist joints are leveled correctly.
Hope this helps! Let me know if you have any questions!
Sorry for the late response. We tried this earlier and it works. Forgot to get back. Thanks a lot for the detailed guide!