首页 > 示教器维修 > 库卡机器人编程技巧之Frame数据

库卡机器人编程技巧之Frame数据

日期:2019-12-03   人气:  来源:http://www.zr-robot.com/  作者:admin
简介:众所周知,KUKA 机器人坐标系的欧拉角表示法 XYZABC,其中XYZ是线性距离,ABC则是旋转角度(即欧拉角)。库卡机器人的笛卡尔变换的顺序是:Z-Y-X,即A-B-C(Rz-Ry-Rx),并且以当前的姿态作为参考。 在库卡编程环境中,经常会碰到一个系统结构体类型数据Frame……
众所周知,KUKA 机器人坐标系的欧拉角表示法 XYZABC,其中XYZ是线性距离,ABC则是旋转角度(即欧拉角)。库卡机器人的笛卡尔变换的顺序是:Z->Y->X,即A->B->C(Rz->Ry->Rx),并且以当前的姿态作为参考。
在库卡编程环境中,经常会碰到一个系统结构体类型数据Frame,其包含X,Y,Z,A,B,C6个元素,即欧拉角表示方式。Frame类型的数据在编程中,常见有这些使用:
库卡机器人编程技巧之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