(57)【要約】【課題】ピッキングの生産性を高める。【解決手段】複数の物体を１対の画像からなるステレオ画像として上方から撮像する撮像部と、基準画像内の検出対象領域にマッチングするマッチング領域を、探索を行う画素数を示す探索画素数によって定められた比較画像上の探索範囲内で探索する探索部と、視差を検出する視差検出部と、視差検出部が検出した視差に基づいて、撮像部から物体までの距離を算出する距離算出部と、姿勢が異なる物体を所定の位置から見た場合の形状それぞれを形状情報として予め記憶している記憶部と、撮像部が撮像したステレオ画像、及び記憶部が記憶している形状情報に基づいて、複数の物体の中から少なくとも１つを選定する選定部と、選定部が選定した物体を取り上げる取上げ部と、を有し、探索部は、選定部が選定した物体に対して視差検出部が検出した視差を示す画素数に基づいて、その後に探索する場合の探索画素数を定める。【選択図】図３
2017030115.tif 000002
【特許請求の範囲】
【請求項１】
上下方向に無作為に積まれた複数の物体を上方から逐次に取り上げるピッキング装置であって、
複数の前記物体を１対の画像からなるステレオ画像として上方から撮像する撮像部と、
前記ステレオ画像のうち一方を基準画像とし、他方を比較画像として、基準画像内の検出対象領域にマッチングするマッチング領域を、探索を行う画素数を示す探索画素数によって定められた比較画像上の探索範囲内で探索する探索部と、
前記基準画像内の前記検出対象領域の位置、及び前記探索部が探索した前記比較画像内の前記マッチング領域の位置から、視差を検出する視差検出部と、
前記視差検出部が検出した視差に基づいて、前記撮像部から前記物体までの距離を算出する距離算出部と、
姿勢が異なる前記物体を所定の位置から見た場合の形状それぞれを形状情報として予め記憶している記憶部と、
前記撮像部が撮像した前記ステレオ画像、及び前記記憶部が記憶している前記形状情報に基づいて、複数の前記物体の中から少なくとも１つを選定する選定部と、
前記選定部が選定した前記物体を取り上げる取上げ部と、
を有し、
前記探索部は、
前記選定部が選定した前記物体に対して前記視差検出部が検出した視差を示す画素数に基づいて、その後に探索する場合の探索画素数を定めること
を特徴とするピッキング装置。
【請求項２】
前記探索部は、
前記撮像部と前記物体との距離が長いほど多く繰り返すように設定された回数にわたって探索画素数を変えないこと
を特徴とする請求項１に記載のピッキング装置。
【請求項３】
複数の前記物体それぞれは、
上部が開口している収容器の中に収容されており、
前記探索部は、
前記基準画像内に撮像された前記収容器の内側を探索範囲とすること
を特徴とする請求項１又は２に記載のピッキング装置。
【請求項４】
複数の前記物体それぞれは、
上部が開口している収容器の中に収容されており、
前記探索部は、
前記撮像部と前記収容器の最上部との距離に対応する視差を示す画素数に基づいて、探索画素数の初期値を定めること
を特徴とする請求項１乃至３のいずれか１項に記載のピッキング装置。
【請求項５】
前記探索部は、
前記物体が新たに積まれた場合、探索画素数を初期値に戻すこと
を特徴とする請求項１乃至４のいずれか１項に記載のピッキング装置。
【請求項６】
上下方向に無作為に積まれた複数の物体を上方から逐次に取り上げるピッキング方法であって、
複数の前記物体を１対の画像からなるステレオ画像として上方から撮像する工程と、
前記ステレオ画像のうち一方を基準画像とし、他方を比較画像として、基準画像内の検出対象領域にマッチングするマッチング領域を、探索を行う画素数を示す探索画素数によって定められた比較画像上の探索範囲内で探索する工程と、
前記基準画像内の前記検出対象領域の位置、及び探索した前記比較画像内の前記マッチング領域の位置から、視差を検出する工程と、
検出した視差に基づいて、撮像位置から前記物体までの距離を算出する工程と、
撮像した前記ステレオ画像、及び記憶部が予め記憶している姿勢が異なる前記物体を所定の位置から見た場合の形状それぞれを示す形状情報に基づいて、複数の前記物体の中から少なくとも１つを選定する工程と、
選定した前記物体を取り上げる工程と、
前記物体を取り上げた後に探索する場合、選定した前記物体に対して検出した視差を示す画素数に基づいて探索画素数を定める工程と、
を含むピッキング方法。
【請求項７】
上下方向に無作為に積まれた複数の物体を上方から逐次に取り上げるピッキングプログラムであって、
複数の前記物体を１対の画像からなるステレオ画像として上方から撮像するステップと、
前記ステレオ画像のうち一方を基準画像とし、他方を比較画像として、基準画像内の検出対象領域にマッチングするマッチング領域を、探索を行う画素数を示す探索画素数によって定められた比較画像上の探索範囲内で探索するステップと、
前記基準画像内の前記検出対象領域の位置、及び探索した前記比較画像内の前記マッチング領域の位置から、視差を検出するステップと、
検出した視差に基づいて、撮像位置から前記物体までの距離を算出するステップと、
撮像した前記ステレオ画像、及び記憶部が予め記憶している姿勢が異なる前記物体を所定の位置から見た場合の形状それぞれを示す形状情報に基づいて、複数の前記物体の中から少なくとも１つを選定するステップと、
選定した前記物体を取り上げるステップと、
前記物体を取り上げた後に探索する場合、選定した前記物体に対して検出した視差を示す画素数に基づいて探索画素数を定めるステップと、
をコンピュータに実行させるためのピッキングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピッキング装置、ピッキング方法及びピッキングプログラムに関する。
【背景技術】
【０００２】
バラ積みされたワーク（物体）の３次元形状を認識してワークを１つずつ掴んでいくロボットを使ったピッキング装置が知られている。例えば、３次元形状を認識するために、測距手段としてステレオカメラが用いられる。
【０００３】
また、特許文献１には、ステレオ画像でマッチング領域を探索し、ステレオ画像内に存在する物体の撮影地点からの距離に応じて、当該ステレオ画像の次に取得されるステレオ画像についての探索範囲を変更する位置検出装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来は、生産性の高いピッキングを行うためには、測距速度が十分でないことがあった。
【０００５】
本発明は、上記に鑑みてなされたものであって、ピッキングの生産性を高めることができるピッキング装置、ピッキング方法及びピッキングプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、上下方向に無作為に積まれた複数の物体を上方から逐次に取り上げるピッキング装置であって、複数の前記物体を１対の画像からなるステレオ画像として上方から撮像する撮像部と、前記ステレオ画像のうち一方を基準画像とし、他方を比較画像として、基準画像内の検出対象領域にマッチングするマッチング領域を、探索を行う画素数を示す探索画素数によって定められた比較画像上の探索範囲内で探索する探索部と、前記基準画像内の前記検出対象領域の位置、及び前記探索部が探索した前記比較画像内の前記マッチング領域の位置から、視差を検出する視差検出部と、前記視差検出部が検出した視差に基づいて、前記撮像部から前記物体までの距離を算出する距離算出部と、姿勢が異なる前記物体を所定の位置から見た場合の形状それぞれを形状情報として予め記憶している記憶部と、前記撮像部が撮像した前記ステレオ画像、及び前記記憶部が記憶している前記形状情報に基づいて、複数の前記物体の中から少なくとも１つを選定する選定部と、前記選定部が選定した前記物体を取り上げる取上げ部と、を有し、前記探索部は、前記選定部が選定した前記物体に対して前記視差検出部が検出した視差を示す画素数に基づいて、その後に探索する場合の探索画素数を定めることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ピッキングの生産性を高めることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態にかかるピッキング装置のハードウェア構成及びその周辺を示す図である。
【図２】図２は、ステレオカメラの構成例を示す図である。
【図３】図３は、ピッキング装置が有する機能を示す図である。
【図４】図４は、ワークが遠い場合と近い場合の視差の違いを示す図である。
【図５】図５は、視差画像と、登録されているワークの画像との照合による整合を示す図である。
【図６】図６は、一番ピッキングしやすいワークを示す図である。
【図７】図７は、ワークが多い場合と少ない場合との差異を示す図である。
【図８】図８は、ピッキング装置が探索画素数を減らすことができる原理を示す図である。
【図９】図９は、ステレオカメラに写った画像と、収容器及び収容器までの距離とを示す図である。
【図１０】図１０は、ピッキング装置による処理例を示すフローチャートである。
【図１１】図１１は、視差を利用して距離を算出する原理を示す図である。
【図１２】図１２は、視差の求め方を示す図である。
【図１３】図１３は、計測対象物までの距離と視差との関係を示すグラフである。
【発明を実施するための形態】
【０００９】
まず、本発明に用いられる測距方法について説明する。ステレオカメラを用いてワークまでの測距を行う場合、例えば計測対象であるワークを２つのカメラで撮影し、得られた２つの画像間に生じる視差を利用して、三角測量の原理によりワークまでの距離を算出する。
【００１０】
まず、視差を利用して距離を算出する原理を図１１、図１２を用いて説明する。図１１は、計測対象物５を同一の光学系（レンズ、撮像素子）からなる２つのカメラ４０ａ、４０ｂを用いて撮影している。レンズ４００ａを通して得た計測対象物像と、レンズ４００ｂを通して得た計測対象物像は、２次元撮像素子４０２ａ、４０２ｂにそれぞれ写る。このとき撮像素子上で計測対象物の写る位置の違いが視差Δである。視差Δは、２次元撮像素子上の画素数で示される。
【００１１】
ここで、レンズ４００ａ、４００ｂの光軸間の距離は基線長と呼ばれ、これをＢとし、レンズと計測対象物との距離をＡ、レンズ４００ａ、４００ｂの焦点距離をｆとし、Ａ≫ｆであるときには下式１が成り立つ。
【００１２】
Ａ＝Ｂｆ／Δ    ・・・（１）
【００１３】
上式１により、基線長Ｂ、及びレンズの焦点距離ｆは既知であるから、視差Δを検出すれば計測対象物までの距離Ａを算出することができる。上式１からわかるように、距離Ａが大きい（＝遠い）場合には視差Δは小さく、距離Ａが小さい（＝近い）場合には視差Δは大きくなる。
【００１４】
図１２を用いて視差Δの求め方を説明する。計測対象物５は、２次元撮像素子４０２ｂ上に写っている場合、２次元撮像素子４０２ａ上では２次元撮像素子４０２ｂと視差Δだけ異なる位置に写っている。位置がどれくらい異なっているかを検出するために「パターンマッチング」と呼ばれる手法が用いられる。これは、対象物が一方の画像（基準画像という。ここでは２次元撮像素子４０２ｂの画像）に対して、他方の画像（比較画像という。ここでは２次元撮像素子４０２ａの画像）内のどこに存在するかを探索することであり、この探索には、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）法等の相関処理が一般的によく用いられている。
【００１５】
相関処理は、基準画像の中にあるブロック（例えば７×７画素）をテンプレートとして、比較画像上の探索範囲内でテンプレートと同サイズのウインドウ４１を動かし、テンプレートと最も相関のあるブロックを決定する処理である。この同じ画像（ブロック）を探すときは、１画素ずつずらしながら１画素、２画素・・・と順に探すため、探索画素数を大きくするほど測定できる距離は拡大する。
【００１６】
一例として、基線長Ｂ＝１００ｍｍ、レンズ焦点距離１０ｍｍ、撮像素子の画素サイズ５μｍとした場合は、上式１から計測対象物までの距離Ａと視差Δの関係は図１３に示すようになる。図１３は、計測対象物までの距離と視差との関係を示すグラフである。
【００１７】
例えば、計測対象物までの距離Ａが１３００ｍｍの場合には視差は１５４画素であり、距離が１０００ｍｍの場合には視差は２００画素であり、さらに距離が７００ｍｍの場合には視差は２８６画素となる。このように、近いものを検出する場合は視差が大きくなるため、パターンマッチングを行うときの探索を行う画素数を示す探索画素数を増やす必要がある。
【００１８】
例えば、バラ積みピッキングでは、ステレオカメラから取り込んだ画像を用いてワークの距離情報を取得し、これを認識ソフトウェアに取り込むことで各ワークがバラ積みのどの位置に、どのような向きに存在しているか認識している。そして認識ソフトウェアは、たくさんあるワークの中からどのワークがピッキングしやすいか順位付けを行い、最もピッキングしやすいワークを選んでそのワークをロボットコントローラに伝える。ロボットは、指定されたワークをピッキングする。ロボットがピッキングを終えると、再びカメラが画像を取り込み、取り込んだ画像を用いてワークの距離情報を取得し、これを認識ソフトウェアに取り込むことでピッキングが繰り返される。
【００１９】
このような過程では、ロボットは認識ソフトウェアが最もピッキングしやすいと判断したワークをピッキングしている。認識ソフトウェアが最もピッキングしやすいと判断するワークは、認識ソフトウェアがあらかじめ保持しているワークの形状データと整合する率が最も高いワークである。形状が完全に一致すれば整合率１００％である。そのため整合率が高いワークとは、ステレオカメラからワーク形状全体が見えているワーク、すなわちバラ積みの一番上にあるワークが最もピッキングしやすいと判断されるケースが確率的に高い。
【００２０】
一番上にあるワークをピッキングすると、バラ積みの高さは低くなるためワークとステレオカメラとの距離が遠くなる。距離が遠くなるとパターンマッチングを行うときに探索する画素数は少なくてすむようになっていく。以下に説明するピッキング装置の実施形態は、ピッキングが進むにしたがって探索する画素数を順次に減らしていくことにより、測距速度を高速化し、ロボットピッキングの生産性を高めている。
【００２１】
次に、添付図面を参照して、実施形態にかかるピッキング装置について説明する。図１は、実施形態にかかるピッキング装置１のハードウェア構成及びその周辺を示す図である。図１に示すように、ピッキング装置１は、ステレオカメラ２、ＰＣ（Personal  Computer）１２、ロボットコントローラ１４、及びロボット１６を有するロボットピッキング装置である。ピッキング装置１とＰＣ１２とは、例えばＬＡＮケーブル１９によって接続されている。ＰＣ１２は、ピッキング装置１を構成する各部を、プログラムを実行することによって制御する。ロボットコントローラ１４は、ＰＣ１２からの制御に応じてロボット１６の動作を制御する。ステレオカメラ２の下方には、収容器（容器）１８が配置されている。収容器１８は、上部が開口しており、内部に複数のワーク（物体）１８０が無作為にバラ積みされて収容されている。
【００２２】
ステレオカメラ２は、図１１、図１２を用いて説明したステレオカメラ４と同様の構成である。ピッキング装置１は、２つのカメラから得られた画像を用いてパターンマッチングを行い、その視差からピッキングするワーク１８０までの距離を求めることができる。
【００２３】
次に、図２を用いてステレオカメラ２の構成について詳述する。図２は、ステレオカメラ２の構成例を示す図である。２つのカメラ２０ａ、２０ｂを用いて撮影した画像は、レンズ２００ａ、２００ｂを介して２次元撮像素子２０２ａ、２０２ｂにそれぞれ写る。２次元撮像素子２０２ａ、２０２ｂ上に写った画像は、それぞれ前処理部２２ａ、２２ｂに送られて画像の歪みなどが補正される。これにより、特に画像周辺の歪みが補正されて、ピンホールカメラで撮ったような歪みのない画像に補正される。
【００２４】
視差演算部２４は、前処理部２２ａ、２２ｂが補正した２つの画像を用いて視差演算を行う。具体的には、視差演算部２４は、基準画像（ここでは２次元撮像素子２０２ｂの画像）を複数のブロック（例えば７×７画素）に分割し、その中の１つのブロックをテンプレートとして、比較画像（２次元撮像素子２０２ａの画像）上をテンプレートと同サイズのウインドウ２１（図４参照）を動かし、テンプレートと最も相関のあるブロックを決定する。
【００２５】
なお、ピッキング装置１が同じ画像（ブロック）を探すときは、１画素ずつずらしながら１画素、２画素・・・と順に探すため、遠くのものは探索画素数が小さくても見つけ出すことができるが、図４に示したように、近くのものは探索画素数を大きくしないと見つけ出すことができない。これを全てのブロックに対して探索を行い、画面全体に対してそれぞれ何画素ずれているか（＝視差Δ）を見つけ出すことにより「視差画像」を得ることができる。
【００２６】
ステレオカメラ２が前処理部２２ａ、２２ｂと視差演算部２４を有することにより、ステレオカメラ２からは「視差画像」と「輝度画像」（基準画像）が出力される。出力は、ＦＡ用カメラでは、高速でケーブル長を長くできるＧｉｇＥ（ギガビットイーサネット（登録商標））インターフェースで出力されることが多い。なお、前処理部２２ａ、２２ｂ及び視差演算部２４は、ＰＣ１２が備えていてもよい。
【００２７】
ステレオカメラ２からの出力はＬＡＮケーブル１９を介してＰＣ１２へと取り込まれる。ＰＣ１２には、認識ソフトウェア１２０がインストールされており、ワーク１８０の形状があらかじめ登録、保持されている。具体的には、ステレオカメラ２を用いてワーク１８０をいろいろな方向から撮影した複数のデータが登録されている。
【００２８】
次に、ピッキング装置１が有する機能について説明する。図３は、ピッキング装置１が有する機能を示す図である。図３に示すように、ピッキング装置１は、記憶部３０、撮像部３１、探索部３２、視差検出部３３、距離算出部３４、選定部３５及び取出部（取上げ部）３６を有する。
【００２９】
記憶部３０は、ＰＣ１２が備えるハードディスクなどによって構成され、認識ソフトウェア１２０によってワーク１８０の複数の形状情報を記憶する。撮像部３１は、ステレオカメラ２によって実現されている。
【００３０】
探索部３２、視差検出部３３、距離算出部３４、及び選定部３５が有する機能の一部又は全部は、ステレオカメラ２又はＰＣ１２の内部にハードウェア、又はＣＰＵが実行するソフトウェアとして構成される。
【００３１】
探索部３２は、ステレオ画像のうち一方を基準画像とし、他方を比較画像として、基準画像内の所定の大きさに分割されたブロック（検出対象領域）にマッチングするマッチング領域を、探索を行う画素数を示す探索画素数によって定められた比較画像上の探索範囲内で探索する機能を有する。また、探索部３２は、選定部３５が選定したワーク１８０に対して視差検出部３３が検出した視差を示す画素数に基づいて、その後に探索する場合の探索画素数を定める機能も有する。
【００３２】
視差検出部３３は、基準画像内の検出対象領域の位置、及び探索部３２が探索した比較画像内のマッチング領域の位置から、視差を検出する。距離算出部３４は、視差検出部３３が検出した視差に基づいて、撮像部３１からワーク１８０までの距離を算出する。選定部３５は、撮像部３１が撮像したステレオ画像、及び記憶部３０が記憶している形状情報に基づいて、複数のワーク１８０の中から少なくとも１つを選定する。取出部３６は、ロボット１６によって実現され、選定部３５が選定したワーク１８０を取り上げる取上げ部となっている。
【００３３】
図５は、視差画像と、登録されているワーク１８０の画像との照合による整合を示す図である。ステレオカメラ２から出力される視差画像は図５（ａ）のように単なる距離データの集まりであるが、ＰＣ１２に登録されているワーク１８０の画像（図５（ｂ））と照合するとデータの集まりの中に登録されているワーク１８０の画像とよく一致する画像（太枠）が２つあることがわかる（図５（ｃ））。
【００３４】
このように、ステレオカメラ２からの出力画像と登録された画像とを照合して、よく一致する画像を探し出し、その中でもどのワーク１８０が一番ピッキングしやすいかを見つけ出すことが認識ソフトウェア１２０の役割である。一番ピッキングしやすいワーク１８０は、登録した画像と一致する割合が高いワークとなるため、多くの場合はバラ積みされたワークの一番上、すなわちステレオカメラ２から見て一番近い距離にあるワークである。
【００３５】
図６（ａ）に示すように、登録されている画像と一番良く一致する画像（太枠）は横から見るとバラ積みの一番上にあり、ステレオカメラ２から一番近い距離にある場合が多い（図６（ｂ））。こうして認識ソフトウェア１２０が一番ピッキングしやすいワーク１８０として抽出したワーク１８０の情報は、ロボットコントローラ１４へと伝えられる。伝えられる情報は、抽出したワーク１８０の位置座標（Ｘ，Ｙ，Ｚ）、傾き方向（Ｘ軸回り、Ｙ軸回り、Ｚ軸回り）などである。ロボットコントローラ１４は、その情報を受け取ってロボット１６に抽出されたワーク１８０をピッキングするように指示を送る。
【００３６】
ロボット１６は、ロボットコントローラ１４からの指示に従ってワーク１８０をピッキングする。このとき、ロボット１６は、ワーク１８０の位置、傾きなどの情報から最もピッキングしやすいようにロボットアームの先端（ハンド部）を動かしてピッキングする。ピッキング装置１は、１つのワーク１８０をピッキングすると、再度ステレオカメラ２が撮影を行い、同様の手順で次のワーク１８０をピッキングしていく。
【００３７】
この過程において、バラ積みされたワーク１８０は、ピッキングが進むにつれて数が減っていく。ワーク１８０の数が減るに従い、ステレオカメラ２からピッキングするワーク１８０までの距離は遠ざかっていく（図７）。ステレオカメラ２からピッキングするワーク１８０までの距離が遠くなれば、図１３に示したようにステレオカメラ２で得られる視差量は小さくなる。
【００３８】
したがって、ピッキング装置１は、探索画素数を少なくしても、ワーク１８０までの距離を見つけ出すことができる。ピッキング装置１は、探索画素数が少なければ計算量が減るため、視差演算にかかる時間が短縮されて、高速に測距できるようになる。よって、ピッキング装置１は、高速にピッキングできるようになり、生産性が向上する。
【００３９】
具体的には、図１３に示した例を用いて説明すると、ステレオカメラ２とワーク１８０までの距離が８００ｍｍでは視差が２５０画素であるため、探索画素数が２５０画素以上必要である。ピッキングによりワーク１８０が減っていくと、例えばステレオカメラ２とワーク１８０との距離が１０００ｍｍとなり、その時は視差が２００画素となる。そのため、探索画素数は、２００画素以上あればよい。
【００４０】
距離が８００ｍｍから１０００ｍｍに遠ざかるにつれて、視差は２５０画素から２００画素に減っていく。必ずしもピッキングするたびに毎回探索画素数を減らす必要は無く、５回ピッキングするごとに探索画素数を減らすようなやり方でもよい。
【００４１】
少しでも探索画素数を減らして高速化を図るためには、最もステレオカメラ２に近い位置にあるワーク１８０までの視差を検出し、次回のピッキング時にはその視差量を探索できる範囲を探索画素数とすればよい。
【００４２】
図８は、ピッキング装置１が探索画素数を減らすことができる原理を示す図である。ピッキングするワーク１８０が収容器１８の中にバラ積みされた最初の状態が図８（ａ）である。このとき、初期の探索画素数はＮ（初期値）としておく。具体的には、ステレオカメラ２から収容器１８の最上部（最もステレオカメラ２に近い部分）までの距離が８００ｍｍであると設定すると、それより近い距離まで探索するようにしておく。
【００４３】
図１３に示した場合を例にすると、距離８００ｍｍの時は視差２５０画素なので、８００ｍｍより近い距離、仮に７００ｍｍまで探索するとすれば探索画素数はＮ＝２８６画素となる。これを初期探索画素数Ｎとする。ピッキング装置１は、初期探索画素数Ｎ＝２８６画素を探索して、ステレオカメラ２から最も近い距離にあるワークＡまでの視差を検出する。ワークＡまでの視差がＸＡだとすると、ＸＡ≦Ｎとなるはずである。
【００４４】
ステレオカメラ２から最も近い距離にあるワークＡ、すなわちバラ積みされたワークの一番上にあるワークＡをピッキングすると、図８（ｂ）の状態になる。ワークＡがなくなったため、次はワークＢがバラ積みされたワークの一番上になる。ワークＢはワークＡよりステレオカメラ２から遠くにあるため、ワークＢまでの視差ＸＢは、ＸＢ≦ＸＡとなるはずである。したがって、探索画素数は、ＸＡとすればよい。ＸＡ≦Ｎであるから、初期状態では探索画素数ＮであったのがＸＡに減少したことになる。これにより、視差演算量が減り、ワークＢは、ワークＡより高速に視差演算できることになる。
【００４５】
同様に、ワークＢをピッキングすると図８（ｃ）の状態になる。ワークＢがなくなったため、次はワークＣがバラ積みされたワークの一番上になる。ワークＣはワークＢよりステレオカメラ２から遠くにあるため、ワークＣまでの視差ＸＣはＸＣ≦ＸＢとなるはずである。したがって、探索画素数はＸＢとすればよい。ＸＢ≦ＸＡ≦Ｎであるから、初期状態では探索画素数ＮであったのがＸＡに減少し、さらにＸＢに減少したことになる。これにより視差演算量が減り、ワークＣはワークＢ、ワークＡより高速に視差演算できることになる。
【００４６】
このように、ピッキングするたびにバラ積みの高さが低くなってステレオカメラ２からワーク１８０までの距離が遠くなっていく。したがって、ピッキング装置１は、前回ピッキングしたときの最もステレオカメラ２に近いワーク１８０までの視差量に応じて次回の探索画素数を定めることにより、必要最低限の画素数を探索することになり、無駄な視差演算時間をなくして高速に測距、ピッキングできるようになる。
【００４７】
図１３からもわかるように、距離と視差はリニアな関係ではなく、距離が近い時は視差の変化が大きく、距離が遠い時は視差の変化が小さい。そのため、ピッキング回数が増えてステレオカメラ２と最も近いワーク１８０までの距離が遠ざかると、ピッキングで距離が変わってもステレオカメラ２から出力される視差はあまり変化しなくなる。
【００４８】
例えば図１３において、ステレオカメラ２から最も近いワーク１８０までの距離が８００ｍｍの時は、ピッキングにより最も近いワーク１８０までの距離が８５０ｍｍになると視差は２５０画素から２３５画素に減少する。ステレオカメラ２から最も近いワーク１８０までの距離が１１５０ｍｍの時は、ピッキングにより最も近いワーク１８０までの距離が１２００ｍｍになると、視差が１７４画素から１６７画素に減少する。
【００４９】
このように、距離が同じ５０ｍｍの変化をしても、距離が８００ｍｍの時は視差が１５画素減少するのに対して、距離が１２００ｍｍの時は視差が７画素しか減少しない。すなわち、距離が８００ｍｍの時は１回のピッキングで３．３ｍｍ（＝５０／１５）だけ距離が変われば、次のピッキング時には探索画素数を１画素減らすことができるが、距離が１２００ｍｍの時は１回のピッキングで７．１ｍｍ（＝５０／７）距離が変わらなければ、次のピッキング時には探索画素数を１画素減らすことはできない。
【００５０】
１回のピッキングにより変化する距離は、ステレオカメラ２からワーク１８０までの距離に関係なく平均すればほぼ同じはずである。そのため、ステレオカメラ２からワーク１８０までの距離が遠くなった場合は、前回のピッキング時よりも探索画素数を減らさなくてもよい場合が増えてくる。特に、ワーク１８０のサイズが小さい場合や、ワーク１８０が紙、書類、又は郵便物のように薄い場合、１回のピッキングでステレオカメラ２からワーク１８０までの距離の変化が少ないため、前回のピッキング時に比べて何画素減らすべきか探索画素数を設定するルーチンを省略することができる。
【００５１】
ステレオカメラ２からワーク１８０までの距離がある程度遠ざかった場合は、ピッキングするたびに毎回探索画素数を減らす検討をするのではなく、複数回ピッキングしたら探索画素数を減らす検討をするようにすればより高速にピッキングできるようになる。さらに、この複数回も距離に応じて３回ピッキングしたら探索画素数を減らす設定としたり、１０回ピッキングしたら探索画素数を減らす設定としたりすれば、より高速にピッキングできるようになる。
【００５２】
また、ピッキング装置１は、さらに探索画素数を減らして高速化を図るため、ワーク１８０が入った収容器１８の内部だけを視差演算するように構成されてもよい。例えば、収容器１８に入ったワーク１８０は、ステレオカメラ２から見ると図９（ａ）に示したように見える。ワーク１８０は、収容器１８の中にあるため、ピッキングに必要な情報は収容器１８の内側にあるワーク１８０の距離（視差）データである。したがって、ステレオカメラ２で得られた画像から収容器１８の位置を把握して、その内部の距離（視差）データを得ることができればワーク１８０をピッキングすることができる。ステレオカメラ２で撮った全画面の中から収容器１８内部の距離（視差）データだけを使えばデータ量は少なくなるため視差演算量が減って高速に測距できる。
【００５３】
ステレオカメラ２に写った画像（図９（ａ））から収容器１８の形状を検出するためには、認識ソフトウェア１２０に収容器１８の形状をあらかじめ登録しておけばよい。収容器１８をステレオカメラ２側からみた画像（黒色実線）の形状と認識ソフトウェア１２０にあらかじめ登録された形状が一致すると、例えば画面上に枠（点線）が表示される。この枠の内側にワークがあり、このワークがある領域の距離（視差）データを得ればピッキングできることになる。
【００５４】
さらに、図９（ｂ）に示すように、ステレオカメラ２と収容器１８の最上部までの距離をＬ１として、そのときの視差をＬ２とすれば、ピッキングするワーク１８０は収容器１８の内部にあるため、ステレオカメラ２からワーク１８０までの距離Ｌ３は収容器１８の最上部までの距離Ｌ１よりも大きい。したがって、視差で比べると収容器１８の最上部までの視差Ｌ２の方がワーク１８０までの視差Ｌ４よりも大きい。そのため図８で示した初期探索画素数Ｎを収容器１８の最上部までの視差Ｌ２に応じて定めれば、さらに探索画素数を減らすことが可能である。
【００５５】
また、例えば収容器１８の中のワーク１８０を全てピッキングし終えると、新しいワーク１８０が収容器１８の中に注ぎ込まれる。又は、新しい収容器１８に入った複数の新しいワーク１８０がステレオカメラ２の下方に運ばれてくる場合もある。いずれの場合も、ワーク１８０とステレオカメラ２の距離は近くなる。そのため、ピッキングするにしたがって減らしてきた探索画素数を元に戻して増やさなければならない。初期状態の探索画素数Ｎに戻してもよいし、収容器１８は固定で新しいワーク１８０が注ぎ込まれる場合は、収容器１８の最上部までの距離Ｌ１は変わらないため、探索画素数をＬ２に戻してもよい。
【００５６】
図１０は、ピッキング装置１による処理例を示すフローチャートである。ピッキング装置１がピッキングを行う場合、まずステレオカメラ２が始動する（Ｓ１００）。複数のワーク１８０が収容器１８に収容されて搬送される場合には、ワーク１８０をステレオカメラ２から撮像可能な位置に設置する（Ｓ１０２）。ピッキング装置１は、ステレオカメラ２が移動してワーク１８０を撮像するように構成されてもよい。
【００５７】
そして、ピッキング装置１は、視差演算を行う画素の範囲を設定する。初期値では全画面（例えば１２８０×９６０画素）に設定する（Ｓ１０４）。Ｓ１０４の処理は、２回目以降のピッキングでは、収容器１８の位置から視差演算する範囲を設定する。
【００５８】
ピッキング装置１は、最もカメラ２０ａ、２０ｂに近いワーク１８０までの距離が前回の処理（初回を除く）に比べて近いか遠いかを判定する（Ｓ１０６）。距離が前回の処理に比べて近い場合（Ｓ１０６：近い）には、距離に応じた探索画素数を設定する（Ｓ１０８）。距離が前回の処理に比べて遠い場合（Ｓ１０６：遠い）には、Ｓ１１０の処理に進む。すなわち、カメラ２０ａ、２０ｂからワーク１８０までの距離が遠い場合は、毎回探索画素数を設定しなくてもよい。
【００５９】
ピッキング装置１は、新たに探索画素数を設定する（Ｓ１０８）。探索画素数は、初期値では収容器１８の最上部よりカメラ２０ａ、２０ｂに近い距離に応じて設定される。Ｓ１０８の処理において、ピッキング装置１は、２回目以降のピッキングでは、バラ積みされた複数のワーク１８０のうち、最もカメラ２０ａ、２０ｂに近いワーク１８０までの視差に応じて探索画素数を設定する。
【００６０】
そして、ステレオカメラ２が撮影を行い（Ｓ１１０）、視差演算部２４が視差演算を行って視差画像を得る（Ｓ１１２）。
【００６１】
認識ソフトウェア１２０は、視差画像と、あらかじめ保有しているワーク１８０と収容器１８のデータとを照合して整合をとる（Ｓ１１４）。
【００６２】
そして、ピッキング装置１は、収容器１８の位置、カメラ２０ａ、２０ｂから収容器１８までの距離、及びバラ積みされたワーク１８０の最もカメラ２０ａ、２０ｂに近い距離を検出し（Ｓ１１６）、最もピッキングしやすいワーク１８０を選定する（１１８）。ロボット１６は、選定されたワーク１８０をロボットアームでピッキングする（Ｓ１２０）。
【００６３】
ピッキング装置１は、収容器１８の中にワーク１８０が残っているか否かを判定する（Ｓ１２２）。ピッキング装置１は、ワーク１８０が残っていると判定した場合（Ｓ１２２：有り）には、Ｓ１０４の処理に戻る。また、ピッキング装置１は、ワーク１８０が残っていないと判定した場合（Ｓ１２２：無し）には、Ｓ１２４の処理に進む。
【００６４】
そして、ピッキング装置１は、収容器１８にワーク１８０が追加されるか否かを判定する（Ｓ１２４）。ピッキング装置１は、追加のワーク１８０が有ると判定した場合（Ｓ１２４：有り）には、Ｓ１０２の処理に戻る。また、ピッキング装置１は、追加のワーク１８０が無いと判定した場合（Ｓ１２４：無し）には、処理を終了する。
【００６５】
このように、ピッキング装置１は、ワーク１８０をピッキングするに従って探索画素数を減らしていくので、視差演算にかかる時間を減らすことができ、高速なロボットピッキングを実現できる。
【００６６】
また、ピッキング装置１が実行するピッキングプログラムは、ＲＯＭ等のメモリに予め組み込まれて提供されてもよい。また、ピッキング装置１が実行するピッキングプログラムは、インストール可能な形式又は実行可能な形式のファイルにされ、ＣＤ−ＲＯＭ、又はＤＶＤ等のコンピュータで読み取り可能な記憶媒体に書き込まれたコンピュータ・プログラム・プロダクトとして提供されてもよい。
【符号の説明】
【００６７】
１  ピッキング装置
２  ステレオカメラ
１２  ＰＣ
１４  ロボットコントローラ
１６  ロボット
１８  収容器
１９  ＬＡＮケーブル
２０ａ、２０ｂ  カメラ
２２ａ、２２ｂ  前処理部
２４  視差演算部
３０  記憶部
３１  撮像部
３２  探索部
３３  視差検出部
３４  距離算出部
３５  選定部
３６  取出部
１２０  認識ソフトウェア
１８０  ワーク
２００ａ、２００ｂ  レンズ
２０２ａ、２０２ｂ  ２次元撮像素子
【先行技術文献】
【特許文献】
【００６８】
【特許文献１】特開２０１１−１３０６４号公報
【図１】
2017030115.tif 000003
【図２】
2017030115.tif 000004
【図３】
2017030115.tif 000005
【図４】
2017030115.tif 000006
【図５】
2017030115.tif 000007
【図６】
2017030115.tif 000008
【図７】
2017030115.tif 000009
【図８】
2017030115.tif 000010
【図９】
2017030115.tif 000011
【図１０】
2017030115.tif 000012
【図１１】
2017030115.tif 000013
【図１２】
2017030115.tif 000014
【図１３】
2017030115.tif 000015