標準インターフェースコマンド¶
Kawasakiで標準インターフェースを用いてロボットプログラミングを行う際は、以下の点にご注意ください。
複数のパラメータはコロンで区切る必要があります。
全てのパラメータはローカル変数と定義します。
パラメータは入力パラメータあるいは出力パラメータと定義することが可能です。
入力引数は定数、グローバル変数、ローカル変数を指定することができます。出力引数はグローバル変数、ローカル変数を指定することができます。
通信の初期化¶
ホストIPアドレス、ポート番号、およびTCP/IPの待機時間を設定するためのコマンドです。
プログラム
mm_init_skt(.ip1,.ip2,.ip3,.ip4,.port)
パラメータの説明
入力パラメータ
説明
.ip1 - .ip4
IPCのIPアドレスです。
.port
IPCのポート番号で、デフォルトのポート番号は50000です。
サンプル
CALL mm_init_skt(192,168,1,1,50000)
詳細な説明
このサンプルを実行すると、接続するPCのIPアドレスは192.168.1.1、ポート番号は50000に設定されます。
Mech-Visionをトリガー¶
Mech-Visionを使用し、Mech-Vizを使用しないで実行する場合に使用します。対応するMech-Visionプロジェクトを実行して、データの取得および処理を行います。
プログラム
mm_start_vis(.job,.pos_num_need,.sendpos_type,.#start_vis)
パラメータの説明
入力パラメータ |
説明 |
.job |
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。 |
.pos_num_need |
ビジョンポイントの予期数、つまりMech-Visionから受信したいビジョンポイントの数です。設定可能な範囲は0~20で、0に設定するとすべてのビジョンポイントが取得されます。 |
.sendpos_type |
ロボット位置姿勢のタイプです。このパラメータはロボット実機の位置姿勢がMech-Visionに送信される形式を指定します。パラメータ範囲は0~3です。 |
|
|
.#start_vis |
.sendpos_type=3の場合のみ、事前定義済みのロボットの関節角度データが使用されます。.sendpos_typeが3以外の場合、このパラメータの値は#start_visとすることができます。 |
サンプル1
CALL mm_start_vis(1,1,1,#start_vis)
詳細な説明
このサンプルを実行するとMech-Visionプロジェクト1が実行されます。Mech-Visionプロジェクト1が1つのビジョン結果を返すことを期待します。ロボットは、#start_visデータを使用せずに、現在の関節角度とフランジデータをMech-Visionに送信します。
サンプル2
CALL mm_start_vis(1,1,3,#start_vis)
詳細な説明
このサンプルを実行するとMech-Visionプロジェクト1が実行されます。Mech-Visionプロジェクト1が1つのビジョン結果を返すことを期待します。ロボットは#start_visに保存した関節角度データをMech-Visionに送信し、経路計画設定ツールでの仮想ロボットに計画の開始位置を設定します。
Mech-Visionの結果を取得¶
Mech-Vizを使用せずMech-Visionを使用する場合に使用します。対応するMech-Visionプロジェクトから画像処理結果を取得します。
プログラム
mm_get_visdata(.job,.pos_num,.ret)
パラメータの説明
入力パラメータ
説明
.job
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
出力パラメータ
説明
.pos_num
取得した出力結果の数を記録するための変数です。
.ret
Mech-Visionのステータスコードを記録するための変数です。詳細については、 標準インターフェースのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル
CALL mm_get_visdata(1,posnum,statuscode)
詳細な説明
このサンプルを実行すると、Mech-VisionのNo.1プロジェクトからビジョン結果を取得します。受信したビジョン結果の数はposnumに保存されます。ステータスコードはstatuscodeに保存されます。
Mech-Vizをトリガー¶
Mech-VisionとMech-Vizの両方を使用する場合に使用します。Mech-Vizプロジェクトを実行し、それに対応するMech-Visionプロジェクトも実行されます。この時Mech-Vizのシミュレーション上でロボットの初期関節位置が設定されます。
プログラム
mm_start_viz(.sendpos_type,.#start_viz)
パラメータの説明
入力パラメータ |
説明 |
.sendpos_type |
ロボットの位置姿勢タイプで、範囲は0~2です。 |
|
|
.#start_viz |
.sendpos_type=2の場合のみ、この関節角度データが使用されます。.sendpos_typeが2以外の場合、このパラメータの値は#start_vizとすることができます。 |
サンプル1
CALL mm_start_viz(1,#start_viz)
詳細な説明
対応するMech-Vizプロジェクトを実行し、現在のロボットの関節角度とフランジ位置姿勢をMech-Vizに送信します。
サンプル2
CALL mm_start_viz(2,#start_viz)
詳細な説明
対応するMech-Vizプロジェクトを実行し、#start_vizに保存した関節角度データをMech-Vizに送信します。
移動計画を取得¶
このコマンドは、Mech-Vizプロジェクトに計画した把持経路を取得するために使用されます。
プログラム
mm_get_vizdata(.getpos_type,.pos_num,.vispos_num,.ret)
パラメータの説明
入力パラメータ
説明
.getpos_type
取得する経路上の点の位置姿勢タイプで、1または2に設定することができます。1:Mech-Vizソフトウェアが返す位置姿勢タイプは、ロボットの関節角度です。 2:Mech-Vizソフトウェアが返す位置姿勢タイプは、ロボットツールの中心点の位置姿勢です。
出力パラメータ
説明
.pos_num
取得した位置姿勢の数を記録するための変数です。
.vispos_num
最初の「ビジョン処理による移動」が経路全体における位置番号を記録するための変数です。例えば、移動-1、移動-2、ビジョン処理による移動-3、移動-3、ビジョン処理による移動-2の場合、最初の「ビジョン処理による移動」の順番は3です。プロジェクトに「ビジョン処理による移動」が含まれていない場合、0に設定します。
.ret
Mech-Visionのステータスコードを記録するための変数です。詳細については、 標準インターフェースのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル
CALL mm_get_vizdata(2,posnum,vis_index,statuscode)
詳細な説明
このサンプルを実行するとMech-Vizから行動計画をTCP位置姿勢で取得します。受信した移動位置の数はposnumに保存されます。「ビジョン処理による移動」が経路全体における順番はvis_indexに保存されます。ステータスコードはstatuscodeに保存されます。
位置姿勢を取得¶
Mech-Visionから送信されたビジョン結果またはMech-Vizから送信されたTCP位置姿勢データを指定した位置姿勢変数に保存します。
プログラム
mm_get_pose(.index,.&targetpos,.label,.speed)
パラメータの説明
入力パラメータ
説明
.index
保存する位置姿勢のインデックスを指定します。
出力パラメータ
説明
&targetpos
指定された位置姿勢を記録するための変数です。変数の値を関節角度として示すために、必ず変数の名前の前に「#」をつけてください。
.label
指定された位置姿勢に対応するラベルを記録するための変数です。
.speed
指定された位置姿勢に対応する速度を記録するための変数です。
サンプル
CALL mm_get_pose(1,&pt[1],pt_label[1],pt_speed[1])
詳細な説明
このサンプルを実行すると、最初に受信した位置姿勢をpt[1]]に、対応するラベルをpt_label[1]に、対応する移動速度をpt_speed[1]に保存します。
関節角度を取得¶
Mech-Vizによって送信された関節角度を指定した変数に保存します。
プログラム
mm_get_jps(.index,.#targetpos,.label,.speed)
パラメータの説明
入力パラメータ
説明
.index
保存する位置姿勢のインデックスを指定します。
出力パラメータ
説明
.#targetpos
指定された関節角度を記録するための変数です。変数の値を関節角度として示すために、必ず変数の名前の前に「#」をつけてください。
.label
指定された位置姿勢に対応するラベルを記録するための変数です。
.speed
指定された位置姿勢に対応する速度を記録するための変数です。
サンプル
CALL mm_get_jps(1,#pt[1],pt_label[1],pt_speed[1])
詳細な説明
このサンプルを実行すると、最初に受信した関節角度を#pt[1]に、対応するラベルをpt_label[1]に、対応する移動速度をpt_speed[1]に保存します。
Mech-Visionパラメータレシピの切り替え¶
使用するMech-Visionプロジェクトの保存されたパラメータレシピを指定します。このコマンドは、MM_START_VIZの前に呼び出す必要があります。
プログラム
mm_switch_model(.job,.model_number)
パラメータの説明
入力パラメータ
説明
.job
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
.model_number
Mech-Visionプロジェクトのパラメータレシピ番号(1~99)です。
サンプル
CALL mm_switch_model(2,2)
詳細な説明
このサンプルを実行すると、Mech-VisionプロジェクトNo.2で使用されているパラメータをパラメータレシピNo.2に切り替えます。
Mech-Vizの分岐を選択¶
Mech-Vizプロジェクトをどの分岐に沿って実行するかを選択する場合に使用されます。このような分岐は、「メッセージによって異なる分岐を実行」ステップをプロジェクトに追加することで実現可能です。このコマンドの前にmm_start_vizを呼び出す必要があります。Mech-Vizで実行される次のステップが「メッセージによって異なる分岐を実行」ステップである場合、Mech-Vizは、このコマンドが実行されるまで待機します。
プログラム
mm_set_branch(.branch_num,.exit_num)
パラメータの説明
入力パラメータ
説明
.branch_num
このパラメータ、つまり、 メッセージによって異なる分岐を実行 のステップIDは正の整数である必要があります。ステップIDは、ステップパラメータで読み取りを行います。
.exit_num
分岐の出口、Mech-Vizプログラムは設定された分岐の出口に沿って実行し続けます。パラメータ範囲は[1-99]です。
サンプル
CALL mm_set_branch(1,3)
詳細な説明
このサンプルを実行すると、Mech-Viz内の1という名前の「メッセージによって異なる分岐を実行」の出口3を通過するようになります。
移動インデックスを設定¶
Mech-Viz内ステップのパラメータ、現在のインデックスの値を設定することができます。このパラメータを設定できるステップは、「リストによる移動」、「グリッドによる移動」、「カスタムパレットパターン」、「スマートパレットパターン」などがあります。このコマンドを呼び出す前にmm_start_vizを実行する必要があります。
プログラム
mm_set_index(.skill_num,.index_num)
パラメータの説明
.skill_num
インデックス付きの移動ステップのステップIDで、正の整数である必要があります。ステップIDは、ステップパラメータで読み取りを行います。
.index_num
次にこのステップが実行されたときに設定されるべきインデックス値です。
このコマンドを送信すると、Mech-Vizの現在のインデックス値がこのパラメータの値から1を引いた値に変更されます。
このコマンドで指定したステップにMech-Vizプロジェクトが実行されると、Mech-Vizの現在のインデックス値が、このパラメータの値まで1つずつ増加します。
サンプル
CALL mm_set_index(2,10)
詳細な説明
このサンプルを実行すると、2という名前のステップのインデックス値を9に設定します。
ソフトウェアのステータスを取得¶
現在、Mech-Visionのプロジェクトステータスを確認できます。将来的には、このコマンドを使用して、Mech-Vision、Mech-Viz、およびMech-Centerの実行ステータスを取得できるようになります。
プログラム
mm_get_status(.ret)
パラメータの説明
出力パラメータ
説明
.ret
Mech-Visionのステータスコードを記録するための変数です。詳細については、 ステータスコード一覧 をご参照ください。
サンプル
CALL mm_get_status(statuscode)
詳細な説明
このサンプルを実行すると、ステータスコードを取得し、statuscodeに格納します。
Mech-Visionへ物体寸法を入力¶
物体の寸法をMech-Visionに入力するコマンドです。このコマンドはmm_start_visの前に呼び出す必要があります。
プログラム
mm_set_boxsize(.job,.length,.width,.height)
パラメータの説明
入力パラメータ
説明
.job
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
.length
物体の長さ(ミリメートル単位)です。
.width
物体の幅(ミリメートル単位)です。
.height
物体の高さ(ミリメートル単位)です。
サンプル
CALL mm_set_boxsize(1,500,300,200)
詳細な説明
このサンプルを実行すると、Mech-VisionプロジェクトNo.1のステップ「対象物の寸法を読み取る」の物体寸法を500×300×200mmに設定されます。
DO信号リストの取得¶
この二つのコマンドで区分化された吸着ハンドを制御するためにDO信号のリストを取得します。このコマンドを呼び出す前にmm_get_vizdataを実行する必要があります。
ヒント
XXXX/Mech-Center-xxx/tool/viz_project/suction_zone
のサンプルプロジェクトを参考にしてMech-Vizプロジェクトを作成し、Mech-Vizプロジェクトに吸盤のコンフィグファイルを設定する必要があります。また、Mech-Vizにある受信者の名前を現在のロボットモデルと設定する必要があります。
プログラム
mm_get_dolist()
サンプル
CALL mm_get_dolist
詳細な説明
このサンプルを実行すると、Mech-Vizで設定されたDO信号のリストを取得し、setdo[]配列に保存します。配列の最初の要素はsetdo[0]で、最後の要素はsetdo[io_index-1]です。
Mech-VizにTCP座標を入力¶
TCPの位置姿勢データをMech-Viz内のステップ「外部移動」に送信することができます。このコマンドはmm_start_vizの前に呼び出す必要があります。 XXXX/Mech-Center-xxx/tool/viz_project/outer_move
のサンプルプロジェクトを参考にしてMech-Vizプロジェクトを作成し、Mech-Viz内のステップ「外部移動」をワークフロー内の適切な位置に配置してください。
プログラム
mm_set_pos(.&pos)
パラメータの説明
入力パラメータ
説明
.&pos
Mech-Vizに送信するTCPデータを格納してある変数です。変数を変換値として示すために、必ず変数の名前の前に「&」をつけてください。
サンプル
call mm_set_pos(&pos)
詳細な説明
このサンプルを実行すると、&posに格納されている位置姿勢データをMech-Viz内のステップ「外部移動」に送信します。
キャリブレーション¶
カメラの外部パラメータをキャリブレーションするときに使用します。Mech-Visionのカメラキャリブレーション機能と連動してキャリブレーションを自動的に行います。
プログラム
calibrate()
Mech-Visionのカスタマイズされたデータを取得¶
このコマンドは、Mech-Visionの 出力 ステップからカスタマイズされたデータ(posesとlabels以外のポートのデータ)を受信するために使用されます。ステップパラメータで「ポートタイプ」を「カスタム」に設定する必要があります。データは、ポート名のアルファベット順にA-Zまで並んでいます。
プログラム
mm_get_dy_data(.job,.pos_num,.ret)
パラメータの説明
入力パラメータ
説明
.job
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
出力パラメータ
説明
.pos_num
返されたビジョンポイントの数を保存するために使用されます。
.ret
このコマンドが実行した後に返されたステータスコードを保存するために使用されます。
このサンプルを実行した後、返されたビジョンポイントでの位置姿勢とラベルデータはmm_get_pose(.index,.&targetpos,.label,.speed) プログラムから取得できます。カスタマイズされたデータはvis_custom_data[]の2次元配列に格納されています。
サンプル
CALL mm_get_dy_data(1,pos_num,statuscode)
詳細な説明
このサンプルを実行すると、Mech-Visionのプロジェクト1からのカスタマイズされた結果が取得されます。ビジョンポイントの数はposnumに保存されます。ステータスコードはstatuscodeに保存されます。
Mech-Vizから経路点と計画結果を取得¶
このコマンドは、Mech-Vizから計画した経路を取得するために使用されます。経路点は、一般的な移動経路点またはビジョン移動経路点であることができます。経路点には、位置姿勢、速度、ツール情報、ワーク情報などが含まれる場合があります。
このコマンドを実行して得られる経路点は、次の3つのいずれかになります。
ビジョン処理による移動 以外の移動経路点に加えて、その情報には、運動タイプ(関節運動または直線運動)、ツールID、および速度が含まれます。
ビジョン処理による移動 の経路点です。その情報には、ラベル、把持されたワークの合計数、今回把持されたワークの数、吸盤のエッジコーナー番号、TCPオフセット、ワークの向き、およびワークグループのサイズが含まれます。
カスタマイズされたデータを含む、ビジョン処理による移動 の経路点です。この場合、Mech-Visionプロジェクトのステップ 出力 のポートタイプを「カスタム」に設定する必要があります。
プログラム
mm_get_plandata(.getpos_type,.pos_num,.vispos_num,.ret)
パラメータの説明
入力パラメータ
説明
.getpos_type
返されたデータの予期形式で、範囲は1~4です。
以下は、4つの返されたデータの予期形式についての説明です。
返されたデータの予期形式 パラメータ
返されたデータの予期形式 説明
1
位置姿勢(JPs形式),運動タイプ, ツールID, 速度,カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN
2
位置姿勢(TCP形式),運動タイプ, ツールID, 速度,カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN
3
位置姿勢(JPs形式), 運動タイプ, ツールID, 速度, ビジョン計画結果, カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN
4
位置姿勢(TCP形式), 運動タイプ, ツールID, 速度, ビジョン計画結果, カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN
位置姿勢
経路点の位置姿勢は、ロボット関節角度(JPs、単位は度)、ツール位置姿勢(TCP、3次元座標はミリメートル、オイラー角は度)のいずれかであり、その形式は送信するコマンドパラメータに依存します。
運動タイプ
1
:関節運動(MOVEJ)2
:直線運動(MOVEL)
ツールID
経路点で使用するツール番号です。 -1は、ツールが使用されていないことを意味します。
速度
経路点での速度のパーセンテージ値(単位は%)、つまり、Mech-Vizプロジェクトでこの経路点に対応する移動ステップのパラメータに設定した速度に、Mech-Vizで設定したグローバル速度を掛けたものです。
ビジョン計画結果
経路内の計画結果の情報です(経路点が移動ステップ ビジョン処理による移動 に対応する場合)。通常、段ボール箱の複数把持とデパレタイジングなどのシーンに使用されます。情報は次のとおりです。
ラベル:10個の正の整数で構成され、デフォルトは10個の0です。
把持されたワークの合計数。
今回把持されたワークの数。
吸盤エッジコーナー番号:ワークが吸盤のどのエッジに近いかを指定するために使用されます。吸盤のエッジコーナー番号は、Mech-Vizのプロジェクトリソースで対応するエンドツール名をダブルクリックし、 制御ロジック設定 をクリックすると表示されるようになります。
ツール位置姿勢(TCP)のオフセット(ワークの中心に対応するTCPから実際のTCPまでのオフセットです)。
ワークの向き(TCPのX軸に対するワーク座標系のX軸の方向です)。
ワークグループのサイズ。
カスタマイズされたデータ項目の数
これは、Mech-Visionプロジェクトの 出力 ステップでポートタイプが「カスタム」に設定された場合に出力された位置姿勢とラベル以外のデータです。
カスタマイズされたデータ項目
これは、Mech-Visionプロジェクトの 出力 ステップでポートタイプが「カスタム」に設定された場合に出力された位置姿勢とラベル以外のデータです。
カスタマイズされたデータは、ポート名のA–Zの順に並べられています。
出力パラメータ
説明
.pos_num
受信した経路点の数を保存するために使用されます。
.vispos_num
最初の「ビジョン処理による移動」が経路全体における位置を保存するために使用されます。例えば、定点移動_1、定点移動_2、ビジョン処理による移動、定点移動_3の場合、ビジョン処理による移動の位置は3です。ビジョン処理による移動がない場合、このパラメータは0になります。
.ret
このコマンドが実行した後に返されたステータスコードを保存するために使用されます。
正常に呼び出された場合、返されたデータは下表のように固定変数に保存されます。
データ |
変数 |
J1-J6関節角度 |
vis_pos_j1[],vis_pos_j2[],vis_pos_j3[],vis_pos_j4[],vis_pos_j5[],vis_pos_j6[] |
TCP位置姿勢データ(XYZOAT) |
vis_pos_x[],vis_pos_y[],vis_pos_z[],vis_pos_o[],vis_pos_a[],vis_pos_t[] |
速度 |
vis_pos_spd[i] |
運動タイプ |
vis_pos_type[i] |
ツールID |
vis_pos_tool[i] |
Mech-Visionのカスタマイズされたデータ |
vis_custom_data[i, j] |
ビジョン計画結果 |
vis_plan_result[i, j] |
サンプル
CALL mm_get_plandata(3,pos_num,vis_index,statuscode)
詳細な説明
このサンプルを実行すると、Mech-Vizからの計画した経路が取得されます。返されたデータの予期形式は3です。経路点の数がpos_numに保存されます。ビジョン処理による移動が経路全体における位置番号がvis_indexに保存されます。ステータスコードがstatuscodeに保存されます。
Mech-Visionの「経路計画」ステップの結果を取得¶
Mech-Visionプロジェクトを実行した後、このコマンドはMech-Visionプロジェクトの「経路計画」ステップから出力された衝突のない把持経路を取得するために使用されます。
このコマンドを使用する時、Mech-Visionの「出力」ステップの ポートタイプ を「事前定義済み(ロボット経路)」に設定する必要があります。
プログラム
mm_get_vispath(.job,.getpos_type,.pos_num,.vispos_num,.ret)
パラメータの説明
入力パラメータ
説明
.job
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
.getpos_type
「経路計画」ステップから返された経路点の位置姿勢タイプを指定します。
1
:経路点の位置姿勢は関節角度(JPs)の形式で返されます。2
:経路点の位置姿勢はロボットのツール(TCP)位置姿勢の形式で返されます。出力パラメータ
説明
.pos_num
このコマンドを実行した後に返された経路点の数を保存するために使用されます。
.vispos_num
経路計画設定ツールで設定された「ビジョン処理による移動」が経路全体における位置を保存するために使用されます。例えば、定点移動_1、定点移動_2、ビジョン処理による移動、定点移動_3の場合、ビジョン処理による移動の位置は3です。ビジョン処理による移動がない場合、このパラメータは0になります。
.ret
このコマンドが実行した後に返されたステータスコードを保存するために使用されます。
サンプル
CALL mm_get_vispath(1,1,posnum,vis_index,statuscode)
詳細な説明
このサンプルを実行するとMech-Visionプロジェクト1から計画したロボットの動作経路が取得されます。経路点の位置姿勢形式は関節角度です。経路点の数がposnumに保存されます。ビジョン処理による移動が経路全体における位置番号がvis_indexに保存されます。ステータスコードがstatuscodeに保存されます。