# Lift joint is not working

**URL:** <https://forum.hello-robot.com/t/lift-joint-is-not-working/548>\
**Category:** Ask\
**Created:** [December 14, 2022, 10:49am UTC](https://forum.hello-robot.com/t/lift-joint-is-not-working/548 "2022-12-14T10:49:31Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![mnishiura](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/mnishiura/32/332_2.png) [@mnishiura](https://forum.hello-robot.com/u/mnishiura)\
**Post date:** [December 14, 2022, 10:49am UTC](https://forum.hello-robot.com/t/lift-joint-is-not-working/548/1 "2022-12-14T10:49:31Z")

</div>

Hi ! Thank you for making cool robot.  
I need help to make this cool robot run again.

[Situation]  
Lift joint is not working. It seems servo is not turned on.

[What I have tried 1]  
The output of “stretch\_robot\_system\_check” is below.

```auto
For use with S T R E T C H (R) RESEARCH EDITION from Hello Robot Inc.
---------------------------------------------------------------------

^
---- Checking Devices ----
[Pass] : hello-wacc
[Pass] : hello-motor-left-wheel
[Pass] : hello-pimu
[Pass] : hello-lrf
[Pass] : hello-dynamixel-head
[Pass] : hello-dynamixel-wrist
[Pass] : hello-motor-arm
[Pass] : hello-motor-right-wheel
[Pass] : hello-motor-lift
[Pass] : hello-respeaker

---- Checking Pimu ----
[Pass] Voltage = 13.14063549041748
[Pass] Current = 3.2714260851635655
[Pass] Temperature = 32.25264289440253
[Pass] Cliff-0 = -10.34271240234375
[Pass] Cliff-1 = 1.0858154296875
[Fail] Cliff-2 = 114.51666259765625 out of range -50 to 20
[Pass] Cliff-3 = -1.584228515625
[Fail] IMU AZ = -9.138444900512695 out of range -10.1 to -9.5
[Pass] IMU Pitch = -3.2207500934600826
[Pass] IMU Roll = 1.6123046875

---- Checking EndOfArm ----
[Pass] Ping of: stretch_gripper
[Pass] Calibrated: stretch_gripper

[Pass] Ping of: wrist_yaw
[Pass] Calibrated: wrist_yaw

---- Checking Head ----
[Pass] Ping of: head_pan

[Pass] Ping of: head_tilt

---- Checking Wacc ----
[Pass] AX = 9.471487045288086

---- Checking hello-motor-left-wheel ----
[Pass] Position = 13.85896110534668

---- Checking hello-motor-right-wheel ----
[Pass] Position = 13.032722473144531

---- Checking hello-motor-arm ----
[Pass] Position = 0.0
[Pass] Position Calibrated = True

---- Checking hello-motor-lift ----
[Pass] Position = 135.08255004882812
[Pass] Position Calibrated = True

---- Checking for Intel D435i ----
Bus 002 Device 002: ID 8086:0b3a Intel Corp. 
[Pass] : Device found

```

[What I have tried 2]  
After killing stretch\_xbox\* process, executing stretch\_xbox\_controller\_teleop leads to moving all joints except for lift joint.

Thank you for your support.

---

<div class="post-metadata">

**Author:** ![Mohamed\_Fazil](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/mohamed_fazil/32/261_2.png) [@Mohamed\_Fazil](https://forum.hello-robot.com/u/Mohamed_Fazil)\
**Post date:** [December 14, 2022, 7:59pm UTC](https://forum.hello-robot.com/t/lift-joint-is-not-working/548/2 "2022-12-14T19:59:00Z")

</div>

Hey @mnishiura, We are glad you are using the Stretch robot. Also we are sorry you are experiencing an issue with the Lift joint. Would you mind giving us more information using some debug steps I have mentioned below.

- Try homing the lift joint using cmd: `stretch_lift_home.py` . What happens? and can you send the output.
- Try jogging the lift joint using cmd: `stretch_lift_jog.py`. This cmd ideally should allow you to move the lift up/down by pressing the U/D keys. But this cmd will also output the Lift stepper motor’s status data that is useful for debugging. Can you also send the output of this step.

Best,  
Mohamed Fazil

---

<div class="post-metadata">

**Author:** ![mnishiura](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/mnishiura/32/332_2.png) [@mnishiura](https://forum.hello-robot.com/u/mnishiura)\
**Post date:** [December 16, 2022, 12:47pm UTC](https://forum.hello-robot.com/t/lift-joint-is-not-working/548/4 "2022-12-16T12:47:38Z")

</div>

Hi @Mohamed_Fazil ! Thank you so much for your quick response.

1.Result of using stretch\_lift\_home.py  
Looks like Lift joint doesn’t move at all.  
Output is below.

```auto
For use with S T R E T C H (R) RESEARCH EDITION from Hello Robot Inc.
---------------------------------------------------------------------

Homing lift...
Upward contact detected at motor position (rad) 114.06511688232422 1.089241631170602
Marking lift position to (m) 1.0992366660080726

```

2.Result of using stretch\_lift\_home.py  
Lift joint doesn’t move in both direction.  
Output when sending U cmd.

```auto
----- Lift ------ 
Pos (m): 1.099194983533576
Vel (m/s): 9.683512257303704e-05
Force (N): -0.00028946820427311337
Soft motion limits (m) [0.0, 1.0992366660080726]
Timestamp PC (s): 1671194758.1762912
-----------
Mode MODE_SAFETY
x_des (rad) 0 (deg) 0.0
v_des (rad) 12 (deg) 687.5493541569879
a_des (rad) 15 (deg) 859.4366926962349
Stiffness 1
Feedforward 0
Pos (rad) 115.10742950439453 (deg) 6595.169901201456
Vel (rad/s) 0.010140550322830677 (deg) 0.5810107354382222
Effort 41.72697448730469
Current (A) 0.5399961404239431
Error (deg) 0.0
Debug 0.0
Guarded Events: 13
Diag 00000000000000000000000100000101
       Position Calibrated: True
       Runstop on: False
       Near Pos Setpoint: True
       Near Vel Setpoint: False
       Is Moving: False
       Is Moving Filtered: 0
       At Current Limit: False
       Is MG Accelerating: False
       Is MG Moving: False
       Encoder Calibration in Flash: True
       In Guarded Event: False
       In Safety Event: False
       Waiting on Sync: False
Waypoint Trajectory
       State: idle
       Setpoint: (rad) 0.0 | (deg) 0.0
       Segment ID: 0
Timestamp (s) 1671194758.1617513
Read error 0
Board variant: Stepper.0
Firmware version: Stepper.v0.2.0p1

```

Output when sending D cmd.

```auto
----- Lift ------ 
Pos (m): 1.0991983348797287
Vel (m/s): -0.000771095913895882
Force (N): 0.0002955268411070078
Soft motion limits (m) [0.0, 1.0992366660080726]
Timestamp PC (s): 1671193980.6438053
-----------
Mode MODE_SAFETY
x_des (rad) 31.41592653589793 (deg) 1800.0
v_des (rad) 9.948376736367681 (deg) 570.0000000000001
a_des (rad) 15.707963267948966 (deg) 900.0
Stiffness 1.0
Feedforward 0.54
Pos (rad) 115.10778045654297 (deg) 6595.190009278373
Vel (rad/s) -0.08074897527694702 (deg) -4.626575483375293
Effort 41.727577209472656
Current (A) 0.5400039403578815
Error (deg) 0.049804688885941695
Debug 0.0
Guarded Events: 11
Diag 00000000000000000000001100000101
       Position Calibrated: True
       Runstop on: False
       Near Pos Setpoint: True
       Near Vel Setpoint: False
       Is Moving: False
       Is Moving Filtered: 0
       At Current Limit: False
       Is MG Accelerating: False
       Is MG Moving: False
       Encoder Calibration in Flash: True
       In Guarded Event: True
       In Safety Event: False
       Waiting on Sync: False
Waypoint Trajectory
       State: idle
       Setpoint: (rad) 0.0 | (deg) 0.0
       Segment ID: 0
Timestamp (s) 1671193980.6770027
Read error 0
Board variant: Stepper.0
Firmware version: Stepper.v0.2.0p1

```

Thanks for your support.

Best,  
Manabu

---

<div class="post-metadata">

**Author:** ![Mohamed\_Fazil](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/mohamed_fazil/32/261_2.png) [@Mohamed\_Fazil](https://forum.hello-robot.com/u/Mohamed_Fazil)\
**Post date:** [December 17, 2022, 1:32am UTC](https://forum.hello-robot.com/t/lift-joint-is-not-working/548/5 "2022-12-17T01:32:44Z")

</div>

Hey @mnishiura , thank you for sending the outputs.  
Looking at your outputs, during the stretch\_lift\_home.py command, an upward contact has been detected even without movement, and your lift motor status looks normal.  
Therefore I guess there is an issue with the contact models sensitivity setting for your lift stepper motor, which might be preventing you from moving the lift.

Could you give us more information using some steps I have mentioned below before we can dive in to debug the sensivity?

- Your robot serial number? It is printed on the trunk
- When the robot is powered off, backdrive the Lift to the Top and then the Bottom. Is there any part of the Lift’s range where it gets tighter/harder due to some sort of friction?
- What is the output of the following cmd: `pip3 list | grep hello`
- What is the output of the following cmd: `stretch_params.py | grep effort_pct | grep lift` ?

---

<div class="post-metadata">

**Author:** ![mnishiura](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/mnishiura/32/332_2.png) [@mnishiura](https://forum.hello-robot.com/u/mnishiura)\
**Post date:** [December 19, 2022, 9:34am UTC](https://forum.hello-robot.com/t/lift-joint-is-not-working/548/6 "2022-12-19T09:34:09Z")

</div>

Hi, @Mohamed_Fazil . Thanks for your suggesttion.

1. Serial Number is `stretch.re1.1100`
2. There are some part where some sort of friction occurs when moving arm from bottom to top and from top to bottom.  
I attach video link. [https://youtube.com/shorts/jptzbTlMqMI](https://youtube.com/shorts/jptzbTlMqMI)
3. The output is following.

```auto
hello-robot-stretch-body 0.3.4
hello-robot-stretch-body-tools 0.3.1
hello-robot-stretch-body-tools-py3 0.0.8
hello-robot-stretch-factory 0.2.7
hello-robot-stretch-tool-share 0.2.1

```

1. Executing `stretch_params.py | grep effort_pct` gives nothing. So the output when executing `stretch_params.py | grep effort`is following.

```auto
stretch_body.robot_params.nominal_params param.head_pan.stall_max_effort 20.0                          
stretch_body.robot_params.nominal_params param.head_tilt.stall_max_effort 20.0                          
stretch_body.robot_params.nominal_params param.hello-motor-arm.gains.effort_LPF 10.0                          
stretch_body.robot_params.nominal_params param.hello-motor-arm.gains.flip_effort_polarity 0                             
stretch_body.robot_params.nominal_params param.hello-motor-left-wheel.gains.effort_LPF 2.0                           
stretch_body.robot_params.nominal_params param.hello-motor-left-wheel.gains.flip_effort_polarity 1                             
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.effort_LPF 2.0                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.flip_effort_polarity 1                             
stretch_body.robot_params.nominal_params param.hello-motor-right-wheel.gains.effort_LPF 2.0                           
stretch_body.robot_params.nominal_params param.hello-motor-right-wheel.gains.flip_effort_polarity 0                             
stretch_body.robot_params.nominal_params param.stretch_gripper.stall_max_effort 20.0                          
stretch_body.robot_params.nominal_params param.wrist_yaw.stall_max_effort 20.0

```

And the output when executing `stretch_params.py | grep lift` is following.

```auto
stretch_body.robot_params.nominal_params param.base.sentry_max_velocity.max_lift_height_m 0.3                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.effort_LPF 2.0                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.enable_guarded_mode 1                             
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.enable_runstop 1                             
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.enable_sync_mode 1                             
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.flip_effort_polarity 1                             
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.flip_encoder_polarity 1                             
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.iMax_neg -3.2                          
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.iMax_pos 3.2                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.i_contact_neg -1.5                          
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.i_contact_pos 2.0                           
stretch_configuration_params.yaml param.hello-motor-lift.gains.i_safety_feedforward 0.54                          
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.pKd_d 20.0                          
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.pKi_d 0.05                          
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.pKi_limit 100.0                         
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.pKp_d 10.0                          
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.pLPF 60                            
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.phase_advance_d 1.8                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.pos_near_setpoint_d 0.5                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.safety_hold 1                             
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.safety_stiffness 0.0                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.vKd_d 0                             
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.vKi_d 0.005                         
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.vKi_limit 200                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.vKp_d 0.2                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.vLPF 30                            
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.vTe_d 50                            
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.vel_near_setpoint_d 3.5                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.gains.vel_status_LPF 10.0                          
stretch_body.robot_params.nominal_params param.hello-motor-lift.holding_torque 1.9                           
stretch_body.robot_params.nominal_params param.hello-motor-lift.motion.accel 15                            
stretch_body.robot_params.nominal_params param.hello-motor-lift.motion.vel 12                            
stretch_body.robot_params.nominal_params param.hello-motor-lift.rated_current 2.8                           
stretch_configuration_params.yaml param.hello-motor-lift.serial_no CE4FBC8A50574C52362E3120FF170221
stretch_body.robot_params.nominal_params param.lift.belt_pitch_m 0.005                         
stretch_body.robot_params.nominal_params param.lift.force_N_per_A 75.0                          
stretch_body.robot_params.nominal_params param.lift.motion.default.accel_m 0.15                          
stretch_body.robot_params.nominal_params param.lift.motion.default.vel_m 0.095                         
stretch_body.robot_params.nominal_params param.lift.motion.fast.accel_m 0.2                           
stretch_body.robot_params.nominal_params param.lift.motion.fast.vel_m 0.12                          
stretch_body.robot_params.nominal_params param.lift.motion.max.accel_m 0.3                           
stretch_body.robot_params.nominal_params param.lift.motion.max.vel_m 0.15                          
stretch_body.robot_params.nominal_params param.lift.motion.slow.accel_m 0.05                          
stretch_body.robot_params.nominal_params param.lift.motion.slow.vel_m 0.05                          
stretch_body.robot_params.nominal_params param.lift.motion.trajectory_max.vel_m 0.2                           
stretch_body.robot_params.nominal_params param.lift.motion.trajectory_max.accel_m 0.3                           
stretch_body.robot_params.nominal_params param.lift.pinion_t 12                            
stretch_configuration_params.yaml param.lift.contact_thresh_N [-64.3703682899475, 67.74031286800607]
stretch_configuration_params.yaml param.lift.contact_thresh_max_N [-100, 100]                   
stretch_configuration_params.yaml param.lift.homing_force_N [-70, 70]                     
stretch_configuration_params.yaml param.lift.i_feedforward 0.54                          
stretch_configuration_params.yaml param.lift.range_m [0.0, 1.0992366660080726]     
stretch_body.robot_params.nominal_params param.robot.stow.lift 0.2

```

Thank you so much for your help.

---

<div class="post-metadata">

**Author:** ![Mohamed\_Fazil](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/mohamed_fazil/32/261_2.png) [@Mohamed\_Fazil](https://forum.hello-robot.com/u/Mohamed_Fazil)\
**Post date:** [December 19, 2022, 9:21pm UTC](https://forum.hello-robot.com/t/lift-joint-is-not-working/548/7 "2022-12-19T21:21:16Z")

</div>

Hey @mnishiura; thank you for sending the detailed results and outputs. It does seem like, over time, the Lift’s mechanism has accumulated some friction in certain places. This might be preventing the Lift from moving as it is taking more force than the defined `contact_thresh_N` parameter making the Lift system think it is in contact. But we can try to solve this issue by increasing these contact threshold parameters for the Lift.   
  
Start by running the following command to identify the current settings for these parameters:

```auto
stretch_params.py | grep lift | grep contact_thresh_N | grep homing_force_N

```

The above command should give out the current settings of the Lift’s `contact_thresh_N` and `homing_force_N` parameters used during homing and moving the joint, respectively.  
For example, if one of the parameters returns `[-70, 70]`, then -70 is the homing effort moving down, and 70 is the homing effort moving up.  
Next, modify the _“stretch\_re1\_user\_params.yaml”_ file in _“~/stretch\_user/stretch-rex-xxxx”_ folder to include the following at the end of the file:

```auto
lift:
  contact_thresh_N:
  - <effort threshold moving in while homing>
  - <effort threshold moving out while homing>
  contact_thresh_max_N:
  - <effort threshold moving>
  - <effort threshold moving>

```

Replace the \<\> parts with the corresponding values grepped from `stretch_params.py` and increase the magnitude of the values by 10 units until the Lift can reliably home against the end-stop with cmd `stretch_lift_home.py` and jogged with cmd `stretch_lift_jog.py`.  
Let us know how this goes and happy to assist further.

---

<div class="post-metadata">

**Author:** ![mnishiura](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/mnishiura/32/332_2.png) [@mnishiura](https://forum.hello-robot.com/u/mnishiura)\
**Post date:** [December 20, 2022, 12:13pm UTC](https://forum.hello-robot.com/t/lift-joint-is-not-working/548/8 "2022-12-20T12:13:58Z")

</div>

Hi @Mohamed_Fazil . Thank you for your support.  
As you suggested, I get parameters of `contact_thresh_N` , `contact_thresh_max_N` and `homing_force_N` and changed these parameters using `stretch_re1_user_params.yaml` file. I increased `contact_thresh_N` to [-300, 300] and `homing_force_N` [-100, 100] and tried `stretch_lift_jog`, but the lift joint did not move at all. And the `stretch_lift_home.py` outputs following.

```auto
For use with S T R E T C H (R) RESEARCH EDITION from Hello Robot Inc.
---------------------------------------------------------------------

Homing lift...
Upward contact detected at motor position (rad) 115.1117935180664 1.0992366567944318
Marking lift position to (m) 1.0992366660080726

```

Thanks.

---

<div class="post-metadata">

**Author:** ![mnishiura](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/mnishiura/32/332_2.png) [@mnishiura](https://forum.hello-robot.com/u/mnishiura)\
**Post date:** [December 20, 2022, 12:38pm UTC](https://forum.hello-robot.com/t/lift-joint-is-not-working/548/9 "2022-12-20T12:38:58Z")

</div>

I also increased contact\_threshold\_N to 400 and tried “stretch\_lift\_home.py”.  
The “upward contact detected” message disappears, but the lift joint did not move in “homing\_force\_N” [-500, 500]. So there should be huge friction or internal issue.

Thanks.

---

<div class="post-metadata">

**Author:** ![Mohamed\_Fazil](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/mohamed_fazil/32/261_2.png) [@Mohamed\_Fazil](https://forum.hello-robot.com/u/Mohamed_Fazil)\
**Post date:** [December 20, 2022, 7:54pm UTC](https://forum.hello-robot.com/t/lift-joint-is-not-working/548/10 "2022-12-20T19:54:03Z")

</div>

Hey @mnishiura, Thank you for performing the above-mentioned debug method. I think the numbers you have mentioned are more enormous than I expected. I think it would be better to get into a support call to debug this issue. Please email us at [support@hello-robot.com](mailto:support@hello-robot.com), and we can schedule a support call to get your robot running again.

Best,  
Mohamed Fazil
