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.