KUKA 机器人视觉抓取的工作原理讲解


首先要建立机器人的轨迹,作为基础机器人编程轨迹。


视觉抓取主要是通过改变机器人的TOOL坐标系或BASE坐标系来实现的。




物体位置的变化主要是它位置的X,Y,Z 方向的变化。


BASE坐标系: 可根据需要定义用户坐标系。当机器人配备多个工作台时,选择用户坐标系可使操作更为简单 。在用户坐标系中, TCP 点将沿用户自定义的坐标轴方向运动。



以改变BASE 坐标系为例:



库卡C4 现在可以使用32个BASE 坐标系



没有使用视觉补偿功能时,只用一个BASE坐标系



改变机器人BASE坐标系值从而改变机器人抓件位置,使用多个坐标系



制作一个后台程序,用来改变BASE



设置 输入变量点的接收变量:


SIGNAL gxe_1 $in[2278] TO $in[2285]

SIGNAL gxe_2 $in[2286] TO $in[2301]


SIGNAL gxe_3 $in[2302] TO $in[2309]

SIGNAL gxe_4 $in[2310] TO $in[2325]


SIGNAL gxe_5 $in[2334] TO $in[2341]

SIGNAL gxe_6 $in[2342] TO $in[2357]


设置坐标变量用于改变BASE坐标值


DECL FRAME Get_Val_Pos={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;


DECL FRAME Get_Val_Pos1={X 0.0,Y -46.2999992,Z 0.0,A 0.0,B 0.0,C 0.0} ;


DECL FRAME Get_Val_Pos2={X 0.0,Y -17.8699989,Z 0.0,A 0.0,B 0.0,C 0.0} ;


使多个BASE[]坐标系保持一致


base_Data[1] = $base

base_Data[2] = base_data[1]

base_Data[3] = base_data[1]

base_Data[4] = base_data[1]


变量的初始化归0 , get_val_pos = $nullframe


例如:现在只改变BASE的Y方向位置


get_val_pos.y = gxe_2*0.01 换算坐标值,存到坐标的Y方向


base_data[1] = $base : Get_Val_Pos 改变BASE坐标系的Y方向位置


使用多个BASE坐标系:


举报