样例程序3:MMS3VisPath

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

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

程序简介

功能说明

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

文件路径

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

所需工程

Mech-Vision工程

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

使用前提

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

  2. 已完成自动标定

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

程序解读

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

  #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
  MM_SET_MOD(1,1,MM_Status)
  If MM_Status <> 1107 Then
    Hlt
  EndIf
  MM_START_VIS(1,5,1,JntSend,MM_Status)
  If MM_Status <> 1102 Then
    Hlt
  EndIf
  Dim MM_Result(20,8)
  MM_GET_VISP(1,2,5,MM_Status,MM_WayPt_Num,MM_VPos_Num,MM_Result)
  If MM_Status <> 1103 Then
    Hlt
  EndIf
  MM_GET_POS(MM_Result,1,PPick_pre,MM_Label,MM_ToolID)
  MM_GET_POS(MM_Result,2,PPick,MM_Label2,MM_ToolID2)
  MM_GET_POS(MM_Result,3,PPick_after,MM_Label3,MM_ToolID3)
  MM_DROP_COM()
  Mov PPick_pre
  Mvs PPick
  Fine 0,P
  Mvs PPick
  Hlt
  Mvs PPick_after

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

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-Vision工程并验证状态码

  MM_START_VIS(1,5,1,JntSend,MM_Status)
  If MM_Status <> 1102 Then
    Hlt
  EndIf
  • MM_START_VIS:触发运行Mech-Vision工程的指令。

  • 第一个1:Mech-Vision工程编号。

  • 5:期望Mech-Vision工程返回的视觉点数量。

  • 第二个1:将机器人的当前法兰位姿传入Mech-Vision工程。

整条指令表示机器人触发视觉系统运行编号为1的Mech-Vision工程,且期望Mech-Vision工程返回5视觉点。

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

获取Mech-Vision工程规划的路径

  Dim MM_Result(20,8)
  MM_GET_VISP(1,2,5,MM_Status,MM_WayPt_Num,MM_VPos_Num,MM_Result)
  If MM_Status <> 1103 Then
    Hlt
  EndIf
  • MM_GET_VISP:触发获取Mech-Vision规划路径的指令。

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

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

  • 2:指定获取路径点的位姿形式为工具位姿。

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

整条指令表示机器人获取Mech-Vision工程1返回的规划路径。

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

转存规划路径

  MM_GET_POS(MM_Result,1,PPick_pre,MM_Label,MM_ToolID)
  MM_GET_POS(MM_Result,2,PPick,MM_Label2,MM_ToolID2)
  MM_GET_POS(MM_Result,3,PPick_after,MM_Label3,MM_ToolID3)
  • MM_GET_POS:转存规划路径的指令。 以第一条为例

  • MM_Result:用于存储规划路径的二元数组。

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

  • PPick_pre:用于存储第一个路径点的关节角。

  • MM_Label:用于存储第一个路径点的标签。

  • MM_ToolID:用于存储第一个路径点的工具编号。

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

断开通信

  MM_DROP_COM()

移动到抓取接近点

  Mov PPick_pre
  Fine 0,P

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

移动到抓取点

  Mov PPick
  Hlt

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

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

移动到抓取离开点

  Mvs PPick_after

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

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

该页面是否有帮助?

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

我们重视您的隐私

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