样例程序5:MMS5VIZUSER

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

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

程序简介

功能说明

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

文件路径

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

所需工程

Mech-Vision工程

Mech-Vision工程需包含路径规划步骤,且输出步骤的端口类型参数需要设置为“预定义(机器人路径)”。

使用前提

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

  2. 已完成自动标定

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

程序解读

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

  #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(10,9)
  Dim MM_VisionInfo(10,21)
  Dim MM_VisionData(21)
  MM_GET_VMD (0,2,4,MM_Status,MM_VisionPt_Num,MM_VPos_Num,MM_Result,MM_VisionInfo)
  If MM_Status <> 2100 Then
    Hlt
  EndIf
  MM_GET_VMP(MM_Result,MM_VisionInfo,1,PPick,MM_MotionType,MM_ToolID,MM_Velocity,MM_VisionData)
  MM_DROP_COM()
  PPick_pre=PPick
  PPick_pre.Z=PPick_pre.Z+100
  Mov PPick_pre
  Fine 0,P
  Mvs PPick
  Hlt
  Mvs PPick_pre

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

sample1

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

流程 代码及说明

导入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(10, 9)
  Dim MM_VisionInfo(10, 21)
  Dim MM_VisionData(21)
  • Dim MM_Result(10,8):定义二元数组,用于存储路径点。

  • Dim MM_VisionInfo(10, 21):定义二元数组,用于接收视觉处理进行规移动的规划结果。

  • Dim MM_VisionData(21):定义二元数组,用于存储通过视觉处理进行移动的规划结果。

获取规划路径

  MM_GET_VMD(0,2,4,MM_Status,MM_VisionPt_Num,MM_VPos_Num,MM_Result,MM_VisionInfo)
  If MM_Status <> 2100 Then
    Hlt
  EndIf
  • MM_GET_VMD:获取视觉结果的指令。通过该指令获取的视觉点,除了包含位姿和标签外,还将包含自定义数据。

  • 0:指定Mech-Vision的工程编号为0

  • 2:指定路径点的位姿类型为中心点位姿。

  • 4:期望的回复内容为路径点数据和通过视觉处理进行移动的规划结果

  • MM_Status:该变量存储指令执行的状态码。

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

  • MM_VPos_Num:该变量存储路径点位置编号。

  • MM_Result:该变量存储规划路径点。

  • MM_VisionInfo:该变量存储通过视觉处理进行移动的规划结果。

整条指令表示从Mech-Vision项目0获取计划路径通过视觉处理进行移动的规划结果。

  • <>:不相等。 当状态码MM_Status为2100时,机器人成功获取规划结果。

转存规划路径

  MM_GET_VMP(MM_Result,MM_VisionInfo,1,PPick,MM_MotionType,MM_ToolID,MM_Velocity,MM_VisionData)
  • MM_GET_VMP:转存规划路径的指令。 以第一条为例

  • MM_Result:该变量存储规划路径结果。

  • MM_VisionInfo:该变量存储通过视觉处理进行移动的规划结果。

  • 1:指定要保存数据的索引号。

  • PPick:该变量存储路径点的工具位姿。

  • MM_MotionType:该变量存储机器人的移动方式。

  • MM_ToolID:该变量存储数据索引号对应的路径点的工具编号。

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

断开通信

  MM_DROP_COM()

设置抓取接近点和离开点

  PPick_pre=PPick
  PPick_pre.Z=PPick_pre.Z+100

将PPick的值赋予PPick_pre,增加PPick_pre的Z轴高度200,作为抓取接近点和离开点。

移动到抓取接近点

  Mov PPick_pre
  Fine 0,P

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

移动到抓取点

  Mov PPick
  Hlt

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

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

移动到抓取离开点

  Mvs PPick_after

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

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

该页面是否有帮助?

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

我们重视您的隐私

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