RobotStudio event

Calibrating Stationary Tool & Robot Held Work Object

Hello, I am working with an IRB 4600 and need to calibrate a stationary tool and robot held work object. 

I have calibrated many robot held tools using the 4-point method.  But when I tried this on a new tool with RobHold set false and with tool selection on tool0, work object set to wobj0 and using the world coordinate system, I just get completely wrong numbers.

I am seeking advice on specifically what my tool, workobject, and coordinate system should be set to while doing the 4-point calibration on a new tool which has RobHold set to false?

Answers

  • In order to teach the stationary tool, it need not be active.  You will need to use a known, good Robhold TRUE TCP.  There are also instructions that you could use to make the calibration for you.  See SToolRotCalib and  SToolTCPCalib in the Instructions, functions and datatypes reference manual.  As far as the coordinates of the Robhold TRUE workobject, it really doesn't matter.  In the past I have made it the same as the carried TCP.  At other times I have seen it 0,0,0 !,0,0,0., trans and rot, respectively.
    Lee Justice
  • mandolas
    mandolas
    edited September 13
    Hi ...
    Try following some steps:
    1 - Define the tool stationary.
    2 - Define the reference position with tool0.
    3 - From the reference position define the displacement to create the TCP tool stationary.
    4 - Apply the .trans and .rot to the TCP tool stationary.

    MODULE Module1
        PERS tooldata tStat:=[FALSE,[[0,0,0],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];
        PERS robtarget PHome:=[[0,0,0],[1,0,0,0],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
        
        PROC SetStatTool(INOUT tooldata tStatR\robtarget P_RefP)
            VAR robtarget P_Ref:=[[0,0,0],[1,0,0,0],[1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
            
            IF Present(P_RefP) P_Ref:=P_RefP;
    
            tStatR.tframe.trans:=[P_Ref.trans.x+100,0,0];
            tStatR.tframe.rot:=P_Ref.rot;
        ENDPROC
        
        PROC Main()
            SetStatTool tStat\P_RefP:=PHome; 
        ENDPROC
    ENDMODULE
    Good work.
  • Hi,

    It would appear that the problem was due to the fact that I did not calibrate the robot held tool.  I figured originally that since the calibration of a robot held tool does not require the pointed device to be calibrated... why would it need to be when the scenario is reversed.  I wonder what the reason is for this? 

    Anyway, yes it seems that when I calibrate the robot held calibration point first, then use it to calibrate the stationary tool, it works.

    Thanks