# Geomatric operator in detail?

• Hi,
I read the geometric operator in kuka manual.

As far us I Understood.
1.Right side is the resultant.
POS:FRAME=FRAME
FRAME:POS=POS

2.The right side will be destination with respect to left side. P1:P2. Robot goes to P2 in relative to P1's co-ordinates and orientation.

3. (P1:P2)<>(P2:P1)

1. Have I understood correctly. If not please correct me.

2.For an example, I am having some pos and FRAME called

POS ORGIN={X -1675.58,Y -1154.81,Z 1070.78,A 38.35,B 1.45,C 180.0}
POS TESTPOS={X 0.0, Y 0.0, Z 30.0, A 0.0, B 0.0, C 0.0}

FRAME TESTFRAME1={X 0.0, Y 0.0, Z 30.0, A 0.0, B 0.0, C 0.0}
FRAME TESTFRAME2={X 0.0, Y 500.0, Z 0.0, A 0.0, B 0.0, C 0.0}

Can you please tell me. What will happen?
LIN ORGIN:TESTPOS ;??????
LIN TESTPOS:ORGIN ;?????

LIN ORGIN:TESTFRAME1 ;??????
LIN TESTFRAME1:ORGIN ;?????

LIN TESTFRAME1:TESTFRAME2 ;????????????
LIN TESTFRAME2:TESTFRAME1 ;????????????

• I think you got it correct, but just in case: Have you seen this post

Basically the ":" operator is a coordinate frame shifter. Whether it shifts the reference frame or the target frame depends on doing left or right multiplication.

Esentially frameshifter:frame does a shift relative to the \$BASE system and frame:frameshifter does a shift relative to the \$TOOL system. Hence the result is basically the same as calling

(S)PTP_REL/(S)LIN_REL frameshifter #base
or
(S)PTP_REL/(S)LIN_REL frameshifter #tool

if your robot at position frame.

Fubini

Edited once, last by Fubini ().

• Frame Apple

Apple=BASE_DATA[8]:INV_POS(\$TOOL)
Orange=BASE_DATA[8]:INV_POS(Tool_DATA[1])

So, Apple will give the current tool pos with reference to base data8
Organe will give Tool1 pos in reference to basedata8

IS THIS CORRECT?

Or have I understood it wrongly??

• I an in need of current dynamic toolpos with respect to basedata

• Got stucked....

I need to create 32 boxes around the each base orgin and if the tool is inside the box then the signal is on. For. e.g.. If the tool is in base8 then the base8 box must be true.

Since we need around 32 boxed. I can't use workspace because its limited.

The problem is. When the robot is travelling with with base zero then its working fine.

But not when rob travelling with other bases . Also tried with pos_act_mes the concept is not working

Can you please tell me why. my brains out .... plz help
I wrote a subprogram

GLOBAL DEF BoxWithBase(Dummy1pos:IN,BoxRefpos:IN,BaseNumber:in,Result:OUT)

E6POS Currentpos,Dummy1pos,d
FRAME BoxRefpos
BOOL Xinrange,Yinrange,Zinrange,DefRangefromTeachedPos, Result
INT BaseNumber

Xinrange= FALSE
Yinrange= FALSE
Zinrange= FALSE

ZplusFromTeached=900
XplusFromTeached=400
YplusFromTeached=400

YMinusFromTeached=50
XMinusFromTeached=100
ZMinusFromTeached=50

;;;;;;;;Dummy1.pos = is POS_ACT
;;;;;;;;Boxrefpos is the base number
If (\$ACT_TOOL<>-1) AND (\$ACT_BASE<>-1) THEN

IF \$act_base==0 THEN
if ((Dummy1pos.z < (BoxRefpos.z + ZplusFromTeached)) AND (Dummy1pos.z > (BoxRefpos.z - ZminusFromTeached))) then
Zinrange=TRUE
ELSE
Zinrange= FALSE
endif

if ((Dummy1pos.y < (BoxRefpos.y + YplusFromTeached)) AND (Dummy1pos.y > (BoxRefpos.y - YminusFromTeached))) then
Yinrange=TRUE
ELSE
Yinrange= FALSE
endif
if ((Dummy1pos.x < (BoxRefpos.x + XplusFromTeached)) AND (Dummy1pos.x > (BoxRefpos.x - XminusFromTeached))) then
Xinrange=TRUE
ELSE
Xinrange= FALSE
endif

ENDIF

IF (\$ACT_BASE<>0) THEN
if (((BoxRefpos.z +\$POS_ACT.z) < ( BoxRefpos.z + ZplusFromTeached)) AND ((BoxRefpos.z + \$POS_ACT.Z) > ( BoxRefpos.Z - ZminusFromTeached))) then
Zinrange=TRUE
ELSE
Zinrange= FALSE
endif

if (((BoxRefpos.Y +\$POS_ACT.Y) < ( BoxRefpos.Y + YplusFromTeached)) AND ((BoxRefpos.Y + \$POS_ACT.Y) > ( BoxRefpos.Y - YminusFromTeached))) then
Yinrange=TRUE
ELSE
Yinrange= FALSE
endif

;if (((BoxRefpos.x + \$POS_ACT.X) < ( BoxRefpos.x + XplusFromTeached)) AND ((BoxRefpos.x +\$POS_ACT.X) > ( BoxRefpos.x - XminusFromTeached))) then
Xinrange=TRUE
ELSE
Xinrange= FALSE
endif

• Details?

You say "it doesn't work," but provide ZERO DETAILS about what, exactly, is not working.
You provide ZERO DETAILS about the relationship between the "From Teached" positions, and their relationship with the BoxRef positions, or what Bases those various points are taught in.