RobotStudio event

create wobj?

Options

hello,  i got following codes from a demo.i understand all this instructions,but don't understand how the codes useful.

who can explain? thanks

FUNC wobjdata createWobjCad(
    robtarget ptRob1,
    robtarget ptRob2,
    robtarget ptRob3,
    robtarget ptVehic1,
    robtarget ptVehic2,
    robtarget ptVehic3)

    VAR pose frameRob:=[[0,0,0],[1,0,0,0]];
    VAR pose frameVehic:=[[0,0,0],[1,0,0,0]];
    VAR wobjdata wobjTmp:= [FALSE, TRUE, "", [[0, 0, 0],[1, 0, 0, 0]],
                             [[0, 0, 0],[1, 0, 0, 0]]];
                            
   !calculation vehicle frame position in world frame of the robot
    frameRob:=DefFrame(ptRob1,ptRob2,ptRob3);
    frameVehic:=DefFrame(ptVehic1,ptVehic2,ptVehic3);
    wobjTmp.uframe:=PoseMult(frameRob,PoseInv(frameVehic));
    RETURN wobjTmp;
  ENDFUNC

Peter

Comments

  • Vador
    Options

    Hello Peter_ABB

    This code is used to recalculate a theorical BaseFrame with a pointed One.

    I explain : If you made a trajectory off line ( Robostuido, RobCad ..) you need a BaseFrame, but after to put the trajectory on site, you have to learn a new BaseFrame with the robot to adjust in the real world. So this Function is made to transform the "off line" BaseFrame with theorical points (ptVehicx) to a real BaseFrame with learned points (ptRobx).

    Hope is clear.

    Bye.

    Sylvain.

  • junjun
    Options

    Vador

    you mean this function is to facilitate transplanting programs

  • Vador
    Options

    Yes it's made to put programs (trajectories) created by computer to robots on production lines.

    I only use this type of functions for car lines.

    Bye.

    Sylvain.

  • Peter_ABB
    Options

    Hi Vador,

     i see what you means.  and would u explain it in details.

    i don't understand which points is made offline, and which other three points need to teach on site.

    Thanks a lot!

    Peter
  • Vador
    Options

    Hi Peter,

    To use this function it's better to make a program that will help you to teach the 3 points that you need to learn. For exemple simple trajectory that approche each points 1 by 1 and you just learn the finals points. After this use the function and send in parameters your 3 learned points that should use ptRob1, ptRob2 and ptRob3 parameters. these parameters are the learned points on vehicule. You also need to send in parameters the "Off line" points that were used to make the program on pc. these "Off line" points should use the ptVehic1, ptVehic2 and ptVehic3 parameters. So before all you need to put in your program 3 CONST Robtarget where you will put the "off line" points values and when you will call the function, just pass these 3 CONST points in the ptVehicX parameters.

    I hope you will understand my english and my explenations.

    Bye.

    Sylvain

     

  • Bryan
    Options

    Hi,

    Later versions of Robotware actually have a function like this in RAPID called DefDFrame.  If  you have access to newer RAPID Reference Manuals you can read about the function.

    Best Regards,

    Bryan

     

    Bryan Johnson
    bryan.johnson@wolfrobotics.com
    Wolf Robotics
    4600 Innovation Dr.
    Fort Collins, CO 80525
    USA
  • Hi
     

    At the moment we create a 'frame' or 'workobject' at the robot (offline) with the same name as the one is the program. This is relatively easy. What would be the benefit of using this function and how exactly do you use it? I assume you run it and it just define the 3 input parameters?

     

    Thanx

     

    Alex
  • The purpose is to declare robtargets that will be used to define the workobject.  The robtargets will be slightly different on the real system when compared to the virtual system.  Robtargets are easy to update on the real system at specific reference points on your fixture using basic modpos feature on the teach pendant.  If you skip this step and try to use simple frame definitions, without storing the original robtargets used to define those frames, you will run into several problems:
     

    1.  You may not be able to reach the reference points because the workobject origin may be outside the working range of the robot.  An example is when you want to reference a "car frame" in automotive applications where the origin of the whole car is used for a subassembly that could be several meters away.

    2.  You will not be able to reproduce the workobject definition method unless you maintain a document that describes how to do it again exactly.  This is critical when attempting to duplicate on identical systems, or when making hardware changes several years down the road after all the original people have quit or retired.

    3.  You cannot take advantage of using more than three reference targets.  Using more than three gives you some redundancy for a "best fit" solution that averages out some of the robot inaccuracy and helps catch reference targets that are statistical out lyers.  Manual TCP definitions provide this kind of feedback, for example.

     

    Hope this helps without adding more confusion...

    Bryan

     

     

     
    Bryan Johnson
    bryan.johnson@wolfrobotics.com
    Wolf Robotics
    4600 Innovation Dr.
    Fort Collins, CO 80525
    USA
  • Hi Bryan
     

    Thank-you for your response, it was very helpful.

     

    We currently use our robot to cut and drill composite panels, they rest on wood/almunium jigs. We do have problems using one work-object because we cannot machine the jigs exactly as they are in the virtual environment, we moved to the solution of using three work-objects. The closest workobject to the drill holes and cuts is used as their reference, this was far more accurate. you mentioned "best fit" solution and more than three reference targets-Can we use nine reference targets and one average workobject for the entire process?

     

    Also, we have many jigs that we use to cut many different parts and only one robot. Would this mean that we have to store all the functions with the definitions of the workobject on the controller hard drive which is only 20Mb as opposed to a simple workobject definition. It wouldn't be feasible to take the points everytime we load a new jig because we may have 5 or six jigs on per day?

     

    wrt point 2 above-wouldn't the new user need to know what points and in what order they were chosen in the virtual environment in order to reproduce the workobject definition method in any case?

     

    Thank-you again

     

    Alex

     

    -----------------------------------------------------

    Alexander Leigh

    AAT Composites

    Strand, 7140

    South Africa