Change in robot.stop() behavior


Before updating the firmware, robot.stop() would open the gripper but leave all other joints in their current positions. However, after updating the firmware and python packages the wrist now rotates to a horizontal position when robot.stop() is called. Is there anyway to disable this behavior so that the wrist remains in the current position after robot.stop() is called?

Edit: Issue resolved

Hi @Michelle_Z, When you mean by the Wrist Rotates to a Horizontal position, do you mean the ‘wrist_yaw’ joint rotating to a hard stop or something else? And how reproducible is this issue you are facing (does it happen every time or occasionally)?

Additionally, could you give me the versions of the installed Stretch Python packages so I can try to reproduce the issue?

pip3 list  | grep hello

The ‘wrist_roll’ resets to 0 whenever robot.stop() is run, and this happens every time. For example if I run the following code in a python terminal the wrist roll will always rotate back to 0:

>>> import stretch_body.robot
>>> robot = stretch_body.robot.Robot()
>>> robot.startup()
>>> robot.end_of_arm.move_to('wrist_roll', -1.57)
>>> robot.stop()

Here are the versions of the installed python packages:
hello-robot-stretch-body 0.7.12
hello-robot-stretch-body-tools 0.7.7
hello-robot-stretch-diagnostics 0.0.14
hello_robot_stretch_factory 0.5.5
hello-robot-stretch-tool-share 0.3.4
hello-robot-stretch-urdf 0.0.22


I was able to solve the issue by adding the following to my stretch_user_params.yaml:

    float_on_stop: 0
    disable_torque_on_stop: 1

The firmware and python package update must have changed the settings.


1 Like

Hi @Michelle_Z , Yes, you are right. We introduced this UX feature called “Float mode” for the Dex Wrist with our latest updates. I am glad you were able to figure it out by changing the Stretch parameters.