(57)【要約】【課題】整列された物体の一部がずれている場合であっても物体の配置を個別に検出することである。【解決手段】配置検出装置は、計測部と、抽出部と、第１の計算部と、生成部と、第２の計算部とを備える。計測部は、接するように組み合わさった同一の形状の複数の多面体の表面を第１の任意の点から計測する。抽出部は、計測部が計測した表面を抽出し、表面のうちの第１の任意の点に最も近い部分を含み、且つ、最大の面積を持つ領域を抽出する。第１の計算部は、領域の重心および法線を計算する。生成部は、重心から伸ばした法線上の点から見た領域に含まれる、少なくとも一つ以上の形状を持つ多面体の所望の面のそれぞれの輪郭を示す第１のデータを生成する。第２の計算部は、第１のデータが示すそれぞれの輪郭の位置を利用して、領域に含まれる形状を持つ多面体の位置情報を計算する。【選択図】図１
2017039189.tif 000002
【特許請求の範囲】
【請求項１】
接するように組み合わさった同一の形状の複数の多面体の表面を第１の任意の点から計測する計測部と、
前記計測部が計測した前記表面を抽出し、前記表面のうちの前記第１の任意の点に最も近い部分を含み、且つ、最大の面積を持つ領域を抽出する抽出部と、
前記領域の重心および法線を計算する第１の計算部と、
前記重心から伸ばした前記法線上の点から見た前記領域に含まれる、少なくとも一つ以上の前記形状を持つ多面体の所望の面のそれぞれの輪郭を示す第１のデータを生成する生成部と、
前記第１のデータが示す前記それぞれの輪郭の位置を利用して、前記領域に含まれる前記形状を持つ多面体の位置情報を計算する第２の計算部と
を具備する、配置検出装置。
【請求項２】
前記計測部は、前記第１の任意の点側の表面上の任意の点の座標の集合を第２のデータとして得る、請求項１に記載の配置検出装置。
【請求項３】
前記生成部は、前記所望の面の輪郭を表す面モデルを前記領域の輪郭を表す平面モデルに敷き詰め、敷き詰められていない部分の面積が最小になる場合の前記所望の面のそれぞれの輪郭を示す第１のデータを生成する、請求項１または請求項２に記載の配置検出装置。
【請求項４】
前記生成部は、前記平面モデルの頂点の角度に合わせて前記面モデルの頂点を当てはめ、当てはめた前記面モデルの領域が前記平面モデルの領域に内包される場合に、前記平面モデルの領域から前記面モデルの領域を差し引くことによって、前記第１のデータを生成する、請求項３に記載の配置検出装置。
【請求項５】
前記生成部は、前記平面モデルの最小外接四角形を計算し、前記最小外接四角形の輪郭を表す四角形モデルを抽出し、前記四角形モデルの頂点の角度に合わせて前記面モデルの頂点を当てはめ、当てはめた前記面モデルの領域が前記平面モデルの領域に内包される場合に、前記平面モデルの領域から前記面モデルの領域を差し引くことによって、前記第１のデータを生成する、請求項３に記載の配置検出装置。
【請求項６】
前記生成部は、当てはめた前記面モデルの領域が前記平面モデルのある辺を共有する二つの頂点を含む領域に内包される場合に、前記辺を含む領域に前記面モデルをさらに当てはめ、前記辺を含む領域から前記面モデルの領域を差し引くことによって、前記第１のデータを生成する、請求項４または５に記載の配置検出装置。
【請求項７】
前記生成部は、前記平面モデルの凸包を計算し、前記凸包の輪郭を表す凸包モデルを抽出し、前記凸包モデルの最も直角に近い頂点に対して前記面モデルの頂点を当てはめ、当てはめた前記面モデルの領域が前記平面モデルの領域に内包される場合に、前記平面モデルの領域から前記面モデルの領域を差し引くことによって、前記第１のデータを生成する、請求項３に記載の配置検出装置。
【請求項８】
前記所望の面の絵柄を表すテンプレートを用いて、前記第１のデータに対応する前記領域に対してテンプレートマッチングを行うマッチング部と
をさらに具備する、請求項１乃至請求項７のいずれか１項に記載の配置検出装置。
【請求項９】
前記所望の面の絵柄の一部をベクトル化して抽出された局所特徴量を用いて、前記第１のデータに対応する前記領域に対して局所特徴量マッチングを行うマッチング部と
をさらに具備する、請求項１乃至請求項７のいずれか１項に記載の配置検出装置。
【請求項１０】
前記抽出部は、前記領域が二つ以上の場合に、任意の一つを選択する、請求項１乃至請求項９のいずれか１項に記載の配置検出装置。
【請求項１１】
請求項１乃至請求項１０のいずれか１項に記載の配置検出装置と、
前記位置情報に基づいて、前記領域に含まれる多面体をピックアップする取得部と
を具備する、ピッキング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、配置検出装置およびピッキング装置に関する。
【背景技術】
【０００２】
商品パッケージの仕分け、箱詰め、棚入れおよび棚だしなどは、いまだに人手による作業をすることが多い。そのため、これらの作業は機械による自動化が望まれている。しかしながら、商品パッケージは、商品棚および段ボール箱の中で、雑に積まれていることが多く、崩れている部分と整列している部分とが混在している。従って、このような状態は、自動化の際に必要な複数の商品を個別に認識することを難しくしている。
【０００３】
配置検出装置として、物体のテンプレート画像と取得画像との差分情報を利用した二次元画像に対するマッチング手法が知られている。しかしながら、この配置検出装置は、奥行き情報を利用しないため、個別の物体を正確に検出できない恐れがある。また、同一形状の物体が隙間なく並べられた場合において、各々の物体の配置を検出する方法は知られていない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１３７８４１号公報
【非特許文献】
【０００５】
【非特許文献１】Jukka Jylaenki, “A Thousand Ways to Pack the Bin - A Practical Approach to Two-Dimensional Rectangle Bin Packing”, February 27, 2010
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、整列された物体の一部がずれている場合であっても物体の配置を個別に検出することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、配置検出装置は、計測部と、抽出部と、第１の計算部と、生成部と、第２の計算部とを備える。計測部は、接するように組み合わさった同一の形状の複数の多面体の表面を第１の任意の点から計測する。抽出部は、計測部が計測した表面を抽出し、表面のうちの第１の任意の点に最も近い部分を含み、且つ、最大の面積を持つ領域を抽出する。第１の計算部は、領域の重心および法線を計算する。生成部は、重心から伸ばした法線上の点から見た領域に含まれる、少なくとも一つ以上の形状を持つ多面体の所望の面のそれぞれの輪郭を示す第１のデータを生成する。第２の計算部は、第１のデータが示すそれぞれの輪郭の位置を利用して、領域に含まれる形状を持つ多面体の位置情報を計算する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る配置検出装置のブロック図。
【図２Ａ】図１の配置検出装置の動作を例示するフローチャート。
【図２Ｂ】図２Ａのレイアウトデータ生成処理を例示するフローチャート。
【図３】乱雑に積まれた商品パッケージを例示する図。
【図４】検出した商品パッケージの輪郭線および法線を例示する図。
【図５】平面モデルおよび面モデルを例示する図。
【図６】平面モデルに面モデルを敷き詰める方法を例示する図。
【図７】平面モデルに面モデルを敷き詰める方法を例示する図。
【図８】マッチングの具体例を示す図。
【図９】図２Ａのレイアウトデータ生成処理を例示するフローチャート。
【図１０】一部が傾いて並べられた商品パッケージを例示する図。
【図１１Ａ】図１０の平面領域の抽出結果を例示する図。
【図１１Ｂ】図１１Ａのレイアウトデータを例示する図。
【図１２】検出した商品パッケージの輪郭線および法線を例示する図。
【図１３】平面モデルに面モデルを敷き詰める方法を例示する図。
【図１４】第２の実施形態に係るピッキング装置のブロック図。
【図１５】図１４のピッキング装置の構造を例示する図。
【図１６】図１５のピッキング装置の動作を例示する図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら実施形態の説明が述べられる。尚、以降、解説済みの要素と同一または類似の要素には同一または類似の符号が付され、重複する説明は基本的に省略される。
【００１０】
以降の説明において、「多面体」の例として「直方体」が用いられるが、これに限らず、他の形状が用いられてもよい。また、「直方体」および「商品パッケージ」は相互に読み替えられてもよい。
【００１１】
（第１の実施形態）
図１に例示されるように、第１の実施形態に係る配置検出装置１００は、計測部１１０と、画像処理部１２０とを含む。画像処理部１２０は、平面領域抽出部１２１と、平面領域計算部１２２と、レイアウトデータ生成部１２３と、マッチング部１２４と、位置情報計算部１２５とを含む。計測部１１０は、例えば三次元距離画像センサおよびＲＧＢ画像センサに相当する。画像処理部１２０は、例えばコンピュータに相当する。
【００１２】
計測部１１０は、接するように組み合わさった同一の形状の複数の直方体（多面体）の表面を計測点（第１の任意の点）から計測することによって、計測点側の表面上の任意の点の座標の集合を三次元データ（第２のデータ）として得る。計測点は、例えば計測部１１０が設置される位置を表す。三次元データは、例えば三次元座標の点群データに相当する。計測部１１０は、三次元データを平面領域抽出部１２１へと出力する。
【００１３】
平面領域抽出部１２１は、計測部１１０から三次元データが入力される。平面領域抽出部１２１は、計測部１１０が計測した複数の直方体の表面を抽出し、表面のうちの計測点に最も近い部分を含み、且つ、最大の面積を持つ領域を抽出する。具体的には、平面領域抽出部１２１は、三次元データから得られる一つ以上の平面を候補平面として抽出する。さらに、平面領域抽出部１２１は、抽出した候補平面のうちの計測点に最も近い部分を含み、且つ、最大の面積を持つ領域を平面領域として得る。平面領域は、例えば三次元座標の点群データに相当する。平面領域抽出部１２１は、平面領域を平面領域計算部１２２およびレイアウトデータ生成部１２３へと出力する。尚、平面領域抽出部１２１は、得られた平面領域が二つ以上の場合に、任意の一つを選択する。
【００１４】
平面領域計算部１２２（第１の計算部）は、平面領域抽出部１２１から平面領域が入力される。平面領域計算部１２２は、平面領域の重心および法線を計算する。平面領域計算部１２２は、平面領域の重心および法線のデータをレイアウトデータ生成部１２３へと出力する。
【００１５】
レイアウトデータ生成部１２３は、平面領域抽出部１２１から平面領域計算部１２２を介して平面領域が入力され、平面領域計算部１２２から平面領域の重心および法線のデータが入力される。レイアウトデータ生成部１２３は、重心から伸ばした法線上の点から見た平面領域に含まれる、少なくとも一つ以上の直方体の所望の面のそれぞれの輪郭を示すレイアウトデータ（第１のデータ）を生成する。ここで述べられた「直方体」は、「計測部１１０によって計測された物体を構成する直方体と同一の形状を持つ直方体」の意味であり、以降も原則としてこの意味として用いる。レイアウトデータ生成部１２３は、直方体の形状などの情報を予め保持している。レイアウトデータ生成部１２３は、レイアウトデータをマッチング部１２４へと出力する。
【００１６】
具体的には、レイアウトデータ生成部１２３は、直方体の所望の面の輪郭を表す面モデルを平面領域の輪郭を表す平面モデルに敷き詰め、敷き詰められていない部分の面積が最小になる場合の直方体の所望の面のそれぞれの輪郭を示すレイアウトデータを生成する。より具体的には、レイアウトデータ生成部１２３は、平面モデルの頂点の角度に合わせて面モデルの頂点を当てはめ、当てはめた面モデルの領域が平面モデルの領域に内包される場合に、平面モデルの領域から面モデルの領域を差し引くことによって、レイアウトデータを生成する。
【００１７】
マッチング部１２４は、レイアウトデータ生成部１２３からレイアウトデータが入力される。マッチング部１２４は、直方体の所望の面の絵柄を表すテンプレートを用いて、レイアウトデータに対応する平面領域に対してテンプレートマッチングを行う。また、マッチング部１２４は、直方体の所望の面の絵柄の一部をベクトル化して抽出された局所特徴量を用いて、レイアウトデータに対応する平面領域に対して局所特徴量マッチングを行ってもよい。マッチングの方法は、以上の例に限らず、種々の技法を利用してもよい。マッチング部１２４は、レイアウトデータに対応する平面領域と、テンプレートまたは局所特徴量とがマッチした場合に、レイアウトデータを位置情報計算部１２５へと出力する。尚、マッチングの具体例は後述される。
【００１８】
位置情報計算部１２５（第２の計算部）は、マッチング部１２４からレイアウトデータが入力される。位置情報計算部１２５は、レイアウトデータが示す直方体の所望の面のそれぞれの輪郭の位置を利用して、平面領域に含まれる直方体の位置情報を計算する。位置情報は、例えば直方体の重心、直方体の頂点の座標および直方体の姿勢角などを含む。
【００１９】
配置検出装置１００は、図２Ａに例示されるように動作する。例えば、配置検出装置１００は、図３に示されるような、乱雑に積まれた商品パッケージの配置を検出することができる。図３は、隣接した３個の商品パッケージ３０１の上に商品パッケージ３０２が重なっている物体を示す。配置検出装置１００は、観測点からの距離情報に基づいて、商品パッケージ３０２を最初に検出し、図４に例示される輪郭線４０１および法線４０２に基づく位置情報を出力する。
【００２０】
ステップＳ２０１において、計測部１１０は、物体（接するように組み合わさった同一の形状の複数の直方体）の表面を計測点から計測することによって、計測点側の表面上の任意の点の座標の集合を三次元データとして得る。具体的には、計測部１１０は、三次元距離画像センサによって検出したデプスデータを用いて点群データを取得し、ＲＧＢ画像センサによって検出した色情報を点群データに付加することによって、物体の三次元データを得る。尚、三次元データは、点群データのみでもよい。
【００２１】
ステップＳ２０２において、平面領域抽出部１２１は、三次元データから得られる複数の平面を候補平面として抽出する。さらに、平面領域抽出部１２１は、抽出した候補平面のうちの計測点に最も近い部分を含み、且つ、最大の面積を持つ領域を平面領域として得る。このとき、平面領域抽出部１２１は、抽出される候補平面を絞るため、三次元データの領域を制限するフィルタを用いてもよい。また、平面領域抽出部１２１は、計算時間を短縮するため、点群データの密度を疎にするフィルタを用いてもよい。尚、平面領域抽出部１２１は、得られた平面領域が二つ以上の場合に、任意の一つを選択する。
【００２２】
ステップＳ２０３において、平面領域計算部１２２は、平面領域の重心および法線を計算する。具体的には、平面領域計算部１２２は、平面領域に分布している点群データに対して主成分分析をすることによって主軸を計算し、主軸の長軸（第１主成分）および主軸の短軸（第２主成分）の交わる点である重心を得る。さらに、平面領域計算部１２２は、主軸と、主軸から求めた法線（法線ベクトル）とを用いて、三次元姿勢行列を計算する。尚、三次元姿勢行列は、長軸の基底ベクトル（３行１列）と、短軸の基底ベクトル（３行１列）と、法線の基底ベクトル（３行１列）とを並べて形成した３行３列の行列である。
【００２３】
ステップＳ２０４において、平面領域計算部１２２は、三次元姿勢行列に基づいて、三次元の平面領域を二次元平面に変換する。ステップＳ２０４の後に、レイアウトデータ生成処理（ステップＳ２０５）が行われる。
【００２４】
レイアウトデータ生成処理（ステップＳ２０５）の詳細が図２Ｂに例示される。レイアウトデータ生成処理は、図５に例示されるような、平面領域（これは図３の隣接した３個の商品パッケージ３０１に相当）の輪郭を表す平面モデル５０１に、商品パッケージの所望の面の輪郭を表す面モデル５０２を敷き詰めることによって、レイアウトデータを生成する処理を行うことができる。尚、商品パッケージの形状（例えば面モデル５０２など）は、レイアウトデータ生成部１２３が予め保持している。
【００２５】
レイアウトデータ生成処理が開始すると、レイアウトデータ生成部１２３は、平面領域の輪郭線（平面モデル）を抽出し、面積を計算する（ステップＡ２０１）。例えば、レイアウトデータ生成部１２３は、二次元の平面領域に分布している点群データのそれぞれに円を描く処理を行うことによって平面を作成し、面積を計算してもよい。
【００２６】
レイアウトデータ生成部１２３は、面モデルを縦向きに配置する縦置きおよび面モデルを横向きに配置する横置きのそれぞれについて、ステップＡ２０２〜Ａ２０７の一連の処理を行う。ここで、縦置きは、平面モデルの長辺に対して面モデルの長辺を合わせる配置とし、横置きは、平面モデルの長辺に対して面モデルの短辺を合わせる配置とする。尚、レイアウトデータ生成部１２３は、縦置きのレイアウトデータを作成した後に横置きのレイアウトデータを作成してもよいし、横置きのレイアウトデータを作成した後に縦置きのレイアウトデータを作成してもよい。
【００２７】
ステップＡ２０２において、レイアウトデータ生成部１２３は、平面モデルの最小外接四角形を計算する。このとき、レイアウトデータ生成部１２３は、最小外接四角形の輪郭を表す四角形モデルを抽出する。
【００２８】
ステップＡ２０３において、レイアウトデータ生成部１２３は、四角形モデルの頂点に面モデルを当てはめる。具体的には、レイアウトデータ生成部１２３は、四角形モデルの頂点の角度に合わせて面モデルの頂点を当てはめる。尚、レイアウトデータ生成部１２３は、当てはめる面モデルの領域が平面モデルの領域に明らかに内包されない場合は、四角形モデルに面モデルを当てはめなくてよい。
【００２９】
ステップＡ２０４において、レイアウトデータ生成部１２３は、当てはめた面モデルの領域が平面モデルの領域に内包される場合に、平面モデルの領域から面モデルの領域を差し引く。このとき、レイアウトデータ生成部１２３は、差し引いた面モデルの重心および頂点の座標などを図示されないメモリへと記憶する。尚、レイアウトデータ生成部１２３は、当てはめた面モデルの領域が平面モデルのある辺を共有する二つの頂点を含む領域に内包される場合に、ある辺を含む領域に面モデルをさらに当てはめ、ある辺を含む領域から面モデルの領域を差し引いてもよい（具体的な説明は後述される）。
【００３０】
ステップＡ２０５において、レイアウトデータ生成部１２３は、面モデルが差し引かれた後の平面モデルの領域の輪郭線を抽出し、その輪郭線に内包される面積（残留面積）を計算する。
【００３１】
ステップＡ２０６では、レイアウトデータ生成部１２３は、残留面積が面モデルの面積より大きいか否かを判定する。残留面積が面モデルの面積よりも大きい場合は、レイアウトデータ生成部１２３は、ステップＡ２０５で抽出された輪郭線を平面モデルに再定義し、処理はステップＡ２０２へと戻り、そうでなければ処理はステップＡ２０７へと進む。
【００３２】
ステップＡ２０７において、レイアウトデータ生成部１２３は、平面モデルに含まれる、少なくとも一つ以上の面モデルの輪郭を示すレイアウトデータを生成する。
【００３３】
ステップＡ２０８において、レイアウトデータ生成部１２３は、縦置きのレイアウトデータおよび横置きのレイアウトデータのうち、残留面積が最も小さいレイアウトデータを出力する。ここで、レイアウトデータ生成部１２３は、縦置きのレイアウトデータおよび横置きのレイアウトデータの残留面積が等しい場合は、両方のレイアウトデータを出力してもよい。ステップＡ２０８の後に、処理は図２ＡのステップＳ２０６へと進む。
【００３４】
ステップＳ２０６において、マッチング部１２４は、レイアウトデータに対応する平面領域に対してマッチングを行う。具体的には、マッチング部１２４は、所望の面の絵柄を表すテンプレートを用いて、レイアウトデータに対応する平面領域に対してテンプレートマッチングを行う。または、マッチング部１２４は、所望の面の絵柄の一部をベクトル化して抽出された局所特徴量を用いて、レイアウトデータに対応する平面領域に対して局所特徴量マッチングを行う。
【００３５】
ステップＳ２０７において、位置情報計算部１２５は、三次元姿勢行列に基づいて、レイアウトデータを三次元の平面領域に逆変換する。
【００３６】
ステップＳ２０８において、位置情報計算部１２５は、レイアウトデータが示す直方体の所望の面のそれぞれの輪郭の位置を利用して、平面領域に含まれる直方体の位置情報を計算する。
【００３７】
図２Ｂのレイアウトデータ生成処理の具体例が図６に示される。以下では、図２Ｂのフローチャートを参照しながら、図５に示した平面モデル５０１および面モデル５０２を用いてレイアウト生成処理の具体例を説明する。
【００３８】
レイアウトデータ生成部１２３は、平面領域の輪郭線（平面モデル５０１）を抽出し（ステップＡ２０１，図６（ａ））、平面モデル５０１の最小外接四角形を計算し、最小外接四角形の輪郭を表す四角形モデル６０１を抽出する（ステップＡ２０２，図６（ｂ））。
【００３９】
次に、レイアウトデータ生成部１２３は、四角形モデル６０１の頂点に面モデル５０２を当てはめる（ステップＡ２０３）。具体的には、図６（ｃ）において、レイアウトデータ生成部１２３は、四角形モデル６０１の頂点６０２を中心として、面モデル５０２の頂点６０３を描く。図６（ｄ）において、レイアウトデータ生成部１２３は、面モデル５０２の頂点６０３のうち、平面モデル５０１の領域に含まれている頂点６０４を抽出する。図６（ｅ）において、レイアウトデータ生成部１２３は、抽出された頂点６０４を中心として、平面モデル５０１に面モデル５０２を当てはめる。尚、レイアウトデータ生成部１２３は、抽出された頂点の近傍に他の抽出された頂点がある場合は、頂点をマージしてもよい。
【００４０】
レイアウトデータ生成部１２３は、当てはめた面モデル５０２の領域が平面モデル５０１の領域に内包されているので、平面モデル５０１の領域から面モデル５０２の領域を差し引く（ステップＡ２０４）。このとき、レイアウトデータ生成部１２３は、差し引いた各々の面モデル５０２の重心および頂点の座標などを図示されないメモリに記憶する。
【００４１】
レイアウトデータ生成部１２３は、面モデル５０２が差し引かれた後の平面モデル５０１の領域の輪郭線に内包される面積（残留面積）を計算する（ステップＡ２０５）。そして、レイアウトデータ生成部１２３は、残留面積が面モデル５０２の面積よりも大きくないと判定し（ステップＡ２０６）、平面モデル５０１に面モデル５０２がどのように配置されるかを表すレイアウトデータを作成する（ステップＡ２０７）。
【００４２】
図７において、面モデル５０２に対して平面モデル７０１が十分に大きい場合のレイアウトデータ生成処理を例示する。レイアウトデータ生成部１２３は、平面モデル７０１の最小外接四角形の輪郭を表す四角形モデル７０２の各頂点に面モデル５０２を当てはめる（図７（ａ））。次に、レイアウトデータ生成部１２３は、当てはめた面モデル５０２の領域が平面モデル７０１のある辺を共有する二つの頂点を含む領域に内包されているため、ある辺を含む領域に面モデル５０２をさらに当てはめる（図７（ｂ））。さらに、レイアウトデータ生成部１２３は、ある辺を含む領域から面モデル５０２を差し引き、新たな平面モデル７０３を得る（図７（ｃ））。
【００４３】
図８において、マッチングの具体例を示す。ここでは、図８（ａ）のように、右下の商品パッケージ８０１が、他の商品パッケージ８０２と比べて回転した状態で配置されている例を用いる。また、図８（ｂ）は、図８（ａ）の商品パッケージから得られた平面モデル８０３を示している。図８（ｃ）は、平面モデル８０３のレイアウトデータ８０４を示している。このとき、マッチング部１２４は、商品パッケージの絵柄を表すテンプレート８０５を用いて、レイアウトデータ８０４に対応する平面領域（ここでは図８（ａ）に相当）に対してテンプレートマッチングを行う。
【００４４】
例えば、レイアウトデータを用いずに図８（ａ）の平面領域に対してテンプレートマッチングを行う場合に、通常のテンプレートマッチングは、テンプレートを横方向に少しずつ走査したり、テンプレートを複数通り回転させて走査したりする必要があり、処理時間が大幅にかかる。
【００４５】
他方、平面モデル８０３のレイアウトデータ８０４を利用する（即ち、予め商品パッケージの配置が決められている）場合は、マッチング部１２４は、テンプレートを横方向に少しずつ走査する必要がなく、回転についても、決められた配置で検出した角度のみテンプレートを回転させて適用させれば良いので、処理時間を大幅に削減することができる。
【００４６】
同様に、局所特徴量マッチングを行う場合においても、マッチング部１２４は、決められた配置の領域に対してマッチングを行えばよいため、正確なマッチングを行うことができる。
【００４７】
配置検出装置１００のレイアウトデータ生成処理は、図９に例示されるように処理されてもよい。例えば、配置検出装置１００は、図１０に示されるような、一部が傾いて並べられた商品パッケージについて一連の処理を行うことができる。図１０は、向きが傾いている商品パッケージ１００１と隣接した３個の商品パッケージ１００２とが同一の平面に配置されている物体を示す。配置検出装置１００は、図１０の物体を計測し、図１１Ａに示される平面モデル１１０１を得る。配置検出装置１００は、平面モデル１１０１の輪郭に対して図１１Ｂに示されるレイアウトデータ１１０２を生成し、図１２に例示される輪郭線１２０１および法線１２０２に基づく位置情報を出力する。尚、重複するステップの説明は省略する。
【００４８】
レイアウトデータ生成部１２３は、面モデルを縦向きに配置する縦置きおよび面モデルを横向きに配置する横置きのそれぞれについて、ステップＡ９０１〜Ａ９０３，Ａ２０５〜Ａ２０７の一連の処理を行う。
【００４９】
ステップＡ９０１において、レイアウトデータ生成部１２３は、平面モデルの凸包を計算する。このとき、レイアウトデータ生成部１２３は、凸包の輪郭を表す凸包モデルを抽出する。
【００５０】
ステップＡ９０２において、レイアウトデータ生成部１２３は、凸包モデルの最も直角に近い頂点に面モデルを当てはめる。具体的には、レイアウトデータ生成部１２３は、凸包モデルの最も直角に近い頂点の角度に合わせて面モデルの頂点を当てはめる。このとき、レイアウトデータ生成部１２３は、平面モデルの直線部分と凸包の直線部分とが重なっている線分に対して、面モデルの長辺または短辺が一致するように面モデルを当てはめてもよい。
【００５１】
ステップＡ９０３において、レイアウトデータ生成部１２３は、当てはめた面モデルの領域が平面モデルの領域に内包される場合に、平面モデルの領域から面モデルの領域を差し引く。このとき、レイアウトデータ生成部１２３は、差し引いた面モデルの重心および頂点の座標などを図示されないメモリへと記憶する。
【００５２】
図９のレイアウトデータ生成処理の具体例が図１３に示される。以下では、図９のフローチャートを参照しながら、図１１Ａに示した平面モデル１１０１と図５に示した面モデル５０２とを用いてレイアウト生成処理の具体例を説明する。
【００５３】
レイアウトデータ生成部１２３は、平面領域の輪郭線（平面モデル１１０１）を抽出し（ステップＡ２０１，図１３（ａ））、平面モデル１１０１の凸包を計算し、凸包の輪郭を表す凸包モデル１３０１を抽出する（ステップＡ９０１，図１３（ｂ））。
【００５４】
次に、レイアウトデータ生成部１２３は、凸包モデル１３０１の最も直角に近い頂点に面モデル５０２を当てはめる（ステップＡ９０２）。具体的には、図１３（ｃ）において、レイアウトデータ生成部１２３は、凸包モデル１３０１の最も直角に近い頂点６０２を中心として、面モデル５０２の頂点６０３を描く。図１３（ｄ）において、レイアウトデータ生成部１２３は、面モデル５０２の頂点６０３のうち、平面モデル１１０１の領域に含まれている頂点６０４を抽出する。図１３（ｅ）において、レイアウトデータ生成部１２３は、抽出された頂点６０４を中心として、平面モデル１１０１に面モデル５０２を当てはめる。尚、レイアウトデータ生成部１２３は、抽出された頂点の近傍に他の抽出された頂点がある場合は、頂点をマージしてもよい。
【００５５】
レイアウトデータ生成部１２３は、当てはめた面モデル５０２の領域が平面モデル１１０１の領域に内包されているので、平面モデル１１０１の領域から面モデル５０２の領域を差し引く（ステップＡ９０３）。このとき、レイアウトデータ生成部１２３は、差し引いた各々の面モデル５０２の重心および頂点の座標などを図示されないメモリに記憶する。
【００５６】
レイアウトデータ生成部１２３は、面モデル５０２が差し引かれた後の平面モデルの領域の輪郭線（平面モデル１３０２）を抽出し、平面モデル１３０２に内包される面積（残留面積）を計算する（ステップＡ２０５，図１３（ｆ））。レイアウトデータ生成部１２３は、残留面積が面モデル５０２の面積よりも大きいと判定し（ステップＡ２０６）、平面モデル１３０２の凸包を計算し、凸包の輪郭を表す凸包モデル１３０３を抽出する（ステップＡ９０１，図１３（ｇ））。
【００５７】
以降、図１３（ｈ）および図１３（ｉ）に示されるように、レイアウトデータ生成部１２３は、一連の処理を繰り返し、平面モデル１３０２および平面モデル１３０４の領域からそれぞれ面モデル５０２の領域を差し引く。
【００５８】
図１３（ｊ）において、レイアウトデータ生成部１２３は、残った平面モデル１３０５に面モデル５０２が当てはまり、残留面積をゼロとする（ステップＡ２０５）。そして、レイアウトデータ生成部１２３は、残留面積が面モデル５０２の面積よりも大きくないと判定し（ステップＡ２０６）、平面モデル１１０１に面モデル５０２がどのように配置されるかを表すレイアウトデータを作成する（ステップＡ２０７）。
【００５９】
以上説明したように、第１の実施形態に係る配置検出装置は、観測点からの距離情報に基づいて、観測点から最も近い商品パッケージを検出することができる。また、この配置検出装置は、整列された物体の境界がわかりにくい場合であっても、商品パッケージの大きさに基づいて、個別の商品の配置を検出することができる。さらに、この配置検出装置は、一部が傾いて並べられた商品パッケージであっても、個別の商品の配置を検出することができる。故に、この配置検出装置は、整列された物体の一部がずれている場合であっても物体の配置を個別に検出することができる。
【００６０】
（第２の実施形態）
図１４に例示されるように、第２の実施形態に係るピッキング装置１４００は、配置検出装置１４１０と、取得部１４２０とを含む。取得部１４２０は、直動アクチュエータ１４２１と、回転アクチュエータ１４２２と、真空吸着盤１４２３とを含む。配置検出装置１４１０は、配置検出装置１００と同一または類似であってよい。以降、図１５の構成例を参照しながら説明する。
【００６１】
配置検出装置１４１０は、Ｚ軸の原点に配置された物体を検出し、物体の平面領域を検出する。さらに、配置検出装置１４１０は、平面領域のレイアウトデータを生成し、平面領域に含まれる直方体の位置情報を計算する。配置検出装置１４１０は、位置情報を取得部１４２０へと出力する。尚、配置検出装置１４１０は、後述される直動アクチュエータ１４２１ａに設置されているが、物体を検出できる任意の位置に設置されればよい。
【００６２】
取得部１４２０は、配置検出装置１４１０から位置情報が入力される。取得部１４２０は、位置情報に基づいて、平面領域に含まれる商品パッケージをピックアップする。尚、取得部１４２０は、後述される直動アクチュエータ１４２１ａの一端が装置固定部１５０１に固定されているが、これに限らない。
【００６３】
直動アクチュエータ１４２１は、さらに、Ｘ軸方向に移動可能な直動アクチュエータ１４２１ａと、Ｙ軸方向に移動可能な直動アクチュエータ１４２１ｂと、Ｚ軸方向に移動可能な直動アクチュエータ１４２１ｃとを含む。直動アクチュエータ１４２１ｃは、一端に回転アクチュエータ１４２２が接続される。直動アクチュエータ１４２１は、位置情報に基づいて、直動アクチュエータ１４２１ｃの延伸方向がピックアップする商品パッケージの重心に一致するように各部を駆動させる。
【００６４】
回転アクチュエータ１４２２は、さらに、Ｚ軸回りに回転可能な回転アクチュエータ１４２２ａと、Ｚ軸に直交する中心軸回りに回転可能な回転アクチュエータ１４２２ｂを含む。回転アクチュエータ１４２２ａは、一端に直動アクチュエータ１４２１ｃが接続され、他端に回転アクチュエータ１４２２ｂが接続される。回転アクチュエータ１４２２ｂは、回転アクチュエータ１４２２ａおよび真空吸着盤１４２３の間に設置される。
【００６５】
回転アクチュエータ１４２２ａは、ピックアップする商品パッケージの面の長辺方向に真空吸着盤１４２３の面の長辺方向が揃うように回転する。回転アクチュエータ１４２２ｂは、ピックアップする商品パッケージの面に真空吸着盤１４２３の面が平行となるように回転する。
【００６６】
真空吸着盤１４２３は、一方の面に回転アクチュエータ１４２２ｂが接続され、他方の面に商品パッケージを吸着することで固定する吸着パッドを備える。真空吸着盤１４２３は、アクチュエータによって商品パッケージが配置される位置まで近づき、商品パッケージのピッキングを行う。
【００６７】
尚、取得部１４２０として、直動アクチュエータ１４２１の代わりに多関節のロボットアームを用いてもよいし、真空吸着盤１４２３の代わりに物を把持するようなロボットハンドを用いてもよい。即ち、取得部１４２０は、商品パッケージをピックアップできるような構成であればよい。
【００６８】
図１６において、ピッキング装置１４００の動作例を示す。このピッキング装置１４００は、絵柄のない商品パッケージにも適用することができる。尚、簡略化のため、配置検出装置１４１０と取得部１４２０の一部とは省略されている。
【００６９】
ピッキング装置１４００は、最も高い位置にある（即ち、計測点から最も近い）商品パッケージ１６０１を最初にピックアップする（図１６（ａ））。次に、ピッキング装置１４００は、平面領域の位置情報に基づいて、商品パッケージ１６０２〜１６０４をそれぞれピックアップする（図１６（ｂ）〜（ｄ））。尚、ピッキング装置１４００は、任意の順番で商品パッケージをピックアップしてもよい。
【００７０】
以上説明したように、第２の実施形態に係るピッキング装置は、前述の第１の実施形態に係る配置検出装置を備える。従って、このピッキング装置によれば、整列された物体の一部がずれている場合であっても物体の配置を個別に検出し、ピックアップすることができる。
【００７１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００７２】
以下に配置検出方法を付記する。
【００７３】
（１）  
接するように組み合わさった同一の形状の複数の多面体の表面を第１の任意の点から計測することと、  
計測された前記表面を抽出し、前記表面のうちの前記第１の任意の点に最も近い部分を含み、且つ、最大の面積を持つ領域を抽出することと、  
前記領域の重心および法線を計算することと、  
前記重心から伸ばした前記法線上の点から見た前記領域に含まれる、少なくとも一つ以上の前記形状を持つ多面体の所望の面のそれぞれの輪郭を示す第１のデータを生成することと、  
前記第１のデータが示す前記それぞれの輪郭の位置を利用して、前記領域に含まれる前記形状を持つ多面体の位置情報を計算することと  
を具備する、配置検出方法。
【００７４】
（２）  
前記計測することは、前記第１の任意の点側の表面上の任意の点の座標の集合を第２のデータとして得る、（１）に記載の配置検出方法。
【００７５】
（３）  
前記生成することは、前記所望の面の輪郭を表す面モデルを前記領域の輪郭を表す平面モデルに敷き詰め、敷き詰められていない部分の面積が最小になる場合の前記所望の面のそれぞれの輪郭を示す第１のデータを生成する、（１）または（２）に記載の配置検出方法。
【００７６】
（４）  
前記生成することは、前記平面モデルの頂点の角度に合わせて前記面モデルの頂点を当てはめ、当てはめた前記面モデルの領域が前記平面モデルの領域に内包される場合に、前記平面モデルの領域から前記面モデルの領域を差し引くことによって、前記第１のデータを生成する、（３）に記載の配置検出方法。
【００７７】
（５）  
前記生成することは、前記平面モデルの最小外接四角形を計算し、前記最小外接四角形の輪郭を表す四角形モデルを抽出し、前記四角形モデルの頂点の角度に合わせて前記面モデルの頂点を当てはめ、当てはめた前記面モデルの領域が前記平面モデルの領域に内包される場合に、前記平面モデルの領域から前記面モデルの領域を差し引くことによって、前記第１のデータを生成する、（３）に記載の配置検出方法。
【００７８】
（６）  
前記生成することは、当てはめた前記面モデルの領域が前記平面モデルのある辺を共有する二つの頂点を含む領域に内包される場合に、前記辺を含む領域に前記面モデルをさらに当てはめ、前記辺を含む領域から前記面モデルの領域を差し引くことによって、前記第１のデータを生成する、（４）または（５）に記載の配置検出方法。
【００７９】
（７）  
前記生成することは、前記平面モデルの凸包を計算し、前記凸包の輪郭を表す凸包モデルを抽出し、前記凸包モデルの最も直角に近い頂点に対して前記面モデルの頂点を当てはめ、当てはめた前記面モデルの領域が前記平面モデルの領域に内包される場合に、前記平面モデルの領域から前記面モデルの領域を差し引くことによって、前記第１のデータを生成する、（３）に記載の配置検出方法。
【００８０】
（８）  
前記所望の面の絵柄を表すテンプレートを用いて、前記第１のデータに対応する前記領域に対してテンプレートマッチングを行うことと  
をさらに具備する、（１）乃至（７）のいずれか１項に記載の配置検出方法。
【００８１】
（９）  
前記所望の面の絵柄の一部をベクトル化して抽出された局所特徴量を用いて、前記第１のデータに対応する前記領域に対して局所特徴量マッチングを行うことと  
をさらに具備する、（１）乃至（７）のいずれか１項に記載の配置検出方法。
【００８２】
（１０）  
前記抽出することは、前記領域が二つ以上の場合に、任意の一つを選択する、（１）乃至（９）のいずれか１項に記載の配置検出方法。
【符号の説明】
【００８３】
１００，１４１０・・・配置検出装置、１１０・・・計測部、１２０・・・画像処理部、１２１・・・平面領域抽出部、１２２・・・平面領域計算部、１２３・・・レイアウトデータ生成部、１２４・・・マッチング部、１２５・・・位置情報計算部、３０１，３０２，８０１，８０２，１００１，１００２，１６０１，１６０２，１６０３，１６０４・・・商品パッケージ、４０１，１２０１・・・輪郭線、４０２，１２０２・・・法線、５０１，７０１，８０３，１１０１，１３０２，１３０４，１３０５・・・平面モデル、５０２・・・面モデル、６０１，７０２・・・四角形モデル、６０２，６０３，６０４・・・頂点、８０４，１１０２・・・レイアウトデータ、８０５・・・テンプレート、１３０１，１３０３・・・凸包モデル、１４００・・・ピッキング装置、１４２０・・・取得部、１４２１，１４２１ａ，１４２１ｂ，１４２１ｃ・・・直動アクチュエータ、１４２２，１４２２ａ，１４２２ｂ・・・回転アクチュエータ、１４２３・・・真空吸着盤、１５０１・・・装置固定部。
【図１】
2017039189.tif 000003
【図２Ａ】
2017039189.tif 000004
【図２Ｂ】
2017039189.tif 000005
【図３】
2017039189.tif 000006
【図４】
2017039189.tif 000007
【図５】
2017039189.tif 000008
【図６】
2017039189.tif 000009
【図７】
2017039189.tif 000010
【図８】
2017039189.tif 000011
【図９】
2017039189.tif 000012
【図１０】
2017039189.tif 000013
【図１１Ａ】
2017039189.tif 000014
【図１１Ｂ】
2017039189.tif 000015
【図１２】
2017039189.tif 000016
【図１３】
2017039189.tif 000017
【図１４】
2017039189.tif 000018
【図１５】
2017039189.tif 000019
【図１６】
2017039189.tif 000020