Axis configuration for MoveJ Offs()

Hi!
I just wonder about how an ABB robot calculates axis configuration for MoveJ commands

with Offs function inside.

For example, I have following robtarget:

CONST robtarget pMag1Fri:=[[-405.900008835915,362.670528535483,392.751064691134],[1.00858694938012E-08,0.707106787726542,-0.707106774646553,-5.67843166063653E-10],[-1,0,-2,1],[9E9,9E9,9E9,9E9,9E9,9E9]];

It's configuration is [-1,0,-2,1].

I set ConfJOn;

Then first I move robot by following command:

MoveJ pMag1Fri,v200,fine,tGrip1WObj:=woMag1;

After that I move the robot using Offs() from the same robtarget:

MoveJ Offs(pMag1Fri,0,-2000,100),v200,fine,tGrip1WObj:=woMag1;

Robot goes there without problems and it's axis configuration  in that point is [-2,-1,-1,1].

The only information the robot had is the first configuration [-1,0,-2,1], how did it decide to take another one? A lot of another configurations was possible as well so why the robot selected the [-2,-1,-1,1] but not another one?

 
Best regards,
Sergej Saibel

Comments

  • Hi Sergey
     


    MoveJ will typically use the least amount of Axis rotation to get the TCP to the target.

    With a 2000mm offset value in the Y direction the configuration for would have to change from the origional or you would see a config error on execution.

     

    You get a similar behaviour with the RelRool function as well... it seems that it chooses the least amount of axis rotation to achieve the motion when offsets or reltool are used.

     

    You can influence ths config with more robtargets along the path so none of the axis are rotated more than 90 degrees from target to target.

     

    Kind regards
    sturner2009-03-09 23:42:09
  • Hi!

    Thank you very much for your answer, it was very important to know for me!

     
    Best regards,
    Sergej Saibel
  • Jetman
    Jetman ✭✭
    Hello,
     

    I was also wondering how it works. Knowing it would take the easy way to get to a point is ok but there are some other behaviors I cannot explain.

     

    For example, you can teach a robtarget in a Workobject.

    Axis 1 is about -45 degres and in Quadran -1.

    MoveJ P1, V100, Z0, Gripper1 Wobj:=Plate;

     

    Then you redefine the workobject on the other side of axe X of the robot and you end up with Axis 1 at 45 degres and in Quadran 0.

     

    The move works perfectly but why? The robtarget never changed, only the Workobject did, how come I don't get a Config Error?  ConfJ and ConfL are by default to ON.

     

    It seems to me that RelTool, OFFs and workobjects Disable the check on the ConfData when we use them.

     

    I have seen other times when I would get the Conf Error but only on very large moves.

     

    any thoughts?

     

    Jet
    Jet,
    Janin Delorme, Ing. (P.Eng)
  • Hi,
    it feels a little bit unsafe for me, I prefer to KNOW and BE SURE about robots movements.

    Of course it's convenient to don't think about configurations and just use Offs() and RelTool().

    I hope only that robots behavior will not be changed in the next RW version.Smile

     

     
    Best regards,
    Sergej Saibel