TCP change safety limit violation

Dear,

I’m using a UR10 CB3. I have a program that uses a TCP (call it TCP A). It performs certain moves which all work fine, up until the tool cabling would cause a robot crash, e.g. the tool runs into the robot arm. To remedy this, I stop my robot move when being close to this point and then have the robot switch to a different configuration (call this TCP B). Most of the time this works fine and the robot switches nicely between the 2 TCP’s.

However,

Sometimes the robot tries to change from TCP A to TCP B, by suddenly rotating wrist 3 (6th motor from base) in the wrong direction, causing a tool crash into the robot. How can we force the robot to rotate in a given direction when switching between TCP’s?

We tried to set safety limits on wrist 3, hoping the robot would “get” the fact that his auto change move between two TCP’s would cause a safety limit violation so it would turn wrist 3 around in the other direction… Alas… it’s not ment to be :frowning:

How can we force proper changeover between TCP’s? Or do we have to “fiddle” with all kinds of extra waypoints? Is it, because the robot takes “the shortest path” between two TCP’s?

Any help appreciated

Regards,

Max