Work object change on real controller

hello guys

In RobotStudio I am able to create my own work object and make it an origin such that if I am to give coordinates to the robot it will move with reference to the created work object as origin and not the base of robot. I therefore transferred the program to real controller.

However, on the real controller, I define my work object and I change the values of the origin to (0,0,0) but when I give coordinates to the robot, it still uses base coordinate system of the robot as the origin and not my created work object.

I would like to ask how best I can be able to use a created work object as my origin and change the coordinates to (0,0,0)? Is it possible on the real controller and what could I be doing wrong. 

Thanks in advance for your help.


  • A workobject that has no offset (0,0,0) is located at the base of the robot.

    If your move instruction contains the optional argument \wobj:=YourWorkobjectName then it will use the workobject as the reference frame.

    Why are you changing the workobject offset values back to zero after defining it?

  • @graemepaulin
    I was changing the values because I wanted the workobject that I created to have (0,0,0) as origin so that when I send coordinates from MATLAB as (400,200,100), the robot will move 400mm, 200mm and 100mm in the X, Y and Z respectively from that workobject origin.

    Can that be possible?

  • Sending the Robtarget x,y,z (or the offset using offs argument in the move command) is the correct way to do this.

    The workobject offset does not need to be zero for this to work (though it can be), the robtarget in your example above will be 400 in x, 200, in Y, and 100 in Z from the workobject frame where ever that has been defined.

    Does this make sense to you?

  • Yes I get the sense. Thank you so much, i will try that and give you feedback. From the way you explained it means there is no need for zeroing the workobject origin but if I send a command (400, 200, 100) to the robot, it will just move those distances from the defined workobject even without changing its values. And I may need to use Offs command in place of move command, right...?

    Just confirming if I got you right.

    I will definitely try that.

  • There are 2 components on the workobject, the user frame and the object frame.
    The user frame (uframe) is used to define the plane, this is the point of origin of your coordinate system.

    If you want to displace all your points by an offset then you can use the offset instruction or you can edit the object frame (oframe) that is inside your workobject. If you do that, that offset will be added to your uframe.

    Check the manual and search for the workobject data definition, its better explained how the workobject works.