Problem to move robot by external command via socket

Hi everyone,
I'm working on IRB 14000 Yumi robot but I'm having some problems.
I’m trying to write a RAPID program which connects to an external system via Socket, from which will be sent the commands to move a Yumi arm.
The creation of the connection via socket works, the sending of the current positions of the arm to the external system works, but when I receive the positions, the robot carries them out late.
I mean that I define some positions in which I want the robot to move from the external system, but once I send them, the robot takes a lot of time to carry out the movement (40 seconds more or less).
In order to move the arm in the joints I use the MoveAbsJ function in a cycle.
It seems that the MoveAbsJ buffers the positions and so, being a cycle in my case, it puts in queue the movements that have not been carried out yet. I don’t know if that’s correct, it’s only an hypothesis.
Does anybody has any suggestion for me concerning how could I make the system more reactive?


Best Answer

  • xerim
    Answer ✓
    The Technical Reference Manual on MoveAbsJ:

     If the programmed velocity for reorientation or for the external axes cannot be attained, the velocity of the TCP will be reduced.

    Try creating your own speeddata for the MoveAbsJ instructions, I think what is holding you back is v_ori speed. You could also try creating larger zone sizes if you can, or change the zone size for reorientation (see zonedata). This problem can also occur with large payloads, or incorrectly defined payloads.