標準インターフェイスコマンド¶
KUKAで標準インターフェイスを用いてロボットプログラミングを行う際は、以下の点にご注意ください。
複数の パラメータ はコロンで区切る必要があります。
全てのパラメータは ローカル変数 と定義します。
パラメータは 入力パラメータ あるいは 出力パラメータ と定義することが可能です。
KUKA標準インターフェイスは、以下の機能を提供しています。
通信の初期化(MM_Init_Socket)¶
本サブプログラムによって、TCP/IP通信の設定、通信成功フラグ、データ受信成功フラグ、接続タイムアウト時間の設定に使われるXMLというファイルが作成されます。
サブプログラム:
MM_Init_Socket(XML_Name[]:IN,Alive_Flag:IN,Recv_Flag:IN,Time_Out:IN)
パラメータの説明:
パラメータ
説明
入力パラメータ
XML_Name[]
XMLファイル名(大文字と小文字を区別する)です。
Alive_Flag
XMLファイルに記録された通信成功フラグの番号です。フラグがONと設定された場合、通信が正常に確立できます。
Recv_Flag
XMLファイルに記録されたデータ受信成功フラグの番号です。フラグがONと設定された場合、ロボットが正常にデータを受信することができます。
Time_Out
接続タイムアウト時間(秒単位)です。
サンプル:
MM_Init_Socket("XML_Kuka_MMIND",873,871,60)
詳細な説明:
このサンプルを実行した場合、“XML_Kuka_MMMIND”という通信設定用 XMLファイルで、通信成功フラグを873、データ受信成功フラグを871、接続タイムアウト時間を60 秒に設定しています。
Mech-Visionをトリガー(MM_Start_Vis)¶
Mech-Visionを使用し、Mech-Vizを使用しないで実行する場合に使用します。対応するMech-Visionプロジェクトを実行して、データの取得および処理を行います。
サブプログラム:
MM_Start_Vis(Job:IN,Pos_Num_Need:IN,SendPos_Type:IN)
パラメータの説明:
パラメータ
説明
入力パラメータ
Job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。Pos_Num_Need
Mech-Visionが送信する結果の数(0~20)です。0はすべて送信することを意味します。
SendPos_Type
送信されるロボットの画像撮像姿勢(0~2)を設定します。
0:画像撮像姿勢を送信しないことを意味します。
1:画像撮影姿勢を関節角度で送信します。
2:画像撮影姿勢をフランジ位置姿勢で送信します。
サンプル:
MM_Start_Vis(1,1,1)
詳細な説明:
このサンプルを実行するとMech-VisionのNo. 1プロジェクトを実行します。結果としてMech-VisionのNo. 1プロジェクトから1つの視覚結果を送信します。同時にロボットから画像撮影姿勢を関節角度で1つの位置姿勢をMech-Centerへ送信します。
Mech-Visionの結果取得(MM_Get_VisData)¶
Mech-Vizを使用せずMech-Visionを使用する場合に使用します。対応するMech-Visionプロジェクトから画像処理結果を取得します。
サブプログラム:
MM_Get_VisData(Job:IN,Last_Data:OUT,Pos_Num:OUT,MM_Status:OUT)
パラメータの説明:
パラメータ
説明
入力パラメータ
Job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。出力パラメータ
Last_Data
すべての結果が送信されたかどうかを記録するための変数です。返された値は0である場合、結果をすべて送信し終わっていないことを意味します。返された値は1である場合、すべての結果を送信されたことを意味します。
Pos_Num
取得した出力結果の数を記録するための変数です。
MM_Status
Mech-Visionのステータスコードを記録するための変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル:
MM_Get_VisData(1,Last,Pose_Num,Status)
詳細な説明:
このサンプルを実行するとMech-VisionのNo.1プロジェクトから視覚結果を取得します。すべての結果が送信されたかどうかはLastに保存されます。受信した視覚結果の数はPose_Numに保存されます。ステータスコードはStatusに保存されます。
Mech-Vizをトリガー(MM_Start_Viz)¶
Mech-VisionとMech-Vizの両方を使用する場合に使用します。Mech-Vizプロジェクトを実行し、それに対応するMech-Visionプロジェクトも実行されます。この時Mech-Vizのシミュレーション上でロボットの初期関節位置が設定されます。
サブプログラム:
MM_Start_Viz(SendPos_Type:IN)
パラメータの説明:
パラメータ
説明
入力パラメータ
SendPos_Type
Mech-Vizのシミュレーション上でのロボット初期位置 [0-1]を設定します。
0:ロボットの初期関節角度を[0,0,0,0,0,0]に設定します。
1:ロボットの初期関節位置を実際のロボットの関節角度に設定します。
ロボットの初期関節角度を[0,0,0,0,0,0]に設定し、最初の位置姿勢に移動するまでの間で移動を妨げる物体がある場合、このパラメータを1に設定する必要があります。
サンプル:
MM_Start_Viz(1)
詳細な説明:
対応するMech-Vizプロジェクトを実行し、シミュレーション上のロボット初期関節角度を実際のロボットと同期します。
移動計画を取得(MM_Get_VizData)¶
Mech-Vizから移動計画を取得するために使用されます。
サブプログラム:
MM_Get_VizData(Jps_Pos:IN,Last_Data:OUT,Pos_Num:OUT,VisPos_Num:OUT,MM_Status:OUT)
パラメータの説明:
パラメータ
説明
入力パラメータ
Jps_Pos
Mech-Vizから送信される移動位置の方式を設定します。
1:関節角度を送信します。
2:TCP位置姿勢を送信します。
出力パラメータ:
Last_Data
すべての移動位置が送信されたかどうかを記録するための変数です。返された値は0である場合、結果をすべて送信し終わっていないことを意味します。返された値は1である場合、すべての結果を送信されたことを意味します。
Pos_Num
取得した位置姿勢の数を記録するための変数です。
VisPos_Num
最初の視覚移動の順番を記録するための変数です。例えば、move-1、move-2、visual_move-3、move-3、visual_move-2の場合、最初の視覚移動の順番は3です。行動計画に視覚移動が含まれていない場合、0に設定します。
MM_Status
Mech-Visionのステータスコードを記録するための変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル:
MM_Get_VizData(2,Last,Pose_Num,VisPos_Num,Status)
詳細な説明:
このサンプルを実行するとMech-Vizから行動計画をTCP位置姿勢で取得します。すべての行動計画が送信されたかどうかをLastに保存されます。受信した移動位置の数はPose_Numに保存されます。視覚移動の順番はVisPose_Numに保存されます。ステータスコードはStatusに保存されます。
位置姿勢を取得(MM_Get_Pose)¶
Mech-Visionから送信された視覚結果またはMech-Vizから送信されたTCP位置姿勢データを指定した位置姿勢変数に保存します。
サブプログラム:
MM_Get_Pose(Serial:IN,MM_P:OUT,MM_Label:OUT,MM_Speed:OUT)
パラメータの説明:
パラメータ
説明
入力パラメータ
Serial
保存する位置姿勢のインデックスを指定します。
出力パラメータ:
MM_P
指定された位置姿勢を記録するための変数です。
MM_Label
指定された位置姿勢に対応するラベルを記録するための変数です。
MM_Speed
指定された位置姿勢に移動する速度を記録するための変数です。
サンプル:
MM_Get_Pose(1,XP1,Label,Pose_Speed)
詳細な説明:
このサンプルを実行すると、最初に受信した位置姿勢をXP1に、対応するラベルをLabelに、対応する移動速度をPose_Speedに保存します。
関節角度を取得(MM_Get_Jps)¶
Mech-Vizによって送信された関節角度を指定した変数に保存します。
サブプログラム:
MM_Get_Jps(Serial:IN, MM_J:OUT, MM_Label:OUT, MM_Speed:OUT)
パラメータの説明:
パラメータ
説明
入力パラメータ
Serial
保存する位置姿勢のインデックスを指定します。
出力パラメータ:
MM_J
指定された関節角度を記録するための変数です。
MM_Label
指定された位置姿勢に対応するラベルを記録するための変数です。
MM_Speed
指定された位置姿勢に移動する速度を記録するための変数です。
サンプル:
MM_Get_Jps(1,JP1,Label,Pose_Speed)
詳細な説明:
このサンプルを実行すると、最初に受信した関節角度をJP1に、対応するラベルをLabelに、対応する移動速度をPose_Speedに保存します。
Mech-Visionパラメータレシピの切り替え(MM_Switch_Model)¶
使用するMech-Visionプロジェクトの保存されたパラメータレシピを指定します。パラメータレシピの詳細については、パラメータレシピの設定をご参照ください。このコマンドは、MM_Start_Visの前に呼び出す必要があります。
サブプログラム:
MM_Switch_Model(Job:IN,Model_Number:IN)
パラメータ説明:
パラメータ
説明
入力パラメータ
Job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。Model_Number
Mech-Visionプロジェクトのパラメータレシピ番号(1~99)です。
サンプル:
MM_Switch_Model (2,2)
詳細な説明:
このサンプルを実行すると、Mech-VisionプロジェクトNo.2で使用されているパラメータをパラメータレシピNo.2に切り替えます。
Mech-Vizのブランチを選択(MM_Set_Branch)¶
Mech-Vizプロジェクトをどのブランチに沿って実行するかを選択する場合に使用されます。このようなブランチは、「メッセージによって異なるブランチを実行」タスクをプロジェクトに追加することで実現可能です。このコマンドの前にMM_Start_Vizを呼び出す必要があります。Mech-Vizで実行される次のタスクが「メッセージによって異なるブランチを実行」タスクである場合、Mech-Vizは、このコマンドが実行されるまで待機します。
サブプログラム:
MM_Set_Branch(Branch_Num:IN,Export_Num:IN)
パラメータの説明:
パラメータ
説明
入力パラメータ
Branch_Num
このパラメータ、つまり、 消息分支 のタスクIDは正の整数である必要があります。タスクIDは、タスクパラメータで読み取りを行います。
Export_Num
ブランチの出口、Mech-Vizプログラムは設定されたブランチの出口に沿って実行し続けます。パラメータ範囲は[1-99]です。
サンプル:
MM_Set_Branch(1,3)
詳細な説明:
このサンプルを実行すると、Mech-Viz内の1という名前の「メッセージによって異なるブランチを実行」の出口3を通過するようになります。
移動インデックスを設定(MM_Set_Index)¶
Mech-Viz内タスクのパラメータ、現在のインデックスの値を設定することができます。このパラメータを設定できるタスクは、「リストによる移動」、「グリッドによる移動」、「カスタムパレットパターン」、「スマートパレットパターン」などがあります。このコマンドはMM_Start_Vizの前に呼び出す必要があります。
サブプログラム:
MM_Set_Index(Skill_Num:IN,Index_Num:IN)
入力パラメータの説明:
Skill_Num
インデックス付きの移動タスクののタスクIDで、正の整数である必要があります。タスクIDは、タスクパラメータで読み取りを行います。
Index_Num
次にこのタスクが実行されたときに設定されるべきインデックス値です。
このコマンドを送信すると、Mech-Vizの現在のインデックス値がこのパラメータの値から1を引いた値に変更されます。
このコマンドで指定したタスクにMech-Vizプロジェクトが実行されると、Mech-Vizの現在のインデックス値が、このパラメータの値まで1つずつ増加します。
サンプル:
MM_Set_Index (2,10)
詳細な説明:
このサンプルを実行すると、2という名前のタスクのインデックス値を9に設定します。
ソフトウェアのステータスを取得(MM_Get_Status)¶
現在、Mech-Visionのプロジェクトステータスを確認できます。将来的には、このコマンドを使用して、Mech-Vision、Mech-Viz、およびMech-Centerの実行ステータスを取得できるようになります。
サブプログラム:
MM_Get_Status(MM_Status:OUT)
パラメータの説明:
パラメータ
説明
出力パラメータ
MM_Status
Mech-Visionのステータスコードを記録するための変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル:
MM_Get_Status(Status)
詳細な説明:
このサンプルを実行すると、ステータスコードを取得し、StatusCodeに格納します。
Mech-Visionへ物体寸法を入力(MM_Set_BoxSize)¶
物体の寸法をMech-Visionに入力するコマンドです。このコマンドはMM_Start_Visの前に呼び出す必要があります。
サブプログラム:
MM_Set_BoxSize(Job:IN, Lenght:IN, Width:IN, Height:IN)
パラメータ説明:
パラメータ
説明
入力パラメータ
Job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。Lenght
物体の長さ(メートル単位)です。
Width
物体の幅(メートル単位)です。
Height
物体の高さ(メートル単位)です。
サンプル:
MM_Set_BoxSize(1,500,300,200)
詳細な説明:
このサンプルを実行すると、Mech-VisionプロジェクトNo.1のステップ「対象物の寸法を読み取る」の物体寸法を500×300×200mmに設定されます。
DO信号リストの取得(MM_Get_DoList, MM_Set_Dolist)¶
このコマンドで区分化された吸着ハンドを制御するためにDO信号のリストを取得します。このコマンドはMM_Get_VizDataの前に呼び出す必要があります。 XXXX/Mech-Center-xxx/tool/viz_project/suction_zone
のサンプルプロジェクトを参考にしてMech-Vizプロジェクトを作成し、Mech-Vizプロジェクトに吸盤のコンフィグファイルを設定する必要があります。また、Mech-Vizにある受信者の名前を現在のロボットモデルと設定する必要があります。
サブプログラム:
MM_Get_DoList() DO信号を取得します。
MM_Set_DoList() DO信号を設定します。
サンプル:
MM_Set_DoList()
MM_Set_DoList()
詳細な説明:
このサンプルを実行すると、Mech-Vizで計算されたDOリストをDo_Port[I]に保存され、値が対応するDO信号に入力されます。
Mech-VizにTCP座標を入力(MM_Set_Pos)¶
TCPの位置姿勢データをMech-Viz内のタスク「外部移動」に送信することができます。このコマンドはMM_Start_Vizの前に呼び出す必要があります。 XXXX/Mech-Center-xxx/tool/viz_project/outer_move
のサンプルプロジェクトを参考にしてMech-Vizプロジェクトを作成し、Mech-Viz内のタスク「外部移動」をワークフロー内の適切な位置に配置してください。
サブプログラム:
MM_Set_Pos(Out_Pos:IN)
パラメータの説明:
パラメータ
説明
入力パラメータ
Out_Pos
Mech-Vizに送信するTCPデータを格納してある変数です。
サンプル:
MM_Set_Pos(XP50)
詳細な説明:
このサンプルを実行すると、posに格納されているTCPの位置姿勢をMech-Viz内のタスク「外部移動」に送信します。
キャリブレーション¶
カメラの外部パラメータをキャリブレーションするときに使用します。Mech-Visionのカメラキャリブレーション機能と連動してキャリブレーションを自動的に行います。
サブプログラム:
MM_CALIB(Move_Type:IN,PosJps:IN,WaitTime:IN,E1:IN)
パラメータの説明:
パラメータ
説明
入力パラメータ
Move_Type
モーションタイプです。1はMoveLであり、2はMoveJです。
PosJps
座標位置または関節角度を設定します。1は座標位置であり、2は関節角度です。
WaitTime
ロボットがキャリブレーションポイントに到達した後の待機時間(秒)で、デフォルトでは2秒です。
E1
外部軸のデータ(必要な場合)です。
サンプル:
MM_Calib(2,1,2,0)
詳細な説明:
このサンプルを実行すると、ロボットは関節角度を利用して移動します。2秒以内次の位置へ到達しないと、停止します。また、ロボットには外部7軸を設定していません。