DoF - a Robotiq Community
Warning sign
The Dof Community was shut down in June 2023. This is a read-only archive.
If you have questions about Robotiq products please reach our support team.

The servoj command is if you are feeding joint positions to the robot, generally from another controller even though I have used it before in some testing just to see how smooth of a motion I could get.  With that the controller is expecting a servoj every 8ms so you have to slice up the move you want to make into 8ms time slices even though according to the manual you can feed at a lower rate, you would need to specify the time you want the move to consume.  My understanding is this is what the controller is actually being fed behind the scenes, when you use a movej it just gets sliced up and actually served to the robot as a servoj.  To be honest, I have not had a need to deploy this in production even though I keep the knowledge in the back of my head in case I ever need it.

The stopj could be used anytime you want to interrupt motion.  So if you have a move inside of an if statement and that if is being monitored continuously (which turns it effectively into a while statement) for a statement to be true, as soon as that statement is false it will exit.  if you have high velocity in that statement it could cause the robot to fault out.  You would therefore use a stopj command immediately following the if statement to stop motion and prevent the fault.  We do a lot of this with the robots, we are generally monitoring the force that the robot is seeing and then getting out of that motion if the force exceeds a threshold.  This could be because we are inserting something into a hole and may not know the exact depth it needs to go and so are looking for it to bottom out, or maybe we are looking for a part such as in a unstacking or stacking operation (we tend to not use the built-in wizards but rather write our own due to being able to better control exactly what we want to happen).

One of the cooler applications I think that I have used this on is driving a tap into a part, we are actually "following" the tap by applying a little pressure, when the pressure builds up, we wait until the tap has gone in far enough to relieve that pressure then we put some more pressure on by moving the robot.  We do this by having a loop containing a bunch of "while" statements looking for the force the robot is seeing to be below a certain threshold, when it exceeds this threshold we have a small wait of like 30 or 40 milliseconds, then we loop around, if the force has dropped we will start moving the robot again.  The moves in this instance are around 1 mm in distance so when you see it in action it is very smooth, you wouldn't know the robot is starting and stopping motion unless you saw the program.

There is some more information around the stopj in
this thread as well.

Hope this helps clarify some of the use of these functions.