Example Program 15: MM_S15_Viz_GetDoList

Program Introduction

Description

After obtaining the picking path and DO signals, the robot can perform picking and placing by moving to the picking waypoint and setting the DO signals in a loop. This example program is used in depalletizing scenarios, and the tool used by the robot is a multi-section vacuum gripper.

File path

You can navigate to the installation directory of Mech-Vision and Mech-Viz and find the file by using the Communication Component/Robot_Interface/YASKAWA/sample/MM_S15_Viz_GetDoList path.

Project

Mech-Vision project and Mech-Viz project (the tool is a depalletizing vacuum gripper)

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

Compared with the MM_S2_Viz_Basic example program, this example program contains only the following modification (the code of this modification is bolded). As such, only the modification is described in the following section. For information about the parts of MM_S15_Viz_GetDoList that are consistent with those of MM_S2_Viz_Basic, see Example Program 2: MM_S2_Viz_Basic.
NOP
'--------------------------------
'FUNCTION: trigger Mech-Viz
'project, then get planned path
'and gripper control signal using
'command 210
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P071 P071
SUB P072 P072
SUB P073 P073
'move to robot home position
MOVJ C00000 VJ=50.00
'initialize communication
'parameters (initialization is
'required only once)
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
'open socket connection
CALL JOB:MM_OPEN_SOCKET
'trigger Mech-Viz project
CALL JOB:MM_START_VIZ ARGF"2;30"
'get planned path
CALL JOB:MM_GET_PLANDATA ARGF"0;3;51;52;53"
'check whether planned path has
'been got from Mech-Viz
'successfully
IFTHENEXP I053<>2100
	'add error handling logic here
	'according to different error
	'codes
	'e.g.: I053=2038 means no
	'point cloud in ROI
	 PAUSE
ENDIF
'get gripper control signal list
CALL JOB:MM_GET_DOLIST ARGF"0;0"
'close socket connection
CALL JOB:MM_CLOSE_SOCKET
'save waypoints of the planned
'path to local variables one
'by one
CALL JOB:MM_GET_PLANPOSE ARGF"1;71;61;31"
CALL JOB:MM_GET_PLANPOSE ARGF"2;72;71;31"
CALL JOB:MM_GET_PLANPOSE ARGF"3;73;81;31"
'follow the planned path to pick
'move to approach waypoint of
'picking
MOVJ P071 VJ=50.00 PL=0
'move to picking waypoint
MOVJ P072 VJ=10.00 PL=0
'set gripper control signal when
'current waypoint is picking
'waypoint
CALL JOB:MM_SET_DOLIST ARGF"0"
PAUSE
'move to departure waypoint of
'picking
MOVJ P073 VJ=50.00 PL=0
'move to intermediate waypoint of
'placing
MOVJ C00002 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00003 V=166.6 PL=0
'move to placing waypoint
MOVL C00004 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE
'move to departure waypoint of
'placing
MOVL C00005 V=166.6 PL=0
'move back to robot home position
MOVJ C00006 VJ=50.00
END

The workflow corresponding to the above example program code is shown in the figure below.

sample15

The table below describes the bolded code. You can click the hyperlink to the command name to view its detailed description.

Feature Code and description

Obtain the planned path

'get planned path
CALL JOB:MM_GET_PLANDATA ARGF"0;3;51;52;53"
  • MM_GET_PLANDATA: The command to obtain the planned path. The Vision Move waypoints obtained by this command contain Vision Move data and custom data (if any) in addition to poses, while Vision Move waypoints obtained by the MM_GET_VIZDATA command do not contain Vision Move data or custom data.

  • 0: Obtain the planned path from Mech-Viz.

  • 3: The format of the data that is expected to be returned, which is pose (in joint positions), motion type, tool ID, velocity, Mech-Viz Vision Move data, element 1 in custom output data, ..., element N in custom output data.

  • 51: The I variable that has an ID of 51. This variable stores the number of waypoints returned by the vision system.

  • 52: The I variable that has an ID of 52. This variable stores the position of the Vision Move waypoint (picking waypoint) in the path.

  • 53: The I variable that has an ID of 53. This variable stores the command execution status code.

Obtain the gripper DO list

'get gripper control signal list
CALL JOB:MM_GET_DOLIST ARGF"0;0"
  • MM_GET_DOLIST: The command to obtain the gripper DO list.

  • First 0: Specify the source of the DO signals, i.e., obtain the multi-section gripper DO signals from Mech-Viz.

  • Second 0: Obtain all planned gripper DO signals.

Store the planned path

'save waypoints of the planned
'path to local variables one
'by one
CALL JOB:MM_GET_PLANPOSE ARGF"1;71;61;31"
CALL JOB:MM_GET_PLANPOSE ARGF"2;72;71;31"
CALL JOB:MM_GET_PLANPOSE ARGF"3;73;81;31"
  • MM_GET_PLANPOSE: The command to store Vision Move data or custom data.

  • 1: Store the first waypoint.

  • 71: The P variable that has an ID of 71. This variable stores the pose of the first waypoint.

  • 61: The B variable that has an ID of 61. The B variables starting from B061 will be used to sequentially store the motion type, tool ID, and velocity of the first waypoint in B061, B062, and B063, respectively.

  • 31: The R variable that has an ID of 31. The R variables R031 to R051 will be used to sequentially store the Vision Move data of the first waypoint. The R variables starting from R052 will be used to sequentially store the custom data of the first waypoint.

The entire statement “CALL JOB:MM_GET_PLANPOSE ARGF"1;71;61;31"” indicates that the pose, motion type, tool ID, velocity, Vision Move data, and custom data of the first waypoint are stored in the specified variables.

  • In this example, the path planned by Mech-Viz consists of three waypoints: the first waypoint is the approach waypoint of picking (P071), the second waypoint is the picking waypoint (P072, which is also the Vision Move waypoint), and the third waypoint is the departure waypoint of picking (P073). Please store the planned path based on the actual Mech-Viz project.

  • The first and third waypoints are not Vision Move waypoints. As such, the first and third waypoints do not involve Vision Move data or custom data. After the program calls “CALL JOB:MM_GET_PLANPOSE ARGF"1;71;61;31"”, variables starting from R031 will not contain data. After the program calls “CALL JOB:MM_GET_PLANPOSE ARGF"2;72;71;31"”, variables starting from R031 will start to store Vision Move data.

Move to the picking waypoint to perform picking

'follow the planned path to pick
'move to approach waypoint of
'picking
MOVJ P071 VJ=50.00 PL=0
'move to picking waypoint
MOVJ P072 VJ=10.00 PL=0
'set gripper control signal when
'current waypoint is picking
'waypoint
CALL JOB:MM_SET_DOLIST ARGF"0"
  • MM_SET_DOLIST: The command to set the gripper DO list.

  • 0: Set all planned gripper DO signals.

The above statement indicates that the robot moves to the picking waypoint (P072) and then runs the MM_SET_DOLIST command to set gripper DO signals to perform picking.

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.