警告

これは、古いバージョンのドキュメントです。 最新の情報をご覧になりたい場合は、次をご覧ください。 5.1 .

get_part

重要

ここでは、 自動運転 でマルチフィーディングのレシピが使用されている場合にのみ関連しています。1種類の部品用の標準レシピに関しては、 get_part を参照してください。

パラメータ

  • なし

戻り値

  • 200 x=<x> y=<y> rz=<rz> p=<part> は 、 <x><y><rz> が、部品の座標値と角度です。対象とする部品により、 <part> は、 abcd のどれかになります。その他の場合は、 エラーコード を参照してください。

注釈

座標値は、10進数で小数点以下5桁(例: x = 10.00000 )で、角度は小数点以下2桁(例: rz = 1.00 )となっています。

説明

特別な部品(ワーク)の1個、または、複数の部品を要求、または、要求しません。

マルチフィーディングでは、このコマンドは1つまたは複数の特定のパーツ(例えば、1つのパーツ a と1つのパーツ d )、または任意のピッキング可能なパーツ(例えば、パーツ a やパーツ c )の位置を取得するために使用することができます。この動作は part_quantity パラメータとマルチフィーディング特有の multi_part_quantity パラメータによって制御されます。

初期設定では、これらのパラメータは次のように設定しています。

If multi_part_quantity a, multi_part_quantity b, multi_part_quantity c and multi_part_quantity d are set to zero, any pickable part will be returned, either of type a, b, c or d. The system will try to return positions in an alternating way (e.g. a, b, a, b, etc for 2 parts). As for single part recipes, the number of part returned can be changed using the part_quantity parameter (refer to 表 30).

multi_part_quantity が0より大きな値が設定されると、 part_quantity は無視され、要求された特定の部品数が get_part によって返されます。これにより、例えば、 a の部品の位置だけを取得したり、 マルチプルタイプ(例えば abc )の位置を同時に取得したりすることができます。

注釈

get_part が保留中に、 part_quantitymulti_part_quantity を変更しても、その変更は反映されないことに注意してください。 get_part を完了して実行して初めて、新しい設定値を反映します。

注釈

このコマンドは部品が見つかり、応答できるようになるまでブロックします(コマンドに応答しません)。初期設定では、30秒の遅延時間を設定しています。この時間を過ぎても要求された数の部品が見つからなかった場合、コマンドからエラーを返します。タイムアウト時間は get_part を呼び出す前に調整することができます( set_parameter を参照)。

以下は、2つのパーツ( ab )のシナリオを想定していますが、パーツが増えても原理は変わりません。

動作の初期設定

パラメータは、次の通りです。

get_part コマンドは、部品タイプが ab であっても、良い候補の座標値を返します。この動作は、 single part の使用例に似ています。しかしこのコマンドは、可能であれば、交互にタイプの異なる部品を返します。

  • 画像の解析が完了し、タイプ a の部品を2個、タイプ b の部品が3個見つかったとします。このとき、 get_part を5回呼び出すと、恐らく次のようなシーケンスが返されます。 ababb 。このシーケンスが a から始まるという保証はないため、 babab という応答になる可能性もあります。良い候補の値が全て返るまで、システムは新しいフィードシーケンスを起動しません。

  • ここで、システムが a タイプの部品を3個見つけ、 b タイプの部品を1つも見つけられなかったとします。 get_part を3回呼び出すと、 aaa が返されます。4回目に get_part を呼び出すと、フィードシーケンスが起動され、新しい画像解析が行われます。

part_quantity = n での動作原理

パラメータは、次の通りです。

これは、 get_part コマンドを呼ぶ度に毎回、各タイプの部品の良い候補の最小個数を変更します。部品数は set_parameter コマンドで変更することができます。

get_part コマンドは、アジキューブ上で少なくとも n 個の良い候補を取得するか、 タイムアウト(timeout) に達するまで停止しません。

  • 画像の解析が完了し、タイプ a の部品が2個、タイプ b の部品が3個見つかったとします。この時、 get_part を3回呼び出すと、おそらく次のような順序で応答します。( ab )、 ( ab )。繰り返しの説明になりますが、このシーケンスが a から始まるという保証がないため、応答は( ba )、 ( ba ) となる可能性があります。3回目の get_part の呼び出しにより、部品が1個しかなく、2個の part_quantity を要求しているため、フィードシーケンスと新しい画像分析が開始されます。

multi_part_quantity = n での動作原理

パラメータは、次の通りです。

この場合、 multi_part_quantity の内の1つが0と異なるため、 part_quantity は無視されます。この場合、システムは a タイプの部品だけを返します。

  • 再び画像解析が完了し,タイプ a の部品が2個、タイプ b の部品が3個見つかったとします。この時、 get_part を2回呼び出すと、次のような応答が返されます: aab タイプの良い候補があっても、どれも応答が返されず、3回目に get_part を呼び出すと、フィードシーケンスと新たな画像解析が行われ、 a タイプの新しい候補が応答されます。

パラメータは、次の通りです。

ここでも multi_part_quantity がゼロ以外であるため、 part_quantity は無視されます。 a タイプの部品と b タイプの部品を同時に要求しています。

  • 前述の例と同じく、画像解析が完了し、システムが a タイプの部品を2個、 b タイプの部品を3個見つけたとします.この場合、 get_part を2回呼び出すと、次のような順で応答が返されます。( ab )、 ( ab )。3回目に get_part を呼び出すと、フィードシーケンスと新たな画像解析が実行され、( ab ) が応答されます。

注釈

part_quantity については、 multi_part_quantity に2以上の値を設定することができます。 例えば、同じ get_part の呼び出しで,2個の部品 a と1個の部品 b が必要な場合、 multi_part_quantity a には2を、 multi_part_quantity b には1を設定する必要があります。

使用例

set_parameter part_quantity 2
set_parameter multi_part_quantity a 0
set_parameter multi_part_quantity b 0
get_part
200 x=0.12345 y=0.11111 rz=0.99 p=a x=0.42420 y=0.75311 rz=0.75 p=b
get_part
200 x=0.78951 y=0.96514 rz=0.42 p=b x=0.23554 y=0.14587 rz=0.51 p=b

set_parameter part_quantity 1
set_parameter multi_part_quantity a 1
set_parameter multi_part_quantity b 0
get_part
200 x=0.12345 y=0.11111 rz=0.99 p=a
get_part
200 x=0.67894 y=0.12341 rz=0.79 p=a

set_parameter part_quantity 1
set_parameter multi_part_quantity a 1
set_parameter multi_part_quantity b 1
get_part
200 x=0.12345 y=0.11111 rz=0.99 p=a x=0.42420 y=0.75311 rz=0.75 p=b
get_part
200 x=0.78951 y=0.96514 rz=0.42 p=a x=0.23554 y=0.14587 rz=0.51 p=b