本発明に係る物品認識装置の実施形態について本発明を物品搬送設備100におけるピッキング装置1に適用した場合を例に説明する。なお、以下の実施形態では、ピッキングコンベア6が容器51を搬送する際に容器51が載置される面を搬送面Pとし、当該搬送面Pにおける搬送方向に沿う方向を搬送方向WX、当該搬送面Pにおいて前記搬送方向WXと直交する方向を幅方向WY、前記搬送面Pに直交する方向を高さ方向WZとする。これらの3方向を直行座標軸としピッキングコンベヤ6の搬送面P上に設定された原点を有する座標系を「基準座標系」とし、この基準座標系における位置座標を基準座標とする。また、後述するように容器51は平面視矩形状に形成されているが、この容器51がピッキングコンベア6の搬送面Pに載置支持された状態での、容器51の第1辺が沿う方向を容器内搬送方向X、前記容器内搬送方向Xに直交する第2辺が沿う方向を容器内幅方向Y、容器内搬送方向X及び容器内幅方向Yに直交する方向を容器内高さ方向Zとする。これらの3方向を直行座標軸とし容器51の底面上に設定された原点を有する座標系を「容器内座標系」とし、この容器内座標系における位置座標を容器内座標とする。なお、本実施形態では、高さ方向WZと容器内高さ方向Zとは一致している為、総称して高さ方向Zとする。これは、本発明の高さ方向に相当する。
1.物品搬送設備
物品搬送設備100は、図1に示すように、ピッキング装置1と、ピッキングコンベア6と、バーコードリーダ7と、撮像装置8と、出庫コンベア9と、入庫コンベア10と、物品搬送コンベア11と、自動倉庫13とを備える。物品搬送設備100では、まず、どの商品(物品)を何個出庫するか等のオーダーに基づき、当該オーダーに対応する商品(物品)が収納された容器51を自動倉庫13から取り出す。そして、物品搬送設備100は、当該取り出した容器51を、出庫コンベア9及びピッキングコンベア6を介してピッキング箇所12に搬送し、ピッキング装置1により当該オーダーに対応する個数の物品50を容器51内から取り出し、当該取り出した物品50を物品搬送コンベア11に移載する。そして、オーダーに対応する個数の物品50が取り出された後の容器51は、入庫コンベア10を介して自動倉庫13へ戻される。
バーコードリーダ7は、容器51の外側面に付されているバーコード52(図4参照)を非接触(例えば、光学読み取り)で読み取るものである。本実施形態では、バーコードリーダ7は、ピッキング箇所12に設けられている。バーコード52には、容器51の固有のID情報が含まれており、バーコードリーダ7は、読み取ったバーコード52に含まれる容器51の固有のID情報を後述の上位コントローラ2に出力する。
撮像装置8は、撮像した対象物から当該撮像装置8までの距離の情報を記録することができる装置(例えばステレオカメラ)である。撮像装置8は、ピッキング箇所12に搬送されてきた容器51を上方から撮像する。本実施形態では、撮像装置8は、図4に示すように、一対のカメラ8A及び8Bを備える。カメラ8Aは、当該ピッキング箇所12の中心位置の直上であり搬送面Pからの高さが既知の位置に設けられ、ピッキング箇所12全体を平面的に撮像する。他方のカメラ8Bは、ピッキング箇所12の中心位置とは少しずれた位置の上方に設けられ、斜め上方からピッキング箇所12全体を撮像する。本例では、カメラ8Bは、中心位置から搬送方向WXにおける上流側にずれた位置の上方に設けられる。そして、撮像装置8は、カメラ8Aで撮像した画像における各画素においてのカメラ8Aからの距離情報を、カメラ8A及びカメラ8Bの視差に基づいて算出して、各画素がカメラ8Aからの距離情報を有する撮像画像を生成する。なお、当該撮像画像が、本発明の基本画像に相当する。
出庫コンベア9は、自動倉庫13の収納棚(図示せず)からスタッカークレーン13Bを介して搬送されてきた容器51を、ピッキングコンベア6へ搬送する。
ピッキングコンベア6は、出庫コンベア9から搬送されてきた容器51をピッキング箇所12に搬送し、ピッキング処理が終わると当該容器51を入庫コンベア10に搬送する。また、ピッキングコンベア6には、搬送方向WXにおける一部の領域(本例では中央付近)に幅方向WY全体に亘ってピッキング箇所12が設定されている。ピッキング箇所12は、ピッキング装置1により容器51から物品50を取り出す場所である。なお、本発明に係る物品認識装置3は、この容器51から物品50を取り出す場面で、取り出し対象となる物品50の位置を認識する為に用いられる。本実施形態では、ピッキングコンベア6は、ピッキング箇所12に容器51を搬送する際に、当該ピッキング箇所12の中心位置と、容器51の底面の中心位置とが一致するように搬送する。そして、この当該ピッキング箇所12の中心位置に、容器51の底面の中心位置を一致させるように合わせた位置が基本画像の撮像位置である。また、ピッキングコンベア6は、後述のリトライ制御部23からのリトライ動作指令に基づき、ピッキング箇所12に存在する容器51を搬送方向WXに沿って水平移動させるように搬送面Pを作動する。なお、本実施形態におけるピッキングコンベア6が、本発明の移動部に相当する。
入庫コンベア10は、ピッキングコンベア6から搬送されてきた物品50の取り出し済みの容器51を自動倉庫13へ搬送する。自動倉庫13へ搬送された容器51は、スタッカークレーン等を介して収納棚へ再入庫される。自動倉庫13は、容器51を収納可能な収納棚を複数有するラック13Aと、スタッカークレーン13Bとを有する。物品搬送コンベア11は、ピッキング装置1によって容器51から取り出された物品50を、集品コンベア(図示せず)へ搬送する。当該集品コンベアへ搬送された物品50は出荷される。
ここで、容器51は、容器内部を撮像装置8にて撮像可能なように上面が開放された直方体形状に構成されている。例えば、容器51は、トレーや上面を取り除いた段ボール箱等である。また、容器51は、図4に示すように、容器内搬送方向X、容器内幅方向Y及び高さ方向Zの各方向に複数の物品50を積層して収容することが可能である。具体的には、図5及び図7に示すように、容器51は、物品上面が同一の高さに属するように配置された同一形状の複数の物品50により形成される物品層を、高さ方向Zに積層した状態で収容している。本実施形態では、図5及び図7に示すように、ピッキング箇所12に搬送されてきた容器51として、容器内搬送方向Xに4個及び容器内幅方向Yに3個ずつ配置された計12個の物品50から成る物品層が、高さ方向Zに2層積層され、さらにその上に3個の物品50が不揃いな状態で積層されている例を用いて説明する。なお、本実施形態では、直方体形状の容器51を用いているが立方体形状の容器51であってもよい。
1つの容器51に収容される物品50は、全て同一形状の直方体形状に構成されている。なお、物品50は、全て同一形状の立方体形状に構成されていてもよい。また、本実施形態では、物品50の3辺の寸法は、図4に示すように、H1、W1、L1であり、これらの寸法情報は、物品情報データベース4(後述)に予め格納されている。なお、物品50の各辺の長さの関係は、H1<W1<L1である。
2.ピッキング装置
ピッキング装置1は、上位コントローラ2と物品認識装置3とピッキングロボット5とを備え、上位コントローラ2と物品認識装置3とは情報伝達可能に接続される。また、上位コントローラ2とピッキングロボット5とが情報伝達可能に接続される。ピッキング装置1では、まず、上位コントローラ2が、センサ等(図示せず)にて、ピッキング箇所12に容器51が存在することを検知すると、物品認識装置3に物品探索指令を出力する。物品認識装置3は、当該物品探索指令に応じて、物品50のピッキング箇所12における物品上面の3次元位置及び平面視姿勢を認識する処理を実行し、当該認識結果情報を上位コントローラ2に出力する。上位コントローラ2は、当該認識結果情報及び後述の物品情報データベース4から取得した容器情報を、動作指令と併せてピッキングロボット5に出力する。なお、動作指令と併せて出力される付帯情報を動作指令情報という。つまり、動作指令情報には、認識結果情報及び容器情報が含まれる。
ピッキングロボット5は、図3に示すように、ハンド部14と吸着ノズル15と制御部(図示せず)とを備える。ハンド部14は、ピッキングロボット5の本体部(図示せず)から延びるアームの先端部に、当該アームに対して回転可能に設けられている。ハンド部14の下面には、ハンド部14の下方空間において伸縮可能な吸着ノズル15が複数本設けられている。吸着ノズル15は、物品認識装置3により認識された物品上面まで伸びて、当該物品上面を吸着した状態で上方に向けて縮むことにより物品50を容器51から取り出す。制御部は、上位コントローラ2のロボット制御部24から動作指令及び動作指令情報(認識結果情報及び容器情報)を受けて、当該ロボット制御部24から取得した認識結果情報に含まれる容器位置情報と物品上面の3次元位置及び平面視姿勢との情報から、基準座標系における物品上面の3次元位置を及び平面視姿勢を算出する。そして、制御部は、これに基づき、容器51内へのハンド部14の進入角度及び使用する吸着ノズル15を決定する。なお、ピッキングロボット5は、基準座標系の位置座標に基づいて動作する。そして、制御部は、当該決定した吸着ノズル15で認識対象の物品50を吸着して当該物品50を取り出し、アームを移動させて当該取り出した物品50を物品搬送コンベア11へ移載する。以下では、上位コントローラ2及び物品認識装置3の各構成の詳細な説明をする。
2−1.上位コントローラ
上位コントローラ2は、物品情報取得部21と、容器情報取得部22と、リトライ制御部23と、ロボット制御部24とを備える。上位コントローラ2は、ピッキングロボット5及び物品認識装置3以外にも、別に設けられた物品情報データベース4、ピッキングコンベア6、及びバーコードリーダ7との間でも情報伝達可能に接続されている。
ここで、物品情報データベース4は、別の装置(図示せず)でマスター登録された各容器51の3辺の寸法情報を、当該各容器51に割り振られたID情報と対応づけて、マスター容器情報として格納している。なお、マスター容器情報には、容器50に収容されている物品50のID情報及び各容器51内の物品50の在庫数の情報が、容器のID情報と対応づけられて含まれている。
また、物品情報データベース4は、別の装置(図示せず)でマスター登録された複数種の物品50の夫々の寸法情報及びテンプレート画像を、各物品50のID情報と対応づけてマスター物品情報として格納している。物品50の寸法情報は、当該物品50の1つの頂点から延びる3辺の各辺の寸法を示す情報である。テンプレート画像は、後述のパターンマッチング処理で物品存在領域Mを検出する際の雛形となる画像である。本実施形態におけるマスター物品情報に含まれるテンプレート画像は、物品50の6個の矩形面のうちの一部の矩形面の画像に対応する。具体的には、図10における破線で囲まれた領域で示すように、別の撮像装置(図示せず)によって物品50の6個の矩形面のうちの2個の矩形面がそれぞれ撮像され、当該撮像画像に基づく矩形面の画像がテンプレート画像P1及びP2として予めマスター登録されている。その際、各テンプレート画像のサイズや分解能も併せて登録されている。なお、当該テンプレート画像として登録される数は、5個以下であればよく、物品50の6個の矩形面のうちの1個、3個若しくは4個の矩形面の画像に対応するテンプレート画像が予めマスター登録されていてもよい。また、本実施形態では、物品50の矩形面のいずれの面を上面とした姿勢で容器51内に収納されるかの予定収納姿勢が、容器51毎に予め決められてマスター登録され、マスター物品情報には、当該マスター登録された予定収納姿勢が容器51のID情報に対応づけられて含まれている。本実施形態では、図4に示すように、長さH1の辺が高さ方向に沿う姿勢で、かつ、商品名「○○○」が表示されている面が上面となる姿勢が予定収納姿勢として登録されている。また、マスター物品情報に含まれるテンプレート画像の一つは、当該物品50の予定収納姿勢において上面となる矩形面の模様に対応する画像であり、本実施形態では、図10に示すように、商品名「○○○」が表示されているテンプレート画像P2である。
容器情報取得部22は、物品情報データベース4のマスター容器情報から、ピッキング箇所12に存在する容器51の固有の容器情報を取得する機能部である。具体的には、容器情報取得部22は、ピッキング箇所12に容器51が存在することを検知すると、バーコードリーダ7から容器51のID情報を取得する。そして、容器情報取得部22は、物品情報データベース4に格納されているマスター容器情報から、当該ID情報に対応づけられている容器51の容器情報(容器51の寸法情報)を取得する。そして、容器情報取得部22は、当該取得した容器情報を動作指令情報としてロボット制御部24に出力する。
物品情報取得部21は、物品情報データベース4のマスター物品情報から、ピッキング箇所12に存在する容器51に収容されている物品50の物品情報を取得する機能部である。具体的には、物品情報取得部21は、容器情報取得部22が容器情報を取得する際に、物品情報データベース4に格納されているマスター物品情報から、前記容器51のID情報に対応づけられている物品50の物品情報(物品50の寸法情報及びテンプレート画像)を取得する。そして、物品情報取得部21は、当該取得した物品情報を物品認識装置3に出力する。
リトライ制御部23は、物品存在領域Mを検出できなかった場合に、容器51を、基本画像の撮像位置から予め設定した量だけ水平移動させるようにピッキングコンベア6を制御する機能部である。本実施形態では、リトライ制御部23は、物品認識装置3からの出力結果に基づいて、ピッキングコンベア6を制御する。具体的には、リトライ制御部23は、単一高さ画像生成部36(後述)からいずれの単一高さ画像にも物品探索領域が存在しないと判別した旨の情報を受けた場合、エッジ検出処理部39(後述)から物品探索範囲として設定されたいずれの単一高さ画像にも物品存在領域Mを検出できなかった旨の情報を受けた場合、及びチェック処理部45からエラー出力がされた場合に機能する。また、本実施形態におけるリトライ制御部23は、物品認識装置3から出力結果を受けると、まず、当該容器51がピッキング箇所12に搬送されてから、ピッキングコンベア6にリトライ動作指令を出力した回数を算出する。リトライ制御部23は、リトライ動作指令の出力回数を0回と判別した場合には、容器51を、基本画像の撮像位置から搬送方向WXの下流側に向かって予め設定した第1リトライ用設定量(本例では75mm)だけ水平移動させるようにピッキングコンベア6にリトライ動作指令を出力する。そして、リトライ制御部23は、ピッキングコンベア6から水平移動が完了した旨の情報を取得すると、物品認識装置3に物品探索指令を出力し、当該物品認識装置3において再処理が実行される。また、リトライ制御部23が、リトライ動作指令の出力回数を1回と判別した場合には、容器51が既に撮像位置から搬送方向WXの下流側に予め設定した量(75mm)だけ水平移動された状態である。よって、リトライ制御部23は、撮像位置に対して搬送方向WXの下流側に第1リトライ用設定量(75mm)ずれた位置から、撮像位置に対して搬送方向WXの上流側に第1リトライ用設定量(75mm)ずれた位置まで容器51を水平移動させるようにピッキングコンベア6を制御する。すなわち、リトライ制御部23は、撮像位置に対して搬送方向WXの下流側に第1リトライ用設定量(75mm)ずれた位置から、搬送方向WXの上流側に予め設定した第2リトライ用設定量(本例では150mm)だけ水平移動させるようにピッキングコンベア6にリトライ動作指令を出力する。そして、リトライ制御部23は、ピッキングコンベア6から水平移動が完了した旨の情報を取得すると、ロボット制御部24を介して、物品認識装置3に物品探索指令を出力し、当該物品認識装置3において再々処理が実行される。また、リトライ制御部23は、リトライ動作指令の出力回数を2回と判別した場合には、ピッキングコンベア6に対してリセット指示を出力し、ピッキングコンベア6は、容器51を元の撮像位置に水平移動させる。なお、本実施形態の物品認識装置3と上位コントローラ2(リトライ制御部23)とピッキングコンベア6とが本発明の物品認識設備に相当する。
ロボット制御部24は、ピッキングロボット5を制御する機能部である。本実施形態では、ロボット制御部24は、センサ等でピッキング箇所12に容器51が搬送されてきたことを検知すると、物品認識装置3に対して物品探索指令を出力するとともに、容器情報取得部22で取得した容器情報、及び、物品情報取得部21で取得した物品情報、を物品認識装置3に対して出力する。また、ロボット制御部24は、物品認識装置3から出力された認識結果情報を取得すると、ピッキングロボット5の制御部に対して動作指令を出力するとともに、動作指令情報も併せて出力する。なお、認識結果情報は、容器姿勢・位置判別部33から出力される容器位置情報及び物品位置特定部41から出力される物品上面の3次元位置及び平面視姿勢の情報である。
2−2.物品認識装置
物品認識装置3は、物品上面の3次元位置及び当該物品上面の平面視での配置状態である平面視姿勢を認識する装置である。物品認識装置3は、画像取得部31と、容器外形検出部32と、容器姿勢・位置判別部33と、物品探索範囲設定部34と、物品探索処理部37と、記憶部40と、物品位置特定部41と、情報取得部44と、チェック処理部45とを備える。そして、本実施形態の物品認識装置3は、容器51内において最上面となり得る面の高さを予測して、その高さの高さ情報を有する画素のみから単一高さ画像を生成し、当該単一高さ画像内に、物品50の矩形面とマッチングする領域が検出できれば、当該高さに最上面となり得る物品上面が存在することを認識できるという技術的思想に基づくものである。物品認識装置3は、CPU等の演算処理装置を中核部材として備え、入力されたデータに対して種々の処理を行うための機能部として、ハードウェア又はソフトウェア(プログラム)或いはその両方により実装されて構成されている。
画像取得部31は、撮像装置8から撮像画像を取得する機能部である。本実施形態では、画像取得部31は、上位コントローラ2より物品探索指令を受けると、撮像装置8に対して撮像指示を出力し、当該撮像指示に基づいて撮像された撮像画像(基本画像)を撮像装置8から取得する。また、当該基本画像が撮像装置8(カメラ8A)から撮像された物品上面までの距離情報を含んでいる為、画像取得部31は、当該距離情報と既知である撮像装置8(カメラ8A)の搬送面P(容器底面)からの高さとから、当該基本画像における各画素について、当該各画素に対応する位置での物品上面の容器底面からの高さを示す高さ情報を取得して、各画素が容器底面からの高さ情報を有する基本画像を生成する。そして、画像取得部31は、当該生成した各画素が容器底面からの高さ情報を有する基本画像を記憶部40に記憶させる。また、画像取得部31は、容器外形検出部32に対して容器検出処理を実行するよう指令する。なお、基本画像の一例を図5に示す。
情報取得部44は、上位コントローラ2から出力された、ピッキング箇所12に存在している容器51の容器情報及び当該容器51内に収納されている物品50の物品情報を取得する機能部である。本実施形態では、情報取得部44は、当該取得した容器情報及び物品情報を記憶部40に記憶させる。なお、前記物品情報には、物品50のテンプレート画像及び物品50の寸法情報が含まれている為、情報取得部44が本発明の情報取得部に相当する。
容器外形検出部32は、基本画像内に容器51の外形が含まれるか否かを検出する機能部である。具体的には、容器外形検出部32は、まず、基本画像内におけるピッキング箇所12の搬送面Pの色と容器51の色とのコントラスト差から容器外形を抽出する。また、容器外形検出部32は、記憶部40から、容器情報に含まれる容器51の寸法情報、特に容器51を搬送面Pに載置した状態で搬送方向WXに沿う方向の寸法と幅方向WYに沿う方向の寸法情報とを取得する。容器外形検出部32は、当該抽出した容器外形と、当該取得した容器51の寸法情報とを比較して、予め定められた許容範囲内で一致していると判別する場合には、容器外形であると認識する。そして、容器外形検出部32は、容器姿勢・位置判別部33に対して、容器51の平面視姿勢及び平面位置を特定するよう指令するとともに、物品探索範囲設定部34に対して物品探索範囲を設定するよう指令する。なお、容器外形検出部32は、当該抽出した容器外形が、容器51の寸法情報と予め定められた許容範囲内で一致しない場合には、容器検出エラーのエラー報告を上位コントローラ2へ出力する。エラー報告を受信した上位コントローラ2は、物品認識装置3に対してリセット指示を出力する。これにより、記憶部40に記憶された画像取得部31により取得された撮像画像や情報取得部44により取得された容器情報及び物品情報が消去される。
容器姿勢・位置判別部33は、基本画像内における容器51の平面視姿勢を判別するとともに、平面位置を特定する機能部である。ここで、基本画像は、図5に示すように、ピッキング箇所12の領域と対応している。本実施形態では、ピッキング箇所12の搬送方向WXにおける下流側で幅方向WYにおける物品搬送コンベア11側の隅と、基本画像の左下の隅(図5の紙面左側)とが対応している。そして、この位置を原点WOとして、基本画像の搬送方向WX方向に沿う方向にWX軸、幅方向WYに沿う方向にWY軸をとり、当該座標系を画像座標系とする。なお、本実施形態では、当該画像座標系はピッキングロボット5の制御で用いられる基準座標系と各座標軸の方向が一致している。本実施形態では、容器姿勢・位置判別部33は、容器外形検出部32から指令を受けると、図5に示すように、基本画像中における容器51の4隅(51A,51B,51C,51D)の画像座標(WX,WY)をそれぞれ算出する。また、容器姿勢・位置判別部33は、基本画像に対する容器51の傾きを示す容器回転角を算出する。そして、容器姿勢・位置判別部33は、算出した容器51の画像座標(WX,WY)と容器回転角とを容器位置情報として上位コントローラ2のロボット制御部24へ出力する。
物品探索範囲設定部34は、基本画像内において認識対象である物品50の上面を探索する際に、当該探索処理を実行する範囲である物品探索範囲を設定する機能部である。本実施形態では、物品探索範囲設定部34は、仮想基準面設定部35と単一高さ画像生成部36とを備える。そして、物品探索範囲設定部34は、容器51内で最上面となり得る面(最上面となる物品上面が存在し得る面)を判別して、当該最上面となり得る面の高さ情報を有する画素から単一高さ画像を生成し、物品探索処理部37での探索の対象となる物品探索範囲を、基本画像全体から当該高さ画像に絞り込む処理を行う。これにより、物品探索範囲を狭めることができ、物品認識装置3の処理負担を低減できる。また、ピッキングロボット5は、上方から吸着ノズル15により物品50の上面を吸着してピッキングする。その際に、容器51内の底面側の物品50を先にピッキングしようとすると、最上面側の物品50をハンド部14等によって破損してしまう恐れがある。これを抑制する為に、本実施形態では、容器51内で最上面となる面に物品上面が属する物品50から優先的に物品認識処理を実行し、ピッキングする。
仮想基準面設定部35は、容器51内で最上面となり得る面に物品上面を有する物品50が載置されていると考えられる面、すなわち当該物品50の底面が属すると考えられる面を仮想基準面及び仮想基準下面として設定する機能部である。本実施形態では、仮想基準面設定部35は、図5及び図7に示すように、容器51を上方から見た際に、平面視で容器51内において一番広い平面が属する高さ、すなわち、当該基本画像内において同一の高さ情報を有する画素が最も多く含まれる高さを基準高さHとし、当該基準高さHの高さ情報を有する画素群により形成される平面を仮想基準面Sとして設定する。具体的には、仮想基準面設定部35は、容器外形検出部32からの指令に基づき、記憶部40から基本画像を取得する。仮想基準面設定部35は、当該基本画像に基づいて、図8に示すように、縦軸に画素の出現率(画素数)、横軸に画素値(各画素が有する高さ)をとったヒストグラムを生成する。そして、仮想基準面設定部35は、当該ヒストグラムを谷で分割した際に最も面積が大きい山を判別し(図8の紙面左側の山)、その山の中で一番出現率が大きい画素値が有する高さ(図8の紙面左側から3番目のヒストグラムの画素値)を基準高さHとする。また、当該ヒストグラムは、横軸の刻み幅を1mmで作成している。そこで、基準高さHの高さ情報を有する画素群には、基準高さHの高さ情報を有する画素のみでなく、基準高さHから予め定められた許容範囲内(例えば、±1mm程度ずれた高さ)の高さ情報を有する画素を含む構成、すなわち、図8の紙面左側の山において出現率がピークとなるヒストグラムの両側(図8の紙面左側の2番目と4番目)のヒストグラムの画素値も基準高さHの画素値であるとしてもよい。本実施形態では、図5及び図7に示すように、高さ方向Zに積層された2層目の物品50の物品上面から形成される平面が一番広い平面領域を有しており、当該平面が基本画像内における仮想基準面Sに対応する。そして、当該仮想基準面Sに底面が属している物品50(3層目の物品)の物品上面が、容器51内における最上面となる。なお、この仮想基準面Sに底面が属している物品50(3層目の物品)が本発明のベース上段物品に相当する。
ところで、物品上面の高さを算出する方法として、上述のヒストグラムを用いる方法で直接的に算出する方法も考えられる。当該ヒストグラムで算出される物品上面の高さは、仮想基準面よりも高い位置にある図8の紙面右側で示される山に相当する。しかし、当該図8の紙面右側で示される山では、指標となる画素数(出現率)が少なく、画素値(高さ)が幅を有する(図8の例では3mm)為、実際の物品上面の高さとヒストグラムで算出される高さとでは誤差(図8例では2mm)が生じる可能性が高い。そこで、本願では、指標となる画素数が一番多い、すなわち、出現率がピークであり実際の高さとの誤差が少ないと考えられる面に仮想基準面を設定し、当該仮想基準面上に物品が存在する場合を仮定して、当該仮想基準面の基準高さHと既知である物品の3辺の寸法情報とから3つの異なる各仮定の収納姿勢における物品上面の高さを推測し、その高さに物品上面に対応する物品存在領域が存在することを検出できれば、実際の物品上面の高さとする方法を用いている。これにより、より正確な物品上面の高さを算出することができる。
また、本実施形態では、図5及び図7に示すように、仮想基準面S上に不揃いな状態で3つの物品50(3層目の物品)が積層されている例を用いて説明しているが、仮想基準面S上に物品50(図6の紙面左側の物品)が存在しない場合もあり得る。例えば、図6の概念図において、紙面左側で示した仮想基準面S上の物品50が存在しないとしたとき、紙面右側で示すように、一段下の2層目の物品50の各収納姿勢における上面が容器51内の最上面となり得る。具体的には、2層目の物品50がすべて長さH1の辺が高さ方向に沿った収納姿勢(正立姿勢)で収納されており、2層目の物品50の上に3層目の物品50が載っていない場合には、最上面は仮想基準面Sとなる。また、当該2層目の物品50群に、横転等によって長さL1の辺が高さ方向に沿った収納姿勢(横転ロング姿勢)の物品50が含まれている場合には、H1<L1の為、当該横転ロング姿勢の物品50の物品上面が最上面となる。また、当該2層目の物品50群に、長さW1の辺が高さ方向に沿った姿勢(横転ショート姿勢)の物品50が含まれ、横転ロング姿勢の物品50が含まれない場合には、H1<W1の為、当該横転ショート姿勢の物品50の物品上面が最上面となる。そこで、仮想基準面設定部35は、物品上面が仮想基準面Sに属する物品であるベース段物品(本例では2層目の物品)の底面が属する面を仮想基準下面SSとしてさらに設定する。具体的には、仮想基準面設定部35は、仮想基準面Sの基準高さHから、記憶部40から取得した物品情報に含まれる正立姿勢である物品50の高さH1を引いた高さ「H−H1」の高さ情報を有する画素群により形成される平面を仮想基準下面SSとして設定する。また、仮想基準面設定部35は、設定した仮想基準面S及び仮想基準下面SSの情報を記憶部40に記憶させる。
単一高さ画像生成部36は、仮想基準面設定部35により設定された仮想基準面Sに底面が属する物品50であるベース上段物品(3層目の物品)が存在すると仮定した場合に、当該物品50の収納姿勢として仮定される3つの異なる仮定収納姿勢のそれぞれについて、当該仮定収納姿勢において上面となる面の容器底面からの論理高さを算出し、当該論理高さと同一の高さ情報を有する画素を基本画像から抽出して単一高さ画像を生成する。本実施形態では、物品50の仮定収納姿勢として、図6の紙面左側に示すように、仮想基準面S上での正立姿勢SC、横転ロング姿勢SA、横転ショート姿勢SBの3つが考えられる。そこで、単一高さ画像生成部36は、記憶部40から取得した物品50の寸法情報と仮想基準面Sの基準高さHとに基づいて、各仮定収納姿勢において上面となる面の容器底面からの論理高さを算出する。具体的には、単一高さ画像生成部36は、図6の紙面左側に示すように、正立姿勢SCの場合には「H+H1」、横転ロング姿勢SAの場合には「H+L1」、横転ショート姿勢SBの場合には「H+W1」と算出する。そして、仮想基準面設定部35は、これらの算出した各論理高さの高さ情報を有する画素のうち容器51の内側領域に存在する画素を前記基本画像から抽出して、それぞれの高さの高さ画像を生成する。
単一高さ画像生成部36は、さらに、仮想基準下面SS上でのベース段物品(2層目の物品)の収納姿勢として仮定される3つの新たな仮定収納姿勢のそれぞれについて、当該新たな仮定収納姿勢において上面となる面の容器底面からの論理高さを算出し、当該論理高さと同一の高さ情報を有する画素を基本画像から抽出して3つの新たな単一高さ画像を生成する。本実施形態では、図6の紙面右側に示すように、3つの新たな仮定収納姿勢として、仮想基準下面SS上での正立姿勢SSC、横転ロング姿勢SSA、横転ショートSSB姿勢が考えられる。単一高さ画像生成部36は、記憶部40から取得した物品50の寸法情報と仮想基準下面SSの高さ「H−H1」とに基づいて、各仮定収納姿勢において上面となる面の容器底面からの論理高さを算出する。具体的には、単一高さ画像生成部36は、図6紙面右側に示すように、正立姿勢SSCの場合には「H」、横転ロング姿勢SSAの場合には「H−H1+L1」、横転ショート姿勢SSBの場合には「H−H1+W1」と算出する。そして、仮想基準面設定部35は、これらの算出した各高さの高さ情報を有する画素のうち容器51の内側領域に存在する画素を前記基本画像から抽出して、それぞれの高さの高さ画像を生成する。
そして、単一高さ画像生成部36は、生成したこれらの6つの仮定収納姿勢の上面に対応する単一高さ画像のそれぞれについて、2値化処理を行い、物品50の上面に対応する領域(物品探索領域)が存在するか否かを判別する。例えば、ベース上段物品が一つも存在しない場合、すなわち、仮想基準面S上に物品50が存在しない場合には、これらの仮想基準面S上での正立姿勢SC、横転ロング姿勢SA、横転ショート姿勢SBの3つの仮定収納姿勢に対応する単一高さ画像には、物品50の上面に対応する領域が存在しない。よって、単一高さ画像生成部36は、これらの単一高さ画像には物品探索領域は存在しないと判別する。一方、例えば、仮想基準下面SS上に横転ロング姿勢SSAのベース段物品が存在する場合には、仮想基準下面SS上での横転ロング姿勢SSAに対応する単一高さ画像には、物品50の上面に対応する領域が存在する。よって、単一高さ画像生成部36は、仮想基準下面SS上での横転ロング姿勢SSAに対応する単一高さ画像には、物品探索領域が存在すると判別する。なお、ここにおける、当該物品探索領域が存在するとは、予め定められたある一定範囲以上の連続した領域が存在することをいい、本例では、物品50の各収納姿勢に対応する単一高さ画像中に、当該対応する仮定収納姿勢において上面となる矩形面の表面積以上の連続した領域が含まれる場合に物品探索領域が存在するとする。なお、当該矩形面の面積×予め定められた閾値%(例えば、90%)以上の連続した領域である場合に物品探索領域が存在するとしてもよい。
また、本実施形態では、単一高さ画像生成部36は、前記物品探索領域が存在すると判別した単一高さ画像については、有効な単一高さ画像であるとして、カラー画像に変換し、物品探索範囲として記憶部40に記憶させる。そして、単一高さ画像生成部36は、6つの仮定収納姿勢に対応する単一高さ画像すべてに対して、同様の物品探索領域が存在するか否かの判別処理を実行し、当該判別処理が終了すると、有効な単一高さ画像が見つかった場合には、物品探索処理部37に物品探索処理を実行するよう指令する。一方、単一高さ画像生成部36は、6つの仮定収納姿勢に対応する6つの単一高さ画像のいずれにも物品探索領域が存在しないと判別する場合には、上位コントローラ2へその旨の情報を出力する。そして、上位コントローラ2のリトライ制御部23がリトライ処理を実行する。図7の例では、正立姿勢のベース上段物品及び正立姿勢のベース段物品が存在している為、単一高さ画像生成部36は、「H」及び「H1+H」の高さの単一高さ画像において物品探索領域が存在すると判別し、当該「H」及び「H1+H」の高さの単一高さ画像を物品探索範囲として設定し、記憶部40に記憶する。
物品探索処理部37は、基本画像に対して、テンプレート画像を用いてパターンマッチング処理を実行し、当該パターンマッチング処理において物品存在領域M(後述)を検出できない場合にエッジ検出処理を実行する機能部である。物品探索処理部37は、パターンマッチング処理部38とエッジ検出処理部39とを備える。
パターンマッチング処理部38は、物品探索範囲設定部34にて物品探索範囲として設定された単一高さ画像内に含まれる、テンプレート画像との一致度が予め定められた閾値以上である領域を物品存在領域Mとして検出する機能部である。また、本実施形態では、パターンマッチング処理部38は、単一高さ画像生成部36により生成された仮定収納姿勢に応じた有効な単一高さ画像のうち、高さが高いものから順に、パターンマッチング処理及びエッジ検出処理を実行する。具体的には、パターンマッチング処理部38は、まず、ベース上段物品の3つの仮定収納姿勢の中で、一番高い上面を有する仮定収納姿勢(本例では横転ロング姿勢)をSA姿勢とし、二番目に高い上面を有する仮定収納姿勢(本例では横転ショート姿勢)をSB姿勢、一番高さの低い上面を有する仮定収納姿勢(本例では正立姿勢)をSC姿勢とし、同様に、ベース段物品の3つの仮定収納姿勢についても物品上面が高い順にSSA姿勢、SSB姿勢、SSC姿勢として、これらの仮定収納姿勢とそれに対応する単一高さ画像とを対応づけて記憶部40に記憶させる。なお、その際に、パターンマッチング処理部38は、各姿勢において物品50の上面となる矩形面の寸法情報や縦横比も各姿勢に対応づけて記憶させる。そして、パターンマッチング処理部38は、SA姿勢、SB姿勢、SC姿勢、SSA姿勢、SSB姿勢、SSC姿勢に対応する高さの高い単一高さ画像の順に、パターンマッチング処理を実行する。図7の例では、SA姿勢、SB姿勢、SSA姿勢、SSB姿勢に対応する単一高さ画像が記憶部40には記憶されていない為、これらの姿勢については対応づけられる単一高さ画像が存在せず、単一高さ画像は対応づけられない。一方、SC姿勢及びSSC姿勢については、対応する単一高さ画像(「H」及び「H1+H」の単一高さ画像)が記憶部40に記憶されている為、これらの単一高さ画像については、各姿勢(SC姿勢及びSSC姿勢)、当該各姿勢において物品50の上面となる矩形面の寸法情報(L1×W1)、及び縦横比(W1:L1)等が対応づけられて再度記憶部40に記憶される。そして、パターンマッチング処理部38は、高さの大きいSC姿勢の単一高さ画像(「H1+H」の単一高さ画像)から先にパターンマッチング処理を実行する。なお、パターンマッチング処理部38は、対応する単一高さ画像が有効でない仮定収納姿勢(SA姿勢、SB姿勢、SSA姿勢、SSB姿勢)については、記憶部40に当該仮定収納姿勢に対応する単一高さ画像が保存されていない為、パターンマッチング処理を実行しない。
パターンマッチング処理部38は、物品探索範囲設定部34より物品探索処理の実行指令を受けると、記憶部40から、物品情報に含まれる一のテンプレート画像を探索テンプレートとして取得するとともに、物品探索範囲として設定された単一高さ画像のうちの一番高さの高い単一高さ画像情報を取得する。そして、パターンマッチング処理部38は、まず、探索テンプレートの寸法と当該取得した単一高さ画像に対応する仮定収納姿勢において上面となる矩形面(以下、単に仮定収納姿勢の上面)の寸法とが一致するか及び相似関係であるかを検出する。当該仮定収納姿勢の上面の寸法が一致するとともに相似関係である場合には、パターンマッチング処理部38は、当該単一高さ画像のカラー画像に探索テンプレートをマッチングさせていく。また、当該カラー画像の分解能と探索テンプレートの分解能とが異なる場合には、これらの分解能から算出した倍率で当該カラー画像を拡大し、当該拡大したカラー画像に探索テンプレートをマッチングさせていく。そして、パターンマッチング処理部38は、当該カラー画像中に、探索テンプレートの画像と一致度が予め定められた閾値以上(例えば、探索テンプレートを構成する画素数の80%以上)である領域を検出すると、当該検出した領域を物品存在領域Mとして記憶部40に記憶させるとともに、物品位置特定部41に動作指令を出力する。なお、その際に、パターンマッチング法で検出した旨、当該検出した際の物品探索範囲である単一高さ画像に対応する仮定収納姿勢の情報、及び当該仮定収納姿勢の物品50が属する段(ベース段若しくはベース上段)(以下、検出段)も併せて記憶させる。一方、パターンマッチング処理部38は、探索テンプレートと仮定収納姿勢の上面との寸法が一致しない場合や相似関係でない場合、若しくは、当該探索テンプレートの画像と一致度が予め定められた閾値以上である領域を検出できなかった場合には、物品情報に含まれる他のテンプレート画像を探索テンプレートとして記憶部40から取得し、再度、上記同様の処理を実行する。そして、物品情報に含まれる全てのテンプレート画像を用いてマッチング処理を実行しても物品存在領域Mを検出できなかった場合には、エッジ検出処理部39に動作指令を出力する。また、探索テンプレートの寸法は、マスター登録時の画像サイズと分解能とから算出することができる。なお、本実施形態のテンプレート画像は、カラー画像であり、かつ、各矩形面に施された模様も含んでいる。
また、エッジ検出処理部39から、再度パターンマッチング処理を実行する旨の動作指令があると、パターンマッチング処理部38は、記憶部40に格納されている他の物品探索範囲として設定された単一高さ画像のうち、二番目に高さの高い単一高さ画像情報を取得して、当該新たに取得した単一高さ画像について、上述した処理と同様のパターンマッチング処理を実行する。
図7〜図10の例を用いて説明すると、ベース上段物品の正立姿勢(SC姿勢)における物品上面に対応する単一高さ画像T1が、記憶部40に記憶されている単一高さ画像のうち一番高さの高い単一高さ画像(「H+H1」の高さ画像)である。よって、パターンマッチング処理部38は、当該単一高さ画像T1の情報及び探索テンプレートとしてテンプレート画像の一つであるテンプレート画像P1を記憶部40から取得する。しかし、当該テンプレート画像P1とSC姿勢における物品上面の矩形とは、相似関係でもなく、寸法も異なる。そこで、パターンマッチング処理部38は、単一高さ画像T1においてテンプレート画像P1とマッチングする領域、すなわち物品存在領域Mはなかったとして、別のテンプレート画像P2を記憶部40から探索テンプレートとして取得する。当該テンプレート画像P2とSC姿勢における物品上面の矩形面の寸法は一致するとともに相似関係である。よって、パターンマッチング処理部38は、当該単一高さ画像T1のカラー画像にテンプレート画像P2をマッチングさせていく。そして、パターンマッチング処理部38は、図10の単一高さ画像T1の紙面左下の領域に示すように、当該テンプレート画像P2の画像と一致度が予め定められた閾値以上である物品存在領域Mを検出する。そして、パターンマッチング処理部38は、単一高さ画像T1に対応する仮定収納姿勢であるSC姿勢の情報、物品存在領域Mの情報、及び検出段であるベース上段物品の情報等を記憶部40に記憶させる。
エッジ検出処理部39は、パターンマッチング処理部38から動作指令を受けると、パターンマッチング処理部38において用いられた単一高さ画像内に含まれるエッジ成分を抽出してエッジ画像を生成する。そして、エッジ検出処理部39は、当該生成したエッジ画像中に含まれる、物品50の各矩形面の外形に基づいて生成した矩形モデルとの関係が予め定められた条件に合致する領域を物品存在領域Mとして検出する機能部である。具体的には、エッジ検出処理部39は、まず、記憶部40から、パターンマッチング処理部38で用いた単一高さ画像に対応する仮定収納姿勢の上面の寸法情報や縦横比の情報を取得する。そして、エッジ検出処理部39は、これらの情報に基づいて、当該矩形面の外形のテンプレートである矩形モデルを生成する。一方、エッジ検出処理部39は、パターンマッチング処理部38で用いた単一高さ画像内に含まれるエッジ成分を抽出してエッジ画像を生成する。そして、エッジ検出処理部39は、当該生成したエッジ画像と矩形モデルとを用いて、当該エッジ画像中における当該矩形モデルとの関係が予め定められた条件に合致する領域を探索する。そして、エッジ検出処理部39は、当該矩形モデルとの関係が予め定められた条件(例えば、矩形モデルの4辺のうちの3辺に一致する3本のエッジに囲まれている領域等)に合致する領域を検出すると、当該領域を物品存在領域Mとして記憶部40に記憶させるとともに、物品位置特定部41に動作指令を出力する。なお、その際に、エッジ検出処理部39は、エッジ検出で検出した旨、当該検出した際の物品探索範囲に設定されている単一高さ画像に対応する仮定収納姿勢の情報及び検出段も併せて記憶させる。
一方、エッジ検出処理部39は、エッジ画像中に、矩形モデルとの関係が予め定められた条件に合致する領域を検出できなかった場合には、パターンマッチング処理部38に、再度パターンマッチング処理を実行する旨の動作指令を出力する。なお、エッジ検出処理部39は、当該再度パターンマッチング処理を実行する旨の動作指令の出力数をカウントしており、当該動作指令の出力時に、当該動作指令の出力回数が「物品探索範囲として設定された単一高さ画像数−1」である場合には、当該動作指令を出力せずに、物品探索範囲として設定されたいずれの単一高さ画像にも、物品存在領域Mを検出できなかったとして、上位コントローラ2へその旨の情報を出力する。そして、上位コントローラ2のリトライ制御部23によりリトライ処理が実行される。
物品位置特定部41は、認識対象である物品50の容器51内における物品上面の3次元位置及び平面視姿勢を特定する機能部である。物品位置特定部41は、収納状態判別部42と平面位置特定部43とを備える。本実施形態では、物品位置特定部41は、物品探索処理部37(パターンマッチング処理部38若しくはエッジ検出処理部39)から動作指令を受けると、記憶部40から物品存在領域Mの情報等を取得する。そして、収納状態判別部42が、当該物品50の基準面に対する収納姿勢を判別するとともに認識対象である物品50の物品上面の容器51内における高さ方向Zの位置を特定し、平面位置特定部43が、当該物品存在領域Mから物品50の容器51内における平面位置及び平面視姿勢を特定する。そして、物品位置特定部41は、当該特定した容器内51における物品上面の3次元位置及び平面視姿勢の情報をチェック処理部45に出力する。物品位置特定部41は、当該チェック処理部45から正常である旨の応答を受信すると、当該特定した容器内51における物品上面の3次元位置及び平面視姿勢を確定し、これらの情報を上位コントローラ2のロボット制御部24へ認識結果情報として出力する。
収納状態判別部42は、物品探索処理部37の検出情報と、物品50の寸法情報とから、物品50が矩形面のいずれの面を上面として収納されているかの収納姿勢を判別するとともに、物品50の底面が属している基準面に対する物品上面の高さを算出する機能部である。そして、本実施形態では、収納状態判別部42は、記憶部40に格納されている単一高さ画像のうち、物品探索処理部37にて物品存在領域Mが検出された単一高さ画像に対応する仮定収納姿勢が、ベース上段物品が存在すると仮定した場合の仮定収納姿勢の一つである場合には、物品存在領域Mが検出された単一高さ画像に対応する仮定収納姿勢を実際の収納姿勢であるとして判別するとともに、仮想基準面Sを実際に物品50の底面が属している基準面と判別する。また、収納状態判別部42は、記憶部40に格納されている単一高さ画像のうち、物品探索処理部37にて物品存在領域Mが検出された単一高さ画像に対応する仮定収納姿勢が、ベース段物品が存在すると仮定した場合の3つの新たな仮定収納姿勢の一つである場合には、記憶部40に格納されている単一高さ画像のうち、物品探索処理部37にて物品存在領域Mが検出された単一高さ画像に対応する仮定収納姿勢を、実際の収納姿勢であるとして判別するとともに、仮想基準下面SSを基準面と判別する。
具体的には、収納状態判別部42は、物品探索処理部37の検出情報としての物品存在領域Mの情報、当該物品存在領域Mが検出された単一高さ画像に対応する仮定収納姿勢の情報及び検出段を記憶部40から取得する。そして、収納状態判別部42は、当該物品存在領域Mが検出された単一高さ画像に対応する仮定収納姿勢を物品50の収納姿勢として判別する。図7〜図10の例を用いて説明すると、収納状態判別部42は、記憶部40から物品存在領域Mの情報を取得する際に、当該物品存在領域Mが検出された単一高さ画像T1に対応するSC姿勢の情報及び検出段も取得する。そして、収納状態判別部42は、収納姿勢をベース上段物品の正立姿勢であると判別するとともに、仮想基準面Sを基準面と判別する。また、収納状態判別部42は、仮想基準面S若しくは仮想基準下面SSの容器底面からの高さと、基準面に対する物品上面の高さとから、物品上面の容器底面からの高さを算出する。図7〜図10の例では、収納状態判別部42は、基準面と判別した仮想基準面Sの高さ「H」と、当該基準面に対する物品上面の高さ、すなわち当該判別した収納姿勢(正立姿勢)における高さ方向に沿う辺の長さ「H1」とから、当該物品上面の容器底面からの高さ「H+H1」を算出する。これにより、容器51内における物品上面の高さ方向Zの位置を特定することができる。なお、物品存在領域Mが検出された単一高さ画像Tの高さを物品上面の容器底面からの高さとしてもよい。
また、収納状態判別部42は、記憶部40に記憶されている物品50の寸法情報に基づいて、物品50の3辺の中に、当該各辺の長さの差が予め定められた判別限界値よりも小さい一対の類似辺を含むと判別した場合であって、前記一対の類似辺のうちの短い方の辺を高さ方向に沿わせた姿勢を収納姿勢として判別したときには、当該判別の結果である収納姿勢を、前記一対の類似辺のうちの長い方の辺を高さ方向に沿わせた姿勢に更新する。図7〜図10の例では、物品50の3辺の寸法(H1,W1,L1)のうち、W1とH1との差が判別限界値(例えば、2cm)よりも小さく、ほぼ同じ長さ(W1がH1よりも少しだけ大きい)である場合には、収納状態判別部42が、収納姿勢として、H1の辺を高さ方向に沿わせたSC姿勢と判別した場合であっても、W1の辺を高さ方向に沿わせたSB姿勢と判別し、当該判別結果を更新する。
平面位置特定部43は、物品探索処理部37の検出情報に基づいて、物品存在領域Mの基本画像内における位置及び基本画像に対する傾きから、物品上面の平面位置及び平面視姿勢を特定する機能部である。本実施形態では、平面位置特定部43は、容器51内における物品存在領域Mの中心位置M1を物品上面の平面位置と特定するとともに、容器51に対する物品存在領域Mの回転角(傾き)を物品上面の平面視姿勢として特定する。具体的には、平面位置特定部43は、基本画像中において、容器51の搬送方向WXにおける下流側かつ幅方向WYにおける物品搬送コンベア11側の隅における基準点を原点Oとして、原点Oから容器51内における容器内搬送方向Xに沿う方向にX軸を、容器内幅方向Yに沿う方向にY軸をとる(すなわち、容器内座標系を設定する)とともに、記憶部40から物品存在領域Mの情報を取得する。そして、平面位置特定部43は、図11に示すように、当該物品存在領域Mの中心位置M1の容器内座標(X,Y)を算出し、当該中心位置M1の容器内座標(X,Y)を物品上面の平面位置として特定する。また、平面位置特定部43は、物品存在領域Mに対応する矩形領域を容器51の矩形領域と相似となるように配置した基準角度(0°)から、当該物品存在領域Mに対応する矩形領域が当該物品存在領域Mの中心位置M1を中心として回転した回転角を算出し、当該回転角を平面視姿勢と特定する。画像座標系における容器51の原点Oは、撮像装置8の設置位置及び基準画像における長さと実距離との関係から定まる変換係数を用いて、基準座標系における座標に変換することができる。これにより、平面位置特定部43は、容器内座標系における中心位置M1の容器内座標(X,Y)を画像座標系に変換して、さらに基準座標系に変換し、認識結果情報としてロボット制御部24へ出力する。このように、認識結果情報としては中心位置M1の3次元位置の世界座標(画像座標)が含まれる。
チェック処理部45は、物品認識装置3(物品位置特定部41)で特定した物品上面の3次元位置及び平面視姿勢の値が不適切でないかをチェックする機能部である。チェック処理部45は、底面チェック部46と物品壁際チェック部47とを備える。チェック処理部45は、物品位置特定部41から容器内51における物品上面の3次元位置及び平面視姿勢の情報を取得すると、当該取得した物品上面の3次元位置及び平面視姿勢の値が不適切でないかをチェックし、正常である場合には物品位置特定部41に対して正常である旨の情報を出力し、正常でない場合には上位コントローラ2のリトライ制御部23へエラー出力を行う。
底面チェック部46は、収納状態判別部42により算出された物品上面の容器底面からの位置が、実際には存在し得ないような位置ではないかをチェックする機能部である。例えば、底面チェック部46は、物品位置特定部41により特定された物品上面の高さ方向Zの位置が、床にのめり込んだ状態の容器の容器底面上に載置されている物品50の物品上面位置に相当しないか等をチェックする。具体的には、底面チェック部46は、物品位置特定部41から物品上面の3次元位置の情報を取得すると、収納状態判別部42により算出された物品上面の容器底面からの高さが、物品50の寸法情報に含まれる3辺の長さのうち最も短い辺の長さよりも小さいか否かを判定する。そして、底面チェック部46は、物品上面の容器底面からの高さが物品50の最も短い辺の長さよりも小さいと判定した場合には、物品50が容器底面にめり込んでいるという現実には有り得ない結果であるので物品上面の認識を失敗したとして、エラー出力を行う。本実施形態では、物品50の最も短い辺の長さはH1である為、底面チェック部46は、収納状態判別部42により算出された物品上面の容器底面からの高さがH1未満であるかを判定する。そして、底面チェック部46は、収納状態判別部42により算出された物品上面の容器底面からの高さがH1未満であると判定した場合には、上位コントローラ2のリトライ制御部23へエラー出力を行う。なお、底面チェック部46は、収納状態判別部42により算出された物品上面の容器底面からの高さがH1以上であると判定した場合には、正常である旨の情報を物品位置特定部41へ出力する。
物品壁際チェック部47は、平面位置特定部43により特定された物品上面の平面位置及び平面視姿勢と、記憶部40に格納されている物品50の寸法情報とにより定まる基本画像における物品上面に対応する矩形領域が、実際には存在し得ないような位置に存在していないかをチェックする機能部である。例えば、物品壁際チェック部47は、物品50の上面に対応する矩形領域が容器51の側壁にめり込んだ状態となっていないか等をチェックする。具体的には、物品壁際チェック部47は、平面位置特定部43により特定された物品上面の平面位置及び平面視姿勢と、記憶部40に格納されている物品50の寸法情報とにより定まる基本画像における物品上面に対応する矩形領域が、基本画像における容器51の存在領域の内部に包含されるか否かを判別する。本実施形態では、図11に示すように、物品壁際チェック部47は、物品存在領域Mの中心位置M1と平面視姿勢(回転角度)と物品50の寸法情報とから物品上面の矩形領域を構成する4隅である50A,50B,50C,50Dの各地点の容器内座標(X,Y)を算出する。一方、物品壁際チェック部47は、記憶部40から容器51の寸法情報を取得し、容器51の存在領域に対応する矩形領域を構成する4隅である51A,51B,51C,51Dの容器内座標系における各地点(X,Y)座標を算出する。なお、当該容器51の一隅の地点(本例では51A)が原点Oである。そして、物品壁際チェック部47は、物品上面に対応する矩形領域の50A,50B,50C,50Dの4隅の地点の容器内座標(X,Y)が、容器51の51A,51B,51C,51Dの4隅の地点を結んで生成される矩形領域内に含まれていると判定する場合には、物品位置特定部41に正常である旨のチェック結果情報を出力する。一方、底面チェック部46は、物品上面に対応する矩形領域の4隅の地点の容器内座標(X,Y)のうち一つでも、容器51の4隅の地点を結んで生成される矩形領域の外部に位置していると判定した場合には、上位コントローラ2のリトライ制御部23へエラー出力を行う。
4.物品認識処理の処理手順
本実施形態に係る上位コントローラ2、物品認識装置3及びピッキングコンベア6、すなわち物品認識設備による物品認識処理の処理手順について、図12及び図13を参照して説明する。以下に説明する物品認識処理の手順は、上位コントローラ2、物品認識装置3及びピッキングコンベア6の各機能部を構成するハードウェア又はソフトウェア(プログラム)或いはその両方により実行される。上記の各機能部がプログラムにより構成される場合には、上位コントローラ2、物品認識装置3及びピッキングコンベア6のそれぞれが有する演算処理装置(図示せず)が、それぞれが有する各機能部を構成するプログラムを実行するコンピュータとして動作してもよいし、上位コントローラ2の演算処理装置が、物品認識設備の全ての機能部を構成するプログラムを実行するコンピュータとして動作してもよい。
4−1.物品認識処理について
本実施形態に係る物品認識処理では、まず、情報取得部44が、上位コントローラ2からの物品探索指令と併せて出力される容器情報及び物品情報を取得する(ステップ#01)。そして、画像取得部31が、ステップ#01における当該物品探索指令に基づいて、撮像装置8から撮像画像を取得する(ステップ#02)。次に容器外形検出部32が、ステップ#02で取得した撮像画像から容器51の外形を検出する(ステップ#03)。ステップ#03で容器外形が検出できなかった場合には(ステップ#04:No)、容器外形検出部32は、上位コントローラ2に対してエラー報告を出力し、上位コントローラ2よりリセット指示を受ける(ステップ#20)。そして、それに応じてステップ#01及びステップ#02で取得し記憶部40に記憶したデータを消去する。一方、ステップ#04で容器外形を検出した場合には(ステップ#04:Yes)、物品探索範囲設定部34が物品探索範囲設定処理を実行する(ステップ#05)。
物品探索範囲設定処理は、図13に示すように、まず、物品探索範囲設定部34が、記憶部40から物品50の3辺の寸法情報を取得する(ステップ#51)。次に、仮想基準面設定部35が、基本画像から基準高さHを算出し、ステップ#51の寸法情報と当該基準高さHとを用いて仮想基準面Sを設定するとともに、仮想基準下面SSをさらに設定する(ステップ#52)。そして、単一高さ画像生成部36が、ステップ#51で取得した寸法情報と、ステップ#52で設定した仮想基準面S及び仮想基準下面SSとに基づいて、仮想基準面S上のベース上段物品の3つの仮定収納姿勢、及び、仮想基準下面SS上のベース段物品の3つの仮定収納姿勢の6つの仮定収納姿勢のそれぞれについての物品上面の容器底面からの論理高さを算出する。そして、単一高さ画像生成部36が、当該論理高さと同一の高さ情報を有する画素をそれぞれ抽出して、当該仮定収納姿勢における物品上面に対応する高さの単一高さ画像を生成する(ステップ#53)。単一高さ画像生成部36は、ステップ#53で生成した単一高さ画像のそれぞれについて2値化を行い(ステップ#54)、物品探索領域が存在するか否かを判別する(ステップ#55)。単一高さ画像生成部36が、物品探索領域が存在すると判別した場合は(ステップ#56:Yes)、有効な単一高さ画像であるとして、カラー画像に変換をし(ステップ#57)、物品探索範囲として設定し(ステップ#58)、記憶部40に記憶する(ステップ#59)。そして、単一高さ画像生成部36が、6つの全ての単一高さ画像について、物品探索領域の存在の有無を判別する処理が終了した場合には(ステップ#60:Yes)、物品探索範囲設定処理を終了する。単一高さ画像生成部36が、6つの全ての単一高さ画像について、物品探索領域の存在の有無を判別する処理が終了していない場合には(ステップ#60:No)、6つの全ての単一高さ画像について物品探索領域の存在の有無を判別する処理が終了するまで、ステップ#56に戻って、残りの他の単一高さ画像について当該判別処理を実行する。
一方、ステップ#56において、単一高さ画像生成部36が、物品探索領域が存在しないと判別した場合で(ステップ#56:No)、他の全ての単一高さ画像についても物品探索領域がないと判別した場合、すなわち、全ての単一高さ画像に物品探索領域がないと判別した場合には(ステップ#61:Yes)、有効な単一高さ画像がないとして(ステップ#62,図12のステップ#06:Yes)物品探索範囲設定処理を終了し、図12に戻って、リトライ制御部23がピッキングコンベア6にリトライ指示を出力する(ステップ#17)。ステップ#61にて、単一高さ画像生成部36が、6つの単一高さ画像の全てに物品探索領域がないと判別しない場合(ステップ#61:No)、例えば、既に物品探索領域があると判別した単一高さ画像がある場合等には、6つの全ての単一高さ画像についての当該判別処理が終了するまで、ステップ#56に戻って同様の処理を繰り返す(ステップ#60:No)。ステップ#61にて、単一高さ画像生成部36が、6つの単一高さ画像の全てに物品探索領域がないと判別しない場合で(ステップ#61:No)、6つの全ての単一高さ画像についての当該判別処理が終了した場合には(ステップ#60:Yes)、物品探索範囲設定処理を終了する。
図12の処理に戻って、ステップ#06において、単一高さ画像生成部36が、有効な単一高さ画像があると判別した場合には(ステップ#06:No)、パターンマッチング処理部38は、物品探索範囲に設定された有効な単一高さ画像のうち、一番高さの高い単一高さ画像に対してパターンマッチング処理を実行する(ステップ#07)。パターンマッチング処理において物品存在領域Mが検出されると(ステップ#08:Yes)、物品位置特定部41が、当該物品存在領域Mに基づき、物品上面の3次元位置及び平面視姿勢を特定する(ステップ#11)。一方、パターンマッチング処理において物品存在領域Mが検出されない場合には(ステップ#08:No)、エッジ検出処理部39がステップ#07で用いた有効な単一高さ画像に対してエッジ検出処理を実行する(ステップ#09)。エッジ検出処理において物品存在領域Mが検出されると(ステップ#09:Yes)、物品位置特定部41が、当該物品存在領域Mに基づき、物品上面の3次元位置及び平面視姿勢を特定する(ステップ#11)。
一方、エッジ検出処理において物品存在領域Mが検出されない場合で(ステップ#10:No)、ステップ#06で判別した有効な単一高さ画像が他にあれば(ステップ#16:Yes)、ステップ#07に戻り、パターンマッチング処理部38が、他の有効な単一高さ画像に対してパターンマッチング処理を実行する。なお、本実施形態では、パターンマッチング処理部38は、高さの高い単一高さ画像順に当該パターンマッチング処理を実行する。また、エッジ検出処理において物品存在領域Mが検出されない場合で(ステップ#10:No)、ステップ#06で判別した有効な単一高さ画像が他になければ(ステップ#16:No)、エッジ検出処理部39は、その旨の情報を上位コントローラ2へ出力し、リトライ制御部23がピッキングコンベア6にリトライ指示を出力する(ステップ#17)。そして、リトライ制御部23は、リトライ指示の出力回数が3回未満であれば(ステップ#18:No)、ピッキングコンベア6にリトライ処理を実行させる(ステップ#19)。リトライ制御部23は、リトライ指示の出力回数が3回以上であれば(ステップ#18:Yes)、リセット指示をして(ステップ#20)、物品認識処理を終了する。また、物品位置特定部41が、当該物品存在領域Mに基づき、物品上面の3次元位置及び平面視姿勢を特定すると(ステップ#11)、チェック処理部45にて各種チェックが実行される(ステップ#12)。そして、チェック処理部45にて各種チェックの結果が正常である場合には(ステップ#13:Yes)、物品位置特定部41が、物品上面の3次元位置及び平面視姿勢を確定し(ステップ#14)、当該物品上面の3次元位置及び平面視姿勢の情報を上位コントローラ2へ出力して(ステップ#15)、当該物品認識処理を終了する。なお、チェック処理部45にて各種チェックの結果が正常でない場合には(ステップ#13:No)、チェック処理部45は、上位コントローラ2へその旨の情報を出力し、リトライ制御部23がピッキングコンベア6にリトライ指示を出力する(ステップ#17)。
5.その他の実施形態
最後に、本発明に係る物品搬送設備100のその他の実施形態について説明する。なお、以下のそれぞれの実施形態で開示される構成は、矛盾が生じない限り、他の実施形態で開示される構成と組み合わせて適用することも可能である。
(1)上記の実施形態では、ステレオカメラ等の一対のカメラ8A及び8Bを有する撮像装置8を用いて、カメラ8Aで撮像した画像における各画素においての当該カメラ8Aからの距離情報を、一対のカメラ8A及び8Bの視差に基づいて算出して、各画素が当該カメラ8Aからの距離情報を有する撮像画像を生成する構成であった。しかし、本発明の実施形態はこれに限定されるものではなく、撮像装置8として、撮像画像と距離情報とを併せて取得できる距離画像センサを用いる構成であってもよい。
(2)上記の実施形態では、リトライ制御部23が上位コントローラ2に設けられる構成であるが、物品認識装置3に設けられる構成であってもよい。その際には、リトライ制御部23は、ピッキングコンベア6を直接的に制御する構成であってもよいし、上位コントローラ2を介して間接的に制御する構成であってもよい。
(3)上記の実施形態において、さらに、物品認識装置3が、認識対象である物品50が、容器51内に収容されている最後の一つであるか否かを判別するラスト物品判別部を備える構成であってもよい。なお、その際には、上位コントローラ2が、容器51内に収容されている最後の一つの物品50を取り出した後にピッキング箇所12に存在する容器51を他の容器51に入れ替えるようにピッキングコンベア6の動作を制御する容器入替制御部(図示せず)を備える構成であることが好ましい。ラスト物品判別部が、認識対象である物品50が容器51内に収容されている最後の一つであると判定すると、最後の一つである旨の情報を上位コントローラ2に出力する。容器入替制御部は、当該最後の一つである旨の情報を受けると、物品認識装置3から取得する最後の物品50の認識情報結果に基づく、ピッキングロボット5による最後の物品50のピッキング処理が終了すると、ピッキングコンベア6の搬送面Pを搬送方向WXの上流側から下流側へ動作させる。これにより、空となった容器51は入庫コンベア10側に搬送され、物品50が収容されている新たな容器51がピッキング箇所12に搬送される。なお、ラスト物品判別部では、例えば、マスター容器情報から容器情報取得部22を介して取得した各容器51内に含まれる物品50の在庫数と、物品認識装置3から認識結果情報を上位コントローラ2へ出力した回数(ピッキングロボットにて取り出した物品50の個数に相当)とを比較すること等により、最後の一つを判別することができる。
(4)上記の実施形態では、上位コントローラ2は、センサ等によって、ピッキング箇所12における容器51の存在を検出すると自動的に物品探索指令を物品認識装置3に出力する構成であるが、本発明の実施形態はこれに限定されるものではない。上位コントローラ2は、作業者が物品探索処理開始ボタンを押す等の手動による物品探索の操作入力を検知した際に、物品探索指令を物品認識装置3に出力する構成であってもよい。
(5)上記の実施形態では、仮想基準面設定部35は、基本画像内において同一の高さ情報を有する画素が最も多く含まれる高さを基準高さHとし、当該基準高さHの高さ情報を有する画素群により形成される平面を仮想基準面Sとして設定する構成であった。しかし、本発明の実施形態はこれに限定されるものではなく、基準高さHを予め与える構成であってもよい。
(6)上記の実施形態では、仮想基準面設定部35は、仮想基準面Sの基準高さHとして、ヒストグラムを谷で分割した際に最も面積が大きい山を判別し、当該山の中で一番出現率が大きい画素値が有する高さ、すなわち、同一の高さ情報を有する画素が最も多く含まれる高さを基準高さHとしている。しかし、本発明の実施形態はこれに限定されるものではない。例えば、ヒストグラムを谷で分割した際の最も面積が大きい山を構成する画素数及び画素値(各画素が有する高さ)から画素値(高さ)の平均値を算出し、当該平均値を基準高さHとする構成であってもよい。
(7)上記の実施形態では、物品探索範囲設定部34を備え、単一高さ画像を生成して、当該生成した単一高さ画像のうち有効な単一高さ画像を物品探索範囲とし、物品探索処理部37では当該物品探索範囲に対して物品探索処理を実行する構成であった。そして、収納状態判別部42は、物品存在領域Mが検出された単一高さ画像に対応づけられている仮定収納姿勢を収納姿勢と判別する構成であった。しかし、本発明の実施形態はこれに限定されるものではない。例えば、物品認識装置3が、物品探索範囲設定部34を備えない構成とすることにより、物品探索処理部37が、物品探索範囲として有効な単一高さ画像に絞らずに、基本画像全体に対して物品探索処理を実行する構成であってもよい。その場合、物品探索処理部37により物品存在領域Mが検出されると、収納状態判別部42は、物品上面に対応する当該物品存在領域Mの矩形領域と物品50の寸法情報とから、物品50がいずれの面を上面としているかを認識するとともに、収納姿勢を判別する。収納状態判別部42は、さらに、収納姿勢を判別後に、物品50の寸法情報により、当該物品50の底面が属している基準面に対する物品上面の高さを算出する。