サンプルプログラム4:MM_S4_Vis_ChangeModel
プログラム概要
機能 |
ロボットはMech-Visionのパラメータレシピを切り替え、その後Mech-Visionプロジェクトをトリガーして実行します。ビジョン結果を取得し、その結果に基づいて把持および配置を実行します。 |
||
ファイル場所 |
Mech-VisionとMech-Vizソフトウェアのインストールディレクトリにある |
||
必要なプロジェクト |
Mech-Visionプロジェクト
|
||
使用前提 |
|
このサンプルプログラムは参考用です。ユーザーは実際の状況に応じて、このプログラムを基に変更を加える必要があります。このプログラムをそのまま使用しないでください。 |
プログラム説明
以下はMM_S4_Vis_ChangeModelサンプルプログラムのコードと関連する説明です。
このサンプルは、MM_S1_Vis_Basicサンプルに比べて、Mech-Visionのパラメータレシピを切り替える機能(太字部分のコード)のみが追加されています。そのため、MM_S1_Vis_Basicサンプルと同じ部分のコードについては、以下で再度説明することはありません(詳細は MM_S1_Vis_Basicサンプルの説明 をご参照ください)。 |
DEF MM_S4_Vis_ChangeModel ( )
;---------------------------------------------------
; FUNCTION: trigger Mech-Vision project after
; switching recipe and get vision result
; Mech-Mind, 2023-12-25
;---------------------------------------------------
;set current tool no. to 1
BAS(#TOOL,1)
;set current base no. to 0
BAS(#BASE,0)
;move to robot home position
PTP HOME Vel=100 % DEFAULT
;initialize communication parameters (initialization is required only once)
MM_Init_Socket("XML_Kuka_MMIND",873,871,60)
;move to image-capturing position
LIN camera_capture Vel=1 m/s CPDAT1 Tool[1] Base[0]
;switch recipe of NO.1 Mech-Vision project, "MM_Switch_Model(Proj_num,Model_num)"
MM_Switch_Model(1,1)
;trigger NO.1 Mech-Vision project
MM_Start_Vis(1,0,2,init_jps)
;get vision result from NO.1 Mech-Vision project
MM_Get_VisData(1,pos_num,status)
;check whether vision result has been got from Mech-Vision successfully
IF status<> 1100 THEN
;add error handling logic here according to different error codes
;e.g.: status=1003 means no point cloud in ROI
;e.g.: status=1002 means no vision result
halt
ENDIF
;save first vision point data to local variables
MM_Get_Pose(1,Xpick_point,label,toolid)
;calculate pick approach point based on pick point
tool_offset={X 0,Y 0,Z -100,A 0,B 0,C 0}
Xpick_app=Xpick_point:tool_offset
;move to intermediate waypoint of picking
PTP pick_waypoint CONT Vel=50 % PDAT1 Tool[1] Base[0]
;move to approach waypoint of picking
LIN pick_app Vel=1 m/s CPDAT2 Tool[1] Base[0]
;move to picking waypoint
LIN pick_point Vel=0.3 m/s CPDAT3 Tool[1] Base[0]
;add object grasping logic here, such as "$OUT[1]=TRUE"
halt
;move to departure waypoint of picking
LIN pick_app Vel=1 m/s CPDAT2 Tool[1] Base[0]
;move to intermediate waypoint of placing
PTP drop_waypoint CONT Vel=100 % PDAT2 Tool[1] Base[0]
;move to approach waypoint of placing
LIN drop_app Vel=1 m/s CPDAT4 Tool[1] Base[0]
;move to placing waypoint
LIN drop Vel=0.3 m/s CPDAT5 Tool[1] Base[0]
;add object releasing logic here, such as "$OUT[1]=FALSE"
halt
;move to departure waypoint of placing
LIN drop_app Vel=1 m/s CPDAT4 Tool[1] Base[0]
;move back to robot home position
PTP HOME Vel=100 % DEFAULT
END
上記のサンプルプログラムの処理流れは、下図の通りです。

下表はMech-Visionのパラメータレシピを切り替えるコードとその説明です。コマンド名のリンクをクリックすることで、その詳細を確認できます。
処理流れ | コートと説明 |
---|---|
Mech-Visionのパラメータレシピを切り替る |
このコマンドは、Mech-Visionプロジェクト1のパラメータレシピを番号1のレシピに切り替えることを意味します。 |