样例程序2:MM_S2_Viz_Basic
程序简介
Mech-Vision和Mech-Viz软件安装目录下Communication Component/Robot_Interface/TOPSTAR/MM_S2_Viz_Basic。
功能说明 |
机器人触发Mech-Viz工程运行,然后获取路径规划结果,进而执行抓取和放置操作。 |
文件路径 |
Mech-Vision和Mech-Viz软件安装目录下 |
所需工程 |
Mech-Vision工程和Mech-Viz工程 |
使用前提 |
| 此样例程序仅是示例程序。用户需根据实际情况在此基础上进行修改,请勿直接使用该程序。 |
程序解读
以下为MM_S2_Viz_Basic样例程序的代码及相关解释说明。
— 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()
--trigger Mech-Viz project
TOP_Status = MM_Start_Viz(2)
print("Vision system status code:",TOP_Status)
--check whether the Mech-Vision project has been triggered successfully
if TOP_Status ~= 2103 then
print("Abnormal vision system status!!!",TOP_Status)
Pause()
end
--Set branch
TOP_Status = MM_Set_Branch(1,1)
print("Vision system status code:",TOP_Status)
--check whether the branch has been set successfully
if TOP_Status ~= 2105 then
print("Failed to set the branch!!!",TOP_Status)
Pause()
end
--get planned path
TOP_Status,TOP_Last_Data,TOP_Pos_Num,TOP_VisPosNum=MM_Get_VizData(1)
print("Planned path:",TOP_Status,TOP_Last_Data,TOP_Pos_Num)
--check whether planned path has been got from Mech-Viz successfully
if TOP_Status ~= 2100 then
print("Failed to get the planned data!!!",TOP_Status)
Pause()
end
--save waypoints of the planned path to local variables one by one
MM_Get_JPR(1,10,20,30)
MM_Get_JPR(2,11,21,31)
MM_Get_JPR(3,12,22,32)
--move to picking waypoint
MovJ(JPR[10],{cnt = -1})
--Mov grabbing point
MovJ(JPR[11],{cnt = -1})
--add object grasping logic here, such as "setdo DO_1, 1;"
Pause()
--move to departure waypoint of picking
MovJ(JPR[12],{cnt = -1})
上述样例程序代码对应的流程如下图所示。
下表为上述程序的逻辑解读。用户单击指令名称的超链接便可查看该指令的详细说明。
| 流程 | 代码及说明 | ||
|---|---|---|---|
导入MM_Module头文件 |
|
||
初始化和建立通信 |
先关闭通信再重新连接确保没有连接中的工程。 |
||
启动Viz,返回状态码 |
|
||
打印状态码并验证 |
|
||
设置Mech-Viz消息分支出口 |
|
||
打印状态码并验证 |
|
||
获取规划路径 |
整条指令表示将第一个视觉点的工具位姿、标签和末端工具编号分别转存至指定寄存器。 |
||
打印状态码并验证 |
|
||
转存规划路径 |
|
||
移动至第一个规划点 |
|
||
移动到抓取点 |
机器人从抓取接近点移动到抓取点。 |
||
设置DO执行放置 |
机器人移动到抓取点后,通过设置DO指令(例如“setdo DO_1, 1”),控制末端工具进行抓取。用户需根据实际场景增加设置DO的操作。
|
||
移动到放置离开点 |
机器人移动到抓取点上方的某处,即到达抓取离开点。
|