TCP/IP コマンド
本節では、TCP/IPの通信プロトコルを基づいた標準インターフェースのコマンドについて説明します。
コマンド101——Mech-Visionプロジェクトを起動
このコマンドを実行すると、Mech-Visionプロジェクトが実行され、カメラ撮影とビジョン処理による認識が行われます。Mech-Vizを使用せずMech-Visionを使用する場合に使用します。
送信コマンド
101,Mech-Visionプロジェクト番号,ビジョンポイントの期待数,ロボット位置姿勢のタイプ,ロボット位置姿勢
Mech-Visionプロジェクト番号
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
ビジョンポイントの期待数
Mech-Visionから取得したいビジョンポイントの数です。ビジョンポイントの情報に、ビジョン位置姿勢およびそれに対応する点群、ラベル、スケーリングの情報が含まれています。
-
0
:Mech-Visionプロジェクトで認識できたすべてのビジョンポイントを取得します。 -
0より大きな整数
:Mech-Visionプロジェクトで認識できた指定数のビジョンポイントを取得します。-
このパラメータの値がMech-Visionで認識されたビジョンポイントの合計数より大きい場合、認識結果にあるすべてのビジョンポイントを取得します。
-
このパラメータの値がMech-Visionで認識されたビジョンポイントの合計数より小さい場合、このパラメータで指定された数のビジョンポイントを取得します。
-
ビジョンポイントを取得するコマンドは102コマンドです。TCP/IPでは、102コマンドを一度実行して最大20個のビジョンポイントを取得できます。102コマンドを一回実行した後、返された1つのパラメータに、リクエストされたすべてのビジョンポイントが返されたかどうかが反映されます。そうでなければ、102コマンドを繰り返し実行してください。 |
ロボット位置姿勢のタイプ 、 ロボット位置姿勢
-
ロボット位置姿勢のタイプ パラメータは、ロボット実機の位置姿勢をMech-Visionに送信するタイプを設定します。パラメータ範囲は0~3です。
-
ロボット位置姿勢 のパラメータ値は、 ロボット位置姿勢のタイプ のパラメータ値によって異なります。
2つのパラメータの値と関係と説明は以下の通りです。
ロボット位置姿勢のタイプ | ロボット位置姿勢 | 説明 | 適用シーン |
---|---|---|---|
0 |
0, 0, 0, 0, 0, 0 |
Mech-Visionにロボットの位置姿勢を送信する必要がありません |
プロジェクトは、Eye To Handモードです。Mech-Visionプロジェクトで「経路計画」ステップを使用する場合、経路計画の開始位置は、経路計画ツールで設定した原点です。 |
1 |
ロボットの現在の関節角度とフランジ位置姿勢 |
Mech-Visionにロボットの現在の関節角度とフランジ位置姿勢を送信する必要があります |
プロジェクトは、Eye In Handモードです。この設定は、直行ロボット以外のほとんどのロボットで利用可能です。 |
2 |
ロボットの現在のフランジ位置姿勢 |
Mech-Visionにロボットの現在のフランジ位置姿勢を送信する必要があります |
プロジェクトは、Eye In Handモードです。ロボットは関節角度のデータを持たず、フランジい位置姿勢データのみを持ちます(直行ロボットの場合など)。 |
3 |
ロボット経路計画の開始位置の関節角度 |
Mech-Visionにロボット経路計画の開始位置の関節角度を送信する必要があります |
プロジェクトは、Eye To Handモードです。Mech-Visionプロジェクトで「経路計画」ステップを使用する場合、経路計画の開始位置は、経路計画ツールで設定した初期位置です。 |
位置姿勢は位置と姿勢からなり、位置の単位はミリメートル(mm)です。姿勢はオイラー角で表し、単位は度(°)です。関節角度の単位は度(°)です。 |
実行例
Eye In Handの場合、コマンドはロボットの現在の関節角度とフランジ位置姿勢を送信し、正常実行例を以下に示します。
TCP send string = 101, 1, 0, 1, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
TCP received string = 101, 1102
Eye To Handの場合、コマンドはティーチングされた関節角度を送信し、正常実行例を以下に示します。
TCP send string = 101, 1, 0, 3, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15
TCP received string = 101, 1102
次の例は、番号2のビジョンプロジェクトが登録されていないことを示すコマンド実行例外です。
TCP send string = 101, 2, 10, 0
TCP received string = 101, 1011
コマンド102——ビジョン目標点を取得
コマンド101——Mech-Visionプロジェクトを起動 の後に使用します。このコマンドは、Mech-Visionから取得したビジョンポイントを自動的にビジョン目標点に変換するために使用されます。
以下に、ビジョンポイントに含まれる位置姿勢をロボットTCPに変換する処理を示します。
-
ビジョンポイントに含まれる位置姿勢をX軸を中心に180°回転させます。
-
対応するロボット型番の基準座標系定義にロボットベースの高さが含まれているかどうかを認識し、それに応じて垂直方向のオフセットを増やします。
デフォルトでは、102コマンドは毎回最大20個までのビジョン目標点を取得することができます。20個以上のビジョン目標点を取得するには、すべてのビジョン目標点を得るまで、102コマンドを繰り返し実行してください。 |
送信コマンド
102,Mech-Visionプロジェクト番号
Mech-Visionプロジェクト番号
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
返されたデータ
102, ステータスコード, 送信が完了しているかどうか, ビジョン目標点の数, 予約語, ビジョン目標点, ビジョン目標点, ......, ビジョン目標点
ビジョン目標点データは、返されたデータパラメータの最後に位置します(毎回20個まで返されます)。ビジョン目標点には、TCP、ラベルおよび速度(速度値はゼロ)が含まれます。 |
ステータスコード
コマンドが正常に実行された場合、 1100 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
このコマンドを呼び出した後、10秒以内にMech-Visionからのビジョン結果を受信しない場合、タイムアウトを表すエラーコードが返されます。
位置姿勢の送信が完了しているかどうか
このパラメータは、取得したいすべてのビジョン目標点が得られたかどうかを表します。値は0か1となります。
-
0
:取得したいすべてのビジョン目標点が得られていないことを意味します。このパラメータの値が1になるまで102コマンドを繰り返し実行してください。 -
1
:取得したいすべてのビジョン目標点が得られたことを意味します。
101コマンド で、指定したビジョン目標点の期待数が20個以上ある場合、このパラメータ値によって、送信されなかったビジョン目標点があるかどうかを確認することができます。送信されなかったビジョン目標点がある場合、102コマンドを繰り返し実行して、受信を継続することができます。
すべてのビジョン目標点を取得していなくて、101コマンドを再実行すると、取得しなかったビジョン目標点のデータがなくなります。 |
ビジョン目標点の数
このコマンドを実行して、取得したビジョン目標点の数です。
-
リクエストしたビジョン目標点の数はMech-Visionによって認識されたビジョン位置姿勢の数よりも多い場合、Mech-Visionによって認識されたビジョン位置姿勢の数に従って送信されます。
-
リクエストしたビジョン目標点の数はMech-Visionによって認識されたビジョンポイントの数よりも少ない場合、リクエストした数に従って送信されます。
デフォルトの範囲は0~20です。
予約語
この予約語が使われていないため、初期値は0です。
ビジョン目標点
1つのビジョン目標点は8つのデータで構成され、最初の6個がTCP、7番目がラベル、最後が速度を示します。
-
TCP:TCPには3次元座標(XYZ、ミリメートル単位)とオイラー角(ABC、単位は度)が含まれます。
-
ラベル:位置姿勢に対応する整数のラベルです。Mech-Visionプロジェクトでラベルは文字列タイプであり、出力する前に「ラベルマッピング」ステップを使用してラベルを整数にマッピングする必要があります。プロジェクトにラベルが含まれていない場合、このパラメータの初期値は0です。
-
速度:このパラメータの初期値はゼロです。通常、Mech-Visionによって出力されるビジョン結果には、目標点の速度情報は含まれていません。
実行例
コマンドが正常に実行された場合
TCP send string = 102, 1
TCP received string = 102, 1100, 1, 1, 0, 95.7806085592122, 644.5677779910724, 401.1013614123109, 91.12068316085427, -171.13014981284968, 180.0, 0, 0
コマンドの実行でエラーが発生したため、ビジョン結果が出てきませんでした。
TCP send string = 102, 1
TCP received string = 102, 1002
ビジョン目標点をリクエストする実行例
次の実行例に従って、コマンド101、102、102の順でコマンドを実行し、22個のビジョン目標点を取得します。詳細は以下の通りです。
-
TCP/IPはコマンド101を送信します。コンテンツは
101, 1, 0, 1, …
で、すべてのビジョン目標点の取得をリクエストします。 -
TCP/IPはコマンド102を送信し、20個のビジョン目標点を取得します。
-
TCP/IPはコマンド102からのデータを受信します。コンテンツは
102, 1100, 0, 20, …
で、すべてのビジョン目標点が取得していません。20個のビジョン目標点を含んだデータが返されます。 -
TCP/IPはコマンド102を再送信します。残りのビジョン目標点を取得します。
-
TCP/IPはコマンド102からのデータを受信します。コンテンツは
102, 1100, 1, 2, …
です。2個のビジョン目標点を含んだデータが返され、すべての必要なビジョン目標点が送信されたことを表します。
コマンド101を送信します。
TCP send string = 101, 1, 0, 1, -0, -20.63239, -107.81205, -0, -92.81818, 0.0016
TCP received string = 101, 1102
コマンド102を送信し、20個のビジョン目標点を取得します。
TCP send string = 102, 1
TCP received string = 102, 1100, 0, 20, 0, 95.7806085592122, 644.5677779910724, 401.1013614123108, 31.12068316085427, ...
TCP received string = 78549940546, -179.99999999999991.0.0, 329.228345202334.712.7061697180302.400.9702665047771, ...
TCP received string =39546, -83.62567351596952, -170.87955974536686, -179.99999999999937, 0, 0, 223.37118373658322, ...
TCP received string = 005627, 710.1004355953408, 400.82227273918835, -43.89328326393665, -171.30845207792612, ...
TCP received string = 20.86318821742358, 838.7634193547805, 400.79807564314797, -102.03947940869523, -171.149261231 ...
TCP received string = 390299920645, -179.99999999999994, 0, 0, 303.0722145720921, 785.3254917220695, 400.75827437080, ...
TCP received string = 99668287.77.78291612041707, -171.53941633937786, 179.99999999899997, 0.0, 171.47819668864432, ...
TCP received string = 332193785, 400.6472716208158, -94.3418019038759, -171.10001228964776, -179.39999999999994, ...
TCP received string = 92388542936, 807.5641001485708, 400.6021999602664, - 167.9834797197932.-171.39671274951826, ...
TCP received string = 278.3198007132188, 780.5325992145735, 400.4924381003066, -174.72728396633053, -171.422604771 ...
TCP received string = 3.99999999999994, 0, 0, 183.82195326381233, 862.5171519967056.400.422966515846.-154. 17801945 ...
TCP received string = 173.34301974982765, -180.0, 0, 0
もう一度コマンド102を送信し、残りの2つのビジョン目標点を取得します。
TCP send string = 102, 1
TCP received string = 102, 1100, 1, 2, 0, 315.2017788478321, 592.1261793743445, 399.60526335590957, 126.19602189220371, ...
TCP received string = 686127, -171.44430002882129, -1.3381805753922965e-15, 0, 0
コマンド103——Mech-Visionのパラメータレシピの切り替え
Mech-Visionプロジェクトにパラメータレシピを切り替えます。
パラメータレシピを切り替えることで、Mech-Visionプロジェクトの各ステップのパラメータを変更することができます。
パラメータレシピには点群マッチングモデル、画像マッチングテンプレート、ROI、信頼度のしきい値などのパラメータの設定が含まれています。
コマンド101——Mech-Visionプロジェクトを起動 を実行する前に、このコマンドを使用する必要があります。 |
コマンド105——Mech-Visionの「経路計画」ステップの結果を取得
101コマンドを呼び出した後、このコマンドを使用してMech-Visionの「経路計画」ステップから出力された衝突ないの把持経路を取得します。
このコマンドを使用する時、Mech-Visionの「出力」ステップの ポートタイプ を「事前定義済み(ロボット経路)」に設定する必要があります。
105コマンドを呼び出す前に、105コマンドの呼び出し回数を減らすように101コマンドの ビジョン目標点の期待数 を0に設定する必要があります。101コマンドの ビジョン目標点の期待数 を1に設定すると、105コマンドの呼び出しごとに1つの経路点のみが返され、105コマンドを複数回呼び出した場合にのみすべての経路点が返されます。 |
送信コマンド
105,Mech-Visionプロジェクト番号,経路点の位置姿勢タイプ
Mech-Visionプロジェクト番号
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
経路点の位置姿勢タイプ
このパラメータは、「経路計画」ステップから返された経路点の位置姿勢タイプを指定するために使用されます。
-
1
:経路点の位置姿勢は、ロボットの関節角度(JPs)の形式で返されます。 -
2
:経路点の位置姿勢は、ロボットのツール位置姿勢(TCP)の形式で返されます。
返されたデータ
105,ステータスコード,送信が完了したかどうか,経路点の数,「ビジョン処理による移動」の位置,経路点,経路点,...,経路点
ステータスコード
コマンドが正常に実行された場合、 1103 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
位置姿勢の送信が完了しているかどうか
-
0
:経路にあるすべての経路点が送信されていません。このパラメータの値が1になるまでに、このコマンドを繰り返して実行してください。 -
1
:経路にあるすべての経路点が送信されました。
経路点の数
このパラメータは、このコマンドを実行した後に返された経路点の数を表します。範囲は0~20です。20以上の経路点を取得するには、このコマンドを繰り返してください。
「ビジョン処理による移動」の位置
経路計画ツールで設定された「ビジョン処理による移動」の経路点が経路全体における位置です。
例えば、経路計画は移動_1 -> 移動_2 -> ビジョン処理による移動 -> 移動_3のステップで構成されている場合、「ビジョン処理による移動」の位置は3です。
「ビジョン処理による移動」がなければ、このパラメータは0です。
経路点
1つの経路点は8つのデータで構成され、最初の6個は位置姿勢、7番目はラベル、最後は速度を表します。
-
位置姿勢:3次元座標(メートル単位)、オイラー角(度)、または関節角度(度単位)。位置姿勢の形式は、105コマンドの 経路点のタイプ で決定されます。
-
ラベル:位置姿勢に対応する整数のラベルです。Mech-Visionプロジェクトでラベルは文字列タイプであり、出力する前に「ラベルマッピング」ステップを使用してラベルを整数にマッピングする必要があります。プロジェクトにラベルが含まれていない場合、このパラメータの初期値は0です。
-
速度:経路計画設定ツールで設定された速度値です。
実行例
コマンドが正常に実行された場合
TCP send string = 105, 1, 2
TCP received string =105,1103,1,5,3,1030.0,0,1260.0,0.0,90.0,-0.0,0,7,1149.114,-298.9656,274.9219,-0.0977,-1.3863,-175.9702,0,7,1149.8416,-296.8585,245.0048,-0.0977,-1.3863,-175.9702,2,7,1149.114,-298.9656,274.9219,-0.0977,-1.3863,-175.9702,0,7,1030.0,0,1260.0,0.0,90.0,-0.0,0,7
エラーが発生した場合
TCP send string = 105, 1,2
TCP received string = 105, 1020
コマンド110 —— Mech-Visionからカスタマイズされたデータを取得
このコマンドは、Mech-Visionの「出力」ステップからカスタマイズされたデータを受け取るために使用されます。つまり、posesとlabels以外のポートのデータを受け取ります(ステップパラメータ「ポートタイプ」を「カスタム」に設定する場合)。
このコマンドが実行されるたびに、1つの位置姿勢とそれに対応するラベル、スコアなど(存在する場合)のみがビジョン結果から取得されます。 複数の位置姿勢を受け取る必要がある場合は、このコマンドを繰り返し実行してください。
送信コマンド
110,Mech-Visionプロジェクト番号
Mech-Visionプロジェクト番号
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
返されたデータ
110,ステータスコード,位置姿勢の送信が完了するかどうか, カスタマイズされたデータ項目数, 対象物の位置姿勢が対応するロボットツール位置姿勢(TCP), ラベル, カスタマイズされたデータ項目, ..., カスタマイズされたデータ項目
ステータスコード
コマンドが正常に実行された場合、ステータスコード1100が返されます。 エラーが発生した場合、エラーを表すエラーコードが返されます。
このコマンドを呼び出した後、10秒以内にMech-Visionからのビジョン結果を受信しない場合、タイムアウトを表すエラーコードが返されます。
位置姿勢の送信が完了するかどうか
-
0
:ビジョン結果にまだ送信されていない位置姿勢があります。 -
1
:ビジョン結果のすべての位置姿勢が送信されました。
カスタマイズされたデータ項目の数
位置姿勢とラベル以外のデータ型のカスタマイズされたデータ項目に合計数です。
対象物の位置姿勢が対応するロボットツール位置姿勢(TCP)
ロボット座標系でのツール位置姿勢 (TCP、3次元座標はミリメートル、オイラー角は度単位)です。Mech-Visionは対象物の位置姿勢を出力し、その位置姿勢をロボットツール位置姿勢に変換します。したがって、ステップ「出力」には1つの位置姿勢ポートが必要です。
通常、対象物の位置姿勢に対応するツール位置姿勢は、対象物の位置姿勢のZ軸を反転させることによって生成されます。
ラベル
位置姿勢に対応する対象物情報ラベルです。ラベルは正の整数である必要があります。それ以外の場合は、Mech-Visionプロジェクトの「出力」ステップを使用して正の整数にマッピングする必要があります。「出力」ステップにラベルポートがない場合、このフィールドは0で埋められます。
カスタマイズされたデータ項目
これは、Mech-Visionプロジェクトの「出力」ステップでポートタイプが「カスタム」に設定された場合に出力された位置姿勢とラベル以外のデータです。
カスタマイズされたデータは、ポート名のA–Zの順に並べられています。
コマンド201——Mech-Vizプロジェクトを起動
このコマンドは、Mech-VisionとMech-Vizの両方を使用する場合に使われます。Mech-Vizプロジェクトを開始し、対応するMech-Visionプロジェクトを呼び出し、Mech-VizがMech-Visionのビジョン結果に基づいてロボットの動作経路を計画する時に使用されます。
Mech-Vizのリソースパネルでプロジェクトを右クリックし、 自動的に読み込む にチェックを入れます。 |
Mech-Mindソフトウェアシステムは、標準インターフェースを使用して通信する際に、ユーザーがMech-Vizプロジェクトの作成方法を参照できるように、標準インターフェースを使用したMech-Vizサンプルプロジェクトを提供しています。詳細については、 標準インターフェースを使用したMech-Vizサンプルプロジェクト をご参照ください。
送信コマンド
201, ロボット位置姿勢のタイプ, ロボット位置姿勢
ロボット位置姿勢のタイプ 、 ロボット位置姿勢
-
ロボット位置姿勢のタイプ パラメータは、ロボット実機の位置姿勢をMech-Vizに送信するタイプを設定します。パラメータ範囲は0~2です。
-
ロボット位置姿勢 のパラメータ値は、 ロボット位置姿勢のタイプ のパラメータ値によって異なります。
2つのパラメータの値と関係と説明は以下の通りです。
ロボット位置姿勢のタイプ | ロボット位置姿勢 | 説明 | 適用シーン |
---|---|---|---|
0 |
0, 0, 0, 0, 0, 0 |
Mech-Vizにロボットの位置姿勢を送信する必要がありません。Mech-Vizでの仮想ロボットは初期位置姿勢(JPs = [0, 0, 0, 0, 0, 0] )から最初の経路点に移動します。 |
プロジェクトは、Eye To Handモードです。この設定は推奨しません。 |
1 |
ロボットの現在の関節角度とフランジ位置姿勢 |
Mech-Vizにロボットの現在の関節角度とフランジ位置姿勢を送信する必要があり、Mech-Vizでの仮想ロボットは受信された位置姿勢から最初の経路点に移動します。 |
プロジェクトはEye In Handモードである場合は、この設定は推奨します。 |
2 |
ロボット側でカスタマイズされた関節角度 |
Mech-Vizにロボットのティーチポイント(現在の関節角度ではない)を送信する必要があります。これは、ロボットが画像撮影領域の外にいるとき(下図に示す)、Mech-Vizプロジェクトが次回の経路を事前に計画することをトリガーするために使用されます。Mech-Vizでの仮想ロボットは受信された最初のティーチポイントから最初の経路点に移動します。 |
プロジェクトはEye To Handモードである場合は、この設定は推奨します。 |
Eye To Handモードでは、 ロボット位置姿勢のタイプ が2に設定されている理由は以下の通りです。
Eye To Handモードでは、カメラはロボットが画像撮影領域と把持領域に戻る前に撮影し、次回の把持経路を計画することができます。これにより、タクトタイムの向上が可能です。
この時、 ロボット位置姿勢のタイプ が1に設定され、つまり現在の位置姿勢をMech-Vizに送信すれば、仮想ロボットがロボット実機の経路と一致しない可能性があります。また、未知の衝突が発生する可能性もあります。
仮想ロボットは現在の位置姿勢からMech-Vizでの最初の移動ステップで設定された位置姿勢に移動しますが、ロボット実機は上記の位置姿勢に移動する前に別の位置姿勢に移動する可能性があるということです。
したがって、ロボット位置姿勢のタイプ パラメータを2に設定する必要があります。
位置姿勢は位置と姿勢からなり、位置の単位はミリメートル(mm)です。姿勢はオイラー角で表し、単位は度(°)です。関節角度の単位は度(°)です。 |
実行例
Eye In Handの場合、コマンドはロボットの現在の関節角度とフランジ位置姿勢を送信し、正常実行例を以下に示します。
TCP send string = 201, 1, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
TCP received string = 201, 2103
Eye To Handの場合、コマンドはティーチングされた関節角度を送信し、正常実行例を以下に示します。
TCP send string = 201, 2, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15
TCP received string = 201, 2103
以下のサンプルでは、コマンドは必要な位置姿勢データを送信しないため、実行例外となります。
TCP send string = 201, 1
TCP received string = 201, 2013
コマンド203——Mech-Viz分岐を選択
Mech-Vizプロジェクトに「メッセージによって異なる分岐を実行」ステップがある場合、このコマンドはMech-Vizにある「メッセージによって異なる分岐を実行」ステップを指定された出口に沿って実行し続けることを制御します。
このコマンドを実行する前に、 コマンド201——Mech-Vizプロジェクトを起動 を実行してください。
Mech-Vizプロジェクトが「メッセージによって異なる分岐を実行」に実行すると、このコマンドによって出口を指定するのを待ちます。
コマンド204——移動インデックスを設定
このコマンドはMech-Vizステップの 現在のインデックス パラメータを設定する場合に使われます。このパラメータが設定可能なステップは「リストによる移動」、「グリッドによる移動」、「カスタマイズのパレットパターン」、「事前計画パレットパターン」などです。
このコマンドを実行する前に、 コマンド201——Mech-Vizプロジェクトを起動 を実行してください。
送信コマンド
204, ステップID,インデックス値
ステップID
このパラメータは、インデックス付きのステップIDを指定するために使用されます。正の整数である必要があります。ステップIDは、ステップパラメータで読み取りを行います。
インデックス值
次にこのステップが実行されたときに設定されるべき 現在のインデックス の値です。
このコマンドを送信すると、Mech-Vizの 現在のインデックス 値がこのパラメータの値から1を引いた値に変更されます。
このコマンドで指定したステップに Mech-Viz プロジェクトが実行されると、 Mech-Viz の 現在のインデックス の値が、このパラメータの値まで1つずつ増加します。
コマンド205——計画経路を取得
コマンド201——Mech-Vizプロジェクトを起動 を実行した後、このコマンドはMech-Vizが計画した経路を取得するために使用されます。
初期設定を使用する場合、このコマンドを一回実行すると最大20個の計画された経路点を取得できます。したがって、20以上の経路点を取得するには、このコマンドを繰り返してください。
プロジェクト内の移動ステップの経路点をロボットに送信しない場合は、ステップパラメータで「移動目標点を送信」のチェックを外してください。 |
送信コマンド
205, 経路点タイプ
経路点タイプ
このパラメータはMech-Vizからどのような形式で経路点を返すかを指定します。
-
1
:経路点は、ロボットの関節角度(JPs)の形式で返されます。 -
2
:経路点は、ロボットのツール位置姿勢(TCP)の形式で返されます。
返されたデータ
205,ステータスコード,送信が完了したかどうか,経路点の数,「ビジョン処理による移動」の位置,経路点,経路点,...,経路点
ステータスコード
コマンドが正常に実行された場合、 2100 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
このコマンドを呼び出した後、10秒以内にMech-Vizからのビジョン結果を受信しない場合、タイムアウトを表すエラーコードが返されます。 |
位置姿勢の送信が完了しているかどうか
-
0
:経路にあるすべての経路点が送信されていません。このパラメータの値が1になるまでに、このコマンドを繰り返して実行してください。 -
1
:経路にあるすべての経路点が送信されました。
経路点の数
このパラメータは、返された経路点の数を表します。範囲は0~20です。 初期設定を使用する場合、このコマンドを一回実行すると最大20個の計画された経路点を取得できます。したがって、20以上の経路点を取得するには、このコマンドを繰り返してください。
「ビジョン処理による移動」の位置
「ビジョン処理による移動」の経路点が経路全体における位置です。
例えば、経路計画は「移動_1 -> 移動_2 -> ビジョン処理による移動 -> 移動_3」のステップで構成されている場合、「ビジョン処理による移動」の位置は3です。
「ビジョン処理による移動」がなければ、このパラメータは0です。
経路点
1つの経路点は8つのデータで構成され、最初の6個は位置姿勢、7番目はラベル、最後は速度を表します。
-
位置姿勢:3次元座標(メートル単位)、オイラー角(度)、または関節角度(度単位)。位置姿勢の形式は、205コマンドの「経路点の位置姿勢タイプ」で決定されます。
-
ラベル:位置姿勢に対応する整数のラベルです。Mech-Visionプロジェクトでラベルは文字列タイプであり、出力する前に「ラベルマッピング」ステップを使用してラベルを整数にマッピングする必要があります。プロジェクトにラベルが含まれていない場合、このパラメータの初期値は0です。
-
速度:移動ステップパラメータに設定されたゼロでないパーセンテージ値です。
実行例
コマンドが正常に実行された場合
TCP send string = 205, 1
TCP received string =205, 2100, 1, 2, 2, 8.307755332057372, 15.163476541700463, -142.1778810972881, -2.7756047848536745, -31.44046012182799, -96.94907235126934, 0, 64, 8.2 42574265592342, 12.130080796661591, -141.75872288706663-2.513533225987894, -34.8905853 039525, -97.19108378871277, 0, 32
エラーが発生した場合
TCP send string = 205, 1
TCP received string = 205, 2008
コマンド206——DOリストを取得
このコマンドは、計画されたDOリストを取得するために使用されます。DO信号は、複数のロボットハンドまたは吸盤のパーティションを制御するために使用されます。
このコマンドを実行する前に、 コマンド205 を実行してMech-Vizの計画経路を取得する必要があります。
サンプルプロジェクトに基づいてMech-Vizプロジェクトを設定し、プロジェクトに使用される吸盤設定ファイルを設定してください。サンプルプロジェクトは、Mech-Mindソフトウェアシステムのインストールディレクトリ Mech-Center\tool\viz_project\suction_zone
に格納されています。
Mech-Vizプロジェクトの「DOリストを設定」のステップパラメータで以下の設定を行います。
-
「受信者」を「標準インターフェース」に設定します。
-
「ビジョン処理による移動からDOリストを取得」にチェックを入れます。
-
DOリストが必要な「ビジョン処理による移動」ステップを選択します。
返されたデータ
206, ステータスコード, DO信号値, DO信号値, ..., DO信号値
ステータスコード
コマンドが正常に実行された場合、 2102 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
DO値
返されたデータの最後に64個のDO値が受信され、すべては整数です。
DO値の範囲は0~999です。
-1はプレースホルダーとなります。
実行例
コマンドが正常に実行されると、11と12のDO信号値が得られます。
TCP send string: 206
TCP receive string: 206, 2102, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
コマンドの実行中にエラーが発生した場合、DO信号が得られませんでした。
TCP send string: 206
TCP receive string: 206, 2011, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
コマンド207——Mech-Vizステップパラメータの読み取り
このコマンドは、指定されたステップの指定されたパラメータの値を読み取るために使用されます。
Mech-Centerで
をクリックして、読み取るステップIDとパラメータ名を指定します。送信コマンド
207, 構成ID(config ID)
構成ファイルのコンテンツ
read, 構成ID, ステップID, パラメータのキーの名前
構成ファイルの「#」で始まる内容はコメント行であり、このコマンドを実行しても機能しません。
read
文字列「read」は、コマンドがパラメータ値を読み取るために使用されることを示します。
config ID
読み取り操作IDを指定する正の整数です。1つの構成IDは、1つのパラメータを読み取るためにのみ使用できます。 複数のパラメータを読み取るには、異なる構成IDを使用する必要があります。
ステップID
読み取るパラメータのステップが属するステップのステップIDです。
ステップパラメータでステップIDを検索および設定できます。
パラメータのキーの名前
読み取るパラメータのキーの名前です。下図に示すように、Mech-Vizのメニューバーで
をクリックしてその画面に入ります。コマンド208——Mech-Vizステップパラメータを設定
このコマンドは、指定されたステップの指定されたパラメータの値を設定するために使用されます。
Mech-Centerで
をクリックして、ステップID、パラメータ名、パラメータ値を指定します。送信コマンド
208, 構成ID(config ID)
構成ファイルのコンテンツ
write, config ID, ステップID, パラメータのキーの名前, 値
write
文字列「write」は、コマンドがパラメータ値を設定するために使用されることを示します。
config ID
設定操作IDです。 1つの構成IDを使用して、複数のパラメータを設定できます。
ステップID
読み取るパラメータが属するステップのステップIDです。
ステップIDはステップパラメータで検索および設定できます。
パラメータのキーの名前
設定するパラメータのキーの名前です。Mech-Vizのメニューバーで
をクリックしてその画面に入ります。オプション
パラメータに設定する値を指定します。
数値に加えて、文字列値もサポートされています。
コマンド210——単一経路点とビジョン計画結果を取得
このコマンドは、Mech-Vizによって計画された単一の経路点を取得するために使用されます。経路点は、一般的な移動経路点または視覚移動経路点にすることができます。経路点には、位置姿勢、速度、ツール情報、ワーク情報などを含めることができます。
このコマンドを実行して得られる経路点は、次の3つのいずれかになります。
-
「ビジョン処理による移動」以外の移動経路点に加えて、その情報には、運動タイプ(関節運動または直線運動)、ツールID、および速度が含まれます。
-
「ビジョン処理による移動」の経路点です。その情報には、ラベル、把持されたワークの合計数、今回把持されたワークの数、吸盤のエッジコーナー番号、TCPオフセット、ワークの向き、およびワークグループのサイズが含まれます。
-
カスタマイズされたデータを含む、「ビジョン処理による移動」の経路点です。この場合、Mech-Visionプロジェクトのステップ「出力」のポートタイプを「カスタム」に設定する必要があります。
|
送信コマンド
210, 返されたデータの予期形式
返されたデータの予期形式
以下は、4つの返されたデータの予期形式についての説明です。
返されたデータの予期形式 | 説明 |
---|---|
1 |
位置姿勢(JPs形式),運動タイプ, ツールID, 速度,カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN |
2 |
位置姿勢(TCP形式),運動タイプ, ツールID, 速度,カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN |
3 |
位置姿勢(JPs形式), 運動タイプ, ツールID, 速度, ビジョン計画結果, カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN |
4 |
位置姿勢(TCP形式), 運動タイプ, ツールID, 速度, ビジョン計画結果, カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN |
返されたデータ
210, ステータスコード, 経路点の送信が完了しているかどうか, 経路点のタイプ, 位置姿勢, 運動タイプ, ツールID, 速度, ビジョン計画結果, カスタマイズされたデータの数, カスタマイズされたデータ
ビジョン計画結果 または カスタマイズされたデータ は、コマンドの実行時に送信される 予期されるデータ形式 によって異なります。 |
ステータスコード
コマンドが正常に実行された場合、ステータスコード2100が返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
経路点の送信が完了しているかどうか
-
0
:まだ送信されていない経路点があります。 -
1
:すべての経路点が送信されました。
経路点タイプ
-
0
:「ビジョン処理による移動」の経路点でないことを意味します。 -
1
:「ビジョン処理による移動」の経路点であるを意味します。
位置姿勢
経路点の位置姿勢は、ロボット関節角度(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の順に並べられています。
コマンド501——対象物の寸法をMech-Visionに入力
このパラメータはMech-Visionプロジェクトに、対象物の寸法を動的に送信すること場合に使われます。Mech-Visionプロジェクトを実行する前に対象物の寸法を確認する必要があります。
Mech-Vision プロジェクトに「対象物の寸法を読み込む」ステップがあり、 パラメータから対象物の寸法を読み込む にチェックを入れる必要があります。
コマンド502——Mech-VizへTCPを送信
このコマンドは、Mech-Vizプロジェクトへ動的にTCPを送信する場合に使われます。ロボットのTCPを読み取るステップは「外部移動」です。
サンプルプロジェクトに基づいてMech-Vizプロジェクトを設定してください。サンプルプロジェクトは、Mech-Mindソフトウェアシステムのインストールディレクトリ Mech-Center\tool\viz_project\outer_move
フォルダに格納されています。
「外部移動」ステップをワークフローの適切な場所に配置します。
このコマンドは、 コマンド201——Mech-Vizプロジェクトを起動 を実行する前に実行してください。
コマンド601——通知メッセージ
ユーザーはこのコマンドを実行する必要がありません。
Mech-Viz / Mech-Vision プロジェクトが「通知」に実行されると、Mech-Centerは定義されたメッセージをクライアントに送信します。
Mech-Visionでは、「通知」のステップ名を「Standard Interface Notify」に設定する必要があります。
Mech-Vizでは、「通知」のステップパラメータ「受信者」を「標準インターフェース」に設定します。
コマンド701——自動キャリブレーション
このコマンドは、ハンド・アイ・キャリブレーションを行う場合に使われます(カメラ外部パラメータのキャリブレーション)。
このコマンドを実行すると、Mech-Visionとキャリブレーションの状態を同期し、Mech-Visionからキャリブレーションポイントを取得します。
キャリブレーションを完成するために、このコマンドを繰り返して実行する必要があります。
送信コマンド
701, キャリブレーション状態, フランジ位置姿勢, 関節角度(JPs)
キャリブレーション状態
パラメータ範囲は0~2です。
-
0
:Mech-Visionと繋がり、キャリブレーションプロセスを開始します。 -
1
:前回のキャリブレーションポイントが受信され、ロボットへ送信します。 -
2
:前回のキャリブレーションポイントの受信が失敗しました。
フランジ位置姿勢
ロボットの現在のフランジ位置姿勢です。位置姿勢は位置と姿勢からなり、位置の単位はミリメートル(mm)です。姿勢はオイラー角で表し、単位は度(°)です。
関節角度(JPs)
ロボットの現在の関節角度(単位は度)です。
フランジ位置姿勢 と 関節角度 は、どちらか一方のパラメータ値を指定するだけで、もう一方は6つのゼロで埋められます。 |
返されたデータ
701,ステータスコード,キャリブレーション状態,次回キャリブレーションポイントのフランジ位置姿勢,次回キャリブレーションポイントの関節角度(JPs)
ステータスコード
コマンドが正常に実行された場合、7101 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
キャリブレーション状態
-
0
:キャリブレーション進行中。 -
1
:キャリブレーション終了。
次回キャリブレーションポイントのフランジ位置姿勢
移動先のキャリブレーションポイント位置姿勢データです。ロボットのプログラムから、フランジ位置姿勢やJPs位置姿勢は選択可能です。
次回キャリブレーションポイントの関節角度
移動先のロボットのJPsデータです。
関節角度(JPs)とフランジ位置姿勢のどちらが選べばよいです。 |
実行例
キャリブレーションプロセスを開始
TCP send string = 701, 0, 1371.62147, 25.6, 1334.3529, 148.58471, -179.24347, 88.75702, 88.86102, -7.11107, -28.82309, -0.44014, -67.6509, 31.4764
TCP received string = 701, 7101, 0, 1271.6969, -74.3374, 1334.34094, -3128.422, 179.2412, -91.11236, 93.28109, -12.0273, -32.8811, -0.37183, -68.41364, 27.02411
Mech-Visionからキャリブレーションポイントを取得
TCP send string = 701, 1, 1271.6969, -74.3374, 1334.34094, -3128422, 1792412, -91.11236, 93.28109, -12.0273, -32.8811, -0.37183, -68.41364, 27.02411
TCP received string = 701, 7101, 0, 1471.62226, -74.40452, 1334.34235, 148.56924, -179.24432, 88.74148, 92.8367, -2.14999, -24.25433, -0.39222, -67.23261, 27.485225
このプロセスを繰り返して複数のキャリブレーションポイントを取得する必要があります。 |
キャリブレーションを終了
TCP send string = 701, 1, 1371.60876, 25.53615, 1384.45532, -20.82704, 179.22026, -72.77879, 88.88467, -7.42242, -26.68142, -0.2991, -69.95593, 39.26262
TCP received string = 701, 7101, 1, 1371.62147, 25.6, 1334.3529, 148.58471, -179.24347, 88.75702, 88.86102, -7.11107, -28.82309, -0.44014, -67.6509, 31.4764
コマンド901——ソフトウェアの起動状態を取得
このコマンドは、Mech-Vision、Mech-Viz、Mech-Centerの起動状態を取得するために使用されます。
現在、このコマンドはMech-Visionのみ対応できます。