Environment
Software 3.15.0 (Mar 10 2021)
Robot : UR5 (CB Series)
This problem is reproduced both on the real robot and on the simulator(VM).
Program and installation
urp.zip (7.8 KB)
As you can see in the following topic,
I do not use an encoder, but instead increment the counter myself for conveyor tracking.
Program
BeforeStart
encoder_enable_set_tick_count(0,4)
seq≔0
cnt_per_meter≔10000
conv_cnt≔0
conv_speed≔40
conv_direction≔pose_sub(pose_trans(conv, p[1,0,0,0,0,0]), conv)
tick_interval≔1 / (cnt_per_meter / 1000 * conv_speed)
Robot Program
MoveJ
prep
track_conveyor_linear(conv_direction,cnt_per_meter)
MoveL
place_approach
place_up
place_down
Wait: 3.0
place_up
place_approach
stop_conveyor_tracking()
Thread_1
conv_cnt≔conv_cnt + 1
encoder_set_tick_count(0, conv_cnt)
sleep(tick_interval)
When stop_conveyor_tracking is executed,
the tcp speed in the conveyor direction suddenly becomes zero and the robot vibrates.
When I monitored the tcp position and velocity of the robot running the above program with RTDE
It is obvious that the tcp speed in the Y-axis direction changes from 40 to 0 in one control cycle (8msec).
(the Y-axis direction of the base coordinate system coincides with the direction of the conveyor)
Is there any way to avoid sudden deceleration at the end of tracking?
To avoid vibration of the robot, I want to gradually decelerate the robot in multiple control cycles.