(57)【要約】【課題】  容器内の複数の商品の配置態様を精度良く検出すること。【解決手段】  商品ピッキング装置は、容器内の底面をＸＹ平面としたとき、ロボットによるピッキング予定の商品が複数配置された容器内のＺ軸方向の距離情報を、Ｘ軸方向の複数位置及びＹ軸方向の複数位置で取得するセンサと、前記Ｘ軸方向の複数位置及び前記Ｙ軸方向の複数位置での前記距離情報から得られるＸ軸方向及びＹ軸方向のそれぞれに沿った距離変化パターンに基づいて、前記容器内のＸ軸方向及びＹ軸方向のそれぞれの方向における前記商品の配置数を算出する処理装置と含む。【選択図】  図６
2015193468.tif 000002
【特許請求の範囲】
【請求項１】
容器内の底面をＸＹ平面としたとき、ロボットによるピッキング予定の商品が複数配置された容器内のＺ軸方向の距離情報を、Ｘ軸方向の複数位置及びＹ軸方向の複数位置で取得するセンサと、
前記Ｘ軸方向の複数位置及び前記Ｙ軸方向の複数位置での前記距離情報から得られるＸ軸方向及びＹ軸方向のそれぞれに沿った距離変化パターンに基づいて、前記容器内のＸ軸方向及びＹ軸方向のそれぞれの方向における前記商品の配置数を算出する処理装置と含む、商品ピッキング装置。
【請求項２】
Ｘ軸方向に沿った前記距離変化パターンは、前記Ｘ軸方向の複数位置において前記Ｙ軸方向の複数位置での前記距離情報を平均または累計したヒストグラムを含み、
Ｙ軸方向に沿った前記距離変化パターンは、前記Ｙ軸方向の複数位置において前記Ｘ軸方向の複数位置での前記距離情報を平均または累計したヒストグラムを含む、請求項１に記載の商品ピッキング装置。
【請求項３】
前記処理装置は、Ｘ軸方向に沿った前記距離変化パターンにおける山部の数を算出すると共に、Ｙ軸方向に沿った前記距離変化パターンにおける山部の数を算出し、算出した前記山部の数に基づいて、前記配置数を算出する、請求項１又は２に記載の商品ピッキング装置。
【請求項４】
前記処理装置は、Ｘ軸方向に沿った前記距離変化パターンにおける前記山部の数と、Ｙ軸方向に沿った前記距離変化パターンにおける前記山部の数とが、前記容器における商品の配置パターンに関する登録情報と整合する場合に、整合する登録情報に基づいて、前記配置数を算出する、請求項３に記載の商品ピッキング装置。
【請求項５】
前記処理装置は、Ｘ軸方向に沿った前記距離変化パターンにおいて各山部の幅が均等となる高さ範囲を算出すると共に、Ｙ軸方向に沿った前記距離変化パターンにおいて各山部の幅が均等となる高さ範囲を算出し、
Ｘ軸方向に沿った前記距離変化パターンにおける前記山部の数と、Ｙ軸方向に沿った前記距離変化パターンにおける前記山部の数とが、前記容器における商品の配置パターンに関する登録情報と整合しない場合であって、Ｘ軸方向及びＹ軸方向のうちの前記高さ範囲が広い方の方向に係る山部の数のみが、前記登録情報と整合する場合に、前記処理装置は、整合する登録情報に基づいて、前記配置数を算出する、請求項４に記載の商品ピッキング装置。
【請求項６】
前記処理装置は、前記容器における商品の配置パターンに関する登録情報に基づいて、前記登録情報に係る登録配置パターン毎に、Ｘ軸方向及びＹ軸方向に沿った前記距離変化パターンのそれぞれに対して商品間の区切りポイントを設定すると共に、設定した区切りポイントにおける距離情報の平均値をＸ軸方向及びＹ軸方向別に算出し、
前記処理装置は、Ｘ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントと、Ｙ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントとに基づいて、前記配置数を算出する、請求項１又は２に記載の商品ピッキング装置。
【請求項７】
前記処理装置は、Ｘ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントと、Ｙ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントとが、前記登録情報に係る登録配置パターンと整合する場合に、整合する前記登録配置パターンに基づいて、前記配置数を算出する、請求項６に記載の商品ピッキング装置。
【請求項８】
Ｘ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントと、Ｙ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントとが、前記登録情報に係る登録配置パターンと整合しない場合、前記処理装置は、Ｘ軸方向及びＹ軸方向のうちの、前記距離情報の平均値と前記距離情報の最大値との差が大きい方の方向の区切りポイントに対応する前記登録情報に係る登録配置パターンに基づいて、前記配置数を算出する、請求項７に記載の商品ピッキング装置。
【請求項９】
前記センサは、前記容器と同一の配置パターンで同一の商品が配置された別の容器に関する前記距離情報を取得し、
前記処理装置は、前記配置数と、前記別の容器に関する前記距離情報とに基づいて、前記別の容器内の各商品に対するピッキング座標を算出する、請求項１〜８のうちのいずれか１項に記載の商品ピッキング装置。
【請求項１０】
前記処理装置は、前記配置数に基づいて、前記商品の個体サイズを算出し、算出した前記商品の個体サイズと、前記別の容器に関する前記距離情報とに基づいて、前記ピッキング座標を算出する、請求項９に記載の商品ピッキング装置。
【請求項１１】
前記センサは、前記ロボットより前記別の容器内の商品がピッキングされる毎に、前記距離情報を取得する、請求項９又は１０に記載の商品ピッキング装置。
【請求項１２】
前記センサは、前記距離情報を含む距離画像を取得し、
前記処理装置は、前記別の容器の底面に対して所定距離以上を表す前記距離情報を持つ画素集合を前記距離画像内で検出し、検出した前記画素集合に基づいて、前記ピッキング座標を算出する、請求項９〜１１のうちのいずれか１項に記載の商品ピッキング装置。
【請求項１３】
前記処理装置は、前記画素集合のサイズが前記商品の個体サイズに整合する場合に、前記画素集合の中心位置に基づいて、前記画素集合に係る商品の前記ピッキング座標を算出する、請求項１２に記載の商品ピッキング装置。
【請求項１４】
前記処理装置は、前記画素集合のサイズが前記商品の個体サイズよりも有意に大きい場合には、前記配置数と、前記商品の個体サイズとに基づいて、前記画素集合の分割態様を決定し、前記画素集合を前記分割態様で分割して得られる各分割画素集合の中心位置に基づいて、前記画素集合に係る各商品の前記ピッキング座標を算出する、請求項１３に記載の商品ピッキング装置。
【請求項１５】
容器内の底面をＸＹ平面としたとき、ロボットによるピッキング予定の商品が複数配置された容器内のＺ軸方向の距離情報を、Ｘ軸方向の複数位置及びＹ軸方向の複数位置で取得するセンサから、前記距離情報を取得し、
前記Ｘ軸方向の複数位置及び前記Ｙ軸方向の複数位置での前記距離情報から得られるＸ軸方向及びＹ軸方向のそれぞれに沿った距離変化パターンに基づいて、前記容器内のＸ軸方向及びＹ軸方向のそれぞれの方向における前記商品の配置数を算出する、
処理をコンピューターに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、商品ピッキング装置及びプログラムに関する。
【背景技術】
【０００２】
乱雑に重なり合って置かれたバラ積み部品（ワーク）に関する距離データと画像データをそれぞれ取得し、複数のワークの３次元位置及び姿勢を認識するバラ積みピッキング装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2010-120141号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、複数の商品が配置された容器内から商品をロボットによりピッキングする場合、容器内の複数の商品の配置態様を正確に検出することが有用である。これは、例えば、同じ配置パターンで容器内に同一商品が配置される場合であっても、容器内の複数の商品が一方側に寄っている場合や、商品同士が接触しあっている場合等があり、容器毎に複数の商品の正確な配置位置が異なりうるためである。
【０００５】
そこで、１つの側面では、本発明は、容器内の複数の商品の配置態様を精度良く検出することが可能な商品ピッキング装置及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００６】
本開示の一局面によれば、容器内の底面をＸＹ平面としたとき、ロボットによるピッキング予定の商品が複数配置された容器内のＺ軸方向の距離情報を、Ｘ軸方向の複数位置及びＹ軸方向の複数位置で取得するセンサと、
前記Ｘ軸方向の複数位置及び前記Ｙ軸方向の複数位置での前記距離情報から得られるＸ軸方向及びＹ軸方向のそれぞれに沿った距離変化パターンに基づいて、前記容器内のＸ軸方向及びＹ軸方向のそれぞれの方向における前記商品の配置数を算出する処理装置と含む、商品ピッキング装置が提供される。
【発明の効果】
【０００７】
容器内の複数の商品の配置態様を精度良く検出することが可能な商品ピッキング装置及びプログラムが得られる。
【図面の簡単な説明】
【０００８】
【図１】商品ピッキング装置の適用されるピッキング設備の一例を概略的に示す図。
【図２】商品ピッキング装置の適用されるピッキング設備の他の一例を概略的に示す図。
【図３】商品ピッキング装置の構成の一例を示す図。
【図４】距離センサと商品容器内の商品と関係の一例を概略的に示す図。
【図５】処理装置のハードウェア構成の一例を示す図。
【図６】処理装置により実行される初期処理の一例を示すフローチャート。
【図７】距離変化パターンの例を示す図。
【図８】距離変化パターンの他の例を示す図。
【図９】距離変化パターンの他の例を示す図。
【図１０】距離変化パターンの他の例を示す図。
【図１１】距離変化パターンの他の例を示す図。
【図１２】横方向のヒストグラム及び縦方向のヒストグラムの説明図。
【図１３】図６のステップ６０４の処理（山数算出処理）の一例を示すフローチャート。
【図１４】山数算出処理の説明図。
【図１５】山数算出処理の説明図。
【図１６】図６のステップ６０６の処理（配置パターン特定処理）の一例を示すフローチャート。
【図１７】図６のステップ６０４の処理（山数算出処理）の他の一例を示すフローチャート。
【図１８】区切りポイントの平均高さの算出方法の説明図。
【図１９】図６のステップ６０６の処理（配置パターン特定処理）の他の一例を示すフローチャート。
【図２０】個体最高高さの説明図。
【図２１】図６のステップ６０８の処理（個体サイズ検出処理）の一例を示すフローチャート。
【図２２】最大個体サイズの算出方法の一例の説明図。
【図２３】標準個体サイズの算出方法の一例の説明図。
【図２４】標準個体サイズの算出方法の他の一例の説明図。
【図２５】商品容器Ｃ１内の各商品のピッキング座標を算出する処理の一例を示すフローチャート。
【図２６】商品容器Ｃ１内の各商品のピッキング座標を算出する処理の他の一例を示すフローチャート。
【図２７】商品個体番号の付与ルールの一例の説明図。
【図２８】分離した画素集合の説明図。
【図２９】接触商品画素集合の分割方法の説明図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら各実施例について詳細に説明する。
【００１０】
図１は、商品ピッキング装置の適用されるピッキング設備の一例を概略的に示す図である。
【００１１】
図１に示すピッキング設備１では、商品配置ライン４に沿って搬送容器Ｃが順次搬送される。尚、この搬送にはコンベア等が用いられる。商品配置ライン４に沿って複数のロボット５０が配置される。各ロボット５０は、商品容器ステーション５２上の商品容器Ｃ１内の商品Ｐをピッキングし、ピッキングした商品Ｐを商品配置ライン４上の搬送容器Ｃ内に配置する。商品容器ステーション５２には、商品容器Ｃ１内の全ての商品Ｐがピッキングされて無くなる毎に新たな商品容器Ｃ１が供給される。尚、各ロボット５０による商品配置時は、搬送容器Ｃは、商品配置ライン４上の所定位置で停止される。各ロボット５０によるピッキングされる商品Ｐの種類は、互いに異なってもよい。尚、ピッキングされる商品Ｐは、任意であるが、例えば袋詰めされた商品（例えば、パン・菓子・食品類）であってよい。このようにして、図１に示すピッキング設備１では、搬送容器Ｃは、複数のロボット５０のうちの所定のロボット５０により商品が配置されながら、下流側へと搬送され、出庫される。尚、各搬送容器Ｃに配置されるべき商品の種類や数量（即ちどのロボット５０が何個商品を配置するか）は、店舗オーダー等により決定される。
【００１２】
図２は、商品ピッキング装置の適用されるピッキング設備の他の一例を概略的に示す図である。
【００１３】
図２に示すピッキング設備２では、商品配置ライン４に沿って搬送容器Ｃが順次搬送される。尚、この搬送にはコンベア等が用いられる。商品配置ライン４に沿って複数のロボット５０が配置される。各ロボット５０は、商品容器ステーション５２上の商品容器Ｃ１内の商品Ｐをピッキングし、ピッキングした商品Ｐを商品配置ライン４上の搬送容器Ｃ内に配置する。商品容器ステーション５２には、商品容器Ｃ１内の全ての商品Ｐがピッキングされて無くなる毎に新たな商品容器Ｃ１が供給される。尚、各ロボット５０による商品配置時は、搬送容器Ｃは、商品配置ライン４上の所定位置で停止される。各ロボット５０によるピッキングされる商品Ｐの種類は、互いに異なってもよい。商品配置が完了した搬送容器Ｃは、商品払出ライン６へと排出される。従って、例えば最も上流側のロボット５０により商品配置が完了する搬送容器Ｃは、その位置で商品払出ライン６へと排出される。商品払出ライン６へと排出された搬送容器Ｃは、下流側へと搬送され、出庫される。
【００１４】
図１及び図２に示すピッキング設備１及び２において、各ロボット５０は、後述する処理装置１００からピッキング座標をピッキング指示を受けると、ピッキング座標に向けて商品挟持部（アーム）を動かして商品をピッキングする。尚、ロボット５０へピッキング指示を行うアプリケーションは、例えば、ピッキング対象の商品を商品個体番号で指定してピッキング指示を行い、ピッキング後の時点でどの商品個体番号の商品が残っているかを管理する。
【００１５】
尚、図１及び図２に示すピッキング設備１及び２は、あくまで一例であり、以下で説明する商品ピッキング装置は、図１及び図２に示す以外のピッキング設備にも適用可能である。また、ロボット５０の数についても任意であり、究極的にはロボット５０の数は１つであってもよい。商品容器ステーション５２の数は、ロボット５０の数に対応してよい。
【００１６】
図３は、商品ピッキング装置の構成の一例を概略的に示す図である。
【００１７】
商品ピッキング装置１０は、図３に示すように、距離センサ７０と、処理装置１００とを含む。距離センサ７０は、商品容器ステーション５２（図１及び図２参照）毎に設けられる。以下では、代表として、１つの距離センサ７０に関する構成について説明する。
【００１８】
距離センサ７０は、商品容器Ｃ１の所定の商品配置範囲における距離に関する情報（以下、「距離情報」ともいう）を取得する。距離情報は、商品容器Ｃ１の底面をＸＹ平面としたとき、Ｚ軸方向の距離情報である。ここでは、便宜上、距離情報は、商品容器Ｃ１の底面（商品の下面と接触する面）を基準として、商品容器Ｃ１の底面からの距離を表す。但し、距離情報の基準は、商品容器Ｃ１の底面以外であってもよい。距離情報は、Ｘ軸方向及びＹ軸方向のそれぞれに沿った複数点で取得される。複数点の数は、後述のヒストグラムを生成できるのに十分な任意の数であり、その数（分解能）が大きいほど商品容器Ｃ１内の各商品Ｐの配置態様について高精度の検出が可能となる。以下では、一例として、距離センサ７０は、例えばKinect（キネクト）センサのような距離画像を生成するセンサであるとする。距離画像は、Ｘ軸方向及びＹ軸方向のそれぞれに沿った複数点における距離情報を含む。以下では、Ｘ軸方向を「横方向」とも称し、Ｙ軸方向を「縦方向」とも称し、Ｚ軸方向を「高さ方向」とも称する。従って、距離センサ７０により検出される距離は、商品容器Ｃ１の底面からの高さに対応する。商品容器Ｃ１の所定の商品配置範囲に商品Ｐが配置されているときは、距離情報は、商品Ｐの高さに関する情報を含むことになる。
【００１９】
尚、以下では、前提として、商品容器Ｃ１内の各商品Ｐは、原則として、所定の商品配置範囲内にＸ軸方向及びＹ軸方向の２次元で配置される。即ち、各商品Ｐは、商品容器Ｃ１内で乱雑に重なり合ってバラ積みされない。但し、商品容器Ｃ１内の各商品Ｐは、商品の入れ方や搬送時の傾きや衝撃などの影響により、Ｚ軸方向で部分的に重なりあったり、Ｘ軸方向及び／又はＹ軸方向で接触しあったりすることはあり得る。尚、このような傾向は、特に袋詰めされた商品（例えば、パン・菓子・食品類）において生じやすい。所定の商品配置範囲は、任意であり、商品の種類によって異なってもよい。以下では、一例として、所定の商品配置範囲は、商品容器Ｃ１の底面全体に対応する。尚、商品容器Ｃ１の形態は、任意であり、例えば箱やトレーの形態であってよい。
【００２０】
図４は、距離センサ７０と商品容器Ｃ１内の商品Ｐと関係の一例を概略的に示す３面図である。尚、図４に示す例では、商品容器Ｃ１内には商品Ｐが縦に２ずつ横に３列で計６個配置されている。
【００２１】
距離センサ７０は、例えば図４に示すように、商品容器Ｃ１の上方から距離情報を取得する。距離センサ７０は、図４に示すように、商品容器Ｃ１の商品配置範囲の中心付近に対して配置されてよい。距離センサ７０のＺ方向の位置（高さ）は、商品容器Ｃ１の商品配置範囲に亘る距離画像が取得できるように設定されてよい。以下では、説明の都合上、Ｘ軸方向及びＹ軸方向を図４に示すように商品容器Ｃ１の商品配置範囲の横と縦を基準に定め、商品容器Ｃ１の商品配置範囲の角を原点とする。商品容器Ｃ１の商品配置範囲の大きさを横がｂ０、縦がａ０とすると、距離センサ７０は、商品容器Ｃ１の商品配置範囲（ｂ０×ａ０）に係る距離画像を取得する。
【００２２】
処理装置１００は、１つの処理装置により形成されてもよいし、複数の処理装置を含んでもよい。例えば、処理装置１００は、以下の各種処理（図６等）を行う処理装置と、ロボット５０等のピッキング設備の制御を行う処理装置とを別々に含んでもよい。
【００２３】
図５は、処理装置１００のハードウェア構成の一例を示す図である。
【００２４】
図５に示す例では、処理装置１００は、制御部１０１、主記憶部１０２、補助記憶部１０３、ドライブ装置１０４、ネットワークＩ／Ｆ部１０６、入力部１０７を含む。
【００２５】
制御部１０１は、主記憶部１０２や補助記憶部１０３に記憶されたプログラムを実行する演算装置であり、入力部１０７や記憶装置からデータを受け取り、演算、加工した上で、記憶装置などに出力する。
【００２６】
主記憶部１０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部１０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００２７】
補助記憶部１０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００２８】
ドライブ装置１０４は、記録媒体１０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【００２９】
記録媒体１０５は、所定のプログラムを格納する。この記録媒体１０５に格納されたプログラムは、ドライブ装置１０４を介して処理装置１００にインストールされる。インストールされた所定のプログラムは、処理装置１００により実行可能となる。
【００３０】
ネットワークＩ／Ｆ部１０６は、有線及び／又は無線回線などのデータ伝送路により構築されたネットワークを介して接続された通信機能を有する周辺機器と処理装置１００とのインターフェースである。
【００３１】
入力部１０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、マウスやスライスパット等を有する。
【００３２】
尚、図５に示す例において、以下で説明する各種処理等は、プログラムを処理装置１００に実行させることで実現することができる。また、プログラムを記録媒体１０５に記録し、このプログラムが記録された記録媒体１０５を処理装置１００に読み取らせて、以下で説明する各種処理等を実現させることも可能である。なお、記録媒体１０５は、様々なタイプの記録媒体を用いることができる。例えば、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等であってよい。なお、記録媒体１０５には、搬送波は含まれない。
【００３３】
図６は、処理装置１００により実行される初期処理の一例を示すフローチャートである。図６に示す処理は、ある商品容器（以下、説明の都合上、「モデル商品容器」ともいう）内の商品の配置パターン等に関する初期情報を得るために実行される前処理である。モデル商品容器には、所定の配置パターンで商品が配置される。工場の設備や商品の種類によって配置パターンが異なる場合は、モデル商品容器は、配置パターン毎に用意されてよい。図６に示す処理は、商品の配置パターンが異なるモデル商品容器毎に実行されてよい。例えば、図６に示す処理は、取り扱う商品の種類が異なる商品容器ステーション５２毎に実行される。このとき、図６に示す処理は、対応する商品容器ステーション５２に、配置パターンが異なる新たな商品容器Ｃ１が供給されたときに、その商品容器Ｃ１をモデル商品容器として実行されてよい。即ち、モデル商品容器とは、対応する商品容器ステーション５２に供給される１つ目の商品容器であってよい。ここでは、一例として、ある１つのモデル商品容器に対する処理について代表して説明する。他のモデル商品容器に対する処理についても同様であってよい。
【００３４】
ステップ６００では、処理装置１００は、距離センサ７０からモデル商品容器に係る距離画像を取得する。この距離画像は、モデル商品容器が商品容器ステーション５２上に位置するときに距離センサ７０により取得された距離画像であってよい。
【００３５】
ステップ６０２では、処理装置１００は、モデル商品容器に関する距離画像に基づいて、横方向に沿った距離変化パターンと、縦方向に沿った距離変化パターンとを生成する。
【００３６】
図７は、距離変化パターンの例を示す図であり、（Ａ）は、横方向に沿った距離変化パターンの例を示し、（Ｂ）は、縦方向に沿った距離変化パターンを示す。図７では、図４に示したモデル商品容器のＹ＝ａの位置でのＸ軸方向に沿った距離変化パターンが（Ａ）で示され、図４に示したモデル商品容器のＸ＝ｂの位置でのＹ軸方向に沿った距離変化パターンが（Ｂ）で示されている。
【００３７】
図８は、距離変化パターンの他の例を示す図であり、（Ａ）は、横方向に沿った距離変化パターンの例を示し、（Ｂ）は、縦方向に沿った距離変化パターンを示す。図８に示す例では、図４に示したモデル商品容器のＹ軸方向の各位置での高さを総和したＸ軸方向に沿った距離変化パターンが（Ａ）で示されている。また、図８に示す例では、図４に示したモデル商品容器のＸ軸方向の各位置での高さを総和したＹ軸方向に沿った距離変化パターンが（Ｂ）で示されている。尚、図８に示す距離変化パターンは、図９乃至図１１等に示すヒストグラムと実質的に同一である。
【００３８】
図９乃至図１１は、距離変化パターンの他の例を示す図であり、それぞれ、（Ａ）は、横方向に沿った距離変化パターンの例を示し、（Ｂ）は、縦方向に沿った距離変化パターンを示す。図９乃至図１１に示す例では、距離変化パターンは、ヒストグラムで表れている。（Ａ）は、横方向のヒストグラムであり、（Ｂ）は、縦方向のヒストグラムである。図９乃至図１１に示す例では、モデル商品容器における商品の配置パターンが図４に示した例とは異なる。具体的には、図９に示す例では、横方向に５個、縦方向に２個の配置パターンに関するヒストグラムが示されている。図１０に示す例では、横方向に４個、縦方向に４個の配置パターンに関するヒストグラムが示されている。図１１に示す例では、横方向に７個、縦方向に２個の配置パターンに関するヒストグラムが示されている。尚、以下では、横方向にｍ個、縦方向にｎ個の配置パターンについては、「ｍ×ｎの配置パターン」とも表す。
【００３９】
図１２は、横方向のヒストグラム及び縦方向のヒストグラムの説明図である。図１２には、４×４の配置パターンで商品が配列されたモデル商品容器に関する距離画像Ｍが模式的に示されている。距離画像Ｍには、１５×１３のマス目（点線）が付与されているが、このマス目は説明用である。横方向のヒストグラムは、符号Ａで示すように、横方向の１５個の列のそれぞれについて、縦方向に１３個のマス内の距離情報を平均化することで生成されてもよい。同様に、縦方向のヒストグラムは、符号Ｂで示すように、縦方向の１３個の行のそれぞれについて、横方向に１５個のマス内の距離情報を平均化することで生成されてもよい。尚、一のマス内の距離情報は、そのマス内の距離情報の平均であってもよいし、代表値であってもよいし、任意である。尚、図１２に示す例では、１５×１３のマス目でヒストグラムが生成されているが、ヒストグラムを生成する際の分解能は任意である。
【００４０】
図６に戻るに、ステップ６０４では、処理装置１００は、上記ステップ６０２で得た距離変化パターンに基づいて、Ｘ軸方向の変化パターンにおける山の数Ｎｘと、Ｙ軸方向の変化パターンにおける山の数Ｎｙを算出する。例えば図８に示す例では、Ｘ軸方向の山の数Ｎｘ（以下、「Ｘ軸方向山数Ｎｘ」ともいう）は、３つであり、Ｙ軸方向の山の数Ｎｙ（以下、「Ｙ軸方向山数Ｎｙ」ともいう）は、２つである。同様に、例えば、図９に示す例では、Ｘ軸方向山数Ｎｘは、５つであり、Ｙ軸方向山数Ｎｙは、２つである。かかる変化パターンの山は、商品の存在を示唆し、山の数は、商品の数（商品配置数）を示唆する。尚、山の数に代えて、谷の数を算出してもよい。
【００４１】
ステップ６０６では、処理装置１００は、上記ステップ６０４で得たＸ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙに基づいて、モデル商品容器における商品の配置パターンを特定する。即ち、モデル商品容器におけるＸ軸方向及びＹ軸方向のそれぞれの商品配置数を特定する。簡易的には、処理装置１００は、Ｎｘ×Ｎｙの配置パターンであると特定してもよい。これは、Ｘ軸方向の変化パターンにおける山の数（Ｘ軸方向山数Ｎｘ）は、Ｘ軸方向の商品配置数を表し、Ｙ軸方向山数Ｎｙは、Ｙ軸方向の商品配置数を表す可能性が高いためである。但し、Ｎｘ×Ｎｙの配置パターンが、実際に取りうる複数の配置パターン内に存在しない場合は、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙのそれぞれの信頼性の高低に応じて、他の態様で配置パターンを特定してもよい。実際に取りうる複数の配置パターンは、予め登録されてよい。これについては後述する。
【００４２】
ステップ６０８では、処理装置１００は、上記ステップ６０４で特定した配置パターンに基づいて、モデル商品容器内の商品の標準個体サイズを特定する。尚、以下の説明において、"サイズ"とは、Ｘ軸方向及びＹ軸方向のそれぞれの長さで規定される２次元のサイズであるとする。商品の標準個体サイズは、商品の種類や、商品の各配置パターンに対応付けられて予め登録されていてもよい。この場合、処理装置１００は、上記ステップ６０４で特定した配置パターンに応じた標準個体サイズ（登録情報）を採用してよい。
【００４３】
図６に示す処理によれば、モデル商品容器における商品の配置パターンに関する情報を取得することができる。また、商品の標準個体サイズに関する情報を取得することができる。このようにして取得された商品の配置パターン及び標準個体サイズに関する情報は、初期パラメータとして所定の記憶装置（例えば主記憶部１０２）に記憶される。以下では、このようにして取得された商品の配置パターン関する情報を「配置パターン情報」とも称し、標準個体サイズに関する情報を「個体サイズ情報」とも称する。配置パターン情報等は、モデル商品容器と同じ配置パターンで商品が配置される他の商品容器Ｃ１内の各商品のピッキング座標を算出するために使用することができる。
【００４４】
尚、図６に示す処理において、上記ステップ６０８の処理は、個体サイズ情報が後述するピッキング座標を算出するために不要である構成（例えば図２５参照）においては省略されてもよい。
【００４５】
図１３は、図６のステップ６０４の処理（山数算出処理）の一例を示すフローチャートである。図１３に示す処理は、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙをそれぞれ得るために、それぞれの方向の距離変化パターンを用いて、別々に実行される。以下では、一例として、Ｘ軸方向の距離変化パターンを用いて、Ｘ軸方向山数Ｎｘを算出する場合について説明する。Ｙ軸方向の距離変化パターンを用いて、Ｙ軸方向山数ＮＹを算出する方法も同様である。
【００４６】
ステップ１３００では、処理装置１００は、距離変化パターンにおける谷部を、距離変化パターンの底面側から探索する。図１４に示す例では、距離変化パターンはヒストグラムである。図１４にて矢印Ｚ１で示すように、距離変化パターンの底面側から上方（高さの高い方）に向かって谷部が探索される。具体的には、高さが一定の直線Ｓ（以下、「探索直線Ｓ」という）の高さｈを０から徐々に増加させていき、距離変化パターンにおいて探索直線Ｓよりも低くなるＸ軸方向の範囲が出現すると、その領域が谷部として検出される。尚、図１４に示す例では、探索直線Ｓが高さｈ１まで上昇したときに、５つの谷部Ｖ１乃至Ｖ４が検出される。
【００４７】
ステップ１３０２では、処理装置１００は、各山部の横幅が均等であるか否かを判定する。山部の横幅は、本例ではＸ軸方向の幅であり、隣接する谷部間の幅に対応する。尚、山部の横幅は、上記ステップ１３００で谷部を検出したときの探索直線Ｓの高さにて算出される。例えば、図１４に示す例では、探索直線Ｓが高さｈ１まで上昇したときに谷部Ｖ１乃至Ｖ４を検出しているので、処理装置１００は、高さｈ１における各山部の横幅Ｗ１，Ｗ２，Ｗ３を算出する。
【００４８】
尚、本ステップ１３０２において、均等とは、必ずしも完全な均等を意味せず、ある程度の誤差を伴った均等である。例えば、３０％以内の誤差範囲を均等としてもよい。例えば、各山部の横幅の最大値と平均値を用いて、最大値の５０％以上の横幅を持ち、平均値に対して３０％以内の誤差範囲内の横幅を持つ各山部については、横幅が均等であるとみなしてもよい。
【００４９】
本ステップ１３０２において、各山部の横幅が均等である場合は、ステップ１３０４に進む。各山部の横幅が均等でない場合は、ステップ１３００に戻る。例えば、図１４に示す例では、高さｈ１における各山部の横幅Ｗ１，Ｗ２，Ｗ３は、均等でない（Ｗ３が有意に大きいので）、ステップ１３００に戻ることになる。この場合、ステップ１３００では、新たな谷部が見つかるまで、探索直線Ｓの高さが更に増加される。この結果、図１５に示す例では、探索直線Ｓが高さｈ２まで上昇したときに新たな谷部Ｖ５を検出されることになる。尚、ステップ１３００において、探索直線Ｓの高さが上限値まで増加されても谷部が新たに検出されない場合は、Ｘ軸方向山数Ｎｘを"不定"として図１３の処理を終了してよい。
【００５０】
ステップ１３０４では、処理装置１００は、山部の数（本例ではＸ軸方向山数Ｎｘ）を算出する。例えば、図１５に示す例では、Ｘ軸方向山数Ｎｘは、"４"となる。
【００５１】
図１３に示す処理によれば、距離変化パターンにおける山部の横幅を考慮することで、Ｘ軸方向における商品配置数に対応するＸ軸方向山数Ｎｘを精度良く算出することができる。具体的には、各山部は、基本的に、モデル商品容器内の各商品に起因して形成される。モデル商品容器内の各商品は同一である。従って、各山部がモデル商品容器内の各商品に対応して検出されている場合には、各山部の横幅は均等になる傾向がある。図１３に示す処理によれば、かかる傾向を利用することで、Ｘ軸方向における商品配置数に対応するＸ軸方向山数Ｎｘを精度良く算出することができる。
【００５２】
尚、図１３に示す処理では、ステップ１３０２で肯定判定となった場合は、その時点の山部の数が採用されるが、更に探索直線Ｓの高さを上昇させ、横幅が均等な山部の数が増加するか否かを確認してもよい。横幅が均等な山部の数が増加した場合は、その増加後の山部の数（Ｘ軸方向山数Ｎｘ）を採用することとしてよい。
【００５３】
図１６は、図６のステップ６０６の処理（配置パターン特定処理）の一例を示すフローチャートである。ここでは、前提として、商品の配置パターンのうち、実際に取りうる配置パターンが全て予め登録されているものとする。以下では、このようにして登録されている配置パターンを「登録配置パターン」とも称する。
【００５４】
ステップ１６００では、処理装置１００は、上記ステップ６０４で得たＸ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙに対応した登録配置パターンが存在するか否かを判定する。即ち、処理装置１００は、Ｎｘ×Ｎｙの登録配置パターンが存在するか否かを判定する。Ｎｘ×Ｎｙの登録配置パターンが存在する場合は、ステップ１６０２に進み、それ以外の場合は、ステップ１６０４に進む。
【００５５】
ステップ１６０２では、処理装置１００は、モデル商品容器の配置パターンをＮｘ×Ｎｙの配置パターンと確定する。
【００５６】
ステップ１６０４では、処理装置１００は、谷部の底からの各山部の高さＨ（以下、「山部高さＨ」という）を算出する。谷部の底は、探索直線Ｓの現在の高さに対応する。山部高さＨは、各山部の横幅が均等となる区間（高さ方向の範囲）として算出される。山部高さＨは、各山部の横幅が均等が崩れるまで探索直線Ｓの高さを増加したときの高さの増分に対応する。図１５に示す例では、探索直線Ｓの高さをｈ３まで増加したときに、各山部の横幅が均等が崩れる。従って、この場合、山部高さＨは、ｈ３−ｈ２となる。尚、処理装置１００は、山部高さＨを、Ｘ軸方向及びＹ軸方向のそれぞれの距離変化パターンに対してそれぞれ算出する。
【００５７】
ステップ１６０６では、処理装置１００は、Ｘ軸方向とＹ軸方向のうち、距離変化パターンに係る山部高さＨが高い方の方向を選択する。例えば、Ｘ軸方向に係る距離変化パターンに係る山部高さＨがＹ軸方向に係る距離変化パターンに係る山部高さＨよりも高い場合は、Ｘ軸方向が選択される。
【００５８】
ステップ１６０８では、処理装置１００は、上記ステップ１６０６で選択した方向に係る山数を、同方向に係る商品配置数とする登録配置パターンが存在するか否かを判定する。例えば、Ｘ軸方向が選択された場合は、Ｘ軸方向山数ＮｘをＸ軸方向に係る商品配置数とする登録配置パターンが存在するか否かが判定される。例えば、Ｎｘ＝４のとき、例えば４×４の登録配置パターンが存在する場合、本ステップの判定結果は肯定判定となる。本ステップの判定結果が肯定判定の場合は、ステップ１６１０に進み、それ以外の場合は、ステップ１６１２に進む。
【００５９】
ステップ１６１０では、処理装置１００は、上記ステップ１６０６で選択した方向に係る山数と一致する商品配置数を同方向において持つ登録配置パターンを、モデル商品容器の配置パターンと確定する。例えば、Ｘ軸方向が選択され且つＸ軸方向山数Ｎｘ＝４のとき、４×４の配置パターンが登録されていれば、４×４の配置パターンを、モデル商品容器の配置パターンと確定する。
【００６０】
ステップ１６１２では、処理装置１００は、上記ステップ１６０６で選択されなかった方の方向を選択する。即ち、処理装置１００は、Ｘ軸方向とＹ軸方向のうち、距離変化パターンに係る山部高さＨが低い方の方向を選択する。
【００６１】
ステップ１６１４では、処理装置１００は、上記ステップ１６０８と同様、上記ステップ１６１２で選択した方向に係る山数を、同方向に係る商品配置数とする登録配置パターンが存在するか否かを判定する。本ステップの判定結果が肯定判定の場合は、ステップ１６１６に進み、それ以外の場合は、ステップ１６１８に進む。
【００６２】
ステップ１６１６では、処理装置１００は、上記ステップ１６１２で選択した方向に係る山数と一致する商品配置数を同方向において持つ登録配置パターンを、モデル商品容器の配置パターンと確定する。
【００６３】
ステップ１６１８では、処理装置１００は、モデル商品容器の配置パターンは"不定"と判定する。
【００６４】
図１６に示す処理によれば、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙと登録配置パターンとの整合性を判断することで、モデル商品容器における商品の配置パターンを精度良く特定することができる（ステップ１６０２参照）。
【００６５】
ところで、モデル商品容器内の各商品は、上述の如く、２次元配置されるので、距離画像に基づいて上述の如く算出されるＸ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙは、登録配置パターンと完全に整合する傾向となる。但し、実際には、モデル商品容器内の各商品は、商品の入れ方や搬送時の傾きや衝撃などの影響により、Ｚ軸方向で部分的に重なりあったり、Ｘ軸方向及び／又はＹ軸方向で接触しあったりすることがありうる。この場合、Ｘ軸方向又はＹ軸方向の距離変化パターンにおいて山部が顕著に現れず、その結果、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙが登録配置パターンと完全に整合しないことがありうる。
【００６６】
この点、図１６に示す処理によれば、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙが登録配置パターンと完全に整合しない場合でも、部分的に整合する登録配置パターンを用いて商品の配置パターンを特定することができる（ステップ１６１０及びステップ１６１６参照）。この際、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙのうち、山部高さＨが高い方の方向における山数を考慮することで、商品の配置パターンを精度良く特定することができる。これは、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙのうち、山部高さＨが高い方の方向における山数の方が、低い方の方向における山数よりも信頼性が相対的に高いためである。
【００６７】
尚、図１６に示す処理は、図１３に示した処理と組合わせて実行されてよい。また、図１３に示した処理では、山部の高さを考慮せずにＸ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙを算出しているが、山部の高さが一定値以上ある場合に限り、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙを算出してもよい。
【００６８】
図１７は、図６のステップ６０４の処理（山数算出処理）の他の一例を示すフローチャートである。ここでは、前提として、登録配置パターンが存在するものとする。
【００６９】
ステップ１７００では、処理装置１００は、登録配置パターンに基づく商品配置数毎に、各商品配置数に係る区切りポイントをＸ軸方向及びＹ軸方向の距離変化パターンに当てはめ、区切りポイントの平均高さを算出する。区切りポイントとは、商品間を区切るラインの位置に対応する。例えば、２×６の配置パターンの場合、Ｘ軸方向の商品配置数は、２つであるので、Ｘ軸方向の区切りポイントは、商品配置範囲のＸ軸方向の幅ｂ０（図４参照）の半分の位置に対応する。また、この場合、Ｙ軸方向の商品配置数は、６つであるので、Ｙ軸方向の区切りポイントは、商品配置範囲のＹ軸方向の幅ａ０（図４参照）の１／６毎の位置に対応する。
【００７０】
図１８は、区切りポイントの平均高さの算出方法の説明図である。尚、図１８には、距離変化パターンが曲線のパターンで示されているが、距離変化パターンはヒストグラムであってもよい。図１８において、（Ａ）は、登録配置パターンが２×２の配置パターンの場合のＸ軸方向の区切りポイントＬ１を示す。区切りポイントＬ１は、商品配置範囲のＸ軸方向を均等に２分割したときの分割線の位置に対応する。このとき、区切りポイントＬ１の平均高さは、区切りポイントＬ１における距離変化パターンの高さ（図１８（Ａ）の交点Ｐ１の高さ）に対応する。同様に、図１８において、（Ｂ）は、登録配置パターンが３×４の配置パターンの場合のＸ軸方向の区切りポイントＬ２、Ｌ３を示す。区切りポイントＬ２、Ｌ３は、商品配置範囲のＸ軸方向を均等に３分割したときの分割線の位置に対応する。このとき、区切りポイントＬ２、Ｌ３の平均高さは、区切りポイントＬ２、Ｌ３のそれぞれにおける距離変化パターンの高さ（図１８（Ｂ）の交点Ｐ２、Ｐ３の高さ）の平均値に対応する。同様に、図１８において、（Ｃ）は、登録配置パターンが４×４の配置パターンの場合のＸ軸方向の区切りポイントＬ４〜Ｌ６を示す。区切りポイントＬ４〜Ｌ６は、商品配置範囲のＸ軸方向を均等に４分割したときの分割線の位置に対応する。このとき、区切りポイントＬ４〜Ｌ６の平均高さは、区切りポイントＬ４〜Ｌ６のそれぞれにおける距離変化パターンの高さ（図１８（Ｃ）の交点Ｐ４〜Ｐ６の高さ）の平均値に対応する。同様に、図１８において、（Ｄ）は、登録配置パターンが６×２の配置パターンの場合のＸ軸方向の区切りポイントＬ７〜Ｌ１１を示す。区切りポイントＬ７〜Ｌ１１は、商品配置範囲のＸ軸方向を均等に６分割したときの分割線の位置に対応する。このとき、区切りポイントＬ７〜Ｌ１１の平均高さは、区切りポイントＬ７〜Ｌ１１のそれぞれにおける距離変化パターンの高さ（図１８（Ｄ）の交点Ｐ７〜Ｐ１１の高さ）の平均値に対応する。
【００７１】
図１７に戻るに、ステップ１７０２では、処理装置１００は、上記ステップ１７００で求めた各区切りポイントの平均高さに基づいて、平均高さが最小となる区切りポイントを選択する。このとき、２つ以上の区切りポイントの平均高さが同等であるときは、処理装置１００は、商品配置数が多い方の区切りポイントを選択する。例えば図１８に示す例では、３×４の配置パターンの登録配置パターンに係る区切りポイントの平均高さと、４×４の配置パターンの登録配置パターンに係る区切りポイントの平均高さとが同等である。この場合、商品配置数が多い方の区切りポイントＬ４〜Ｌ６が選択されることになる。これは、区切りポイント（商品配置数）が多くても平均高さが低いことは、その区切りポイントが正解である可能性が高いためである。即ち、２つ以上の区切りポイントの平均高さが同等であるときは、商品配置数が多い方の区切りポイントに商品配置数が少ない方の区切りポイントが含まれている可能性が高く、商品配置数が多い方の区切りポイントが正解である可能性が高いためである。
【００７２】
本ステップ１７０２では、処理装置１００は、Ｘ軸方向及びＹ軸方向のそれぞれについて、平均高さが最小となる区切りポイントを選択する。
【００７３】
ステップ１７０４では、処理装置１００は、上記ステップ１７０２で選択した区切りポイントに基づいて、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙを算出する。このとき、Ｘ軸方向山数Ｎｘは、選択したＸ軸方向に係る区切りポイントの数に１を足すことで算出される。同様に、Ｙ軸方向山数Ｎｙは、選択したＹ軸方向に係る区切りポイントの数に１を足すことで算出される。例えば、選択したＸ軸方向に係る区切りポイントの数が"３"であるとき（図１８（Ｃ）参照）、Ｘ軸方向山数Ｎｘは、３＋１＝４となる。
【００７４】
図１７に示す処理によれば、距離変化パターンと登録配置パターンとの整合性を考慮することで、Ｘ軸方向及びＹ軸方向における商品配置数（商品の配置パターン）に対応するＸ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙを精度良く算出することができる。具体的には、各山部は、基本的に、モデル商品容器内の各商品に起因して形成される。区切りポイントが各山部間に存在する場合は、区切りポイントの平均高さは小さくなる。従って、各山部がモデル商品容器内の各商品に対応して検出されている場合には、区切りポイントの平均高さは小さくなる傾向がある。図１３に示す処理によれば、かかる傾向を利用することで、Ｘ軸方向及びＹ軸方向における商品配置数に対応するＸ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙを精度良く算出することができる。
【００７５】
図１９は、図６のステップ６０６の処理（配置パターン特定処理）の他の一例を示すフローチャートである。図１９に示す処理は、図１６に示した処理に対して、ステップ１９０４の処理が主に異なる。以下では、図１６に示した処理と同様であってよい処理については、同一のステップ番号を付して説明を省略する。図１９に示す処理は、図１７に示した処理と組み合わせて実行される。即ち、図１９に示す処理は、図６のステップ６０４が図１７に示した処理により実現された場合の図６のステップ６０４に後続するステップ６０６の処理の一例である。
【００７６】
ステップ１９０４では、処理装置１００は、区切りポイントの平均高さに対する個体最高高さＨ１を算出する。区切りポイントの平均高さとしては、図１７のステップ１７０２で選択した区切りポイントに係る平均高さが用いられる。尚、処理装置１００は、個体最高高さＨ１を、Ｘ軸方向及びＹ軸方向のそれぞれの距離変化パターンに対してそれぞれ算出する。個体最高高さＨ１は、区切りポイントの平均高さを基準としたときの距離変化パターンの最高高さに対応する。距離変化パターンの最高高さは、基本的には、モデル商品容器内の商品に起因して発生する。図２０は、個体最高高さＨ１の説明図であり、（Ａ）は、個体最高高さＨ１が比較的大きい場合を示し、（Ｂ）は、個体最高高さＨ１が比較的小さい場合を示す。図２０（Ａ）は、図１７のステップ１７０２で区切りポイントＬ４〜Ｌ６が選択された場合の個体最高高さＨ１の説明図である。図２０（Ｂ）は、図１７のステップ１７０２で区切りポイントＬ７〜Ｌ１１が選択された場合の個体最高高さＨ１の説明図である。尚、図２０（Ａ）と図２０（Ｂ）とでは、距離変化パターンが異なる。
【００７７】
ステップ１９０６では、処理装置１００は、Ｘ軸方向とＹ軸方向のうち、距離変化パターンに係る個体最高高さＨ１が高い方の方向を選択する。例えば、Ｘ軸方向に係る距離変化パターンに係る個体最高高さＨ１がＹ軸方向に係る距離変化パターンに係る個体最高高さＨ１よりも高い場合は、Ｘ軸方向が選択される。
【００７８】
ステップ１９１２では、処理装置１００は、Ｘ軸方向とＹ軸方向のうち、距離変化パターンに係る個体最高高さＨ１が低い方の方向を選択する。
【００７９】
図１９に示す処理によれば、図１６に示した処理と同様、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙと登録配置パターンとの整合性を判断することで、モデル商品容器における商品の配置パターンを精度良く特定することができる（ステップ１６０２参照）。
【００８０】
ところで、上述の如く、モデル商品容器内の各商品は、商品の入れ方や搬送時の傾きや衝撃などの影響により、Ｚ軸方向で部分的に重なりあったり、Ｘ軸方向及び／又はＹ軸方向で接触しあったりすることがありうる。この場合、Ｘ軸方向又はＹ軸方向の距離変化パターンにおいて区切りポイントの平均高さが顕著に低くならず（図２０（Ｂ）参照）、その結果、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙが登録配置パターンと完全に整合しないことがありうる。
【００８１】
この点、図１９に示す処理によれば、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙが登録配置パターンと完全に整合しない場合でも、部分的に整合する登録配置パターンを用いて商品の配置パターンを特定することができる（ステップ１６１０及びステップ１６１６）。この際、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙのうち、個体最高高さＨ１が高い方の方向における山数を考慮することで、商品の配置パターンを精度良く特定することができる。これは、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙのうち、個体最高高さＨ１が高い方の方向における山数の方が、低い方の方向における山数よりも信頼性が相対的に高いためである。
【００８２】
尚、図１９に示す処理と図１７に示した処理とを組み合わせる場合、図１７に示すステップ１７０４において、個体最高高さＨ１が一定値以上ある場合に限り、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙを算出してもよい。即ち、図１７に示した処理では、個体最高高さＨ１を考慮せずにＸ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙを算出しているが、個体最高高さＨ１が一定値以上ある場合に限り、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙを算出してもよい。
【００８３】
また、図１９に示す処理と図１７に示した処理とを組み合わせる場合、上記の例では、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙと登録配置パターンとの整合性を判断しているが、他のパラメータと登録配置パターンとの整合性を判断してもよい。他のパラメータは、Ｘ軸方向山数Ｎｘ及びＹ軸方向山数Ｎｙに関連するパラメータであり、例えば、図１７のステップ１７０２で選択した区切りポイントの数であってもよい。
【００８４】
尚、図１９に示す処理は、図１６に示した処理と組み合わせて実行されてもよい。例えば、図１６に示した処理において、ステップ１６１８に進む場合に、図１９に示す処理（図１７に示した処理）が実行されてもよい。即ち、図１６に示す方法により商品の配置パターンが特定できない場合に、図１９に示した方法により商品の配置パターンを特定してもよい。或いは、逆に、図１９に示した処理において、ステップ１６１８に進む場合に、図１６に示す処理（図１３に示した処理）が実行されてもよい。
【００８５】
図２１は、図６のステップ６０８の処理（個体サイズ検出処理）の一例を示すフローチャートである。
【００８６】
ステップ２１００では、処理装置１００は、特定した配置パターンに基づいて、モデル商品容器内の商品に関する最大個体サイズを算出する。最大個体サイズは、商品配置範囲に係る画素領域のサイズを配置パターンに基づくＸ軸方向及びＹ軸方向のそれぞれの商品個数で割ることで算出されてもよい。図２２に示す例は、４×３の配置パターンが特定された例であり、この場合、最大個体サイズは、商品配置範囲に係る画素領域のＸ軸方向の長さを４で均等に割り且つ商品配置範囲に係る画素領域のＹ軸方向の長さを３で均等に割ることで算出される。
【００８７】
ステップ２１０２では、処理装置１００は、上記ステップ２１００で得た最大個体サイズに基づいて、距離画像内にノイズ除去面積以上且つ最大個体サイズ以下の画素集合が存在するか否かを判定する。ノイズ除去面積とは、距離画像内のノイズに係る画素集合を除去するための設定値である。ノイズ除去面積以上且つ最大個体サイズ以下の画素集合は、モデル商品容器の底面よりも僅かに高い高さ（所定の閾値）で探索されてよい。即ち、ノイズ除去面積以上且つ最大個体サイズ以下の画素集合は、所定の閾値以上の距離情報を持つ画素の中から探索される。これは、商品の断面（Ｚ軸方向視の断面）はモデル商品容器の底面付近の高さで標準的なサイズとなっているものが多いことによる。換言すると、モデル商品容器の底面から比較的高い位置で探索すると、実際の商品のサイズよりも小さい画素集合（商品の上部に対応する画素集合）が探索される可能性が高いためである。距離画像内にノイズ除去面積以上且つ最大個体サイズ以下の画素集合が存在する場合は、ステップ２１０４に進み、それ以外の場合は、ステップ２１０６に進む。
【００８８】
ステップ２１０４では、処理装置１００は、上記ステップ２１０２で検出した画素集合のサイズを、モデル商品容器の商品に関する標準個体サイズとして算出する。標準個体サイズは、上記ステップ２１０２で検出した画素集合の外接矩形で表されてもよい。このとき、外接矩形は、画素集合内の画素に対して外接しつつ完全に囲繞するように形成されてもよいし、各辺が画素集合内の画素を例えば５０％以上を含むように形成されてよい。標準個体サイズは、距離画像によりモデル商品容器の１つの商品が分離して検出されるときの当該商品の画素集合のサイズの取りうる標準値に相当する。例えば、図２３に示す例では、所定の閾値以上の距離情報を持つ画素集合が２つ（Ｇ１，Ｇ２にて指示）が検出されている。画素集合Ｇ１は、ノイズ除去面積以上且つ最大個体サイズ以下の画素集合である。従って、この場合、標準個体サイズは、画素集合Ｇ１のサイズに設定される。尚、画素集合Ｇ２は、複数の商品が分離しない状態で検出された場合の画素集合に対応する。尚、かかる画素集合Ｇ２は、モデル商品容器内の複数の商品が接触しあっているときに発生する傾向がある。
【００８９】
ステップ２１０６では、処理装置１００は、所定の閾値以上の距離情報を持つ画素集合の全体サイズを、配置パターンに基づく商品個数で割ることで、モデル商品容器の商品に関する標準個体サイズを算出する。例えば、図２４に示す例では、所定の閾値以上の距離情報を持つ画素集合Ｇ３が検出されている。この場合、画素集合Ｇ３は、配置パターンを形成する全ての商品に係る画素集合であると見なすことができる。図２４に示す例は、４×３の配置パターンが特定された例であり、この場合、標準個体サイズは、画素集合Ｇ３のサイズをＸ軸方向及びＹ軸方向のそれぞれで４及び３で均等に割ることで算出される。
【００９０】
図２５は、商品容器Ｃ１内の各商品のピッキング座標を算出する処理の一例を示すフローチャートである。図２５の処理は、上述のモデル商品容器と同一の商品が入った商品容器Ｃ１を扱う商品容器ステーション５２に関する処理である。尚、商品容器Ｃ１には、上述のモデル商品容器と同一の所定の配置パターンで商品が配置される。以下、一例として、上述のモデル商品容器と同一の商品が入った商品容器Ｃ１を扱う１つの商品容器ステーション５２に関する処理について代表して説明する。他の商品容器ステーション５２に関する処理も同様であってよい。
【００９１】
図２５の処理は、上述のモデル商品容器の後に商品容器ステーション５２に供給される任意の商品容器Ｃ１に対して実行される。
【００９２】
ステップ２５００では、処理装置１００は、配置パターン情報（図６に示した処理で得られるモデル商品容器内の商品の配置パターンに関する情報）を読み出す。
【００９３】
ステップ２５０２では、処理装置１００は、上記ステップ２５００で読み出した配置パターン情報に基づいて、商品容器Ｃ１内の各商品のピッキング座標を算出する。例えば、処理装置１００は、商品容器Ｃ１の商品配置範囲を配置パターン情報に従って均等に分割する。例えば、配置パターン情報が２×６の配置パターンを表す場合は、商品容器Ｃ１の商品配置範囲を２×６のパターンで１２個の領域に分割する。処理装置１００は、分割して得られる各領域の中心点を各商品のピッキング座標として算出する。
【００９４】
図２５に示す処理によれば、上述の如く取得した配置パターン情報を用いて、商品容器Ｃ１内の各商品のピッキング座標を算出することができる。これは、特に商品容器ステーション５２に供給される商品容器Ｃ１内の商品の配置パターンが固定でない場合に好適である。即ち、商品容器ステーション５２上の商品容器内の商品の種類が変化する場合に好適である。この場合、商品容器ステーション５２上の商品容器内の商品の種類が変化した後の最初の商品容器Ｃ１をモデル商品容器として、図６に示す処理を実行し、その後、図２５に示す処理により、変化後の商品容器Ｃ１内の各商品のピッキング座標を算出すればよい。尚、モデル商品容器内の各商品のピッキング座標についても同様の態様で算出されてもよい。
【００９５】
尚、図２５に示す処理（後述の図２６に示す処理においても同様）において、配置パターン情報が得られない場合（ステップ１６１８参照）、固定（デフォルト）ピッキング座標を採用することとしてよい。配置パターン情報が得られない場合は、例えば商品の上部が真四角の断面で且つ各商品間が隙間なく密接している場合や、商品同士がＸ軸方向及びＹ軸方向の双方で接触している場合等に生じうる。このような商品については、商品容器Ｃ１内で配置位置がずれる可能性が低く、或いは、複数の商品が一方に片寄ることで形状が小さくなる可能性が低く、固定ピッキング座標によるピッキングが可能である場合が多い。
【００９６】
図２６は、商品容器Ｃ１内の各商品のピッキング座標を算出する処理の一例を示すフローチャートである。図２６の処理は、上述のモデル商品容器と同一の商品が入った商品容器Ｃ１を扱う商品容器ステーション５２に関する処理である。以下、一例として、上述のモデル商品容器と同一の商品が入った商品容器Ｃ１を扱う１つの商品容器ステーション５２に関する処理について代表して説明する。他の商品容器ステーション５２に関する処理も同様であってよい。
【００９７】
以下では、商品容器ステーション５２上の商品容器Ｃ１内の商品の種類（及びそれに伴う商品の配置パターン）が変化しない間の処理について説明する。商品容器ステーション５２上の商品容器Ｃ１内の商品の種類が変化した場合は、図２６の処理は、図２５の処理と同様、商品の種類が変化後のモデル商品容器に対する図６に示す処理が実行された後に、実行されればよい。尚、モデル商品容器内の各商品のピッキング座標についても、以下で説明する態様で算出されてもよい。
【００９８】
ステップ２６００では、処理装置１００は、配置パターン情報及び個体サイズ情報を読み出す。尚、個体サイズ情報は、上述の如く、図６（図２１）の処理で得られるモデル商品容器内の商品の標準個体サイズ等に関する情報を含む。
【００９９】
ステップ２６０１では、処理装置１００は、距離センサ７０から商品容器Ｃ１に係る距離画像を取得する。
【０１００】
ステップ２６０２では、処理装置１００は、上記ステップ２６００で得た距離画像に基づいて、高さが所定の閾値以上の画素を１、高さが所定の閾値未満の画素を０とした２値画像を作成する。所定の閾値は、商品容器Ｃ１の底面よりも僅かに高い位置の高さに対応してよい（図２１の説明参照）。以下では、"１"の値を持つ画素の集合を、「商品候補画素集合」とも称する。画素の集合とは、集合内の任意の一の画素（"１"の値を持つ画素）が他の一の画素（"１"の値を持つ画素）と隣接し合っている状態を指す。
【０１０１】
ステップ２６０３では、処理装置１００は、配置パターン情報に基づいて、商品個体番号を付与する。商品個体番号は、任意の態様で付与されてよく、例えば図２７には、４×４の配列パターンについての商品（計１６個）の個体番号の付与ルールの一例が示されている。図２７では、商品個体番号は、○内の数字で示されている。図２７に示す例では、Ｘ軸方向に沿って右から左に進みつつ、Ｙ軸方向の上から下に向かう向きで、商品個体番号が昇順に付与されている。
【０１０２】
例えば、処理装置１００は、商品候補画素集合の全てを囲繞する外形を、配置パターン情報に基づく配置パターンで分割し、それぞれの分割領域の中心座標に対応付けて商品個体番号を付与する。尚、この分割領域は、商品が１つ存在しうると推定される領域に対応するが、ここでの中心座標は、後述の如く、そのままピッキング座標として用いられない。即ち、中心座標は、商品容器Ｃ１内の各商品に商品個体番号を付与するときに各商品を特定するための固有情報に相当する。尚、ステップ２６０３の処理は、ある商品容器Ｃ１に対する初回の処理時においてのみ実行されてもよい。
【０１０３】
ステップ２６０４では、処理装置１００は、個体サイズ情報の標準個体サイズに基づいて、最大個体サイズを算出する。処理装置１００は、標準個体サイズに対して所定の拡大率Ｋ１（＞１）を乗じた値を最大個体サイズとして算出してよい。これは、商品容器Ｃ１内に商品が斜めに配置されること等に起因して、標準個体サイズよりも大きいサイズの商品候補画素集合であっても、１商品に対応する可能性があるためである。尚、処理装置１００は、個体サイズ情報の最大個体サイズをそのまま利用してもよい。
【０１０４】
ステップ２６０６では、処理装置１００は、個体サイズ情報の標準個体サイズに基づいて、最小個体サイズを算出する。処理装置１００は、標準個体サイズに対して所定の縮小率Ｋ２（＜１）を乗じた値を最小個体サイズとして算出してよい。これは、商品容器Ｃ１内に商品が１方向に片寄って配置されること等に起因して、標準個体サイズよりも小さいサイズの商品候補画素集合であっても、１商品に対応する可能性があるためである。
【０１０５】
ステップ２６０８では、処理装置１００は、上記ステップ２６０６で得た最小個体サイズ以上且つ上記ステップ２６０４で得た最大個体サイズ以下のサイズを持つ商品候補画素集合が存在するか否かを判定する。例えば、図２８に示す例では、２つの商品候補画素集合Ｇ１，Ｇ２が検出されている。商品候補画素集合Ｇ１は、最小個体サイズ以上且つ最大個体サイズ以下の商品候補画素集合である。この場合、本ステップ２６０８の判定結果は肯定判定となる。本ステップ２６０８において、最小個体サイズ以上且つ最大個体サイズ以下のサイズを持つ商品候補画素集合が存在する場合は、ステップ２６１０に進み、それ以外の場合は、ステップ２６１２に進む。尚、最小個体サイズ以上且つ最大個体サイズ以下のサイズを持つ商品候補画素集合は、複数検出される場合もある。
【０１０６】
ステップ２６１０では、処理装置１００は、最小個体サイズ以上且つ最大個体サイズ以下のサイズを持つ商品候補画素集合を、１つの商品に係る画素集合（以下、「商品画素集合」という）と認識する。即ち、処理装置１００は、１つの商品に係る分離した商品画素集合と認識する。また、最小個体サイズ以上且つ最大個体サイズ以下のサイズを持つ商品候補画素集合が複数検出された場合は、処理装置１００は、それぞれの商品候補画素集合を商品画素集合として認識する。尚、処理装置１００は、分離した商品画素集合のサイズを算出し、算出したサイズを標準個体サイズとして置き換えてもよいし、個体サイズ情報の標準個体サイズを平均化して補正してもよい。
【０１０７】
ステップ２６１２では、処理装置１００は、上記ステップ２６０４で得た最大個体サイズよりも大きい商品候補画素集合が存在するか否かを判定する。例えば、図２８に示す例では、商品候補画素集合Ｇ２は、最大個体サイズよりもサイズが大きい。この場合、本ステップ２６１２の判定結果は肯定判定となる。最大個体サイズよりも大きい商品候補画素集合が存在する場合は、ステップ２６１４に進み、それ以外の場合は、ステップ２６２０に進む。尚、最大個体サイズよりもサイズが大きい商品候補画素集合は、複数検出される場合もある。
【０１０８】
ステップ２６１４では、処理装置１００は、最大個体サイズよりもサイズが大きい商品候補画素集合を、複数の商品（接触しあっている商品）に係る画素集合（以下、「接触商品画素集合」ともいう）と認識する。処理装置１００は、接触商品画素集合に対するＸ軸方向及びＹ軸方向のそれぞれの分割数（接触商品画素集合に含まれる商品数）を算出する。例えば、処理装置１００は、接触商品画素集合のＸ軸方向の長さを、標準個体サイズのＸ軸方向の長さで割って得られる整数値を、接触商品画素集合に含まれるＸ軸方向の分割数として算出する。同様に、処理装置１００は、接触商品画素集合のＹ軸方向の長さを、標準個体サイズのＹ軸方向の長さで割って得られる整数値を、接触商品画素集合に含まれるＹ軸方向の分割数として算出する。尚、接触商品画素集合の形状が矩形でない場合は、まず、接触商品画素集合を、標準個体サイズのＹ軸方向の長さで均等分割し、それぞれの分割領域ついて、標準個体サイズのＸ軸方向の長さで均等分割し、分割数を算出してもよい。例えば、図２８に示す例では、処理装置１００は、接触商品画素集合Ｇ２を、標準個体サイズのＹ軸方向の長さで均等分割し、それぞれの分割領域Ｇ２１，Ｇ２２，Ｇ２３ついて、標準個体サイズのＸ軸方向の長さで均等分割し、分割数を算出する。
【０１０９】
ステップ２６１６では、処理装置１００は、上記ステップ２６１４で得たＸ軸方向及びＹ軸方向の各分割数に基づいて、接触商品画素集合をＸ軸方向及びＹ軸方向のそれぞれで均等に分割する。尚、接触商品画素集合の形状が矩形でない場合は、処理装置１００は、まず、接触商品画素集合をＹ軸方向で均等分割し、それぞれの分割領域ついて、Ｘ軸方向で均等分割する。例えば、図２８に示す例では、処理装置１００は、接触商品画素集合Ｇ２をＹ軸方向で均等分割し、それぞれの分割領域Ｇ２１，Ｇ２２，Ｇ２３ついてＸ軸方向で均等分割する。この結果、接触商品画素集合が複数の分割領域へと分割され、各分割領域が１つの商品に対応することになる。以下では、この各分割領域を「分割枠」と称する。分割枠は、分割領域そのものであってもよいし、分割領域に外接する矩形の枠であってもよい。以下では、一例として、分割枠は、分割領域に外接する矩形の枠であるとする。このとき、分割枠は、対応する分割領域内の画素を、外接しつつ完全に囲繞するように配置されてもよいし、各辺が例えば５０％以上を含むように配置されてよい。以下では、分割枠内の画素集合は、１つの商品に係る画素集合（接触商品画素集合内の各商品画素集合）に対応するので、商品画素集合とも称する。
【０１１０】
ステップ２６１８では、処理装置１００は、上述の如く算出した分割枠のサイズを、必要に応じて補正する。例えば、分割枠のサイズが上記ステップ２６０６で得た最小個体サイズ以上且つ上記ステップ２６０４で得た最大個体サイズ以下である場合は、処理装置１００は、分割枠のサイズを補正しない。他方、分割枠のサイズが上記ステップ２６０６で得た最小個体サイズ未満である場合は、処理装置１００は、上記ステップ２６０６で得た最小個体サイズに分割枠のサイズを補正する。また、分割枠のサイズが上記ステップ２６０４で得た最大個体サイズよりも大きい場合は、処理装置１００は、上記ステップ２６０４で得た最大個体サイズに分割枠のサイズを補正する。
【０１１１】
また、ステップ２６１８では、処理装置１００は、分割枠の位置を、必要に応じて補正する。この位置の補正は、例えば、上記ステップ２６１６で得た分割枠のサイズが、上述の如く、最大個体サイズ又は最小個体サイズに補正された場合等に必要となりうる。即ち、分割枠のサイズを上述の如く補正すると、特定の分割枠について、サイズに余りや不足が生じる場合がある。また、分割枠間で隙間が発生する場合がある。この場合、処理装置１００は、接触商品画素集合に係る複数の商品のうちの最もピッキング順が早い商品（次のピッキング対象の商品）に係る分割枠の位置を基準として、当該分割枠に向けて他の分割枠を詰めていく態様で、分割枠の位置を補正してもよい。例えば、ピッキング順が図２７に示す商品個体番号の昇順に対応するとき、処理装置１００は、Ｘ軸方向に沿って左から右に、かつ、Ｙ軸方向の下から上に向かう向きで、各分割枠の位置を詰めていく。尚、処理装置１００は、必要に応じて、次のピッキング対象の商品に係る分割枠についても同様の方向に詰めることで補正してもよい。
【０１１２】
ステップ２６２０では、処理装置１００は、各商品画素集合の面積の中心点をそれぞれの商品に係るピッキング座標として算出する。例えば、接触商品画素集合の場合、処理装置１００は、接触商品画素集合を各商品画素集合へと分割したときの分割枠の中心点をそれぞれの商品に係るピッキング座標として算出する。また、分離した商品画素集合の場合（ステップ２６１０参照）、処理装置１００は、分離した商品画素集合の外接矩形の中心点をピッキング座標として算出してもよい。このとき、外接矩形は、分離した商品画素集合内の画素を、各辺が例えば５０％以上を含むように形成されてよい。
【０１１３】
ステップ２６２２では、処理装置１００は、上記ステップ２６２０で算出したピッキング座標に基づいて、次のピッキング対象の商品（１つ以上の商品の場合もある）をロボット５０によりピッキングさせる。即ち、処理装置１００は、ピッキング指示を出力する。この結果、商品容器Ｃ１内の商品の配置パターンは変化し、或いは、商品容器Ｃ１内の商品が全てなくなることで、新たな商品容器Ｃ１が商品容器ステーション５２に供給される。処理装置１００は、ピッキング指示出力後、ロボット５０からの情報に基づいて、商品容器Ｃ１内の商品の残存状態を更新する。商品容器Ｃ１内の商品の残存状態とは、例えば、残りの商品の数（残数）や残りの商品に係る商品個体番号である。尚、商品容器Ｃ１内の商品の残存状態に関する情報は、例えばステップ２６１８で次のピッキング対象の商品を特定するために使用されてよい。ステップ２６２２の処理が終了すると、ステップ２６０１に戻り、処理が繰り返される。
【０１１４】
図２６に示す処理によれば、商品容器Ｃ１に係る距離画像に基づいて、商品容器Ｃ１内の各商品のピッキング座標を算出することができる。これにより、商品容器Ｃ１内の商品の片寄り等に起因して商品容器Ｃ１毎に僅かながら変化しうる各商品の位置に精度良く適合するピッキング座標を算出することができる。また、配置パターン情報を利用するので、距離画像において複数の商品に係る画素集合が互いに分離されていない場合でも、これらの商品のピッキング座標を精度良く算出することができる。また、図２６に示す処理によれば、接触商品画素集合を分割する分割枠のサイズや位置を補正するので、商品容器Ｃ１内の各商品の接触状態（密接度合等）が反映された高い精度のピッキング座標を算出することができる。
【０１１５】
尚、図２６に示す処理によれば、ステップ２６０１からの処理は、新たな商品容器Ｃ１が商品容器ステーション５２に供給される毎に実行されると共に、商品容器Ｃ１内の商品がロボット５０によるピッキングされる毎に実行される。これにより、商品容器Ｃ１毎に僅かに異なりうる各商品の位置に対しても、高い精度のピッキング座標を算出することができる。尚、商品容器Ｃ１内の商品がロボット５０によるピッキングされると、ピッキング動作による外乱等に起因して残りの商品の位置がわずかに変化する場合もある。図２６に示す処理によれば、商品容器Ｃ１内の商品がロボット５０によるピッキングされる毎にステップ２６０１からの処理が実行されるので、かかる変化が生じた場合でも、高い精度のピッキング座標を算出することができる。
【０１１６】
尚、図２６に示す処理では、分割枠のサイズを可変しているが、分割枠のサイズは、固定値であってもよい。この場合、固定値は、個体サイズ情報の標準個体サイズ又は上述の置き換え後の標準個体サイズであってもよい。
【０１１７】
また、図２６に示す処理では、ステップ２６０３で得た中心座標は、ピッキング座標として使用されない。即ち、ピッキング座標は、ステップ２６０４乃至２６２０の処理により算出される。但し、ステップ２６０３で得た中心座標は、ピッキング座標として使用されてもよい。この場合、ステップ２６０４乃至２６２０の処理は省略されてもよい。
【０１１８】
ところで、物流業務におけるコスト効率の改善施策として、上述の如くロボット５０を用いた商品ピッキング作業が考えられる。一般的に、ロボットは、特定の位置に配置された商品をピッキング対象とする、あるいは１つの商品種としては商品自体の形状が一定であるものを対象するのが主流であった。このため、予め決められた固定座標によるピッキング、あるいは画像認識技術を用い、物体の存在位置をロボット座標として指示することで、ロボットによるピッキングが可能であった。
【０１１９】
しかし、特に袋物の商品については形状が安定しないため、実際にピッキング作業向けに（例えば商品容器ステーション５２に）届けられる段階では、前工程の搬送などの影響を受け、各商品が商品容器Ｃ１内の特定位置に配置されていない場合が多々発生する。また、昨今では消費者のニーズの多様化により、メーカー・卸売業者などから店舗に対する納品傾向が少量多品種化しており、店舗へ納入する容器（搬送容器Ｃや商品容器Ｃ１）は同一のものでありながら、実際の商品は様々な形状が存在する。また、商品の形状の違いに起因して、各商品種における商品容器Ｃ１内の商品の配置パターンも多様となるが、作業者による物流業務においてはこの情報が不要である。このため、商品容器Ｃ１内の入数の登録はあるものの、配置パターンについては登録がないことが多い。或いは、同一商品であっても生産ラインの特性（出荷工場）によって複数種の配置パターンとなるケースも発生する。
【０１２０】
従って、特に袋物の商品について予め決められた固定座標によってロボットによるピッキングを行う場合、ピッキングミスが多発する要因となり、作業効率、品質の面で好ましくない。これらの商品群を画像認識技術を用いてピッキング座標を検出する場合、単純な画像認識技術では各商品の存在位置の検出が困難である。これは、各商品の配置が特定位置にないこと、また商品容器Ｃ１内の商品同士と接触していることで各商品の区切りが不明確になることに起因する。
【０１２１】
この点、本実施例によれば、上述の如く、図６に示すような前処理を行うことで、商品の配置パターンの登録がない場合でも、商品の配置パターンを検出することができる。これにより、商品の配置パターンが稼働中に多様に変動する場合であっても、変動後の配置パターンを検出することができる。また、本実施例によれば、商品容器Ｃ１毎に距離画像を取得し、ピッキング座標を算出するので、商品容器Ｃ１毎に商品の配置位置が微妙に異なる場合であっても、精度の良いピッキング座標を算出することができる。また、ピッキング毎に距離画像を取得し、ピッキング座標を更新するので、ピッキングに伴って商品の配置位置が変化した場合でも、精度の良いピッキング座標を算出することができる。また、本実施例によれば、登録配置パターンとの整合性を考慮して、商品の配置パターンを特定するので、各商品の区切りが不明確である場合でも、精度の良いピッキング座標を算出することができる。これにより、ピッキングミスの頻度を低減することができる。また、本実施例によれば、上述の如く、距離画像を用いて商品の配置パターンを検出するので、複数のセンサ（例えばカメラとレーザーセンサ）を組み合わせて用いる必要がなく、簡易な検出手段を実現することができる。
【０１２２】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１２３】
例えば、上述した実施例では、モデル商品容器に後続する商品容器についてはモデル商品容器と同じ商品の配置パターンであることを考慮して、モデル商品容器に対してのみヒストグラム等を用いて配置パターンを特定している。しかしながら、商品容器内の商品の配置パターンが多様に変化する設備等においては、各商品容器に対しても同様のヒストグラム等を用いて配置パターンを特定してもよい。
【０１２４】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
容器内の底面をＸＹ平面としたとき、ロボットによるピッキング予定の商品が複数配置された容器内のＺ軸方向の距離情報を、Ｘ軸方向の複数位置及びＹ軸方向の複数位置で取得するセンサと、
前記Ｘ軸方向の複数位置及び前記Ｙ軸方向の複数位置での前記距離情報から得られるＸ軸方向及びＹ軸方向のそれぞれに沿った距離変化パターンに基づいて、前記容器内のＸ軸方向及びＹ軸方向のそれぞれの方向における前記商品の配置数を算出する処理装置と含む、商品ピッキング装置。
（付記２）
Ｘ軸方向に沿った前記距離変化パターンは、前記Ｘ軸方向の複数位置において前記Ｙ軸方向の複数位置での前記距離情報を平均または累計したヒストグラムを含み、
Ｙ軸方向に沿った前記距離変化パターンは、前記Ｙ軸方向の複数位置において前記Ｘ軸方向の複数位置での前記距離情報を平均または累計したヒストグラムを含む、付記１に記載の商品ピッキング装置。
（付記３）
前記処理装置は、Ｘ軸方向に沿った前記距離変化パターンにおける山部の数を算出すると共に、Ｙ軸方向に沿った前記距離変化パターンにおける山部の数を算出し、算出した山部の数に基づいて、前記配置数を算出する、付記１又は２に記載の商品ピッキング装置。
（付記４）
前記処理装置は、Ｘ軸方向に沿った前記距離変化パターンにおける前記山部の数と、Ｙ軸方向に沿った前記距離変化パターンにおける前記山部の数とを、それぞれ、Ｘ軸方向及びＹ軸方向のそれぞれの方向における前記商品の配置数とする、付記３に記載の商品ピッキング装置。
（付記５）
前記処理装置は、Ｘ軸方向に沿った前記距離変化パターンについては、Ｘ軸方向のそれぞれの幅が均等な山部の数を算出し、Ｙ軸方向に沿った前記距離変化パターンについては、Ｙ軸方向のそれぞれの幅が均等な山部の数を算出する、付記３又は４に記載の商品ピッキング装置。
（付記６）
前記処理装置は、Ｘ軸方向に沿った前記距離変化パターンにおける前記山部の数と、Ｙ軸方向に沿った前記距離変化パターンにおける前記山部の数とが、前記容器における商品の配置パターンに関する登録情報と整合する場合に、整合する登録情報に基づいて、前記配置数を算出する、付記３〜５のうちのいずれか１項に記載の商品ピッキング装置。
（付記７）
前記処理装置は、Ｘ軸方向に沿った前記距離変化パターンにおいて各山部の幅が均等となる高さ範囲を算出すると共に、Ｙ軸方向に沿った前記距離変化パターンにおいて各山部の幅が均等となる高さ範囲を算出し、
Ｘ軸方向に沿った前記距離変化パターンにおける前記山部の数と、Ｙ軸方向に沿った前記距離変化パターンにおける前記山部の数とが、前記容器における商品の配置パターンに関する登録情報と整合しない場合であって、Ｘ軸方向及びＹ軸方向のうちの前記高さ範囲が広い方の方向に係る山部の数のみが、前記登録情報と整合する場合に、前記処理装置は、整合する登録情報に基づいて、前記配置数を算出する、付記６に記載の商品ピッキング装置。
（付記８）
前記処理装置は、算出した前記配置数に基づいて、前記商品の個体サイズを算出する、付記１に記載の商品ピッキング装置。
（付記９）
前記処理装置は、前記容器における商品の配置パターンに関する登録情報に基づいて、前記登録情報に係る登録配置パターン毎に、Ｘ軸方向及びＹ軸方向に沿った前記距離変化パターンのそれぞれに対して商品間の区切りポイントを設定すると共に、設定した区切りポイントにおける距離情報の平均値をＸ軸方向及びＹ軸方向別に算出し、
前記処理装置は、Ｘ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントと、Ｙ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントとに基づいて、前記配置数を算出する、付記１又は２に記載の商品ピッキング装置。
（付記１０）
前記処理装置は、Ｘ軸方向及びＹ軸方向のいずれにおいても、算出した前記距離情報の平均値が同等に最も小さい区切りポイントが複数の登録配置パターンについて発生した場合は、対応する方向における配置数が最も多い登録配置パターンに対応する区切りポイントを用いる、付記９に記載の商品ピッキング装置。
（付記１１）
前記処理装置は、Ｘ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントと、Ｙ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントとが、前記登録情報に係る登録配置パターンと整合する場合に、整合する前記登録配置パターンに基づいて、前記配置数を算出する、付記９又は１０に記載の商品ピッキング装置。
（付記１２）
Ｘ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントと、Ｙ軸方向に関して算出した前記距離情報の平均値が最も小さい区切りポイントとが、前記登録情報に係る登録配置パターンと整合しない場合、前記処理装置は、Ｘ軸方向及びＹ軸方向のうちの、前記距離情報の平均値と前記距離情報の最大値との差が大きい方の方向の区切りポイントに対応する前記登録情報に係る登録配置パターンに基づいて、前記配置数を算出する、付記１１に記載の商品ピッキング装置。
（付記１３）
前記処理装置は、前記配置数に基づいて、前記容器と同一の配置パターンで同一の商品が配置された別の容器内の各商品に対するピッキング座標を算出する、付記１〜１２のうちのいずれか１項に記載の商品ピッキング装置。
（付記１４）
前記センサは、前記容器と同一の配置パターンで同一の商品が配置された別の容器に関する前記距離情報を取得し、
前記処理装置は、前記配置数と、前記別の容器に関する前記距離情報とに基づいて、前記別の容器内の各商品に対するピッキング座標を算出する、付記１〜１２のうちのいずれか１項に記載の商品ピッキング装置。
（付記１５）
前記処理装置は、前記配置数に基づいて、前記商品の個体サイズを算出し、算出した前記商品の個体サイズと、前記別の容器に関する前記距離情報とに基づいて、前記ピッキング座標を算出する、付記１４に記載の商品ピッキング装置。
（付記１６）
前記センサは、前記ロボットより前記別の容器内の商品がピッキングされる毎に、前記距離情報を取得する、付記１４又は１５に記載の商品ピッキング装置。
（付記１７）
前記処理装置は、前記別の容器内における商品の残存状態に関する情報に基づいて、前記ピッキング座標を算出する、付記１４〜１６のうちのいずれか１項に記載の商品ピッキング装置。
（付記１８）
前記センサは、前記距離情報を含む距離画像を取得し、
前記処理装置は、前記別の容器の底面に対して所定距離以上を表す前記距離情報を持つ画素集合を前記距離画像内で検出し、検出した前記画素集合に基づいて、前記ピッキング座標を算出する、付記１４〜１７のうちのいずれか１項に記載の商品ピッキング装置。
（付記１９）
前記処理装置は、前記画素集合のサイズが前記商品の個体サイズに整合する場合に、前記画素集合の中心位置に基づいて、前記画素集合に係る商品の前記ピッキング座標を算出する、付記１８に記載の商品ピッキング装置。
（付記２０）
前記処理装置は、前記画素集合のサイズが前記商品の個体サイズよりも有意に大きい場合には、前記配置数と、前記商品の個体サイズとに基づいて、前記画素集合の分割態様を決定し、前記画素集合を前記分割態様で分割して得られる各分割画素集合の中心位置に基づいて、前記画素集合に係る各商品の前記ピッキング座標を算出する、付記１８に記載の商品ピッキング装置。
（付記２１）
付記１〜２０のうちのいずれか１項に記載の商品ピッキング装置の前記処理装置による各種処理を前記処理装置に実行させるプログラム。
（付記２２）
容器内の底面をＸＹ平面としたとき、ロボットによるピッキング予定の商品が複数配置された容器内のＺ軸方向の距離情報を、Ｘ軸方向の各位置及びＹ軸方向の各位置で取得するセンサから、前記距離情報を取得し、
Ｘ軸方向の各位置及びＹ軸方向の各位置での前記距離情報から得られるＸ軸方向及びＹ軸方向のそれぞれに沿った距離変化パターンに基づいて、前記容器内Ｘ軸方向及びＹ軸方向のそれぞれの方向における前記商品の配置数を算出する、
処理をコンピューターに実行させるプログラム。
（付記２３）
前記商品の配置数に基づいて、前記容器と同一の配置パターンで同一の商品が配置された別の容器内の各商品に対するピッキング座標を算出する、
処理をコンピューターに実行させる付記２２に記載のプログラム。
（付記２４）
容器内の底面をＸＹ平面としたとき、ロボットによるピッキング予定の商品が複数配置された容器内のＺ軸方向の距離情報を、Ｘ軸方向の複数位置及びＹ軸方向の複数位置で取得するセンサから、前記距離情報を取得し、
前記Ｘ軸方向の複数位置及び前記Ｙ軸方向の複数位置での前記距離情報から得られるＸ軸方向及びＹ軸方向のそれぞれに沿った距離変化パターンに基づいて、前記容器内のＸ軸方向及びＹ軸方向のそれぞれの方向における前記商品の配置数を算出することを含む、商品ピッキング方法。
（付記２５）
付記１〜２４における前記商品は、袋詰めされたパン・菓子・食品類である。
【符号の説明】
【０１２５】
１、２    ピッキング設備
４    商品配置ライン
６    商品払出ライン
１０    商品ピッキング装置
５０    ロボット
５２    商品容器ステーション
７０    距離センサ
１００    処理装置
【図１】
2015193468.tif 000003
【図２】
2015193468.tif 000004
【図３】
2015193468.tif 000005
【図４】
2015193468.tif 000006
【図５】
2015193468.tif 000007
【図６】
2015193468.tif 000008
【図７】
2015193468.tif 000009
【図８】
2015193468.tif 000010
【図９】
2015193468.tif 000011
【図１０】
2015193468.tif 000012
【図１１】
2015193468.tif 000013
【図１２】
2015193468.tif 000014
【図１３】
2015193468.tif 000015
【図１４】
2015193468.tif 000016
【図１５】
2015193468.tif 000017
【図１６】
2015193468.tif 000018
【図１７】
2015193468.tif 000019
【図１８】
2015193468.tif 000020
【図１９】
2015193468.tif 000021
【図２０】
2015193468.tif 000022
【図２１】
2015193468.tif 000023
【図２２】
2015193468.tif 000024
【図２３】
2015193468.tif 000025
【図２４】
2015193468.tif 000026
【図２５】
2015193468.tif 000027
【図２６】
2015193468.tif 000028
【図２７】
2015193468.tif 000029
【図２８】
2015193468.tif 000030
【図２９】
2015193468.tif 000031