(57)【特許請求の範囲】
【請求項１】
内底面及び側壁を有する有底筒状の箱にバラ積み状態で収容された複数のワークまでの距離を測距センサで測定し、測定結果に基づいて前記複数のワークを１つずつ取り出すロボットであって、
前記測距センサで前記内底面を測距した際に、前記内底面のうち前記測距センサで測距できない領域の面積が最小化するように、前記測距センサの位置及び姿勢を含む測距条件を決定する測距条件決定部と、
前記測距条件決定部によって決定された前記測距条件に従って前記測距センサを移動し、前記測距センサから前記複数のワークまでの距離を前記測距センサを用いて測定して距離画像を生成する測距実行部と、
前記距離画像に基づいて前記複数のワークの位置及び姿勢を認識するワーク認識部と、
前記ワーク認識部による認識結果に基づいて前記複数のワークのうち１つを取り出すワーク取出実行部と、
を備え、
前記測距条件決定部は、前記箱の内部空間を複数のセルに分割し、前記複数のセルのうち、前記測距実行部が生成した前記距離画像の三次元座標に対応するセルの存在により前記測距センサによって測距不能であったセルと、前記ワーク取出実行部によって取り出されたワークに対応するセルと、を含む特定セルのうち前記測距センサによって測距可能となる特定セルの個数が増加するように測距条件を更新する、
ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに関する。
【背景技術】
【０００２】
この種の技術として、特許文献１は、ロボットがハンドなどのエンドエフェクタを用いて部品を把持して組み立てを行なうに際し、部品とロボットとの間の相対的な位置及び姿勢を計測する技術を開示している。ロボットは、撮像装置によって部品を撮像して得られた二次元画像と、距離センサによって計測された部品の距離データと、を用いて部品の位置及び姿勢の計測を行なうとしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０２１９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数の部品がバラ積み状態で箱に収容されている場合、撮像装置や距離センサにとっての死角が不可避的に発生する。また、その死角は、部品が箱から取り出されるたびに変化する場合もある。従って、上記特許文献１の技術では、部品の位置及び姿勢の計測に改善の余地が残されていた。
【０００５】
本発明の目的は、バラ積み状態で収容されている複数のワークの位置及び姿勢の認識精度を向上させる技術を提供することにある。
【課題を解決するための手段】
【０００６】
測距センサを用いたセンシング結果に基づいて所望の対象物を検出し、検出した前記対象物をハンドで取り出す、ロボットであって、計測領域を複数のセルに分割して認識した上で、当該分割したセルの中から、前記測距センサの前記センシング結果を用いて物体が検出される位置のセルである第１セルの位置に基づいて前記対象物の位置を検出する処理を実行する検出処理手段と、前記分割したセルのうち、前記第１セルを除くセル、及び、前記検出処理手段によって前記対象物が検出された位置のセル、の少なくとも何れかのセルである第２セルを特定し、前記第２セルのうち、前記測距センサのセンシング範囲に入る前記第２セルの数が増加するような前記測距センサの移動位置を算出する算出手段と、前記算出手段によって算出された前記移動位置に対応付けて、前記測距センサを移動させる移動手段と、を備えたロボットが提供される。以上の方法によれば、前記第３のステップにおいて、前記複数のワークの位置及び姿勢の認識精度が向上する。
【発明の効果】
【０００７】
本発明によれば、前記複数のワークの位置及び姿勢の認識精度が向上する。
【図面の簡単な説明】
【０００８】
【図１】箱に収容されたワークを取り出すロボットの斜視図である。
【図２】ロボットの機能ブロック図である。
【図３】ロボットの動作のフローチャートである。
【図４】初回の測距条件を決定するフローを説明するための図である。
【図５】測距センサが測距不能な遮蔽領域を示す図である。
【図６】測距センサによる初回の測距結果を示す図である。
【図７】測距センサによる二回目の測距条件を示す図である。
【図８】測距センサによる初回の測距によって得られたポイントクラウドを示す図である。
【図９】初回のポイントクラウドをセグメンテーションした結果を示す図である。
【図１０】測距センサによる二回目の測距によって得られたポイントクラウドを示す図である。
【図１１】初回のポイントクラウドを二回目のポイントクラウドに統合する様子を示す図である。
【図１２】初回のポイントクラウドを二回目のポイントクラウドに統合した結果を示す図である。
【図１３】統合後の二回目のポイントクラウドをセグメンテーションした結果を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しつつ、一実施形態を説明する。
【００１０】
図１には、複数のワーク１がバラ積み状態で収容された箱２から、ワーク１を１つずつ取り出すロボット３を示している。
【００１１】
本実施形態において、複数のワーク１は、何れも、形状及び大きさが同じである。
【００１２】
本実施形態において、箱２は、上方が開口する有底角筒状である。しかしながら、箱２の形状は、例えば有底円筒状であってもよい。
【００１３】
ロボット３は、ロボット本体４と、測距センサ５と、測距センサアーム６と、ハンド７と、ハンドアーム８と、を備えている。
【００１４】
測距センサ５は、計測対象までの距離を示す距離画像を生成し、生成した距離画像をロボット本体４に出力する。距離画像は、各画素が視点位置（測距センサ５の位置）からの奥行きの情報を持つ画像であって、測距センサ５から計測対象までの距離データを表現する。測距センサ５として、対象に照射したレーザ光やスリット光の反射光をカメラで撮像し、三角測量により距離を計測するアクティブ式の測距センサを採用することができる。また、測距センサ５として、光の飛行時間を利用するＴｉｍｅ−ｏｆ−ｆｌｉｇｈｔ方式の測距センサを採用することもできる。また、測距センサ５として、ステレオカメラが撮像した画像から三角測量によって各画素の奥行きを計算するパッシブ式の測距センサを採用しても良い。
【００１５】
測距センサアーム６は、測距センサ５を保持するアームである。ロボット本体４は、測距センサアーム６を駆動することで、測距センサ５の位置及び姿勢を自在に制御可能である。
【００１６】
ハンド７は、ワーク１を把持又は吸着する部分である。
【００１７】
ハンドアーム８は、ハンド７を保持するアームである。ロボット本体４は、ハンドアーム８を駆動することで、ハンド７の位置及び姿勢を自在に制御可能である。
【００１８】
図２は、ロボット３の機能ブロック図である。図２に示すように、ロボット３は、更に、センサアーム駆動部９と、ハンドアーム駆動部１０と、を備える。
【００１９】
ロボット本体４は、中央演算処理器としてのCPU１１（Central Processing Unit）と、読み書き自由のRAM１２（Random Access Memory）、読み出し専用のROM１３（Read Only Memory）を備えている。そして、CPU１１がROM１３に記憶されている制御プログラムを読み出して実行することで、制御プログラムは、CPU１１などのハードウェアを、測距条件決定部１４、測距実行部１５、ワーク認識部１６、ワーク取出実行部１７、として機能させる。
【００２０】
図３には、ロボット３の動作のフローチャートを示している。図３に示すように、ロボット３による取り出し作業が開始すると、先ず、測距条件決定部１４が、測距センサ５から複数のワーク１までの距離を測距センサ５で測定するとき測距条件を決定する（S100、第１のステップ）。ここで、測距条件とは、測距センサ５から複数のワーク１までの距離を測距センサ５で測定するときの測距センサ５の位置及び姿勢を意味する。次に、測距実行部１５は、S100で決定した測距条件に基づいて、測距センサ５から複数のワーク１までの距離を測距センサ５で測定する（S110、第２のステップ）。次に、ワーク認識部１６は、測距センサ５による測定の結果に基づいて、複数のワーク１の位置及び姿勢を認識する（S120、第３のステップ）。そして、ワーク取出実行部１７は、ワーク認識部１６による認識の結果に基づいて、ワーク１を１つ取り出す（S130、第４のステップ）。そして、ロボット３は、すべてのワーク１を取り出したかを判定し（S140）、すべてのワーク１を取り出したと判定した場合は（S140:YES）、処理を終了する。一方で、すべてのワーク１を取り出していないと判定した場合は（S140:NO）、ロボット３は、処理をS100に戻す。即ち、ロボット３は、すべてのワーク１を取り出すまで、S100からS130の処理を順に繰り返す。以下、ロボット３の動作を更に詳細に説明する。
【００２１】
（測距条件決定部１４の動作）
次に、初回（N-1回目）のS100において、測距条件決定部１４が測距条件を決定することについて詳細に説明する。
【００２２】
図４に示すように、測距条件決定部１４は、複数のワーク１が収容される箱２の内底面１８の幾何学的中心点１９の三次元座標を算出する。次に、測距条件決定部１４は、任意の正ｍ面体２０のモデルを生成し、正ｍ面体２０の幾何学的中心点２１が箱２の内底面１８の幾何学的中心点１９に一致するように正ｍ面体２０を位置決めする。次に、測距条件決定部１４は、正ｍ面体２０の幾何学的中心点２１を通り、正ｍ面体２０を構成する何れかの面２２と直交する直線２３を算出する。そして、測距条件決定部１４は、直線２３上に所定の間隔で複数の観測点２４を定義する。測距条件決定部１４は、正ｍ面体２０を構成する他の面２２についても同様に、複数の観測点２４を定義する。測距センサ５は、何れかの観測点２４に配置され、その観測点２４から正ｍ面体２０の幾何学的中心点２１に向かって測距することになる。従って、測距条件決定部１４は、測距センサ５の測距条件として、測距センサ５の位置は何れかの観測点２４とし、測距センサ５の姿勢はその観測点２４から正ｍ面体２０の幾何学的中心点２１に向かう姿勢である、とする複数の測距条件をRAM１２に記憶する。そして、測距条件決定部１４は、RAM１２に記憶した複数の測距条件を以下の条件により絞り込む。即ち、測距条件決定部１４は、測距センサ５の位置がロボット３の作業エリア内でない測距条件をRAM１２から削除する。また、測距条件決定部１４は、逆運動学の解を持たない測距条件をRAM１２から削除する。また、測距条件決定部１４は、測距条件を満たすように測距センサ５を移動させた際にロボット３が外部環境と物理的に干渉してしまう場合、また、所謂自己干渉が起こる場合、その測距条件をRAM１２から削除する。また、測距条件決定部１４は、測距条件を満たすように測距センサ５を移動させることがロボット３の可動範囲から外れるものである場合、その測距条件をRAM１２から削除する。次に、測距条件決定部１４は、RAM１２に記憶されている測距条件のうち、既知の形状を有する箱２の内底面１８を測距し易い測距条件を選択する。図５には、測距センサ５が箱２の内底面１８を測距している様子を示している。図５に示すように、必ずしも箱２の上方から箱２の内底面１８を測距センサ５で測距できるとは限らない。従って、測距センサ５で箱２の内底面１８を測距した場合、箱２の側壁２５の存在により測距できない遮蔽領域uneが存在する。また、箱２の上方に障害物２６が存在する場合、測距センサ５で箱２の内底面１８を測距した際、障害物２６の背後には、測距できない遮蔽領域uneが発生する。そこで、測距条件決定部１４は、遮蔽領域uneの面積が最小化するような測距条件を選択する。なお、遮蔽領域uneの面積が最小化するような測距条件が複数存在する場合は、測距条件決定部１４は、第１優先条件として、箱２の内底面１８が測距センサ５の焦点距離により近い方を選択し、第２優先条件として、箱２の内底面１８の幾何学的中心点１９を通り内底面１８に対して直交する法線と、箱２の内底面１８の幾何学的中心点１９と測距センサ５を結んだ直線と、が成す角がより小さい方を選択する。測距条件決定部１４は、選択することにより決定した測距条件をRAM１２に記録する。
【００２３】
（測距実行部１５の動作）
次に、初回（N-1回目）のS110において、測距実行部１５が、測距条件決定部１４がS100で決定した測距条件に基づいて、測距センサ５から複数のワーク１までの距離を測距センサ５で測定することについて詳細に説明する。
【００２４】
先ず、測距実行部１５は、測距条件決定部１４が決定した測距条件を満たすように、センサアーム駆動部９を制御して、測距センサ５の位置及び姿勢を変更する。次に、測距実行部１５は、測距センサ５に測距指令を送信する。測距センサ５は、測距指令を受信すると測距を実行して距離画像を生成し、生成した距離画像をロボット本体４に送信する。測距実行部１５は、受信した距離画像をRAM１２に記憶する。
【００２５】
（ワーク認識部１６の動作）
次に、初回（N-1回目）のS120において、ワーク認識部１６が、距離画像に基づいて複数のワーク１の位置及び姿勢を認識することについて詳細に説明する。
【００２６】
先ず、ワーク認識部１６は、RAM１２に記憶されている距離画像を読み込み、距離画像を三次元座標を有するポイントの集合に変換する。三次元座標を有するポイントの集合は、一般に、ポイントクラウドとも称される。ワーク認識部１６は、初回のポイントクラウドをRAM１２に記憶する。ワーク認識部１６は、初回のポイントクラウドをセグメンテーションし、各セグメントに属する複数のポイントと、ワーク１のAABB（Axis Aligned Bounding Box）とを比較する。そして、ワーク認識部１６は、上記比較の結果、ワーク１のAABBとの一致度が高いセグメントに属する複数のポイントに基づいて、各ワーク１の位置及び姿勢を認識する。なお、このとき、ワーク認識部１６は、箱２に収容されているすべてのワーク１の位置及び姿勢を認識することが好ましい。しかしながら、ワーク認識部１６は、箱２に収容されているすべてのワーク１の位置及び姿勢を認識することに代えて、箱２に収容されている複数のワーク１のうち少なくとも何れか１つの位置及び姿勢を認識することが考えられる。
【００２７】
（ワーク取出実行部１７の動作）
次に、初回（N-1回目）のS130において、ワーク取出実行部１７は、前述したように、ワーク認識部１６による認識の結果に基づいて、ワーク１を１つ取り出す。
【００２８】
（測距条件決定部１４の動作）
次に、２回目（N回目）のS100において、測距条件決定部１４が測距条件を決定することについて詳細に説明する。
【００２９】
先ず、測距条件決定部１４は、図６に示すように、箱２の内部空間を格子状に分割することにより、三次元状に並ぶ複数のセル２７を定義する。そして、測距条件決定部１４は、RAM１２に記憶されている初回のポイントクラウドを読み込み、初回のポイントクラウドを上記複数のセル２７にそれぞれ格納する。そして、初回のポイントクラウドのうち少なくとも何れか１つのポイントが存在するセル２７に「Occupied」というラベルを付す。「Occupied」というラベルが付されたセル２７（第１セル３０）を図６では、アルファベット「o」で特定している。そして、測距条件決定部１４は、測距センサ５から見て、「Occupied」というラベルが付されたセル２７の存在により測距センサ５によって測距不能となる領域に存在するセル２７に「Occluded」というラベルを付す。「Occupied」というラベルが付されたセル２７の存在により測距センサ５によって測距不能となる領域を、以下、死角とも称する。「Occluded」というラベルが付されたセル２７を図６では、アルファベット「ｘ」で特定している。なお、図６に示す測距センサ５は、初回の測距条件を満足する位置及び姿勢のものである。図６によれば、初回の測距条件では、死角２８が発生していたことが判る。
【００３０】
また、測距条件決定部１４は、初回にワーク取出実行部１７が取り出したワーク１に対応するセル２７のラベルを「Occluded」に書き換える。本実施形態では、紙面左側のワーク１が初回に取り出されたので、図７に示すように、紙面左側のセル２７のラベルは、符号２９で示すように、「Occupied」から「Occluded」に書き換えられている。
【００３１】
そして、測距条件決定部１４は、「Occluded」というラベルが付されたセル２７（第２セル３１）をより多く測距できるように、測距センサ５の測距条件を決定する。詳しくは、測距条件決定部１４は、N回目においては、初回に死角２８となった領域（セル２７）と、初回において取り出されたワーク１が存在していた符号２９で示す領域（セル２７）と、を含む特定領域（特定セル）のうち測距センサ５が測距可能となる領域（セル２７）が前回と比較して増えるように、好ましくは最大化するように、測距センサ５の測距条件を決定する。図７には、このようにして決定された測距条件を満足する位置及び姿勢とされた測距センサ５を図示している。これによれば、測距対象を満遍なく把握できるようになるので、N回目にワーク認識部１６が複数のワーク１の位置及び姿勢を認識する精度が向上する。特に、初回において取り出されたワーク１が存在していた領域を死角２８と同等に取り扱うことで、ワーク１の取り出しに伴う箱２内での状態の変化を十分に把握した上でワーク認識部１６による認識が行われることになる。
【００３２】
（測距実行部１５の動作）
次に、二回目（N回目）のS110において、測距実行部１５は、測距条件決定部１４が二回目のS100で決定した測距条件に基づいて、測距センサ５から複数のワーク１までの距離を測距センサ５で測定する。測距実行部１５は、二回目の距離画像をRAM１２に記憶する。
【００３３】
（ワーク認識部１６の動作）
次に、二回目（N回目）のS120において、ワーク認識部１６が、距離画像に基づいて複数のワーク１の位置及び姿勢を認識することについて詳細に説明する。
【００３４】
先ず、ワーク認識部１６は、RAM１２に記憶されている二回目の距離画像を読み込み、二回目の距離画像を三次元座標を有するポイントの集合に変換する。ワーク認識部１６は、二回目のポイントクラウドをRAM１２に記憶する。この状態で、RAM１２には、初回のポイントクラウドと、二回目のポイントクラウドと、が記憶されている。
【００３５】
二回目のS120において、ワーク認識部１６は、第１に、初回のポイントクラウドを二回目のポイントクラウドに統合する（統合工程）。第２に、ワーク認識部１６は、統合後の二回目のポイントクラウドに対してセグメンテーションを実行する（セグメンテーション工程）。第３に、セグメンテーションの結果に基づいて、ワーク１の位置及び姿勢を認識する（認識工程）。以下、上記の統合工程、セグメンテーション工程、認識工程を順に詳細に説明する。
【００３６】
（統合工程）
先ず、初回のポイントクラウドを二回目のポイントクラウドに統合する統合工程について説明する。初回のポイントクラウドを二回目のポイントクラウドに統合すれば、異なる測距条件からの測距によって得られた死角の少ないポイントクラウドが得られるので、ワーク認識部１６によるワーク１の認識精度の向上に寄与する。しかしながら、初回のポイントクラウドをすべて二回目のポイントクラウドに統合するのは合理的ではない。なぜなら、初回のワーク１の取り出しによって、初回のポイントクラウドは、必ずしもすべてが、二回目の時点における複数のワーク１と整合するとは限らないからである。従って、本実施形態では、初回のポイントクラウドのうち、二回目のポイントクラウドに統合可能なものと、二回目のポイントクラウドに統合不能なものと、に切り分け、統合可能なポイントクラウドのみ、二回目のポイントクラウドに統合するものとする。この切り分けは、初回のポイントクラウドをセグメンテーションして得られたセグメントごとに行われる。
【００３７】
図８には、初回のポイントPN-1(j)を示している。図９には、初回のポイントPN-1(j)に対してワーク認識部１６がセグメンテーションを実行した結果得られた複数のセグメントSN-1(t)を示している。図１０には、二回目のポイントPN(i)を示している。図９に示すように、１つのセグメントSN-1(t)には、複数のポイントPN-1(j)が属している。換言すれば、１つのセグメントSN-1(t)は、複数のポイントPN-1(j)によって構成されている。
【００３８】
ワーク認識部１６は、初回のポイントPN-1(j)のそれぞれが、二回目のポイントPN(i)に統合可能なものかどうかを、初回のセグメントSN-1(t)ごとに判定する。そこで、判定のために用いるカウンタとして、初回のセグメントSN-1(t)のそれぞれに対してNearN-1(t),FarN-1(t)というカウンタを定義し、その初期値をゼロとする。図１１には、説明の理解を促進させるために、初回のセグメントSN-1(t)のすべてと、二回目のポイントPN(i)と、を重ねて表示している。なお、図１１において、二回目のポイントPN(i)は、太丸で示している。
【００３９】
まず、ワーク認識部１６は、二回目で１番目のポイントPN(i)であるポイントPN(1)と、初回のポイントPN-1(j)のすべてと、を対比させ、初回のポイントPN-1(j)のうち、ポイントPN(1)に最も近いポイントPN-1(j)を特定する。特定したポイントPN-1(j)をポイントPN-1(k)とする。そして、ワーク認識部１６は、ポイントPN(1)とポイントPN-1(k)との間の距離ｄを算出し、距離ｄに応じて、ポイントPN-1(k)が属するセグメントSN-1(t)のカウンタをインクリメントする。具体的には、ワーク認識部１６は、上記の距離ｄが所定値以下の場合は、ポイントPN-1(k)が属するセグメントSN-1(t)のNearN-1(t)を１つインクリメントする。一方、ワーク認識部１６は、上記の距離ｄが所定値を超える場合は、ポイントPN-1(k)が属するセグメントSN-1(t)のFarN-1(t)を１つインクリメントする。次に、ワーク認識部１６は、二回目で２番目以降のポイントPN(i)についても同様に処理する。
【００４０】
次に、ワーク認識部１６は、初回の１番目のセグメントSN-1(t)であるセグメントSN-1(1)に属する初回のポイントPN-1(j)が二回目のポイントPN(i)に統合可能なものか判定する。具体的には、ワーク認識部１６は、セグメントSN-1(1)の変数であるNearN-1(1)及びFarN-1(1)に基づいて上記の判定を行なう。即ち、ワーク認識部１６は、NearN-1(1)及びFarN-1(1)の合計値が所定値以下であるとき、セグメントSN-1(1)に属するポイントPN-1(j)は、二回目の測距において死角に相当するとして、セグメントSN-1(1)に属するポイントPN-1(j)を二回目のポイントPN(i)にそっくりそのまま統合（追加、合算、編入）する。一方、ワーク認識部１６は、NearN-1(1)及びFarN-1(1)の合計値が所定値を超えるとき、更に条件分岐するものとし、FarN-1(1)/NearN-1(1)が所定値以下であるとき、セグメントSN-1(1)に属するポイントPN-1(j)に対応するワーク１は初回のワーク１の取り出し時に動かなかったとして、セグメントSN-1(1)に属するポイントPN-1(j)を二回目のポイントPN(i)にそっくりそのまま統合し、一方で、FarN-1(1)/NearN-1(1)が所定値を超えるとき、又は、NearN-1(1)がゼロであるとき、セグメントSN-1(1)に属するポイントPN-1(j)に対応するワーク１は初回のワーク１の取り出し時に取り出されたものとして、セグメントSN-1(1)に属するポイントPN-1(j)を二回目のポイントPN(i)に統合しない。次に、ワーク認識部１６は、初回の２番目以降のセグメントSN-1(t)についても同様に処理する。図１２には、統合の結果を示している。図１２において、同じ座標に複数のポイントPN(i)が重複している。この重複自体は、処理の単純化の側面ではそのまま重複したままとしておくことがよく、処理の高速化の側面では重複状態を解消し何れか一方のみを残すようにするとよい。本実施形態では、処理の単純化を優先し、重複状態はそのままとしている。
【００４１】
（セグメンテーション工程）
次に、ワーク認識部１６は、図１２に示す統合後の二回目のポイントPN(i)に対してセグメンテーションを実行する。このセグメンテーションにより得られた二回目のセグメントSN(t)を図１３に示す。
【００４２】
（認識工程）
次に、ワーク認識部１６は、二回目のセグメントSN(t)に基づいて、複数のワーク１の位置及び姿勢を認識する。一般に、ワーク１の位置及び姿勢を認識するのに必要となる計算コストは高く、毎回、セグメントSN(t)に基づいてすべてのワーク１の位置及び姿勢を認識するのは計算コストの側面から好ましくない。従って、本実施形態では、毎回、セグメントSN(t)に基づいてすべてのワーク１の位置及び姿勢を認識するのに代えて、前回の認識結果のうち流用できる分については流用することにする。以下、前回の認識結果のうち、どのワーク１についての認識結果が流用可能であるかを判定することについて詳細に説明する。
【００４３】
先ず、ワーク認識部１６は、初回に得られたワークN-1(r)の認識結果が二回目の認識工程に際し流用可能なものかどうかをセグメントSN(t)ごとに判定する。そこで、判定のために用いるカウンタとして、初回に位置及び姿勢が認識されたワークN-1(r)のそれぞれに対してNearN-1(r),FarN-1(r)というカウンタを定義し、その初期値をゼロとする。
【００４４】
次に、ワーク認識部１６は、二回目で１番目のセグメントSN(t)であるセグメントSN(1)のAABBを算出し、セグメントSN(1)のAABBと、初回のワークN-1(r)のAABBのすべてと、の衝突の有無を判定する。そして、ワーク認識部１６は、セグメントSN(1)のAABBと衝突した初回のワークN-1(r)を特定し、特定したワークN-1(r)をワークN-1(s)とする。そして、ワーク認識部１６は、セグメントSN(1)に属するポイントPN(i)のうち１番目のポイントPN(i)であるポイントPN(1)と、ワークN-1(s)と、の間の最短距離ｄを求め、最短距離ｄに応じて、ワークN-1(s)のカウンタをインクリメントする。具体的には、ワーク認識部１６は、上記の最短距離ｄが所定値以下の場合は、ワークN-1(s)のNearN-1(s)をインクリメントする。一方、ワーク認識部１６は、上記の最短距離ｄが所定値を超える場合は、ワークN-1(s)のFarN-1(s)をインクリメントする。セグメントSN(1)のAABBと衝突した初回のワークN-1(r)が複数ある場合は、他のワークN-1(r)についても同様に処理する。
【００４５】
次に、ワーク認識部１６は、ワークN-1(s)の認識結果が、二回目の認定に際し流用可能なものかどうか判定する。具体的には、ワークN-1(s)の変数であるNearN-1(s)及びFarN-1(s)に基づいて上記の判定を行なう。即ち、ワーク認識部１６は、FarN-1(s)/NearN-1(s)が所定値以下であるときは、ワークN-1(s)の認識結果が二回目の認定に際し流用可能であると判定し、二回目で１番目のセグメントSN(t)に含まれるポイントポイントPN(i)に基づいてワーク１の位置及び姿勢を認識することを省略することにする。一方、FarN-1(s)/NearN-1(s)が所定値を越え、又は、NearN-1(s)がゼロである場合は、ワーク認識部１６は、ワークN-1(s)の認識結果が二回目の認定に際し流用不能であると判定し、二回目で１番目のセグメントSN(t)に含まれるポイントポイントPN(i)に基づいてワーク１の位置及び姿勢を認識する。次に、ワーク認識部１６は、二回目で２番目以降のセグメントSN(t)についても同様に処理する。
【００４６】
（ワーク取出実行部１７の動作）
次に、二回目（N回目）のS130において、ワーク取出実行部１７は、ワーク認識部１６による認識の結果に基づいて、ワーク１を１つ取り出す。
【００４７】
以上に、好適な実施形態を説明したが、上記実施形態は、以下の特徴を有する。
【００４８】
距離画像（測距センサ５を用いたセンシング結果）に基づいて所望のワーク１（対象物）を検出し、検出したワーク１をハンド７で取り出す、ロボット３は、箱２の内部空間（計測領域）を複数のセル２７に分割して認識した上で、当該分割したセル２７の中から、距離画像（測距センサ５のセンシング結果）を用いてポイントクラウド（物体）が検出される位置のセル２７である第１セル３０（第１セル３０は、「Occupied」とラベル付けされたセル２７である。）の位置に基づいてワーク１の位置を検出する処理を実行するワーク認識部１６（検出処理手段）と、分割したセル２７のうち、第１セル３０を除くセル２７、及び、ワーク認識部１６によってワーク１が検出された位置のセル２７、の少なくとも何れかのセルである第２セル（「Occluded」とラベル付けされたセル２７）を特定し、第２セル３１のうち、測距センサ５のセンシング範囲に入る第２セル３１の数が前回の測距時と比較して増加するような測距センサ５の測距条件（移動位置）を算出する測距条件決定部１４（算出手段）と、測距条件決定部１４によって算出された移動位置に対応付けて、測距センサ５を移動させる測距実行部１５（移動手段）と、を備える。これによれば、測距対象を満遍なく把握できるようになるので、N回目にワーク認識部１６が複数のワーク１の位置及び姿勢を認識する精度が向上する。特に、初回において取り出されたワーク１が存在していた領域を死角２８と同等に取り扱うことで、ワーク１の取り出しに伴う箱２内での状態の変化を十分に把握した上でワーク認識部１６による認識が行われることになる。
【００４９】
複数のワークがバラ積み状態で収容された箱から、前記ワークを１つずつ取り出すロボットの制御方法であって、測距センサで前記測距センサから前記複数のワークまでの距離を測定するときの前記測距センサの位置及び姿勢を決定する第１のステップと、前記第１のステップにおける決定の結果に基づいて、前記測距センサから前記複数のワークまでの距離を前記測距センサで測定する第２のステップと、前記第２のステップにおける測定の結果に基づいて、前記複数のワークの位置及び姿勢を認識する第３のステップと、前記第３のステップにおける認識の結果に基づいて、前記ワークを取り出す第４のステップと、を順に繰り返す制御方法であり、N回目の前記第１のステップにおいては、N-1回目の前記第２のステップにおいて死角となった領域と、N-1回目の前記第４のステップにおいて取り出された前記ワークが存在していた領域と、を含む特定領域のうち前記測距センサが測距可能となる領域が前回の測距時と比較して増加するように前記測距センサの位置及び姿勢を決定する、制御方法が提供される。
【符号の説明】
【００５０】
１  ワーク
２  箱
３  ロボット
４  ロボット本体
５  測距センサ
６  測距センサアーム
７  ハンド
８  ハンドアーム
９  センサアーム駆動部
１０  ハンドアーム駆動部
１４  測距条件決定部
１５  測距実行部
１６  ワーク認識部
１７  ワーク取出実行部
２７  セル
２８  死角
３０  第１セル
３１  第２セル
【図１】
0006747665.tif 000002
【図２】
0006747665.tif 000003
【図３】
0006747665.tif 000004
【図４】
0006747665.tif 000005
【図５】
0006747665.tif 000006
【図６】
0006747665.tif 000007
【図７】
0006747665.tif 000008
【図８】
0006747665.tif 000009
【図９】
0006747665.tif 000010
【図１０】
0006747665.tif 000011
【図１１】
0006747665.tif 000012
【図１２】
0006747665.tif 000013
【図１３】
0006747665.tif 000014