Example Program 3: MM_S3_Vis_Path
Program Introduction
Description |
The robot triggers the Mech-Vision project to run, and then obtains the planned path for picking and placing. |
||
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 project
|
||
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_S3_Vis_Path example program.
NOP
'--------------------------------
'FUNCTION: trigger Mech-Vision
'project and get planned path
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P071 P071
SUB P072 P072
SUB P073 P073
'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
'trigger NO.1 Mech-Vision project
CALL JOB:MM_START_VIS ARGF"1;0;2;30"
'get planned path from NO.1
'Mech-Vision project; 2nd
'argument (1) means getting pose
'in JPs
CALL JOB:MM_GET_VISPATH ARGF"1;1;51;52;53"
'check whether planned path has
'been got from Mech-Vision
'successfully
IFTHENEXP I053<>1103
'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 results
PAUSE
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
END
The workflow corresponding to the above example program code is shown in the figure below.
The table below explains the above program. You can click the hyperlink to the command name to view its detailed description.
Feature | Code and description | ||
---|---|---|---|
Initialize variables |
The entire statement indicates to clear data of integer variables I050 to I069 (a total of 20 variables) by setting them to 0.
The above two statements indicate that the position variables P071, P072, and P073 are set to 0. |
||
Move to the home position |
The entire statement indicates that the robot moves to the taught home position by using joint position movement. |
||
Initialize communication parameters |
The robot sends the MM_INIT_SOCKET command to set the IP address, port number, and timeout period of the communication object (the IPC) to 192.168.170.22, 50000, and 1 minute.
|
||
Move to the image-capturing position |
The entire statement indicates that the robot moves to the taught image-capturing position by using joint position movement. |
||
Establish the communication |
The TCP communication between the robot and the vision system is established by using the MM_OPEN_SOCKET command. |
||
Trigger the Mech-Vision project to run |
The entire statement indicates that the robot triggers the vision system to run the Mech-Vision project with an ID of 1 and expects the Mech-Vision project to return all waypoints. |
||
Obtain the planned path |
The entire statement indicates that the robot obtains the planned path from the Mech-Vision project that has an ID of 1.
The above statement indicates that when the status code in I052 is 1103, the robot has successfully obtained the planned path; otherwise, an exception has occurred in the vision system and the program executes the code between IFTHENEXP and ENDIF. You can perform the corresponding operation based on the specific error code. In this example program, all error codes are handled in the same way, by pausing the program execution using the PAUSE command. |
||
Close the communication |
The TCP communication between the robot and the vision system is closed by using the MM_CLOSE_SOCKET command. |
||
Store the planned path |
The entire command “CALL JOB:MM_GET_JPS ARGF"1;71;61;62"” stores the joint positions, label, and tool ID of the first waypoint in the specified variables.
|
||
Move to the approach waypoint of picking |
The robot moves to the approach waypoint of picking (the position represented by P071). |
||
Move to the picking waypoint |
The robot moves to the picking waypoint (the position represented by P072). |
||
Set DOs to perform picking |
After the robot moves to the picking waypoint, you can set a DO command (such as “DOUT OT#(1) ON”) to control the robot to use the tool to perform picking. Please set DO commands based on the actual situation.
|
||
Move to the departure waypoint of picking |
The robot moves to the departure waypoint of picking (the position represented by P073). |
||
Move to the intermediate waypoint |
The robot moves to a intermediate waypoint between the departure waypoint of picking and the approach waypoint of placing.
|
||
Move the robot to the approach waypoint of placing |
The robot moves from the intermediate waypoint to the approach waypoint of placing.
|
||
Move to the placing waypoint |
The robot moves from the approach waypoint of placing to the placing waypoint.
|
||
Set DO commands to perform placing |
After the robot moves to the placing waypoint, you can set a DO command (such as “DOUT OT#(1) OFF”) to control the robot to use the tool to perform placing. Please set DO commands based on the actual situation.
|
||
Move the robot to the departure waypoint of placing |
The robot moves from the placing waypoint to the departure waypoint of placing.
|
||
Move to the home position |
The robot moves from the departure waypoint of placing to the home waypoint again.
|