警告

現在、このドキュメントは古いバージョンをご覧いただいています。 最新の情報をご希望の場合は、下記をご参照してください 5.0 .

get_part

重要

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

パラメータ

  • なし

戻り値

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

注釈

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

説明

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

デュアルフィーディングの場合、このコマンドは特定の1個または複数の部品(例:1個の部品 a と1個の部品 b )、または任意のピッキング可能な部品(例:部品 a 、または部品 b )の位置を取得するために使用することができます。この動作は、 part_quantity パラメータと、デュアルフィーディング専用の multi_part_quantity パラメータによって制御されます。

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

multi_part_quantity amulti_part_quantity b が0に設定されている場合には、 ピック可能であれば、どの a または b タイプの部品でも、位置が返されます。システムは交代で部品の位置を返そうとします(例: a, b, a, b, など)。1種類の部品のレシピの場合は、 part_quantity パラメータを使って、返す部品数を変更することができます( 表 31 を参照)。

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

注釈

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

注釈

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

動作の初期設定

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

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 コマンドは、Asycube 上で少なくとも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