(58)【調査した分野】(Int.Cl.,DB名)
格納物を載置可能なパレットが配置される棚とパレットが配置されない空棚とで構成される格納空間を有する格納庫と接続され、前記格納空間内でパレットの空棚へのスライド移動を制御するとともに、指定されたパレットである呼出パレットを入庫口又は出庫口であるバースまで移動させるパレットの移動経路を計画する経路計画装置であって、
入庫又は出庫のリクエストとともに、いずれかの棚に配置されるパレットが呼出パレットとして選択されると、前記格納庫のレイアウトに関するレイアウトデータを記憶部から読み出し、前記呼出パレットが現在存在する棚から、リクエストされた動作に利用される棚まで移動させる移動経路を探索する第1探索部と、
前記第1探索部で探索された移動経路において、前記呼出パレットが次に移動する棚の直前の棚が迂回不可能な1セル幅通路の直前であるか否かを判定し、前記移動経路に配置する空棚の数を決定する通路判定部と、
前記通路判定部で判定された数の棚を空棚にするとともに、前記呼出パレットが前記第1探索部で探索された移動経路で移動するために、前記格納空間におけるパレットの移動経路を探索する第2探索部と、
前記第1探索部及び前記第2探索部で探索された移動経路をパレットの移動を制御する制御装置に送信する送信部と、
を備えることを特徴とする経路計画装置。
格納物を載置可能なパレットが配置される棚とパレットが配置されない空棚とで構成される格納空間を有する格納庫と接続され、前記格納空間内でパレットの空棚へのスライド移動を制御するとともに、指定されたパレットである呼出パレットを入庫口又は出庫口であるバースまで移動させるパレットの移動経路を計画する経路計画装置であって、
入庫又は出庫のリクエストとともに、いずれかの棚に配置されるパレットが呼出パレットとして選択されると、前記格納庫のレイアウトに関するレイアウトデータを記憶部から読み出し、前記呼出パレットが現在存在する棚から、リクエストされた動作に利用される棚まで移動させる移動経路を探索する第1探索部と、
1セル幅通路を境界として前記格納空間を分割したとき、前記リクエストで指定された棚を含む第1領域の空棚の数と、前記リクエストで指定された棚を含まない第2領域の空棚の数とを予め定め、前記呼出パレットを前記第1探索部で検索された移動経路を利用して前記呼出パレットを移動させたと仮定した場合、前記第1領域及び前記第2領域の空棚の数が所定値であるか否かを判定する通路判定部と、
前記通路判定部の判定結果に応じて前記第1領域及び前記第2領域の空棚の数が所定値になるように、前記呼出パレットが前記第1探索部で探索された移動経路で移動するために、前記格納空間におけるパレットの移動経路を探索する第2探索部と、
前記第1探索部及び前記第2探索部で探索された移動経路をパレットの移動を制御する制御装置に送信する送信部と、
を備えることを特徴とする経路計画装置。
【背景技術】
【0002】
従来から、多くの物品を小さい空間に収納するとともに、出し入れを容易にするため、機械式格納庫が広く利用されている。このような機械式倉庫の代表例として、平面空間を格子状に分割し、分割した各棚に収納する車両を載置可能なパレットを配置するパズル式駐車場がある(例えば、特許文献1及び2参照)。
【0003】
また、工場や倉庫等で必要な物品を効率的に搬送する装置としても、同様に平面空間を格子状に分割し、分割した各棚に物品を載置可能なパレットを配置した産業用搬送装置が利用されている。
【0004】
図10に示す格納空間(平面空間)100は、3×5の格子状に分割されて棚101が構成され、各棚101には、格納対象の物品を載置可能なパレット102が配置されている。格納空間100の棚101には、パレット102が配置されていない空棚104もあり、この空棚104に隣接する棚101に配置されるパレット102は、空棚104に移動することができる。例えば、物品の入庫や出庫の際には、各棚101に配置するパレット102の位置を駆動機構(図示せず)によって移動させながら、入庫又は出庫の操作信号で指定された呼出パレット105をリフト103に移動させるとともに、リフト103によって格納空間100とは異なる階層に設けられる入庫口であるバースに呼出パレット105を移動させる。
【0005】
ここで、各パレット102が全ての隣接する棚101に自由に移動することができればよいが、
図10(a)に示すように、棚101と他の棚101との間に壁106が存在する格納空間100もある。また、
図10(b)に示すように、棚101に設けられる駆動機構等の故障により、棚101に配置されるパレット102を隣接する他の棚101へ移動させることのできなくなった故障棚107が存在する格納空間100もある。
【0006】
このような壁106や故障棚107の存在により、パレット102は他の棚を迂回不可能な1棚分(1セル分)の幅の1セル幅通路108を通過しなければ他の棚101に移動することができないことがある。例えば、
図10(a)に示す例において、1−bの棚から1−cの棚に移動する際には、1−bの棚から直接隣接する1−cの棚に移動する他、1−bの棚から2−bの棚及び2−cの棚を経由して1−cの棚に移動することができる。一方、2−cの棚と2−dの棚及び3−cの棚と3−dの棚の間には壁106が設けられているため、1−cの棚から1−dの棚に移動する経路はこの1−cの棚と1−dの棚の1セル幅通路108のみである。また、
図10(b)に示す例においても、1−c及び2−cの棚が故障棚107であることから、3−bの棚から3−cの棚に移動する経路は3−cの棚の1棚分の幅を通過する1セル幅通路108のみである。
【0007】
パレット102は他のパレット102が配置されている棚101には移動することができず、空棚104にのみ移動可能であるため、このような1セル幅通路がある場合、1セル幅通路を通過した先に空棚104が存在しないとパレット102の移動ができなくなる問題があった。このような場合、移動したパレット102を再び1セル幅通路の後ろに移動する等によりパレット102の移動経路を確保している。
【発明を実施するための形態】
【0015】
図面を参照して、本発明の実施形態に係る経路計画装置について説明する。本発明に係る経路計画装置は、機械式格納庫や産業用搬送装置における経路を計画するものであるが、以下における説明では、機械式格納庫が自動車を格納するパズル式駐車場であるものとして説明する。例えば、
図1に示すように、実施形態に係る経路計画装置10は、パズル式駐車場である格納庫30を有するパズル式駐車システム1で利用される。
【0016】
〈パズル式駐車システム〉
パズル式駐車システム1は、経路計画装置10及び格納庫30の他、格納庫30への車両の入庫及び格納庫30からの車両の出庫の操作信号を入力する入力装置40及び経路計画装置で計画された経路で格納庫30を制御する制御装置20を備えている。
【0017】
格納庫30は、
図10に示したような平面が複数の棚101に区分される格納空間100を有している。各棚101には、車両を載置可能なパレット102を一枚づつ配置することができるように構成されている。この格納空間100では、格納対象の車両をパレット102に載置して格納する。格納庫30では、あるパレット102が存在する棚101の隣接棚に他のパレットが存在せず、隣接する棚との間に壁106が存在しないとき、駆動手段(図示せず)による駆動により、このパレット102を隣接する棚(隣接棚)にスライド移動することができる。なお、
図10に示すように、格納空間100では、壁106や故障棚107があるとき、これらによってパレット102の移動が遮られる。
【0018】
格納庫30では、格納する車両の入庫口(図示せず)及び格納していた車両の出庫口(図示せず)を格納空間100と異なる階層に設けることが可能である。また、格納庫30が格納空間100を複数層有することで、より多くの車両を格納することができる。格納空間100とは異なる階層に入庫口や出庫口を有する場合や、格納空間100を複数層有する場合には、格納空間100内にリフト103を設け、このリフト103でパレット102を上方向(又は下方向)に移動させることで、パレット102を他の階層にある入庫口又は出庫口や他の階層の格納空間100に移動させることができる。
【0019】
駆動手段を利用したパレット102のスライド移動やリフト103を利用したパレット102の上下方向の移動は、制御装置20から入力する制御信号に従って実行される。例えば、格納空間100を複数層有し、入庫口が他の階層に存在する格納庫30では、入庫の際、制御装置20から入力する制御信号に従って、ある格納空間100でリフト103上まで車両が載置されていない空のパレット102を呼出パレット105として移動させたうえで、リフト103を使用して入庫口まで上方向(又は下方向)に呼出パレット105を移動させる。入庫口で対象の車両がパレット102上に配置されると、リフト103は、再び元の格納空間100に戻り、車両の入庫が完了する。
【0020】
また、この格納庫30では、出庫の際、制御装置20から入力する制御信号に従って、対象の車両が載置されるパレット102が呼出パレット105として選択されると、この呼出パレット105をリフト103上まで移動させたうえで、リフト103を使用して出庫口まで上方向(又は下方向)に呼出パレット105を移動させる。出庫口で呼出パレット105から載置される対象の車両が降ろされると、リフト103は、再び元の格納空間100に戻り、出庫が完了する。なお、入庫口と出庫口は同一であっても良いし、複数あっても良い。また、格納空間100におけるリフト103の数も限定されない。さらに、格納庫30では、入庫口及び出庫口を複数設けてもよい。
【0021】
パズル式駐車システム1では、入力装置40を介して入庫又は出庫の操作信号が入力されると、制御装置20が、経路計画装置10に入力した操作信号が要求する動作を実行するためのパレットの移動経路を要求するリクエスト信号を出力する。経路計画装置10は、リクエスト信号に応じて、格納庫30のレイアウトを利用して、入庫又は出庫に利用されるパレット102である呼出パレット105を入庫口又は出庫口に対応するリフト103に移動するためのパレット102の移動経路を計画する。また、制御装置20は、経路計画装置10で計画された移動経路に応じて、格納庫30のパレット102を制御する。
【0022】
〈経路計画装置〉
経路計画装置10は、
図1に示すように、制御装置20から経路の計画を要求するリクエスト信号を入力すると、制御装置20から格納庫30のレイアウトデータを取得する取得部11と、レイアウトデータを利用して呼出パレット105の移動経路を探索する第1探索部12と、1セル幅通路108との位置関係を判定する通路判定部13と、パレット102の移動経路を探索する第2探索部14と、探索されたパレット102の移動経路に関する移動経路データを送信する送信部15と、レイアウトデータを記憶するレイアウトデータ記憶部16とを備えている。
【0023】
取得部11は、制御装置20からあるパレット102が呼出パレット105と指定されて経路の計画を要求するリクエスト信号を入力すると、制御装置20に格納空間100のレイアウトに関するレイアウトデータの送信を要求するリクエスト信号を送信して制御装置20からレイアウトデータを取得する。また、取得部11は、取得したレイアウトデータをレイアウトデータ記憶部16に記憶させる。
【0024】
レイアウトデータ記憶部16で記憶されるレイアウトデータは、
図10に示すような格納空間100が有する棚101及びリフト103の位置関係に加え、各棚101に配置されるパレット102の番号に関するデータである。また、格納空間100が壁106や故障棚107を有している場合、レイアウトデータでは壁106や故障棚107の位置関係も含んでいる。また、第2探索部14がパレット102の移動経路を探索すると、レイアウトデータ記憶部16が記憶するレイアウトデータは、第2探索部14によって、取得部11が取得したレイアウトデータから、探索した移動経路を利用してパレット102を移動した場合のシミュレーション結果であるレイアウトデータに更新される。
【0025】
第1探索部12は、レイアウトデータ記憶部16で記憶されるレイアウトデータを利用して、呼出パレット105をリフト103に移動するための移動経路を探索する。
【0026】
通路判定部13は、第1探索部12で呼出パレット105の移動経路が探索されると、探索された移動経路に1セル幅通路108を含むか否かを判定する。
【0027】
例えば、
図2(a)に示すようなレイアウトの場合に、1−bの棚に配置されるパレット102が呼出パレット105と指定された場合、この呼出パレット105が目的地であるリフト103が設置する1−fの棚に移動するための経路として第1探索部12において、1−cの棚、1−dの棚、1−eの棚、1−fの棚の順に移動する経路が探索されたとする。
【0028】
このとき、
図2に示すレイアウトの例では、2−cの棚と2−dの棚、3−cと3−dの棚の間には壁106が設置されているため、1−cの棚から1−dの棚へパレット102を移動させるためには、1−cの棚と1−dの棚の1セル幅通路108を通過しなければならない。したがって、1−cの棚と1−dの棚に空棚104を配置すると決定し、
図2(b)に示すように1−cの棚と1−dの棚とを空棚104とし、
図2(c)に示すように1−dの棚に呼出パレット105を移動すると、他のパレット102は1セル幅通路108を移動することができなくなる。そのため、呼出パレット105もリフト103へ移動することができなくなる。
【0029】
したがって、
図3(a)に示すように1セル幅通路108がある場合、1−cの棚、1−dの棚及び1−eの棚に空棚104を配置すると決定し、
図3(b)に示すように空棚104にしたとする。その後、呼出パレット105を
図3(c)に示すように1−dの棚に移動した後で1−eの棚まで移動することができ、他のパレット102を移動させて空棚104まで移動することが可能となる。すなわち、通路判定部13は、その後の処理においてパレット102の移動を妨げることがないように、1セル幅通路108の有無を判定する。
【0030】
第2探索部14は、レイアウトデータ記憶部16で記憶されるレイアウトデータを利用して、第1探索部12で決定された経路で呼出パレット105を移動するためのパレット102の移動経路を探索する。
【0031】
送信部15は、第2探索部14で探索されたパレット102の移動経路に関する移動経路データを制御装置20に送信する。送信部15が送信した移動経路データを受信した制御装置20は、移動経路データに含まれる移動経路に従って格納庫30のパレットを移動させる。
【0032】
図4のフローチャートで示すように、パズル式駐車システム1では、入力装置40から制御装置20に入庫又は出庫の操作信号が入力される(S01)。入庫又は出庫の操作信号を入力した制御装置20から経路計画装置10に経路の計画が要求されると、経路計画装置10は制御装置20から取得してレイアウトデータにおいて呼出パレット105が目的地であるリフト103上に存在するか否かを判定する(S02)。
【0033】
呼出パレット105が目的地にあるとき(S02でYES)、格納空間100内で呼出パレット105を移動させる必要がないため、送信部15は制御装置20に呼出パレット105が目的地にある旨を通知する信号を送信し、制御装置20は、入庫又は出庫の動作を実行する(S08)。具体的には、呼出パレット105がリフト103上に存在するため、リフト103を上方向(又は下方向)に移動させることで呼出パレット105を入庫口又は出庫口まで移動させて入庫又は出庫を実行する。
【0034】
呼出パレット105が目的地にないとき(S02でNO)、第1探索部12が呼出パレット105の移動経路を探索する(S03)。この呼出パレット105の移動経路を探索する処理は、呼出パレット105が目的地まで移動する経路を探索する処理であり、
図5を用いて後述する。
【0035】
第1探索部12が呼出パレット105の移動経路を決定すると、通路判定部13が呼出パレット105が移動する先が1セル幅通路108であるか否かを判定する(S04)。移動先が1セル幅通路108であるか否かの判定については
図6を用いて後述する。
【0036】
通路判定部13が1セル幅通路108であるか否かを判定すると、第2探索部14が判定結果に応じて、呼出パレット105の移動経路を空棚にするためのパレット102の移動経路を探索する(S05)。このパレット102の移動経路の探索は、パレット102をどのように移動して呼出パレット105の移動経路を空棚にするかを探索する処理であり、
図7を用いて後述する。また、パレット102の移動経路が探索されると、第2探索部14は、探索された移動経路でパレット102を移動したシミュレーション結果でレイアウトデータ記憶部16のレイアウトデータを更新する。
【0037】
続いて、経路計画装置10は、レイアウトデータ記憶部16に記憶されるレイアウトデータにおいて、呼出パレット105が目的地であるリフト103上に存在するか否かを判定する(S06)。
【0038】
呼出パレット105が目的地にないとき(S06でNO)、経路計画装置10は、ステップS04〜S06の処理を繰り返す。一方、呼出パレット105が目的地にあるとき(S06でYES)、送信部15が制御装置20に移動経路データを送信する(S07)。受信した移動経路データに従って入庫又は出庫の動作を実行する(S08)。
【0039】
ここで、ステップS03の呼出パレット105の移動経路の探索処理で利用するマンハッタン距離について説明する。ここで利用するマンハッタン距離は、ある棚101から別の棚101までの距離である。具体的には、2つの棚間の行座標と列座標の差の合計値である。また、仮に、故障によりパレット102を移動させることができない故障棚や棚と棚との間に壁が設けられている場合であっても、マンハッタン距離を求める際には、これらの故障棚や壁は考慮しない。したがって、例えば、
図10(a)及び
図10(b)に示す例で、3−aの棚から1−eの棚までのマンハッタン距離を求める際には、両レイアウトとも、行座標の差である2と列座標の差である4の合計値6がマンハッタン距離となる。
【0040】
〈呼出パレットの移動経路の探索処理〉
図5に示すフローチャートを利用して、
図4のフローチャートのステップS03において第1探索部12が呼出パレット105の移動経路を探索する処理の一例について説明する。まず、第1探索部12は、呼出パレット105が移動可能な隣接棚を全て選択する(S11)。
【0041】
移動可能な隣接棚を選択すると、第1探索部12は、選択した各隣接棚について、隣接棚からリフト103が設置される棚までのコストを算出する(S12)。具体的には、第1探索部12は、コストt(m)に、隣接棚から目的地であるリフト103が配置される棚までの距離(例えば、マンハッタン距離)を用いることができる。または、第1探索部12は、距離の他、隣接棚からリフト103が配置される棚までの移動に要する時間をコストt(m)としてもよい。なお、mは、レイアウト毎に割り当てられる番号である。
【0042】
各隣接棚についてコストを算出すると、第1探索部12は、コストの最も小さい隣接棚を抽出する(S13)。ここで、算出されたコストが等しい隣接棚が複数ある場合、第1探索部12は、空棚に近い隣接棚を抽出する。
【0043】
1つの隣接棚を抽出すると、呼出パレット105が抽出された隣接棚にあると仮定し、呼出パレット105が目的地であるリフト103上にあるか否かを判定する(S14)。目的地上にないとき(S15でNO)、第1探索部12は、呼出パレット105が目的地であるリフト103上に到達するまで、順にステップS13で抽出された隣接棚に呼出パレット105が存在すると仮定してステップS11〜S14を繰り返す。
【0044】
呼出パレット105が目的地であるリフト103上にあるとき(S14でYES)、これまでにステップS13で順に抽出した棚を呼出パレット105の移動経路として決定する(S15)。ここで、第1探索部12は、ステップS11〜S14の処理を繰り返す際にステップS13で抽出された隣接棚を蓄積してメモリ(図示せず)に記憶し、メモリに記憶された全ての隣接棚を呼出パレット105の移動経路と決定する。ここで、ステップS11〜S14が繰り返される場合、探索された呼出パレット105の移動経路はメモリで記憶しているが、ステップS15で呼出パレットの移動経路を決定して通路判定部13に出力すると、探索された呼出パレット105の移動経路は使わないため、メモリから消去する。
【0045】
〈1セル幅通路の判定処理〉
図6に示すフローチャートを利用して、
図4のフローチャートのステップS04において通路判定部13が呼出パレット105の移動経路における1セル幅通路108の有無を判定する処理の一例について説明する。
【0046】
まず、通路判定部13は、第1探索部が決定した呼出パレット105の移動経路において、呼出パレット105が次に移動する棚(次移動位置)を選択する(S21)。
【0047】
続いて、通路判定部13は、次移動位置が1セル幅通路108の直前にあるか否かを判定する(S22)。例えば、
図2(a)に示す例では、呼出パレット105の次移動位置は1−cの棚であり、この1−cの棚は1セル幅通路108の直前である。また、
図10(a)に示す例では、1−cの棚が1セル幅通路108の直前の棚であり、
図10(b)に示す例では、3−bの棚が1セル幅通路108の直前の棚である。
【0048】
次移動位置が1セル幅通路108の直前にある場合(S22でYES)、通路判定部13は、1セル幅通路108の先に複数の空棚を配置する必要があると判定し、判定結果を第2探索部14に出力する(S23)。
【0049】
〈パレットの移動経路の探索処理〉
続いて、
図7に示すフローチャートを利用して、
図4のフローチャートのステップS06において第2探索部14がパレット102の移動経路を探索する処理の一例について説明する。ここで、
図4のフローチャートのステップS04で1セル幅通路108の先に複数の空棚が必要であると判定されたか否かによりパレットの移動経路の探索処理は異なる。したがって、1セル幅通路108の先に複数の空棚104が必要ないと判定された場合の移動経路の探索について
図7(a)を用いて説明し、1セル幅通路108の先に複数の空棚104が必要であると判定された場合の移動経路の探索について
図7(b)を用いて説明する。
【0050】
(1セル幅通路の先に複数の空棚が必要ない場合)
図7(a)に示すように、まず、第2探索部14は、次移動位置に最も近い空棚104の隣接棚のうち、この空棚104に移動可能なパレット102が存在する隣接棚を全て選択する(S31)。
【0051】
空棚104の隣接棚を選択すると、第2探索部14は、選択された各隣接棚について、隣接棚から次移動位置までのコストを算出する(S32)。具体的には、第2探索部14は、コストt(n)に、隣接棚から次移動位置までの距離(例えば、マンハッタン距離)を利用することができる。または、第2探索部14は、距離のほか、隣接棚から次移動位置までのパレット102の移動に要する時間をコストt(n)としてもよい。なお、nは、探索中の一つの状態(レイアウト)を示す状態変数である。したがって、探索中の状態(レイアウト)の数が3である場合、t(1)、t(2)、t(3)の3通りのコストを算出する。
【0052】
各隣接棚についてコストを算出すると、第2探索部14は、コストの最も小さい隣接棚を抽出し、パレット102の移動経路とする(S33)。
【0053】
コストの小さい隣接棚を抽出すると、第2探索部14は、抽出した隣接棚が次移動位置であるか否かを判定する(S34)。抽出した隣接棚が次移動位置であると判定されたとき(S34でYES)、第2探索部14は、これまでにステップS33で抽出されることで得られた経路を、次移動位置を空棚104とするパレット102の移動経路と決定する(S35)。また、第2探索部14は、空棚104となった次移動位置に呼出パレット105を移動する経路をステップS35で決定した経路に加え、この経路を呼出パレット105を次移動位置に移動するためのパレット102の移動経路として処理を終了する(S36)。ここで、第2探索部14は、ステップS31〜S34の処理を繰り返す際にステップS33で選択された隣接棚を蓄積してメモリ(図示せず)に記憶し、ステップS31〜S34の処理で選択され、メモリで記憶される隣接棚をパレットの移動経路と決定する。
【0054】
一方、抽出した隣接棚が次移動位置でないとき(S34でNO)、第2探索部14は、ステップS31〜S34の処理を繰り返す。ここで、ステップS31〜S34の処理が繰り返される間、レイアウトに応じて探索されたパレット102の移動経路はメモリ(図示せず)で記憶している。また、第2探索部14は、ステップS35及びS36で移動経路を決定すると、メモリで記憶する経路をメモリから消去し、決定した移動経路でパレット102を移動したシミュレーション結果でレイアウトデータ記憶部16が記憶するレイアウトデータを更新する。
【0055】
(1セル幅通路の先に複数の空棚が必要である場合)
図7(b)に示すように、まず、第2探索部14は、空棚104にする必要がある複数の棚101を目的棚とする(S41)。具体的には、次移動位置と次移動位置以外の空棚104にする必要がある棚101が目的棚となり、
図3の例では、1−cの棚、1−dの棚及び1−eの棚が目的棚となる。
【0056】
また、第2探索部14は、各空棚104に移動可能なパレット102が存在する隣接棚を全て選択し、各目的棚と各隣接棚との組み合わせを作成する(S42)。例えば、ステップS41で3棚の目的棚(それぞれ「目的棚1」、「目的棚2」、「目的棚3」とする)が決定され、3棚の空棚104(それぞれ、「空棚1」、「空棚2」、「空棚3」とする)が格納空間100内に存在するとする。またこのとき、空棚1に移動可能なパレット102が存在する隣接棚が2棚、空棚2に移動可能なパレット102が存在する隣接棚が3棚、空棚3に移動可能なパレット102が存在する隣接棚が3棚、選択されたとする。この場合、目的棚と空棚の組合せとしてまず、下記6通りの組合せができる。さらに、それぞれ空棚の隣接棚を考慮すると、108通りの組合せができる。
【0057】
1:目的棚1と空棚1、目的棚2と空棚2、目的棚3と空棚3 (2×3×3通り)
2:目的棚1と空棚1、目的棚2と空棚3、目的棚3と空棚2 (2×3×3通り)
3:目的棚1と空棚2、目的棚2と空棚1、目的棚3と空棚3 (3×2×3通り)
4:目的棚1と空棚2、目的棚2と空棚3、目的棚3と空棚1 (3×3×2通り)
5:目的棚1と空棚3、目的棚2と空棚1、目的棚3と空棚2 (3×2×3通り)
6:目的棚1と空棚3、目的棚2と空棚2、目的棚3と空棚1 (3×3×2通り)
目的棚と空棚104の隣接棚の組合せを作成すると、第2探索部14は、各組合せについて、隣接棚から目的棚までのコストの合計をコストとして算出する(S43)。具体的には、第2探索部14は、コストt(n)に、組合せ毎に対応する隣接棚から目的棚までの距離(例えば、マンハッタン距離)の合計や隣接棚から目的棚までのパレット102の移動に要する時間の合計を利用する。
【0058】
仮に、上述の1(目的棚1と空棚1、目的棚2と空棚2、目的棚3と3)の場合に空棚1の隣接棚である隣接棚1−1及び隣接棚1−2が選択され、空棚2の隣接棚である隣接棚2−1、隣接棚2−2及び隣接棚2−3が選択され、空棚3の隣接棚である隣接棚3−1、隣接棚3−2及び隣接棚3−3が選択されて18の組合せがあるとする。このとき、第2探索部14は、
コスト1:「目的棚1から隣接棚1−1までのコスト」、「目的棚2から隣接棚2−1までのコスト」及び「目的棚3から隣接棚3−1までのコスト」の合計、
コスト2:「目的棚1から隣接棚1−1までのコスト」、「目的棚2から隣接棚2−1までのコスト」及び「目的棚3から隣接棚3−2までのコスト」の合計、
コスト3:「目的棚1から隣接棚1−1までのコスト」、「目的棚2から隣接棚2−1までのコスト」及び「目的棚3から隣接棚3−3までのコスト」の合計、
コスト4:「目的棚1から隣接棚1−1までのコスト」、「目的棚2から隣接棚2−2までのコスト」及び「目的棚3から隣接棚3−1までのコスト」の合計、
コスト5:「目的棚1から隣接棚1−1までのコスト」、「目的棚2から隣接棚2−2までのコスト」及び「目的棚3から隣接棚3−2までのコスト」の合計、
コスト6:「目的棚1から隣接棚1−1までのコスト」、「目的棚2から隣接棚2−2までのコスト」及び「目的棚3から隣接棚3−3までのコスト」の合計、
コスト7:「目的棚1から隣接棚1−1までのコスト」、「目的棚2から隣接棚2−3までのコスト」及び「目的棚3から隣接棚3−1までのコスト」の合計、
コスト8:「目的棚1から隣接棚1−1までのコスト」、「目的棚2から隣接棚2−3までのコスト」及び「目的棚3から隣接棚3−2までのコスト」の合計、
コスト9:「目的棚1から隣接棚1−1までのコスト」、「目的棚2から隣接棚2−3までのコスト」及び「目的棚3から隣接棚3−3までのコスト」の合計、
コスト10:「目的棚1から隣接棚1−2までのコスト」、「目的棚2から隣接棚2−1までのコスト」及び「目的棚3から隣接棚3−1までのコスト」の合計、
コスト11:「目的棚1から隣接棚1−2までのコスト」、「目的棚2から隣接棚2−1までのコスト」及び「目的棚3から隣接棚3−2までのコスト」の合計、
コスト12:「目的棚1から隣接棚1−2までのコスト」、「目的棚2から隣接棚2−1までのコスト」及び「目的棚3から隣接棚3−3までのコスト」の合計、
コスト13:「目的棚1から隣接棚1−2までのコスト」、「目的棚2から隣接棚2−2までのコスト」及び「目的棚3から隣接棚3−1までのコスト」の合計、
コスト14:「目的棚1から隣接棚1−2までのコスト」、「目的棚2から隣接棚2−2までのコスト」及び「目的棚3から隣接棚3−2までのコスト」の合計、
コスト15:「目的棚1から隣接棚1−2までのコスト」、「目的棚2から隣接棚2−2までのコスト」及び「目的棚3から隣接棚3−3までのコスト」の合計、
コスト16:「目的棚1から隣接棚1−2までのコスト」、「目的棚2から隣接棚2−3までのコスト」及び「目的棚3から隣接棚3−1までのコスト」の合計、
コスト17:「目的棚1から隣接棚1−2までのコスト」、「目的棚2から隣接棚2−3までのコスト」及び「目的棚3から隣接棚3−2までのコスト」の合計、
コスト18:「目的棚1から隣接棚1−2までのコスト」、「目的棚2から隣接棚2−3までのコスト」及び「目的棚3から隣接棚3−3までのコスト」の合計、
の18通りのコストをそれぞれ求める。すなわち108通りの組合せの場合には、108通りコストを求める。
【0059】
全ての組合せについてコストを算出すると、第2探索部14は、コストの最も小さい組合せを抽出する(S44)。
【0060】
その後、第2探索部14は、レイアウトデータ記憶部16が記憶するレイアウトデータにおいて、全ての目的棚が空棚104となっているか否かを判定する(S45)。全ての目的棚が空棚104となっているとき(S45でYES)、第2探索部14は、これまでに得られた経路を、全ての目的棚を空棚104とするためのパレット102の移動経路と決定する(S46)。また、第2探索部14は、空棚104となった次移動位置に呼出パレット105を移動する経路をステップS35で決定した移動経路に加え、この経路を呼出パレット105を次移動位置に移動するためのパレット102の移動経路として処理を終了する(S47)。ここで、第2探索部14は、ステップS42〜S45の処理を繰り返す際にステップS44で抽出された組合せの隣接棚を蓄積してメモリ(図示せず)に記憶し、ステップS44の処理で抽出され、メモリで記憶される組合せの隣接棚をパレットの移動経路と決定する。また、第2探索部14は、ステップS46及びS47で移動経路を決定すると、メモリで記憶する経路をメモリから消去し、決定した移動経路でパレット102を移動したシミュレーション結果でレイアウトデータ記憶部16が記憶するレイアウトデータを更新する。
【0061】
また、第2探索部14は、全ての目的棚が空棚104になるまで(S45でNO)、ステップS42〜S45の処理を繰り返す。ここで、ステップS42〜S45の処理が繰り返される間、レイアウトに応じて探索されたパレット102の移動経路はメモリ(図示せず)で記憶している。
【0062】
上述したように、実施形態に係る経路計画装置10では、呼出パレット105が目的地に移動する過程で、パレット102が同じ経路を後戻りすることなく効率的なパレット102の移動を実現し、パレット102の移動に要する時間を短縮する。
【0063】
〈変形例1〉
上述した実施形態に係る経路計画装置10において、第2探索部14では、1セル幅通路108の先に複数の空棚を配置する必要がある場合、
図7(b)に示した方法でパレット102の移動経路を探索していた。これに対し、変形例1に係る経路計画装置10の第2探索部14では、
図7(b)に示した方法に代えて、
図8に示すようにパレット102の移動経路を探索してもよい。
【0064】
図8に示すように、まず、第2探索部14は、1セル幅通路108を境として、呼出パレット105が存在する領域である第1領域と、リフト103が存在する領域である第2領域とを設定し、第1領域に必要な空棚104の数と第2領域に必要な空棚104の数とを決定するとともに、空棚104にする必要がある複数の棚101を目的棚とする(S51)。例えば、
図10(a)に示す例では、1−aの棚、1−cの棚、3−aの棚、3−cの棚を結んでできる領域が第1領域であり、1−dの棚、1−eの棚、3−dの棚、3−eの棚を結んでできる領域が第2領域となる。また、
図10(b)に示す例では、1−aの棚、1−bの棚、3−aの棚、3−bの棚を結んでできる領域が第1領域であり、1−dの棚、1−eの棚、3−dの棚、3−eの棚を結んでできる領域が第2領域であり、1−cの棚は単に通路であって、いずれの領域にも含まれない。
【0065】
その後、第2探索部14は、第1領域及び第2領域の空棚104の数を調整する(S52)。例えば、現在の第1領域の空棚数が5であり、第2領域の空棚数が0の状態で、ステップS51において第1領域に必要な空棚104の数が1、第2領域に必要な空棚104の数が3と決定されたとする。このとき、第2領域の空棚104の数が3になるようにいずれかのパレット102を移動させる経路を生成してメモリ(図示せず)に記憶する。このタイミングでは第1領域及び第2領域にそれぞれ必要な数の空棚104が存在すればどの棚が空棚104となっていてもよく、第2探索部14は、パレット102の移動が最小となるように経路を生成する。
【0066】
続いて、第2探索部14は、一セル幅通路108が棚101であるか否かを判定する(S53)。すなわち、
図10(b)のように、一セル幅通路108が故障棚107によって生じている場合には、1セル幅通路108は棚101である。一方、
図10(a)のように、一セル幅通路108が壁106によって生じている場合には、一セル幅通路108が棚101と棚101との境界であって、一セル幅通路108は棚101ではない。
【0067】
一セル幅通路108が棚101であるとき(S53でYES)、一セル幅通路108である棚101を空棚104にするパレット102の移動経路を生成してメモリに記憶する(S54)。このときも、第2探索部14は、パレット102の移動が最小となるように経路を生成するが、第1領域及び第2領域の空棚104の数がそれぞれステップS51で決定した数以上となるように経路を生成する。
【0068】
その後、第2探索部14は、目的棚のうち、1セル幅通路108に近く、かつパレット102が存在する棚を空棚104にする棚101である対象棚として決定する(S55)。また、第2探索部14は、対象棚と同一の領域にあり、かつ対象棚と近い空棚104の隣接棚のうち、この空棚104に移動可能なパレット102が存在する隣接棚を選択する(S56)。
【0069】
空棚104の隣接棚を選択すると、第2探索部14は、選択された各隣接棚について、隣接棚から対象棚までのコストを算出する(S57)。具体的には、第2探索部14は、コストt(n)に、隣接棚から対象棚までの距離(例えば、マンハッタン距離)や隣接棚から目的棚までの移動に要する時間を利用することができる。
【0070】
各隣接棚についてコストを算出すると、第2探索部14は、コストの最も小さい隣接棚を抽出する(S58)。
【0071】
コストの小さい隣接棚を抽出すると、第2探索部14は、抽出した隣接棚が対象棚であるか否かを判定する(S59)。抽出した隣接棚が対象棚であると判定されたとき(S59でYES)、第2探索部14は、レイアウトデータ記憶部16が記憶するレイアウトデータにおいて、全ての目的棚が空棚104となっているか否かを判定する(S60)。
【0072】
抽出した隣接棚が対象棚でない場合(S59でNO)、ステップS56に戻り、第2探索部14は、対象棚が抽出されるまでステップS56〜S59の処理を繰り返す。また、レイアウトデータ記憶部16が記憶するレイアウトデータにおいて、全ての目的棚が空棚104となっていない場合(ステップS60でNO)、ステップS55に戻り、別の目的棚を対象棚として決定し、ステップS56〜S60の処理を繰り返す。
【0073】
一方、レイアウトデータ記憶部16が記憶するレイアウトデータにおいて、全ての目的棚が空棚104となっている場合(S60でYES)、全ての目的地パレット102の移動経路が得られているため、第2探索部14は、これまでに得られた経路をパレット102の移動経路と決定する(S61)。
【0074】
その後、第2探索部14は、ステップS61で決定した経路に、空棚104となった次移動位置に呼出パレット105を移動する経路を加えてパレットの移動経路とし、パレットの移動経路の探索処理を終了する(S62)。ここで、第2探索部14は、ステップS56〜S63の処理を繰り返す際にステップS58で抽出された隣接棚を蓄積してメモリ(図示せず)に記憶し、ステップS58の処理で抽出され、メモリで記憶される隣接棚をパレットの移動経路と決定する。また、第2探索部14は、ステップS61及びS62で移動経路を決定すると、メモリで記憶する経路をメモリから消去し、決定した移動経路でパレット102を移動したシミュレーション結果でレイアウトデータ記憶部16が記憶するレイアウトデータを更新する。
【0075】
変形例1に係る経路計画装置10において第2探索部14が
図8の方法で移動経路を決定する場合、
図7(b)を用いて上述した方法と比較して、演算量が少なく、移動経路の決定に要する時間を短縮することができる。
【0076】
〈変形例2〉
また、上述した経路計画装置10においては、通路判定部13において呼出パレット105の次移動位置が1セル幅通路108の手前であるか否かを判定してパレット102の移動経路を探索していた。これに対し、
図9に示すように、1セル幅通路108を境として格納空間100をリフト103を含む領域A(第1領域)とリフトを含まない領域B(第2領域)との2つの領域に分割し、各領域内における空棚の数を設定してもよい。
【0077】
具体的には、
図9(a)に示す例では、領域Bに3棚の空棚104があるものの、領域Aには空棚104は全くない状態である。したがって、例えば、予め、領域Aの空棚104の数を1棚、領域Bの空棚104の数を2棚と設定しておく。また、通路判定部13は、第1探索部12で呼出パレット105の移動経路が探索されると、探索された経路で呼出パレット105を移動させた場合の各領域における空棚104の数を予測するとともに、各領域における空棚104の数が変更されるか否かを判定する。これにより、呼出パレット105を移動することで、領域Aに必要な数の空棚104が無くなると判定された場合、第2探索部14は、
図9(b)に示すように、呼出パレット105を領域Aに移動させるに先立って、パレット102の移動によって領域Aにおける空棚104の数を2棚にする経路を探索し、その後に呼出パレット105を領域Aに移動する経路を探索することで、空棚104の数を規定の値にすることができる。
【0078】
以上、実施形態を用いて本発明を詳細に説明したが、本発明は本明細書中に説明した実施形態に限定されるものではない。本発明の範囲は、特許請求の範囲の記載及び特許請求の範囲の記載と均等の範囲により決定されるものである。