以下、商品ピッキング装置の一実施形態について、図1〜図13に基づいて詳細に説明する。
図1は、商品ピッキング装置100の構成を概略的に示す図である。図1に示すように、商品ピッキング装置100は、処理装置30と、商品配置ラインL10と、商品払出ラインL20と、完成容器出庫装置80と、空容器供給装置20と、完成容器排出コンベアC3と、を備える。また、商品ピッキング装置100は、商品供給ラインL1〜L4を備える。
処理装置30は、商品ピッキング装置100の各構成が協働して効率よくピッキングを行えるように、各構成の動作を制御する。また、商品ピッキング装置100は、後述する商品供給ラインL1〜L4が備える制御装置40に、ピッキングすべき商品の数を通知する。
商品配置ラインL10は、搬送方向に沿って複数の容器停止ステーションR1、R2、R3、R4と、第1搬送コンベアC1と、バッファステーションB1、B2、B3と、を有する。搬送方向は任意であるが、本実施例においては、図1に示すJ方向であるものとする。なお、商品配置ラインL10は、直線である必要はなく、曲線を含んでもよい。
容器停止ステーションR1、R2、R3、R4は、ピッキングされた商品が配置(収納)される搬送容器が停止する場所である。容器停止ステーションR1、R2、R3、R4のそれぞれには、第1搬送コンベアC1により搬送容器が供給される。なお、容器停止ステーションR1、R2、R3、R4のそれぞれには、対応する商品容器ステーションO1、O2、O3、O4から商品容器が移送される場合がある。
第1搬送コンベアC1は、例えばベルトコンベアやローラコンベア等である。第1搬送コンベアC1は、図1に示すように、商品配置ラインL10内の各ステーション間にそれぞれ設けられる。また、第1搬送コンベアC1は、図1に示すように、空容器供給装置20と最上流の容器停止ステーションR1との間に設けられる。
各第1搬送コンベアC1は、処理装置30の制御の下、互いに独立して動作する。各ステーション間の第1搬送コンベアC1は、各ステーション上の搬送容器を1つ下流側のステーションへと搬送する。また、空容器供給装置20と最上流の容器停止ステーションR1との間の第1搬送コンベアC1は、空容器供給装置20からの空の搬送容器を容器停止ステーションR1に搬送する。搬送容器は、任意の構成であってよく、プラスティックや紙等の任意の材料により形成されてもよい。
なお、各第1搬送コンベアC1を、各ステーションを含めて、K方向に回転軸を持つローラコンベアを複数本J方向に連続的に並べることで形成してもよい。この場合、各ステーションは、対応する領域のローラコンベアを停止状態とすることにより形成される。
バッファステーションB1、B2、B3は、例えば、容器停止ステーションR1、R2、R3、R4間に1つずつ設けられ、第1搬送コンベアC1により搬送容器が供給される。ただし、バッファステーションB1、B2、B3では、商品の搬送容器への配置は実行されない。
商品払出ラインL20は、商品配置ラインL10に並列して設けられる。すなわち、商品払出ラインL20は、商品配置ラインL10から所定距離離れた位置にK方向に並んで配置される。本実施例では、図1に示すように、K方向は、搬送方向に対して垂直な方向であるものとする。なお、商品払出ラインL20は、商品配置ラインL10に対して平行である必要はなく、また、曲線等を含んだ形状であってもよい。
商品払出ラインL20は、搬送方向に沿って複数の完成容器受ステーションS1、S2、S3、S4と、第2搬送コンベアC2と、バッファステーションB4、B5、B6と、を有する。
完成容器受ステーションS1、S2、S3、S4は、商品配置ラインL10における容器停止ステーションR1、R2、R3、R4のそれぞれに対応付けて設けられている。完成容器受ステーションS1、S2、S3、S4には、それぞれ、対応する容器停止ステーションR1、R2、R3、R4上の搬送容器が排出される。例えば、完成容器受ステーションS1には、完成容器排出コンベアC3により、容器停止ステーションR1上の搬送容器が排出される。この排出は、搬送容器内に予定の商品がすべて配置された場合、すなわち、搬送容器への最後の商品の配置が完了したときに実行される。したがって、最後の商品が容器停止ステーションR1で配置される搬送容器は、容器停止ステーションR1から完成容器受ステーションS1へ排出される。他方、最後の商品が容器停止ステーションR4で配置される搬送容器は、容器停止ステーションR4から、完成容器受ステーションS4へ排出される。
第2搬送コンベアC2は、第1搬送コンベアC1と同様、例えばベルトコンベアやローラコンベア等であり、商品払出ラインL20内の各ステーション間にそれぞれ設けられる。また、第2搬送コンベアC2は、最下流の完成容器受ステーションS4と完成容器出庫装置80との間に設けられる。
また、第2搬送コンベアC2は、第1搬送コンベアC1の搬送方向と同一の搬送方向を有する。図1に示す例では、第2搬送コンベアC2は、J方向に搬送容器を搬送する。第2搬送コンベアC2は、商品配置ラインL10よりも下流側まで延在してもよい。
各第2搬送コンベアC2は、処理装置30の制御の下、互いに独立して動作する。各ステーション間の第2搬送コンベアC2は、各ステーション上の搬送容器を1つ下流側のステーションへと搬送する。最下流の完成容器受ステーションS4と完成容器出庫装置80との間の第2搬送コンベアC2は、完成容器受ステーションS4上の搬送容器を完成容器出庫装置80に搬送する。
なお、各第2搬送コンベアC2を、各ステーションを含めて、K方向に回転軸を持つローラコンベアを複数本J方向に連続的に並べることで形成してもよい。この場合、各ステーションは、対応する領域のローラコンベアを停止状態とすることにより形成される。
完成容器出庫装置80は、図1に示すように、商品払出ラインL20の下流側に配置される。完成容器出庫装置80には、商品払出ラインL20上の搬送容器が1つずつ順次払い出される。
空容器供給装置20は、商品配置ラインL10の上流側に配置される。空容器供給装置20は、処理装置30による制御の下、商品配置ラインL10に空の搬送容器を1つずつ供給する。空容器供給装置20により供給される空の搬送容器は、第1搬送コンベアC1により容器停止ステーションR1へと移動される。
完成容器排出コンベアC3は、容器停止ステーションR1、R2、R3、R4のそれぞれに対応付けて設けられる。各完成容器排出コンベアC3は、処理装置30の制御の下、対応する容器停止ステーションR1、R2、R3、R4 上の搬送容器を、対応する完成容器受ステーションS1、S2、S3、S4へK方向に排出する。
商品供給ラインL1〜L4は、商品容器ステーションO1、O2、O3、O4をそれぞれ備える。また、各商品供給ラインL1〜L4は、残数ピッキングコンベアC4と、ロボット51と、距離センサ71と、距離センサ72と、制御装置40と、を備える。
商品容器ステーションO1、O2、O3、O4は、容器停止ステーションR1、R2、R3、R4のそれぞれに対応付けて設けられる。商品容器ステーションO1、O2、O3、O4には、ピッキング対象の商品が入った商品容器が配置される。図1に示す例では、商品容器ステーションO1、O2、O3、O4上の各商品容器は、対応するストック商品容器ステーションP1、P2、P3、P4からコンベアC5により移送されてくる。商品容器ステーションO1、O2、O3、O4のそれぞれに配置される商品容器内の商品の種類は、それぞれ異なっていてもよいし、同一でもよい。なお、ストック商品容器ステーションP1、P2、P3、P4には、ストック用の商品容器が商品容器供給装置82からコンベアC6により移送されてくる。なお、商品容器内の商品は、任意であるが、本実施形態では、袋詰めされた商品(例えば、パン)であるものとする。
残数ピッキングコンベアC4は、容器停止ステーションR1、R2、R3、R4(及び商品容器ステーションO1、O2、O3、O4)のそれぞれに対応付けて設けられる。残数ピッキングコンベアC4は、容器停止ステーションR1と商品容器ステーションO1との間、及び、容器停止ステーションR2と商品容器ステーションO2との間にそれぞれ設けられる。また、残数ピッキングコンベアC4は、容器停止ステーションR3と商品容器ステーションO3との間、及び、容器停止ステーションR4と商品容器ステーションO4との間にそれぞれ設けられる。
残数ピッキングコンベアC4は、処理装置30の制御の下、対応する商品容器ステーションO1、O2、O3、O4上の商品容器を、対応する容器停止ステーションR1、R2、R3、R4に移送する。以下では、このような残数ピッキングコンベアC4による移送を、「残数ピッキング」ともいう。このようにして残数ピッキングコンベアC4により容器停止ステーションR1、R2、R3、R4上に移送された商品容器は、移送後、搬送容器となる。従って、残数ピッキングコンベアC4により容器停止ステーションR1、R2、R3、R4上に移送された商品容器は、移送後、搬送容器として、商品払出ラインL20を介して完成容器出庫装置80へと払い出されることになる。そのため、商品容器は、搬送容器と同一の構成を有する。
なお、残数ピッキングコンベアC4を、対応するコンベアC5及びコンベアC6、並びに、対応する商品容器ステーション及びストック商品容器ステーションを含め、J方向に回転軸を持つローラコンベアを複数本K方向に連続的に並べることで形成してもよい。この場合、商品容器ステーション及びストック商品容器ステーションは、対応する領域のローラコンベアを停止状態とすることにより形成される。
距離センサ71は、商品容器ステーションO1、O2、O3、O4のそれぞれに対して設けられる。距離センサ71は、例えば、図2(a)〜図2(c)に示すように、商品容器CA20の商品配置範囲の中心付近に設置される。距離センサ71は、例えば、図2(a)に示すように、商品容器CA20の上方から、商品容器ステーションO1、O2、O3、O4上に配置された商品容器CA20の所定の商品配置範囲における距離に関する情報(以下、「距離情報」という)を取得する。距離情報は、商品容器CA20の底面をXY平面としたときの、Z軸方向の距離情報である。例えば、距離情報は、商品容器CA20の底面(商品Gの下面と接触する面)を基準として、商品容器CA20の底面からの距離をあらわす。すなわち、商品容器CA20の所定の商品配置範囲に商品Gが配置されているときには、距離情報は商品Gの高さに関する情報となる。なお、距離情報の基準は商品容器CA20の底面以外であってもよい。距離センサ71は、X軸方向及びY軸方向のそれぞれに沿った複数点で距離情報を取得し、当該距離情報に基づいて、例えば、図2(d)に示す距離画像を生成する。図2(d)に示すように、距離画像では、商品容器と、当該商品容器内に配置された各商品とを確認することができる。距離センサ71は、生成した距離画像を制御装置40に出力する。
図1に戻り、距離センサ72は、ストック商品容器ステーションP1、P2、P3、P4のそれぞれに対して設けられる。距離センサ72は、距離センサ71と同様に、ストック商品容器ステーションP1、P2、P3、P4上に配置された商品容器の所定の商品配置範囲における距離情報、すなわち、商品容器内に配置された商品の高さに関する情報を取得する。距離センサ72は、X軸方向及びY軸方向のそれぞれに沿った複数点で距離情報を取得し、当該距離情報に基づいて距離画像を生成する。距離センサ72は、生成した距離画像を制御装置40に出力する。
ロボット51は、商品容器ステーションO1、O2、O3、O4のそれぞれに対応して設けられる。ロボット51は、制御装置40の制御の下、動作する。ロボット51は、対応する商品容器ステーションO1、O2、O3、O4上の商品容器内の商品をピッキングする。商品のピッキング方法は任意であるが、本実施形態においては、ロボット51は、吸着により商品をピッキングするものとする。
また、ロボット51は、ピッキングした商品を、対応する容器停止ステーションR1、R2、R3、R4上の搬送容器内に配置する(入れる)。例えばロボット51は、商品容器ステーションO1上の商品容器内の商品をピッキングし、ピッキングした商品を容器停止ステーションR1上の搬送容器内に配置する。以下、このような一連の動作を「通常ピッキング」ともいう。なお、図1には、通常ピッキングが模式的に矢印Y1にて示されている。
なお、ロボット51による通常ピッキングは、搬送容器内に入れる予定の商品の数(ピッキング数量)に対応する回数実行される。本実施形態では、ロボット51は、1回の通常ピッキングにより2つの商品を配置することが可能であるものとする。したがって、例えば、容器停止ステーションR1にて搬送容器内に5個商品を入れる場合は、ロボット51は、3回(2個+2個+1個)、通常ピッキングを行う。但し、ロボット51は、1回の通常ピッキングにより1つの商品を配置する構成でもよいし、3つ以上の商品を配置することが可能な構成であってもよい。
また、ロボット51は、所定の場合に、対応するストック商品容器ステーションP1、P2、P3、P4上の商品容器内の商品をピッキングする。そして、ロボット51は、ピッキングした商品を、対応する容器停止ステーションR1、R2、R3、R4上の搬送容器(商品容器)内に配置する。以下、このような一連の動作を「補充ピッキング」ともいう。なお、図1には、補充ピッキングが模式的に矢印Y2にて示されている。補充ピッキングは、残数ピッキングコンベアC4による残数ピッキングに伴って実行される。即ち、補充ピッキングは、残数ピッキングコンベアC4により容器停止ステーションR1、R2 、R3、R4上に移送された商品容器内に、当該商品容器内の商品と同一種類の商品を、ピッキング数量に対して足りない個数分だけ配置する動作である。補充ピッキングは、残数ピッキングに後続して実行される。補充ピッキングにより商品がピッキングされたストック商品容器ステーションP1、P2、P3、P4上の商品容器は、第1回目のピッキング後にコンベアC5により商品容器ステーションO1、O2、O3、O4上に移送される。
制御装置40は、処理装置30からピッキングする商品の数を受信すると、当該数の商品が搬送容器内に配置されるよう、ロボット51を制御する。制御装置40は、図3に示すようなハードウェア構成を有する。具体的には、制御装置40は、図3に示すように、CPU(Central Processing Unit)411、ROM(Read Only Memory)412、RAM(Random Access Memory)413、記憶装置(HDD:Hard Disk Drive)414、ネットワークインタフェース415、及び可搬型記憶媒体416に記憶されたデータを読み取り可能な可搬型記憶媒体用ドライブ417等を備えている。これら制御装置40の構成各部は、バス418に接続されている。CPU411は、ROM412あるいはHDD414に格納されているプログラム(復旧プログラムを含む)、或いは可搬型記憶媒体用ドライブ417が可搬型記憶媒体416から読み取ったプログラムを実行することで、制御装置40を図4の各部として機能させる。
具体的には、図4に示すように、CPU411がプログラムを実行することにより、制御装置40は、取得部ならびに特定部としての誤ピッキング判定部41、及び指示部、算出部、ならびに出力部としての復旧処理部49として機能する。
誤ピッキング判定部41は、ロボット51によるピッキング前後の距離画像を距離センサ71または距離センサ72から取得する。誤ピッキング判定部41は、取得したピッキング前後の距離画像に基づいて、誤ってピッキングされた商品(意図せずにピッキングされた商品)が存在するか否か、すなわち、商品の誤ピッキングが発生したか否かを判断する。また、誤ピッキング判定部41は、誤ピッキングが発生していると判断した場合に、ピッキング前後の距離画像に基づいて、誤ピッキングされた商品を特定する。
ここで、商品の誤ピッキングについて、図5(a)及び図5(b)を用いて説明する。図5(a)及び図5(b)は、商品容器内に配置された商品を横から見た模式図である。図5(a)に示すように、袋PC1に袋詰めされた商品1と、袋PC2に袋詰めされた商品2とが、商品容器内に並んで配置されている。ここで、図5(a)では、商品2が袋PC2の片側に偏ったり、商品2に対して袋PC2が大きすぎるなどの理由によって、商品2の袋PC2の一部(例えば、袋の端)が商品1の上に重なってしまっている。このような状態で商品1を吸着によりピッキングすると、図5(b)に示すように、ピッキング対象の商品1だけでなく、商品1に重なった袋PC2も吸着されてしまうため、ピッキング対象の商品1とともに、商品2も合わせてピッキングされてしまう。これが、誤ピッキングである。
誤ピッキングが発生するのは、距離画像において商品が入った袋を認識することが難しいからである。制御装置40は、距離センサ71又は72から取得される距離画像に基づいて商品容器内の商品の配置を認識し、商品のピッキング位置を決定し、ロボット51に通知する。このとき、商品が入る袋が透明であると、距離センサ71及び72からの光が袋を透過してしまうため、当該袋を認識できない。そのため、距離画像において商品が入った袋が認識されず、ピッキング対象の商品に重なった袋を避けてピッキングを行うことが難しい。誤ピッキングが発生すると、誤った数の商品が搬送容器に配置されてしまうため、出荷前に、人手で当該商品の数を修正する作業が必要となってしまう。
そこで、本実施形態では、誤ピッキング判定部41により誤ピッキングが発生しているか否かを判断し、誤ピッキングが発生している場合には、ロボット51が、誤ピッキングされた商品を搬送容器から商品容器へと戻す復旧処理を実行する。
具体的には、復旧処理部49が、誤ピッキング判定部41により特定された誤ピッキングされた商品を搬送容器内から商品容器へと戻すようロボット51に指示する。当該復旧処理について、図6及び図8のフローチャートを用いて詳細に説明する。
図6は、商品のピッキング時に制御装置40において実行される処理を示すフローチャートである。図6の処理は、制御装置40がロボット51に商品のピッキングを指示する度に実行される。例えば、処理装置30から通知されたピッキング数量が5個の場合、制御装置40は、まず、ロボット51に2個の商品を商品容器から搬送容器内に配置するようピッキングを指示するので、当該ピッキング指示後に図6の処理が実行される。そして、図6の処理が終了すると、制御装置40は、また、ロボット51に2個の商品を商品容器から搬送容器内に配置するようピッキングを指示し、図6の処理を実行する。その後、制御装置40は、ロボットに1個の商品を商品容器から搬送容器内に配置するピッキングを指示すると、図6の処理を実行する。
図6の処理では、まず、ステップS11において、制御装置40の誤ピッキング判定部41は、ロボット51へ指示されたピッキングが、商品容器ステーション上の商品容器内の商品を搬送容器内に配置する通常ピッキングであるか否かを判断する。例えば、図7(a)に示すように、ロボット51へのピッキング指示が、商品容器ステーションO1上の商品容器CA20から商品1及び商品2を、容器停止ステーションR1上の搬送容器CA10に配置するピッキング指示である場合、誤ピッキング判定部41は、当該ピッキングが通常ピッキングであると判断し、ステップS13に移行する。
ステップS13に移行すると、誤ピッキング判定部41は、距離センサ71から商品容器ステーション上の商品容器の距離画像(ピッキング前距離画像)を取得する。例えば、図7(b)に示す距離画像が、ピッキング前距離画像として誤ピッキング判定部41により取得される。
続くステップS15において、誤ピッキング判定部41は、ロボット51によりピッキングが実行されるまで待機する。そして、ロボット51によりピッキングが実行された段階で、ステップS17に移行する。
ステップS17に移行すると、誤ピッキング判定部41は、距離センサ71から商品容器ステーション上の商品容器の距離画像(ピッキング後距離画像)を取得する。ここで、図7(c)に示すように、ロボット51が、商品1及び商品2のピッキング指示に対して、商品1〜商品3をピッキングし、搬送容器内に配置したとする。この場合、例えば、図7(d)に示す距離画像が、ピッキング後距離画像として誤ピッキング判定部41により取得される。
続くステップS19において、誤ピッキング判定部41は、ピッキング前後の距離画像に基づいて、誤った商品がピッキングされているか否か、すなわち、誤ピッキングが発生しているか否かを判断する。誤ピッキング判定部41は、例えば、ピッキング前距離画像から認識された商品の数からピッキング予定の商品の数(ピッキング予定数)を差し引いた正規残数量と、ピッキング後距離画像から認識された商品の数(実残数量)とが等しいか否かを判断する。例えば、図7(a)において、商品1及び商品2のピッキングが指示された場合、ピッキング予定数は2である。このとき、ピッキング前距離画像(図7(b))から認識されるピッキング前の商品の個数は16個で、ピッキング後距離画像(図7(d))から認識されるピッキング後の商品の個数は13個である。この場合、正規残数量14個(16−2)と、実残数量13個とが異なるので、誤ピッキング判定部41は、誤ピッキングが発生していると判断し、ステップS50に移行する。一方、誤ピッキング判定部41は、正規残数量と実残数量とが等しい場合、誤ピッキングは発生していないと判断し、ステップS60に移行する。また、本ステップにおいて、誤ピッキング判定部41は、正規残数量から実残数量を差し引いた数、すなわち、誤ピッキングされた商品の数(以後、誤ピッキング数という)を算出する。
ところで、ステップS11において、ロボット51に指示されたピッキングが、通常ピッキングではない場合、すなわち、ステップS11の判断が否定された場合、ステップS31に移行する。例えば、ロボット51に指示されたピッキングが、図7(e)に示すように、ストック商品容器ステーションP1上の商品容器CA20内の商品をピッキングし、ピッキングした商品を、容器停止ステーションR1上の搬送容器(商品容器)CA10内に配置する補充ピッキングである場合、ステップS31に移行する。
ステップS31に移行すると、誤ピッキング判定部41は、距離センサ72からストック商品容器ステーション上の商品容器の距離画像(ピッキング前距離画像)を取得する。
続くステップS33において、誤ピッキング判定部41は、ロボット51によりピッキングが実行されるまで待機する。そして、ロボット51によりピッキングが実行された段階で、ステップS35に移行する。
ステップS35に移行すると、誤ピッキング判定部41は、距離センサ72からストック商品容器ステーション上の商品容器の距離画像(ピッキング後距離画像)を取得する。
続くステップS37において、誤ピッキング判定部41は、ステップS19と同様に、ピッキング前後の距離画像に基づいて、誤った商品がピッキングされているか否か、すなわち、誤ピッキングが発生しているか否かを判断する。ここでの判断が否定された場合、ステップS60に移行するが、肯定された場合、ステップS50に移行する。また、本ステップにおいて、誤ピッキング判定部41は、正規残数量から実残数量を差し引いた数、すなわち、誤ピッキング数を算出する。
(復旧処理:ステップS50)
ここで、図8のフローチャートを参照して、図6のステップS50の復旧処理の詳細について説明する。
図8の処理では、まず、ステップS503において、誤ピッキング判定部41は、ピッキング前後の距離画像に基づいて、誤ってピッキングされた商品を特定する。例えば、図9(a)に示すように、商品1及び商品2のピッキング指示に対して、商品3もピッキングされたとする。誤ピッキング判定部41は、ピッキング前距離画像(図9(b))と、ピッキング後距離画像(図9(c))とを比較した比較画像(図9(d))を用いて、ピッキングされた商品を抽出する。そして、誤ピッキング判定部41は、ピッキングされた商品のうち、ピッキングの対象であった商品1及び商品2以外の商品3を、誤ピッキングされた商品であると特定する。
続くステップS505において、復旧処理部49は、ピッキング前の距離画像に基づいて、誤ってピッキングされた商品の正しくピッキングされた商品に対する相対位置を計算する。例えば、復旧処理部49は、ピッキング前距離画像に基づいて、誤ってピッキングされた商品3の正しくピッキングされた商品2に対する相対位置を求める。ここで、ピッキング前距離画像における商品2及び商品3の位置関係が、図10に示すものであったとする。この場合、復旧処理部49は、まず、ピッキング前距離画像を用いて、商品2及び商品3の中心を求める。そして、復旧処理部49は、商品2の中心を原点として、当該原点の位置(座標)と商品3の中心の位置(座標)とのX方向における差と、Y方向における差とを算出する。図10の例では、商品3の中心は、商品2の中心からX方向に−100mm、Y方向に+10mmの位置にある。したがって、例えば、復旧処理部49は、相対位置を(−100mm,+10mm)と計算する。
続くステップS507において、復旧処理部49は、ロボット51に、搬送容器内に誤って配置された商品を商品容器に戻す復旧作業を行うよう指示する。このとき、復旧処理部49は、ステップS505で算出した相対位置をロボット51に通知する。ロボット51は、ピッキングの実行後、搬送容器内に商品を配置した位置にて停留している。したがって、ロボット51は、現在位置から相対位置分移動した位置をピッキング位置として、搬送容器内の商品をピッキングする。したがって、ピッキング位置を絶対位置で指定する場合と比較して、ロボット51を原点位置等の所定の位置に戻したり、現在位置とピッキング位置とのX方向及びY方向の差分を計算したりする必要がないので、復旧作業にかかる時間を短縮することができる。
なお、復旧処理部49は、通常ピッキングの場合、誤ってピッキングされた商品の戻し先として、商品容器ステーション上の商品容器内の位置をロボット51に通知する。一方、補充ピッキングの場合、ストック商品容器ステーション上の商品容器は、第1回目のピッキング後に商品容器ステーションに移送されている。このため、復旧処理部49は、誤ってピッキングされた商品の戻し先として、ストック商品容器ステーション上の商品容器内の位置ではなく、商品容器ステーション上の商品容器内の位置をロボット51に通知する。
続くステップS509において、復旧処理部49は、復旧作業が実行されるまで待機している。そして、ロボット51が復旧作業を実行した段階で、ステップS511に移行する。
ステップS511に移行すると、復旧処理部49は、商品容器ステーション上の商品容器の距離画像(復旧作業後距離画像)を取得する。
続くステップS513において、復旧処理部49は、ピッキング後距離画像と、復旧作業後距離画像とに基づいて、復旧作業が成功したか否かを判断する。本実施形態では、復旧処理部49は、ピッキング後距離画像から認識される商品容器内の商品の数と、復旧作業後距離画像から認識される商品容器内の商品の数との差が1であれば、復旧作業が成功したと判断する。例えば、図11(a)に示すように、商品1及び商品2のピッキング指示に対して、商品3の誤ピッキングが発生しており、復旧作業により商品3が搬送容器内から商品容器内に戻されたとする(図11(b))。この場合、復旧処理部49は、図11(c)に示すピッキング後距離画像から認識される商品容器内の商品の数(13個)と、図11(d)に示す復旧作業後距離画像から認識される商品容器内の商品の数(14個)との差が1であるため、復旧作業が成功したと判断し、ステップS515に移行する。
ステップS515に移行すると、復旧処理部49は、誤ピッキング数を1減少させ、ステップS521に移行する。
ステップS521に移行すると、復旧処理部49は、誤ピッキング数が0より大きいか否かを判断する。ここでの判断が否定された場合、復旧処理部49は、復旧処理を終了し、図6のステップS60に移行する。例えば、図11(a)に示した誤ピッキングの例では、復旧処理開始時の誤ピッキング数が1であるため、ステップS515の処理を実行すると、誤ピッキング数が0となる。したがって、続くステップS521の判断が否定され、復旧処理部49は、復旧処理を終了し、図6のステップS60に移行する。
一方、誤ピッキング数が0よりも大きい場合、すなわち、ステップS521の判断が肯定された場合、復旧処理部49は、ステップS503に戻る。例えば、ロボット51へのピッキング指示が、図12(a)に示す商品容器ステーションO1上の商品容器CA20から商品1及び商品2を、容器停止ステーションR1上の搬送容器CA10に配置するピッキング指示であったとする。このとき、図12(b)に示すように、商品5及び商品6が誤ってピッキングされ、商品1及び商品2とともに搬送容器CA10に配置されると、誤ピッキング数は2となる。この場合、復旧処理部49は、まず、誤ピッキングされた商品として商品5を特定し(ステップS503)、ステップS505〜ステップS511の処理を実行する。ここで、図12(c)に示すように、商品5を搬送容器CA10から商品容器CA20へと戻すのに成功した場合(ステップS513/YES)、ステップS515において、誤ピッキング数は2から1へと変更されるが、0よりも大きい。したがって、続くステップS521の判断が肯定され、復旧処理部49は、ステップS503に戻り、今度は、誤ピッキングされた商品として商品6を特定する。その後、復旧処理部49は、ステップS505〜ステップS511の処理を実行する。そして、図12(d)に示すように、商品6を搬送容器CA10から商品容器CA20へと戻すのに成功すると(ステップS513/YES)、ステップS515において、誤ピッキング数は1から0へ変更される。この場合、続くステップS521の判断が否定されるため、復旧処理部49は、図8の復旧処理を終了し、図6のステップS60に移行する。
ところで、ステップS513の判断が否定された場合、すなわち、復旧作業に失敗した場合、復旧処理部49は、ステップS517に移行する。
ステップS517に移行すると、復旧処理部49は、復旧作業の実行回数が所定回数(例えば、5回)を超えたか否かを判断する。ここでの判断が否定された場合、ステップS519に移行する。
ステップS519に移行すると、復旧処理部49は、ロボット51に新たなピッキング位置で搬送容器内の商品をピッキングし、再度復旧作業(リトライ)を行うよう指示し、ステップS509に移行する。例えば、復旧処理部49は、現在位置からX方向及びY方向に所定距離(例えば、―10mm等)ずれた位置で、搬送容器内の商品をピッキングするように指示する。新たなピッキング位置は、現在位置からX方向とY方向に同距離ずれた位置であってもよいし、異なる距離ずれた位置であってもよい。なお、新たなピッキング位置がロボット51の移動可能範囲を超える場合には、その移動可能範囲の限界値を指定すればよい。
一方、ステップS517の判断が肯定された場合、すなわち、復旧作業の実行回数が所定回数(例えば、5回)を超えた場合には、復旧処理部49は、図8の復旧処理を終了し、図6のステップS60に移行する。
図6のステップS60に戻ると、復旧処理部49は、ピッキング指示に対して実際にピッキングされた商品の数(実ピッキング数)を、例えば、HDD414やRAM413等の記憶媒体に記録し、図6の全処理を終了する。例えば、復旧処理部49は、HDD414やRAM413等の記憶媒体に記憶されている、図13(a)に示すピッキング実績管理テーブルに実ピッキング数を記録する。
ピッキング実績管理テーブルは、図13(a)に示すように、例えば、店舗、受注数、容器ID、実ピック数、ピッキング後商品容器内予定残数、及びピッキング後商品容器内実残数のフィールドを備える。店舗のフィールドには、ピッキング対象の商品を発注した店舗の名称が格納される。受注数のフィールドには、店舗から受注した商品の数が格納される。容器IDのフィールドには、ピッキングされた商品が配置された搬送容器を一意に識別する識別番号が格納される。実ピック数のフィールドには、実際にピッキングされた商品の数が格納される。ピッキング後商品容器内予定残数のフィールドには、ピッキング後に商品容器内に残っているはずの商品の数が格納される。ピッキング後商品容器内実残数のフィールドには、ピッキング後に商品容器内の実際に残っている商品の数が格納される。
例えば、ピッキング前の商品容器内の商品の数が16個であったとする。この場合において、図13(a)のピッキング実績管理テーブルによれば、店舗AAからの受注(受注数:4個)に対して、実ピック数は4個であるため、ピッキング後の商品容器内の予定残数と実残数とは12個で一致する。続く店舗BBからの受注(受注数:3個)に対しては、誤ピッキングが発生し、復旧作業及びリトライも成功しなかったため、実ピック数が4個となっており、ピッキング後の商品容器内の予定残数9に対し、実残数は8となっている。ここで、店舗CCの受注に対してピッキングするはずの商品は、既に店舗BBからの受注に対するピッキングで誤ってピッキングされてしまっている。したがって、店舗CCの発注(受注数:2個)に対しては、受注数よりも少ない1個がピッキングされる。
復旧処理部49は、図13(a)のピッキング実績管理テーブルに基づいて、例えば、図13(b)に示すように、商品が受注数よりも過剰に配置された搬送容器(過剰容器ID)と、誤ピッキングにより、商品が受注よりも過小に配置された搬送容器(欠品容器ID)とを対応付けて出力する。復旧処理部49は、例えば、図13(b)の帳票を、印刷により出力してもよいし、ディスプレイ等の表示装置への表示により出力してもよい。復旧処理部49は、図13(b)の帳票を、所定時間ごと(例えば、1時間毎)に出力してもよいし、ユーザからの出力指示に応じて出力してもよい。搬送容器内の商品を確認する作業者は、当該帳票を用いることによって、搬送容器内に配置された商品の数が、受注数と一致するように、搬送容器内から商品を取り除いたり、搬送容器内に商品を足したりする復旧作業を迅速に行うことができる。
以上詳細に説明したように、本実施形態によれば、商品ピッキング装置100は、搬送容器内に配置される予定の商品が入った商品容器内の商品をピッキングし、ピッキングした商品を搬送容器内に配置するロボット51と、ピッキング前後の商品容器の距離画像を取得し、ピッキング前後の距離画像に基づいて、誤ってピッキングされた商品を特定する誤ピッキング判定部41と、当該誤ってピッキングされた商品を搬送容器から商品容器へと戻すようロボット51に指示する復旧処理部49と、を備えている。これにより、誤ってピッキングされた商品を自動的に元の商品容器に戻すことができる。すなわち、誤ってピッキングされた商品が搬送容器内に配置されても、ロボット51が、当該誤ってピッキングされた商品を搬送容器から商品容器に戻す復旧作業を行うので、搬送容器内に正しい数の商品が配置される確率が高まる。したがって、誤ピッキングにより過剰または過小に配置された商品を、取り除いたり追加したりする作業を行う作業員の数を減らすことができる。また、誤ピッキング判定部41は、商品容器の距離画像を取得するので、搬送容器側に距離センサを設置する必要がない。これにより、商品ピッキング装置100のコストを低減することができる。
また、本実施形態によれば、復旧処理部49は、ピッキング前の距離画像に基づいて、誤ってピッキングされた商品の正しくピッキングされた商品に対する相対位置を算出し(S505)、当該相対位置をロボット51に通知する(S507)。これにより、ロボット51は、搬送容器内の誤ってピッキングされた商品をピッキングするために、現在位置から当該相対位置分移動すればよいので、移動距離が短くてすみ、復旧作業にかかる時間を短縮することができる。さらに、ピッキング位置を絶対位置で指定する場合と比較して、ロボット51を原点位置等の所定の位置に戻したり、現在位置とピッキング位置とのX方向及びY方向の差分を計算したりする必要がないので、復旧作業にかかる時間を短縮することができる。
また、本実施形態によれば、誤ピッキング判定部41は、ロボット51が、商品容器内の商品を搬送容器内に配置するたびに、商品容器に関する画像を取得するので(S17,S35)、毎回、正しい数の商品が搬送容器内に配置されているか否かを確認することができる。
また、本実施形態によれば、復旧処理部49は、ロボット51が搬送容器から商品容器に誤ってピッキングされた商品を戻す復旧作業を行った後の距離画像を取得し(S511)、ピッキング後の距離画像と、復旧作業後の距離画像とに基づいて、誤ってピッキングされた商品が搬送容器から商品容器に戻されたか否かを判断する(S513)。具体的には、復旧処理部49は、ピッキング後距離画像から認識される商品容器内の商品の数と、復旧作業後距離画像から認識される商品容器内の商品の数との差が1であれば、復旧作業が成功したと判断する。これにより、簡易な構成で、復旧作業の成否を判断することができる。
また、本実施形態によれば、復旧処理部49は、誤ってピッキングされた商品が搬送容器から商品容器に戻されていないと判断された場合、誤ってピッキングされた商品のピッキング位置を、前回のピッキング位置から所定距離移動させた位置として、再度、復旧作業を実行するようロボット51に指示する(S519)。これにより、復旧作業が成功しなかった場合には、ピッキング位置を変えて、再度、復旧作業が実行されるので、誤ってピッキングされた商品が商品容器へと戻される確率が高まる。
また、本実施形態によれば、復旧処理部49は、誤ってピッキングされた商品が搬送容器から商品容器へ戻されなかった場合、商品が予定よりも多く配置された搬送容器の情報と、誤ったピッキングのために、商品が予定よりも少なく配置された搬送容器の情報とを対応付けて出力する(図13(b))。これにより、搬送容器内の商品を確認する作業者は、搬送容器内に配置された商品の数が、受注数と一致するように、搬送容器内から商品を取り除いたり、搬送容器内に商品を足したりする復旧作業を迅速に行うことができる。
また、本実施形態によれば、ロボット51は、吸着により商品をピッキングする。吸着によるピッキングは、把持等によるピッキングよりも、ピッキングの失敗が少ないため、ピッキング作業を効率よく行うことができる。
また、本実施形態によれば、商品は袋詰めされた商品である。商品が入る袋は、特に、透明な場合、距離センサでは認識できず、また、カメラ等を用いて撮像した画像においても認識が困難である。そのため、ピッキング対象の商品の上に他の商品の袋の一部が重なっていても、当該袋を認識することが難しく、誤ピッキングが生じやすい。本実施形態の商品ピッキング装置100によれば、袋詰めされた商品でも、ピッキング前後の距離画像によって誤ピッキングが発生したか否かを判断し、誤ピッキングが発生していた場合には、商品を搬送容器から商品容器に戻す復旧作業を行うので、搬送容器内に正しい数の商品が配置される確率が高まる。
また、本実施形態によれば、商品ピッキング装置100は、補充ピッキングにおいて、第1回目のピッキング後に商品容器がストック商品容器ステーションP1〜P4から商品容器ステーションO1〜O4へと移送されると、復旧処理部49は、誤ってピッキングされた商品を、搬送容器から、商品容器ステーションO1〜O4へ移送された商品容器へと戻すようロボット51に指示する。これにより、誤ってピッキングされた商品を搬送容器から商品容器に運ぶまでの距離が短くなるため、復旧作業に要する時間を短縮することができる。
なお、上記実施形態では、距離画像を用いて誤ピッキングの発生有無の判断や、誤ピッキングされた商品の特定を行っていたが、これに限られるものではなく、例えば、カメラにより撮像した画像を用いてもよい。この場合、カメラにより撮像した画像に対し、パターンマッチングを行うことにより、商品容器内の商品を認識することができる。しかしながら、カメラにより撮像した画像を用いる場合、パターンマッチング用に商品のサンプル画像が必要となる。商品の入れ替わりが頻繁に起こる場合、商品のサンプル画像の登録業務は煩雑であり、システムの運用負荷が高くなってしまう。したがって、上記実施形態のように、距離画像を用いるのが好ましい。パターンマッチング用のサンプル画像が不要であり、システムの運用負荷を低減することができるからである。
なお、上記実施形態において、誤ピッキング判定部41は、ピッキング前距離画像から認識された商品の数からピッキング予定の商品の数を差し引いた正規残数量と、ピッキング後距離画像から認識された商品の数(実残数量)とが等しいか否かを判断することで、誤ピッキングが発生したか否かを判断していたが、これに限られるものではない。例えば、誤ピッキング判定部41は、ピッキング前距離画像から認識された商品の数から、ピッキング後距離画像から認識された商品の数を差し引いた数(ピッキング前後の商品数の差分)が、ピッキング予定数と一致するか否かに基づいて誤ピッキングの発生を判断してもよい。例えば、ピッキング予定数が2であった場合、ピッキング前後の商品数の差分が3であれば、誤ピッキングが発生したと判断してもよい。あるいは、誤ピッキング判定部41は、ピッキング前距離画像とピッキング後距離画像との比較により得られる比較画像(図9(d))から、ピッキングされた商品の数を特定し、当該数がピッキング予定数と一致するか否かに基づいて誤ピッキングの発生を判断してもよい。
また、上記実施形態において、復旧処理部49は、ピッキング後距離画像から認識される商品容器内の商品の数と、復旧作業後距離画像から認識される商品容器内の商品の数とに基づいて、復旧作業が成功したか否かを判断していたが、これに限られるものではない。復旧処理部49は、例えば、復旧作業後距離画像から認識される商品容器内の商品の数(実残数量)が、ピッキング前距離画像から認識される商品容器内の商品の数からピッキング予定数を差し引いた商品の数
(正規残数量)と一致するか否かにより、復旧作業が成功したか否かを判断してもよい。すなわち、復旧処理部49は、復旧作業後の商品容器内の商品の実残数量が正規残数量と一致する場合、復旧作業が成功したと判断してもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
(付記1) 搬送容器内に配置される予定の商品が入った商品容器内の商品をピッキングし、ピッキングした前記商品を前記搬送容器内に配置するロボットと、
前記ピッキング前後の前記商品容器に関する画像を取得する取得部と、
前記ピッキング前後の前記商品容器に関する画像に基づいて、誤ってピッキングされた商品を特定する特定部と、
前記誤ってピッキングされた商品を前記搬送容器から前記商品容器へと戻す復旧作業を実行するよう前記ロボットに指示する指示部と、
を備えるピッキング装置。
(付記2) 前記商品容器に関する画像は、距離画像であることを特徴とする付記1に記載のピッキング装置。
(付記3) 前記ピッキング前の前記商品容器に関する画像に基づいて、前記誤ってピッキングされた商品の正しくピッキングされた商品に対する相対位置を算出する算出部を備え、
前記指示部は、前記相対位置を前記ロボットに通知することを特徴とする付記1または2に記載のピッキング装置。
(付記4) 前記取得部は、前記ロボットが、前記商品容器内の前記商品を前記搬送容器内に配置するたびに、前記商品容器に関する画像を取得することを特徴とする付記1から3のいずれかに記載のピッキング装置。
(付記5) 前記取得部は、前記ロボットが前記復旧作業を行った後の前記商品容器に関する画像を取得し、
前記指示部は、前記ピッキング後または前記ピッキング前の前記商品容器に関する画像と、前記復旧作業後の前記商品容器に関する画像とに基づいて、前記誤ってピッキングされた商品が前記搬送容器から前記商品容器に戻されたか否かを判定することを特徴とする付記1から4のいずれかに記載のピッキング装置。
(付記6) 前記指示部は、前記誤ってピッキングされた商品が前記搬送容器から前記商品容器に戻されていないと判定した場合、前記誤ってピッキングされた商品のピッキング位置を、前回のピッキング位置から所定距離移動させた位置として、再度、前記復旧作業を実行するよう前記ロボットに指示することを特徴とする付記5に記載のピッキング装置。
(付記7) 前記誤ってピッキングされた商品が前記搬送容器から前記商品容器へ戻されなかった場合、前記商品が予定よりも多く配置された搬送容器の情報と、誤ったピッキングのために、前記商品が予定よりも少なく配置された搬送容器の情報とを対応付けて出力する出力部を備えることを特徴とする付記5または6に記載のピッキング装置。
(付記8) 前記ロボットは、吸着により商品をピッキングすることを特徴とする付記1から7のいずれかに記載のピッキング装置。
(付記9) 前記商品は袋詰めされた商品であることを特徴とする付記1から8のいずれかに記載のピッキング装置。
(付記10) 前記商品容器がピッキング後に移動した場合、前記指示部は、前記誤ってピッキングされた商品を、移動後の前記商品容器へと戻すよう前記ロボットに指示することを特徴とする付記1から9のいずれかに記載のピッキング装置。
(付記11) ロボットが、搬送容器内に配置される予定の商品が入った商品容器内の商品をピッキングし、ピッキングした前記商品を搬送容器内に配置する場合に、前記ピッキング前後の前記商品容器に関する画像を取得し、
前記ピッキング前後の前記商品容器に関する画像に基づいて、誤ってピッキングされた商品を特定し、
前記誤ってピッキングされた商品を前記搬送容器から前記商品容器へと戻す復旧作業を実行するよう前記ロボットに指示する、
処理をコンピュータに実行させることを特徴とする復旧プログラム。
(付記12) 前記商品容器に関する画像は、距離画像であることを特徴とする請求項11に記載の復旧プログラム。
(付記13) 前記ピッキング前の前記商品容器に関する画像に基づいて、前記誤ってピッキングされた商品の正しくピッキングされた商品に対する相対位置を算出する処理をコンピュータに実行させ、
前記指示する処理では、前記相対位置を前記ロボットに通知することを特徴とする付記11または12に記載の復旧プログラム。
(付記14) 前記取得する処理では、前記ロボットが、前記商品容器内の前記商品を前記搬送容器内に配置するたびに、前記商品容器に関する画像を取得することを特徴とする付記11から13のいずれかに記載の復旧プログラム。
(付記15) 前記取得する処理では、前記ロボットが前記復旧作業を行った後の前記商品容器に関する画像を取得し、
前記指示する処理では、前記ピッキング後または前記ピッキング前の前記商品容器に関する画像と、前記復旧作業後の前記商品容器に関する画像とに基づいて、前記誤ってピッキングされた商品が前記搬送容器から前記商品容器に戻されたか否かを判定することを特徴とする付記11から14のいずれかに記載の復旧プログラム。
(付記16) 前記指示する処理では、前記誤ってピッキングされた商品が前記搬送容器から前記商品容器に戻されていないと判定した場合、前記誤ってピッキングされた商品のピッキング位置を、前回のピッキング位置から所定距離移動させた位置として、再度、前記復旧作業を実行するよう前記ロボットに指示することを特徴とする付記15に記載の復旧プログラム。
(付記17) 前記誤ってピッキングされた商品が前記搬送容器から前記商品容器へ戻されなかった場合、前記商品が予定よりも多く配置された搬送容器の情報と、誤ったピッキングのために、前記商品が予定よりも少なく配置された搬送容器の情報とを対応付けて出力する処理をコンピュータが実行することを特徴とする付記15または16に記載の復旧プログラム。
(付記18) 前記ロボットは、吸着により商品をピッキングすることを特徴とする付記11から17のいずれかに記載の復旧プログラム。
(付記19) 前記商品は袋詰めされた商品であることを特徴とする付記11から18のいずれかに記載の復旧プログラム。
(付記20) 前記商品容器がピッキング後に移動した場合、前記指示する処理では、前記誤ってピッキングされた商品を、移動後の前記商品容器へと戻すよう前記ロボットに指示することを特徴とする付記11から19のいずれかに記載の復旧プログラム。