警告
あなたはこのドキュメントの古いバージョンを読んでいます。 最新の情報を知りたい場合は、以下を参照してください 5.0 .get_part
パラメータ
なし
戻り値
200 x=<x> y=<y> rz=<rz>
、ここで<x>
、<y>
、<rz>
は、部品の座標と向きです。他の場合は エラーコード を参照してください。
注
座標は10進数で小数点以下5桁(例:x = 10.00000
)、角度は2桁(例:rz = 1.00
)となっています。
説明
1個、またはそれ以上の部品の座標値を要求します。
応答される部品の数は、 part_quantity パラメータ( 表 30 を参照)を用いて変更することができます。このパラメータはデフォルトでは1に設定されています。
注
get_part の実行が完了していない間に part_quantity を変更しても、それは影響しないことに注意してください。完了後の次に実行する get_part のみが、新しく設定された part_quantity を反映します。
注
このコマンドは part_quantity 個の部品が見つかり、応答できるようになるまでブロックします(割り込みを受け付けません)。デフォルトでは30秒のタイムアウトが設定されています。この時間を過ぎても要求された数の部品が見つからなかった場合、コマンドからエラーを返します。タイムアウト時間は get_part を呼び出す前に調整することができます( set_parameter を参照)。
デフォルトの動作: part_quantity = 1
コマンド get_part は,良い候補の座標を返します。このコマンドには異なる動作があります。
最初のコマンドコール: それが自動運転全体の最初のコマンドコールである場合、get_part は以下の手順に従います:
コマンドが呼び出されると、画像を取得して解析し、良い部品が見つからなければ振動シーケンスを開始し、画像解析を行います。この2つの動作は、少なくとも1つの良い部品が見つかるまで繰り返されます。
少なくとも1つの部品が見つかった場合、見つかったすべての部品の座標値を良い部品のリストに格納します。そして、リスト上の最初の部品の座標がクライアントに送信され、リストから消去されます。
通常の動作: 良い候補のリストに既に1個以上の部品がある場合、get_part コマンドは、最初の部品の座標をクライアントに送信し、リストから消去します。画像は取得されず、振動シーケンスも実行されません。
現在部品なし: リストに部品がない場合、get_part コマンドは以下の手順が後に続きます:
コマンドが呼び出されると、振動シーケンスが開始され、続いて画像解析が行われます。この2つの動作は、少なくとも1つの良い部品が見つかるまで繰り返されます。
少なくとも1つの部品が見つかった場合、見つかったすべての部品の座標値を良い部品のリストに格納します。そして、リスト上の最初の部品の座標がクライアントに送信され、リストから消去されます。
part_quantity = n での動作
これは、get_part コマンドが呼ばれるたびに見つける必要のある良い候補の最小個数を変更します。部品の個数は set_parameter コマンドで変更することができます。
get_part コマンドは、Asycube上で少なくともn個の良い候補を取得するか、 timeout に達するまで停止しません。
警告
EYE+ がクライアントにn個の座標を送ると、次のステップではこれらの部品がすべてピックアップされたと仮定します。つまり、それらの部品の座標を良い部品候補リストから消去します。
使用例
get_part
200 x=0.12345 y=0.11111 rz=0.99
set_parameter part_quantity 3
get_part
200 x=0.12345 y=0.11111 rz=0.99 x=3.67890 y=200.45612 rz=1.54 x=120.37000 y=-20.48484 rz=0.00