RobotStudio event

User and Object Frame

Options
Hello!
 

I am programming for some time in RobotStudio already(Current version is 5.10) and meanwhile I was asking myself, why is it necessary actually to differ the object and user frame, I kept on reading the definitions in the manual, but I did not understand it. I can define a object frame also in world coordinates. I know that object coordinate sysetm is attached to user CS and user CS is attached to world. Why couldn't I attach the object directly to world without the middle step(User frame)??

 

I would be very thankful for your answer.

Best regards

Viktor

Comments

  • Short answer: Because that's the way it works in RAPID! Smile

    regards,
    Johannes

    Johannes Weiman
    Software Engineer
    ABB Robotics
  • j_proulx
    Options
    Hello Viktor,
     

    A workobject's User frame is referenced from the world coordinate sytem. The Object frame is referenced from the User Frame coordinate system.

    image

    This comes in handy when you want displace movements in the User coordinate system. It is used in palletizing for layer control. You teach the User frame of your workobject at a top corner of the pallet. To go to the next layer you put the value of the height of the next layer in the trans.z value for the Object frame. You use the the same movement routine that was used on the first layer to move to the new layer positions.

     

    Another example is a table with 2 fixtures. You only need to program 1 fixture that has a User Frame and Object frame defined. By changing the values in the Object frame you can execute the same routine at the other fixture. If for some reason the entire table moves, all you have to do is re-teach your User frame to have your positions in the correct place.

     

    Another example is vision. You can teach a model using a User frame. To offset the x,yand angle you could put those values into the object frame to move the robot's positions.

     

    Hope this helps. The Rapid Overview Manual (3HAC16580-1_revG) has a good explaination.

     

    BR Jim Proulx
  • Thomas J
    Options
    Hello -
     

    Another reason I have found very helpful, (Once you understand completely the relationship between world, user and object frames) is fine tuning the workobject.

     

    Once a work object is "roughed in" you can fine tune it using the Object Frame.

     

    Once your tuning is complete, you can combine the object frame tuning offsets into the user frame, that will allow you to zero out the object frame for dynamic use in your RAPID program - I use it extensively in palletizing programs...

     

    1: Teach your workobject using the 3-point method in the user frame

    2: fine tune it in the object frame

    3: combine the object frame offsets into the user frame, and zero the object frame

     

    Example RAPID Code for combining/zero object frame:

     

        woMyWobj.uframe:=PoseMult(woMyWobj.uframe,woMyWobj.oframe);
        woMyWobj.oframe:=[[0,0,0],[1,0,0,0]];

     

    Depending on the orientation of the userframe, it is much easier and more intuitive to tune in the object frame (because it is in reference to the user frame) than it would be to tune in the userframe (because it is in reference to the BASE or WORLD frame).

     

    Hope this helps...
    Thomas H. Johnston
    PACs Application Engineer
  • Henrik Berlin
    Options
    Hi,
     

    You also need it when working with positioners when the workobject user frame is attached to the baseframe of the positioner (user frame moved by <MECH UNIT>). The user frame will then coinicide with the base frame of the positioner (usually the center of the rotating disc). The object frame is then needed to use as a more natural reference of the robtargets of your path, such as a corner, or a reference hole of your workpiece. Similarly for conveyor tracking.

     
    Henrik Berlin
    ABB