样例程序2:MMS2VizBasic

您正在查看预发布版本(V2.2.0)的文档。如果您想查阅其他版本的文档,可以点击页面右上角“切换版本”按钮进行切换。

■ 如果您不确定当前使用的产品是哪个版本,请随时联系梅卡曼德技术支持

程序简介

功能说明

机器人触发Mech-Viz工程运行,然后获取路径规划结果,进而执行抓取和放置操作。

文件路径

Mech-Vision和Mech-Viz软件安装目录下Communication Component/Robot_Interface/MELFA/MMS2VizBasic

所需工程

Mech-Vision工程和Mech-Viz工程

使用前提

  1. 已完成标准接口通信配置

  2. 已完成自动标定

此样例程序仅是示例程序。用户需根据实际情况在此基础上进行修改,请勿直接使用该程序。

程序解读

以下为MMS2VizBasic样例程序的代码及相关解释说明。

  #Include "MMMODULE"
  MM_DROP_COM()
  Mcomnum = 7
  MM_INIT_COM(Mcomnum)
  Tool P_NTool
  PMTool=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)
  Tool PMTool
  MM_SET_MOD(1,1,MM_Status)
  If MM_Status <> 1107 Then
    Hlt
  EndIf
  MM_START_VIZ(1,JntSend,MM_Status)
  If MM_Status <> 2103 Then
    Hlt
  EndIf
  MM_SET_BCH(1,1,MM_Status)
  If MM_Status <> 2105 Then
    Hlt
  EndIf
  Dim MM_Result(30,8)
  MM_GET_VIZ(1,5,MM_Status,MM_WayPt_Num,MM_VPos_Num,MM_Result)
  If MM_Status <> 2100 Then
    Hlt
  EndIf
  MM_GET_JNT(MM_Result,1,JntPick_pre,MM_Label,MM_ToolID)
  MM_GET_JNT(MM_Result,2,JntPick,MM_Label2,MM_ToolID2)
  MM_GET_JNT(MM_Result,3,JntPick_after,MM_Label3,MM_ToolID3)
  MM_DROP_COM()
  Mov JntPick_pre
  Fine 0,P
  Mov JntPick
  Hlt
  JntPick_after

上述样例程序代码对应的流程如下图所示。

sample2

下表为上述程序的逻辑解读。用户单击指令名称的超链接便可查看该指令的详细说明。

流程 代码及说明

导入MM_Module头文件

  #Include "MMMODULE"

初始化和建立通信

  MM_DROP_COM()
  Mcomnum = 7
  MM_INT_COM(Mcomnum)

先关闭通信再重新连接确保没有连接中的工程。

将控制点返回初始值并声明工具变量

  Tool P_NTool
  PMTool=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)
  Tool PMTool

切换Mech-Vision参数配方并验证状态码

  MM_SET_MOD(1,1,MM_Status)
  If MM_Status <> 1107 Then
    Hlt
  EndIf
  • MM_SET_MOD:切换Mech-Vision参数配方的指令。

  • 第一个1:表示Mech-Vision的工程编号

  • 第二个1:表示期望Mech-Vision工程中参数配方的编号。

  • <>:不相等。 当状态码MM_Status为1107时,机器人成功切换参数配方。

触发运行Mech-Viz工程

  MM_START_VIZ(1,JntSend,MM_Status)
  If MM_Status <> 2103 Then
    Hlt
  EndIf
  • MM_START_VIZ:触发运行Mech-Viz工程的指令。

  • 2:将JntSend变量所表示的关节角数据传入Mech-Viz工程。

整条指令表示机器人触发视觉系统运行Mech-Viz工程,然后Mech-Viz基于Mech-Vision输出的视觉结果规划机器人的抓取路径。

  • <>:不相等。 当状态码MM_Status为2103时,机器人成功运行Mech-Viz工程。

设置Mech-Viz消息分支出口

  MM_SET_BCH(1,1,MM_Status)
  If MM_Status <> 2105 Then
    Hlt
  EndIf
  • MM_SET_BCH:设置Mech-Viz消息分支出口的指令。

  • 第一个1:消息分支的步骤编号。

  • 第二个1:Mech-Viz工程将沿“消息分支”步骤的出口0继续执行。此处需注意,如果该参数设置为N,则出口为N-1。

  • <>:不相等。 当状态码MM_Status为2105时,机器人成功设置Mech-Viz消息分支出口。

获取规划路径

  Dim MM_Result(30,8)
  MM_GET_VIZ(1,5,MM_Status,MM_WayPt_Num,MM_VPos_Num,MM_Result)
  If MM_Status <> 2100 Then
    Hlt
  EndIf
  • MM_GET_VIZ:获取Mech-Viz规划路径的指令。

  • Dim MM_Result(30,8):定义二元数组,用于存储路径点。

  • 1:指定获取路径点的位姿形式为关节角。

  • 5:一次发送的最大位置数。

  • MM_WayPt_Num:该变量存储视觉系统返回的路径点个数。

  • MM_VPos_Num:该变量存储视觉移动路径点(抓取点)在路径中的位置编号。

整条指令表示将第一个视觉点的工具位姿、标签和末端工具编号分别转存至指定寄存器。

  • <>:不相等。 当状态码MM_Status为2100时,机器人成功获取Mech-Viz规划路径。

转存规划路径

  MM_GET_JNT(MM_Result,1,JntPick_pre,MM_Label,MM_ToolID)
  MM_GET_JNT(MM_Result,2,JntPick,MM_Label2,MM_ToolID2)
  MM_GET_JNT(MM_Result,3,JntPick_after,MM_Label3,MM_ToolID3)
  • MM_GET_JNT:转存规划路径的指令。 以第一条为例

  • MM_Result:该变量存储规划路径的二元数组。

  • 1:将转存第一个路径点的索引值。

  • JntPick_pre:该变量存储第一个路径点的关节角。

  • MM_Label:该变量存储第一个路径点的标签。

  • MM_ToolID:该变量存储第一个路径点的工具编号。

断开通信

  MM_DROP_COM()

移动到抓取接近点

  Mov JntPick_pre
  Fine 0,P

移动到抓取接近点,并设置绝对位置到达。

移动到抓取点

  Mov JntPick
  Hlt

机器人以直线移动方式从抓取接近点移动到抓取点。

Hlt表示停止程序的执行。用户如果已添加设置DO的语句,此处可以删除Pause语句。

移动到抓取离开点

  Mvs JntPick_after

机器人移动到抓取点上方的某处,即到达抓取离开点。

增加抓取离开点可防止机器人在移动过程中与场景物体(例如料筐)发生碰撞。用户可根据实际场景修改此处的Z轴负方向偏移量(JntPick_pre.Z值),保证离开过程无碰撞。

该页面是否有帮助?

可以通过以下方式反馈意见:

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。