指令原型:
GT_API GTN_SetGroupKinematicTransform(short core,short group,TKinematicTransform *pTransform,TListInfo *pListInfo)
指令类型:
group指令。
指令说明:
设置group的运动学变换。
指令参数说明:
| core |
核号,正整数,取值范围请参照核号参数范围一栏。
|
| group |
group号,正整数,取值范围请参照group号参数范围一栏。
|
| pTransform |
运动学变换参数结构体指针。详情说明请参照TKinematicTransform
TKinematicTransform
typedef struct KinematicTransform
{
short type;
short reserve[3];
TKinematicParameter kinPrm;
}TKinematicTransform;
type:结构类型。
KIN_TYPE_ORTHOGONAL(0):标准正交三轴结构。
KIN_TYPE_NON_ORTHOGONAL(1):非正交结构。(暂时不支持)
KIN_TYPE_PARALLEL(2):平行轴结构。
KIN_TYPE_ROBOT(10):机器人结构。
KIN_TYPE_FIVE_AXIS(20):五轴结构。
KIN_TYPE_MULTI_AXIS(30):多轴结构。
reserve:保留参数,必须为0。
kinPrm:结构参数,对应不同的结构类型,参数意义不同。详情说明请参照TKinematicParameter
TKinematicParameter
typedef union KinematicParameter
{
TRobotKinematicParameter robot;
TFiveAxisKinematicParameter fiveAxis
TMultiAxisKinematicParameter multiAxis
TParallelParameter parallel;
double data[48];
} TKinematicParameter;
robot:机器人结构参数。详情说明请参照TRobotKinematicParameter
TRobotKinematicParameter
typedef struct RobotKinematicParameter
{
short type;
short subtype;
short dir[8];
short reserve1[6];
double prm[20];
double offset[8];
long reserve2[10];
double reserve3[11];
}TRobotKinematicParameter;
type:机器人结构类型。
ROBOT_TYPE_SCARA(0):SCARA机械臂。
ROBOT_TYPE_SIX_REVOLUTE(1):6自由度串联机械臂。
ROBOT_TYPE_FOUR_REVOLUTE(2):4自由度串联机械臂。
ROBOT_TYPE_PALLETIZE(3):码垛机器人。
ROBOT_TYPE_POSITIONER(4):变位机。
ROBOT_TYPE_FIVE_REVOLUTE(5):5自由度串联机械臂。
ROBOT_TYPE_XYZRR(6):XYZRR机器人。
ROBOT_TYPE_7R(7):七自由度机器人。
ROBOT_TYPE_UR(10):UR机器人。
ROBOT_TYPE_CYLINDER(20):圆柱机器人。
ROBOT_TYPE_DELTA(100):Delta机器人。
subtype:子类型(R:旋转轴,P:直线轴)。
6自由度串联机械臂:
0:标准6自由度机器人,7个参数描述。
1:6自由度医疗机器人,8个参数描述。
SCARA机械臂子类型:
SCARA_TYPE_RRPR(0)
SCARA_TYPE_PRRR(1)
SCARA_TYPE_RPRR(2)
SCARA_TYPE_RRRP(3)
码垛机器人子类型:
变位机子类型:
POSITIONER_TYPE_SINGLE(0):单轴变位机。
POSITIONER_TYPE_DUAL(10):双轴变位机。
ROBOT_TYPE_XYZRR子类型:
XYZRR_TYPE_LIKE_SCARA(0):3个参数描述。
XYZRR_TYPE_DT_C_ON_A(100):1个参数描述。
UR机器人:
0:标准6自由度UR机器人,8个参数描述。
1:扩展6自由度UR机器人,9个参数描述。
5自由度串联机械臂子类型:
4自由度串联机械臂子类型:
0:似码垛机器人。
1:似标准6R机器人,只是缺少了第5,6个关节。
DELTA子类:
DELTA_TYPE_BASIC(0):简化模型。
DELTA_TYPE_COMMON(1):通用模型。
DELTA_TYPE_COMMON_PRO(2):考虑了误差的通用模型。
没有提供子类型定义的机器人类型,子类型必须设置为0。
dir:关节方向,0:与定义方向相同,1:与定义方向相反。
reserve:保留参数,必须为0。
prm:结构参数,杆长。
当结构为变位机模型时,参数意义如下:
prm[0]~prm[2]:第一个旋转轴的旋转中心相对MCS零点的坐标。
prm[3]~prm[5]:第一个旋转轴的旋转轴线方向相对MCS坐标系的坐标。
prm[6]~prm[8]:第二个旋转轴的旋转中心相对第一个旋转轴的旋转中心的坐标。
prm[9]~prm[11]:第二个旋转轴的旋转轴线方向相对第一个旋转轴坐标系的坐标。
offset:关节偏移,实际初始姿态与定义的初始姿态的偏移(实际初始姿态在定义坐标系下的位置)。单位:旋转轴:弧度,直线轴:规划单位(微米)。
reserve2:保留参数,必须为0。
reserve3:保留参数,必须为0。
fiveAxis:五轴结构参数。详情说明请参照TFiveAxisKinematicParameter
TFiveAxisKinematicParameter
typedef struct FiveAxisKinematicParameter
{
short type; //机床类型
short reserve1[3]; //保留参数
double primaryAxisPoint[3]; //第一旋转轴中心在MCS的坐标
double slaveAxisPoint[3]; //第二旋转轴中心在MCS的坐标
double toolLocationPoint[3]; //刀具坐标系中心在MCS的坐标
short dirMode; //方向描述模式
short reserve2[2]; //保留参数
short dir[5]; //各轴方向
double axisVector[5][3]; //各轴轴线方向
long reserve3[10];
double reserve4[16];
}TFiveAxisKinematicParameter;
type:机床类型。
双转台
RW_C_ON_B(0):B为第一旋转轴,C为第二旋转轴。
RW_B_ON_A(1):A为第一旋转轴,B为第二旋转轴。
RW_A_ON_B(2):B为第一旋转轴,A为第二旋转轴。
RW_C_ON_A(3):A为第一旋转轴,C为第二旋转轴。
双摆头
DT_B_ON_A(4):A为第一旋转轴,B为第二旋转轴。
DT_A_ON_B(5):B为第一旋转轴,A为第二旋转轴。
DT_A_ON_C(6):C为第一旋转轴,A为第二旋转轴。
DT_B_ON_C(7):C为第一旋转轴,B为第二旋转轴。
转台摆头,刀具侧为第一旋转轴,工件测为第二旋转轴
T_A_W_B(8):A为第一旋转轴,B为第二旋转轴
T_B_W_A(9):B为第一旋转轴,A为第二旋转轴
T_A_W_C(10):A为第一旋转轴,C为第二旋转轴
T_B_W_C(11):B为第一旋转轴,C为第二旋转轴
reserve:保留参数,必须为0。
primaryAxisPoint:第一旋转轴中心在MCS的坐标,旋转轴中心可以为旋转轴轴线上的任何一点,单位:mm。
slaveAxisPoint:第二旋转轴中心在MCS的坐标,旋转轴中心可以为旋转轴轴线上的任何一点,单位:mm。
toolLocationPoint:刀具坐标系中心在MCS的坐标,单位:mm。
dirMode:dirMode:轴方向描述模式。范围:[0,1]。
0:通过描述轴方向是否满足右手坐标系来确定轴方向,只适用于正交模型的描述,轴方向通过dir[5]数组的五个参数来描述5个轴的方向。
1:通过描述轴矢量方向来确定轴方向,适用于正交和非正交模型,该模式需要设置dir[5]数组的前3个轴是位于工件侧还是工具侧,并通过参数axisVector[5][3]描述5个轴的轴矢量方向。
reserve1:保留参数,必须为0。
dir:当dirMode为0时,用于描述5个轴的方向。
当dirMode为1时,数组的前3个元素用于描述前3个轴是位于工件侧还是工具侧,后两个元素没有意义,必须设置为0。
reserve2:保留参数,必须为0。
axisVector:各轴轴线方向。设置5个轴的轴向矢量方向。注意:需要转换成单位矢量来描述。
矢量方向参数都是相对MCS坐标系的方向来描述的。
reserve3:保留参数,必须为0。
reserve4:保留参数,必须为0。
multiAxis:多轴结构参数。详情说明请参照TMultiAxisKinematicParameter
TMultiAxisKinematicParameter
typedef struct MultiAxisKinematicParameter
{
short axisCount; //轴数
short reserve1[3]; //保留参数
long reserve2[10];
double reserve3[42];
}TMultiAxisKinematicParameter;
axisCount:轴数。
reserve1:保留参数,必须为0。
reserve2:保留参数,必须为0。
reserve3:保留参数,必须为0。
parallel:平行轴结构参数。详情说明请参照TParallelParameter
TParallelParameter
typedef struct ParallelParameter
{
short subType;
short axisCount;
short mode;
short majorAxis[3];
short reserve1[6];
short parallelAxis[8];
long reserve2[10];
double reserve3[38];
}TParallelParameter;
subType:平行轴子类型。
PARALLEL_INDEPENDENT(0):平行轴之间为独立关系。
PARALLEL_SUPERPOSITION(1):平行轴之间为叠加关系。
axisCount:平行轴结构的总轴数。
mode:当平行轴为平行叠加轴模式时,该参数生效,参数范围:[0,2]。
0:运动过程中相互平行的轴根据叠加后的末端运动量按比例线性变化。
1:运动过程中保证重载轴单调变化,剩余的运动量由另外一个平行轴完成。
2:运动过程中重载轴和叠加后末端位置的比例从起点占的比例线性变化到终点占的比例,剩余的运动量由另外一个平行轴完成。
majorAxis:末端的3个轴的重载轴的轴号,如果末端轴没有平行轴,则设置为0。
reserve1:保留参数,必须为0。
parallelAxis:设置各个轴对应的末端轴号。1为X轴,2为Y轴,3为Z轴。
reserve2:保留参数,必须为0。
reserve3:保留参数,必须为0。
data:保留参数,必须为0。
|
| pListInfo |
指令流信息结构体指针。详情说明请参照TListInfo
TListInfo
typedef struct
{
short list;
short reserve1[2];
short modal;
long segNum;
long reserve2[3];
double reserve3[4];
} TListInfo;
list:指令压入的指令流号,取值范围:[0, 4]。
当pListInfo为空或者list=0时,指令为立即指令,调用后立即生效。
当list>0时,指令为list指令,调用后被发送到指令流中,在启动指令流后顺序执行到该指令才生效。
modal:为1时表示阻塞指令流,等待当前指令完成。本指令不需要设置此参数。
segNum:指令段号,取值范围:[-2147483648, 2147483647]。
reserve1:保留参数,必须为0。
reserve2:保留参数,必须为0。
reserve3:保留参数,必须为0。
|
指令返回值:
请参照通用返回值说明。