# Calibrating Stationary Tool & Robot Held Work Object

**URL:** <https://tech-community.robotics.abb.com/t/calibrating-stationary-tool-robot-held-work-object/11586>\
**Category:** IRC5\
**Created:** [September 3, 2024, 9:04pm UTC](https://tech-community.robotics.abb.com/t/calibrating-stationary-tool-robot-held-work-object/11586 "2024-09-03T21:04:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![RyanKnopp](https://avatars.discourse-cdn.com/v4/letter/r/3ec8ea/32.png) [@RyanKnopp](https://tech-community.robotics.abb.com/u/RyanKnopp)\
**Post date:** [September 3, 2024, 9:04pm UTC](https://tech-community.robotics.abb.com/t/calibrating-stationary-tool-robot-held-work-object/11586/1 "2024-09-03T21:04:03Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![lemster68](https://dub1.discourse-cdn.com/flex005/user_avatar/tech-community.robotics.abb.com/lemster68/32/1945_2.png) [@lemster68](https://tech-community.robotics.abb.com/u/lemster68)\
**Post date:** [September 4, 2024, 12:06pm UTC](https://tech-community.robotics.abb.com/t/calibrating-stationary-tool-robot-held-work-object/11586/2 "2024-09-04T12:06:47Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![mandolas](https://dub1.discourse-cdn.com/flex005/user_avatar/tech-community.robotics.abb.com/mandolas/32/2496_2.png) [@mandolas](https://tech-community.robotics.abb.com/u/mandolas)\
**Post date:** [September 13, 2024, 2:37pm UTC](https://tech-community.robotics.abb.com/t/calibrating-stationary-tool-robot-held-work-object/11586/3 "2024-09-13T14:37:09Z")

</div>

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.

```auto
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.

---

<div class="post-metadata">

**Author:** ![RyanKnopp](https://avatars.discourse-cdn.com/v4/letter/r/3ec8ea/32.png) [@RyanKnopp](https://tech-community.robotics.abb.com/u/RyanKnopp)\
**Post date:** [September 13, 2024, 3:50pm UTC](https://tech-community.robotics.abb.com/t/calibrating-stationary-tool-robot-held-work-object/11586/4 "2024-09-13T15:50:55Z")

</div>

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
