Hello @ak-ty, welcome to the forum! This warning is being emitted because the arm joint is unable to be homed due to contact between the arm and it’s end-stop not being detected. Could you answer the following questions:
What do you see when running just arm homing? You can use the stretch_arm_home.py tool.
When the robot is powered off, backdrive the arm to fully open and then fully closed. Is there any part of the arm’s range where it gets stuck or is not possible to backdrive the arm?
What is the output of the following command: python -m pip list | grep hello
What is the output of the following command: stretch_params.py | grep homing_force_N
Great, thank you. We can eliminate the warning by solving the arm homing failure. We’ll do this by increasing the effort with which the arm moves towards the end-stop. If the homing effort is too low, then the arm doesn’t move at all and this is what I suspect is happening here.
Start by running the following command to identify the current settings for this parameter:
For example, if this returns [-33.5, 44.7], then -33.5 is the homing effort moving in, and 44.7 is the homing effort moving out. Next, modify the “stretch_user_params.yaml” file in the “~/stretch_user/stretch-rex-xxxx” folder to include the following at the end of the file:
- <effort threshold moving in while homing>
- <effort threshold moving out while homing>
Replace the <> parts with the corresponding values grepped from stretch_params.py and increase the magnitude of the values by 5 until the joint is able to reliably home against the end-stop. You can use the stretch_arm_home.py tool to quickly check whether arm homing succeeded. Let me know if you have any questions.
Hi @ak-ty, they are the same. Internally, stretch_arm_home.py calls arm.home() from the Python SDK, while stretch_robot_home.py calls robot.arm.home(). I recommend continuing to increase the homing effort until both tools can reliably home the arm.
Thank you for your ongoing advice.
Unfortunately, I have increased the setpoint up to [ -93.5, 99.7 ] but this does not solve my problem.
I have noticed that when the arm did not move, once I manually move the arm and then send the command, the arm moves normally.
This happens regardless of values of ‘arm.contact_models.effort_pct.contact_thresh_homing’.
I wonder that there is something wrong mechanically that makes it difficult for the arm to move at times.
I think it relates to the second question from you.
Is there any way to check if the arm is mechanically wrong?
Hi @ak-ty, thank you for the additional details. Homing efforts of [-93.5, 99.7] should move the arm, and it is odd that the arm can home from stretch_arm_home.py, but not stretch_robot_home.py until you backdrive the joint. In order to better understand the issue and check if there’s anything wrong mechanically with the arm, I would like to schedule a support call with you and a member of our hardware team. Would you please send an email to email@example.com, and we will can schedule the call there.