注意
首次运行库卡机器人程序之前,请确保:
- 存在有效的机器人摄像机标定。
- 该工具中心点(TCP)已指定正确。
- 该机器人的速度被设置为较低的值,所以意外的行为,可以及早发现足以防止机器人与人或环境发生碰撞。
- Pickit处于机械手模式,该模式在Pickit Web界面中启用。
例如节目:PickitSimplePicking
可以在R1 > 程序 > Pickit中找到该示例程序。
注意
此示例程序仅适用于2.2或更高版本的Pickit软件版本。如果您使用的是2.2之前的软件版本,请通过support @ pickit3d与我们联系。com,我们将协助您找到解决方案。
DEF PickitSimplePicking ( )
;FOLD INI;%{PE}
;FOLD USER INI
PTP HOME
IF NOT Pickit_is_running() THEN
PickitMessages(#info, 1) ;Pickit not in ROBOT mode
HALT
ENDIF
Pickit_configure(5,4)
BAS(#TOOL,1) ; Tool for picking
BAS(#BASE,0) ; Robot base
PTP Detect
Pickit_detect_with_retr(5)
WAIT FOR Pickit_get_results()
LOOP
IF Pickit_object_found() THEN
;Calculate pick points
F_Pick=Pickit_get_pose()
F_PrePick=F_Pick:{X 0.0,Y 0.0,Z -100.0,A 0.0,B 0.0,C 0.0}
F_PostPick={X 0.0,Y 0.0,Z 100.0,A 0.0,B 0.0,C 0.0}:F_Pick
; Check if positions are reachable
PickitAxistest=INVERSE(F_Pick,XAbovePickArea,Pickit_ErrStatCheckPos1)
PickitAxistest=INVERSE(F_PrePick,XAbovePickArea,Pickit_ErrStatCheckPos2)
PickitAxistest=INVERSE(F_PostPick,XAbovePickArea,Pickit_ErrStatCheckPos3)
IF (Pickit_ErrStatCheckPos1==0) AND (Pickit_ErrStatCheckPos2==0) AND (Pickit_ErrStatCheckPos3==0) THEN
PTP AbovePickArea
LIN F_PrePick
LIN F_Pick
;Add grasping logic
LIN F_PostPick
LIN AbovePickArea
PTP Detect
Pickit_detect_with_retr(5)
PTP Dropit
;Add release logic
WAIT FOR Pickit_get_results()
ELSE
PickitMessages(#info,2) ;Object not reachable requesting next object..
Pickit_next_object()
WAIT FOR Pickit_get_results()
ENDIF
ELSE
IF Pickit_roi_empty() THEN
PickitMessages(#info, 3) ;ROI is empty
EXIT
ELSE
PickitMessages(#info, 4) ;No objects found
Pickit_save_scene()
EXIT
ENDIF
ENDIF
ENDLOOP
END
该程序的想法如下:
- 首先,检查Pickit是否处于Robot模式。
- 如果是这样,则机器人将移至该
detect
姿势并触发检测,否则将暂停机器人程序。 - 如果找到了对象,则检查机器人的拾取,拾取前和拾取后点是否可达。
- 如果物体可以到达,则机器人将移至该物体以将其拾取。之后,机器人将移动到固定的放下位置
Dropit
。一旦机器人离开摄像机的视野,就会触发新的Pickit检测,以便在机器人移动的同时处理检测,从而优化了周期时间。 - 如果无法到达对象,则机器人会请求下一个检测到的对象。
- 如果ROI为空,程序将停止。
- 如果未找到任何对象,并且ROI不为空,则快照将保存在Pickit系统中,并且机器人程序将停止。
注意
根据所运行的Pickit软件版本,示例程序可能看起来有所不同,即使功能相同。我们建议使用Kuka connect版本随附的示例程序
定义
工具创建具有实际TCP值的工具。在此示例中,使用#TOOL1。
设置正确的输入参数
命令Pickit_configure
和Pickit_detect_with_retr
需要输入参数。有关这些参数的更多信息,请参见Pickit通信函数。
定义固定点
在此示例程序中,使用了4个固定点。这些点需要根据应用进行定义。
- 主页:机器人将在其上启动程序的位置。
- 检测:从何处执行对象检测。
- AbovePickArea:大致位于拾取区域上方的一点,从该点可以到达以上两个区域而不会发生碰撞。
- Dropit:放置对象的位置。
抓添加/释放逻辑
在F_Pick和Dropit点,分别需要添加抓取和释放逻辑。