Example Program 6: MM_S6_Viz_ErrorHandle
Program Introduction
Description |
The robot starts the Mech-Viz project, obtains the planned path, and then determines whether the planned path is obtained successfully according to the status code. If the planned path is obtained successfully, the robot will perform picking and placing; otherwise, the robot will pause. |
File path |
You can navigate to the installation directory of Mech-Vision and Mech-Viz and find the file by using the |
Project |
Mech-Vision and Mech-Viz projects |
Prerequisites |
|
This example program is provided for reference only. Before using the program, please modify the program according to the actual scenario. |
Program Description
This part describes the MM_S6_Viz_ErrorHandle example program.
The only difference between the MM_S6_Viz_ErrorHandle example program and the MM_S2_Viz_Basic example program is that MM_S6_Viz_ErrorHandle can handle errors based on the different error codes (this code of this feature is bolded). As such, only the feature of handling errors based on the specific error codes is described in the following section. For information about the parts of MM_S6_Viz_ErrorHandle that are consistent with those of MM_S2_Viz_Basic, see Example Program 2: MM_S2_Viz_Basic. |
NOP
'--------------------------------
'FUNCTION: trigger Mech-Viz
'project and get planned path,
'handle errors according to
'status codes (if no point cloud
'in ROI, retry several times
'before exit loop)
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P071 P071
SUB P072 P072
SUB P073 P073
'initialize i variables
SET I005 0
'move to robot home position
MOVJ C00000 VJ=50.00
'initialize communication
'parameters (initialization is
'required only once)
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
'open socket connection
CALL JOB:MM_OPEN_SOCKET
*RECAP
'trigger Mech-Viz project
CALL JOB:MM_START_VIZ ARGF"2;30"
'get planned path, 1st argument
'(1) means getting pose in JPs
CALL JOB:MM_GET_VIZDATA ARGF"1;51;52;53"
'check whether planned path has
'been got from Mech-Viz
'successfully
IFTHENEXP I053<>2100
IFTHENEXP I053=2038
'no point cloud in ROI, add
'error handling logic here
'self-adding then check retry
'counter
INC I005
IFTHENEXP I005<3
'jump back to vision retry label
'if the number of retry times is
'less than 3
JUMP *RECAP
ELSE
'reset counter and exit loop if
'the number of retry times has
'reached 3
SET I005 0
JUMP *ENDLOOP
ENDIF
ELSE
'add other error handling logic
'here
PAUSE
JUMP *ENDLOOP
ENDIF
ENDIF
'close socket connection
CALL JOB:MM_CLOSE_SOCKET
'save waypoints of the planned
'path to local variables one
'by one
CALL JOB:MM_GET_JPS ARGF"1;71;61;62"
CALL JOB:MM_GET_JPS ARGF"2;72;63;64"
CALL JOB:MM_GET_JPS ARGF"3;73;65;66"
'follow the planned path to pick
'move to approach waypoint of
'picking
MOVJ P071 VJ=50.00 PL=0
'move to picking waypoint
MOVJ P072 VJ=10.00 PL=0
'add object grasping logic here,
'such as DOUT OT#(1) ON
PAUSE
'move to departure waypoint of
'picking
MOVJ P073 VJ=50.00 PL=0
'move to intermediate waypoint of
'placing
MOVJ C00002 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00003 V=166.6 PL=0
'move to placing waypoint
MOVL C00004 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE
'move to departure waypoint of
'placing
MOVL C00005 V=166.6 PL=0
'move back to robot home position
MOVJ C00006 VJ=50.00
*ENDLOOP
PAUSE
END
The workflow corresponding to the above example program code is shown in the figure below.
The table below describes the feature to process different status codes.
Feature | Code and description | ||
---|---|---|---|
Process different status codes |
After MM_GET_VIZDATA is executed, the robot stores the received status code in the I053 variable. You can perform the corresponding operation based on the specific received error code.
|