That would be very helpful! If I get it working with Python in the meantime, I'll send you what I have.
So, one thing I did already is to wrap the MoveJ(..., blocking=False) statement in two lines that will measure the elapsed time. When I reduce the rate that I call MoveJ(..., blocking=False) at (e.g., every 50th time instead of every time), I get time elapsed measurements something like:
So, on average, 33 milliseconds.
However, when I call MoveJ(..., blocking=False) at the desired rate (in my case, 125 Hz), the numbers seem to go up quite a bit:
So, on average, 47 milliseconds.
This could be because my computer is unable to keep up...? The code I am timing is simply Fanuc_2_Pose(...) and MoveJ(..., blocking=False).
In fact, this actually seems to indicate what at least one of the problems is... At 125 Hz, this code needs to be executed in 8 ms or less in order to keep up. But, it takes more time than that.
On the flip side, if all the positions weren't queued in the robot controller, then I think it would matter less because it would simply execute the latest, latent command I give it.
You may want to time your code as well.
The next step I will try is to use RTDE instead of RoboDK to control the robot and see if that makes a difference: