Example Program 16: MM_S16_Viz_GetDirection

You are currently viewing the documentation for the latest version (2.1.0). To access a different version, click the "Switch version" button located in the upper-right corner of the page.

■ If you are not sure which version of the product you are currently using, please feel free to contact Mech-Mind Technical Support.

Program Introduction

Description

After the robot obtains the planned path and finishes picking, the robot adopts different placement strategies according to the orientation of the workobject group.

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

Compared with the MM_S15_Viz_GetDoList 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_S16_Viz_GetDirection that are consistent with those of MM_S15_Viz_GetDoList, see Example Program 15: MM_S15_Viz_GetDoList.
NOP
'--------------------------------
'FUNCTION: trigger Mech-Viz
'project, then get planned path
'and get box direction 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"
'get box direction status from
'planned results
SET I005 R047
'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
'place the box according to its
'direction
IFTHENEXP I005=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
ELSE
	'move to intermediate waypoint of
	'placing
	 MOVJ C00006 VJ=50.00
	'move to approach waypoint of
	'placing
	 MOVL C00007 V=166.6 PL=0
	'move to placing waypoint
	 MOVL C00008 V=50.0 PL=0
	'add object releasing logic here,
	'such as DOUT OT#(1) OFF
	 PAUSE
	'move to departure waypoint of
	'placing
	 MOVL C00009 V=166.6 PL=0
ENDIF
'move back to robot home position
MOVJ C00010 VJ=50.00
END

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

sample16

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 orientation of workobject group

'get box direction status from
'planned results
SET I005 R047
In the Mech-Viz project, Vision Move data refers to data output by the Vision Move Step, including the labels of picked workobjects, number of picked workobjects, number of workobjects to be picked this time, edge or corner ID of the vacuum gripper, TCP offset, orientation of the workobject group, orientation of the workobject, and dimensions of the workobject group.

The robot obtains the Vision Move data of waypoints by running the MM_GET_PLANDATA command, and then saves the Vision Move data of waypoints that is stored in the robot memory to the variables starting from R031 by running the MM_GET_PLANPOSE command. The value of the P047 variable indicates the relative position between the workobject group and the length of the vacuum gripper. The value is 0 or 1, where 0 stands for parallel and 1 for vertical.

The above code assigns the value of the R047 variable to the I005 variable, so I005 will represent the orientation of the workpiece group.

Adopt a placement strategy based on the orientation of the workobject group

'place the box according to its
'direction
IFTHENEXP I005=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
ELSE
	'move to intermediate waypoint of
	'placing
	 MOVJ C00006 VJ=50.00
	'move to approach waypoint of
	'placing
	 MOVL C00007 V=166.6 PL=0
	'move to placing waypoint
	 MOVL C00008 V=50.0 PL=0
	'add object releasing logic here,
	'such as DOUT OT#(1) OFF
	 PAUSE
	'move to departure waypoint of
	'placing
	 MOVL C00009 V=166.6 PL=0
ENDIF

The above code indicates that if the workobject group is parallel to the long side of the vacuum gripper (i.e., I005 is set to 0), the workobject group will be placed at the taught C00004 position; otherwise, the workobject group will be placed at the taught C00008 position.

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.