为了提高生产节拍,“飞拍”的概念被广泛使用,即机器人在通过拍照点时不会停止拍照。
如上所示,传入的随机位置(参见随机位置指令生成材料生成随机抓握),ABB机器人抓取一个固定的位置。此时,抓取工件位置偏差需要触发机器人越过的相机时,拍照,并在*后的地方调节机器人姿态的产品到指定的位置。
整个过程(尤其是在拍照的过程中),机器人不会停止。
考虑到延迟,机器人在通过固定位置之前需要触发摄像机信号。
方法1:通过相机的前传感器机器人并触发照相机
方法2:将**机器人摄像机后自身发出一个信号,即,在到达特定位置之前的发送信号,该移动过程中不停止。
本文主要采用方法2,可以使用ABB机器人触发L指令,配合TriggInt,在指定位置之前的一定距离或时间发出信号并等待照片完成信号并在中断和更新机器人TCP中接收数据,过程机器人不停止移动..
代码如下:
PROC main()
Reset do_attach;
工具1:=tooldat ta_1;!Tooldat ta_1是标准TCP,即TCP用于抓取固定位置
count:=0;
Ideletedintno1;
And TR1 CONNECT intno1;
TriggInt trigg1,0.5 \ time, intno1;
!这是为了在一个固定的点之前触发一个0.5秒的中断,或者使用一个早期的距离
WHILE count<5 DO
Tool 1: = Tooldata_1;
Pulse DODO_new;
MoveLoff (Target_10,0,90), vmax, z100, Tooldatta_1\\ wobj:= wobj0;
MOVEL Target_10, V1000, fine, Tooldata_1 \ WObj: = wobj0;
set do_attach;
WaitTime 0.3;
MoveLoff (Target_10,0,0,90), v1000, z100, Tooldatta_1\wobj:= wobj0;
Triggl Target_cam, v500, trigg1, z100, Tooldatta_1\\ wobj:= wobj0;
!**点0.5秒相机触发中断后,机器人继续移动
!中断事件内收到拍照结果并更新TCP
MoveLoffs (Target_cam,0,50,0), v500, z100, Tooldatta_1\wobj:= wobj0;
MOVEL weighed (pPlace, 0,0,30), V500, Z100, tool 1 \ WObj: = wobj0;
!放置时,采用修正后的新TCP tool1
!运动过程的转弯半径不好,以确保机器人不会停止
….
Incr count;
ENDWHILE
ENDPROC
TRAP tr1
VAR pose pose1;
PulseDO \ PLength: = 0.1, do_cam;
!发出拍照信号
waitdi di_cam_wait, 1;
!等待拍照完成信号
!还可以修改为通过套接字接收数据
pose1.trans.y: = - pos1.y;
pose1.rot:= OrientZYX (-pos1.z/1000*180/pi,0,0);
TOOL1.t
!更新TCP,因为相机的结果相对于原来的TCP,用正确的姿势乘
!注意拍照结果与原始TCP坐标系的关系
TPWrite "Tool1"\\Pos:=Tool1.t
TPWrite "tool 1 RZ" \ NUM: = - pos1.z / 1000 * 180 / PI;
ENDTRAP
了解更多ABB机器人