众所周知,KUKA 机器人坐标系的欧拉角表示法 XYZABC,其中XYZ是线性距离,ABC则是旋转角度(即欧拉角)。库卡机器人的笛卡尔变换的顺序是:Z->Y->X,即A->B->C(Rz->Ry->Rx),并且以当前的姿态作为参考。
	在库卡编程环境中,经常会碰到一个系统结构体类型数据Frame,其包含X,Y,Z,A,B,C6个元素,即欧拉角表示方式。Frame类型的数据在编程中,常见有这些使用:

	1.计算基于工具坐标系的位置偏移
	目的:计算当前同一坐标系下的点相对工具坐标系偏移后的位置;
	 
		DEFFCT E6POS Tool_Offset (nPos:IN,nFrame:IN )
	
		;***************************************************
	
		;* Autor        : Andrew Wang                      *                           *
	
		;* Version      : 1.0                              *
	
		;* Created      : 12.12.2018                       *
	
		;* Program Name : Tool_Offset                      *
	
		;* Fuction      : Position offset by Tool CS;      *
	
		;*************************************************** 
	
		DECL E6POS nPos
	
		DECL FRAME nFrame
	
		DECL E6POS xTemp
	
		  xTemp=nPos:nFrame
	
		  RETURN xTemp
	
		ENDFCT
	2.计算基于基坐标系的位置偏移
	目的:计算当前同一坐标系下的点相对基坐标系偏移后的位置;
	 
		DEFFCT E6POS Base_Offset (nPos:IN,nFrame:IN )
	
		;***************************************************
	
		;* Autor        : Andrew Wang                      *
	
		;* Version      : 1.0                              *
	
		;* Created      : 12.12.2018                       *
	
		;* Program Name : Base_Offset                      *
	
		;* Fuction      : Position offset by Base CS;      *
	
		;*************************************************** 
	
		DECL E6POS nPos,xRet
	
		DECL FRAME nFrame
	
		 xRet=nFrame:nPos
	
		 RETURN xRet
	
		ENDFCT
	3.对Frame元素设定
	目的:通过赋值的方式获取设定一个需要的Frame变量;
		DEFFCT FRAME Set_Frame (X:IN,Y:IN,Z:IN,A:IN,B:IN,C:IN )
	
		;***************************************************
	
		;* Autor        : Andrew Wang                      *
	
		;* Version      : 1.0                              *
	
		;* Created      : 12.12.2018                       *
	
		;* Program Name : Set_Frame                        *
	
		;* Function     : A frame made by each components ;*
	
		;*************************************************** 
	
		DECL REAL X,Y,Z,A,B,C
	
		DECL FRAME fTemp
	
		  fTemp={X 0,Y 0,Z 0,A 0,B 0,C 0}
	
		  fTemp.X=X
	
		  fTemp.Y=Y
	
		  fTemp.Z=Z
	
		  fTemp.A=A
	
		  fTemp.B=B
	
		  fTemp.C=C
	
		  RETURN fTemp
	
		ENDFCT
	4.计算两个点之间的向量Frame
	目的:通过两个点计算出两点之间的相对位置向量;
		DEFFCT FRAME Get_Frame (nStartPos:IN,nEndPos:IN )
	
		;***************************************************
	
		;* Autor        : Andrew Wang                      *
	
		;* Version      : 1.0                              *
	
		;* Created      : 12.12.2018                       *
	
		;* Program Name : Get_Frame                        *
	
		;* Fuction      : Calculate a Frame for 2 position;*
	
		;*************************************************** 
	
		DECL E6POS nStartPos,nEndPos
	
		DECL FRAME fRet
	
		  fRet=INV_POS (nStart):nEndPos
	
		  RETURN fRet
	
		ENDFCT
	



