@C_Hoover one of the things that we have done to prevent the issue is to wrap the insertion inside of an if statement that is checking for the force to stay below a certain threshold. We use the built-in force monitoring for most of the robots as it is sufficient to prevent faults. We have one robot that actually uses the force to find the hole its trying to place the object in. It will go up and down and "hunt" for the hole based on feedback from the force sensors. If you do this you have to make sure to check the box on the if statement to check the conditions continuously.
Another thing that you can do is to place the node above inside of a force wizard and give the axes that are not being driven a little compliance, this can help the part find its own way if there is any lead-in on the leading edge. We do this a lot as well as it makes for a much cleaner insertion of the part, tool, whatever into the mating feature. The one thing I would say to remember is to lower the velocity and angle limits way down to start or you will find that the robot "flops" over.
Not sure I have ever needed to measure the exact amount the robot is off after a fault to know if we have seen this issue or not.
@C_Hoover here is the link to the URScript 3.3 manual, assuming you are running a 3.3 version software. You can find all the manuals, drawings, software updates at the Universal Robots Support page. There are some how-to's and FAQ's out there as well. The how-to's are not always as clear and complete as they should be. The best advice I can give about URScript is to just dive in. The great thing is you can write your own functions so that programming can be easier. For instance, most of our installs we use pneumatics for something. SO with a gripper usually you will want a delay anytime you open or close it to give it a chance to perform the action. You would normally have to write something like:
With URScript though you can write a simple function like this:
So that you can now write your program like this:
This is a very simple case of how to use the script functionality. We have a standard library of our own functions that we deploy with each of the robots. It allows us to simply call the things that we do a lot on each of the robots and not have to recreate the wheel each and every time.
I highly recommend playing around on the UR support site. The great thing is you have a simulator that you can put on your desktop that matches exactly to the robot. We will write a bunch of code on the laptop and then simply transfer it to the robot. Its easier to type out complex stuff that way. One of the gripes I have with the UR touch pendant is there is no way in Polyscope to define and external keyboard as anything other than Danish....makes it hard to type on one when you have to remember that " is shift 2 and that none of the other symbols line up either.
I'm currently having the issue where during our application of putting threaded inserts into holes in a box with a UR 5 if the force becomes too great for the robot it faults out and can't return to the previously programmed points. It gets close but is still off enough (~1mm) to throw off the insertion. Has anyone dealt with this or know of any way to fix it?