警告
現在、このドキュメントは古いバージョンをご覧いただいています。 最新の情報をご希望の場合は、下記をご参照してください 5.0 .get_part
パラメータ
なし
戻り値
200 x=<x> y=<y> rz=<rz> m=<model>
は、<x>
<y>
<rz>
が部品と<モデル>
の座標と向きであり、 EYE+ によって予測されたモデルの番号です。それ以外の場合は、 エラーコード を参照してください。
注釈
座標値は、10進数で小数点以下5桁(例: x = 10.00000
)で、角度は小数点以下2桁(例: rz = 1.00
)となっています。
説明
パーツを1つまたは複数リクエストできます。必要に応じて、特定のタイプのパーツをリクエストすることもできます。
マルチモデルの文脈では、このコマンドは、要求されたモデルに一致する1つ以上の特定の部品の位置を取得するために使用できます(たとえば、モデル 1
の1つの部品とモデル 2
の1つの部品)または任意のモデルのピック可能な部品です(たとえば、モデル 1
、モデル 3
など)。この動作は、 part_quantity パラメータとマルチモデル固有の model_quantity パラメータによって制御されます。
デフォルトでは、このパラメータはシステムによって見つかった最初のモデルのシングルパーツを返すように設定されています。
model_quantity がレシピで定義された全てのモデルに対して0に設定されている場合、システムはモデルに関係なく最初に見つかったピック可能な部品を返します。
注釈
model_quantity を変更しても、 get_part の処理中には影響しません。新しく設定された値は、それ以降の get_part の処理にのみ反映されます。
注釈
このコマンドは、要求された部品が見つかり、返すことができるまでブロックされます。30秒のタイムアウトが初期設定で設定されています。要求されたモデルの要求された数の部品が指定された期間内に見つからない場合、コマンドはエラーを返します。タイムアウトは、 get_part を呼び出す前に調整することができます( set_parameter を参照)。
レシピに4つのモデルが定義されていると仮定します。
動作の初期設定
パラメータは、次の通りです。
model_quantity 1 0
model_quantity 2 0
model_quantity 3 0
model_quantity 4 0
get_part コマンドは、モデル1、2、3、または4のいずれかの良い候補の座標を返します。動作は、 シングルパーツ の使用方法に類似しています。ただし、可能な場合は交互のタイプのパーツを返します。
画像解析が完了し、システムが各モデルにつき2つのパーツを見つけたとします。 get_part を4回呼び出すと、各モデルを1回ずつ含むランダムなシーケンスが生成されます(例:
4
、2
、1
、3
)。システムが、モデル
1
のパーツを3個を見つけて、他のモデルのパーツを見つけなかったとします。3回目の get_part を呼び出すと、1
、1
、1
と返します。4回目の get_part を呼び出すと、フィーディングシーケンスがトリガーされ、新しい画像分析が実行されます。
part_quantity = 2 での動作原理
パラメータは、次の通りです。
part_quantity = 2
model_quantity 1 0
model_quantity 2 0
model_quantity 3 0
model_quantity 4 0
この設定により、 get_part コマンドが呼び出されるたびに見つける必要のある任意のタイプの良い候補の最小数が変更されます。パーツ数は、 set_parameter コマンドで変更できます。
get_part コマンドは、アジキューブ上で少なくとも 2個の良い候補を取得するか、 タイムアウト(timeout) に達するまで停止しません。
画像解析が完了し、システムがモデル
2
部品を2つ、モデル4
の部品を3つ見つけたとします。 get_part を1回呼び出すと、2
や4
などのランダムな出力が得られます。再び、出力が2
で始まる保証はなく、出力は4
や2
または4
や4
になる可能性があります。2つの良い部品を返す2回目の get_part の後、シングル部品しか利用できず、 part_quantity を2に設定したため、システムはそこからフィーディングシーケンスと新しい画像解析をトリガーします。
model_quantity = nでの動作原理
パラメータは、次の通りです。
part_quantity = 1
model_quantity 1 0
model_quantity 2 1
model_quantity 3 0
model_quantity 4 0
この場合、 model_quantity の内の1つが0以外のため、 part_quantity は無視されます。この場合、システムモデル 2
タイプの部品だけを1つだけ返します。
この場合、画像解析が完了し、システムがモデル
1
のパーツを3つ、モデル2
のパーツを2つ見つけたとします。 get_part を2回呼び出すと、2
と2
のシーケンスが返されます。モデル1
の良い候補があるにもかかわらず、それらは返されず、 get_part の3回目の呼び出した場合は、新しいモデル2
の候補を返すためにフィーディングシーケンスと新しい画像解析をトリガーします。
パラメータは、次の通りです。
part_quantity = 1
model_quantity 1 1
model_quantity 2 0
model_quantity 3 1
model_quantity 4 0
ここでも model_quantity がゼロ以外であるため、 part_quantity は無視されます。 モデル 1
タイプの部品の1つと モデル 3
タイプの部品を1つ、同時に要求しています。
前述の例と同じく、画像解析が完了し、システムが
1
タイプの部品を2個、3
タイプの部品を3個見つけたとします。この場合、 get_part を2回呼び出すと、次のような順で応答が返されます。(1
、3
)、 (1
、3
)。3回目に get_part を呼び出すと、フィードシーケンスと新たな画像解析が実行され、(1
、3
) が応答されます。
注釈
part_quantity と同様に、 model_quantity を1より大きい値に設定することも可能です。例えば、同じ get_part コマンドの呼び出しで、モデル 1
のパーツが2つ、モデル 3
のパーツが1つ必要な場合、 model_quantity 1 を2に設定し、 model_quantity 3 を1に設定する必要があります。
使用例
set_parameter part_quantity 2
set_parameter model_quantity 1 0
set_parameter model_quantity 2 0
set_parameter model_quantity 3 0
set_parameter model_quantity 4 0
get_part
200 x=0.58025 y=0.43782 rz=5.02 m=4 x=0.50617 y=0.29485 rz=0.00 m=1
get_part
200 x=0.47438 y=0.13729 rz=252.02 m=4 x=0.45598 y=0.51482 rz=0.00 m=3
get_part
200 x=0.31603 y=0.16358 rz=188.96 m=4 x=0.29393 y=0.53599 rz=0.00 m=3
set_parameter part_quantity 1
set_parameter model_quantity 1 1
set_parameter model_quantity 2 0
set_parameter model_quantity 3 0
set_parameter model_quantity 4 0
get_part
200 x=0.12345 y=0.11111 rz=0.99 m=1
get_part
200 x=0.67894 y=0.12341 rz=0.79 m=1
set_parameter part_quantity 1
set_parameter model_quantity 1 1
set_parameter model_quantity 2 0
set_parameter model_quantity 3 1
set_parameter model_quantity 4 0
get_part
200 x=0.12345 y=0.11111 rz=0.99 m=1 x=0.42420 y=0.75311 rz=0.75 m=3
get_part
200 x=0.78951 y=0.96514 rz=0.42 m=1 x=0.23554 y=0.14587 rz=0.51 m=3