Worldzone Rotate 45 Degrees

  • My application has a robot rotated -45 degrees in relation to the cell. In order to get the WorldZones to line up, I changed the base frame Q1 to 0.92388 and Q4 to -0.38268.


    My understanding is that this will change the world co-ordinate system by 45 degrees so I can make the WorldZones line up with the cell.


    Is this the correct way to do this?


    Second, I'm having issues moving Axis 1 past 180 digress with the new world co-ordinate system. I've adjusted ROB1_1 upper joint bound to 3.927 (225 degrees), but it still gives an out of range error when I hit 180 degrees (I have restarted the controller). Is there another setting I need to change?

  • You should be able to use the PoseMult function to do this for you.


    For the Axis 1 error, you may need to use CONFJJOFF and CONFJ\ON before and after moves that cross certain quadrants. You probably want to break those moves up some, to minimize the amount of time/distance you spend with the Configuration Checking off.

  • You should be able to use the PoseMult function to do this for you.


    For the Axis 1 error, you may need to use CONFJJOFF and CONFJ\ON before and after moves that cross certain quadrants. You probably want to break those moves up some, to minimize the amount of time/distance you spend with the Configuration Checking off.

    SkyeFire, thanks for the feedback, I'll give the CONFJ a try and see if that addresses that issue.


    In regards to the PoseMult, never heard of that one before and the manual is pretty vauge… Can you explain a little on how that works? I'm sort of getting the feeling that it will shift a position, are you suggesting possibly shifting the world zone?


    Thanks again!

  • I've used PoseMult on WorkObjects before. I'm not sure about WorldZones, but any RAPID variable that uses the standard POS and ROT sub-variables should be controllable using PoseMult.


    There's also a RAPID command I can't recall offhand that converts between QQQQ and RxRyRz. Using that in combination with PoseMult should allow you to rotate any "pose" object in undestandable angles, rather than trying to do Quaternion math by hand.

  • My application has a robot rotated -45 degrees in relation to the cell. In order to get the WorldZones to line up, I changed the base frame Q1 to 0.92388 and Q4 to -0.38268.


    My understanding is that this will change the world co-ordinate system by 45 degrees so I can make the WorldZones line up with the cell.


    Is this the correct way to do this?

    Yes, is correct. Just update the orientation of the wobj0

  • The function is:


    EulerZYX


    VAR num nAngleZ;

    VAR num nAngleY;

    VAR num nAngleX;

    VAR pose obMyObject;

    ...

    nAngleZ:= EulerZYX(\Z, obMyObject.rot);

    nAngleY:= EulerZYX(\Y, obMyObject.rot);

    nAngleX:= EulerZYX(\X, obMyObject.rot);



    I've used PoseMult on WorkObjects before. I'm not sure about WorldZones, but any RAPID variable that uses the standard POS and ROT sub-variables should be controllable using PoseMult.


    There's also a RAPID command I can't recall offhand that converts between QQQQ and RxRyRz. Using that in combination with PoseMult should allow you to rotate any "pose" object in undestandable angles, rather than trying to do Quaternion math by hand.

  • Yes, is correct. Just update the orientation of the wobj0

    Thank you Rotoero,


    I'm still having an issue of jogging the robot Axis 1 past the 180 degree point though when I rotate the wobj0. Keeping in mind, I'm only doing this in Robot Studio at the moment, I haven't tried it on the actual robot yet (holiday installation).

Advertising from our partners