Example Program 1: MMS1VisBasic

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/MMS1VisBasic path.

Project

Mech-Vision project

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

  #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,0,1,JntSend,MM_Status)
  If MM_Status <> 1102 Then
    Hlt
  EndIf
  Dim MM_Result(20,8)
  MM_GET_VIS(1,5,MM_VisionPt_Num,MM_Status,MM_Result)
  If MM_Status <> 1100 Then
    Hlt
  EndIf
  MM_GET_POS(MM_Result,1,PPick,MM_Label1,MM_ToolID1)
  MM_DROP_COM()
  PPick_pre=PPick
  PPick_pre.Z=PPick.Z+200
  Mov PPick_pre
  Fine 0,P
  Mvs PPick
  Hlt
  Mvs PPick_pre

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_COM: 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,0,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 Mech-Vision project ID.

  • 0: 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 executed the Mech-Vision project.

Define a two-dimensional array

  Dim MM_Result(20,8)

Used to store positions, labels, and tool data.

Obtain the vision result and verify the status code

  MM_GET_VIS(1,5,MM_VisionPt_Num,MM_Status,MM_Result)
  If MM_Status <> 1100 Then
    Hlt
  EndIf
  • MM_GET_VIS: The command to obtain the vision result.

  • 1: The Mech-Vision project ID.

  • 5: This parameter indicates the number of obtained vision points. The entire statement indicates that the robot obtains the vision result from the project with an ID of 1.

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

Store the vision result

  MM_GET_POS(MM_Result,1,PPick,MM_Label1,MM_ToolID1)
  • MM_GET_POS: The command to store the vision result.

  • MM_Result: The vision result.

  • 1: The first vision point is stored.

  • PPick: Stores the pose of the first vision point, which is the tool pose of the picking point.

  • MM_Label1: Stores the label corresponding to the first vision point.

  • MM_ToolID1: Stores the tool ID corresponding to the first vision point.

The tool pose of the first vision point or waypoint will be stored in the position variable PPick, the label will be stored in the numeric variable MM_Label1, and the tool ID will be stored in the numeric variable MM_ToolID1.

Disconnect the communication

  MM_DROP_COM()

Set the approach and the departure waypoint

  PPick_pre=PPick
  PPick_pre.Z=PPick.Z+200

Assign the value of PPick to PPick_pre, and increase the Z-axis height of PPick_pre by 200 to serve as the approach and departure point.

Move to the approach waypoint of picking

  Mov PPick_pre
  Fine 0,P

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

Move to the picking waypoint

  Mvs 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_pre

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.