RobotExMachina / Machina.NET

A library for real-time robot control.
MIT License
86 stars 33 forks source link

UR: Motion doesn't interpolate on targets with same TCP position but different orientation. #7

Closed garciadelcastillo closed 6 years ago

garciadelcastillo commented 6 years ago

For UR robots, when Precision is not 0 or using internally the movep instruction, the robot won't perform motion for targets with the same TCP position but different orientation. Problem found on SW 3.0.

This works:

SpeedTo(50);
PrecisionTo(0);
TransformTo(600, 100, 500, -1, 0, 0, 0, 1, 0);
Rotate(0, 1, 0, -90);
Move(0, 200, 0);
Move(0, 0, 200);
Rotate(0, 1, 0, 90);
Move(0, -200, 0);
Move(0, 0, -200);
AxesTo(0, -90, -90, -90, 90, 90);

This doesn't:

SpeedTo(50);
PrecisionTo(10);
TransformTo(600, 100, 500, -1, 0, 0, 0, 1, 0);
Rotate(0, 1, 0, -90);
Move(0, 200, 0);
Move(0, 0, 200);
Rotate(0, 1, 0, 90);
Move(0, -200, 0);
Move(0, 0, -200);
AxesTo(0, -90, -90, -90, 90, 90);

It doesn't work even if a tool with a Z offset is defined either.

garciadelcastillo commented 6 years ago

Need to figure out if this is a problem due to old firmware (feels like this non-blending behavior is weird) or this is just how URs work, and figure out a work around...

garciadelcastillo commented 6 years ago

Looks like the issue is with UR SW3.0. Chris Chekan ran these programs on 3.4 and worked great...