(58)【調査した分野】(Int.Cl.,DB名)
格納物を載置可能なパレットが配置される棚とパレットが配置されない空棚とで構成される格納空間を複数層有する機械式格納庫と接続され、前記格納空間内でパレットの空棚へのスライド移動を制御するとともに、指定されたパレットである呼出パレットを入庫口又は出庫口であるバースまで移動させて格納物の入庫又は出庫を制御する制御装置であって、
格納物の入庫または出庫を要求する操作信号が入力されると、所定の呼出パレットを前記バースに移動させるためのパレットの第1移動手順を生成するとともに、前記呼出パレット以外の排出パレットを他の階層の格納空間に移動させた後に当該呼出パレットを前記バースに移動させるためのパレットの第2移動手順を生成する生成部と、
前記生成部で生成された第1移動手順の処理に要する第1推定時間、および第2移動手順の処理に要する第2推定時間を算出する算出部と、
前記第2推定時間が前記第1推定時間よりも短いときには、前記第2移動手順を最適な手順と決定する決定部と、
前記決定部で決定された手順を利用して、前記機械式格納庫を制御する制御信号を生成する制御部と
を備えることを特徴とする制御装置。
格納物を載置可能なパレットが配置される棚とパレットが配置されない空棚とで構成される格納空間を複数層有する機械式格納庫と接続され、前記格納空間内でパレットの空棚へのスライド移動を制御するとともに、指定されたパレットである呼出パレットを入庫口又は出庫口であるバースまで移動させて格納物の入庫又は出庫を制御する制御方法であって、
格納物の入庫または出庫を要求する操作信号が入力されると、所定の呼出パレットを前記バースに移動させるためのパレットの第1移動手順を生成するとともに、前記呼出パレット以外の排出パレットを他の階層の格納空間に移動させた後に当該呼出パレットを前記バースに移動させるためのパレットの第2移動手順を生成するステップと、
生成された第1移動手順の処理に要する第1推定時間、および第2移動手順の処理に要する第2推定時間を算出するステップと、
前記第2推定時間が前記第1推定時間よりも短いときには、前記第2移動手順を最適な手順と決定するステップと、
最適と決定された手順を利用して、前記機械式格納庫を制御するステップと
を備えることを特徴とする制御方法。
【発明を実施するための形態】
【0013】
図面を参照して、本発明の実施形態に係る制御装置及び制御方法について説明する。本発明に係る制御装置及び制御方法は、機械式格納庫において物品の入庫や出庫を制御するものであるが、以下における説明では、機械式格納庫が自動車を格納するパズル式駐車場であるものとして説明する。例えば、
図1に示すように、実施形態に係る制御装置10は、パズル式駐車場であるパズル式駐車場30を有するパズル式駐車システム1で利用される。
【0014】
〈パズル式駐車システム〉
パズル式駐車システム1は、制御装置10及びパズル式駐車場30の他、パズル式駐車場30への車両の入庫及びパズル式駐車場30からの車両の出庫の操作信号を入力する入力装置20を備えている。実施形態に係る制御装置10は、入力装置20に入力された操作信号に従ってパズル式駐車場30を制御する。
【0015】
パズル式駐車場30は、
図2に示すように、格納空間100を複数層有し、各格納空間100が、複数の棚101に区分されている。格納空間100の各棚101には、車両を積載可能なパレット102が配置されている棚と、パレット102が配置されていない空棚103とがある。パズル式駐車場30では、あるパレット102が存在する棚101の隣接棚が空棚103であるとき、駆動手段(図示せず)による駆動により、このパレット102を隣接する空棚103にスライド移動させることができる。パレット102の移動により、パレット102が配置されていた棚101は空棚となる。
【0016】
パズル式駐車場30では、車両の入庫口及び出庫口であるバース105は、格納空間100と異なる階層に設けることが可能である。
図2に示すように、格納空間100とは異なる階層にバース105を設ける場合には、格納空間100内にリフト104を移動可能なリフト位置106を設け、リフト位置106においてパレット102をリフト104で上方向に移動させることで、パレット102をバース105まで移動させることができる。なお、ここでは、リフト位置106には、パレット102が上下方向に移動される以外のタイミングでは、パレット102が配置されることはないものとする。また、
図2では、入庫口及び出庫口を1つのバース105として設ける例で示しているが、パズル式駐車場30では、複数のバース105を設けていてもよい。また、
図2では、1つのリフトを設ける例で示しているが、パズル式駐車場30では、層間のパレット移動のみを行うことができる、バースに接続されていないリフトを設けてもよい。
【0017】
〈制御装置〉
制御装置10は、入庫又は出庫の操作信号を入力すると、格納空間100にある呼出パレット107をリフト位置106までスライド移動させ、さらにバース105まで上方向に移動させた後、再び元の格納空間100に移動させる装置である。
図1に示すように、実施形態に係る制御装置10は、入力装置20から入庫又は出庫の操作信号を入力する操作入力部11と、パズル式駐車場30のレイアウトであるレイアウトデータを記憶するレイアウトデータ記憶部13と、パズル式駐車場30のレイアウトが変更すると、レイアウトデータ記憶部13で記憶されているレイアウトデータを更新する更新部12と、操作入力部11が入庫又は出庫の操作信号を入力すると、操作信号に従った操作を実行するためのパレット102の移動手順を生成する生成部14とを備えている。
【0018】
レイアウトデータ記憶部13で記憶しているレイアウトデータは、パズル式駐車場30が有する棚101及びリフト位置106の位置関係、各棚101に配置されているパレット102の識別番号、パレット102における車両の有無及び車両の識別番号を有している。具体的には、レイアウトデータは、
図2を用いて上述したような位置関係に関するデータである。
【0019】
具体的には、生成部14は、操作入力部11から入庫の操作信号を入力すると、レイアウトデータ記憶部13からレイアウトデータを読み出し、車両が積載されていない空のパレット102を呼出パレット107としてバース105まで移動させ手順を生成する。また、生成部14は、操作入力部11から出庫の操作信号を入力すると、レイアウトデータ記憶部13から対象の車両が積載されるパレット102を呼出パレット107としてバース105まで移動させる手順を生成する。生成部14が生成する手順には、呼出パレット107がリフト位置106に到着するまでに通過する棚101の順序、呼出パレット107を移動するために、他のパレット102及び空棚103を移動する順序等を含んでいる。
【0020】
ここで、入庫の場合には、生成部14は、読み出したレイアウトデータから空のパレット102を選択し、選択したパレット102を呼出パレット107として移動手順を生成する。なお、空のパレット102の選択方法としては、空のパレット102の中から、バース105に最も近い階層にあり、かつ、リフト位置に最も近い位置にあるパレット102を選択するようにすることができる。一方、出庫の場合には、リクエスト信号に呼出パレット107が識別番号を利用して指定されているため、生成部14は、指定される呼出パレット107の移動手順を生成する。
【0021】
実施形態に係る制御装置10では、呼出パレット107が存在する階層の格納空間100に空棚103を追加したほうが入庫又は出庫の処理を短縮できる場合、リフト104を使用して呼出パレット107以外のパレット102を呼出パレット107が存在する階層から移動させて空棚103を追加した後、呼出パレット107を移動させることができる。
【0022】
例えば、
図2(a)に示すように、リフト位置から最も遠い棚101にあるパレット102が呼出パレット107として指定されたとき、呼出パレット107をリフト位置106に移動させるためのパレット102のスライド移動の回数が多くなり、処理時間が長くなる。このような場合、呼出パレット107が存在する階層(層1)の空棚103の数を増加させたほうが処理時間が短縮できる場合、リフト位置106に隣接する棚101に配置されるパレット102を排出パレット108とし(
図2(b))、リフト104で排出パレット108を他の階層(層2)の格納空間100に移動させる(
図2(c)乃至
図2(d))。
【0023】
排出パレット108を他の階層の格納空間に移動させる場合、排出パレット108の移動先となる階層(層2)では、リフト位置の隣接棚に排出パレット108の移動先となる空棚103を設けるため、
図2(d)に示すようにパレット102を移動させる。排出パレット108は、このようにして設けられた空棚103に移動させる。呼出パレット107が存在する階層(層1)では、排出パレット108を排出したことで(
図2(e))、空棚103の数が1から2に増加している。したがって、呼出パレット107をリフト位置までスライド移動する手順を簡易化することができ、処理時間を短縮することができる。
【0024】
呼出パレット107が存在する格納空間100における空棚103の数を調整するため、制御装置10は、生成部14で生成された手順でパレット102を移動する場合に要する推定時間を算出する算出部15と、算出部15で算出された推定時間を利用して、対象の格納空間100から排出する排出パレット108の枚数を決定する決定部16と、決定部16で決定された排出パレット108の枚数と生成部14で生成された手順に応じてパズル式駐車場30を制御する制御信号を生成する制御部17とを備えている。
【0025】
算出部15は、生成部14から手順を入力すると、入力した手順でパレット102を移動する場合に要する推定時間を算出する。また、算出部15は、生成した推定時間を決定部16に出力する。ここで、算出部15は、呼出パレット107の移動手順のみを入力した際には、呼出パレット107をバース105に移動させる一連の処理に要する推定時間を算出する。一方、算出部15は、排出パレット108の他の階層への移動手順及び呼出パレット107の移動手順を入力した際には、排出パレット108の移動と呼出パレット107のバース105への移動との一連の処理に要する推定時間を算出する。
【0026】
決定部16は、生成部14において生成された手順から制御信号の生成に利用する手順を決定して制御部17に出力する。具体的には、呼出パレット107の存在する格納空間100の空棚103の数を追加することが可能であって、空棚103の数を追加した場合に呼出パレット107の移動の処理時間を短縮することができるとき、決定部16は、パレット102を排出して空棚103を追加することを決定する。
【0027】
決定部16でパレット102を排出することが決定されると、生成部14は、排出パレット108を格納空間100から移動する手順及び呼出パレット107をバース105まで移動する手順を生成する。
【0028】
制御部17は、入力した手順でパズル式駐車場30を制御する制御信号を生成し、パズル式駐車場30に制御信号を送信する。制御部17から送信された制御信号を受信したパズル式駐車場30では、受信した制御信号に従ってパレット102を移動させて入庫又は出庫の動作を実行する。具体的には、排出パレット108を移動しない場合、制御部17は、パレット102を空棚103に移動させながら呼出パレット107をリフト位置106まで移動させ、リフト104を使用してバース105まで上方向に移動させ、バース105で入庫又は出庫後にリフト104でこのパレット102を再び元の階層の格納空間100に戻す制御信号を生成する。また、排出パレット108を移動する場合、制御部17は、指定された排出パレット108を移動リフト位置106まで移動させ、リフト104を使用して排出先の格納空間100まで上方向に移動させ、その後、出庫又は入庫を実行する制御信号を生成する。
【0029】
図3に示すフローチャートを用いて実施形態に係る制御方法について説明する。まず、入力装置20を介して操作入力部11に入庫又は出庫を要求する操作信号が入力されると、生成部14は、呼出パレット107をバース105まで移動させる手順を生成する(S001)。
【0030】
ステップS001において生成部14は、手順を生成すると、呼出パレット107が存在する階層(処理階層)にパズル式駐車場30の全ての空棚103が存在するか否かを判定し、全ての空棚103が存在する場合(S002でYES)生成した手順を制御部17に出力する。処理階層に全ての空棚103が存在するか否かを判定することで、処理階層からパレット102の排出が可能であるか否かを判定することができる。
【0031】
ステップS002において処理階層に全ての空棚103が存在しないと判定されると(S002でNO)、生成部14は手順を算出部15に出力し、算出部15はステップS001で生成された手順を処理する場合の推定時間t1を算出し、算出された推定時間t1を決定部16に出力する(S003)。なお、決定部16は、入力した推定時間t1をメモリ(図示せず)に記憶させる。また、生成部14は、排出パレット数x=1と設定する(S004)。具体的には、生成部14は、排出パレット数x=1をメモリ(図示せず)に記憶させることで、排出パレット数xを設定する。
【0032】
排出パレット数nを設定した生成部14は、処理階層の格納空間100から排出パレット108を選択し、選択した排出パレット108を処理階層から他の階層に移動させる手順(仮排出手順)を生成する(S005)。ここで、生成部14は、処理階層の格納空間100でリフト位置106と最も近いパレット102を排出パレット108として選択する。また、生成部14は、排出パレット108を移動後のレイアウトの場合に呼出パレット107をバース105まで移動させる手順(仮手順)を生成する(S006)。なお、ここでは、ステップS005及びS006で生成部14が生成する手順は、推定時間算出用の仮の手順であるものとして説明する。
【0033】
生成部14でステップS005において排出パレット108の移動手順が生成され、ステップS006において呼出パレット107の移動手順が生成されると、算出部15は、排出パレット108の移動から呼出パレット107の移動までの一連の移動に要する推定時間t2を算出し、算出された推定時間t2を決定部16に出力する(S007)。なお、決定部16は、入力した推定時間t2をメモリに記憶させる。
【0034】
ステップS007において求められた推定時間t2を入力した、決定部16は、排出パレット108を追加後の推定時間t2が追加前の推定時間t1より短縮(t2<t1)されているか否かを判定する(S008)。
【0035】
排出パレット108の追加により処理に要する推定時間が短縮されていた場合(S008でYES)、決定部16は、推定時間t2を求めたレイアウトが処理階層に全ての空棚103が存在するレイアウトであるかを判定する(S009)。処理階層に全ての空棚103が存在するレイアウトであったか否かを判定することで、処理階層からパレット102の排出の追加が可能であるか否かを判定することができる。
【0036】
ステップS009において処理階層に全ての空棚103が存在するレイアウトではなかったと判定されると(S009でNO)、生成部14は、排出パレットを追加する設定をし、新たな排出パレット数でステップS005〜S009の処理を繰り返す(S010)。具体的には、生成部14は、排出パレット数x=x+1をメモリに記憶させることで新たな排出パレット数xを設定する。また、このとき、決定部16は、t1の値をt2の値で上書きする。
【0037】
一方、ステップS008において排出パレット108の処理に要する推定時間が短縮していない場合(S008でNO)、決定部16は、追加前の排出パレット数(x=x−1)を最適な排出パレット数と判定する。したがって、生成部14は、最適と判定された数の排出パレット108を処理階層から排出する際の手順を生成し、生成した移動手順を制御部17に出力する(S011)。
【0038】
また、ステップS009において処理階層に全ての空棚103が存在するレイアウトでなかったと判定されると(S009でYES)、決定部16は、排出パレット数を追加することはできないため、生成部14で設定されている排出パレット数xが最適な排出パレット数と決定する。したがって、生成部14は、最適と判定された排出パレット数のパレット102を処理階層から排出する際の手順を生成し、生成した移動手順を制御部17に出力する(S012)。ここで、ステップS005で生成したパレット排出の手順は算出部15による推定時間の算出用の仮の手順であったため、生成部14では、ステップS011又はS012において、実際の手順を生成するものとするが、ステップS005で実際の手順を生成し、かつ、ステップS005で生成した手順をメモリで記憶しておくことが可能である場合、ステップS011及びS012で再度手順を生成する必要はない。
【0039】
生成部14は、ステップS011又はS012で排出パレット108の他の階層への移動手順を生成後、呼出パレット107のバース105への移動手順を生成し、生成した移動手順を制御部17に出力する(S013)。ここで、ステップS006で生成した移動手順は算出部15による推定時間の算出用の仮の手順であったため、生成部14では、ステップS013において、実際の手順を生成するものとするが、ステップS006で実際の手順を生成し、かつ、ステップS006で生成した手順をメモリで記憶しておくことが可能である場合、ステップS013で再度手順を生成する必要はない。
【0040】
制御部17は、生成部14で生成された移動手順を利用して制御信号を生成し、生成した制御信号を送信してパズル式駐車場30を制御する(S014)。具体的には、ステップS001において生成された手順を入力した場合には、制御部17は、ステップS001において生成された手順のみを利用してパレット102を移動する制御信号を生成する。一方、ステップS011又はS012で生成された手順及びS013で生成された手順を入力した場合には、S011又はS012で生成された手順及びS013で生成された手順を利用して処理階層である格納空間100から他の階層の格納空間100に排出パレット108を移動させた後に呼出パレット107を移動させる制御信号を生成する。
【0041】
〈移動手順生成処理〉
ここで、生成部14におけるパレット102の移動手順の生成方法は、種々の方法を利用することができるが、その一例について説明する。
図4のフローチャートで示すように、生成部14は、対象のパレット102が目的地であるリフト位置106上に存在するか否かを判定する(S1)。対象のパレット102が目的地にあるとき(S1でYES)、対象のパレット102を格納空間100内で移動させる必要がないため、生成部14は、処理を終了する。
【0042】
また、対象のパレット102がリフト位置106にないとき(S1でNO)、生成部14は、パレット探索処理を実行する(S2)。このパレット探索処理については
図6を用いて後述するが、対象のパレット102が目的地まで移動する経路を探索する処理である。対象のパレット102が現在位置から、この移動経路上で次に移動する棚を「次移動位置」とする。
【0043】
パレット探索処理が終了すると、生成部14は空棚探索処理を実行する(S3)。この空棚探索処理については
図7を用いて後述するが、対象のパレット102をステップS2で探索された移動経路にしたがって移動させるために格納空間100内でパレット102をどのように移動させるかを探索する処理である。
【0044】
空棚探索処理が終了すると、生成部14は、ステップS3の探索結果を移動手順としてパレット102を移動した場合のデータを更新する(S4)。ここで生成部14が更新するデータは、ステップS3で得られた手順でパレットを移動した場合のレイアウトであり、メモリ(図示せず)に記憶されている。
【0045】
その後、生成部14は、ステップS4で更新されたレイアウトにおいて対象のパレット102が目的地であるリフト位置106にあるか否かを判定する(S5)。対象のパレット102が目的地にないと判定したとき(S5でNO)、生成部14は、ステップS3〜S5の処理を繰り返す。一方、対象のパレット102が目的地にあると判定したとき(S5でYES)、生成部14は、処理を終了する。
【0046】
ここで、ステップS2のパレット探索処理及びステップS3の空棚探索処理で利用するマンハッタン距離について説明する。ここで利用するマンハッタン距離は、ある棚101から別の棚101までの距離である。具体的には、2つの棚間の行座標と列座標の差の合計値である。例えば、
図5に示す例で、棚1(1−a)から棚2(3−e)までのマンハッタン距離を求める際には、行座標の差である2と列座標の差である4の合計値6がマンハッタン距離となる。
【0047】
〈パレット探索処理〉
図6に示すフローチャートを利用して、
図4のフローチャートのステップS2におけるパレット探索処理について説明する。まず、生成部14は、対象のパレット102が移動可能な隣接棚を選択する(S11)。
【0048】
移動可能な隣接棚が選択されると、生成部14は、選択した各隣接棚について、隣接棚から目的地であるリフト位置106までのコストを算出する(S12)。具体的には、生成部14は、コストt(m)に、隣接棚から目的地であるリフト位置106までの距離(例えば、マンハッタン距離)を用いることができる。または、生成部14は、距離の他、隣接棚からリフト位置106までの移動に要する時間をコストt(m)としてもよい。なお、mは、レイアウト毎に割り当てられる番号である。
【0049】
各隣接棚を対象とした場合のレイアウトについてコストを算出すると、生成部14は、コストの最も小さい隣接棚を抽出する(S13)。ここで、算出されたコストが等しい隣接棚が複数ある場合、生成部14は、空棚103に近い隣接棚を抽出する。
【0050】
1つの隣接棚を抽出すると、対象のパレット102が抽出された隣接棚にあると仮定して、対象のパレット102が目的地上にあるか否かを判定する(S14)。目的地上にないとき(S14でNO)、生成部14は、対象のパレット102が目的地上に到達するまで、順にステップS13で抽出された隣接棚に対象のパレット102が存在すると仮定してステップS11〜S14を繰り返す。
【0051】
目的地上にあるとき(S14でYES)、これまでステップS13で順に抽出した棚を対象のパレット102の移動経路として決定する(S15)。
【0052】
〈空棚探索処理〉
図7に示すフローチャートを利用して、
図4のフローチャートのステップS3における空棚探索処理について説明する。空棚探索処理では、対象のパレット102を次移動位置に移動させるため、この次移動位置を空棚にするために対象のパレット102以外のパレット102の移動経路を探索する。すなわち、パレットを移動して、空棚の位置が変更されることは、空棚の移動と等価である。
【0053】
まず、生成部14は、パレット探索処理で探索された対象のパレット102の移動経路と、対象のパレット102の現在位置とから、対象のパレット102の次移動位置と、次移動位置に最も近い空棚を選択する(S21)。
【0054】
続いて、生成部14は、選択した空棚103の隣接棚のうち、空棚103にパレット102を移動可能な隣接棚を選択する(S22)。
【0055】
空棚103の隣接棚を選択すると、生成部14は、選択された各隣接棚について、隣接棚から次移動位置までのコストを算出する(S23)。具体的には、生成部14は、コストt(n)に、隣接棚から次移動位置までの距離(例えば、マンハッタン距離)を用いることができる。または、生成部14は、距離のほか、隣接棚から次移動位置までのパレット102の移動に要する時間をコストt(n)としてもよい。なお、nは、レイアウト毎、すなわち、ステップS22で選択した隣接棚毎に割り当てられる番号である。
【0056】
各隣接棚についてコストを算出すると、生成部14は、コストの最も小さい隣接棚を抽出する(S24)。
【0057】
コストの小さい隣接棚を抽出すると、生成部14は、抽出した隣接棚が次移動位置であるか否かを判定する(S25)。抽出した隣接棚が次移動位置である場合(S25でYES)、生成部14は、ステップS22〜S24で抽出された移動経路を次移動位置を空棚とするまでのパレットの移動経路を空棚の経路と決定する(S26)。また、生成部14は、ステップS26で決定された次移動位置を空棚とする経路に、空棚となった次移動位置に対象のパレット102を移動する経路を加えてパレットの移動経路とし、空棚探索処理を終了する(S27)。
【0058】
一方、抽出された隣接棚が次移動位置でない場合(S25でNO)、生成部14は、ステップS21に戻り、次移動位置が空棚になるまでのパレットの移動経路を探索する。ここで、ステップS22〜S25が繰り返される場合、探索されたパレットの経路はメモリ(図示せず)で記憶されており、ステップS26で決定されるパレットの移動経路に反映される。
【0059】
上述したように、実施形態に係る制御装置では、入庫又は出庫が操作された際に、算出部を利用して処理時間を推定し、一つの格納空間内の処理だけでなく、他の格納空間にパレット移動させて処理を短縮することができる場合、短時間で処理可能な制御方法を選択して機械式格納庫を制御することができる。したがって、実施形態に係る制御装置では、機械式格納庫のパレットの移動を効率的に制御することができる。
【0060】
なお、制御装置10は、PC(パーソナルコンピュータ)やPLC(プログラマブルロジックコントーラ)等の情報処理装置を利用して実現することができる。また、
図1の例では、操作入力部11、更新部12、レイアウトデータ記憶部13、生成部14、算出部15、決定部16及び制御部17が1台の装置内に備えられるものとして示しているが、複数台の情報処理装置を利用して制御装置10が実現されていても同様である。
【0061】
以上、実施形態を用いて本発明を詳細に説明したが、本発明は本明細書中に説明した実施形態に限定されるものではない。本発明の範囲は、特許請求の範囲の記載及び特許請求の範囲の記載と均等の範囲により決定されるものである。