標準インターフェイスコマンド¶
KAWASAKIで標準インターフェイスを用いてロボットプログラミングを行う際は、以下の点にご注意ください。
複数のパラメータはコロンで区切る必要があります。
全てのパラメータはローカル変数と定義します。
パラメータは入力パラメータあるいは出力パラメータと定義することが可能です。
入力引数は定数、グローバル変数、ローカル変数を指定することができます。出力引数はグローバル変数、ローカル変数を指定することができます。
通信の初期化¶
ホストIPアドレス、ポート番号、およびTCP/IPの待機時間を設定するためのコマンドです。
プログラム
mm_init_skt(.ip1,.ip2,.ip3,.ip4,.port,.time_out)
パラメータの説明
入力パラメータ
説明
.ip1 - .ip4
IPCのIPアドレスです。
.port
IPCのポート番号で、デフォルトのポート番号は50000です。
.time_out
接続の試行を停止するまでの待機時間(秒単位)です。
サンプル
CALL mm_init_skt(192,168,1,1,50000,60)
詳細な説明
このサンプルを実行すると、IPCのIPアドレスは192.168.1.1、ポート番号は50000、待機時間は60秒に設定されます。
Mech-Visionをトリガー¶
Mech-Visionを使用し、Mech-Vizを使用しないで実行する場合に使用します。対応するMech-Visionプロジェクトを実行して、データの取得および処理を行います。
プログラム
mm_start_vis(.job,.pos_num_need,.sendpos_type)
パラメータの説明
入力パラメータ
説明
.job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。.pos_num_need
Mech-Visionが送信する結果の数(0~20)です。0はすべて送信することを意味します。
.sendpos_type
送信されるロボットの画像撮像姿勢(0~2)を設定します。 0:画像撮像姿勢を送信しないことを意味します。 1:画像撮影姿勢を関節角度で送信します。 2:画像撮影姿勢をフランジ位置姿勢で送信します。
サンプル
CALL mm_start_vis(1,1,1)
詳細な説明
このサンプルを実行するとMech-VisionのNo. 1プロジェクトを実行します。同時にロボットの画像撮影姿勢を関節角度で1つの位置姿勢をMech-Centerへ送信します。
Mech-Visionの結果を取得¶
Mech-Vizを使用せずMech-Visionを使用する場合に使用します。対応するMech-Visionプロジェクトから画像処理結果を取得します。
プログラム
mm_get_visdata(.job,.pos_num,.ret)
パラメータの説明
入力パラメータ
説明
.job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。出力パラメータ
説明
.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)
パラメータの説明
入力パラメータ
説明
.sendpos_type
Mech-Vizのシミュレーション上でのロボット初期位置 [0-1]を設定します。
注釈
0:ロボットの初期関節角度を[0,0,0,0,0,0]に設定します。
1:ロボットの初期関節位置を実際のロボットの関節角度に設定します。
ロボットの初期関節角度を[0,0,0,0,0,0]に設定し、最初の位置姿勢に移動するまでの間で移動を妨げる物体がある場合、このパラメータを1に設定する必要があります。
サンプル
CALL mm_start_viz(1)
詳細な説明
対応するMech-Vizプロジェクトを実行し、シミュレーション上のロボット初期関節角度を実際のロボットと同期します。
移動計画を取得¶
このコマンドは、Mech-Vizプロジェクトに計画した把持経路を取得するために使用されます。
プログラム
mm_get_vizdata(.getpos_type,.pos_num,.vispos_num,.ret)
パラメータの説明
入力パラメータ
説明
.getpos_type
Mech-Vizから送信される移動位置の方式を設定します。
出力パラメータ
説明
.pos_num
取得した位置姿勢の数を記録するための変数です。
.vispos_num
最初の視覚移動の順番を記録するための変数です。例えば、move-1、move-2、visual_move-3、move-3、visual_move-2の場合、最初の視覚移動の順番は3です。行動計画に視覚移動が含まれていない場合、0に設定します。
.ret
Mech-Visionのステータスコードを記録するための変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
注釈
Mech-Vizから返された位置姿勢の形式はロボットの関節角度です。
Mech-Vizから返された位置姿勢の形式はロボットのTCP位置姿勢です。
サンプル
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プロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。.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プロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。.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_getdolist
詳細な説明
このサンプルを実行すると、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に格納されているTCPの位置姿勢をMech-Viz内のタスク「外部移動」に送信します。