样例程序2:Sample_2
程序简介
功能说明 |
机器人触发Mech-Viz工程运行,然后获取路径规划结果,进而执行抓取和放置操作。 |
文件路径 |
Mech-Vision和Mech-Viz软件安装目录下 该文件包含三个子程序(Sample_1、Sample_2和Sample_3。本节只讲解Sample_2子程序相关的内容。 |
所需工程 |
Mech-Vision工程和Mech-Viz工程 |
使用前提 |
|
此样例程序仅是示例程序。用户需根据实际情况在此基础上进行修改,请勿直接使用该程序。 |
程序解读
以下为Sample_2样例程序的代码及相关解释说明。
Sub Sample_2
'-------------------------------
'FUNCTION:simple pick and place
'with Mech-Viz
'Mech-Mind, 2022-8-4
'-------------------------------
'Getting control of the robot.
TakeArm Keep = 0
'move to the home position
Move P, P[1],speed=80
'move to the camera position
Move P,@C P[2],speed=80
Open_socket
'set vision recipe
MM_Set_Model 1,1
Delay 100
'Run Viz project
MM_Start_Viz 2,0
Delay 500
'set branch exitport
MM_Set_Branch 1,1
'get result from Viz
MM_Get_VizData 2,1,2,3
IF I[3]<>2100 THEN
stop
END IF
'set the first pos to P20
'set lables to I11
'set speed to I12
MM_Get_Pose 1,20,11,12
Approach P, P[20], 100
Move L,@C P[20],speed=80
'enable girpper
Set IO[24]
Approach L, P[20], 100
Move P, P[3],speed=80
'drop point
Move L,@C P[4],speed=80
'release gripper
Reset IO[24]
'Giving up control of the robot
GiveArm
Close_socket
End Sub
上述样例程序代码对应的流程如下图所示。
下表为上述程序的逻辑解读。用户单击指令名称的超链接便可查看该指令的详细说明。
流程 | 代码及说明 | ||
---|---|---|---|
获取控制权 |
TakeArm Keep = 0 获取机械臂组的控制权,同时进行以下初始化。
|
||
移动到Home点 |
机器人以80%的移动速度从当前位置向Home点(P[1])移动。第一个参数P表示以PTP(Point to Point)方式移动。
|
||
移动到拍照点 |
机器人以80%的移动速度从当前位置向拍照点(P[2])移动。@C表示根据编码值,确认变换坐标后的臂前端位置和姿势到达目标时执行下一行指令。
|
||
建立通信 |
机器人通过Open_socket指令与视觉系统之间建立TCP协议通信连接。 |
||
切换Mech-Vision参数配方 |
因此,整条指令表示将Mech-Vision工程1的参数配方切换成编号为1的参数配方。
Delay表示在指定的延迟时间[ms]内使任务处于待机状态。上述语句表示机器人待机100ms,以确保Mech-Vision有足够的时间切换参数配方。 |
||
触发运行Mech-Vision工程 |
因此,整条指令表示机器人触发视觉系统运行Mech-Viz工程,且将J[0]表示的关节角数据传入Mech-Viz工程。
上述语句表示机器人待机500ms,以确保相机有足够的时间进行拍照。 |
||
设置Mech-Viz消息分支出口 |
因此,整条指令表示Mech-Viz工程在编号为1的“消息分支”步骤处将沿出口0继续执行,如下图所示。 |
||
获取规划路径 |
因此,整条指令表示机器人获取Mech-Viz工程返回的规划路径。
当状态码I[3]为2100时,则机器人成功获取到规划路径;否则视觉系统发生异常。用户可根据具体异常状态码做相应的处理。 |
||
转存规划路径 |
因此,整条指令表示将第一个路径点的工具位姿、标签和速度分别转存至指定变量。 |
||
移动到抓取接近点 |
机器人以PTP方式移动至抓取接近点。100表示相对于P[20]的Z轴负方向100mm处(即机器人移动到抓取点上方的100mm处,到达抓取接近点)。
|
||
移动到抓取点 |
机器人以直线移动方式从抓取接近点移动到抓取点(P[20])。 |
||
设置DO执行抓取 |
Set IO[24] 机器人移动到抓取点后,通过设置DO指令(例如“Set IO[24]”),控制末端工具进行抓取。用户需根据实际场景增加设置DO的操作。 |
||
移动到抓取离开点 |
机器人移动到抓取点上方的100mm处,即到达抓取离开点。
|
||
移动到中间过渡点 |
机器人移动至抓取离开点与放置点之间的某个过渡点(P[3])。
|
||
移动到放置点 |
|||
设置DO执行放置 |
Reset IO[24] 机器人移动到放置点后,通过设置DO指令(例如“Reset IO[24]”),控制末端工具进行放置。用户需根据实际场景增加设置DO的操作。 |
||
解除控制权 |
明确解除当前所获取机械臂组的控制权。 |
||
关闭通信 |
机器人通过Close_socket指令断开与视觉系统之间的TCP协议通信连接。 |