サンプルプログラム15:MM_S15_Viz_GetDoList

現在ご覧いただいているのは未リリースのバージョンです(V2.1.0)。異なるバージョンを参照する場合は、画面右上のボタンから切り替えが可能です。

■ ご利用中のバージョンが分からない場合はお気軽にサポート窓口までご連絡ください。

プログラム概要

機能

ロボットが把持経路とDO信号を取得した後、把持点に移動してDO信号を設定し、把持および配置を実行します。通常、ロボットハンドが複数のブロック吸盤を使用するデパレタイジングシーンに適しています。

ファイル場所

Mech-VisionとMech-Vizソフトウェアのインストールディレクトリにある Communication Component/Robot_Interface/YASKAWA/sample/MM_S15_Viz_GetDoList

必要なプロジェクト

Mech-Visionプロジェクト、Mech-Vizプロジェクト(ロボットハンド種類がデパレタイズ用吸盤である必要があります)

使用前提

  1. 標準インターフェース通信設定 が完了しました。

  2. 自動キャリブレーション が完了しました。

このサンプルプログラムは参考用です。ユーザーは実際の状況に応じて、このプログラムを基に変更を加える必要があります。このプログラムをそのまま使用しないでください。

プログラム説明

以下はMM_S15_Viz_GetDoListサンプルプログラムのコードと関連する説明です。

このサンプルは、MM_S2_Viz_Basicサンプルに比べて、太字部分のコードのみが追加されています。そのため、MM_S2_Viz_Basicサンプルと同じ部分のコードについては、以下で再度説明することはありません(詳細は 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

上記のサンプルプログラムの処理流れは、下図の通りです。

sample15

下表は太字部分のコードとその説明です。コマンド名のリンクをクリックすることで、その詳細な説明を確認できます。

処理流れ コートと説明

計画された経路を取得

'get planned path
CALL JOB:MM_GET_PLANDATA ARGF"0;3;51;52;53"
  • MM_GET_PLANDATA:計画された経路を取得するためのコマンド。このコマンドを使用して取得した「ビジョン処理による移動」の経路点は、位置姿勢に加えて、「ビジョン処理による移動」の計画結果やカスタムデータ(ある場合)も含まれます。一方、MM_GET_VIZDAT コマンドを使用して取得した「ビジョン処理による移動」の経路点には、「ビジョン処理による移動」の計画結果やカスタムデータは含まれていません。

  • 0:Mech-Vizから計画された経路を取得します。

  • 3:期待される返されるデータ形式。「位置姿勢(関節角度形式)、移動方式、ロボットハンド番号、速度、Mech-Vizの「ビジョン処理による移動」の計画結果、カスタムデータ項目1、…、カスタムデータ項目N」といった形式でデータを返します。

  • 51:変数Iの番号。この変数はビジョンシステムが返す経路点の数を保存します。

  • 52:変数Iの番号。この変数は、「ビジョン処理による移動」の経路点(把持点)が経路全体における位置番号を保存します。

  • 53:変数Iの番号。この変数はコマンド実行のステータスコードを保存します。

吸盤のDO信号を取得

'get gripper control signal list
CALL JOB:MM_GET_DOLIST ARGF"0;0"
  • MM_GET_DOLIST:吸盤のDO信号を取得するためのコマンド。

  • 最初の0:DO信号の出力先を指定します。つまり、Mech-Vizから複数ブロック吸盤のDO信号を取得します。

  • 2番目の0:計画されたすべての吸盤のDO信号を取得します。

計画された経路を保存

'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:「ビジョン処理による移動」の計画結果またはカスタムデータを保存するためのコマンド。

  • 1:最初の経路点を保存します。

  • 71:変数Iの番号。この変数は最初の経路点の位置姿勢を保存します。

  • 61:番号が61から始まるB変数。最初の経路点に対応する移動方式、ロボットハンド番号、および速度が、それぞれB061、B062、B063に順次保存されます。

  • 31:番号が31から始まるR変数。最初の経路点に対応する「ビジョン処理による移動」の計画結果がR031~R051に順次保存され、最初の経路点に対応するカスタムデータが番号52から始まるR変数に順次保存されます。

「CALL JOB:MM_GET_PLANPOSE ARGF"1;71;61;31」コマンドは、最初の経路点の位置姿勢、移動方式、ロボットハンド番号、速度、カスタムデータ、「ビジョン処理による移動」の計画結果およびカスタムデータをそれぞれ指定された変数に保存することを意味します。

  • このサンプルでは、Mech-Vizで計画された経路に3つの経路点が含まれていると仮定しています。最初の経路点は「把持のアプローチ点(P071)」、2番目の経路点は「把持点(P072、ビジョン移動の経路点でもあります)」、3番目の経路点は「把持の離れる点(P073)」です。Mech-Vizプロジェクトで作成されたワークフローに応じて、プログラムを適切に変更し、経路を保存する必要があります。

  • 1番目の経路点と3番目の経路点は「ビジョン処理による移動」の経路点ではないため、これらには「ビジョン処理による移動」の計画結果やカスタムデータはありません。プログラムが「CALL JOB:MM_GET_PLANPOSE ARGF"1;71;61;31"」 を呼び出した場合、R031以降の変数にはデータが格納されません。一方で、プログラムが「CALL JOB:MM_GET_PLANPOSE ARGF"2;72;71;31"」を呼び出した場合、R031以降の変数に「ビジョン処理による移動」の計画結果が格納され始めます。

把持点に移動して把持を実行

'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:吸盤のDO信号を設定するためのコマンド。

  • 0:計画された吸盤のDO信号をすべて設定します。

上記のコードは、ロボットが把持点(P072)に移動した後、MM_SET_DOLISTコマンドを使用して吸盤のDO信号を設定し、把持を完了することを意味します。

Mech-Mindは、お客様のプライバシーを重視しています

このサイトでは最高の体験を提供するために Cookie を使用しています。サイトの閲覧を続ける場合、Cookie の使用に同意したことになります。「拒否する」を選択すると、このサイトを訪れた際に追跡や記憶が行われないように単独の Cookie が使用されます。