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坐标系: