HYUNDAI抓取样例程序¶
本节将介绍用于完成简单识别并移动的机器人样例程序。
注意
在开始本节内容之前,请确保已完成 HYUNDAI标准接口通信配置 操作。
使用 Mech-Vision 进行视觉识别并获取结果¶
在示教器界面,点击左上角 Program 区域,在输入框内输入 9700,打开 9700 程序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | Program File Format Version : 1.6 MechType: 739(HH4-01) TotalAxis: 6 AuxAxis: 0
REM VIS sample
'_
V500$="192.168.1.10"
V500%=8000
V501%=1
CALL 9821_MMH_OPEN
PRINT #0,"UDP OPEN OK !"
DELAY 1.0
'_
V503%=1
V504%=1
V505%=2
V506%=1
V507%=10
P500=P*
'_
CALL 9803_MMH_ChangVIS
IF (V504$ <> "1107") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
CALL 9801_MMH_VIStrig
IF (V504$ <> "1102") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
CALL 9802_MMH_VISresult
IF (V504$ <> "1100") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
CALL 9822_MMH_CLOSE
'_
IF V505% = 2 THEN
FOR LV1%=1 TO VAL(V506$)
LV3%=LV1%-1
LV2%=V507%+LV3%
P[LV2%]=(0,0,0,0,0,0,&H0001)R
P[LV2%].X=V![500+LV3%*14]
P[LV2%].Y=V![501+LV3%*14]
P[LV2%].Z=V![502+LV3%*14]
P[LV2%].RX=V![503+LV3%*14]
P[LV2%].RY=V![504+LV3%*14]
P[LV2%].RZ=V![505+LV3%*14]
NEXT
'_
ELSE
FOR LV1%=1 TO VAL(V506$)
LV2%=V507%+LV1%-1
P[LV2%]=(0,0,0,0,0,0)A
P[LV2%].J1=V![508+LV3%*14]
P[LV2%].J2=V![509+LV3%*14]
P[LV2%].J3=V![510+LV3%*14]
P[LV2%].J4=V![511+LV3%*14]
P[LV2%].J5=V![512+LV3%*14]
P[LV2%].J6=V![513+LV3%*14]
NEXT
ENDIF
'_
'_
END
|
程序逻辑解读¶
第 4~9 行:机器人与视觉系统建立 UDP 连接。V500$ 变量值表示工控机 IP,V500% 变量值表示 Mech-Vision 中设置的端口号。
第 11 行:V503% 变量值表示 Mech-Vision 工程编号。
第 12 行:V504% 变量值表示预期返回的视觉点的数量,范围为 0~4,其中,0 表示获取所有视觉点。
第 13 行:V505% 变量值表示位姿类型,1 表示 JPs,2 表示 TCP。
第 14 行:V506% 变量值表示 Mech-Vision 工程配方编号。
第 15 行:V507% 变量值表示 P 变量的初始索引值。例如:V507%=10,表示 Mech-Vision 输出的第一个视觉点将赋值到P[10]中。
第 18~22 行:设置 Mech-Vision 工程配方。若返回的状态码不等于 1107,则表示设置配方失败,程序将停止运行。
第 24~28 行:触发 Mech-Vision 工程运行。若返回的状态码不等于 1102,则表示触发工程失败,程序将停止运行。
第 30~34 行:获取 Mech-Vision 工程输出的视觉点。若返回的状态码不等于 1100,则表示获取结果失败,程序将停止运行。
第 36 行:机器人与视觉系统断开 UDP 连接。
第 38~49 行:若视觉点的位姿类型为 TCP,则将 TCP 值赋值给 P[LV2%]。
第 52~61 行:若视觉点的位姿类型为 JPs,则将关节角值赋值给 P[LV2%]。
使用 Mech-Viz 规划路径¶
在示教器界面,点击左上角 Program 区域,在输入框内输入 9701,打开 9701 程序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | Program File Format Version : 1.6 MechType: 739(HH4-01) TotalAxis: 6 AuxAxis: 0
REM VIZ-path sample
'_
V500$="192.168.1.10"
V500%=8000
V501% =1
CALL 9821_MMH_OPEN
PRINT #0,"UDP OPEN OK !"
DELAY 1.0
'_
V505%=1
P500=P*
'_
CALL 9804_MMH_StartVIZ
IF (V504$ <> "2103") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
V507%=970
V505%=2
'_
CALL 9808_MMH_VIZpath
IF (V504$ <> "2100") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
CALL 9805_MMH_StopVIZ
IF (V504$ <> "2104") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
CALL 9822_MMH_CLOSE
'_
IF V505% = 2 THEN
'_
FOR LV1%=1 TO VAL(V506$)
LV3%=LV1%-1
LV2%=V507%+LV3%
P[LV2%]=(0,0,0,0,0,0,&H0001)R
P[LV2%].X=V![500+LV3%*14]
P[LV2%].Y=V![501+LV3%*14]
P[LV2%].Z=V![502+LV3%*14]
P[LV2%].RX=V![503+LV3%*14]
P[LV2%].RY=V![504+LV3%*14]
P[LV2%].RZ=V![505+LV3%*14]
NEXT
'_
ELSE
FOR LV1%=1 TO VAL(V506$)
LV2%=V507%+LV1%-1
P[LV2%]=(0,0,0,0,0,0)A
P[LV2%].J1=V![508+LV3%*14]
P[LV2%].J2=V![509+LV3%*14]
P[LV2%].J3=V![510+LV3%*14]
P[LV2%].J4=V![511+LV3%*14]
P[LV2%].J5=V![512+LV3%*14]
P[LV2%].J6=V![513+LV3%*14]
NEXT
ENDIF
'_
END
|
程序逻辑解读¶
第 4~9 行:机器人与视觉系统建立 UDP 连接。V500$ 变量值表示工控机 IP,V500% 变量值表示 Mech-Vision 中设置的端口号。
第 11 行:V505% 变量值表示位姿类型,1 表示 JPs,2 表示 TCP。
第 14~18 行:触发 Mech-Viz 工程运行。若返回的状态码不等于 2103,则表示触发工程失败,程序将停止运行。
第 20 行:V507% 变量值表示 P 变量的初始索引值。例如:V507%=10,表示 Mech-Viz 输出的第一个路径点将赋值到P[10]中。
第 23~27 行:获取 Mech-Viz 规划的路径。若返回的状态码不等于 2100,则表示获取路径失败,程序将停止运行。
第 29~33 行:停止 Mech-Viz 工程的运行。若返回的状态码不等于 2104,则表示停止运行失败,程序将停止运行。
第 35 行:机器人与视觉系统断开 UDP 连接。
第 39~49 行:若路径点的位姿类型为 TCP,则将 TCP 值赋值给 P[LV2%]。
第 52~61 行:若路径点的位姿类型为 JPs,则将关节角值赋值给 P[LV2%]。