@Hennie I have run into this problem in a more general way. If you have a loop with some robot movement (speed, force, or waypoints) and that loop has a constantly monitored exit condition (or just a short loop time) you will see this error after surpassing a certain speed.
Basically what happens is that the robot will still physically be in motion after the loop exits, and depending on the next command the joints will have no movement parameters from the controller and will try to immediately stop. This causes either the error you are seeing (sudden stop) or another error that says "invalid set point."
There are two ways around this: Slow the movement down if acceptable, or add a "stopl(a)" command right after the loop. stopl(a) [or stopj(a)] is a command that sends a command to decelerate the robot at value "a." stopl() is for linear stop, and stopj() is for decelerating in joint space, and units will be m/s/s or rad/s/s respectively. The stop command will still only work up to a certain limit though, and requires some trial and error.
@Grady_Turner @Hennie
I think Grady is right. Another possibility is that if the increment is too high, the robot will check for the force level between each motion only and therefore a high force can be induced if the the contact is with a rigid object. This high force may cause a "sudden stop".
Another way of implementing this would be the following:
- Insert a "if" with the option "expression checked continuously" select. The condition could be, for example, "if Fz >= -10".
- Inside the "if", place a relative move, for example a 10cm downward motion
- Make sure you have a "set zero" before the motion (or before the "if"), when there is no contact with the tool.
This will make sure that the robot moves until the force meets a certain threshold (in this case 10N upwards). You will need to increase the speed gradually as a high speed will make the real force exceed the threshold (the robot needs time to stop).
This alternative method works well when you need to move until a certain force is reached, but is not meant to control a force continuously.
We have sold some torque force sensors recently and the client experimented with the RobotIQ – Demo_Force_twist_release program. He found that the force feedback works great and the program performs well.
He did have a problem with the speed though: Whenever he increased the (Speed_inc) variable for axis 6 only (or wrist 3 in the UR world) to greater than 0.33 the robot would trip with error
C204A3: Sudden stop detected
Now we are guessing that we are breaking one of the speed or acceleration rules, we would just like some clarity on the meaning of the value 0.33 and if there was anything else ( within the demo program) that we could do to increase the speed of that motion.
Thanks Hennie