Example Program 4: MMS4VISUser

You are currently viewing the documentation for a pre-release version (2.2.0). To access documentation for other versions, click the "Switch Version" button located in the upper-right corner of the page.

■ If you're unsure about the version of the product you are using, please contact Mech-Mind Technical Support for assistance.

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 Communication Component/Robot_Interface/MELFA/MMS4VISUser path.

Project

Mech-Vision project

The Mech-Vision project should contain a Path Planning Step, and the Port Type parameter of the Output Step should be set to Predefined (robot path).

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 MMS4VISUser example program.

  #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_VIS(1,0,1,JntSend,MM_Status)
  If MM_Status <> 1102 Then
    Hlt
  EndIf
  Dim MM_Result(10, 8)
  Dim MM_CustInfo(10,15)
  MM_GET_CUST (1,MM_Status,MM_VisionPt_Num,MM_CustInfo_Num,MM_Result,MM_CustInfo)
  If MM_Status <> 1100 Then
    Hlt
  EndIf
  Dim MM_CustData(10, 15)
  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,1,PPick_pre, MM_Label1,MM_CustData)
  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,2,PPick,MM_Label2,MM_CustData)
  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,3,PPick_after,MM_Label3,MM_CustData)
  MM_DROP_COM()
  Mov PPick_pre
  Fine 0,P
  Mvs PPick
  Hlt
  Mvs PPick_after

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

  #Include "MMMODULE"

Initialize communication parameters

  MM_DROP_COM()
  Mcomnum = 7
  MM_INT_COM(Mcomnum)
  • MM_DROP_COM: command to terminate the communication.

  • MM_INIT_SKT: The command to initialize the communication.

Close the communication first, then reconnect to ensure no project is currently connected.

Reset the control points to their initial values and declare the tool variables

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

Switch the Mech-Vision system’s parameter recipe and verify the status code.

  MM_SET_MOD(1,1,MM_Status)
  If MM_Status <> 1107 Then
    Hlt
  EndIf
  • MM_SET_MOD: The command to switch the Mech-Vision parameter recipe.

  • First 1: The Mech-Vision project ID.

  • Second 1: The ID of the parameter recipe in the Mech-Vision project.

  • <>: Not equal. When MM_Status is 1107, the robot has successfully switched the parameter recipe.

Trigger the Mech-Vision project to run and verify the status code.

  MM_START_VIS(1,5,1,JntSend,MM_Status)
  If MM_Status <> 1102 Then
    Hlt
  EndIf
  • MM_START_VIS: The command to trigger the Mech-Vision project to run.

  • First 1: The ** project ID.

  • 5: Set the number of vision points to be sent by Mech-Vision.

  • Second 1:Specify that the robot flange pose must be input to the Mech-Vision project.

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.

  • <>: Not equal. When MM_Status is 1102, the robot has successfully switched the parameter recipe.

Define and declare the storage containers

  Dim MM_Result(10, 8)
  Dim MM_CustInfo(10,15)
  • Dim MM_Result(10,8): Define a two-dimensional array for storing path points.

  • Dim MM_Result(10,15): Define a two-dimensional array for custom data.

Obtain the vision result (including the custom data)

  MM_GET_CUST (1,MM_Status,MM_VisionPt_Num,MM_CustInfo_Num,MM_Result,MM_CustInfo)
  If MM_Status <> 1100 Then
    Hlt
  EndIf
  • MM_GET_CUST: The command to obtain the vision result. The vision point retrieved by this command includes not only pose and label, but also custom data.

  • 1: Specify the Mech-Vision project ID.

  • MM_Status: The variable that stores the command execution status code.

  • MM_VisionPt_Num: This variable stores the number of vision points returned by the vision system.

The entire statement indicates that the robot obtains the vision result from the Mech-Vision project with an ID of 1. The vision result includes custom data.

  • <>: Not equal. When MM_Status is 1100, the robot has successfully acquired the vision result.

Define and declare the storage containers

  Dim MM_CustData(10,15)
  • Dim MM_Result(10,15): Define a two-dimensional array for custom data.

Store the vision result (including the custom data)

  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,1,PPick_pre, MM_Label1,MM_CustData)
  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,2,PPick,MM_Label2,MM_CustData)
  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,3,PPick_after,MM_Label3,MM_CustData)
  • MM_GET_CUSTP: The command to store the vision result. Take the first item as an example

  • MM_Result: This variable stores the vision results (a series of vision points).

  • MM_CustInfo_Num: This variable stores the number of custom data items.

  • MM_CustInfo: This variable stores custom data.

  • 1: Specifies the index number of the vision point.

  • PPick_pre: This variable stores the tool pose of the first waypoint.

  • MM_Label: The variable that stores the label of the first waypoint.

  • MM_ToolID: The variable that stores the tool ID corresponding to the first waypoint.

The entire statement stores the TCP, label, and tool ID of the first vision point in the specified variables.

Disconnect the communication.

  MM_DROP_COM()

Move to the approach waypoint of picking

  Mov PPick_pre
  Fine 0,P

Move to the grasp approach point and set absolute positioning for arrival.

Move to the picking waypoint

  Mov PPick
  Hlt

The robot moves from the approach waypoint of picking to the picking waypoint linearly.

Hlt indicates to stop the program execution. If you have added a statement to set a DO command, you can delete the PAUSE statement here.

Move to the departure waypoint of picking

  Mvs PPick_after

The robot moves to position above the picking waypoint and reaches the departure waypoint of picking.

Adding departure waypoints of picking can prevent the robot from colliding with objects (such as bins) in the scene when moving. You can modify the Z-axis negative offset based on the actual scenario to ensure that no collision occurs during the departing process.

Is this page helpful?

You can give a feedback in any of the following ways:

We Value Your Privacy

We use cookies to provide you with the best possible experience on our website. By continuing to use the site, you acknowledge that you agree to the use of cookies. If you decline, a single cookie will be used to ensure you're not tracked or remembered when you visit this website.