標準インターフェースコマンド
標準インターフェースを用いてロボットプログラミングを行う際は、以下の点にご注意ください。
-
複数の パラメータ はコロンで区切る必要があります。
-
全てのパラメータは ローカル変数 と定義します。
-
パラメータは 入力パラメータ あるいは 出力パラメータ と定義することが可能です。
-
入力引数は定数、グローバル変数、ローカル変数を指定することができます。出力引数はグローバル変数、ローカル変数を指定することができます。
以下のコマンドについて説明します。
通信の初期化
Mech-Visionプロジェクトの実行
このコマンドは、Mech-Vizを使用せずMech-Visionを使用する場合に使用します。このコマンドを実行すると、Mech-Visionプロジェクトが実行され、カメラ撮影とビジョン処理による認識が行われます。
入力パラメータ
Job
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
Pos_Num_Need
ビジョンポイントの期待数で、Mech-Visionから取得したいビジョンポイントの数です。ビジョンポイントの情報に、ビジョン位置姿勢およびそれに対応する点群、ラベル、スケーリングの情報が含まれています。
-
0
:Mech-Visionプロジェクトで認識できたすべてのビジョンポイントを取得します。 -
0より大きな整数
:Mech-Visionプロジェクトで認識できた指定数のビジョンポイントを取得します。-
このパラメータの値が認識されたビジョンポイントの合計数より大きい場合、認識結果にあるすべてのビジョンポイントを取得します。
-
このパラメータの値が認識されたビジョンポイントの合計数より小さい場合、このパラメータで指定された数のビジョンポイントを取得します。
-
|
SendPos_Type
「ロボット位置姿勢のタイプ」パラメータは、ロボット実機の位置姿勢をMech-Visionに送信するタイプを設定します。パラメータ範囲は0~3です。
-
0
:ロボットの位置姿勢をビジョンシステムに送信する必要はありません。プロジェクトがEye To Handモードである場合、画像撮影はロボットの位置姿勢とは関係なく、Mech-Visionはロボットの位置姿勢を必要としません。 -
1
:ロボットの位置姿勢を「ロボットの現在の関節角度+フランジ位置姿勢」の形式でビジョンシステムに送信します。Eye In Handのプロジェクトでは、このパラメータを推奨します。Mech-Visionプロジェクトの「経路計画」ステップはロボットを使用して関節角度を送信します。フランジ位置姿勢がすべてゼロの場合、フランジデータは無視されます。 -
2
:ロボットの位置姿勢を現在のフランジ位置姿勢の形式でビジョンシステムに送信します。Eye In Handのプロジェクトで、ロボットが関節角度データがなく、フランジ位置姿勢のみがある場合(直行ロボットなど)に適しています。 -
3
:ロボットの位置姿勢をカスタマイズされた関節角度の形式(ユーザーにより設定された関節角度の変数を読み込む)でビジョンシステムに送信します。Eye To Handプロジェクトでは、このパラメータを推奨します。Mech-Visionプロジェクトの「経路計画」ステップはロボットが送信する関節角度を初期位置姿勢として使用します。
MM_J
ユーザーによりカスタマイズされた関節角度です。SendPos_Typeパラメータ値を3に設定した場合、この関節角度は最初の経路点としてMech-Visionプロジェクトの「経路計画」ステップに送信します。SendPos_Typeパラメータの値が3以外の場合、ここでの関節角度は使用されませんが、必ず設定する必要があります。
ビジョン目標点の取得
「Mech-Visionプロジェクトの実行」コマンドの後に使用されます。Mech-Visionの認識結果(ビジョンポイント)に対応するロボット位置姿勢とラベルを取得します。ロボットの位置姿勢はツール位置姿勢(TCP)の形式です。
Mech-Centerは、ビジョンポイントを対応するロボットTCPに自動的に変換します。変換過程は次の通りです。
-
ビジョンポイントに含まれる位置姿勢をX軸を中心に180°回転させます。
-
対応するロボット型番の基準座標系定義にロボットベースの高さが含まれているかどうかを認識し、それに応じて垂直方向のオフセットを増やします。
102コマンドは毎回最大20個までのTCPを取得することができます。20個以上のTCPを取得したい場合、すべてのTCPを得るまで、102コマンドを繰り返し実行してください。 |
出力パラメータ
Last_Data
このパラメータは、取得したいすべてのTCPが得られたかどうかを表します。値は0か1となります。
-
0
:取得したいすべてのTCPが得られました。このパラメータの値が1になるまで102コマンドを繰り返し実行してください。 -
1
:取得したいすべてのTCPが得られました。
「Mech-Visionプロジェクトの実行」コマンドで設定されたTCP予期数が20(送受信データの長さの初期値)より大きい場合、このパラメータで送信すべきTCPが残っているかどうかを判断できます。データが送信されていない場合は、102コマンドを繰り返し呼び出して受信を継続することが可能です。
すべてのTCPを取得していなくて、101コマンドを再実行すると、取得しなかったTCPのデータがなくなります。 |
変数型:num
Pos_Num
このコマンドを実行して、取得したTCPの数です。
-
リクエストしたTCP数はMech-Visionによって認識されたビジョンポイントの数よりも多い場合、Mech-Visionによって認識されたビジョンポイントの数に従って送信されます。
-
リクエストしたTCP数はMech-Visionによって認識されたビジョンポイントの数よりも少ない場合、リクエストした数に従って送信されます。
デフォルトの範囲は0~20です。
変数型:num
MM_Status
コマンドが正常に実行された場合、 1100 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
このコマンドを呼び出す時、Mech-Visionの結果が返されていない場合に、Mech-CenterはMech-Visionから結果を返すまで待機して、受信した結果をロボットへ送信します。デフォルト待ち時間は10sと設定され、タイムアウトになった場合、タイムアウトエラーを表すステータスコードが返されます。
変数型:num
Mech-Vizプロジェクトの実行
このコマンドは、Mech-VisionとMech-Vizの両方を使用する場合に使われます。Mech-Vizプロジェクトを実行し、対応するMech-Visionプロジェクトを呼び出し、Mech-VizがMech-Visionのビジョン結果に基づいてロボットの動作経路を計画する時に使用されます。
Mech-Vizでは、 自動的に読み込む にチェックを入れる必要があります。
Mech-Mindソフトウェアシステムのインストールディレクトリ( Mech-Center/tool/viz_project
)フォルダには、サンプルプロジェクトがあり、それら基づいて修正することが可能です。
入力パラメータ
SendPos_Type
ロボット位置姿勢のタイプです。パラメータ範囲は0~2です。
0
:Mech-Vizにロボットの位置姿勢を送信する必要はありません。Mech-Vizでの仮想ロボットは関節角度[0,0,0,0,0,0]から一番目の経路点に移動します。
1
:Mech-Vizにロボットの現在の関節角度とフランジ位置姿勢を送信します。Mech-Vizでの仮想ロボットは現在の関節角度から一番目の経路点に移動します。
2
:Mech-Vizに事前定義された関節角度を送信します。Mech-Vizでの仮想ロボットは現在設定された関節角度から一番目の経路点に移動します。
ロボットが関節角度[0, 0, 0, 0, 0, 0]から最初の経路点に移動するときに、シーン内の衝突モデルがロボットに干渉する場合は、位置姿勢タイプを1に設定する必要があります。 |
MM_J
ユーザーによりカスタマイズされた関節角度です。SendPos_Typeパラメータ値を2に設定した場合、この関節角度は最初の経路点としてMech-Vizに送信します。SendPos_Typeパラメータの値が2以外の場合、ここでの関節角度は使用されませんが、必ず設定する必要があります。
Mech-Vizによって計画された動作経路を取得
「Mech-Vizプロジェクトを起動」 のコマンドを実行した後、このコマンドはMech-Vizが計画した経路を取得するために使用されます。このコマンドを実行した後、 取得したロボットのツール位置姿勢(TCP)を保存 または 取得した関節角度を保存 を呼び出して位置姿勢データを取得できます。
このコマンドは毎回最大20個まで計画経路にある経路点を取得することができます。そのため、このコマンドを繰り返して実行する場合があります。
プロジェクト内の移動ステップの経路点をロボットに送信しない場合は、ステップパラメータで「移動目標点を送信」のチェックを外してください。 |
入力パラメータ
GetPos_Type
経路点のタイプで、Mech-Vizが返す経路点の形式を指定するために使用されます。
-
1
:経路点は、ロボットの関節角度(JPs)の形式で返されます。 関節角度データは 取得した関節角度を保存 を呼び出し後にのみ取得可能です。 -
2
:経路点は、ロボットのツール位置姿勢(TCP)の形式で返されます。TCP位置姿勢データは 取得した関節角度を保存 を呼び出した後にのみ取得可能です。
出力パラメータ
Last_Data
位置姿勢の送信が完了しているかどうか。
-
0
:経路にあるすべての経路点が送信されていません。このパラメータの値が1になるまでに、このコマンドを繰り返して実行してください。 -
1
:経路にあるすべての経路点が送信されました。
Pos_Num
経路点の数です。このパラメータは今回このコマンドを実行して、返された経路にある経路点の数を表します([位置姿勢、ラベル、速度(%)])。
経路に20個以上の経路点がある場合、このコマンドを繰り返して実行してください。
デフォルトの範囲は0~20です。
VisPos_Num
「ビジョン処理による移動」の位置、つまり「ビジョン処理による移動」ステップの経路点が経路全体における位置です。「ビジョン処理による移動」は、ビジョンポイントへ移動する移動ステップです。
例えば、「移動_1 ->移動_2 -> ビジョン処理による移動 ->移動_3」のロジックにおいて、ステップ「ビジョン処理による移動」の位置は3です。
ステップ「ビジョン処理による移動」がなければ、このパラメータは0です。
MM_Status
ステータスコード。
コマンドが正常に実行された場合、 2100 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
このコマンドを実行する時、Mech-Vizから結果が返されていない場合(まだ実行中)、Mech-CenterはMech-Vizからの結果を待って、それをロボットに送信します。デフォルトの場合、タイムアウト時間は10秒であり、待ち時間が超えるとタイムアウトエラーをロボットに返します。 |
取得したロボットのツール位置姿勢(TCP)を保存
取得した関節角度を保存
Mech-Visionのパラメータレシピの切替
Mech-Visionプロジェクトにパラメータレシピを切り替えます。
パラメータレシピを切り替えることで、Mech-Visionプロジェクトの各ステップのパラメータを変更することができます。
パラメータレシピには点群マッチングモデル、画像マッチングテンプレート、ROI、信頼度のしきい値などのパラメータの設定が含まれています。
このコマンドは、「Mech-Visionプロジェクトの実行」コマンドの前に実行する必要があります。 |
Mech-Viz分岐を選択
Mech-Vizプロジェクトに「メッセージによって異なる分岐を実行」ステップがある場合、このコマンドはMech-Vizにある「メッセージによって異なる分岐を実行」ステップを指定された出口に沿って実行し続けることを制御します。
このコマンドは、「Mech-Vizプロジェクトの実行」コマンドの後に実行する必要があります。
Mech-Vizプロジェクトが「メッセージによって異なる分岐を実行」に実行すると、このコマンドによって出口を指定するのを待ちます。
移動インデックスを設定
このコマンドはMech-Vizステップの 現在のインデックス パラメータを設定する場合に使われます。このパラメータが設定可能なステップは「リストによる移動」、「グリッドによる移動」、「カスタマイズのパレットパターン」、「事前計画パレットパターン」などです。
このコマンドは、「Mech-Vizプロジェクトの実行」コマンドの後に実行する必要があります。
入力パラメータ
Skill_Num
ステップID。
このパラメータはどのステップがインデックスを設定する必要かを指定します。
このパラメータ、つまり、インデックス付きのステップのステップIDは正の整数である必要があります。ステップIDは、ステップパラメータで読み取りを行います。
Index_Num
次にこのステップが実行されたときに設定されるべき 現在のインデックス の値です。
このコマンドを送信すると、Mech-Vizの 現在のインデックス 値がこのパラメータの値から1を引いた値に変更されます。
このコマンドで指定したステップに Mech-Viz プロジェクトが実行されると、 Mech-Viz の 現在のインデックス値 が、このパラメータの値まで1つずつ増加します。
ソフトウェアのステータスを取得
Mech-Visionプロジェクトへ対象物の寸法を送信
このパラメータはMech-Visionプロジェクトに、対象物の寸法を動的に送信する場合に使われます。Mech-Visionプロジェクトを実行する前に対象物の寸法を確認する必要があります。
Mech-Vision プロジェクトに「対象物の寸法を読み込む」ステップがあり、 パラメータから対象物の寸法を読み込む にチェックを入れる必要があります。
DOリストを取得
このコマンドは、計画されたDOリストを取得するために使用されます。DO信号は、複数のロボットハンドまたは吸盤のパーティションを制御するために使用されます。
このコマンドを実行する前に、MM_Start_Vizを呼び出してMech-Vizが計画した経路を取得する必要があります。
サンプルプロジェクトに基づいてMech-Vizプロジェクトを設定し、プロジェクトに使用される吸盤設定ファイルを設定してください。サンプルプロジェクトは、ソフトウェアシステムのインストールディレクトリにある (Mech-Center/tool/viz_project) の suction_zone となります。
DO信号リストの設定
このサンプルを実行すると、Mech-Vizから送信されたDoリストがGO信号に設定されます。最大4グループで、各グループは16bitのGO信号を格納しています。 複数のグループのGO信号を設定する場合は、このコマンドを繰り返してください。
このコマンドはMM_Get_DoListの後で呼び出す必要があります。 |
Mech-VizにTCPを送信
このコマンドは、Mech-VizプロジェクトにロボットTCPを動的に送信するためによく使われます。ロボットのTCPを読み取るステップは「外部移動」です。
サンプルプロジェクトに基づいてMech-Vizプロジェクトを設定してください。サンプルプロジェクトは、ソフトウェアシステムのインストールディレクトリにあるMech-Center tool/viz_project/outer_move
フォルダに格納されています。
「外部移動」ステップをワークフローの適切な場所に配置します。
このコマンドは、「Mech-Vizプロジェクトの実行」コマンドの前に実行する必要があります。
キャリブレーション
このコマンドは、ハンド・アイ・キャリブレーションを行う場合に使われます(カメラ外部パラメータのキャリブレーション)。
このコマンドを実行すると、Mech-Visionとキャリブレーションの状態を同期し、Mech-Visionからキャリブレーションポイントを取得します。
キャリブレーションを完成するために、このコマンドを繰り返して実行する必要があります。
Mech-Visionのカスタマイズされたデータを取得
MM_GET_DY_DATAで取得したカスタマイスされたデータを各変数に割り当てる
このコマンドは最初のカスタマイズされたデータを指定したデータに従って異なる変数に保存するために使用されます。 Mech-Visionのカスタマイズされたデータを取得 コマンドを実行した後に使用する必要があります。
入力パラメータ
Serial
num型の変数。インデックス値を指定するために使用されます。つまり、どのビジョンポイントでのカスタマイズされたデータを取得するために使用されます(データの順番はMech-Visionの送信順です)。
Mech-Vizから経路点を取得
このコマンドは、Mech-Vizから計画した経路を取得するために使用されます。経路点は、一般的な移動経路点またはビジョン移動経路点であることができます。経路点には、位置姿勢、速度、ツール情報、ワーク情報などが含まれる場合があります。このコマンドを一度呼び出すと、取得したすべてのデータがロボットのメモリに保存されます。
このコマンドを実行して得られる経路点は、次の3つのいずれかになります。
-
「ビジョン処理による移動」以外の移動経路点に加えて、その情報には、運動タイプ(関節運動または直線運動)、ツールID、および速度が含まれます。
-
「ビジョン処理による移動」の経路点です。その情報には、ラベル、把持されたワークの合計数、今回把持されたワークの数、吸盤のエッジコーナー番号、TCPオフセット、ワークの向き、およびワークグループのサイズが含まれます。
-
カスタマイズされたデータを含む、「ビジョン処理による移動」の経路点です。この場合、Mech-Visionプロジェクトのステップ「出力」のポートタイプを「カスタム」に設定する必要があります。
入力パラメータ
Jps_Pos
num型の変数。返されたデータの予期形式です。値の範囲は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の順に並べられています。
MM_GET_PLANDATAで取得したデータを各変数に割り当てる
このコマンドは Mech-Vizから経路点を取得 の後に使用されます。Jps_Posパラメータの値に応じて異なるプログラムを選択し、指定したインデックスに対応する最初のデータを異なる変数に格納するために使用されます。
プログラム
MM_Get_PlanPose Serial,Jps_Pos,MM_P,MM_MoveType,MM_ToolNum,MM_Speed; (当 Jps_Pos=2 或者 4 时)
MM_Get_PlanJps Serial,Jps_Pos,MM_J,MM_MoveType,MM_ToolNum,MM_Speed; (当 Jps_Pos=1 或者 3 时)
入力パラメータ
Serial
num型の変数。グローバル配列で取得する経路点を指定するために使用されます(データの順番はMech-Vizの出力における経路点の順番に従います)。
Jps_Pos
num型の変数。MM_GET_PLANDATAのJps_Posの値と一致する必要があります。
出力パラメータ
MM_P
robtarget型の変数。指定した経路点が対応するTCPデータ(プログラム1に使用)を保存するために使用されます。
MM_J
Jointtarget型の変数。指定した経路点が対応する関節角度データ(プログラム2に使用)を保存するために使用されます。
MM_MoveType
num型の変数。指定した経路点が対応する運動タイプを保存するために使用されます。
MM_ToolNum
num型の変数。指定した経路点が対応するツールIDを保存するために使用されます。
MM_Speed
num型の変数。指定した経路点が対応する速度を保存するために使用されます。
MM_UserData
グローバル配列変数。ユーザーはこのパラメータを送信する必要はなく、配列を読み込むだけでいいです。指定した経路点に対応するカスタマイズされたデータを保存するために使用されます。
MM_Plan_Results
グローバル配列変数。ユーザーはこのパラメータを送信する必要はなく、配列を読み込むだけでいいです。指定した経路点が対応するビジョン計画結果を保存するために使用されます。
サンプル
-
サンプル1:
MM_Get_PlanPose 2,4,P10,MoveType,ToolNum,Speed;
MM_GET_PLANDATAが実行後、このサンプルを実行すると、Mech-Vizが計画した2番目の経路点のTCPデータをP10変数に、運動タイプ、ツールID、速度をそれぞれMoveType、ToolNum、Speed変数に保存します。この経路点がビジョン処理による移動の経路点でない場合、もっと情報は提供されません。ビジョン処理による移動の経路点である場合、ビジョン計画結果がMM_Plan_Resultsグローバル配列に保存され、カスタマイズされたデータがMM_UserDataグローバル配列に保存されます。
-
サンプル2:
MM_Get_PlanJps 1,3,jpose1,MoveType,ToolNum,Speed;
MM_GET_PLANDATAが実行後、このサンプルを実行すると、Mech-Vizが計画した最初の経路点の関節角度データをjpose1変数に、運動タイプ、ツールID、速度をそれぞれMoveType、ToolNum、Speed変数に保存します。この経路点がビジョン処理による移動の経路点でない場合、もっと情報は提供されません。ビジョン処理による移動の経路点である場合、ビジョン計画結果がMM_Plan_Resultsグローバル配列に保存され、カスタマイズされたデータがMM_UserDataグローバル配列に保存されます。
Mech-Visionの「経路計画」ステップの結果を取得
Mech-Visionプロジェクトを実行した後、このコマンドはMech-Visionプロジェクトの「経路計画」ステップから出力された衝突のない把持経路を取得するために使用されます。
このコマンドを使用する時、Mech-Visionの「出力」ステップの ポートタイプ を「事前定義済み(ロボット経路)」に設定する必要があります。
入力パラメータ
Job
num型の変数。Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
Jps_Pos
num型の変数。「経路計画」ステップから返された経路点の位置姿勢タイプを指定するために使用されます。
-
1
:経路点の位置姿勢は、ロボットの関節角度(JPs)の形式で返されます。 -
2
:経路点の位置姿勢は、ロボットのツール位置姿勢(TCP)の形式で返されます。
出力パラメータ
Last_Data
num型の変数。経路点の送信が完了するかどうかを表します。
-
0
:経路にあるすべての経路点が送信されていません。このパラメータの値が1になるまでに、このコマンドを繰り返して実行してください。 -
1
:経路にあるすべての経路点が送信されました。
Pos_Num
num型の変数。このコマンドを実行した後に返された経路点の数を保存するために使用されます。
VisPos_Num
num型の変数。経路計画設定ツールで設定された「ビジョン処理による移動」が経路全体における位置を保存するために使用されます。例えば、経路計画は「移動_1 -> 移動_2 -> ビジョン処理による移動 -> 移動_3」のステップで構成されている場合、「ビジョン処理による移動」の位置は3です。「ビジョン処理による移動」がなければ、このパラメータは0です。
MM_Status
num型の変数。このコマンドが実行した後に返されたステータスコードを保存するために使用されます。