众所周知,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
目的:通过两个点计算出两点之间的相对位置向量;
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 (n Start POS):nEndPos
RETURN fRet
ENDFCT
如需了解更多有关产品信息请点击:KUKA库卡机器人
本文摘自:网络 原创:安德鲁王