UR3 wrist 3 ignores Use Joint Angles?

Hi All,

We have a UR3e which we’ve set up with dual air grippers, which means we want to be able to quickly and accurately switch between the two TPCs, an also have to limit the wrist 3 travel to avoid wrapping the air line.
I have it set to the default of +/- 363 degrees, and have unchecked the “Unrestricted range for Wrist 3” checkbox. This does work for keeping the wrist from wrapping up the air line, but I’m struggling to keep the wrist from overtravelling to either end of that +/- 363 degree limit.

I’ve checked the “Use Joint Angles” box in the appropriate MoveJ commands, but it seems to ignore it, and still just takes the shortest path to the point.
I inserted some relative moves to rotate the wrist away from the limits and got it working.
After that, I checked the “blend radius” box in a handful of moves and it blew up again. A couple other minor adjustments and all of a sudden the relative moves started blowing up also - either going the wrong direction or throwing error messages.

What’s working for now is replacing the relative moves with a script function which gets the current joint position, changes the wrist 3 value, then moves to that position. One drawback to that approach are that it’s a separate move rather than incorporating that rotation as part of the translational moves - this application will be time constrained, so this doesn’t help.
Also, I expect this could still be unstable if the robot needs to work outside of the current space envelope.

Any thoughts on how to deal with this floating-zero-point joint? Could it be configured with a hard zero point like the other robots?

Looks like we’ve figured this out and it might be a helpful tidbit for others:

In discussions with one of the UR engineers, it was pointed out that the “use joint angles” option works differently on positions created as Point Features in the Installation vs. positions defined in Waypoint nodes.

WayPoint nodes seem to work as expected. Point Features, not always.

Before knowing this, I got around the issue by defining a position variable within the program using joint angles.

Both the point feature and waypoint store the actual joint angles (plus other info which is different), so I can’t see why they couldn’t be made to behave the same way.

I wonder whether this behavior difference is intentional or just an oversight.