以下、実施形態について図面を参照しながら説明する。図1は、実施形態に係る走行車システムを示す説明図およびブロック図である。走行車システム1は、軌道2と、複数の走行車3と、上位制御装置4と、走行車3に搭載される制御装置5(図1(B)参照)とを備える。走行車システム1は、例えば、半導体デバイスの製造工場に設置される搬送システムであり、半導体デバイスの製造に用いられる半導体ウェハを収容したFOUP、あるいはレチクルなどの加工用部材を収容したレチクルポッドなどの容器を搬送する。
複数の走行車3は、それぞれ、軌道2に沿って走行する。以下、複数の走行車3の各走行車を、個別に区別しない場合に符号3で表し、個別に区別する場合に符号3a、3bで表す。図1には、2つの走行車3a、3bを例示したが、走行車システム1が備える走行車の数は任意に設定される。走行車3は、例えば天井走行車であり、軌道2は、クリーンルームの天井などに設けられる走行レールである。走行車3は、地上走行の有軌道台車などでもよく、この場合、軌道2は、床などに設けられる。
軌道2は、処理装置(図示せず)あるいはストッカ(図示せず)などに隣接して設けられる。上記の処理装置は、例えば、露光装置、コータディベロッパ、製膜装置、あるいはエッチング装置などであり、走行車3が搬送する容器内の半導体ウエハに各種処理を施す。上記のストッカ(自動倉庫)は、走行車3が搬送する容器を保管する。
走行車3は、上位制御装置4からの走行指令を受けて、軌道2を走行する。走行車3は、定期的(例、1秒周期)に、あるいは不定期(例、指令の完了時)に走行車3の状態情報を上位制御装置4に送信する。走行車3の状態情報は、例えば、走行車3が現在保持している指令(例、搬送指令、走行指令)の内容を示す保持指令情報、走行車3の現在位置および目的地(走行先)を示す位置情報、走行車3の走行状態(例、走行中か否か、走行速度)を示す走行状態情報、及び走行車3が備えるセンサの検出結果(例、荷物の有無、前方の走行車の有無)などを示すセンサ状態情報を含む。上位制御装置4は、走行車3から受信した状態情報に基づいて、走行指令を生成する。
上位制御装置4は、指令生成部11と、記憶部12と、通信部13とを備える。通信部13は、無線LANなどによって走行車3と通信可能であり、走行車3から状態情報を受信する。記憶部12は、通信部13が受信した状態情報を記憶する。例えば、記憶部12は、複数の走行車3のそれぞれの状態を格納するテーブルデータを記憶し、このテーブルデータは、通信部13が受信した状態情報に応じて更新される。指令生成部11は、予め与えられたタスク(例、荷物の搬送)などにより定まる目的地DNの情報と、上記のテーブルデータとに基づいて、このタスク応じた指令(搬送指令、走行指令)を担当させる走行車3を決定する。目的地DNは、例えば、処理装置側あるいはストッカ側と荷物の受け渡しが可能なアクセスポイント(例、ロードポート、バッファ、入出庫ポート)である。
以下の説明では、指令生成部11が指令を走行車3aに割り付けるものとする。指令生成部11は、指令先の走行車3aに関して記憶部12に記憶されている最新の位置情報に基づいて、指令先の走行車3aを走行させる指定経路R1を決定する。走行車3の走行には、予め走行ルールが定められている。以下、走行ルールについて説明する。
軌道2は、分岐点および合流点(以下、総称して接続ポイントという)を含む。軌道2は、複数の区間R11〜R26に区画されており、軌道2の各区間は、例えば、接続ポイント(分岐点または合流点)から次の接続ポイント(分岐点または合流点)までの区間である。走行ルールには、例えば、軌道2の各区間において、走行車3が所定の向きのみに走行する(逆走しない)ことが定められる。以下の説明において、指定経路R1の起点を含む区間(図1では区間R11)を、適宜、開始区間と称する。また、指定経路R1の終点(目的地DN)を含む区間(図1では区間R17)を、適宜、目的区間と称する。
軌道2の各区間は、メインルート(図中に実線で示す)とサブルート(図中に二点鎖線で示す)とに分類されている。図1の例では、メインルートに属する区間は、区間R11〜R20であり、サブルートに属する区間は、区間R21〜R26である。メインルートは、例えば、イントラベイの区間、幹線等であり、走行車3が周回することが可能な周回経路(例、区間R15〜R18)などを含む。サブルートは、例えば、インターベイの区間、支線、メインルート間を繋ぐバイパスなどであり、メインルートから分岐する区間、及びメインルートへ合流する区間を含む。走行ルールには、指定された場合にサブルートの区間を走行し、指定されていない場合にメインルートの区間を走行することが定められている。
上位制御装置4の記憶部12および走行車3の記憶部23(後述する)には、それぞれ、軌道2の各区間の配置を表したマップ情報が記憶されている。マップ情報は、例えば、各区間の配置、各区間に接続される次の区間の情報(区間の接続情報)、及び各区間がメインルートとサブルートとのいずれに属するのかを示す情報を区間ごとに表したテーブルデータである。マップ情報における各区間の情報は、例えば、この区間に割り付けられたID(識別番号)、メインルートまたはサブルートの種別を示すフラグ(例、「0」、「1」)などで表される。マップ情報は、各区間の配置を、その両端の接続ポイント(分岐点または合流点)のID(識別番号)などで表したものでもよい。
指令生成部11は、指定経路R1に属する区間(R11、R21、R13、R14、R22、R15、R16、R17)を一部省略して表した経路情報を生成する。指令生成部11は、指定経路R1のうちメインルートに属する区間(R11、R、13、R14、R15、R16、R17)の少なくとも一部を省略し、かつ指定経路R1に含まれるサブルートの区間(R21、R22)については省略せずに経路情報を生成する。例えば、経路情報は、指定経路R1に含まれるサブルートの区間(R21、R22)のIDを走行順に並べた情報である。指令生成部11は、上述の経路情報、及び指定経路R1の起点の情報を含む走行指令を生成する。指定経路R1の起点の情報は、例えば開始区間(R11)の情報(例、ID)である。指令生成部11は、指定経路R1の起点が属する区間(R11)がメインルートに属する場合、及びサブルートに属する場合のいずれにおいても、指定経路R1の起点の情報を走行指令に含める。指令生成部11は、例えば、開始区間(R11)のID、経路情報の区間(R21、R22)のID、及び目的区間(R17)のIDが走行順に並ぶデータ構造を有する走行指令を生成する。走行指令の例、及び走行指令に応じた走行車の動作については、後の図3から図5で説明する。
通信部13は、指令生成部11が生成した走行指令を、指令先の走行車3aへ送信する。上述のように、走行指令において、指定経路R1に属する区間が一部省略して表されるので、走行指令のデータ量(通信量)が低減される。例えば、図1において、指定経路R1に属する区間は、区間R11、R21、R13、R14、R22、R15、R16、R17であるが、走行指令で指定される区間は、区間R11(開始区間)、R21、R22(経路情報の区間)、R17(目的区間)であり、走行指令で指定される区間のデータ量は、指定経路R1に含まれる全区間のデータ量よりも少ない。このように、データ量が少ない場合、上位制御装置4と走行車3との間の通信エラーの発生が抑制される。
ところで、上位制御装置4は、複数の搬送処理において、搬送処理ごとに走行指令を発令する。指定経路は、開始区間および目的区間などに応じて様々であり、走行指令は、そのデータ量が多い場合もあれば少ない場合もある。例えば、指定経路が開始区間および目的区間のみである場合等には走行指令のデータ量が少なく、走行指令が圧縮されていなくとも通信エラーが生じ難い。実施形態に係る走行指令は、通信エラーを十分に抑制できるレベルのデータ量であればよく、複数の走行指令が発令される場合、それらの少なくとも一部において、指定経路に属する区間が一部省略して表されていればよい。本実施形態に係る走行車システム1は、走行指令のデータ量を通信エラーを十分に抑制できるレベルに抑えつつ、不測の走行を行うことを抑制する。本明細書における不測の走行とは、走行車が走行指令を保持していない状態で新たな走行指令を受けた場合、この走行指令で意図されていない走行である。また、不測の走行とは、走行車が先に受けた走行指令の実行中に新たな走行指令を受けた場合、先の走行指令と新たな走行指令のいずれにおいても意図されていない走行である。
走行車3a、走行車3bは、いずれも同様の構成である。ここでは、走行車3aの構成を代表的に説明し、走行車3bの構成の説明を省略する。図1(B)に示すように、走行車3aは、制御装置5、位置センサ16、積荷センサ17、前方センサ18、及び駆動装置19を備える。駆動装置19は、走行車3を走行させる駆動力を供給する。また、駆動装置19は、荷物の積み下ろし、積み込みなどの荷役に使われる駆動力を供給する。
位置センサ16は、走行車3aの現在位置を検出する。位置センサ16は、制御装置5と有線または無線によって通信可能に接続され、検出した走行車3の現在位置を制御装置5に供給する。積荷センサ17は、荷物の有無を検出する。積荷センサ17は、制御装置5と有線または無線によって通信可能に接続され、検出結果を制御装置5に供給する。前方センサ18は、走行車3aの進行方向(走行方向)の前方を監視し、前方に他の走行車(例、走行車3b)が存在するか否かを検出する。前方センサ18は、制御装置5と有線または無線によって通信可能に接続され、検出結果を制御装置5に供給する。
位置センサ16の検出結果、積荷センサ17の検出結果、及び前方センサ18の検出結果は、走行車3aの状態情報として利用される。なお、位置センサ16あるいは前方センサは、走行車3aに搭載されなくてもよく、例えば、軌道2などに配設されてもよい。また、走行車システム1は、上述のセンサの少なくとも1つを備えなくてもよいし、他のセンサを備えてもよい。
制御装置5は、走行車3に搭載され、上位制御装置4から走行指令を受けて走行車3の走行を制御する。制御装置5は、走行制御部21と、経路復元部22と、記憶部23と、判定部24と、通信部25とを備える。記憶部23は、位置センサ16が検出した走行車3aの現在位置(位置情報)および各種センサの検出結果に相当する状態情報を記憶する。通信部25は、上位制御装置4の通信部13と無線LANなどによって通信可能に接続される。通信部25は、記憶部23に記憶されている状態情報を上位制御装置4の通信部13に送信する。また、通信部25は、上位制御装置4の通信部13から走行指令を受信し、受信した走行指令を記憶部23に記憶させる。また、記憶部23は、軌道2の複数の区間を表したマップ情報を記憶する。マップ情報は、上位制御装置4の説明で述べた通りであり、制御装置5は、上位制御装置4と同様のマップ情報を記憶部23に保持している。経路復元部22は、記憶部23に記憶されているマップ情報を用いて走行指令の経路情報において省略された区間を補完し、指定経路R1の起点の情報を用いて指定経路R1を復元する。
ここで、図1を参照しつつ、指定経路の起点の情報を用いないで復元を行う比較例と、指定経路R1の起点の情報を用いて復元を行う実施例とについて説明する。ここでは、上位制御装置4は、走行車3aが区間R19に存在しているものと状態情報によって認識しているものとし、走行車3aを目的地DNに向かわせる走行指令を生成するものとする。この場合の指定経路は、例えば、R19、R11からR14、R22、R15からR17(DN)である。
まず、比較例について説明する。走行指令に起点の情報を含めない場合、圧縮後の経路情報は、上記の指定経路のうちメインルートの区間(R19、R11からR16)の情報を省略した区間R22、R17(DN)の情報となる。走行車は、この走行指令を受信した時点で、上位制御装置が保持する状態情報での位置よりも先に進んでおり、例えば区間R26を走行中であるとする。この場合、起点の情報を含まない走行指令(区間R22、R17)の情報から復元される指定経路は、区間R26、R14、R22、R15からR17(DN)となり、上位制御装置が意図した指定経路と異なる。
次に、実施例について説明する。上位制御装置4は、指定経路(R19、R11からR14、R22、R15からR17(DN))のうち、起点の区間(R19)よりも後のメインルートの区間(R11からR16)の情報を省略し、経路情報として、区間R19、R22、R17(DN)を組にした情報を生成する。この場合、経路復元部22は、走行指令に含まれる起点(R19)の情報を用いることで、指定経路(R19、R11からR14、R22、R15からR17(DN))を復元し、現在位置に関わらず上位制御装置4が意図した指定経路を復元することができる。
図2は、経路復元部22が実行する指定経路の復元処理の一例を示すフローチャートである。走行指令には、指定経路の起点の情報として、例えば開始区間のIDが含まれている。ステップS1において、経路復元部22は、開始区間を基準の区間にセットする。ステップS2において、基準の区間の次の区間が走行指令に指定されているか否かを判定する。例えば、経路復元部22は、走行指令において基準の区間(例、開始区間)の次に指定された区間の情報とマップ情報とを照合し、この区間が基準の区間に続く区間である場合に、次の区間が指定されていると判定する(ステップS2;Yes)。経路復元部22は、次の区間が指定されていると判定した場合、ステップS3において、指定された区間を指定経路の区間として採用する。例えば、図1(A)において、指定経路R1において開始区間(区間R11)の次の区間R21は、サブルートに属する区間であり走行指令に指定されているので、経路復元部22は、区間R21を指定経路R1の区間として採用する。経路復元部22は、指定経路R1の区間に採用した区間R21を基準の区間にセットして次の区間を決定し、以下同様の処理を繰り返して指定経路R1の区間を順に決定する。
経路復元部22は、次の区間が指定されていないと判定した場合(ステップS2;No)、ステップS4において、マップ情報を参照して、メインルートのうち基準の区間に続く区間を指定経路の区間として採用する。例えば、図1(A)において、基準の区間が区間R21である場合、指定経路R1において区間R21に続く区間R13はメインルートに属する区間であり、この区間R13の情報は、走行指令において省略されている。このような場合、経路復元部22は、マップ情報を参照して、基準の区間(例、区間R21)に続くメインルートの区間R13の情報を取得し、この区間R13を指定経路R1の区間として採用する。
ステップS5において、経路復元部22は、ステップS3またはステップS4で採用した区間によって目的区間に到達したか否かを判定する。例えば、経路復元部22は、ステップS3またはステップS4で採用した区間が、走行指令に指定された目的区間と一致する場合に、目的区間に到達したと判定する。経路復元部22は、目的区間に到達していないと判定した場合(ステップS5;No)、ステップS3またはステップS4で採用した区間を基準の区間にセットし(ステップS6)、ステップS2に戻って以降の処理を繰り返し行う。これにより、指定経路の区間は、開始区間から走行順に決定される。経路復元部22は、目的区間に到達したと判定した場合(ステップS5;Yes)、復元した指定経路の情報を記憶部23に記憶させ、指定経路の復元処理を終了する。このように、経路復元部22は、走行指令で指定された区間の次の区間が走行指令で指定されていない場合に、次の区間がメインルートに属するものとして、指定経路を復元する。なお、上述した経路の復元処理は、一例であり、適宜変更可能である。
図1の説明に戻り、判定部24について説明する。上述のように、上位制御装置4は、走行車3aの通信部25から受信した最新の状態情報に基づいて走行指令を生成する。しかしながら、上位制御装置4が認識する走行車3aの位置(上位制御装置4における最新の状態情報)と、走行車3aの位置センサ16が検出する最新の位置(現在位置)とは、通信のタイムラグなどによってずれることがある。その結果、上位制御装置4の認識に基づいた走行指令で意図(予定、想定)される指定経路と、この走行指令から経路復元部22が復元する指定経路とが食い違うことがありえる。走行車3は、新たに受けた走行指令と現在位置との整合性を判定部24によって自己判断(診断)し、不測の走行を行うことを回避する。
判定部24は、走行指令に含まれる指定経路の起点の情報および走行車3aの現在位置を用いて、この走行指令を実行するか否かを判定し、走行指令と現在位置とが整合しない場合に、この走行指令を実行しないと判定(決定)する。例えば、判定部24は、経路復元部22が復元した指定経路から走行車3の現在位置が外れている場合、走行指令を実行しないと決定する。
通信部25は、判定部24の判定結果を上位制御装置4へ送信する。例えば、判定部24は、新たに受けた走行指令を実行しないと判定した場合、この走行指令を実行しない旨の通知を通信部25によって送信させる。また、判定部24は、新たに受けた走行指令を実行すると判定した場合、この走行指令を実行する旨の通知を通信部25によって送信させる。上位制御装置4は、この通知を受信することによって、走行車3aが走行指令を実行することを把握することができる。
また、判定部24は、走行指令を実行するか否かの判定結果に基づいて、実行対象の走行指令を維持または更新する。例えば、走行車3aが第1の走行指令を現在保持しており、かつ第2の走行指令を受けた際に、判定部24は、第2の走行指令(新たな走行指令)を実行すると判定した場合に、実行対象の走行指令を第2の走行指令に更新する。また、判定部24は、第2の走行指令(新たな走行指令)を実行しないと判定した場合に、実行対象の走行指令を第1の走行指令のまま維持する。走行制御部21は、現在保持する走行指令に基づいて駆動装置19を制御し、走行車の走行を制御する。このように、走行車3は、第1の走行指令による走行中に第2の走行指令を受けた場合において、第2の走行指令を実行すると判定部24が判定した場合、第1の走行指令に替えて第2の走行指令を実行する。また、走行車3は、第2の走行指令を実行しないと判定部24が判定した場合、第1の走行指令を継続して実行する。なお、走行車システム1は、判定部24を備えなくてもよく、この場合、通信部25は、第2の走行指令を実行するか否かを上位制御装置4に通知しなくてもよい。
以下、図3から図5を参照しつつ、実施形態に係る走行指令の例、この走行指令と走行車の状態に応じた走行車の動作について説明する。図3から図5は、それぞれ、走行車の状態および走行指令に応じた走行車の動作を示す説明図である。図3から図5において、符号R1(点線で表す)は、走行指令で意図された指定経路であり、符号R2(二点鎖線で示す)は、経路復元部22が復元した指定経路である。また、符号R31から符号R34は、メインルートの区間であり、符号R41から符号R44は、サブルートの区間である。
図3(A)から(C)の走行指令Cm1は、いずれも同じ走行指令であり、指定経路R1の起点の情報として「開始区間」を含み、指定経路R1の終点の情報として「目的区間」を含む。「開始区間」および「目的区間」は、例えば、予め区間に割り付けられたIDなどで表される。図3(A)において、目的地DNは、走行車3の進行方向に対して前方側(指定経路R1の下流側)である。経路復元部22は、図2などで説明した復元処理によって指定経路R2を得る。指定経路R2は、走行指令Cm1で意図された指定経路R1と同じである。走行車3aは、経路復元部22が復元する指定経路R2に沿って現在位置から目的地DNまで走行可能である。
図3(B)において、走行車3は、上位制御装置4が認識する走行車3の位置P1よりも進行しており、目的地DNとほぼ同じ位置にある。例えば、走行車3は、例えば目的地DNに停止して、先に受けた走行指令に応じた荷物の積み込み、積み下ろしなどを実行中の場合がある。また、走行車3は、目的地DNを通過中の場合もある。このような状態では、経路復元部22は、目的地DNと現在位置が同じであるので、指定経路を復元できない場合がある。また、経路復元部22は、復元処理のアルゴリズムによっては、指定経路R2として目的地DNを含む周回経路を復元する場合もある。図3(C)において、走行車3は、上位制御装置4が認識する走行車3の位置P1よりも進行しており、目的地DNより進行方向の前方にある。目的地DNを含む周回経路がメインルートである場合、経路復元部22が復元した指定経路R2は、目的地DNを含む周回経路になる。図3(B)および図3(C)に示したように、経路復元部22が復元した指定経路R2は、現在位置によっては、走行指令Cm1で意図された指定経路R1と異なる場合がある。
指定経路が圧縮されている場合、一般的に走行指令のデータ量は減少するが、情報量が減少していることで指定経路の復元に失敗すること、例えば、指定経路を再構築すること自体ができないこと、あるいは指定経路を再構築するこができても走行指令に意図された指定経路と異なることがある。指定経路の復元に失敗した場合、走行車3は、走行指令に従うと、不測の走行を行う場合がある。そこで、判定部24は、受信した走行指令の指定経路と現在位置とが所定の条件を満たす場合に、この走行指令を実行しないと判定(決定)する。例えば、例えば、判定部24は、走行車3aが走行中または停止中の区間において、現在位置と目的地DNとが一致する場合、あるいは目的地DNが現在位置よりも進行方向の後方側である場合、この走行指令を実行しないと判定する。
次に、実施形態に係る走行指令について、図3とは異なる形態について説明する。図4において、走行指令Cm2、Cm3は、指定経路の起点を含む周回経路(R31〜R34)を周回するか否かを示す周回情報として「経路種別」を含む。「経路種別」は、周回経路(R31〜R34)を周回しないこと定めた「通常」、または周回経路(R31〜R34)を周回することを定めた「周回」である。「通常」、「周回」は、例えば「0」、「1」などの1ビットのフラグデータで表される。
図4(A)において、目的地DNは、走行車3の進行方向に対して後方側(指定経路の上流側)であり、かつ走行指令Cm2において「経路種別」は「通常」である。この場合に、判定部24は、走行指令Cm2を実行しないと判定する。上位制御装置4は、例えば周回経路(R31〜R34)に含まれる区間(例、区間R34)が工事などで一時的に封鎖されている場合、「経路種別」を「通常」にしておくことで、封鎖された区間へ走行車3が向かうことを回避することができる。図4(A)においては、目的地DNよりも現在位置が進んでおり、「経路種別」が「通常」であることから現在位置と指定経路とが整合しないので、判定部24は、走行指令Cm2を実行しないと判定する。
また、図4(B)の走行指令Cm3において、「経路種別」は「周回」である。経路復元部22は、周回情報を用いて指定経路R2を復元する。「経路種別」が「周回」である場合、経路復元部22は、例えば、開始区間(R31)に続く区間としてメインルートに属する区間(R32、R33、R34)を採用する。経路復元部22は、周回情報を用いることで指定経路R2を復元することができ、判定部24は、走行指令Cm3を実行すると判定する。図4(B)において、走行車3の現在位置は図3(C)とで同様であるが、周回情報を用いることで、目的地DNが走行車3の進行方向に対して後方側である場合にも指定経路の復元に失敗することが回避され、走行指令Cm3の意図を反映した走行が実行可能である。
図4(A)に示したように、走行指令が周回情報を含む場合、判定部24は、指定経路の起点が走行車の現在位置に対して進行方向の後方側であり、かつ周回経路(R31〜R34)を周回しないと周回情報に定められる場合、走行指令を実行しないと判定する。なお、図4では、目的地DNは、走行車3の進行方向に対して後方側であるが、図3(A)のように目的地DNが走行車3の進行方向に対して前方側である場合、あるいは図3(B)のように走行車3の現在位置と一致する場合においても同様に、走行指令Cm2、Cm3の意図を反映した走行が実行可能である。例えば、目的地DNにロードポートがあり、この目的地DNに荷物を積み下ろす処理において、ロードポートに既に他の荷物が置かれている状態を想定する。この状態において、上位制御装置4は、走行車3を周回経路(R31〜R34)で走行させてから目的地DNに向かわせることで、他の荷物がロードポートから移動されるまでの時間を稼ぐことができる。
次に、実施形態に係る走行指令について、図3および図4と異なる形態について説明する。図5において、走行指令Cm4は、「次の区間」の情報を含む。「次の区間」は、指定経路R1の起点が属する区間(R31)の次の区間(R32)の情報である。経路復元部22は、「次の区間」の情報を用いて指定経路R1を復元する。経路復元部22は、開始区間として区間R31を採用し、区間R31に続く区間として指定された区間R32を採用する。ここでは、区間R32に続く区間R33、R34は、メインルートに属する区間であり、走行指令Cm4において省略されている。経路復元部22は、マップ情報を用いて区間R33、R34の情報を補完し、指定経路R2を復元する。走行車3の現在位置は、図5(A)と図3(C)とで同様であるが、経路復元部22は、「次の区間」の情報を用いることで指定経路R2を復元することができる。
図5(B)および(C)の走行指令Cm5では、「次の区間」として「0」が指定されている。この「0」は、例えばダミーの区間の情報であり、「NULL」などで表されてもよいし、マップ情報に存在しない区間のIDなどで表されてもよい。この情報は、次の区間がないこと、あるいは開始区間以降の区間を復元しない(開始区間以降の復元を禁止する)ことを表す情報として利用される。図5(B)のように、目的地DNが走行車3の進行方向の前方側である場合、経路復元部22は、現在位置に整合した指定経路R2を復元することができ、判定部24は、この走行指令Cm5を実行すると判定する。これにより、走行車3を走行指令Cm5の意図した指定経路R2で走行させることができる。
図5(C)において、走行車3は、上位制御装置4が認識する走行車3の位置P2よりも進行して、目的地DNを通過している。このように、目的地DNが走行車3の進行方向の後方側である場合、経路復元部22は、「次の区間」の情報が「0」であり開始区間の次の区間を決定(復元)することができないので、目的区間まで到達する指定経路(現在位置に整合した指定経路)を復元することができない(指定経路の復元に失敗する)。この場合、判定部24は、この走行指令Cm5を実行しないと判定する。上位制御装置4は、例えば、走行車3の現在位置が目的地DNの手前である場合に走行指令を実行させ、かつ走行車3の現在位置が目的地DNを越えていた場合に走行指令を実行させない場合、走行指令Cm5を用いる。これにより、判定部24は、上位制御装置4が保持する状態情報よりも最新の走行車3の現在位置に基づいて走行指令Cm5を実行するか否かを判定し、走行車3が不測の走行を行うことが回避される。
次に、上述のような走行車システム1の動作に基づき、実施形態に係る走行車の制御方法について説明する。図6、図7は、実施形態に係る走行車システム1の動作を示すシーケンス図である。図6、図7において、「第1走行車」は、例えば図1の走行車3aであり、「第2走行車」は、例えば図1の走行車3bである。まず、図6を参照して、新たな走行指令を実行する場合の動作について説明し、次に図7を参照して、新たな走行指令を実行しない動作について説明する。
第1走行車は、ステップS11において第1の走行指令(先に受けた走行指令)を実行中である。第1走行車は、ステップS12において、状態情報を上位制御装置4に送信する。また、第2走行車は、ステップS13において、状態情報を上位制御装置4に送信する。ステップS12の処理とステップS13の処理とは、少なくとも一部が並行して行われてもよいし、重複しない期間に実行されてもよい。第2走行車は、他の走行指令を実行中でもよいし、待機中でもよい。
上位制御装置4は、ステップS14において、ステップS12の状態情報およびステップS13の状態情報を用いて状態テーブルを更新する。状態テーブルは、複数の走行車の状態情報を保持するテーブルデータである。上位制御装置4は、ステップS15において、状態テーブルを用いて、所定の搬送対象物に関する走行の指令先を決定する。所定の搬送対象物に関する走行は、例えば、搬送対象物を積み込むために搬送対象物の位置へ向かい走行、あるいは、積み込んだ搬送対象物の積み下ろし先へ向かう走行などである。上位制御装置4は、状態テーブルを用いて複数の走行車の位置、走行状態などを加味して、所定の搬送対象物の搬送に適した走行車を指令先の走行車として決定する。ここでは、指令先の走行車が第1走行車に決定されたものとする。
上位制御装置4(指令生成部11)は、ステップS16において、ステップS15で決定した第1走行車に対する第2の走行指令(新たな走行指令)を生成する。上位制御装置4は、状態テーブルを参照して第1走行車の位置、走行状態を加味し、また搬送対象物によって定まる目的地の情報を用いて、第2の走行指令を生成する。上位制御装置4(通信部13)は、ステップS17において、第2の走行指令を第1走行車に送信する。
第1走行車の経路復元部22は、ステップS18において、第2の走行指令に基づいて指定経路を復元する(図2参照)。第1走行車の判定部24は、ステップS19において、経路復元部22が復元した指定経路および第1走行車の現在位置に基づいて、第2の走行指令を実行するか否かを判定する。ステップS19の判定処理の例については、後に図8で説明する。判定部24は、図6では第2の走行指令を実行すると判定するものとする。第1走行車の通信部25は、ステップS20において、判定部24の判定結果として第2の走行指令を実行する旨の通知を上位制御装置4に送信する。第1走行車の走行制御部21は、ステップS21において、経路復元部22が復元した指定経路を用いて第2の走行指令を実行する。
次に、新たな走行指令を実行しない場合の動作について説明する。図7のステップS11からステップS18までの処理は、図6と同様であるのでその説明を省略する。第1走行車の判定部24は、ステップS19において、図7では第2の走行指令を実行しないと判定するものとする。第1走行車の通信部25は、ステップS31において、判定部24の判定結果として第2の走行指令を実行しない旨の通知を上位制御装置4に送信する。第1走行車の走行制御部21は、ステップS11における第1の走行指令の実行を中断せずに、ステップS32においても第1の走行指令の実行を継続する。第1走行車の通信部25は、ステップS33において、ステップS11と同様に状態情報を上位制御装置4に送信する。第2走行車の通信部25は、ステップS34において、ステップS13と同様に状態情報を上位制御装置4に送信する。
上位制御装置4は、ステップS35において、ステップS33の状態情報およびステップS34の状態情報を用いて状態テーブルを更新する。上位制御装置4は、ステップS36において、更新された状態テーブルを用いて、第2の走行指令と同じ所定の搬送対象物に関する走行の指令先を決定する。ここでは、指令先の走行車が第2走行車に決定されたものとするが、複数の走行車の状態によっては他の走行車(例、第1走行車)に決定される場合もある。上位制御装置4(指令生成部11)は、ステップS37において、ステップS36で決定した第2走行車に対する第3の走行指令を生成する。上位制御装置4は、状態テーブルを参照して第2走行車の位置、走行状態を加味し、また搬送対象物によって定まる目的地の情報を用いて、第3の走行指令を生成する。このように、上位制御装置4は、所定の搬送対象物に関する走行指令を実行しない旨の判定結果を制御装置5の通信部25から受信した場合に、走行車の位置に基づいて所定の搬送対象物に関する次の走行指令を生成する。上位制御装置4(通信部13)は、ステップS38において、第3の走行指令を第2走行車に送信する。
第2走行車の経路復元部22は、第1走行車におけるステップS18の処理と同様にして第3の走行指令に関する指定経路を復元し、第2走行車の判定部24は、第1走行車のステップS19の処理と同様にして第3の走行指令を実行するか否かを判定する。第2走行車の通信部25は、判定部24の判定結果として、第3の走行指令を実行するか否かを示す通知を上位制御装置4に送信する。
図8は、走行指令を実行するか否かの判定処理を示すフローチャートである。図8(A)のステップS41において、判定部24は、経路復元部22が指定経路の復元に成功したか否かを判定する。例えば、図5(C)の状態において経路復元部22は指定経路の復元(再構築)に失敗した旨の情報を出力し、判定部24は、この情報を受けて、指定経路の復元に失敗したと判定する(ステップS41;No)。
判定部24は、指定経路の復元に成功したと判定した場合(ステップS41;Yes)、ステップS42において、復元された指定経路が現在位置と整合するか否かを判定する。例えば、判定部24は、例えば図4(A)の状態のように、復元された指定経路から現在位置が外れている場合、あるいは指定経路上で目的地が現在位置に対して進行方向の後方側にある場合、指定経路が現在位置と整合しないと判定する(ステップS42;No)。判定部24は、指定経路が現在位置と整合すると判定した場合(ステップS42;Yes)、ステップS43において走行指令(図6の第2の走行指令)を実行すると判定する。以降の処理は、図6のステップS20へ続く。判定部24は、指定経路の復元に失敗したと判定した場合(ステップS41;No)、または指定経路が現在位置と整合しないと判定した場合(ステップS42;No)、ステップS44において、走行指令(図7の第2の走行指令)を実行しないと判定する。以降の処理は、図7のステップS31へ続く。
図8(B)は、経路復元部22が復元する指定経路を用いない判定処理の例である。ステップS51において、判定部24は、走行指令を取得する。また、ステップS52において、判定部24は、位置センサ16が検出した現在位置を取得する。ステップS53において、判定部24は、第2の走行指令に指定された開始区間(指定経路の起点)は、現在位置よりも下流であるか否かを判定する。例えば、判定部24は、開始区間が現在位置に対して走行車の進行方向の前方側(下流側)である場合、開始区間が現在位置よりも下流であると判定する(ステップS53;Yes)。判定部24は、開始区間が現在位置よりも下流であると判定した場合(ステップS53;Yes)、ステップS54において走行指令を実行すると判定する。また、判定部24は、開始区間が現在位置よりも下流でないと判定した場合(ステップS53;No)、ステップS55において走行指令を実行しないと判定する。走行車3の通信部25は、判定部24の判定結果を上位制御装置4に送信する。
図8(B)の判定処理は、例えば、図3に示した走行指令Cm1を用いる場合に、適用可能である。この判定処理を適用する場合、復元される指定経路を判定処理に用いないので、経路復元部22は、ステップS19の処理よりも前に指定経路を復元しなくてもよい。例えば、経路復元部22は、走行指令を実行すると判定された場合(ステップS54)に指定経路を復元し、走行指令を実行しないと判定された場合(ステップS55)に指定経路を復元しなくてもよい。
なお、本発明の技術範囲は、上述の実施形態などで説明した態様に限定されるものではない。上述の実施形態などで説明した要件の1つ以上は、省略されることがある。また、上述の実施形態などで説明した要件は、適宜組み合わせることができる。また、法令で許容される限りにおいて、上述の実施形態などで引用した全ての文献の開示を援用して本文の記載の一部とする。