警告
これは、古いバージョンのドキュメントです。 最新の情報をご覧になりたい場合は、次をご覧ください。 5.1 .get_part
パラメータ
なし
戻り値
200 x=<x> y=<y> rz=<rz> p=<part>
は 、<x>
、<y>
、<rz>
が、部品の座標値と角度です。対象とする部品により、<part>
は、a
、b
、c
やd
のどれかになります。その他の場合は、 エラーコード を参照してください。
注釈
座標値は、10進数で小数点以下5桁(例: x = 10.00000
)で、角度は小数点以下2桁(例: rz = 1.00
)となっています。
説明
特別な部品(ワーク)の1個、または、複数の部品を要求、または、要求しません。
マルチフィーディングでは、このコマンドは1つまたは複数の特定のパーツ(例えば、1つのパーツ a
と1つのパーツ d
)、または任意のピッキング可能なパーツ(例えば、パーツ a
やパーツ c
)の位置を取得するために使用することができます。この動作は part_quantity パラメータとマルチフィーディング特有の multi_part_quantity パラメータによって制御されます。
初期設定では、これらのパラメータは次のように設定しています。
part_quantity = 1
multi_part_quantity a = 0
multi_part_quantity b = 0
multi_part_quantity c = 0
multi_part_quantity d = 0
multi_part_quantity a 、 multi_part_quantity b 、 multi_part_quantity c や multi_part_quantity d が0に設定されている場合には、 ピック可能であれば、どの a
、 b
、 c
または d
タイプの部品でも、位置が返されます。システムは交代で部品の位置を返そうとします(例: 2つ部品の場合は a
、 b
、 a
、 b
など)。1種類の部品のレシピの場合は、 part_quantity パラメータを使って、返す部品数を変更することができます( 表 25 を参照)。
multi_part_quantity が0より大きな値が設定されると、 part_quantity は無視され、要求された特定の部品数が get_part によって返されます。これにより、例えば、 a
の部品の位置だけを取得したり、 マルチプルタイプ(例えば a
、 b
と c
)の位置を同時に取得したりすることができます。
注釈
get_part が保留中に、 part_quantity や multi_part_quantity を変更しても、その変更は反映されないことに注意してください。 get_part を完了して実行して初めて、新しい設定値を反映します。
注釈
このコマンドは部品が見つかり、応答できるようになるまでブロックします(コマンドに応答しません)。初期設定では、30秒の遅延時間を設定しています。この時間を過ぎても要求された数の部品が見つからなかった場合、コマンドからエラーを返します。タイムアウト時間は get_part を呼び出す前に調整することができます( set_parameter を参照)。
以下は、2つのパーツ( a
と b
)のシナリオを想定していますが、パーツが増えても原理は変わりません。
動作の初期設定
パラメータは、次の通りです。
part_quantity = 1
multi_part_quantity a = 0
multi_part_quantity b = 0
get_part コマンドは、部品タイプが a
や b
であっても、良い候補の座標値を返します。この動作は、 single part の使用例に似ています。しかしこのコマンドは、可能であれば、交互にタイプの異なる部品を返します。
画像の解析が完了し、タイプ
a
の部品を2個、タイプb
の部品が3個見つかったとします。このとき、 get_part を5回呼び出すと、恐らく次のようなシーケンスが返されます。a
、b
、a
、b
、b
。このシーケンスがa
から始まるという保証はないため、b
、a
、b
、a
、b
という応答になる可能性もあります。良い候補の値が全て返るまで、システムは新しいフィードシーケンスを起動しません。ここで、システムが
a
タイプの部品を3個見つけ、b
タイプの部品を1つも見つけられなかったとします。 get_part を3回呼び出すと、a
、a
、a
が返されます。4回目に get_part を呼び出すと、フィードシーケンスが起動され、新しい画像解析が行われます。
part_quantity = n での動作原理
パラメータは、次の通りです。
part_quantity = 2
multi_part_quantity a = 0
multi_part_quantity b = 0
これは、 get_part コマンドを呼ぶ度に毎回、各タイプの部品の良い候補の最小個数を変更します。部品数は set_parameter コマンドで変更することができます。
get_part コマンドは、アジキューブ上で少なくとも n 個の良い候補を取得するか、 タイムアウト(timeout) に達するまで停止しません。
画像の解析が完了し、タイプ
a
の部品が2個、タイプb
の部品が3個見つかったとします。この時、 get_part を3回呼び出すと、おそらく次のような順序で応答します。(a
、b
)、 (a
、b
)。繰り返しの説明になりますが、このシーケンスがa
から始まるという保証がないため、応答は(b
、a
)、 (b
、a
) となる可能性があります。3回目の get_part の呼び出しにより、部品が1個しかなく、2個の part_quantity を要求しているため、フィードシーケンスと新しい画像分析が開始されます。
multi_part_quantity = n での動作原理
パラメータは、次の通りです。
part_quantity = 1
multi_part_quantity a = 1
multi_part_quantity b = 0
この場合、 multi_part_quantity の内の1つが0と異なるため、 part_quantity は無視されます。この場合、システムは a
タイプの部品だけを返します。
再び画像解析が完了し,タイプ
a
の部品が2個、タイプb
の部品が3個見つかったとします。この時、 get_part を2回呼び出すと、次のような応答が返されます:a
、a
。b
タイプの良い候補があっても、どれも応答が返されず、3回目に get_part を呼び出すと、フィードシーケンスと新たな画像解析が行われ、a
タイプの新しい候補が応答されます。
パラメータは、次の通りです。
part_quantity = 1
multi_part_quantity a = 1
multi_part_quantity b = 1
ここでも multi_part_quantity がゼロ以外であるため、 part_quantity は無視されます。 a
タイプの部品と b
タイプの部品を同時に要求しています。
前述の例と同じく、画像解析が完了し、システムが
a
タイプの部品を2個、b
タイプの部品を3個見つけたとします.この場合、 get_part を2回呼び出すと、次のような順で応答が返されます。(a
、b
)、 (a
、b
)。3回目に get_part を呼び出すと、フィードシーケンスと新たな画像解析が実行され、(a
、b
) が応答されます。
注釈
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