MoveL slow through corners

I’m using RoboDK to generate a script to have a UR5 follow the outline of a box. When the script is generated, it consists of a single MoveJ command and a series of MoveL commands.

Then I tried it on the robot, I noticed that the UR5 slowed down significantly when it went traced around a corner and sped up for the straight lines. When its going around the corners it doesn’t appear to be moving at its maximum speed and the speed changes depending on my settings, but is always slower that moving in a straight line.

I was wondering what I could do to have the robot continuing to move at a steady speed when going around the corners?

Some extra Information:

  • The corners are made out of 4 MoveL’s

  • All the move commands have a blend radius of 0.001

  • All the move commands have the same speed and acceleration. Only the position/orientation changes

  • The orientation of the end effecter is kept relative to the path, so there are some large swinging motions around corners, but I don’t hear any large noises from the motors and its still slower than when the robot moves in a straight line

MoveL moves linearly in Cartesian space.
It does not promise constant speed, therefore it will slow down through corners, even though there is a blend radius - especially when the radius is almost non-existent.

MoveP moves linealy in Cartesian space with a constant TCP speed.
This might do a better job for you, as this will try to maintain constant speed.

But also keep physics in mind.
If the robot is moving with a speed in positive X direction [vx, 0, 0, 0, 0, 0], and you come to a 90 degree corner, where the robot momentarily have to change this speed vector to e.g. positive Y [0, vy, 0, 0, 0, 0], then the robot is required to have an infinite deceleration in X, and an infinite acceleration in Y.
And the robot simply does not have infinite acceleration capabilities.
So we need a bit of blend radius to move smoothly around the corner.
Maybe 0,001 [meter?] = 1 mm is a bit on the low end - by increasing the blend slightly you may get smoother results.

I gave MoveP a go and there were some problems with the robots position while trying to trace the box that I couldn’t resolve. I also tried increasing the blend and it doesn’t seem to change much.

What if I did the MoveL but put a time restriction on each movement (which I could figure out ahead of time) would it be able to work?
I’ve currently set the UR5 to move at 50mm/s and accelerate at 50mm/s^2 (originally 5mm/s for velocity, but testing it was too slow) so I should have some extra wiggle space there.

Hi @stefanhe99, this is more of a general UR robot programming question than one pertaining to URCap development. Have you explored the possibility of getting some hands on advanced training from the UR partner that you purchased the robot from? The majority of partners are capable of providing high quality training using our standard curriculum that could potentially answer many of your outstanding questions.

1 Like