样例程序13:MM_S13_Vis_MoveInAdvance
程序简介
功能说明 |
在触发Mech-Vision工程运行后,机器人在相机拍照完成后便可提前移动,无需等待Mech-Vision工程运行结束。该样例适用于相机安装方式为EIH的场景。 |
||
文件路径 |
Mech-Vision和Mech-Viz软件安装目录下
|
||
所需工程 |
Mech-Vision工程(相机的安装方式为EIH) |
||
使用前提 |
|
此样例程序仅是示例程序。用户需根据实际情况在此基础上进行修改,请勿直接使用该程序。 |
程序解读
以下为MM_S13_Vis_MoveInAdvance样例程序的代码及相关解释说明。
与MM_S1_Vis_Basic样例相比,本样例仅新增了拍照完成即可移动的功能(加粗部分的代码)。因此,下文不再重复解释与MM_S1_Vis_Basic样例相同部分的代码(详情请参考MM_S1_Vis_Basic样例说明)。 |
MODULE MM_S13_Vis_MoveInAdvance
!----------------------------------------------------------
! FUNCTION: trigger Mech-Vision project then move to
! wait position and get vision pose in EIH setup
! Mech-Mind, 2023-12-25
!----------------------------------------------------------
!define local num variables
LOCAL VAR num pose_num:=0;
LOCAL VAR num status:=0;
LOCAL VAR num label:=0;
LOCAL VAR num toolid:=0;
!define local joint&pose variables
LOCAL CONST jointtarget home:=[[0,0,0,0,90,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL CONST jointtarget snap_jps:=[[0,0,0,0,90,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget camera_capture:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget pick_wait_point:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget pick_waypoint:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget pickpoint:=[[-66.3475,-105.248,985.956],[0.000237259,-0.998599,0.0528747,0.00188901],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget drop_waypoint:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget drop:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
!define local tooldata variables
LOCAL PERS tooldata gripper1:=[TRUE,[[0,0,0],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];
PROC Sample_13()
!set the acceleration parameters
AccSet 50, 50;
!set the velocity parameters
VelSet 50, 1000;
!move to robot home position
MoveAbsJ home\NoEOffs,v3000,fine,gripper1;
!initialize communication parameters (initialization is required only once)
MM_Init_Socket "127.0.0.1",50000,300;
!move to image-capturing position
MoveL camera_capture,v1000,fine,gripper1;
!open socket connection
MM_Open_Socket;
!trigger NO.1 Mech-Vision project
MM_Start_Vis 1,0,1,snap_jps;
!move to wait position for picking
MoveL pick_wait_point,v1000,z50,gripper1;
!get vision result from NO.1 Mech-Vision project
MM_Get_VisData 1,pose_num,status;
!check whether vision result has been got successfully
IF status<>1100 THEN
!add error handling logic here according to different error codes
!e.g.: status=1003 means no point cloud in ROI
!e.g.: status=1002 means no vision result
Stop;
ENDIF
!close socket connection
MM_Close_Socket;
!save first vision point data to local variables
MM_Get_Pose 1,pickpoint,label,toolid;
!move to intermediate waypoint of picking
MoveJ pick_waypoint,v1000,z50,gripper1;
!move to approach waypoint of picking
MoveL RelTool(pickpoint,0,0,-100),v1000,fine,gripper1;
!move to picking waypoint
MoveL pickpoint,v300,fine,gripper1;
!add object grasping logic here, such as "setdo DO_1, 1;"
Stop;
!move to departure waypoint of picking
MoveL RelTool(pickpoint,0,0,-100),v1000,fine,gripper1;
!move to intermediate waypoint of placing
MoveJ drop_waypoint,v1000,z50,gripper1;
!move to approach waypoint of placing
MoveL RelTool(drop,0,0,-100),v1000,fine,gripper1;
!move to placing waypoint
MoveL drop,v300,fine,gripper1;
!add object releasing logic here, such as "setdo DO_1, 0;"
Stop;
!move to departure waypoint of placing
MoveL RelTool(drop,0,0,-100),v1000,fine,gripper1;
!move back to robot home position
MoveAbsJ home\NoEOffs,v3000,fine,gripper1;
ENDPROC
ENDMODULE
上述样例程序代码对应的流程如下图所示。
下表为拍照完成即可移动的逻辑解读。用户单击指令名称的超链接便可查看该指令的详细说明。
流程 | 代码及说明 | ||||
---|---|---|---|---|---|
机器人在拍照完成后即可移动 |
在EIH场景中,为了让机器人在相机拍照完成后能够移动而不必等待Mech-Vision工程运行结束,用户可以在Mech-Vision软件中依次单击 ,勾选拍照完成再返回“1102:触发成功”。这样机器人在触发Mech-Vision工程并接收到“1102:触发成功”后,便可以开始移动,从而缩短节拍。如果用户未进行下图中的设置,当Mech-Vision工程成功开始运行后,视觉系统便立即向机器人返回1102状态码,此时机器人无法立即移动,因为无法判断相机是否完成拍照,所以机器人只能等待Mech-Vision工程运行结束后再移动。
上述代码表示,机器人在拍照完成后,便可移动至抓取等待点,如此Mech-Vision工程运行和机器人移动可并行执行,从而缩短节拍。
|