(57)【特許請求の範囲】
【請求項１】
物体が格納された容器を含む画像を取得する取得手段と、
前記画像に基づいて前記容器内の状態を推定する状態推定手段と、
前記状態推定手段によって推定された結果に基づいて、前記容器内の物体が不足しているか否かを判断する判断手段と、
前記判断手段によって判断された結果を出力する出力手段とを備え、
前記状態推定手段は、前記容器の底面に描かれている模様を検出することにより、前記容器内において前記物体が積まれていない底面領域を検出し、前記判断手段は、該検出された結果に基づいて前記容器内の物体が不足しているか否かを判断することを特徴とする情報処理装置。
【請求項２】
前記状態推定手段は、前記物体の領域と前記容器の底面領域のうち、少なくともいずれか一方を検出し、該検出された結果に基づいて前記容器内の物体が不足しているか否かを判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記状態推定手段は、前記容器内での前記物体の領域と前記容器の底面領域との分布を取得し、該取得した分布に基づいて、前記容器内の物体が不足しているか否かを判断することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
更に、前記判断手段によって前記容器内の物体が不足していると判断された場合に、前記容器に物体を供給する供給手段を備えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
更に、前記判断手段によって前記容器内の物体が不足していると判断された場合に、前記容器内の物体が不足していることを報知する報知手段を備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記画像に基づいて前記物体の位置姿勢を推定する位置姿勢推定手段と、
前記位置姿勢推定手段によって推定された位置姿勢に基づいて、物体を保持するように保持手段を制御する制御手段と、を更に有することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記位置姿勢推定手段は、前記画像から特徴量を抽出し、当該抽出した特徴量に基づいて前記物体の位置姿勢を推定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記制御手段は、物体を保持するように保持手段を制御する処理を、前記状態推定手段が前記容器内の状態を推定する処理と並行して実行することを特徴とする請求項６または７に記載の情報処理装置。
【請求項９】
物体が格納された容器を含む画像を取得する取得工程と、  前記画像に基づいて前記物体の位置姿勢を推定する位置姿勢推定工程と、  前記画像に基づいて前記容器内の状態を推定する状態推定工程と、  前記状態推定工程において推定された結果に基づいて、前記容器内の物体が不足しているか否かを判断する判断工程と、  前記判断工程において判断された結果を出力する出力工程とを備え、 前記状態推定工程は、前記容器の底面に描かれている模様を検出することにより、前記容器内において前記物体が積まれていない底面領域を検出し、前記判断手段は、該検出された結果に基づいて前記容器内の物体が不足しているか否かを判断することを特徴とする情報処理方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットによる部品ピッキングにおける部品不足を検知する技術に関する。
【背景技術】
【０００２】
工業製品の部品等の組付けや分類の自動化のために、ロボットを用いた部品のピッキングを行う技術が近年盛んに提案されている。その中の一例として、部品容器の中に部品が山積みにされており、それを撮影・認識し、ロボットが把持して取り出し、組付けや分類を行うものがある。ここで、部品の「山積み」とは、部品が整列することなく集められ、積み重なっている状態を指す。
【０００３】
このようなロボットピッキングシステムにおいて、容器内に山積みにされた部品を取り出して行くと、やがて容器内から部品がなくなる状況が訪れる。部品が無い状態で、部品を撮影・認識しようとすると、想定外のエラーが生じたり、ロボットが把持をしようとして予測不能な動作が発生したりするおそれがある。
【０００４】
部品不足への対策としては、部品供給フィーダを用いて、部品を把持して取りだす度に新しい部品を供給する方法がある。この場合には、部品の種類に応じた特注の部品供給フィーダが必要である。また、ロボットピッキングシステムと部品供給フィーダをセットで扱う必要が出てくるために、システムが巨大化してしまうといった問題点がある。
【０００５】
特許文献１では、容器内に部品が有るかどうかを検知するために、光を透過する容器を用いて、容器の上下片側から光源を照らし、反対側からカメラで撮影する。そして、撮影された画像から、部品の影の有無を検出することによって、容器内の部品の有無を検知することを開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−３００８７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１による方法では、容器を光が透過するものに制限する必要があった。また、容器の一方に光源、他方にカメラを配置しなければならないという制約があり、装置が簡素化できないという課題があった。
【０００８】
本発明は、以上の課題を鑑みてなされたものであり、簡易な構成で部品の不足を検出することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の情報処理装置は、例えば、対象物体が格納された容器を含む画像を取得する取得手段と、前記画像に基づいて前記物体の位置姿勢を推定する位置姿勢推定手段と、前記位置姿勢推定手段によって推定された位置姿勢に基づいて、保持手段に部品を保持するように制御する制御手段と、前記画像に基づいて前記容器内の状態を推定する状態推定手段と、前記状態推定手段によって推定された結果に基づいて、前記容器内の部品が不足しているか否かを判断する判断手段と、前記判断手段によって判断された結果を出力する出力手段とを備え、前記状態推定手段は、前記容器の底面に描かれている模様を検出することにより、前記容器内において前記物体が積まれていない底面領域を検出し、前記判断手段は、該検出された結果に基づいて前記容器内の物体が不足しているか否かを判断する。
【発明の効果】
【００１０】
本発明により、簡易な構成で部品の不足を検出することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態のロボットピッキングシステムの構成例を示す図。
【図２】第１実施形態の処理の流れを示すフローチャート。
【図３】部品領域と底面領域の例を示す図。
【図４】山積み部品の三次元空間上での分布の例を示す模式図。
【図５】第３実施形態のロボットピッキングシステムの構成例を示す図。
【図６】第３実施形態の処理の流れを示すフローチャート。
【図７】本発明の情報処理装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１２】
本発明にかかる各実施形態を説明するのに先立ち、各実施形態に示す情報処理装置が実装されるハードウェア構成について、図７を用いて説明する。
【００１３】
図７は、本実施形態における情報装置のハードウェア構成図である。同図において、ＣＰＵ７１０は、バス７００を介して接続する各デバイスを統括的に制御する。ＣＰＵ１７１０は、読み出し専用メモリ（ＲＯＭ）７２０に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム（ＯＳ）をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はＲＯＭ７２０に記憶されており、ランダムアクセスメモリ（ＲＡＭ）７３０に一時記憶され、ＣＰＵ７１０によって適宜実行される。また、入力Ｉ／Ｆ７４０は、外部の装置（表示装置や操作装置など）から情報処理装置１で処理可能な形式で入力信号として入力する。また、出力Ｉ／Ｆ７５０は、外部の装置（表示装置）へ表示装置が処理可能な形式で出力信号として出力する。
【００１４】
これらの各機能部は、ＣＰＵ７１０が、ＲＯＭ７２０に格納されたプログラムをＲＡＭ７３０に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、ＣＰＵ７１０を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００１５】
（第１の実施形態）
第１の実施形態にかかる情報処理装置３および情報処理装置３を備えるピッキングシステムについて、図１を参照して説明する。第１の実施形態にかかる情報処理装置３は、画像取得部３１と、部品位置姿勢推定部３２と、山積み状態推定部３３と、部品状態判断部３４とを備える。そして、情報処理装置３は、撮像装置２、部品供給装置５、ロボット制御装置４１と接続されることで、ピッキングシステムを構成している。
【００１６】
ロボット制御部４１は、部品位置姿勢推定部３２による部品１１の位置姿勢の推定結果に基づいて、ロボットハンド４２で動かすべき各回転角度を算出し、部品１１を把持するためにロボットハンド４２を制御する。ロボット制御部４１のハードウェアは、ＣＰＵ、メモリ、ハードディスクなどの記憶装置、入出力用の各種インタフェース等を具備する汎用のコンピュータ（ハードウェア）から構成されるが、情報処理装置３と同じハードウェア内のソフトウェアとして構成されても良い。
【００１７】
ロボットハンド４２は、ロボット制御部４１からの命令を受けて、容器内の部品１１を把持（保持）して取り出し、組付け等を行う。ロボットハンド４２は、例えば６軸自由度のアームであり、エンドエフェクタとして二指ハンド機構を備える。また、部品１１の平面部に押しつけることで保持を行う磁石式あるいは吸着式のハンドでもよい。
【００１８】
部品（物体）１１は、ロボットハンド４２によって把持して取り出し、組付けなどを行う対象となるものである。
【００１９】
容器１２は、複数の部品１１を格納する容器である。容器１２は、底面部１３を有している。以下実施形態の説明では複数の部品１１が容器１２内に山積みにされているものとして話を展開するが、容器に限るわけではなく、台の上など部品を置くことができる領域であれば何でもよい。底面部１３は部品１１が置くことができる領域の面を表している。
【００２０】
撮像装置２は対象部品１および容器１２を画角におさめるように配置されており、対象部品１および容器１２を撮像する。撮像装置２は、容器１２を真上から撮像できるよう配置される撮像装置であり、例えばデジタルカメラなどである。撮像された画像信号は画像取得部３１に送られる。
【００２１】
画像取得部３１は、撮像装置２で標本化ならびに量子化されたデジタルの画像信号を取り込む。さらに、取り込んだ画像信号から各画素の輝度（濃度値）で表される画像データを取得してメモリに記憶する機能を有する。なお、画像取得部３２は、ＲＳ２３２ＣやＩＥＥＥ４８８などの汎用の通信インタフェースを介して撮像装置２の動作（撮像のタイミングなど）を制御する機能を有する。
【００２２】
部品位置姿勢推定部３２は、画像取得部３１から得られた少なくとも１枚の画像データを用いて、複数の部品１１の中から把持すべき部品を決定し、その位置姿勢を推定する。
【００２３】
山積み状態推定部３３は、画像取得部３１から得られた少なくとも１枚の画像データを用いて、対象部品部１の領域において、部品領域と底面領域の少なくとも一つを検出する。これにより、山積み状態推定部３３は、容器内の部品の山積み状態を推定する（状態推定）。
【００２４】
部品状態判断部３４は、山積み状態推定部３３によって検出された部品領域と底面領域に基づいて、容器１２内の部品１１が不足しているかどうかを判断する。ロボットハンド４２によって、部品を取り出し続けていると、やがて部品が不足してくる。そのため、部品状態判断部３４は、撮像装置２で撮影された画像データに基づいて、部品の不足を判断し、判断した結果を、部品供給部５に出力する。
【００２５】
部品供給装置５は、部品タンクを備えており、部品状態判断部３４で部品が不足していると判断された場合に、部品タンクから一定量の部品を容器１２内に送り込むことで部品を供給する。供給するタイミングとしては、ロボットハンド４２が把持して取り出してから、組付けを行っている間に行うのが、サイクルタイムの観点から最も効率良いと考えられる。
【００２６】
図２のフローチャートを参照して、第１実施形態に係る部品の供給までの全体の流れを説明する。
【００２７】
（ステップＳ１）
ステップＳ１では、撮像装置２が部品１１を含んだ領域を撮影する。撮影される領域は部品１１を置くことができる容器底面１３全体が含まれる領域である。撮影する画像の枚数は後の部品位置姿勢推定処理や山積み状態推定処理で扱うデータによって異なる。撮影されたデータは画像信号として画像取得部３２に送られる。
【００２８】
（ステップＳ２）
ステップＳ２では、部品位置姿勢推定部３２は、撮影画像に基づいて、把持すべき部品の位置姿勢推定を行う。位置姿勢の推定方法としては、画像データの部分領域からＳＩＦＴなどの特徴量を抽出した特徴量を使って、画像特徴から２Ｄのモデルフィッティングを行うことで推定する。また、例えば予め複数の部品の姿勢データを保持しておき、それぞれの姿勢データの特徴量と、画像データの部分領域の特徴量とを比較することで推定しても良い。ただし、位置姿勢推定方法はこれに限るものではなく、例えば撮像装置を複数台のカメラから構成したステレオ法や、プロジェクタなどの投影部を用意し、位相シフト法や空間符号化法などのアクティブステレオ法を用いて距離画像を求め、距離画像とのモデルフィッティングによって、把持すべき部品の位置姿勢を推定しても良い。部品位置姿勢推定部３２は、推定した位置姿勢情報をロボット制御部４１に送出する。
【００２９】
（ステップＳ３ａ、３ｂ）
ステップＳ３ａでは、ロボット制御部４１は、部品位置姿勢推定部３２からの出力に応じて、ロボットハンド４２に命令を出力し、ロボットハンド４２は、受け取った命令に応じて、部品１１を把持して取り出す。この処理は次に説明するステップＳ３と並列して処理を行う。そして、ステップＳ３ｂで終了命令があった場合には処理を終了させる。一方、終了命令が無かった場合は、メインループに合流し、処理を続ける。
【００３０】
（ステップＳ３）
ステップＳ３では、山積み状態推定部３３は、画像データに基づいて、容器１内の部品の山積み状態として、部品領域と底面領域を検出する。図３は部品領域と底面領域の検出結果の一例である。部品領域と底面領域の検出法方としては、部品１１と容器底面１３の色が異なることを利用して、色によって領域分割を行い、部品領域と底面領域を検出する。ただし、この方法に限るわけではなく、例えば、容器の底面に円マーカー等のテクスチャを一定間隔に描いておき、画像データから円マーカーを検出することによって、底面領域を検出しても良いし、ステレオ法やアクティブステレオ法によって求めた距離画像に基づいて、山積みに部品１１が存在している領域での距離計測値と、容器の底面１３までの距離計測値と、の違いから部品領域と底面領域を検出しても良い。
【００３１】
ここで用いる画像データは、部品位置姿勢推定に用いたのと同じ画像データを利用することで、撮影回数を減らし効率良く部品領域と底面領域の検出を行うことができる。ただし、これに限るものではなく、ロボットハンド４２によって部品が把持され取り出された後に、再度撮像装置２によって撮影し、画像取得部３１から得られた画像データに基づいて検出しても良い。
【００３２】
（ステップＳ４）
ステップＳ４では、部品状態判断部３４は、容器底面における部品領域と底面領域の割合に基づいて、部品の不足状態を判断する。不足状態の判断方法としては、底面１３の全領域に占める部品領域の割合を求め、その割合が閾値以下であれば部品不足であると判断する。また底面領域の割合から逆算して求めても良い。山積みの状態が狭い領域に高く積みあがっている場合は、部品の数は十分多いが、把持しやすい部品は少ないため、この場合も同様に部品不足であると判断する。
【００３３】
ステップＳ４において、部品不足であると判断された場合は、次のステップＳ５に進み、部品不足ではないと判断された場合は、ステップＳ１へ戻り、部品の把持、取り出しを継続して行う。
【００３４】
（ステップＳ５）
ステップＳ５では、部品供給装置５は、部品の供給を行う。部品タンクから一定量の部品を容器１２内に送り込むことで部品を供給する。部品の供給およびロボットでの把持ステップを終えると、ステップＳ１に戻り、再び画像の撮影ステップから行っていく。
【００３５】
以上のように、終了命令が与えられるまで自動で部品を供給しながら把持処理を繰り返し行う。
【００３６】
第１の実施形態によれば、部品が無くなってしまう前に、部品領域と底面領域の割合から、部品の不足を検知して自動的に部品を供給できるため、一度に補充する部品の量も少なくて済み、ピッキングシステム全体を一時停止させることなく把持を継続することができる。
【００３７】
（第２の実施形態）
第２の実施形態では、山積み状態推定方法として、部品１１および容器１２を計測した距離画像の分布を構成し、その結果に基づいて部品状態判断を行う。第２実施形態に係る部品不足を検知するロボットピッキングシステムの概略構成は図１と同様である。第２実施形態のフローチャートは第１実施形態で説明した図２とほぼ同様であるため、同様の処理に関しては説明を省略し、差異があるステップＳ３とＳ４に関して説明する。
【００３８】
第２実施形態におけるステップＳ３では、画像データに基づいて、ステレオ法やアクティブステレオ法を用いて計算された距離画像を構成し、山積み部品の三次元空間上での分布を構成する。図４は距離画像から得られた三次元空間上での分布を模式的に表したものである。対象部品部１に対して、これを三次元空間上での分布として表したものが１ａである。同図において、三次元空間上での分布の例をさらに二つあげているが、１ｂは均等に部品が配置されており、把持する候補を選びやすく、把持しやすい部品が多い山積み状態である。一方、１ｃは狭い領域に部品が密集して積み重ねられており、把持する候補が少なく、把持しやすい部品が不足している山積み状態である。
【００３９】
ステップＳ４では、ステップＳ３で求めた部品の三次元空間上での分布に基づいて、部品の不足を判断する。図４の１ｂのような分布が得られた場合は、部品は不足していないと判断しステップＳ１へ戻り、１ｃのような分布が得られた場合は、把持しやすい部品が不足していると判断し、次のステップＳ５に移行する。ステップＳ５では、警告を受けてユーザが部品を供給したり、終了命令を出すなどの対応が行われる。
【００４０】
このようにして部品の三次元空間上の分布に基づいて部品の不足状態を判断することで、第１実施形態とほぼ同じように部品の不足を検出できるため、他の説明は省略する。
【００４１】
図４を用いて部品の三次元空間上での分布における、把持のしやすさの一例について述べたが、この分布に限るものではなく、部品１１とロボットハンド４２との配置や部品１１の形状などによって把持しやすい部品の三次元空間上での分布は異なるため、そのような分布を新たに定義して用いても良い。
【００４２】
以上が、本発明の第２実施形態に係る部品不足を検知するロボットピッキングシステムの説明である。
【００４３】
（第３の実施形態）
第３の実施形態では、部品が不足している場合に、それをユーザに警告する。図５は第３実施形態に係る部品不足を検知するロボットピッキングシステムの概略構成である。第１実施形態で説明した図１とほぼ同様であるが、本実施形態では、部品供給部５ではなく、部品不足警告部６を有する点が異なる。図６は第３実施形態のフローチャートである。このフローチャートも第１実施形態で説明した図２とほぼ同様であるため、同様の処理に関しては説明を省略し、差異があるステップＳ６（第１の実施形態のステップＳ５に相当）に関して説明する。
【００４４】
第３実施形態におけるステップＳ６では、前のステップで部品が不足していると判断された場合に、部品不足をユーザに警告する。ユーザがロボットピッキングシステムを使用する際に用いるディスプレイに部品不足の警告表示と共に、アラーム音を鳴らすことで、部品が不足していることをユーザに警告（報知）する。ただし、報知方法はこれに限るものではなく、部品不足警告ランプを点灯させるなどの他の方法を用いても良い。
【００４５】
以上が、本発明の第３実施形態に係る部品不足を検知するピッキングシステムの説明である。
【００４６】
（変形例）
容器の底面１３は水平面である必要はなく、斜面になっていても良い。その場合、次のような方法で部品の山積み状態検知および部品の不足状態判断を行うことができる。部品を斜面に置くと部品はその重みで斜面を滑るものとすると、部品は自然と斜面の低い位置に集まり、部品の数が多くなると、斜面の高い位置にも存在できるようになる。そこで、底面１３のある高さに線を引いておき、撮像装置２で撮影した画像からその線が見えるかどうか検出することによって、部品の不足状態を判断することができる。
【００４７】
またその他の変形例として、第２の実施形態のように、部品の三次元空間上での分布を求めており、把持しやすい部品が不足していると判断された場合、部品を供給したり警告するだけでなく、たとえば、容器１２を振動させたり、ロボットハンド４２で部品の山積みをつついたりして、山を崩すことによって把持しやすい部品を増やしても良い。
【００４８】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００４９】
＜実施形態の効果＞
第１の実施形態では部品領域と底面領域を検出して、部品の不足状態を判断する。部品領域または底面領域の割合を計算するだけであるため、非常に高速に処理を行うことができる。また、入力として二次元画像１枚だけでも部品の不足状態を判断することができる。
【００５０】
第２の実施形態では山積み部品の三次元空間上での分布に基づいて、部品の不足状態を判断する。部品の個数や重さを測る方法による部品不足検知では、部品の個数が多い場合は、不足していると見なすことができないが、本発明では、把持のしやすい部品が少ない、ということを検出することができる。
【００５１】
第３の実施形態では部品が不足状態の場合に、警告をする。これによって部品供給以外に、ユーザが自由に部品不足に対処することができる。
【図１】
0006562619.tif 000002
【図２】
0006562619.tif 000003
【図３】
0006562619.tif 000004
【図４】
0006562619.tif 000005
【図５】
0006562619.tif 000006
【図６】
0006562619.tif 000007
【図７】
0006562619.tif 000008