(57)【特許請求の範囲】
【請求項１】
停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を、前記ノードの配列に関する情報に基づいて制御する運行管理制御装置において、
前記ノードの配置に関する情報と、おのおのに無人車が停止すると互いに干渉する程度に近接して配置された複数のノードに関する情報とを有するノード情報に基づいて前記走行路に対応し、無人車の走行をシミュレートする走行図を作成する走行図作成手段と、
前記走行図のデータを記憶する記憶手段と、
各無人車が同一接続路を互いに逆方向走行することがなく、かつ前記ノード情報を満足させる各無人車の走行経路を探索する探索手段と、
前記探索手段によって探索された各無人車の走行経路と、前記記憶手段に記憶される前記走行図とに基づいて、各無人車の時間的な移動をシミュレーションし、いずれかの無人車の進行不能を検出した場合に、ノード通過順序変更、迂回経路探索、待避経路探索のいずれかの方法で前記無人車の進行不能を解除する制御手段と
を具備し、
前記走行図作成手段が各ノードにおける無人車の停止の有無の状態、また各ノード間における無人車の出発及び到着の状態、さらに各ノード間の走行路における走行の状態を示す情報を含む走行図を生成することを特徴とする運行管理制御装置。
【請求項２】
停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を前記ノードの配列に関する情報に基づいて制御する運行管理制御方法において、
前記ノードの配置に関する情報と、おのおのに無人車が停止すると互いに干渉する程度に近接して配置された複数のノードに関する情報とを有するノード情報からなる走行図を生成し、該走行図を記憶手段に記憶させる第１のステップと、
各無人車が同一接続路を互いに逆方向走行することがなく、前記ノード情報を満足させる各無人車の走行経路を探索する第２ステップと、
前記第２ステップによって得られた走行経路に基づいて各無人車の時間的な移動を調べ、いずれかの無人車の進行不能が検出された場合には既に走行を終了している無人車の経路に退避経路を追加する第３ステップと、
前記第３ステップにおいて進行不能が解消できない場合に無人車の走行順序を変更する第４ステップと、
前記第４ステップにおいて進行不能が解消できない場合に無人車の経路に迂回経路を追加する第５ステップと、
前記第５ステップにおいて進行不能が解消できない場合に無人車の経路に待避経路を追加する第６ステップと
を有し、
前記第１のステップにおける走行図が各ノードにおける無人車の停止の有無の状態、また各ノード間における無人車の出発及び到着の状態、さらに各ノード間の走行路における走行の状態を示す情報を含むことを特徴とする運行管理制御方法。
【請求項３】
停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を、前記ノードの配列に関する情報に基づいて制御する運行管理制御装置において、
前記ノードの配置に関する情報と、前記無人車の占有する領域の大きさのデータとを有するノード情報に基づいて前記走行路に対応し、無人車の走行をシミュレートする走行図を作成する走行図作成手段と、
前記走行図のデータを記憶する記憶手段と、
各無人車が同一接続路を互いに逆方向走行することがなく、かつ前記ノード情報を満足させる各無人車の走行経路を探索する探索手段と、
前記探索手段によって探索された各無人車の走行経路と、前記記憶手段に記憶される前記走行図とに基づいて、各無人車の時間的な移動をシミュレーションし、いずれかの無人車の進行不能を検出した場合に、ノード通過順序変更、迂回経路探索、待避経路探索のいずれかの方法で前記無人車の進行不能を解除する制御手段と、
を具備し、
前記走行図作成手段が各ノードにおける無人車の停止の有無の状態、また各ノード間における無人車の出発及び到着の状態、さらに各ノード間の走行路における走行の状態を示す情報を含む走行図を生成することを特徴とする運行管理制御装置。
【請求項４】
停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を前記ノードの配列に関する情報に基づいて制御する運行管理制御方法において、
前記ノードの配置に関する情報と、前記無人車の占有する領域の大きさのデータとを有するノード情報からなる走行図を生成し、該走行図を記憶手段に記憶させる第１のステップと、
各無人車が同一接続路を互いに逆方向走行することがなく、前記ノード情報を満足させる各無人車の走行経路を探索する第２ステップと、
前記第２ステップによって得られた走行経路に基づいて各無人車の時間的な移動を調べ、いずれかの無人車の進行不能が検出された場合には既に走行を終了している無人車の経路に退避経路を追加する第３ステップと、
前記第３ステップにおいて進行不能が解消できない場合に無人車の走行順序を変更する第４ステップと、
前記第４ステップにおいて進行不能が解消できない場合に無人車の経路に迂回経路を追加する第５ステップと、
前記第５ステップにおいて進行不能が解消できない場合に無人車の経路に待避経路を追加する第６ステップと、
を有し、
前記走行図作成手段が各ノードにおける無人車の停止の有無の状態、また各ノード間における無人車の出発及び到着の状態、さらに各ノード間の走行路における走行の状態を示す情報を含むことを特徴とする運行管理制御方法。
【請求項５】
所定の時刻における前記複数の無人車の確定走行経路および与えられた作業内容を記憶する計画指示記憶手段と、
前記各無人車の状態を監視する第１の処理と、与えられた作業を完了した無人車が発生する度に、前記計画指示記憶手段に新たな作業を設定し、前記第１の手段および前記第２の手段を起動して走行経路を探索させる第２の処理と、該探索の結果に基づいて前記各無人車に動作指示を与える第３の処理を並列かつ周期的に行うことで、前記複数の無人車の運行を制御する運行制御手段と
を具備してなることを特徴とする請求項１または請求項３に記載の運行管理制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工場等の無人搬送システムにおいて、無人搬送車の運行を管理し、搬送経路の決定等を行う運行管理制御装置および運行管理制御方法に関する。
【０００２】
【従来の技術】
工場などで必要な機材等を工作機械まで搬送する自動搬送システムでは、搬送量の増大に伴い複数台の無人車を効率的に運行させる必要が生じている。ところで、狭隘な走行路に複数の無人車を投入すると、無人車同士がお互いの運行を妨げあい、効率低下の原因となる。そこで、無人車お互いの運行を妨げない運行管理システムと運行方法とについては、運行管理制御装置（特願平６−２４１６８５）で述べられている。図５６は、このシステム構成図である。
この図５６は従来例による運行管理制御装置５０２の構成を示すブロック図である。この図において、５０３は運行制御データメモリであり、各無人車の移動経路、後述するノード予約シーケンスなどを記憶する。
【０００３】
５０４は搬送指示テーブルメモリであり、搬送物の位置や搬送先などを記憶する。５０５は、無人車データメモリであり、各無人車の現在位置、移動方向などの状態を記憶する。５０６は、走行路データメモリであり、走行路上の各ノードの座標と、その接続関係および移動の効率を示すコストとを記憶する。また、５０７は無人車の最適な走行経路および動作順序を決定する計画部である。この計画部５０７はＣＰＵ等により構成され、機能的には動作計画部５０８、経路計画部５０９、および経路探索部５１０に分けることができる。
【０００４】
まず、経路探索部５１０は、経路計画部５０９から供給される経路探索指示に従って、各無人車の出発ノードおよび目標ノードを結ぶ経路を全て求める。次に、走行路データメモリ５０６に記憶されたコストから、各経路のコストをそれぞれ積算し、そのコストが最小となる経路を最適経路に選択する。ただし、経路探索指示に後述する方向付けの方向情報が含まれる場合には、方向付けされたアークを逆方向に走行する経路は選択されない。同様に、経路探索指示に後述する通行禁止の方向情報が含まれる場合には、通行禁止のアークを通る経路は選択されない。
以上の方法で求めた経路およびそのコストは経路計画部５０９へ出力される。ただし、ここで作成された経路は、他の無人車の走行経路は考慮されていず、走行路の競合がない場合にのみ最適な経路となる。
【０００５】
また、無人車同士で走行路の競合が生じている場合でも、動作計画部５０８は、経路計画部５０９から供給される基本経路に基づいて各無人車の移動を時間的に調べ、各無人車の目的地への移動順序を調整したり、必要に応じて経路を変更、追加するなどして、競合している無人車を含んだ全無人車の運行の目的地までの移動や移載などの動作を計画する。また、その計画はペトリネットを用いたシミュレーションにより行われる。
【０００６】
以上説明したように、上述した運行管理装置および運行管理制御方法によれば、無人車同士の競合を考慮して、全ての無人車の走行経路および走行順序を走行前に得ることができる。
【０００７】
【発明が解決しようとする課題】
しかし、図５７に示すように無人車は、走行路上において、物理的にＬ１×Ｌ２の空間を占有しており、また、無人車の移動の際の位置制御においては、制御余裕度α１および移動余裕度α２を考慮する必要がある。
【０００８】
そして、装置の近接配置などによって、目的地（搬送する荷物の届け先）であるノード位置が接近している場合、図５８に示すように、隣り合う２つのノード、たとえばノード２とノード３とにおのおの無人車が入ると、それぞれの無人車が占有する空間が重複する、すなわち、衝突する問題が生じる（これを以下、干渉関係と呼ぶ）。
【０００９】
これは、特願平６−２４１６８５の走行路においては、ノード２とノード３とが十分離れていたため、たとえば、２号車がノード３に停止しているとき、１号車がノード１から２へ向かって移動を開始することは、上述された発火可能条件を満たすために可能であった。
【００１０】
しかし、図５８のように干渉関係が存在する走行路上に複数の無人車を投入する場合は、衝突する可能性のある隣り合うノードも考慮したペトリネットを構成して、無人車の制御を行わないと、無人車同士が衝突する場合が発生する。
【００１１】
この発明は、このような背景の下になされたもので、走行路の競合および隣接したノードを考慮し、複数の無人車が効率よくおのおのの目的のノードまで移動を行うことができる運行管理制御装置および運行管理制御方法を提供することを目的としている。
【００１２】
【課題を解決するための手段】
請求項１記載の発明は、停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を、前記ノードの配列に関する情報に基づいて制御する運行管理制御装置において、前記ノードの配置に関する情報と、おのおのに無人車が停止すると互いに干渉する程度に近接して配置された複数のノードに関する情報とを有するノード情報に基づいて前記走行路に対応し、無人車の走行をシミュレートする走行図を作成する走行図作成手段と、前記走行図のデータを記憶する記憶手段と、各無人車が同一接続路を互いに逆方向走行することがなく、かつ前記ノード情報を満足させる各無人車の走行経路を探索する探索手段と、前記探索手段によって探索された各無人車の走行経路と、前記記憶手段に記憶される前記走行図とに基づいて、各無人車の時間的な移動をシミュレーションし、いずれかの無人車の進行不能を検出した場合に、ノード通過順序変更、迂回経路探索、待避経路探索のいずれかの方法で前記無人車の進行不能を解除する制御手段とを具備し、前記走行図作成手段が各ノードにおける無人車の停止の有無の状態、また各ノード間における無人車の出発及び到着の状態、さらに各ノード間の走行路における走行の状態を示す情報を含む走行図を生成することを特徴とする。
【００１３】
請求項２記載の発明は、停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を前記ノードの配列に関する情報に基づいて制御する運行管理制御方法において、前記ノードの配置に関する情報と、おのおのに無人車が停止すると互いに干渉する程度に近接して配置された複数のノードに関する情報とを有するノード情報からなる走行図を生成し、該走行図を記憶手段に記憶させる第１のステップと、各無人車が同一接続路を互いに逆方向走行することがなく、前記ノード情報を満足させる各無人車の走行経路を探索する第２ステップと、前記第２ステップによって得られた走行経路に基づいて各無人車の時間的な移動を調べ、いずれかの無人車の進行不能が検出された場合には既に走行を終了している無人車の経路に退避経路を追加する第３ステップと、前記第３ステップにおいて進行不能が解消できない場合に無人車の走行順序を変更する第４ステップと、前記第４ステップにおいて進行不能が解消できない場合に無人車の経路に迂回経路を追加する第５ステップと、前記第５ステップにおいて進行不能が解消できない場合に無人車の経路に待避経路を追加する第６ステップとを有し、前記第１のステップにおける走行図が各ノードにおける無人車の停止の有無の状態、また各ノード間における無人車の出発及び到着の状態、さらに各ノード間の走行路における走行の状態を示す情報を含むことを特徴とする。
【００１４】
請求項３記載の発明は、停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を、前記ノードの配列に関する情報に基づいて制御する運行管理制御装置において、前記ノードの配置に関する情報と、前記無人車の占有する領域の大きさのデータとを有するノード情報に基づいて前記走行路に対応し、無人車の走行をシミュレートする走行図を作成する走行図作成手段と、前記走行図のデータを記憶する記憶手段と、各無人車が同一接続路を互いに逆方向走行することがなく、かつ前記ノード情報を満足させる各無人車の走行経路を探索する探索手段と、前記探索手段によって探索された各無人車の走行経路と、前記記憶手段に記憶される前記走行図とに基づいて、各無人車の時間的な移動をシミュレーションし、いずれかの無人車の進行不能を検出した場合に、ノード通過順序変更、迂回経路探索、待避経路探索のいずれかの方法で前記無人車の進行不能を解除する制御手段とを具備し、前記走行図作成手段が各ノードにおける無人車の停止の有無の状態、また各ノード間における無人車の出発及び到着の状態、さらに各ノード間の走行路における走行の状態を示す情報を含む走行図を生成することを特徴とする。
【００１５】
請求項４記載の発明は、停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を前記ノードの配列に関する情報に基づいて制御する運行管理制御方法において、前記ノードの配置に関する情報と、前記無人車の占有する領域の大きさのデータとを有するノード情報からなる走行図を生成し、該走行図を記憶手段に記憶させる第１のステップと、各無人車が同一接続路を互いに逆方向走行することがなく、前記ノード情報を満足させる各無人車の走行経路を探索する第２ステップと、前記第２ステップによって得られた走行経路に基づいて各無人車の時間的な移動を調べ、いずれかの無人車の進行不能が検出された場合には既に走行を終了している無人車の経路に退避経路を追加する第３ステップと、前記第３ステップにおいて進行不能が解消できない場合に無人車の走行順序を変更する第４ステップと、前記第４ステップにおいて進行不能が解消できない場合に無人車の経路に迂回経路を追加する第５ステップと、前記第５ステップにおいて進行不能が解消できない場合に無人車の経路に待避経路を追加する第６ステップとを有し、前記走行図作成手段が各ノードにおける無人車の停止の有無の状態、また各ノード間における無人車の出発及び到着の状態、さらに各ノード間の走行路における走行の状態を示す情報を含むことを特徴とする。
【００１６】
請求項５記載の発明は、請求項１または請求項３に記載の運行管理制御装置において、所定の時刻における前記複数の無人車の確定走行経路および与えられた作業内容を記憶する計画指示記憶手段と、前記各無人車の状態を監視する第１の処理と、与えられた作業を完了した無人車が発生する度に、前記計画指示記憶手段に新たな作業を設定し、前記第１の手段および前記第２の手段を起動して走行経路を探索させる第２の処理と、該探索の結果に基づいて前記各無人車に動作指示を与える第３の処理を並列かつ周期的に行うことで、前記複数の無人車の運行を制御する運行制御手段とを具備してなることを特徴とする。
【００１７】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について説明する。図１は本発明の一実施形態による運行管理制御装置１０２の構成を示すブロック図である。この図において、１０３は運行制御データメモリであり、各無人車の移動経路、後述するノード予約シーケンスなどを記憶する。１０４は搬送指示テーブルメモリであり、搬送物の位置や搬送先などを記憶する。１０５は、無人車データメモリであり、各無人車の現在位置、移動方向などの状態を記憶する。１０６は、走行路データメモリであり、走行路上の各ノードの座標と、その接続関係およびコストなどを記憶する（図１１）。
【００１８】
１０７はペトリネットデータメモリであり、ペトリネットモデルのデータが記憶されている。また、１０８は無人車の最適な走行経路および動作順序を決定する計画部である。この計画部１０８はＣＰＵ等により構成され、機能的にはペトリネット作成部１０９、動作計画部１１０、経路計画部１１１、および経路探索部１１２に分けることができる。
ペトリネット作成部１０９、動作計画部１１０、経路計画部１１１および経路探索部１１２については以下で詳述する。
【００１９】
まず、ペトリネット作成部１０９は、走行データメモリ１０６に記憶されているデータをもとに、図２のフローチャートに従って、その走行路データに対応するペトリネットモデルを作成する。図５８に示す干渉関係のある走行路を示す図を例として、フローチャートの説明を行う。ステップＳＡ１において、図５８に示す走行路のノードが、ペトリネット作成部１０９により、ペトリネットにモデル化される。ここで、移動目的地であるノード１〜ノード８までの各ノードは、それぞれ図４に示すペトリネットのノードプレースｎ1〜ノードプレースｎ8とモデル化される。
【００２０】
次に、ステップＳＡ２において、無人車がノードプレースｎ1〜ノードプレースｎ8の間で移動していることを示す移動プレースが、動作計画部３０３により作成される。図５８に示す走行路のノード１〜ノード８に対応して、ペトリネットモデルとして図５に示すように隣接するノードプレースｎi（自然数、１≦ｉ≦８）とノードプレースｎj（自然数、１≦ｊ≦８、ｉ≠ｊ）の間に移動プレースｍi-jおよび移動プレースｍj-iが作成される。ここで、添字の「ｉ−ｊ」は、無人車がノードｉからノードｊへ向かって進むことを意味している。
【００２１】
次に、ステップＳＡ３において、移動を開始する事象として出発トランジションが、動作計画部３０３により作成される。すなわち、ノードプレースｎiを入力プレースとし、移動プレースｍi-jを出力プレースとして図６に示す棒で表されている出発トランジションＤi-jが、ノードプレースｎiと移動プレースｍi-jとの間に作成される。
【００２２】
出発トランジションＤi-jは、図３におけるノードｉからノードｊへ無人車＃ｋが移動を開始するという事象を表している。そして、出発プレースであるノードプレースｎiから出発トランジションＤi-jへ矢印で示されている入力アークが付加される。また、同様に出発トランジションＤi-jから出力プレースである移動プレースｍi-jへ矢印で示される出力アークが付加される。
【００２３】
ここで、出発トランジションＤi-jは、移動区間のあるノードプレースｎiとノードプレースｎjとの間には全て作成される。たとえば、図３におけるノード３からノード７へ無人車＃２が移動を開始する状態は、ペトリネットモデルにおいては、図６に示すノードプレースｎ3と移動プレースｍ3-7との間にある出発トランジションＤ3-7で表される。
【００２４】
次に、ステップＳＡ４において、移動を終了する事象、つまり目的地へ到着した事象として到着トランジションが、ペトリネット作成部１０９により作成される。すなわち、移動プレースｍi-jを入力プレースとし、ノードプレースｎjを出力プレースとして図６に示す棒で表されている到着トランジションＡi-jが、移動プレースｍi-jとノードプレースｎjとの間に作成される。
【００２５】
到着トランジションＡi-jは、図５８におけるノードｉからノードｊへ、移動している無人車＃ｐが、ノードｊに到着したという事象を表している。そして、出発プレースである移動プレースから到着トランジションＡi-jへ、矢印で示されている入力アークが付加される。また、同様に到着トランジションＡi-jから出力プレースである移動プレースｍi-jへ、矢印で示される出力アークが付加される。
【００２６】
ここで、到着トランジションＡi-jは、移動区間のあるノードプレースｎiとノードプレースｎjとの間には全て作成される。たとえば、図３におけるノード２からノード１へ移動している無人車＃ｐが、ノードプレースｎ1へ到着した状態は、ペトリネットモデルにおいては、図６に示す移動プレースｍ3-7とノードプレースｎ1との間にある到着トランジションＡ3-7で表される。
【００２７】
次に、ステップＳＡ５において、そこにトークンが置かれているとき全ての無人車が、ノードプレースｎiを占有していない状態を示す図７に示す予約プレースｒiが、ペトリネット作成部１０９により作成される。そして、図６の示すペトリネットのデータのなかから全ての出発トランジションＤj-iが検索され、ｒiからＤi-jへ出力アークが付加される。
【００２８】
また、図６の示すペトリネットのデータのなかから全ての到着トランジションＡj-iが検索され、到着トランジションＡi-jから予約プレースｒiへ入力アークが付加される。予約プレースｒiにトークンが置かれた場合、ノードプレースｒiは、全ての無人車に占有されていないことを表している。
【００２９】
次に、ステップＳＡ６において、干渉アークの作成がペトリネット作成部１０９により行われる。ここで言う干渉は、互いに異なる無人車＃ｐおよび無人車＃ｑ（自然数、ｐ≠ｑ）が走行中に衝突する競合関係にある場合と、無人車＃ｐおよび無人車＃ｑが占有する隣接したノードの間隔が、衝突する距離である場合と、を示している。
【００３０】
複数の無人車が同一走行路を走行し、衝突の危険がある場合の干渉を移動干渉とする。また、隣接したノードにおのおの無人車が位置したとき、図５８に示す衝突の危険性がある場合の干渉をノード干渉とする。そして、この干渉関係のある走行路では、各ノードの干渉関係の有無を判別する処理を行う。この処理を図７に示すペトリネット図とともに説明する。
【００３１】
（１）干渉関係が移動干渉の場合
図５８に示すノードｉからノードｊへ移動中の無人車＃ｐが、ノードｓ（自然数、１≦ｓ≦８、ｓ≠ｉ、ｓ≠ｊ）に位置する無人車＃ｑに衝突する危険性があるとき、ノードｓはノードｉからノードｊへ移動干渉ノードとする。この移動干渉による図８に示すアークは、ペトリネット作成部により作成される。
【００３２】
まず、出発トランジションＤi-j（ｉ≠ｓ）を全て検索し、予約プレースｒsから出発トランジションＤi-jへアークが付加される。そして、到着トランジションＡi-j（ｉ≠ｓ）を全て検索し、到着トランジションＡi-jから予約プレースｒsへアークが付加される。
【００３３】
（２）干渉関係がノード干渉の場合
図５８に示すノードｉに無人車＃ｐが位置し、同時にノードｊに無人車＃ｑが位置した場合、無人車＃ｐと無人車＃ｑとが衝突する危険があるとき、ノードｉは、ノードｊとノード干渉にあるとする。
【００３４】
まず、到着トランジションＡk-jを全て検索し、予約プレースｒiから到着トランジションＡk-j（ｋ≠ｉ）へアークが付加される。そして、予約プレースｒiから出発トランジションＤi-kへアークが付加される。
【００３５】
たとえば、図５８に示すノード２が、ノード４からノード３への移動における移動干渉ノードとすれば、予約プレースｒ2から出発トランジションＤ4-3へと、到着トランジションＡ4-3から予約プレースｒ2へとに図８に示すアークが付加される。同様に、図５８に示すノード２が、ノード３からノード４への移動における移動干渉ノードとすれば、予約プレースｒ2から出発トランジションＤ3-4へと、到着トランジションＡ3-4から予約プレースｒ2へとに図８に示すアークが付加される。
【００３６】
また、図５８示すノード２が、ノード３とノード干渉にある場合、予約プレースｒ2から到着トランジションＡ4-3および到着トランジションＡ2-3へと、出発トランジションＤ3-4および出発トランジションＤ3-2から予約プレースｒ2へとに図８に示すアークが付加される。なお、図８では、アークの煩雑を避けるためにｒ2から到着トランジションＡ7-3へと、出発トランジションＤ3-7から予約プレースｒ2へとのアークは、省略されている。
【００３７】
次に、ステップＳＡ７において、自己ループの解除がペトリネット作成部１０９により削除される。あるプレースからあるトランジションへのアークがあり、かつそのトランジションからそのプレースへのアークがある場合、その２本のアークはループを形成する。これを自己ループと呼ぶ。このような自己ループは、ペトリネット上において意味を持たないものであり、削除されるほうが望ましい。
【００３８】
そして、この自己ループの削除により、ペトリネットモデルは簡素化され、また、このペトリネットモデルを用いた搬送処理は高速化される。図８のペトリネットモデルの自己ループを削除した結果は、図９に示されており、図９のペトリネットモデルは、図８のペトリネットモデルと比較して簡素化されている。図７に示すペトリネットモデルに対して、干渉アークの付加、および干渉アークの付加において形成された自己ループの削除を行った最終的なペトリネットモデルは、図１０に示す図５８に対応した走行路のペトリネットモデルとなる。
【００３９】
次に、経路探索部１１２は、経路計画部１１１から供給される経路探索指示に従って、各無人車の出発ノードおよび目標ノードを結ぶ経路を全て求める。次に、走行路データメモリ１０６に記憶されたコスト（図１１）から、各経路のコストをそれぞれ積算し、そのコストが最小となる経路を最適経路に選択する。ただし、経路探索指示に後述する方向付けの方向情報が含まれる場合には、方向付けされたアークを逆方向に走行する経路は選択されない。
【００４０】
同様に、経路探索指示に後述する通行禁止の方向情報が含まれる場合には、通行禁止のアークを通る経路は選択されない。
以上の方法で求めた経路およびそのコストは経路計画部１１１へ出力される。ただし、ここで作成された経路は、他の無人車の走行経路は考慮されていず、走行路の競合がない場合にのみ最適な経路となる。
【００４１】
次に、経路計画部１１１は、木の探索手法を用いて逆走行区間のない走行経路を求め、その結果を動作計画部１１０へ出力する。
ここでいう「木」は、図１２に示すような下方にかけて分岐を行う構成をとる。ここで、Ｎ１、Ｎ２、・・・は分岐条件が入った分岐点であり、このうち分岐点Ｎ１は分岐を開始するルート分岐点である。
【００４２】
また、例えば、分岐点Ｎ２を現在の分岐点とすると、分岐点Ｎ１は分岐点Ｎ２の親分岐点となり、分岐点Ｎ３およびＮ４は分岐点Ｎ２の子分岐点となる。探索は、基本的に上位の分岐点から下位の分岐点にかけて行われるが、探索不能の場合には、一旦親分岐点に戻り（以降、バックトラックと呼ぶ）、他の分岐点へ分岐する。
【００４３】
図１４は経路計画部１１１の行う経路計画処理を示すフローチャートであり、この図をもとに以下で説明を行う。
処理が開始されると（ステップＳＰ１）、ステップＳＰ２において、経路探索部１１２へ探索指示を出し、各無人車の走行経路を求める。ここで、探索指示をうけた経路探索部１１２は、上述した方法により経路を探索し、その結果である初期経路を経路計画部１１１へ出力する。なお、この探索指示には、搬送指示テーブルメモリ１０４に記憶されたデータにより決まる無人車の目標ノードが含まれる。
【００４４】
ステップＳＰ３では、木のルート分岐点を空にする。
ステップＳＰ４では、経路探索部１１２から供給される各無人車の走行経路に基づいて、任意の二つの無人車が互いに逆方向に移動を行う区間（逆方向区間）を求め、これを無人車の全ての組み合わせについて行う。
ステップＳＰ５では、ステップＳＰ４の結果において、逆方向区間が無ければ処理を終了し（ステップＳＰ１７）、逆方向区間がある場合には次のステップＳＰ６へ進む。また、逆方向区間が無い場合は、そのときの走行経路が最終的な走行経路となる。
【００４５】
ステップＳＰ６では、各無人車の経路の逆方向区間のコストを積算する。ここで、逆方向区間のコストは走行路データメモリ１０６から読み出される。また、ある逆方向区間で他の複数の無人車の経路と逆向きの競合を起こしている場合には、その競合の回数分コストを積算する。ただし、走行路上の隣り合う２点間を結ぶ経路がそれ以外に存在しない場合には、その区間は逆方向区間に含めない。
【００４６】
ステップＳＰ７では、各無人車に付けられた符号を、逆走行区間のコストの大きい順に並べた競合無人車集合を作成する。
【００４７】
ステップＳＰ８では、この競合無人車集合を持った分岐点を親分岐点の下に加える。ただし、このステップＳＰ８が始めて処理される場合は、ルート分岐点に上記競合無人車集合を設定する。
【００４８】
ステップＳＰ９では、競合無人車集合から着目無人車を決定する。この着目無人車は、コストの大きい順に並んだ競合無人車集合の最初の無人車から順次選択されていく。また、次の無人車が無い場合には、着目無人車なしとする。
【００４９】
ステップＳＰ１０では、前ステップＳＰ９の処理において着目無人車が無かった場合には次のステップＳＰ１１へ進み、着目無人車がある場合にはステップＳＰ１３へ分岐する。
【００５０】
ステップＳＰ１１では、現在の分岐点がルート分岐点前であるかどうかを調べ、ルート分岐点でない場合には次のステップＳＰ１２へ進み、ルート分岐点の場合、つまりルート分岐点の競合無人車集合の全てにおいて経路整理が失敗した場合、経路整理失敗で全処理を終了する（ステップＳＰ１７）。
【００５１】
ステップＳＰ１２では、現在の分岐点の処理を親分岐点へ移す（バックトラック）と共に、ステップＳＰ９の処理へ戻る。また、現在の分岐点へ分岐するときに行った方向付けはこの時に解除する。
【００５２】
ステップＳＰ１３では、走行路のうち、着目無人車の経路の逆方向区間を同無人車の移動方向の逆方向に方向付けし（一方通行とする）、方向情報に加える。
【００５３】
ステップＳＰ１４では、経路探索部１１２へ探索指示を出し、この方向付けされた走行路において全ての無人車の経路を求め直す。
【００５４】
ステップＳＰ１５では、前ステップＳＰ１４の経路探索において求められない経路が存在するかどうかを調べ、存在する場合には次のステップＳＰ１６へ進み、存在しない場合にはステップＳＰ４へ戻る。
【００５５】
ステップＳＰ１６では、ステップＳＰ１３で行われた走行路の方向付けを解除した後、ステップＳＰ９へ戻る。
以上説明した処理によって、コストが小さく逆走行区間が無い複数の無人車の経路（以降、基本経路）が得られる。
【００５６】
次に、動作計画部１１０は、経路計画部１１１から供給される基本経路に基づいて各無人車の移動を時間的に調べ、移動順序を調整したり、必要に応じて経路を変更、追加するなどして、全無人車の目標ノードまでの移動動作を計画する。また、その計画はペトリネットを用いたシミュレーションにより行われる。動作計画部１１０の行う動作計画処理を説明する前に、ペトリネットおよび動作計画に含まれる各種処理の説明を具体例を挙げて行う。
【００５７】
（１）ペトリネットモデル
まず、ペトリネットモデルにおいて、図１３（ａ）は、ペトリネットの説明に用いる運行図であり、この図において走行路１１５のノード２上に無人車＃１、ノード６上に無人車＃２がそれぞれ待機している。また、図１３（ｂ）は、無人車＃１、＃２のそれぞれの出発ノード、目標ノード、および目標ノードまでの経路を示した図であり、［］内はノード間の移動時間（秒）を示す。すなわち、無人車＃１はノード２からノード３、４の順で移動を行い
、それぞれの移動時間はノード２からノード３までが１秒、ノード３、４間が３秒である。また、無人車＃２についても同様である。
【００５８】
図１５は、図１３（ａ）に示す運行図をペトリネットでモデル化した図である。図１０に示すペトリネットモデルへ無人車の各ノードにおける占有状況を付加したものである。この図において、ｎ1、ｎ2、・・・、ｎ8 はそれぞれノードプレースであり、走行路１１５の各ノード１ないしノード８に対応し、各ノードの占有状態を示す。
【００５９】
また、これらのノードプレースｎ1ないしｎ8には、対応するノードに無人車がいる場合には、丸印内に黒トークン（黒丸）が置かれている。また、ノードが予約されている場合には、白トークン（白丸）が置かれる。初期状態では、無人車＃１はノード２に、無人車＃２はノード６にいるので、プレースｎ2、ｎ6に各々黒トークンが置かれる。
【００６０】
また、Ｄ1-2、Ｄ2-3、・・・は出発トランジションであり、Ａ1-2、Ａ2-3、・・・は到着トランジションであり、おのおの無人車の移動の状態を示す。また、出発トランジションＤ1-2、Ｄ2-3、・・・と到着トランジションＡ1-2、Ａ2-3、・・・とには、それに入る入力アークと、それから出る出力アークが一本ずつ付いており、これらのアークにより隣接するノードプレースと移動プレースとが結ばれる。
【００６１】
例えば、無人車＃１がノード５からノード６に移動する場合、入力ノードプレースｎ5と移動プレースｍ5-6との間には、出発トランジションＤ5-6があり、移動プレースｍ5-6と出力ノードプレースｎ6との間には、到着トランジションＡ5-6がある。また、逆に、無人車＃１がノード６からノード５へ移動する場合、入力ノードプレースｎ6と移動プレースｍ6-5との間には、出発トランジションＤ6-5があり、移動プレースｍ6-5と入力ノードプレースｎ5との間には、到着トランジションＡ6-5がある。
【００６２】
また、無人車＃１がノード５からノード６へ移動する場合には、移動を開始する時点で出発トランジションＤ5-6を発火させ、入力ノードプレースｎ5から黒トークンが取り除かれ、移動プレースｍ5-6に黒トークンが置かれる。そして、出力ノードプレースｎ6へ無人車＃１が到着する時点では、到着トランジションＡ5-6が発火させられる。ここで、出発トランジションおよび発火トランジションなどのトランジションの発火は、一瞬であり、時間の概念は、各プレースに置かれている。
【００６３】
また、これから移動を行う経路上のトランジションをその発火順に並べたものを発火予定トランジション系列といい、図１３（ｂ）の基本経路の場合、無人車＃１および＃２の発火予定トランジション系列は以下のようになる。
発火予定トランジション系列（無人車＃１）＝｛Ｄ2-3、Ａ2-3、Ｄ3-4、Ａ3-4｝
発火予定トランジション系列（無人車＃２）＝｛Ｄ6-7、Ａ6-7、Ｄ7-3、Ａ7-3、Ｄ3-4、Ａ3-4｝
【００６４】
（２）シミュレーション
無人車＃１および無人車＃２の発火トランジション系列の先頭の出発トランジションＤ2-3と出発トランジションＤ6-7とは、発火可能であるならば発火させる。各トランジションの発火可能条件は、以下の通りである。
【００６５】
▲１▼  発火可能条件
出発トランジションＤs-tは、全ての入力側プレースにトークンがあり、全ての出力側プレース にトークンが無く、なおかつこれに先立って先行トランジション（後述）が全て発火しているとき、発火可能とされる。
【００６６】
到着トランジションＡs-tは、全ての入力側プレースにトークンがあり、全ての出力側プレースにトークンがなく、かつ入力側の移動プレースのトークンが活性のときに、発火可能な状態される。
【００６７】
▲２▼  発火処理
出発トランジションＤs-tが発火すると全ての入力側プレースのトークンが取り除かれ、全ての出力側プレースにトークンが置かれる。ただし、出力側の移動プレースのトークンは、不活性とされる。
到着トランジションＡs-tが活性化されると、全ての入力側プレースのトークンが取り除かれ、全ての出力側プレースにトークンが置かれる。
【００６８】
▲３▼  移動プレースのトークンの活性化
移動プレースにトークンが置かれた時点から、その移動プレースにおのおの指定された移動時間の経過後にトークンは活性化される。
【００６９】
たとえば、図１３（ｂ）に示すノード２からノード３への無人車＃１の移動時間は１秒であるので、移動プレースｍ2-3に置かれたトークンは、移動プレースｍ2-3に置かれてから１秒後に活性とされる。
以上の▲１▼〜▲３▼の処理を順次行うことにより、出発点から目標点までの無人車の動きがシミュレーションできる。
【００７０】
（３）ペトリネットシミュレーションの処理例
図１３（ａ）の運行図の図１３（ｂ）に示す基本経路の条件により作成された、図１５に示すペトリネットモデルに基づいて、ペトリネットシミュレーションの処理例について説明する。
▲１▼初期状態（図１５）：時刻０秒
この初期状態では、各トランジションについて、すでに発火している先行トランジションはないとする。なお、この例としたケースは簡単なモデルのため、シミュレーション過程中に先行トランジションが加わることはないので、今後この条件については言及しない。
【００７１】
まず、無人車＃１と無人車＃２との発火トランジション系列が参照され、先頭に位置する出発トランジションＤ2-3と出発トランジションＤ6-7とが発火可能かの確認が行われる。
（イ）無人車＃１に対応する出発トランジションＤ2-3の全ての入力側プレース、すなわちノードプレースｎ2に黒トークンがあり、かつ、出発トランジションＤ2-3の全ての出力側プレース、すなわち移動プレースｍ2-3にトークンが無いので、出発トランジションＤ2-3は、発火可能である。
【００７２】
そして、出発トランジションＤ2-3が発火すると、ノードプレースｎ2の黒トークンは取り除かれ、黒トークンは、移動プレースｍ2-3へ置かれる。そして、無人車＃１の発火トランジション系列からＤ2-3は、除去され、発火トランジション系列は、｛Ａ2-3、Ｄ3-4、Ａ3-4｝と変更される。
【００７３】
（ロ）同様に、無人車＃２に対応する出発トランジションＤ6-7の全ての入力側プレース、すなわちノードプレースｎ6と予約プレースｒ7とに黒トークンがあり、出発トランジションＤ6-7全ての出力側プレース、すなわち移動プレースｍ6-7にトークンが無いので、出発トランジションＤ6-7は発火可能である。
【００７４】
そして、出発トランジションＤ6-7が発火すると、ノードプレースｎ6と予約プレースｒ7との黒トークンが除去される。そして、移動プレースｍ6-7へ黒トークンが置かれる。次に、無人車＃２の発火トランジション系列から出発トランジションＤ6-7が除去され、出発トランジション系列は、｛Ａ6-7、Ｄ7-3、Ａ7-3、Ｄ3-4、Ａ3-4｝と変更される。
この結果、黒トークンは、図１６に示す配置となる。
【００７５】
▲２▼時刻１秒の時点
（イ）図１３（ｂ）の基本経路に示されている、無人車＃１のノード２からノード３への移動時間が「１秒」となっているため、移動プレースｍ2-3が活性になり、無人車＃１の次に発火すべきトランジション、すなわち発火トランジション系列の先頭にある到着トランジションＡ2-3が発火可能となる。
【００７６】
そして、到着トランジションＡ2-3が発火すると、移動プレースｍ2-3から黒トークンが除去される。そして、ノードプレースｎ3に黒トークンが置かれ、無人車＃１の発火トランジション系列から到着トランジションＡ2-3が除かれ、発火トランジション系列は、｛Ｄ3-4、Ａ3-4｝と変更される。
【００７７】
（ロ）さらに、発火トランジション系列より、次に発火すべき出発トランジションＤ3-4の発火条件が調べられる。そして、出発トランジションＤ3-4は、発火可能なので、ノードプレースｎ3と予約プレースｒ4とに位置する黒トークンが除去される。次に、移動プレースｍ3-4に黒トークンが置かれ、発火系列トランジションは｛Ａ3-4｝に変更される。
【００７８】
（ハ）一方、無人車＃２の発火トランジション系列において、次に発火すべき到着トランジションＡ6-7は、到着トランジションＡ6-7の入力側の移動プレースｍ6-7が、まだ活性となっていないため発火可能とは成らない。
以上のシミュレーション処理により、黒トークンの配置は、図１７に示すペトリネットの状態となる。
【００７９】
▲３▼時刻２秒の時点
（イ）移動トランジションｍ6-7は、黒トークンが置かれてから２秒経過したため活性となり、無人車＃２の発火トランジション系列において、次に発火すべき到着トランジションＡ6-7が発火可能となる。
【００８０】
そして、到着トランジションＡ6-7が発火した時点において、移動プレースｍ6-7からトークンが取り除かれる。同時に、ノードプレースｎ7、予約プレースｒ5、および予約プレースｒ6に黒トークンが置かれる。そして、無人車＃２の発火トランジション系列は、｛Ｄ7-3、Ａ7-3、Ｄ3-4、Ａ3-4｝に変更される。
【００８１】
（ロ）そして、無人車＃２の発火トランジション系列において、次に発火すべき出発トランジションＤ7-3の発火条件が調べられるが、出発トランジションＤ7-3の発火条件は、満たされていないので発火しない。
【００８２】
（ハ）一方、到着トランジションＡ3-4の入力側の移動プレースｍ3-4が、発火後１秒のため、無人車＃１の発火トランジション系列において、次に発火すべき到着トランジションＡ3-4は、発火可能とならない。
以上のシミュレーション処理により、黒トークンの配置は、図１８に示すペトリネットの状態となる。
【００８３】
なお、図１８は、ノード３からノード４へ移動している無人車＃１が、ノード４へ到着し、ノード３およびノード２が、無人車＃１の占有状態から解除されるまで、無人車＃２がノード７上で待機している状態を表している。
【００８４】
▲３▼時刻４秒の時点
（イ）次に、移動プレースｍ3-4は、トークンが置かれて３秒経過したため活性になり、無人車＃１の発火トランジション系列において、次に発火すべき到着トランジションＡ3-4が発火可能となる。
【００８５】
そして、到着トランジションＡ3-4が発火すると、移動プレースｍ3-4から黒トークンが取り除かれ、ノードプレースｎ4、予約プレースｒ2および予約プレースｒ3に黒トークンが置かれ、無人車＃１の発火トランジション系列は、発火が必要なトランジションがなくなり、空になる。
【００８６】
（ロ）また、予約プレースｒ2および予約プレースｒ3に、黒トークンが置かれたことにより、無人車＃２の発火トランジション系列において、次に発火すべき出発トランジションＤ7-3は、発火可能になる。
【００８７】
そして、出発トランジションＤ7-3が発火することにより、ノードプレースｎ7、予約プレースｒ2、および予約プレースｒ3にある黒トークンが取り除かれ、移動プレースｍ7-3に黒トークンが置かれる。
【００８８】
その結果、無人車＃２の発火トランジション系列は、｛Ａ7-3、Ｄ3-4、Ａ3-4｝と変更される。
以上のシミュレーション処理により、黒トークンの配置は、図１９に示すペトリネットの状態となる。
【００８９】
▲４▼時刻８秒の時点
（イ）次に、移動プレースｍ7-3が、黒トークンが配置されてから４秒経過したため、活性となり、無人車＃２の発火トランジション系列において、次に発火すべき到着トランジションＡ7-3は発火可能となる。
【００９０】
そして、到着トランジションＡ7-3が発火すると、移動プレースｍ7-3から黒トークンが取り除かれ、ノードプレースｎ3および予約プレースｒ7に黒トークンが置かれる。同時に、無人車＃２の発火トランジション系列は、｛Ｄ3-4、Ａ3-4｝に変更される。
【００９１】
（ロ）引き続き、無人車＃２の発火トランジション系列において、次に発火すべき出発トランジションＤ3-4の発火条件が調べられる。そして、ノード４が無人車＃１に占有されているため、予約プレースｒ4に黒トークンがないので、出発トランジションＤ3-4は、発火できない。
【００９２】
しかし、無人車＃１の発火トランジション系列は、無人車＃１が目標点に到達して、他に進むノードが指定されていないので、空となる。そして、無人車＃１がノード４で停止している状態において、無人車＃２は、目標点であるノード４へ到達することができない。
【００９３】
（ハ）このため、たとえば、無人車＃１が目標点ノード４において、時刻３０秒後に、作業終了等により動ける状態になった場合、無人車＃１をノード４から退避させる必要がある。そして、無人車＃１の退避経路がノード４−ノード８と求められ、無人車＃１のノード４からノード８への移動に関する発火トランジション系列は、｛Ｄ3-4、Ａ3-4｝と設定される。
【００９４】
▲５▼時刻３０秒の時点
（イ）次に、無人車＃１の発火予約トランジション系列において、次に発火すべき出発トランジションＤ4-8は、発火可能であるので発火する。そして、ノードプレースｎ4および予約プレースｒ8から、黒トークンが取り除かれ、移動プレースｍ4-8に黒トークンが置かれ、発火トランジション系列は、｛Ａ4-8｝に変更される。
【００９５】
▲６▼時刻３４秒の時点
（イ）次に、移動プレースｍ4-8は、黒トークンが置かれてから４秒経過したため活性になり、無人車＃１の発火トランジション系列において、次に発火すべき到着トランジションＡ4-8が発火可能となる。
【００９６】
そして、到着トランジションＡ4-8が発火すると、移動プレースｍ4-8に位置する黒トークンは、取り除かれる。また、同時に、ノードプレースｎ8および予約プレースｒ4に黒トークンが置かれる。その結果、無人車＃１の発火トランジション系列は空になる。ここで、無人車＃１は、ノード８へ到着し、退避が完了する。
【００９７】
（ロ）そして、予約プレースｒ4に黒トークンが置かれ、無人車＃２の発火トランジション系列において、次に発火すべき出発トランジションＤ3-4が発火される。ノードプレースｎ3および予約ｒ4から黒トークンが取り除かれ、移動プレースｍ3-4に黒トークンが置かれる。その結果、無人車＃２の発火トランジション系列は、｛Ａ3-4｝に変更される。
【００９８】
▲７▼時刻３７秒の時点
（イ）そして、移動プレースｍ3-4に黒トークンが置かれてから、３秒経過したため移動プレースｍ3-4は活性になる。そのため、無人車＃２の発火トランジション系列において、次に発火すべき到着トランジションＡ3-4は、発火可能となる。
【００９９】
そして、到着トランジションＡ3-4が発火すると、移動プレースｍ3-4から黒トークンが取り除かれる。また、同時に、ノードプレースｎ4、予約プレースｒ2および予約プレースｒ3に黒トークンが置かれる。その結果、発火トランジション系列は、発火するトランジションがなくなり、空になる。これで、無人車＃２は、目標点ノード４へ到着したことになる。
【０１００】
この最終状態でのトークン配置は、図２０（ａ）に示すペトリネットの状態となる。のようになる。
以上のシミュレーション処理により、無人車＃１および無人車＃２の最終経路と、この最終経路に対応する発火トランジション系列は、図２０（ｂ）に示す表のように決定される。
【０１０１】
（４）退避動作の計画
退避動作は、移動中のある無人車の移動先に作業を終えて待機状態にある他の無人車が存在する場合に、その待機状態の無人車を他のノードに移動（退避）させる動作である。図２１は、この退避経路を見つける退避経路探索処理のフローチャートであり、以下でこの説明を行う。
【０１０２】
退避動作が開始されると、ステップＳａ２において自分の回りのノードを調べ、退避できるノードを全て求める。ここで、退避できるノードとは以下の条件を満たすノードである。
▲１▼そのノードへの移動が禁止されていない。
▲２▼待機状態でない無人車に占有されていない。
▲３▼他の無人車が停車している隣接するノードとノード干渉しない。
【０１０３】
次に、ステップＳａ３において、退避できるノードに対し、移動時間などの基本コストを積算する。ただし、待機状態の無人車がいるノードについては、例えばコストを１００倍するなどして、なるべく選ばれないようにする。
ステップＳａ４では、ステップＳａ３の結果のうちコストの一番小さいノードを退避ノードとし、現在ノードから退避ノードまでの区間を無人車の走行経路に追加する。
【０１０４】
図２２は、以上の退避経路探索の一例を示す運行図である。この図において、無人車＃１および＃３は待機中（移動予定なし）であり、無人車＃２はノード３へ移動しようとしている。この場合、無人車＃２の邪魔となる無人車＃１が退避の対象となる。この無人車＃１の退避できるノードはノード２およびノード７であり、その両ノードへの退避経路のコストを調べる。
【０１０５】
ノード２への移動時間は１秒であるが、無人車＃３がノード２で待機中のため、基本コストはその移動時間の１００倍の１００となる。また、ノード７への移動時間は４であり、基本コストも４となる。よって、コストの小さいノード７が退避ノードに選択され、ノード３−７が無人車＃１の経路に追加される。
【０１０６】
（５）デッドロック
複数の無人車が狭い領域に密集してしまい、上述した退避動作を行っても予定していた経路で進むことができないデッドロックの状況に陥った場合には、後述する発火順序調整、迂回経路探索、待避経路探索が行われる。ここでは、デッドロックの状態を把握する方法について述べる。図２３は、このデッドロック把握処理を示すフローチャートであり、以下でこの説明を行う。
【０１０７】
まず、ステップＳｂ２において、まだ以下の処理を行っていない無人車を選びその無人車が待機中であるかを調べる。もし、待機中の無人車でない場合にはステップＳｂ３へ進み、待機中である場合にはステップＳｂ４へ分岐する。
ステップＳｂ３では、対象としている無人車の走行経路上にある最も近い無人車を邪魔な無人車とし、ステップＳｂ５へ進む。
【０１０８】
ステップＳｂ４では、対象としている無人車の周辺にいる全ての無人車を邪魔な無人車とし、次のステップＳｂ５へ進む。
ステップＳｂ５では、全ての無人車に対し以上の処理が終了したかどうかを調べ、まだ未処理の無人車がある場合には、ステップＳｂ２へ戻る。
【０１０９】
ステップＳｂ６では適当な待機中でない無人車を選び、その無人車が邪魔としている無人車、その邪魔とされている無人車が邪魔としている無人車、・・・というふうに辿っていき、その中から２台以上のループを見つける。そして、これを全ての組み合わせについて行う。
ステップＳｂ７では、得られたループのうち最も多くの無人車を含むループを競合ループに選択する。
【０１１０】
ステップＳｂ８では、ステップＳｂ７の処理で競合ループが得られないときは、デッドロック把握失敗で本処理を終了する（ステップＳｂ１０）。
ステップＳｂ９では、競合ループの各無人車について、その無人車が動ける隣接ノードすなわち他の無人車がいないノードを求め、本処理を終了する（ステップＳｂ１０）。
【０１１１】
図２４は走行路１０１におけるデッドロックの一例を示した図であり、同図（ａ）はその初期状態の運行図、（ｂ）はデッドロック状態の運行図を示している。また、この図において、待機中でない無人車はあみかけで示し、待機中の無人車は白ぬきで示す。ここで、無人車＃１ないし＃６の移動経路は次の通りである。
無人車＃１：６→５→４
無人車＃２：５→４
無人車＃３：１７→１８→４
無人車＃４：２→３→１６
無人車＃５：１６→１７
無人車＃６：１５→１６→１７
【０１１２】
上記の経路に従って、無人車＃１ないし＃６が図２４（ａ）の初期経路から１区間だけ移動すると、図２４（ｂ）に示すようなデッドロックの状態となる。ここで、無人車＃２および＃５は待機状態であるが、前述した退避経路は見つからない。そこで、無人車＃１ないし＃６のそれぞれが邪魔な無人車を調べ、図２４（ｃ）に示すような結果を得る。
【０１１３】
この図２４（ｃ）において、例えば無人車＃１の邪魔となるのは無人車＃２であり、デッドロック時に無人車＃１の移動可能な空きノードはノード６である。この結果を基に邪魔な無人車あるいは邪魔となる無人車のループを探すと、
ループ１：無人車＃１(5)−＃２(4)
ループ２：無人車＃３(18)−＃２(4)
ループ３：無人車＃６(16)−＃５(17)
ループ４：無人車＃３(18)−＃２(4)−＃４(3)−＃６(16)−＃５(17)−＃３
の４つのループが得られる。そして、このうちの最も多く無人車を含むループ４が競合ループに選択される。なお、（）内はデッドロック時の各無人車の現在位置（ノード）である。
【０１１４】
（６）発火順序調整
上述したデッドロックに陥った場合、まずトランジションの発火順序を調整し、その解消を試みる。つまり、ノードの予約順序を変えることによってデッドロックが回避できないかを探る。図２５は、この発火順序調整処理を示すフローチャートであり、以下でこの説明を行う。
【０１１５】
まず、ステップＳｃ２では競合ループに属す非待機の各無人車の現在ノードを、他の無人車が今後通過する回数をカウントする。
ステップＳｃ３では、上記通行回数が「０」かどうかを調べ、「０」の場合には本処理を終了し（ステップＳｃ９）、「０」でない場合には、次のステップＳｃ４へ進む。
【０１１６】
ステップＳｃ４では、各ノードの通行回数が前回の発火順序調整処理の時と異なる新しい状態であるかどうかを調べ、新しい状態ならば次のステップＳｃ５へ進み、前回と同じ状態ならば、本処理を終了する（ステップＳｃ９）。これは、状態が複雑になると、発火順序を何回も変えて結局前の状態へ戻ることがあるためでる。
【０１１７】
ステップＳｃ５では、そこにいる無人車は、自分を邪魔としている無人車の現在ノードを通過していないかどうかを調べ、通過しない場合には次のステップＳｃ６へ進み、通過する場合には処理を終了する（ステップＳｃ９）。これは、同じ区間を通ってきた無人車においては後からきた無人車を先にやれなくなるので、合流点（ノード）をチェックするためである。
【０１１８】
ステップＳｃ６では、ステップＳｃ２の結果である通行回数を評価値とする。ただし、自分を邪魔としている無人車が待機状態のときは、評価値を上げる。また、以上のステップＳｃ２〜Ｓｃ６の処理は、競合ループに属する非待機の無人車がいる全てのノードについて行われる。
ステップＳｃ７では、ステップＳｃ６で求めた各ノードの評価値が最小となるノードを競合ノードに選択する。
【０１１９】
ステップＳｃ８では、その競合ノードにいる無人車を邪魔とする無人車が先に通るようトランジション発火制御データに加える。このトランジション発火制御データは、特定ノードにおける無人車の移動順序を規制するものであり、これによってトランジションの発火が規制される。
【０１２０】
以上で説明した発火順序調整の処理を上述した図２４の運行図を用いて説明する。
まず、競合ループ中の非待機の無人車＃３、＃４、＃６がいるノード１８、３、１６（図２４（ｂ））の各々について通行回数を求める。この結果、ノード１６が１回、その他のノードは０回なので、ノード１６が競合ノードに選ばれる。このノード１６を出力先に持つトランジションは出発トランジションＤ15-16および出発トランジションＤ3-16であり、これらの発火順序を逆にする。
【０１２１】
つまり出発トランジションＤ3-16を先行トランジションとし、出発トランジションＤ15-16 よりも先に発火させる。これにより、無人車＃６をノード１６へ移動させる前に、無人車＃４をノード１６まで移動させ、ノード３が空くので待機中の無人車＃２をノード３へ退避させることができる。このように、トランジションの発火順序を調整することで、デッドロックを解消できる場合がある。
【０１２２】
図２６は、この具体例の最終結果を示す図であり、図２６（ａ）は無人車＃１ないし＃６の出発ノードから目標ノードまでの経路を示し、図２６（ｂ）はノード予約シーケンスを示す。図２６（ａ）の（）内は目標ノードであり、このノード以降の経路は上述した退避経路である。また、ノード予約シーケンス（図２６（ｂ））は、各ノードを無人車が予約する順序を示すもので、この図において例えば、ノード５は無人車＃２、＃１の順で予約が行われる。
【０１２３】
（７）迂回動作の計画
基本経路に従ってデッドロックの状況を解消できない場合には、適当な無人車が迂回経路をとるように計画する。図２７は、この迂回経路探索処理を示すフローチャートであり、以下でこの説明を行う。
【０１２４】
まず、ステップＳｄ２において、競合ループに属し、非待機の無人車について、移動可能な隣接ノードがあるかどうかを調べる。ある場合には次のステップＳｄ３へ進み、無い場合には迂回経路探索失敗で本処理を終了する（ステップＳｄ９）。
【０１２５】
ステップＳｄ３では、前ステップで選ばれた無人車に関して以下のアークを一時的に通行禁止にする。
▲１▼その無人車の現在ノードから次のノードへのアーク
▲２▼現在ノードから動けない方向へのアーク
【０１２６】
ステップＳｄ４では、現在ノードを出発ノード、次のノードを目標ノードに設定する。
ステップＳｄ５では、ステップＳｄ３および４の設定に基づいて経路探索処理（ステップＳａ１）を行う。
ステップＳｄ６では、ステップＳｄ３で行ったアークの通行禁止を解除する。ステップＳｄ７では、ステップＳｄ５の経路探索処理において迂回経路が求められたかどうかを調べ、迂回経路がある場合には次のステップＳｄ８へ進み、迂回経路が無い場合には迂回経路探索失敗で本処理を終了する（ステップＳｄ９）。
ステップＳｄ８では、対象としている区間の経路を迂回経路に差し替えて本処理を終了する（ステップＳｄ９）。
【０１２７】
図２８は、デッドロックの状況を例示した図であり、図２８（ａ）はデッドロックの状態を示す運行図である。以下、この図に基づいて上述した迂回経路探索処理を説明する。
まず、無人車＃１が最初に選ばれたとすると、ノード４−３、４−１８のアークを通行禁止にして迂回経路を求めようとする。この場合の無人車＃１の迂回経路としてはノード５−６−２０−１９−１８−１７・・・の経路が考えられるが、ノード１８−１７が無人車＃４の経路と逆行するため基本的にはこの経路は選択されない。ただし、後述する動作計画（図３２）の２回目の試行においては、逆走行区間が通行禁止にならないため、選ばれるかもしれない。
【０１２８】
次に、無人車＃２で迂回経路探索をすればノード３−２−１−１５−１６が得られる。そして、この経路が迂回経路となると共に無人車＃２の経路（３−１６）の間に挿入される（図２８（ｂ））。
【０１２９】
（８）待避動作の計画
デッドロックの状況において迂回動作がとれない場合は、適当な無人車が一旦別のノードへ退き（待避）、他の無人車に道を譲った後、再び元の経路で移動を行う。図２９は、この待避動作を示す待避経路探索であり、以下でこの説明を行う。
【０１３０】
まず、ステップＳｅ１では、競合ループに属しまだ目標ノードまで到着していない無人車（非待機無人車）について、移動できる隣接ノードがあるかどうかを調べ、ある場合には次のステップＳｅ３へ進み、無い場合には待避経路探索失敗で本処理を終了する（ステップＳｅ１０）。
【０１３１】
ステップＳｅ３では、その無人車の現在ノードから次のノードへのアークを一時的に通行禁止にする。
ステップＳｅ４では、現在ノードを出発ノードに、他の全てのノードを目標ノードに設定する。
ステップＳｅ５では、ステップＳｅ３および４において設定された条件で経路探索処理（ステップＳａ１）を行う。
【０１３２】
ステップＳｅ６では、ステップＳｅ５で得られた全ての経路の内、最もコストが小さい経路を選択し、その目標ノードを待避ノードとする。ただし、待避ノードの選択では単線区間に存在するノードは除く。
【０１３３】
ステップＳｅ７では、ステップＳｅ３で行った通行禁止を解除する。
ステップＳｅ８では、ステップＳｅ６の結果で待避ノードが無い場合には、待避経路探索失敗で本処理を終了し（ステップＳｅ１０）、待避ノードがある場合には、次のステップＳｅ９へ進む。
ステップＳｅ９では、現在ノードから待避ノード、さらにそこから現在ノードまでの経路（待避経路）を、現在持っている経路に挿入し、本処理を終了する。
【０１３４】
図３０（ａ）は、デッドロックの状況を例示した運行図であり、この図に基づいて待避経路探索処理を説明する。
まず、無人車＃１が最初に選ばれたとすると、ノード４−３を一時通行禁止にして経路探索を行い、ノード５が最もコストの小さい待避ノードに選択される。ここで、この無人車＃１の移動可能な隣接ノードはノード５の他にノード１８があるが、コスト（図１１参照）の小さいノード５が待避ノードに選ばれる。
【０１３５】
次に、ノード５からノード４への経路を探索し、ノード４−５−４が待避経路として求まる。最後にこの待避経路を元の経路に挿入し無人車＃１の経路（ノード４−５−４−３−２）が得られる（図３０（ｂ））。
【０１３６】
（９）動作計画
動作計画部１０８は、上述した（１）〜（６）の各種処理を用いて全無人車の経路の決定および移動順序の計画を行う。図３２、図３３および図３４は、この動作計画処理を示すフローチャートであり、以下でこの説明を行う。
まず、ステップＳｆ１（図３２）においてペトリネットを用いて走行路のモデル化を行う。
【０１３７】
ステップＳｆ２では、試行回数に１をセットする。
ステップＳｆ３では、各無人車の経路を、経路計画で得た基本経路に設定する。  ステップＳｆ４では、試行回数を調べ、試行回数が「１」ならば次のステップＳｆ５へ進み、「１」以外の値ならばステップＳｆ６へ進む。
【０１３８】
ステップＳｆ５では、上述した基本経路の各経路と逆行するアークを全て通行禁止にする。これにより、以下の処理で逆方向区間が発生することがなくなる。また、ループ▲１▼により処理が戻り試行回数が２（図３３、ステップＳｆ３１）となる場合には、このステップＳｆ５は実行されず、経路探索処理においてこの通行禁止の制限は加えられない。
【０１３９】
ステップＳｆ６では、現在時刻を０に初期設定する。
ステップＳｆ７では、各無人車を出発点に置き、その各経路から発火予定トランジション系列をそれぞれ求める。
ステップＳｆ８では、各無人車の完了時刻を−１に初期設定する。
【０１４０】
ステップＳｆ９では、発火トランジション系列を空に初期設定する。この発火トランジション系列は、実際に発火を行うトランジションの系列であり、必ずしも発火予定トランジション系列と一致しない。
ステップＳｆ１０では、各無人車に対して完了時刻が現在時刻と同じであるかどうかを調べ、同じである場合には次のステップＳｆ１１へ進み、同じでない場合にはステップＳｆ１２へ分岐する。
ステップＳｆ１１では、ステップＳｆ１０の条件を満たす全ての無人車の発火予定トランジションから先頭のトランジションを取り出し、発火完了処理を行う。
【０１４１】
ステップＳｆ１２（図３４）では、各無人車に対して完了時刻が現在時刻以前であるかどうかを調べ、以前である場合には次のステップＳｆ１３へ進み、以前でない場合にはステップＳｆ２０へ分岐する。
ステップＳｆ１３では、発火予定トランジションの先頭のトランジションが発火可能であるかどうかを調べ、発火できる場合はステップＳｆ１４へ進み、発火できない場合にはステップＳｆ１７へ分岐する。
ステップＳｆ１４では、ステップＳｆ１３で発火可能とされた全てのトランジションを取り出して発火処理を行う。
【０１４２】
ステップＳｆ１５では、完了時刻に発火したトランジションの移動時間を加算し、完了時刻を更新する。
ステップＳｆ１６では、ステップＳｆ１４で発火処理を行ったトランジションを各々対応する発火トランジション系列へ登録（追加）し、ステップＳｆ２０へ進む。
一方、ステップＳｆ１７では、発火できないトランジションに対応する邪魔な無人車に移動可能な隣接ノードがあるかどうかを調べる。つまり邪魔な無人車を他のノードへ追い出せるかどうかを調べる。この結果、追い出し可能の場合には次のステップＳｆ１８へ進み、可能でない場合にはステップＳｆ２０へ分岐する。
【０１４３】
ステップＳｆ１８は、ステップＳｆ１７で追い出し可能とされた無人車が待機中であるかどうかを調べ、待機中の場合には次のステップＳｆ１９へ進み、待機中でない場合にはステップＳｆ２０へ分岐する。
ステップＳｆ１９では、ステップＳｆ１７および１８の条件を満たす無人車に対し退避経路処理（図２１、ステップＳａ１）を行い、退避経路を求める。
ステップＳｆ２０では、全ての無人車に対応する発火トランジションの完了時刻が現在時刻以前であるかどうかを調べ、以前ならばステップ２２へ分岐し、以前でないならステップＳｆ２１へ進む。
【０１４４】
ステップＳｆ２１では、全無人車のなかから最も近未来の完了時刻を持つ無人車を見つけ、その完了時刻を現在時刻に設定する。そして、ステップＳｆ１０（図３２）へ戻る。
ステップＳｆ２２では、全ての無人車の発火予定トランジション系列が空であるかどうかを調べ、空ならばステップＳｆ３２（図３３）へ分岐し、空でないならば次のステップＳｆ２３へ進む。
【０１４５】
ステップＳｆ２３では、前述したデッドロック把握処理（図２３、ステップＳｂ１）によってデッドロックの状況を調べる。
ステップＳｆ２４では、ステップＳｆ２３の処理で得られた競合ループに基づいて、前述した発火順序調整処理（図２５、ステップＳｃ１）によって各トランジションの発火順序を調整する。
【０１４６】
ステップＳｆ２５では、前ステップＳｆの発火順序の調整が成功したかどうかを調べ、失敗の場合には次のステップＳｆ２６へ進み、成功の場合つまりデッドロックが解消された場合にはステップＳｆ６（図３２）へ戻る。
ステップＳｆ２６では、迂回経路探索処理（図２７、ステップＳｄ１）によって、迂回経路を探索する。
【０１４７】
ステップＳｆ２７では、前ステップにおける迂回経路探索が成功したかどうかを調べ、失敗の場合には次のステップＳｆ２８へ進み、成功の場合にはステップＳｆ６（図３２）へ戻る。
ステップＳｆ２８では、待避経路探索（図２９、ステップＳｅ１）によって、待避経路を探索する。
【０１４８】
ステップＳｆ２９では、前ステップの待避経路探索が成功したかどうかを調べ、失敗の場合には次のステップＳｆ３０へ進み、成功の場合にはステップＳｆ６（図３２）へ戻る。
ステップＳｆ３０では、現在の試行回数を調べ、それが「１」の時は次のステップＳｆ３１へ進み、「１」でない場合には動作計画失敗で全処理を終了する（ステップＳｆ３４）。
【０１４９】
ステップＳｆ３１では、試行回数を２に増やした後、ステップＳｆ３（図３２）へ戻る。
ステップＳｆ３２は、無人車の動作計画が成功した場合に実行され、現在の経路を無人車の最終経路に設定する。
ステップＳｆ３３では、発火トランジション系列をもとに、各ノードを占有する無人車の順序（ノード予約シーケンス）を作成し、全処理を終了する（ステップＳｆ３４）。
【０１５０】
全体の動作例１：
以下で、図３１に示した搬送路１０１における運行管理制御装置１０２（図１）の動作を説明する。以下の図において、図４５と対応する部分には同一の符号を付け、その説明を省略する。また、この動作例における出発点および目標点を図３５（ａ）に示す。
まず、経路計画部１０９は、経路探索部１１０に対し探索指示（図３５（ａ））を出力する。経路探索部１１２は、この探索指示に従って各無人車＃１ないし＃５の搬送経路（初期経路）を探索し、その結果である初期経路を経路計画部１０９へ出力する。図３６（ａ）は、この初期経路を示した運行図であり、同図において無人車＃１ないし＃７の経路はそれぞれ、点線、長い一点鎖線、二点鎖線、一点鎖線、破線、実線、長い破線で示されている。
【０１５１】
経路計画部１１１は、この初期経路において、ノード２、３間、ノード４〜６間、およびノード８〜１０間が逆方向区間となっているため、コストに応じて走行路の特定区間の方向付けを行い、再び経路探索部１１２に探索指示を出力する。以上の動作が逆方向区間が無くなるまで行われ、図３５（ｂ）および図３６（ｂ）に示すような基本経路が得られる。経路計画部１１１は、この基本経路を動作計画部１１０へ出力する。
【０１５２】
動作計画部１１０は、この基本経路に基づいて上述した動作計画処理（図３２、図３３、図３４）を行う。また、この処理の間に行われる迂回経路などの経路探索は、経路計画部１１１を介して経路探索部１１２で行われる。また、この場合の出発ノード、目標ノードおよび通行禁止区間は動作計画部１１０から出力される。
以上の処理によって、図３５（ｃ）および図３６（ｃ）に示すような最終経路が得られる。この最終経路では、基本経路（図３５（ｂ））に対して、無人車＃１の退避経路（ノード２０−６）が追加されている。また、図３７は、この時の無人車＃１ないし＃７の各々の移動を時間的に示した運行計画図である。
【０１５３】
全体の動作例２：
次に、上述した搬送路１０１のノード２０、２１間が通行禁止である場合の動作例について説明する。ただし、この動作例における各無人車＃１ないし＃７の現在地および目標地は上述した動作例１と同一である（図３５（ａ））。また、この場合、ノード６、７間、ノード７、８間、ノード２１、２２間は、これを結ぶ経路以外に迂回する経路が存在しないので、逆方向区間に含めない。
ここでも動作例１と同様な処理が行われ、まず、経路探索部１１２において図３８（ａ）の運行図に示すような初期経路が得られる。次に経路計画部１０９によって、図３８（ｂ）に示すような基本経路が作成される。これらの図において、初期経路（図３８（ａ））にあった逆走行区間は無くなっている。図４０に示されるように図４０（ａ）の基本経路が、図４０（ｂ）に示す最終経路となる。
【０１５４】
そして、動作計画部１１０において、図３８（ｃ）に示すような最終経路が作成される。この最終経路では、基本経路（図３８（ｂ））に対して、無人車＃１の退避経路（ノード２０−６）および無人車＃５の退避経路（ノード８−２２−２３−２４−１０−９）が追加されている。また、図３９は、この時の運行計画図であり、この図において、無人車＃１ないし＃７のノード予約は図３７と同一の線種で示されている。
【０１５５】
以上説明したように、第１の実施形態によれば、無人車同士の干渉を考慮して、全ての無人車の走行経路および走行順序を走行前に得ることができる。
つまり、第一の実施形態は、全ての無人車が停止している状態から、おのおのの目的地までの運行計画を求める運行管理制御装置であった。この運行計画に従って、各無人車の運行を制御することにより、無人車は、衝突やデッドロックが発生しない、かつ、効率的な運行を行うことができる。
【０１５６】
しかし、各無人車が目的地に到着して作業を完了する時刻は、様々であり、上記実施形態に従う限り、早く作業の終了した無人車も、最も遅い無人車の作業が完了するまで、次の動作に移行することができない。
そこで、以下に説明する第２の実施形態では、目的ノードに到達し作業を完了した無人車は、他の無人車の作業完了を待たずに直ちに次の指示を受け、その時点での他の無人車の位置や確定経路を考慮した走行経路を与えられるように制御される。これにより無人搬送システム全体の処理能力が向上する。
【０１５７】
図４１は第２の実施形態による運行管理制御装置Ｃの構成を示すブロック図である。この図において、図１に示した各部と共通する部分は走行路データメモリ１０６およびペトリネットデータメモリ１０７であり、これらの説明は省略する。
【０１５８】
図４１において、２００は運行制御部であり、図には示されていないＣＰＵ（中央処理装置）、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）等からなる処理装置である。運行制御部２００は計画部２０１を起動し、計画部２０１が求めた各無人車の走行経路に基づいて無人車の運行制御を行う。尚、計画部２０１はペトリネット作成部１０９、経路探索部２０２、経路計画部２０３および動作計画部２０４よりなり、その構成は第１の実施形態の計画部１０８と基本的に同じものである。
【０１５９】
搬送実行テーブルメモリ２０５は無人搬送システムに与えられた仕事をプールしておく記憶領域である。搬送実行テーブルメモリ２０５に記憶されている時点では、各仕事はまだ無人車には割り当てられていない。
２０６は計画結果格納メモリであり、第１の実施形態における運行制御データメモリ１０３とほぼ同じ働きをするものである。つまり計画結果格納メモリ２０６は、計画部２０１において計画された各無人車の確定経路、ノード予約シーケンス等を記憶している。
【０１６０】
ただし、第１の実施形態では運行制御データメモリ１０３の内容がそのまま各無人車への動作指令となるが、本実施形態では運行制御部２００が計画結果格納メモリ２０６内のデータをチェック・参照し、後述する走行指示処理によって各無人車への走行指示を出力するため、運行制御データメモリ１０３の内容は、そのままでは動作指令とはならない。
【０１６１】
２０７は計画指示テーブルメモリであり、計画部２０１が経路計画および動作計画を立てる際に各無人車をどのように扱うかを指示するデータが納められている。
図４２は計画指示テーブルメモリ２０７の構成の一例である。計画指示テーブルメモリ２０７は、各無人車に対して、経路確定レベル、目的ノード、作業時間の各データを格納している。各データについて以下に説明する。
【０１６２】
経路確定レベル：
経路確定レベルは各無人車の走行経路の確定状況を示すデータであり、「未定」、「目的ノードまで確定」、「退避先ノードまで確定」の３種類がある。
尚、本実施形態では、動作計画部２０４における退避経路追加は目的ノードに到達後にのみ必要ならば行われる。つまり、第１の実施形態のように目的ノードへ到達する前の経路に退避経路を挿入することは行わない。同様に、退避先ノードまでの経路が確定すると、その退避先ノードより前に新たな退避先ノードおよび経路を挿入することも行わない。このことにより、各無人車の走行経路がどの程度まで確定しているのかを常に把握する必要があり、本データ（経路確定レベル）が使用される。
【０１６３】
「未定」は現在ノードから目的ノードまでの経路は確定しておらず、故にその経路を求める必要があることを示す。
「目的ノードまで確定」は現在ノードから目的ノードまでの経路が確定していることを意味する。目的ノード以降の経路については、動作計画部２０４において退避先ノードが付け加えられることによって、そこまでの経路が追加される可能性がある。
「退避先ノードまで確定」は現在ノードから目的ノードを経て退避先ノードまでの経路が確定していることを意味する。退避先ノード以降の経路については、動作計画部２０４においてさらに退避先ノードが追加されることによって、そこまでの経路が追加される可能性がある。
【０１６４】
目的ノード：
この項目には、各無人車の作業を実行する目的ノードが格納される。
作業時間：
この項目には、各無人車の目的ノードでの作業時間が格納される。例えば、目的ノードでの作業が荷物の積みおろしである場合には、その作業にかかる実時間を与える。
また、目的ノードでの作業がない場合には作業時間は０にセットされる。
【０１６５】
尚、ある無人車が目的ノードに到達し作業を完了した後、次の仕事を受けようとしているのに搬送実行テーブルメモリ２０５に仕事のストックがない場合には、その無人車は現時点において仕事がない状態となる。この場合、計画指示テーブルメモリ２０７のその無人車の欄に対しては次の通りに指示を与える。
経路確定レベル：未定
目的ノード    ：現在ノード
作業時間      ：０
【０１６６】
また、図４１において、２０８は無人車インタフェースであり、運行制御部２００と各無人車とのデータのやりとりを行う無線通信手段である。無人車インタフェース２０８は、運行制御部２００からの走行指示を各無人車へ送ったり、時々刻々と変化する各無人車の状態や位置を一定周期ごとに受信し、運行制御部２００へ送信する。
次に、運行制御部２００の動作について説明する。運行制御部２００は、複数のＣＰＵを有し、次の３つの処理を並列に行う。
１）無人車データメモリ２０９更新
２）計画部２０１起動
３）無人車制御
以下、各処理の詳細を述べていく。
【０１６７】
１）無人車データメモリ２０９更新
運行制御部２００は無人車インタフェース２０８から各無人車の状態を逐次受信し、その内容を元に無人車データメモリ２０９の内容を更新する。
また、運行制御部２００は無人車データメモリ２０９を更新する度に、無人車同士の位置関係が変化したことを示すために、新フェイズフラグを１にセットする。
新フェイズフラグは、計画部２０１において計画実行が失敗した後、何れかの無人車の位置が変化する事によって次回の計画実行が成功することを期待し、再び計画部２０１を起動する時の判断に使用される。具体的には、運行制御部２００が無人車データメモリ２０９の内容を更新する度に新フェイズフラグは１にセットされ、計画部２０１が計画実行に失敗すると０にセットされる。
尚、ここで述べる計画部２０１による計画実行の失敗とは、計画部２０１が全ての無人車に対して新たな確定経路を１つも追加できなかった場合を指す。
【０１６８】
２）計画部２０１起動
運行制御部２００は、搬送実行テーブルメモリ２０５および無人車データメモリ２０９を参照して、未割当の仕事の存在および仕事を持たない無人車の存在を確認した場合、その２つデータを元に、計画指示テーブルメモリ２０７に経路確定レベル・目的ノード・作業時間をセットし、計画部２０１を起動する。
計画部２０１による計画実行が終了し、そのデータが計画結果格納メモリ２０６へ格納されると、運行制御部２００はその内容を調べて、計画が成功していれば運行制御データメモリ２１０へコピーする。
【０１６９】
以下、図４３に示すフローチャートを用いて、運行制御部２００の計画部２０１起動処理について説明を行う。
本フローチャートでは「失敗フラグ」と「新フェイズフラグ」の２つのフラグを使用する。
失敗フラグは、計画部２０１において計画実行が成功したか否かを示すものであり、０で計画実行成功、１で計画実行失敗を意味する。
新フェイズフラグは、最低でも１つ以上の無人車の位置が変化したことを示すものであり、運行制御部２００が無人車データメモリ２０９の内容を更新する度に、新フェイズフラグは１にセットされ、計画部２０１が計画実行に失敗すると０にセットされる。
【０１７０】
処理が開始されると、ステップＳｇ２において両フラグの初期化（失敗フラグは０に、新フェイズフラグは１にセット）が行われる。
ステップＳｇ３では無人車データメモリ２０９を調べて、次の作業に移れる無人車がいないか確認する。ここで次の作業に移れる無人車とは搬送実行テーブルメモリ２０５内に未割り当ての仕事があるにもかかわらず、それに対する動作が割り当てられていない無人車のことを指す。
ステップＳｇ３で次の作業に移れる無人車が存在しない場合は、運行制御部２００は計画部２０１を起動させることができないので、次の作業に移れる無人車が現れるまで無人車データデータメモリ２０９の監視を続けるループ（Ｓｇ３およびＳｇ４）に入ることになる。
【０１７１】
ステップＳｇ３にて次の作業に移れる無人車が見つかると、ステップＳｇ５およびステップＳｇ６にて失敗フラグおよび新フェイズフラグのチェックを行う。ここで、失敗フラグが０であるか、あるいは新フェイズフラグが１であれば、計画起動（ステップＳｇ７）へ入るが、そうでない場合はステップＳｇ４へ戻り、新フェイズフラグが１になるまで無人車データメモリ２０９の監視を続けるループに入ることになる。
【０１７２】
ステップＳｇ７では各無人車について計画指示テーブルメモリ２０７を設定し、計画部２０１を起動する。設定内容は以下の通りである。
搬送実行テーブルメモリ２０５内に未割当の仕事が存在する場合、次の作業に移れる無人車に対しては、次のようにセットし、仕事を割り当てる。
経路確定レベル：未定
目的ノード    ：割り当てられた仕事の作業実行ノード
作業時間      ：割り当てられた仕事の作業時間
搬送実行テーブルメモリ２０５内に割り当てるべき仕事が存在しない場合、次の作業に移れる無人車に対しては、次のようにセットする。
経路確定レベル：未定
目的ノード    ：現在ノード
作業時間      ：０
作業割り当て済みで、目的ノードまでの経路が確定し、現在その目的ノードへ向かっている無人車に対しては、次のようにセットする。
経路確定レベル：目的ノードまで確定
目的ノード    ：現在向かっている目的ノード
作業時間      ：目的ノードでの作業時間
目的ノードでの作業が完了し、現在は退避先ノードへ向かっている無人車に対しては、次のようにセットする。
経路確定レベル：退避先ノードまで確定
目的ノード    ：現在向かっている退避先ノード
作業時間      ：０
【０１７３】
ステップＳｇ８では計画部２０１によって計画が実行される。
計画部２０１による計画実行が終了すると、ステップＳｇ９では、計画格納メモリ２０３の内容を調べ、計画実行が成功したか否かをチェックする。
尚、ここで述べる計画実行の成功とは、計画部２０１が少なくても１台以上の無人車に対して、新たに確定経路を追加できた場合を指す。
計画実行が失敗していたら、ステップＳｇ１０へ行き、失敗フラグを１に、新フェイズフラグを０にセットし、新しい計画起動処理に入るためにステップＳｇ４へ処理を移す。計画実行が成功していたら、ステップＳｇ１１へ処理を移し、失敗フラグと新フェイズフラグを０にセットする。
【０１７４】
ステップＳｇ１２では、各無人車の確定経路およびノード予約シーケンスを計画結果格納メモリ２０６から運行制御データメモリ２１０へコピーする。
ステップＳｈ１２における運行制御データメモリ２１０の更新をもって、計画部２０１起動の一連の処理は完了する。運行制御部２００は次の計画部２０１起動処理に入るため、処理をステップＳｇ３へ移す。
【０１７５】
３）無人車制御
運行制御部２００は、無人車データメモリ２０９と運行制御データメモリ２１０の内容を元に、無人車に実際の動作指令を出す。この動作指令は無人車インタフェース２０８を介して無人車に与えられる。運行制御部２００が無人車に対して出力する動作指令の内容としては、目的ノードにおける作業内容や待機指示など対象とする無人搬送システム全体の構成によって様々な種類のものが考えられるが、ここでは無人車の運行管理という点から走行指示処理にポイントを絞って述べていく。
【０１７６】
以下、図４４に示すフローチャートを用いて、運行制御部２００の走行指示処理について説明を行う。
まずフローチャートの説明にはいる前に本処理で使用される各種リストについて説明しておく。各無人車は以下の３種類ノードリストを持ち、運行制御部２００はその内容を元に走行指示処理を行う。
１つ目は確定経路ノードリストであり、各無人車の確定経路中のノードを通過順に並べたものである。
２つめは予約ノードリストであり、確定経路ノードリスト中のノードの内、運行制御部２００によって通過が許可されたノードを許可順に並べたものである。３つめは未予約ノードリストであり、確定経路ノードリスト中のノードの内、通過が許可されていないノードを確定経路ノードリスト内の順番に並べたものである。
以上より、３つのノードリストの関係を述べると、確定経路ノードリストから予約ノードリストを差し引いたものが未予約ノードリストということになる。
【０１７７】
また、各ノードはそれぞれノード予約シーケンスをもつ。これは第１の実施形態において図２６（ｂ）に示したものと同じく、各ノードに対してそのノードを予約する予定の無人車を順番に並べたものであり、計画部２０１による計画実行時に作成・出力される。
【０１７８】
図４４において、走行指示処理が開始されると、ステップＳｈ２においてパラメータＣＡＲを１にセットする。ここでパラメータＣＡＲは現在走行指示処理中の無人車の無人車番号を示す。
次に、ステップＳｈ３で、無人車番号ＣＡＲの確定経路ノードリストと同無人車の予約ノードリストとの差を求め、ステップＳｈ４で、同確定経路ノードリストにおいて通過することが確定していながら、同予約ノードリストで予約されていないノードを全て確定経路ノードリストの記載順に未予約ノードリストに移す。
ステップＳｈ４で無人車番号ＣＡＲの無人車に対する未予約ノードリストの作成が終了したら、ステップＳｈ５では、同未予約ノードリストの先頭のノードを取り出し、このノードをパラメータＮにセットする。
【０１７９】
次に、ステップＳｈ６では、ノードＮのノード予約シーケンスの先頭の無人車と、現在処理中の無人車番号ＣＡＲの無人車とを比較する。ここで、両者が等しいならば処理をステップＳｈ７へ、異なるならばステップＳｈ１１へ移す。
ステップＳｈ７においてノードＮを無人車番号ＣＡＲの無人車の予約ノードリストにいれる。そして、ステップＳｈ８にてノードＮを無人車番号ＣＡＲの無人車の未予約ノードリストがら削除する。このステップＳｈ７および８によって、ノードＮは無人車番号ＣＡＲの無人車による予約が完了し、同無人車の予約ノードリストに追加される。
ステップＳｈ９では、無人車番号ＣＡＲの無人車について他に未予約ノードがないかチェックする。同未予約ノードリストが空ならば予約作業は終了し、ステップＳｈ１１へ処理を移す。
【０１８０】
ステップＳｈ１０では、無人車番号ＣＡＲの無人車について目的ノードまでのノード予約が完了しているか否かをチェックする。これは、目的ノード以降において退避先ノードまでの経路が確定しており、その退避先ノードまでの予約が可能である場合であっても、目的ノードで移動を一度停止し作業を行うためである。
ステップＳｈ１１では、無人車番号ＣＡＲの無人車に対して、現在ノードから予約ノードリスト中の最後尾のノードへ走行指示を出す。
ステップＳｈ１２では、ステップＳｈ１１の走行指示によって通過したノード（ステップＳｈ９時点における現在ノードも含む）のノード予約シーケンスから各ノードの先頭に記載されている無人車番号ＣＡＲの無人車を削除する。
このステップＳｈ１１および１２によって、無人車番号ＣＡＲの無人車は予約ノードリストの内容に沿って移動する。
【０１８１】
ステップＳｈ１３では、走行指示の対象となる無人車を次の無人車番号を持つ無人車に移すため無人車番号ＣＡＲの値に１を加える。
ステップＳｈ１４では、一連の処理が全無人車に対して完了したか否かをチェックする。インクリメントされた無人車番号ＣＡＲの値と無人搬送システムが有している無人車の総数とを比較する。無人車総数の方が大きいならば処理をステップＳｈ３に戻し、ステップＳｈ１３にて求められた無人車番号ＣＡＲの無人車に対し再び同様の処理を行う。ＣＡＲの方が大きいならば全無人車に対しノード予約および走行指示が完了したことになるので処理を終了する。
【０１８２】
次に、第２の実施形態の計画部２０１の動作について、第１の実施形態の計画部１０８と異なる部分を中心に説明していく。
まず、ペトリネット作成部１０９は、基本的に第１の実施形態において記述された方法により、運行経路のペトリネットモデルを作成し、作成したペトリネットモデルのデータを運行制御データメモリ２１０へ記憶させる。第１の実施形態で作成されたペトリネットモデルは、無人車の運行計画で作成されたものであるが、第２の実施形態におけるペトリネットモデルは、運行制御に用いられるものである。
【０１８３】
そのため、ノードプレース、移動プレース、予約プレース、出発トランジションおよび到着トランジションなどのペトリネットモデルを構成する要素は、第１の実施形態と同様であるが、後に説明される様にトークンおよび各トランジションの発火に関する条件などが異なる。
このペトリネットモデルの作成は、無人車の運行制御の開始後において、無人車の運行制御の初期化処理の一環として行われる。
【０１８４】
次に、経路探索部２０２は、第１の実施形態の経路探索部１１２と同様に、後述する経路計画部２０３によって起動される。また、経路探索部２０２は、その起動時において、特定の経路に対し、方向付けおよび通行禁止の情報を探索時条件として指示することも同様に可能である。
第２の実施形態の経路探索部２０２が第１の実施形態の経路探索部１１２と異なる点は、後者が全ての無人車に対して初期経路（無人車同士の競合を考慮しないコスト最小経路）を求めるのに対し、前者は計画指示テーブルメモリ２０７内の経路確定レベルが「未定」の無人車に対してのみ初期経路を求める点である。これは計画指示テーブルメモリ２０７内の経路確定レベルが「目的ノードまで確定」または「退避先ノードまで確定」の無人車は、すでに目的ノードまたは退避先ノードまでの経路が確定しているので、この確定経路は固定条件となるためである。
【０１８５】
次に、第２の実施形態における経路計画部２０３では、各無人車に対する走行経路の作成が、他の無人車の作業完了を待たず、作業が完了した無人車に対して直ちに行われるので、経路計画部２０３が基本経路（逆方向区間の無いコスト最小経路）を求める時には、走行が確定している経路がすでにいくつか存在していることになる。
また、運行制御部２００は、経路計画部２０３の処理と並列に各無人車に対し走行指示を出しているので、経路計画部２０３は処理を開始する前に各無人車の現在位置情報を得る必要がある。
上記の２点より、経路計画部２０３はその処理を開始する前に確定走行路および各無人車の現在位置の初期設定を行う必要がある。
【０１８６】
図４５は経路計画部２０３が行う経路計画処理を示すフローチャートであり、第１の実施形態の経路計画部１１１のフローチャート（図１４）に一部処理を追加したものである。
処理が開始されると、ステップＳＰ１（ａ）において確定走行路の初期設定を行う。
計画指示テーブルメモリ２０７の経路確定レベルを調べ、経路確定レベルが「目的ノードまで確定」または「退避先ノードまで確定」となっている無人車をピックアップする。次に、無人車データメモリ２０９を調べ、ピックアップされた無人車について確定経路をその走行方向も含めて全て調べ出す。そして、それらの確定経路に対して、その走行方向とは逆方向の走行を一時的に禁止し一方通行とする。つまり、この後のステップＳＰ２’およびＳＰ１４’における経路探索部２１０の経路探索処理に対し、確定経路によって走行可能方向の条件付けを行う。
【０１８７】
次に、ステップＳＰ１（ｂ）で各無人車の現在位置の初期設定を行う。
本実施形態の運行制御は各無人車の位置とは無関係に開始されるので、各無人車は必ずしもノード上に位置しているわけではなく、ノード間を移動中の場合も考えられる。そこで、経路計画部２０３の処理がステップＳＰ１（ｂ）に移った時点において、ノード上に位置する無人車に対してはそのノードを現在位置とし、またノード間を移動中の無人車に対しては直前に通過したノードを現在位置とする。
ステップＳＰ１（ａ）およびＳＰ１（ｂ）における初期設定が終了すると、以降の処理は第１の実施形態で示した図１４のステップＳＰ２以降の処理と同じものである。但し、ステップＳＰ２’およびＳＰ１４’では、経路探索部２０２による初期経路探索は、計画指示テーブルメモリ２０７内の経路確定レベルが「未定」の無人車のみを対象として行われる。
【０１８８】
次に、第２の実施形態の動作計画部２０４の処理は、第１の実施形態の動作計画部１１０のペトリネットモデルを用いたシミュレーションを行い経路の確定を行う処理およびその他の処理（図３２、図３３、図３４）と基本的に同じものである。
両者が異なる点は、動作計画部２０４の場合、図３３のステップＳｆ２４（詳細図は図３３）、図３４のステップＳｆ２６（詳細図は図２７）およびステップＳｆ２８（詳細図は図２９）の各ステップにおいて発火順序調整、迂回経路探索および待避経路探索の対象となるのは、計画指示テーブルメモリ２０７内の経路確定レベルが「未定」の無人車のみという点である。
また、第２の実施形態では、一度確定した経路に対する変更は行わないので、退避経路探索（図３３に示すステップＳｆ１９）で退避経路を追加する場合は、計画指示テーブルメモリ２０７の経路確定レベルが「未定」または「目的ノードまで確定」の無人車に対しては目的ノード以降に、「退避先ノードまで確定」の無人車に対しては現在確定している退避先ノード以降に退避経路が加わることになる。
【０１８９】
全体の動作例３：
次に、上記構成による運行管理制御装置Ｃの動作を説明する。
前述したように第２の実施形態においては、運行制御部２００は、他の無人車の作業完了を待たず、手の空いた無人車から順次新しい仕事を割り当てていく。そこで動作例の開始時点として次のような状況を設定する。
図４６（ａ）に示すように、無人車＃１は、丁度それまで割り当てられていた仕事を完了したところであり、ノード２で待機中である。無人車＃２はノード３での積み込み作業（作業時間は３５秒）を行うためノード５とノード４の間を走行中であり、無人車＃３はノード９での積み込み作業（作業時間は２５秒）を行うためノード７を出発寸前であるとする。
【０１９０】
運行制御部２００は無人車の状態を一定周期で監視し、上述の各無人車の状態を無人車データメモリ２０９内に書き込む。
運行制御部２００は無人車データメモリ２０９の更新とは並列に、図４３に示した計画部２０１起動処理を繰り返しているので、それに従って計画部２０１の起動を行う。
【０１９１】
運行制御部２００は、待機中の無人車（無人車＃１）の存在を確認すると、搬送実行テーブルメモリ２０５にストックされた仕事の中から１つ仕事を取り出し、無人車＃１に割り当てる。
ここでは無人車＃１にノード９での積み込み作業（作業時間は３０秒）を割り当てるとする。
無人車＃２および＃３はそれぞれ既に目的ノードおよびそこまでの経路が確定しているので、これらも考慮すると計画指示テーブルメモリ２０７の内容は図４６（ｂ）となる。
【０１９２】
計画指示テーブルメモリ２０７がセットされると、計画部２０１による計画実行が開始される。
まず、経路計画部２０３は、基本経路を作成する前に、確定走行路の初期化を行う（図４５に示すステップＳＰ１（ａ）参照）。無人車＃２の確定走行路は、通過するノードの順番で示すとノード５−４−３であるので、それと逆行するノード３−４−５の移動は禁止される。同様に無人車＃３の確定経路と逆行するノード９−８−７の移動も禁止される。
【０１９３】
次に、無人車の現在位置の初期設定を行う（図４５に示すステップＳＰ１（ｂ）参照）。無人車＃１はノード２で待機中であるので、その現在位置はノード２に設定される。無人車＃２はノード５とノード４との間を走行中であるので、その現在位置は直前に通過したノード５に設定される。無人車＃３はノード７で停止中であるので、その現在位置はノード７に設定される。
【０１９４】
以上の初期設定終了後、経路計画部２０３は第１の実施形態で述べた経路計画部１１１と同様の処理を行い、基本経路（逆方向期間の無いコスト最小経路）を探索する（図４５に示すステップＳＰ２’以降の処理参照）。ただし、ステップＳＰ２’およびＳＰ１４’において走行経路を求める処理の対象となるのは、計画指示テーブルメモリ２０７において経路確定レベルが「未定」となっている無人車のみとなる。この結果、無人車＃１の基本経路はノード２−１−６−７−８−９と求められる。また、無人車＃２および＃３は現在の確定走行路が基本経路となる。
【０１９５】
経路計画部２０３の基本経路探索が終了すると、次に動作計画部２０４が動作計画を行う。ここでは、無人車＃３に対してノード９からノード１０への退避経路が追加される。
【０１９６】
計画実行が終了すると、各無人車の確定経路は図４７（ａ）に示す通りとなり、計画部２０１は図４７（ｂ）に示すノード予約シーケンスおよび図４７（ｃ）に示す確定経路ノードリストを計画結果格納メモリ２０６へ格納する。
運行制御部２００は計画実行の成功を確認すると、ノード予約シーケンスおよび確定ノードリストを運行制御データメモリ２１０にコピーする。
【０１９７】
以上述べた計画部２０１起動処理とは並列に、運行制御部２００は運行制御データメモリ２１０を参照しながら図４４に示した走行指示処理を繰り返している。故に、図４３の処理によって運行制御データメモリ２１０が更新されると、その内容は直ちに各無人車への走行指示に反映される。
【０１９８】
図４８に示すフローチャートに従って、無人車の実際の運行制御について説明する。まず、ステップＳＳ１において、第１の実施形態と同様にペトリネット作成部１０９により、ペトリネットモデルが作成され、このペトリネットモデルのデータは、ペトリネットデータメモリ１０７を介し、運行制御データメモリ２１０へ記憶される。この操作は、運行制御が開始される前に行われる。
【０１９９】
次に、ステップＳＳ２において、無人車の状態が変化したかどうかが、運行制御部２００により検出される。どの無人車もノードに停止し、無人車の状態変化の情報が検出されない場合は、ステップＳＳ２の検出動作が繰り返される。無人車が、次のノードに移動したり、無人車の状態が変化（たとえば搭載した資材の移動が終了）したときは、無人車から無人車インタフェース２０８を介して状態情報が入ると、運行制御部２００は、無人車の状態変化を検知し、ステップＳＳ３に処理を進める。
【０２００】
次に、ステップＳＳ３において、無人車インタフェース２０８を介して入力された無人車の状態情報の内容により、運行制御部２００は、運行制御データメモリ２１０および搬送実行テーブルメモリ２０５などに記憶されている無人車の状態情報のデータを無人車インタフェース２０８を介して入力された内容に更新する。
【０２０１】
たとえば、無人車のノードに到着した状態情報が、無人車インタフェース２０８を介して入力された場合の処理を説明する。
ノードｉからノードｊへ移動している無人車から、ノードｊを検出した情報、すなわち、無人車がノードｊに到着した情報が、無人車インタフェース２０８から入力されると、運行制御部２００は、次の発火処理において到着トランジションＡi-jを発火させる。
【０２０２】
この到着トランジションＡi-jへの移動時の発火処理は、以下に示す処理が行われる。無人車の移動による発火処理を移動発火処理として、後に述べる無人車の運行経路の予約における発火処理と区別する。
【０２０３】
▲１▼運行制御部２００は、運行制御データメモリ２１０に記憶されている、発火処理に対応する無人車の予約発火系列の先頭にある到着トランジションＡi-jを取り出し、それらの入力ノードプレースｎiに対応した黒トークン、および白トークンのある全ての出力ノードプレースｎjの白トークンを取り除き、全ての出力プレースに黒トークンを置く。
【０２０４】
▲２▼運行制御部２００は、運行制御データメモリ２１０などに記憶されているノードプレースＰｉの予約シーケンスの先頭から、無人車インタフェース２０８を介して通知した無人車を除去する。
【０２０５】
次に、ステップＳＳ４において、ノードｉからノードｊへ移動している無人車から、無人車がノードｊに到着した情報が、無人車インタフェース２０８から入力されると、その無人車が占有していたノードｉは解放されたことが確認される。他の無人車は、解放されたノードｉを占有できるので、運行制御部２００は、他の無人車の経路予約処理を行う。
【０２０６】
また、経路予約処理は、無人車インタフェース２０８を介して状態情報を通知した無人車が目的地までの運行経路上でさらに占有領域を拡大する場合にも、運行制御部２００は、通知した無人車の経路予約処理を行う。
また、運行制御部２００は、各無人車の経路予約処理を、到着情報を通知した以外の無人車に行った後、最後に状態情報を通知した無人車に行う。
【０２０７】
次に、ステップＳＳ５において、運行制御部２００は、経路予約処理による無人車の移動指令を、対応する無人車に無人車インタフェース２０８を介して送信する。
次に、ステップＳＳ６において、運行制御部２００は、全ての無人車が目的地に到着したかどうかの判断を行う。運行制御が終了した場合には、運行制御部２００は、運行制御の処理を終了する。また、運行制御が終了していない場合には、運行制御部２００は、ステップＳＳ２に戻り、運行制御の処理を続行する。
【０２０８】
上述したステップＳＳ４における経路予約処理を図４９を参照して詳細に説明する。
まず、ステップＳＲ１において、運行制御部２００は、運行制御データメモリ２１０に記憶されている予約発火トランジション列を空にする。
【０２０９】
次に、ステップＳＲ２において、運行制御部２００は、経路予約の対象となっている無人車の運行制御データメモリ２１０に記憶されている未発火トランジション系列から先頭のトランジションＴi-jを参照する。
【０２１０】
次に、ステップＳＲ３において、ステップＳＲ２で参照したトランジションＴi-jが予約発火可能な場合、運行制御部２００は、対応する無人車の予約発火処理を行い、予約発火したトランジションＴi-jを運行制御データメモリ２１０に記憶されている予約発火トランジション系列に加える。そして、運行制御部２００は、運行制御データメモリ２１０に記憶されている未発火トランジション系列から除去した後、ステップＳＲ４の処理に進む。
また、ステップＳＲ２で参照したトランジションＴi-jが予約発火不可能な場合、運行制御部２００は、ステップＳＲ５の処理へ進む。
【０２１１】
ここで、予約発火可能条件について詳細に説明を行う。トランジションＴi-jは以下に示す▲１▼、▲２▼および▲３▼の条件を満たす場合に、運行制御部２００は、予約発火可能であるとする。
【０２１２】
▲１▼トランジションＴi-jに対応する全ての入力プレースが、運行制御部２００により検索され、ノードプレースまたは移動プレースに、黒トークンまたは白トークンがあり、かつ全ての予約プレースに黒トークンがあることが確認された場合。
【０２１３】
▲２▼運行制御部２００により、トランジションＴi-jに対応する出力プレースに黒トークンおよび白トークンのどちらも確認されない場合。
【０２１４】
▲３▼運行制御部２００により、運行制御データメモリ２１０に記憶されているノードｊの予約シーケンスの先頭に、経路予約対象の無人車がセットされていることが確認された場合。
【０２１５】
次に、予約発火処理についての説明を行う。トランジションＴi-jの予約発火は、以下に示す▲１▼、▲２▼の順に行われる。
▲１▼運行制御部２００により、トランジションＴi-jの入力プレースの全ての予約プレースから黒トークンが取り除かれる。
▲２▼運行制御部２００により、トランジションＴi-jの出力プレースのノードプレースまたは移動プレースに白トークンが置かれる。
【０２１６】
また、ノードで停止中の無人車が運行制御部２００により、移動指令を通知された場合、またはノード到着情報を運行制御部２００に通知した無人車の予約発火系列にトランジションが有る場合、運行制御部２００は、上記予約発火系列の出発トランジションが移動発火可能なとき、運行制御データメモリ２１０に記憶されている予約発火系列から取り出し移動発火させる。
【０２１７】
ここで、出発トランジションＤi-jの移動発火条件は、以下に示す▲１▼および▲２▼の条件を満たす場合である。
▲１▼運行制御部２００により、出発トランジションＤi-jの入力プレースであるノードプレースｎiまたは移動プレースｍi-jに黒トークンまたは白トークンが確認された場合。
▲２▼運行制御部２００により、出発トランジションＤi-jの入力プレースに含まれる全ての予約プレースに黒トークンが確認されない場合。
【０２１８】
また、ここで処理される出発トランジションＤi-jの移動発火処理は、以下に示す▲１▼および▲２▼の処理である。
▲１▼運行制御部２００は、出発トランジションＤi-jに対応する入力プレースであるノードプレースから黒トークンを除去する。
▲２▼運行制御部２００は、出発トランジションＤi-jに対応する出力プレースの移動プレースから白トークンを除去し、かつ移動プレースに黒トークンをセットする。
【０２１９】
次に、ステップＳＲ４において、対応する無人車の予約したノード列に示された距離の積算値が、あらかじめ設定された距離の値を超えた場合、または目的地への予約発火処理が行われた場合、運行制御部２００は、ステップＳＲ５の処理へ進む。また、運行制御部２００は、上述した場合以外のときステップＳＲ１へ戻り処理を実行する。
【０２２０】
次に、ステップＳＲ５において、運行制御部２００は、運行制御データメモリ２１０に記憶されている予約発火トランジション列から予約ノード列を作成し、運行制御データメモリ２１０に記憶させる。そして、運行制御部２００は、予約発火トランジション列を運行制御データメモリ２１０に記憶されている予約発火系列に加える。また、運行制御データメモリ２１０に予約ノード列が記憶されていない場合、運行制御部２００は経路予約処理を終了する。
【０２２１】
次に、ステップＳＲ６において、運行制御データメモリ２１０に対応する無人車の予約ノード列が記憶されている場合、運行制御部２００は予約ノード列を運行制御データメモリ２１０に記憶させた後、経路予約処理を終了する。
【０２２２】
全体の動作例４：
たとえば、動作例として図５０（ａ）に示すノード数が「８」の走行路に、無人車が３台走行する場合を考える。無人車は、おのおの無人車＃１、無人車＃２および無人車＃３の３台とする。無人車＃１、無人車＃２および無人車＃３は、出発点から目標点まで移動し、目標点で所定の動作を行うものとする。図５０（ｂ）に示す出発点（出発ノード）および目標点（目標ノード）を基に、図３９に例示された運行計画によって、動作計画部２０４は、図５０（ｂ）に示す経路を求め、計画結果格納メモリ２０６に記憶させる。運行制御部２００は、計画結果格納メモリ２０４から運行計画のデータを取得する。
【０２２３】
この経路において、無人車＃１と無人車＃２とは、同一のノード４で作業を行うため、先にノード４に到着する無人車＃１は、作業終了後にノード８へ退避し、無人車＃２は、無人車＃１がノード４から退避した後、ノード４において所定の作業を行う計画となっている。また、ノード２における作業後、無人車＃２がノード７からノード３へ移動するため、無人車＃３と無人車＃２とは干渉するので、無人車＃３は、ノード１へ退避する計画となっている。
【０２２４】
したがって、無人車＃１の最初の目標点は、ノード４であり、ノード４における作業後、無人車＃１の次の目標点は、ノード８となる。また、無人車＃３の最初の目標点は、ノード２であり、ノード２における作業後、無人車＃３の次の目標点は、ノード１となる。
また、運行制御部２００は、計画結果格納メモリ２０６から運行計画を入力すると同時に、図５１に示すノード予約表を入力する。
【０２２５】
まず、各無人車の図５０（ａ）に示す運行の初期状態を図５２（ａ）に示す。図５２（ａ）は、図４１のペトリネット作成部１０９で作成されるペトリネットモデルである。図５２を参照して、運行の初期状態を説明する。
図５０（ａ）が示すように無人車＃１がノード２を占有し、また、無人車＃２がノード６を占有し、さらに、無人車＃３がノード１を占有していることにより、図５２（ａ）に示されるように、ノードプレースｎ2、ノードプレースｎ6およびノードプレースｎ1に黒トークンは置かれている。
【０２２６】
また、予約プレースｒ2、予約プレースｒ6および予約プレースｒ1には、おのおの対応するノードプレースに無人車がいる。そのため、ノード２およびノード３が、また、ノード５およびノード６がそれぞれ干渉関係にあり、予約プレースｒ3と予約プレースｒ5とには、トークンが存在しない。また、他の予約プレースｒ2、予約プレースｒ7および予約プレースｒ8は、予約可能な状態にあるので黒トークンが置かれている・
【０２２７】
そして、図５０（ｂ）に示す経路に従って、各無人車毎の未発火トランジション系列が図５２（ｂ）に示す配列で運行制御部２００により作成される。たとえば、無人車＃１をノード２からノード３への移動をさせるために、運行制御部２００は出発トランジションＤ2-3と到着トランジションＡ2-3との発火の必要性を運行経路から抽出し、この抽出した発火の必要性のある各トランジションから未発火トランジション系列を作成する。また、図５２（ａ）に示す初期状態において、運行制御部２００は、経路予約を行っていないので、運行制御データメモリ２１０に記憶されている予約発火系列は空の状態となっている。
【０２２８】
次に、図５０（ｂ）に示す運行の経路に従った、無人車＃１、無人車＃２および無人車＃３が運行制御する過程を説明する。ここで、図４９に示す経路予約処理のフローチャートにおけるステップＳＲ４の予約ノード列の距離は、無人車＃１、無人車＃２および無人車＃３の経路よりも長いものとする。
【０２２９】
まず、無人車＃１に対する最初の経路予約処理を以下に示す▲１▼から▲４▼の順番において行う。
▲１▼図４９に示す経路予約処理フローチャートのステップＳＲ３において、未発火トランジション系列の先頭にある出発トランジションＤ2-3が予約発火可能であるので予約発火され、移動プレースｍ2-3に白トークンが置かれる。
▲２▼次に、出発トランジションＡ2-3が予約発火され、ノードプレースｎ3に白トークンが置かれる。そして、出発トランジションＤ3-4が予約発火され、予約プレースｒ4から黒トークンが除去され、さらに、移動プレースｍ3-4に白トークンが置かれる。
【０２３０】
▲３▼次に、到着トランジションＡ3-4が予約発火され、同時に、ノードプレースｎ4に白トークンが置かれる。これで、無人車＃１の目的地までの各トランジションが全て予約発火されたことになる。
▲４▼▲１▼から▲３▼の処理により、未発火トランジション系列から、出発トランジションＤ2-3、出発トランジションＡ2-3、出発トランジションＤ3-4および到着トランジションＡ3-4が消去され、予約発火系列に出発トランジションＤ2-3、出発トランジションＡ2-3、出発トランジションＤ3-4および到着トランジションＡ3-4が加えられる。さらに、図４９に示す経路予約処理フローチャートのステップＳｒ6において、無人車＃１の予約ノード列として、｛３、４｝が運行制御データメモリ２１０に記憶され、無人車＃１の経路予約処理が終了する。
【０２３１】
次に、無人車＃２に対する最初の線路予約処理を以下に示す▲１▼から▲２▼の順番において行う。
▲１▼未発火トランジション系列において、出発トランジションＤ6-7および到着トランジションＡ6-7が順に予約発火され、予約プレースｒ7から黒トークンが除去される。そして、移動プレースｍ6-7およびノードプレースｎ7に白トークンが置かれる。
▲２▼未発火トランジション系列における、次の出発トランジションＤ7-3は、予約プレースｒ3に黒トークンがないので、発火可能とはならない。そして、無人車＃２の予約ノード列は、｛７｝となり、運行制御データメモリ２１０に記憶され、無人車＃１の経路予約処理は終了する。
【０２３２】
次に、無人車＃３に対する最初の線路予約処理を以下に示す▲１▼において行う。
▲１▼未発火トランジション系列の先頭にある出発トランジションＤ1-2は、初期状態において、予約発火可能ではないので、無人車＃３の予約ノードは作成されない。
無人車＃１、無人車＃２および無人車＃３の最初の線路予約処理の結果を図５３に示す。図５３（ａ）は、各トークンの動きを示すペトリネットモデルであり、図５３（ｂ）は、最初の線路予約処理後の各無人車の未発火トランジション系列およに予約発火系列を示している。
【０２３３】
これで、停止中の無人車＃１と無人車＃２とについて、移動を開始できる状態として図５３（ｂ）に示す予約発火系列が設定されている。そして、図５３（ａ）のペトリネットモデルにおいて、出発トランジションＤ2-3および出発トランジションＤ6-7は、図５３（ｂ）に示す予約発火系列に従って移動発火される。
【０２３４】
この結果、ノードプレースｎ2およびノードプレースｎ6から、黒トークンが除去される。同時に、移動プレースｍ2-3および移動プレースｍ6-7から白トークンが除去され、移動プレースｍ2-3および移動プレースｍ6-7には、黒トークンが置かれる。
また、移動発火された出発トランジションＤ2-3および出発トランジションＤ6-7は、予約発火系列から消去される。
【０２３５】
そして、図４８に示すステップＳＳ５において、前述した移動発火に対応して運行制御装置２００は、無人車インタフェース２０８を介し、無人車＃１へ、ノード３を経由してノード４まで移動する移動指令を通知する。
また、同様に、前述した移動発火に対応して運行制御装置２００は、無人車インタフェース２０８を介し、無人車＃２へ、ノード７まで移動する移動指令を通知する。
【０２３６】
次に、無人車＃１および無人車＃２は、運行制御部２００から移動指令を通知され、移動を開始する。そして、移動を開始した後、無人車＃１から無人車インタフェースを介し、運行制御部２００へノード３を検出した状態情報として、検出通知が送られてくる。
この時点で、図４８のステップＳＳ３の無人車状態情報の更新において、到着トランジションＡ2-3が移動発火される。
【０２３７】
そして、図４８のステップＳＳ４において、運行制御部２００により経路予約処理が行われる。しかし、新規の予約発火のトランジションはなく、最後に出発トランジションＤ3-4が移動発火される。この出発トランジションＤ3-4が移動発火した時点でのペトリネットモデルの状態を図５４に示す。
【０２３８】
さらに、同様に運行制御部２００から移動指令を通知され、移動を開始した無人車＃２から無人車インタフェース２０８を介して、ノード７の検出通知が運行制御部２００へ送られてくる。そして、図４８のステップＳＳ３の無人車状態情報の更新において、到着トランジションＡ6-7が移動発火される。
次に、図４８のステップＳＳ４において、経路予約処理が開始されるが、新規の予約発火のトランジションはなく、経路予約処理は終了する。
【０２３９】
次に、無人車＃１から無人車インタフェース２０８を介し、ノード４へ到着した到着通知が運行制御部２００に入力され、図４８のステップＳＳ３の無人車状態情報の更新において、到着トランジションＡ3-4が移動発火される。この結果、ノードプレースｎ2およびノードプレースｎ3が解放されるため、予約プレースｒ2および予約プレースｒ3に黒トークンが置かれる。
【０２４０】
そして、図４８のステップＳＳ４の経路予約処理に入り、前述した移動発火において、無人車＃３の出発トランジションＤ1-2および到着トランジションＡ1-2は、予約発火が可能となる。出発トランジションＤ1-2および到着トランジションＡ1-2が、順次予約発火した後、出発トランジションＤ1-2は移動発火される。
【０２４１】
その結果、運行制御部２００は、無人車インタフェースを介して、無人車＃３をノード３に移動させる移動指令を無人車＃３へ通知する。この移動指令に基づき、無人車＃３は移動を開始する。
そして、無人車＃１は、ノード４において、所定の作業を行う。上述した運行制御部２００による運行制御が行われた時点でのペトリネットモデルの状態を図５５（ａ）に示す。図５５（ｂ）の示す予約発火系列から分かるように無人車＃１および無人車＃２は、新規の予約発火のトランジションは持っていない。
【０２４２】
次に、運行制御部２００から移動指令を通知され、移動している無人車＃３から、無人車インタフェース２０８を介して、運行制御部２００へノード２の検出通知が送られてくる。図４８のステップＳＳ３の無人車状態情報の更新において、到着トランジションＡ1-2が移動発火される。同時に、移動プレースｍ1-2にある黒トークンと、ノードプレースｎ2にある白トークンとがそれぞれ除去され、ノードプレースｎ2および予約プレースｒ1に黒トークンが置かれる。
【０２４３】
次に、ノード４で所定の作業を行っていた無人車＃１から、無人車インタフェース２０８を介して作業終了通知が運行制御部２００へ送られてくると、無人車＃１は、無人車＃２の移動のため、退避する必要がある。そこで、無人車＃１の退避のため、出発トランジションＤ4-8および到着トランジションＡ4-8は、予約発火され、そして、出発トランジションＤ4-8は移動発火される。同時に、運行制御部２００は、無人車インタフェース２０８を介して、無人車＃１へノード８へ移動させる移動指令を通知する。
無人車＃１に対して、運行制御部２００からノード８への移動指令が出力されると、到着トランジションＡ4-8が移動発火され、無人車＃１はノード８で待機状態になる
【０２４４】
また、ノード２で所定の作業を行っている無人車＃３から、無人車インタフェース２０８を介し、運行制御部２００へ作業終了通知が入力されると、無人車＃１と無人車＃２とがノード干渉するため、無人車＃３は退避する必要がある。そこで、無人車＃３の退避のため、出発トランジションＤ2-1と、到着トランジションＡ2-1とが予約発火され、そして、出発トランジションＡ2-1は移動発火される。同時に、運行制御部２００は、無人車インタフェース２０８を介して、無人車＃３へノード１へ移動させる移動指令を通知する。
【０２４５】
そして、無人車＃３から無人車インタフェース２０８を介し、運行制御部２００へノード１の検出通知が入力されると、到着トランジションＡ2-1が移動発火され、無人車＃３はノード１で待機状態となる。
その後、図４８に示すステップＳＳ４の経路予約処理において、無人車＃２の目標点までのトランジション系列における出発トランジションＤ7-3、到着トランジションＡ7-3、出発トランジションＤ3-4および到着トランジションＡ3-4が全て予約発火され、出発トランジションＤ3-4の移動発火が行われる。そして、無人車＃２は、ノード３を経由してノード４へ移動する。そして、無人車＃２から無人車インタフェース２０８を介し、運行制御部２００へノード４の検出通知が入力されると、到着トランジションＡ3-4が移動発火され、無人車＃２はノード４で所定の作業を開始する。  以上の処理によって、各無人車は目的ノードへ到達し、与えられた作業を完了することができる。
【０２４６】
以上、本発明の第一実施形態および第二実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【０２４７】
【発明の効果】
請求項１記載の発明によれば、停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を制御する運行管理制御装置において、隣接した前記ノードにおのおの無人車が停止した場合、無人車同士が衝突する距離に隣接した前記ノードの影響を考慮したノード情報を含み、前記走行路に対応し、無人車の走行をシミュレートする走行図を作成する走行図作成手段と、前記走行図のデータを記憶する記憶手段と、各無人車が同一接続路を互いに逆方向走行することがなく、かつ前記ノード情報を満足させる各無人車の走行経路を探索する探索手段と、前記探索手段によって探索された各無人車の走行経路と、前記記憶手段に記憶される前記走行図とに基づいて、各無人車の時間的な移動をシミュレーションし、いずれかの無人車の進行不能を検出した場合に、ノード通過順序変更、迂回経路探索、待避経路探索のいずれかの方法で前記無人車の進行不能を解除する制御手段とを具備してなるため、走行図作成手段によって得られた走行経路に基づいて、制御手段が、それぞれの無人車の時間的な移動をシミュレーションし、その過程で無人車の進行不能を検出した場合には、走行順序変更、迂回経路探索、待避経路探索などを行い通行不能を解除するため、移動が滞ることがない走行経路および走行順序を得ることができ、従って移動効率を向上させることができるという効果が得られる。
【０２４８】
請求項２記載の発明によれば、停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を前記ノードの配列に関する情報に基づいて制御する運行管理制御方法において、前記ノードの配置に関する情報と、おのおのに無人車が停止すると互いに干渉する程度に近接して配置された複数のノードに関する情報とを有するノード情報を記憶手段に記憶させる第１のステップと、各無人車が同一接続路を互いに逆方向走行することがなく、前記ノード情報を満足させる各無人車の走行経路を探索する第２ステップと、前記第２ステップによって得られた走行経路に基づいて各無人車の時間的な移動を調べ、いずれかの無人車の進行不能が検出された場合には既に走行を終了している無人車の経路に退避経路を追加する第３ステップと、前記第３ステップにおいて進行不能が解消できない場合に無人車の走行順序を変更する第４ステップと、前記第４ステップにおいて進行不能が解消できない場合に無人車の経路に迂回経路を追加する第５ステップと、前記第５ステップにおいて進行不能が解消できない場合に無人車の経路に待避経路を追加する第６ステップとを有するため、影響する隣接ノードの情報をも考慮し、無人車の進行不能が検出された場合には、退避経路の追加、走行順序の変更、迂回経路の追加、待避経路の追加の順で進行不能を解除するため、全ての無人車の移動が滞ることがない経路および走行順序を得ることができ、従って、移動効率を向上させることができるという効果が得られる。
【０２４９】
請求項３記載の発明によれば、停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を、前記ノードの配列に関する情報に基づいて制御する運行管理制御装置において、前記ノードの配置に関する情報と、前記無人車の占有する領域の大きさのデータとを有するノード情報に基づいて前記走行路に対応し、無人車の走行をシミュレートする走行図を作成する走行図作成手段と、前記走行図のデータを記憶する記憶手段と、各無人車が同一接続路を互いに逆方向走行することがなく、かつ前記ノード情報を満足させる各無人車の走行経路を探索する探索手段と、前記探索手段によって探索された各無人車の走行経路と、前記記憶手段に記憶される前記走行図とに基づいて、各無人車の時間的な移動をシミュレーションし、いずれかの無人車の進行不能を検出した場合に、ノード通過順序変更、迂回経路探索、待避経路探索のいずれかの方法で前記無人車の進行不能を解除する制御手段とを具備してなるため、走行図作成手段によって得られた走行経路に基づいて、制御手段が、それぞれの無人車の時間的な移動をシミュレーションし、その過程で無人車の進行不能を検出した場合には、走行順序変更、迂回経路探索、待避経路探索などを行い通行不能を解除するため、移動が滞ることがない走行経路および走行順序を得ることができ、従って移動効率を向上させることができるという効果が得られる。
【０２５０】
請求項４記載の発明によれば、停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を走行する複数の無人車の運行を前記ノードの配列に関する情報に基づいて制御する運行管理制御方法において、前記ノードの配置に関する情報と、前記無人車の占有する領域の大きさのデータとを有するノード情報を記憶手段に記憶させる第１のステップと、各無人車が同一接続路を互いに逆方向走行することがなく、前記ノード情報を満足させる各無人車の走行経路を探索する第２ステップと、前記第２ステップによって得られた走行経路に基づいて各無人車の時間的な移動を調べ、いずれかの無人車の進行不能が検出された場合には既に走行を終了している無人車の経路に退避経路を追加する第３ステップと、前記第３ステップにおいて進行不能が解消できない場合に無人車の走行順序を変更する第４ステップと、前記第４ステップにおいて進行不能が解消できない場合に無人車の経路に迂回経路を追加する第５ステップと、
前記第５ステップにおいて進行不能が解消できない場合に無人車の経路に待避経路を追加する第６ステップとを有するため、影響する隣接ノードの情報をも考慮し、無人車の進行不能が検出された場合には、退避経路の追加、走行順序の変更、迂回経路の追加、待避経路の追加の順で進行不能を解除するため、全ての無人車の移動が滞ることがない経路および走行順序を得ることができ、従って、移動効率を向上させることができるという効果が得られる。
【０２５１】
請求項５記載の発明によれば、所定の時刻における前記複数の無人車の確定走行経路および与えられた作業内容を記憶する計画指示記憶手段と、前記各無人車の状態を監視する第１の処理と、与えられた作業を完了した無人車が発生する度に、前記計画指示記憶手段に新たな作業を設定し、前記第１の手段および前記第２の手段を起動して走行経路を探索させる第２の処理と、該探索の結果に基づいて前記各無人車に動作指示を与える第３の処理を並列かつ周期的に行うことで、前記複数の無人車の運行を制御する運行制御手段とを具備してなるため、運行制御手段は周期的に各無人車の状態を監視し、作業を完了した無人車が発生すると、その無人車の計画指示記憶手段に新たな作業を設定する。その後、前記探索手段および前記制御手段は他の無人車の状態を考慮して走行経路探索を行う。従って、全ての無人車の作業完了を待つこと無く、作業が完了した無人車に直ちに新しい作業を与えることができる効果がある。
【図面の簡単な説明】
【図１】  本発明の一実施形態における運行管理制御装置の構成を示すブロック図である。
【図２】  ペトリネット作成部１０９におけるペトリネットモデル作成を示すフローチャートである。
【図３】  経路計画部１０９の経路計画処理を示すフローチャートである。
【図４】  ペトリネットモデル作成の中間段階を示す図である。
【図５】  ペトリネットモデル作成の中間段階を示す図である。
【図６】  ペトリネットモデル作成の中間段階を示す図である。
【図７】  ペトリネットモデル作成の中間段階を示す図である。
【図８】  自己ループ解除前の干渉関係のペトリネットモデルを示す図である。
【図９】  自己ループ解除後の干渉関係のペトリネットモデルを示す図である。
【図１０】  干渉関係の有る場合の走行路に対するペトリネットモデルを示す図である。
【図１１】  走行路１０１におけるコストを示した図である。
【図１２】  経路計画に用いる木を示した図である。
【図１３】  動作計画処理の動作例を示す運行図である。
【図１４】  経路計画部１１１の経路計画処理を示すフローチャートである。
【図１５】  図１３の運行図をモデル化したペトリネット図である。
【図１６】  図１３の運行図をもとにシミュレーションしたペトリネット図である。
【図１７】  図１３の運行図をもとにシミュレーションしたペトリネット図である。
【図１８】  図１３の運行図をもとにシミュレーションしたペトリネット図である。
【図１９】  図１３の運行図をもとにシミュレーションしたペトリネット図である。
【図２０】  図１３の運行図をもとにシミュレーションした結果のペトリネット図である。
【図２１】  動作計画部１１０の退避経路探索処理を示すフローチャートである。
【図２２】  退避経路探索処理の動作例を示す運行図である。
【図２３】  動作計画部１１０のデッドロック把握処理を示すフローチャートである。
【図２４】  デッドロック把握処理の動作例を示す運行図である。
【図２５】  動作計画部１１０の発火順序調整処理を示すフローチャートである。
【図２６】  発火順序調整処理の動作例を示す運行図（ａ）およびノード予約シーケンス（ｂ）である。
【図２７】  動作計画部１１０の迂回経路探索処理を示すフローチャートである。
【図２８】  迂回経路探索処理の動作例を示す運行図である。
【図２９】  動作計画部１１０の待避経路探索処理を示すフローチャートである。
【図３０】  待避経路探索処理の動作例を示す運行図である。
【図３１】  無人搬送システムのシステム構成図である。
【図３２】  動作計画部１１０の動作計画処理（メイン処理）を示すフローチャート▲１▼である。
【図３３】  動作計画処理（メイン処理）を示すフローチャート▲２▼である。
【図３４】  動作計画処理（メイン処理）を示すフローチャート▲３▼である。
【図３５】  運行管理制御装置１０２の動作例１における初期設定（ａ）、基本経路（ｂ）、および最終経路（ｃ）である。
【図３６】  同動作例１における初期経路（ａ）、基本経路（ｂ）、および最終経路（ｃ）を示す運行図である。
【図３７】  同動作例１における運行計画図である。
【図３８】  同動作例２における初期経路（ａ）、基本経路（ｂ）、および最終経路（ｃ）を示す運行図である。
【図３９】  同動作例２における運行計画図である。
【図４０】  運行管理制御装置１０２の動作例２における基本経路（ａ）、および最終経路（ｂ）である。
【図４１】  本発明の第２の実施形態における運行管理制御装置のブロック図である。
【図４２】  計画指示テーブルメモリ２０７の一例を示す説明図である。
【図４３】    運行制御部２００の計画部起動処理を示すフローチャートである。
【図４４】  運行制御部２００の走行指示処理を示すフローチャートである。
【図４５】  経路計画部２０３の経路計画処理を示すフローチャートである。
【図４６】  全体の動作例３における初期設定を示す運行図（ａ）、計画指示テーブルメモリ２０４の内容を示す説明図（ｂ）である。
【図４７】  全体の動作例３における経路確定後の運行図（ａ）、ノード予約シーケンス（ｂ）および確定経路ノードリスト（ｃ）である。
【図４８】  運行制御部２００による運行制御処理を示すフローチャートである。
【図４９】  運行制御部２００による経路予約処理を示すフローチャートである。
【図５０】  動作計画処理の動作例を示す運行図である。
【図５１】  図４４の経路に基づくノード予約表を示した図である。
【図５２】  図４４の経路に基づく運行の初期状態のペトリネットモデルを示す図である。
【図５３】  図４４の経路に基づく運行の経路予約後のペトリネットモデルを示す図である。
【図５４】  無人車＃１のノード３到着直後のペトリネットモデルを示す図である。
【図５５】  無人車＃１のノード４到着直後のペトリネットモデルを示す図である。
【図５６】  従来例における運行管理制御装置のブロック図である。
【図５７】  無人車の占有領域を示す図である。
【図５８】  ノードが接近した走行路を示す図である。
【符号の説明】
１０２、２０２……運行管理制御装置
１０３・・・・・・・・・・…運行制御データメモリ
１０４………………搬送指示データメモリ
１０５………………無人車データメモリ
１０６………………走行路データメモリ
１０７・・・・・・・・・・・・ペトリネットデータメモリ
１０８、２０１・・・・計画部
１０９・・・・・・・・・・・・ペトリネット作成部
１１０、２０４・・・・動作計画部
１１１、２０３・・・・経路計画部
１１２、２０２・・・・経路探索部
２００………………運行制御部
２０５………………搬送実行テーブルメモリ
２０６………………計画結果格納メモリ
２０７・・・・・・・・・・・・計画指示テーブルメモリ
２０８………………無人車インタフェース
【図１】
0003684755.tif 000002
【図２】
0003684755.tif 000003
【図３】
0003684755.tif 000004
【図４】
0003684755.tif 000005
【図５】
0003684755.tif 000006
【図６】
0003684755.tif 000007
【図７】
0003684755.tif 000008
【図８】
0003684755.tif 000009
【図９】
0003684755.tif 000010
【図１０】
0003684755.tif 000011
【図１１】
0003684755.tif 000012
【図１２】
0003684755.tif 000013
【図１３】
0003684755.tif 000014
【図１４】
0003684755.tif 000015
【図１５】
0003684755.tif 000016
【図１６】
0003684755.tif 000017
【図１７】
0003684755.tif 000018
【図１８】
0003684755.tif 000019
【図１９】
0003684755.tif 000020
【図２０】
0003684755.tif 000021
【図２１】
0003684755.tif 000022
【図２２】
0003684755.tif 000023
【図２３】
0003684755.tif 000024
【図２４】
0003684755.tif 000025
【図２５】
0003684755.tif 000026
【図２６】
0003684755.tif 000027
【図２７】
0003684755.tif 000028
【図２８】
0003684755.tif 000029
【図２９】
0003684755.tif 000030
【図３０】
0003684755.tif 000031
【図３１】
0003684755.tif 000032
【図３２】
0003684755.tif 000033
【図３３】
0003684755.tif 000034
【図３４】
0003684755.tif 000035
【図３５】
0003684755.tif 000036
【図３６】
0003684755.tif 000037
【図３７】
0003684755.tif 000038
【図３８】
0003684755.tif 000039
【図３９】
0003684755.tif 000040
【図４０】
0003684755.tif 000041
【図４１】
0003684755.tif 000042
【図４２】
0003684755.tif 000043
【図４３】
0003684755.tif 000044
【図４４】
0003684755.tif 000045
【図４５】
0003684755.tif 000046
【図４６】
0003684755.tif 000047
【図４７】
0003684755.tif 000048
【図４８】
0003684755.tif 000049
【図４９】
0003684755.tif 000050
【図５０】
0003684755.tif 000051
【図５１】
0003684755.tif 000052
【図５２】
0003684755.tif 000053
【図５３】
0003684755.tif 000054
【図５４】
0003684755.tif 000055
【図５５】
0003684755.tif 000056
【図５６】
0003684755.tif 000057
【図５７】
0003684755.tif 000058
【図５８】
0003684755.tif 000059