Example Program 1: MM_S1_Vis_Basic
Program Introduction
Description |
The robot triggers the Mech-Vision project to run, and then obtains the vision result for picking and placing the object. |
File Name |
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_S1_Vis_Basic example program.
— This is a LUA program.
require("MM_Module")
IP_Address = "192.168.1.8"
Server_Port = 50000
Time_Out = 60
--initialize communication parameters (initialization is required only once)
MM_Init_Socket(IP_Address,Server_Port,Time_Out)
--close socket connection
MM_Close_Socket()
--open socket connection
MM_Open_Socket()
--switch recipe of NO.1 Mech-Vision project
TOP_Status=MM_Switch_Model(1,1)
print("Vision system status code:",TOP_Status)
---check whether the recipe is switched successful
if TOP_Status ~= 1107 then
print("Abnormal vision system status!!!",TOP_Status)
Pause()
end
--trigger NO.1 Mech-Vision project
TOP_Status = MM_Start_Vis(1,1,1,JP[100])
print("Vision system status code:",TOP_Status)
--check whether the Mech-Vision project has been triggered successfully
if TOP_Status ~= 1102 then
print("Abnormal vision system status!!!",TOP_Status)
Pause()
end
--get vision result from NO.1 Mech-Vision project
TOP_Status,TOP_Last_Data,TOP_Pos_Num = MM_Get_VisData(1)
print("Vision result:",TOP_Status,TOP_Last_Data,TOP_Pos_Num)
--check whether vision result has been got successfull
if TOP_Status ~= 1100 then
print("Failed to obtain vision result!!!",TOP_Status)
Pause()
end
--save first vision point data to local variables
MM_Get_Pose(1,20,50,60)
local pose1 = NewPose(0, 0, 200, 0, 0, 0)
--move to approach waypoint of picking
MovL(PR[20],{cnt = -1,uof = pose1})
--move to picking waypoint
MovL(PR[20],{cnt = -1})
--add object grasping logic here, such as "setdo DO_1, 1
Pause()
--move to departure waypoint of picking
MovL(PR[20],{cnt = -1,uof = pose1})
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 | ||
|---|---|---|---|
Include the MM_Module header file |
|
||
Initialize communication parameters |
Close the communication first, then reconnect to ensure no project is currently connected. |
||
Switch Mech-Vision Parameter Recipe |
|
||
Print the status code and verify |
|
||
Trigger the Mech-Vision project to run |
|
||
Print the status code and verify |
|
||
Get Vision Result |
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 vision points. |
||
Print the vision results and verify |
|
||
Store the vision result |
This instruction writes the tool pose, label, and end-effector tool number of the first vision point into the specified registers, respectively. |
||
Move to the approach waypoint of picking |
|
||
Move to the picking waypoint |
The robot moves from the approach waypoint of picking to the picking waypoint linearly. |
||
Set DO commands to perform picking |
After the robot moves to the picking waypoint, you can set a DO command (such as setdo DO_1, 1;) 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 position above the picking waypoint and reaches the departure waypoint of picking.
|