サンプルプログラム18:MM_S18_Viz_GetUserData
プログラム概要
機能 |
ロボットは把持経路と共に、Mech-Visionプロジェクトから出力されたカスタムデータを取得します。 |
ファイル場所 |
Mech-VisionとMech-Vizソフトウェアのインストールディレクトリにある |
必要なプロジェクト |
Mech-Visionプロジェクト(出力 ステップに カスタムポート に追加する必要があります)、Mech-Vizプロジェクト(ロボットハンド種類がデパレタイズ用吸盤である必要があります) |
使用前提 |
|
このサンプルプログラムは参考用です。ユーザーは実際の状況に応じて、このプログラムを基に変更を加える必要があります。このプログラムをそのまま使用しないでください。 |
プログラム説明
以下はMM_S18_Viz_GetUserDataサンプルプログラムのコードと関連する説明です。
このサンプルは、MM_S15_Viz_GetDoListサンプルに比べて、太字部分のコードのみが追加されています。そのため、MM_S15_Viz_GetDoListサンプルと同じ部分のコードについては、以下で再度説明することはありません(詳細は MM_S15_Viz_GetDoListサンプルの説明 をご参照ください)。 |
NOP
'--------------------------------
'FUNCTION: trigger Mech-Viz
'project, then get planned path
'and get custom data from
'Mech-Vision 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"
'received custom data is saved
'from R052
'R052 = offset_x;
'R053 = offset_y;
'R054 = offset_z;
SET R010 R052
SET R011 R053
SET R012 R054
'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
上記のサンプルプログラムの処理流れは、下図の通りです。
下表は追加されたコードとその説明です。コマンド名のリンクをクリックすることで、その詳細な説明を確認できます。
処理流れ | コートと説明 | ||||
---|---|---|---|---|---|
経路点のカスタムデータを保存 |
ロボットは MM_GET_PLANDATA コマンドを使用して経路点の「ビジョン処理による移動」の計画結果とカスタムデータを取得し、その後、MM_GET_PLANPOSE コマンドを使用して経路点の「ビジョン処理による移動」の計画結果をR031~R051に順次保存し、カスタムデータを52番から始まるR変数に順次保存します。 上記のコードは、「ビジョン処理による移動」の経路点(把持点)の3つのカスタムデータR052、R053、R054をそれぞれR010、R011、R012に代入することを意味します。
|