(57)【特許請求の範囲】
【請求項１】
停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を移動する複数の無人車の運行を計画する無人搬送車制御装置において、
各無人車の現在地の情報を有する着目節点を作成し、該着目節点を所定の探索木の最上位節点とする親節点作成手段と、
各無人車の目的地の情報を有する目標節点を作成する目標節点作成手段と、
前記着目節点と前記目標節点とが一致するか否か判断する一致判断手段と、
前記一致判断手段において前記着目節点と前記目標節点とが不一致の場合には、前記探索木から前記着目節点を親節点として展開済みでない節点を取り出す節点検出手段と、
前記節点検出手段で取り出された節点について、該節点が示す無人車の現在地の位置情報を隣接するノードに変え、新たな現在地集合を有する子節点を作成する子節点作成手段と、
前記子節点作成手段で作成された子節点に登録された無人車のノード番号を調べ、無人車同士が衝突しないか否か判断し、衝突する場合には、前記一致判断手段に着目節点と前記目標節点とが一致するか否かを判断させる衝突判断手段と、
前記衝突判断手段において各無人車が衝突しない場合には、前記子節点作成手段で作成された子節点と同じ節点が既に探索木にあるか否か判断し、該同一となる他の節点が既に探索木にある場合には、前記一致判断手段に着目節点と前記目標節点とが一致するか否かを判断させる既存在手段と、
前記既存在手段において該節点が探索木にない場合には、前記子節点作成手段で作成された子節点を前記節点検出手段で取り出された節点の下位に登録し、該子節点を着目節点とし、前記一致判断手段に着目節点と前記目標節点とが一致するか否かを判断させる登録手段と、
前記一致判断手段において着目節点と目標節点とが一致した場合には、該着目節点から前記最上位節点までを結ぶ節点の列に基づいて、前記走行路における無人車の運行計画を作成する運行計画作成手段と
を具備することを特徴とする無人搬送車制御装置。
【請求項２】
請求項１記載の無人搬送車制御装置において、
前記一致判断手段は、前記目標節点において目的地が設定されていない無人車については、前記着目節点における位置と該目標節点における目的地とが一致すると見なす
ことを特徴とする無人搬送車制御装置。
【請求項３】
請求項１または請求項２のいずれかに記載の無人搬送車制御装置において、
前記運行計画作成手段で作成される運行計画は、各無人車の現在地から目的地までの移動経路を示す情報、および、各ノードに停車する無人車の停車の順番を示す情報からなる
ことを特徴とする無人搬送車制御装置。
【請求項４】
停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を移動する複数の無人車の運行を計画する無人搬送車制御装置に用いられる無人搬送車制御方法において、
運行計画作成手段が各無人車の現在地の情報を有する着目節点を作成し、該着目節点を所定の探索木の最上位節点とする親節点作成過程と、
各無人車の目的地の情報を有する目標節点を作成する目標節点作成過程と、
前記着目節点と前記目標節点とが一致するか否か判断する一致判断過程と、
前記一致判断過程において前記着目節点と前記目標節点とが不一致の場合には、前記探索木から前記着目節点を親節点として展開済みでない節点を取り出す節点検出過程と、
前記節点検出過程で取り出された節点について、該節点が示す無人車の現在地の位置情報を隣接するノードに変え、新たな現在地集合を有する子節点を作成する子節点作成過程と、
前記子節点作成過程で作成された子節点に登録された無人車のノード番号を調べ、無人車同士が衝突しないか否か判断し、衝突する場合には、前記一致判断過程により着目節点と前記目標節点とが一致するか否かを判断させる衝突判断過程と、
前記衝突判断過程において各無人車が衝突しない場合には、前記子節点作成過程で作成された子節点と同じ節点が既に探索木にあるか否か判断し、該同一となる他の節点が既に探索木にある場合には、前記一致判断過程により着目節点と前記目標節点とが一致するか否かを判断させる既存在過程と、
前記既存在過程において該節点が探索木にない場合には、前記子節点作成過程で作成された子節点を前記節点検出過程で取り出された節点の下位に登録し、該子節点を着目節点とし、前記一致判断過程により着目節点と前記目標節点とが一致するか否かを判断させる登録過程と、
前記一致判断過程において着目節点と目標節点とが一致した場合には、該着目節点から前記最上位節点までを結ぶ節点の列に基づいて、前記走行路における無人車の運行計画を作成する運行計画作成過程と
を具備することを特徴とする無人搬送車制御方法。
【請求項５】
請求項４記載の無人搬送車制御方法において、
前記一致判断過程で、一致判断手段が、前記目標節点において目的地が設定されていない無人車については、前記着目節点における位置と該目標節点における目的地とが一致すると見なす
ことを特徴とする無人搬送車制御方法。
【請求項６】
請求項４または請求項５のいずれかに記載の無人搬送車制御方法において、
前記運行計画作成手段が作成する運行計画が、各無人車の現在地から目的地までの移動経路を示す情報、および、各ノードに停車する無人車の停車の順番を示す情報からなる
ことを特徴とする無人搬送車制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工場等の無人自動搬送システムにおいて、無人搬送車の運行を管理し、搬送経路の決定等を行う無人搬送車制御装置およびその方法に関する。
【０００２】
【従来の技術】
工場などの自動搬送システムでは、限られたスペースで生産量をアップさせるため、狭い走行路に複数台の無人搬送車（以下、「無人車」と称する）を投入することがある。
【０００３】
無人車を現在地から目的地へ進めるための経路を求めるのに、最短経路探索手法がよく使用される。この場合、最短の指標を何にするかにより様々なバリエーションがあるが、移動距離を指標とする場合と、移動時間を指標とする場合が代表的である。移動距離を指標とする場合は、ノード間の距離の総和が最小となる経路が選択され、移動時間を指標とする場合は、ノード間の移動時間の総和が最小となる経路が選択される。
ノード間の走行方向が一方向に決まっている場合は、上述した最短経路探索手法が妥当な手法であるが、図２１に示すようにノード間を両方向へ移動できる走行路の場合、複数の無人車を効率よく動かそうとすると、出願人の先の出願、すなわち、特願平０６−２４１６８５（特開平０７−２１９６３３：以下、「先の出願」と称する）で述べたような工夫が必要となる。
【０００４】
ここで、図２１は、細長い走行路であり、該走行路の両わきに所定の装置や自動倉庫などが配置されているとする。黒丸は、無人車が停止できる点（ノード）であり、線は、無人車が走行できる区間を表している。また、無人車が最短経路で目的地まで行けるように、また、走行路の閉鎖に柔軟に対応できるように、走行路は、全て両方向へ走行可能とする。すなわち、図２１において、左右に伸びる走行路の場合には、左からも右からも走行でき、上下に伸びる走行路の場合には、上からも下からも走行できるものとする。
【０００５】
なお、ノード３とノード４、ノード４とノード５、ノード５とノード６は、ノード同士が互いに接近しており、両ノードに同時に無人車を置くことができない（置くと無人車同士が衝突する）ような干渉関係にあるとする。
そして、このような走行路において、ノード１に無人車＃１が、ノード２に無人車＃２が止まっており、無人車＃１はノード１からノード２へ、無人車＃２はノード２からノード１へ進もうとしている状況を考える。
【０００６】
このような場合、通常の最短経路探索手法によると、無人車＃１の経路は、ノード１→ノード２となり、無人車＃２の経路は、ノード２→ノード１となるため、そのままではどちらも移動することができない。このため、どちらかの無人車の移動経路を変更する必要がある。
これに対して、上述した先の出願の方法では、例えば、無人車＃２の移動経路（ノード２→ノード１）を一時的に禁止した状態で最短経路探索を行い、該無人車＃２の別の移動経路（ノード２→ノード３→ノード１２→ノード１１→ノード１）を得る。これにより、無人車＃１と無人車＃２が反時計回りの経路を形成し、どちらの無人車も目的地まで進むことができる。
また、同様に、無人車＃１の移動経路（ノード１→ノード２）を一時的に禁止すると、該無人車＃１の別の移動経路（ノード１→ノード１１→ノード１２→ノード３→ノード２）が得られ、時計回りの経路が形成される。
【０００７】
【発明が解決しようとする課題】
上述した先の出願の方法は、最短経路探索手法の枠組みの中で、走行経路を一時的に限定することにより、複数の無人車同士が干渉しない経路を求めるものであるが、この方法にも、以下に述べるような課題が存在する。
【０００８】
§１．課題１
走行路が図２２に示すような場合を考える。
図２２は、図２１に示す走行路の左半分を示すものである。図２２において、ノード１とノード１１との間、および、ノード１１とノード１２との間にある×印は、ノード１１上にある装置の保守等により、ノード１１が閉鎖され、×印のある区間は走行できないことを示している。上述した先の出願の方法では、図２２に示すように×印に示す区間が閉鎖されていると、迂回経路が存在せず、経路を得ることができない。
【０００９】
このような場合の解決策としては、例えば、無人車＃２を一旦ノード５までさがらせ（ノード４までだと、無人車＃１がノード３へ来たときに、両無人車が衝突する）、次に、無人車＃１をノード１２へ進めた後、無人車＃２が目的地（ノード１）まで進み、最後に、無人車＃１が目的地（ノード２）へ向かうことが考えられる。
【００１０】
ところが、このような経路（無人車＃２を一旦適当なノードまでさがらせ、邪魔な無人車＃１を通してから、目的地まで向かわせる経路）を見つけだすことは、上述した先の出願の方法に基づく限り困難である。
なぜならば、無人車＃２の経路（ノード２→ノード３→ノード４→ノード５→ノード４→ノード３→ノード２→ノード１）には、最短経路探索手法で除去されるループ（ノード２→ノード３→ノード４→ノード５→ノード４→ノード３→ノード２）が含まれているからである。
【００１１】
§２．課題２
次に、図２３に示す状況を考える。
この図において、無人車＃１はノード１で、また、無人車＃２はノード１１で、それぞれ移載を行うべく、矢印に示す経路を走行中である。また、無人車＃３はノード９で、また、無人車＃４はノード１９で、それぞれ移載中である。
この状況において、無人車＃３と無人車＃４の移載が終了し、無人車＃３はノード１へ、また、無人車＃４はノード１１へ、それぞれ移動し、該ノードで移載しなくてはならなくなったとする。
このときの各無人車の状況をまとめたのが、図２４である。
【００１２】
このような場合、無人車＃１と無人車＃２の経路を確定（すなわち、経路の変更は不可、但し、経路の追加は可能）した条件（図１６参照）の下で、無人車＃３をノード１へ、無人車＃４をノード１１へ進める計画を立てなくてはならない。
これに対して、上述した先の出願の方法を適用すると、経路計画部において、無人車＃３に対しては、ノード９→ノード８→ノード７→ノード６→ノード５→ノード４→ノード３→ノード２→ノード１という経路が、また、無人車＃４に対しては、ノード１９→ノード１８→ノード１７→ノード１６→ノード１５→ノード１４→ノード１３→ノード１２→ノード１１という経路が、それぞれ得られ、動作計画部は、これに基づいて、動作を計画する。
しかし、この場合、無人車＃３と無人車＃４をそれぞれの目標点まで進めるためには、無人車＃１と無人車＃２を、それぞれの目標点（ノード１とノード１１）で移載が済んだ後、無人車＃３と無人車＃４の邪魔にならない場所へ退避させる必要がある。
【００１３】
ところが、無人車＃１を、無人車＃３の邪魔にならない場所へ退避させるためには、ノード１→ノード１１の方向へ移動させなくてはならず、無人車＃２を、無人車＃４の邪魔にならない場所へ退避させるためには、ノード１１→ノード１の方向へ移動させなくてはならないため、無人車＃１と無人車＃２とが競合し合って、両無人車を共に退避させる動作の計画は立てられない。
すなわち、動作計画部による動作計画は失敗となり、運行制御データメモリは更新されない。従って、新規経路は求まらないため、無人車＃３と無人車＃４は共に出発点から動くことができない。このように動作計画が失敗する状況は、無人車＃１あるいは無人車＃２のどちらかが目標点に到着する（すなわち、確定経路がなくなる）まで続く。
【００１４】
図１６に示すような各無人車の目標点や確定経路によっては、先の出願で述べた動作計画は失敗する場合がある。
この場合、いずれかの無人車において確定経路がなくなるといった状況変化が起こるまで、経路の確定していない無人車は走行に移れない。このことは、搬送システム全体としての搬送能力の低下を招く。
【００１５】
§３．目的
この発明は、このような背景の下になされたもので、走行路上の区間の閉鎖等により最短経路探索手法では経路の得られない場合でも、適切な経路を見つけだすことができる無人搬送車制御装置および方法を提供することを目的とする。
また、この発明は、投入された無人車の台数が多く、全ての無人車について計画が立てられない場合であっても、できるだけ多くの無人車について新規計画を立て、搬送能力の向上を図ることのできる無人搬送車制御装置および方法を提供することを目的とする。
【００１６】
【課題を解決するための手段】
請求項１記載の発明は、停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を移動する複数の無人車の運行を計画する無人搬送車制御装置において、各無人車の現在地の情報を有する着目節点を作成し、該着目節点を所定の探索木の最上位節点とする親節点作成手段と、各無人車の目的地の情報を有する目標節点を作成する目標節点作成手段と、前記着目節点と前記目標節点とが一致するか否か判断する一致判断手段と、前記一致判断手段において前記着目節点と前記目標節点とが不一致の場合には、前記探索木から前記着目節点を親節点として展開済みでない節点を取り出す節点検出手段と、前記節点検出手段で取り出された節点について、該節点が示す無人車の現在地の位置情報を隣接するノードに変え、新たな現在地集合を有する子節点を作成する子節点作成手段と、前記子節点作成手段で作成された子節点に登録された無人車のノード番号を調べ、無人車同士が衝突しないか否か判断し、衝突する場合には、前記一致判断手段に着目節点と前記目標節点とが一致するか否かを判断させる衝突判断手段と、前記衝突判断手段において各無人車が衝突しない場合には、前記子節点作成手段で作成された子節点と同じ節点が既に探索木にあるか否か判断し、該同一となる他の節点が既に探索木にある場合には、前記一致判断手段に着目節点と前記目標節点とが一致するか否かを判断させる既存在手段と、前記既存在手段において該節点が探索木にない場合には、前記子節点作成手段で作成された子節点を前記節点検出手段で取り出された節点の下位に登録し、該子節点を着目節点とし、前記一致判断手段に着目節点と前記目標節点とが一致するか否かを判断させる登録手段と、前記一致判断手段において着目節点と目標節点とが一致した場合には、該着目節点から前記最上位節点までを結ぶ節点の列に基づいて、前記走行路における無人車の運行計画を作成する運行計画作成手段とを具備することを特徴とする。
請求項２記載の発明は、請求項１記載の無人搬送車制御装置において、前記一致判断手段は、前記目標節点において目的地が設定されていない無人車については、前記着目節点における位置と該目標節点における目的地とが一致すると見なすことを特徴とする。
請求項３記載の発明は、請求項１または請求項２のいずれかに記載の無人搬送車制御装置において、前記運行計画作成手段で作成される運行計画は、各無人車の現在地から目的地までの移動経路を示す情報、および、各ノードに停車する無人車の停車の順番を示す情報からなることを特徴とする。
請求項４記載の発明は、停止位置である複数のノードと、前記ノード間を接続する接続路からなる走行路を移動する複数の無人車の運行を計画する無人搬送車制御装置に用いられる無人搬送車制御方法において、運行計画作成手段が各無人車の現在地の情報を有する着目節点を作成し、該着目節点を所定の探索木の最上位節点とする親節点作成過程と、各無人車の目的地の情報を有する目標節点を作成する目標節点作成過程と、前記着目節点と前記目標節点とが一致するか否か判断する一致判断過程と、前記一致判断過程において前記着目節点と前記目標節点とが不一致の場合には、前記探索木から前記着目節点を親節点として展開済みでない節点を取り出す節点検出過程と、前記節点検出過程で取り出された節点について、該節点が示す無人車の現在地の位置情報を隣接するノードに変え、新たな現在地集合を有する子節点を作成する子節点作成過程と、前記子節点作成過程で作成された子節点に登録された無人車のノード番号を調べ、無人車同士が衝突しないか否か判断し、衝突する場合には、前記一致判断過程により着目節点と前記目標節点とが一致するか否かを判断させる衝突判断過程と、
前記衝突判断過程において各無人車が衝突しない場合には、前記子節点作成過程で作成された子節点と同じ節点が既に探索木にあるか否か判断し、該同一となる他の節点が既に探索木にある場合には、前記一致判断過程により着目節点と前記目標節点とが一致するか否かを判断させる既存在過程と、前記既存在過程において該節点が探索木にない場合には、前記子節点作成過程で作成された子節点を前記節点検出過程で取り出された節点の下位に登録し、該子節点を着目節点とし、前記一致判断過程により着目節点と前記目標節点とが一致するか否かを判断させる登録過程と、前記一致判断過程において着目節点と目標節点とが一致した場合には、該着目節点から前記最上位節点までを結ぶ節点の列に基づいて、前記走行路における無人車の運行計画を作成する運行計画作成過程ととを具備することを特徴とする。
請求項５記載の発明は、請求項４記載の無人搬送車制御方法において、前記一致判断過程で、一致判断手段が、前記一致判断過程は、前記目標節点において目的地が設定されていない無人車については、前記着目節点における位置と該目標節点における目的地とが一致すると見なすことを特徴とする。
請求項６記載の発明は、請求項４または請求項５のいずれかに記載の無人搬送車制御方法において、前記運行計画作成手段が作成する運行計画が、前記運行計画作成過程で作成される運行計画は、各無人車の現在地から目的地までの移動経路を示す情報、および、各ノードに停車する無人車の停車の順番を示す情報からなることを特徴とする。
【００１７】
【発明の実施の形態】
§１．第１実施形態
以下、図面を参照して、この発明の第１実施形態について説明する。
（１）構成および動作
図１は、この発明の第１実施形態による無人搬送車制御装置の構成例を示すブロック図である。この図に示す装置は、先の出願（特開平０７−２１９６３３）の図２８に示す計画部２０７が経路決定部２１３に置き換わったものである。
この図において、運行制御部２００は、ＣＰＵ（中央処理装置）、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）等からなる処理装置である。
経路決定部２１３は、ＣＰＵ等により構成され、各無人車の最適な走行経路および動作順序を決定する。運行制御部２００は、経路決定部２１３を起動し、該経路決定部２１３が求めた各無人車の走行経路に基づいて無人車の運行制御を行う。
【００１８】
搬送実行テーブルメモリ２０１は、本装置の制御対象となる無人搬送システムに与えられる仕事に関するデータをプールしておく記憶領域である。
計画結果格納メモリ２０３は、経路決定部２１３において計画された各無人車の確定経路、及び、走行路上において無人搬送車が停止可能な各ノードに関する予約シーケンス等を記憶する領域である。運行制御部２００は、計画結果格納メモリ２０３内のデータをチェック・参照し、各無人車への走行指示を出力する。
【００１９】
計画指示テーブルメモリ２０４は、各無人車の目的地やそこでの作業内容を記憶している。経路決定部２１３は、計画指示テーブルメモリ２０４のデータに基づいて、経路計画および動作計画を立てる。
無人車データメモリ２０５は、各無人車の位置などの情報を記憶する。運行制御部２００は、無人車インタフェース２１１から各無人車の状態を逐次受信し、その内容を元に無人車データメモリ２０５の内容を更新する。
経路決定部２１３による計画動作が終了し、そのデータが計画結果格納メモリ２０３へ格納されると、運行制御部２００はその内容を調べて、計画が成功していれば、運行制御データメモリ２０６へ当該データをコピーする。
【００２０】
走行路データメモリ２１２は、ノードや区間の情報、および、区間の閉鎖など現在の走行路の状況を記憶している。
運行制御部２００は、搬送実行テーブルメモリ２０１および無人車データメモリ２０５を参照して、未割当の仕事の存在および仕事を持たない無人車の存在を確認した場合、その参照データを元に、計画指示テーブルメモリ２０４に経路確定レベルや目的ノード等をセットし、経路決定部２１３を起動する。
【００２１】
次に、上記構成による無人搬送車制御装置の動作を説明する。
図２は、本実施形態による経路決定部２１３の動作の一例を示すフローチャートである。
ステップＳ１では、まず始めに、無人車データメモリ２０５および計画指示データメモリ２０４を参照して、経路を決定すべき無人車およびその現在地／目的値を求める。
次に、経路を決定すべき各無人車の現在地を並べたラベルを持つ親節点を作成する。ここで、上記親節点のラベルは、一例として、
（無人車＃１の現在地，無人車＃２の現在地，…，無人車＃ｎの現在地）
となる。但し、このラベルにおいて、各無人車の現在地は、必ずしも、無人車の番号の小さい順番に並べる必要はない。
親節点の作成後、この親節点を探索木に登録する。
【００２２】
次に、各無人車の目的地を並べたラベルを持つ目標節点を作成する。ここで、上記目標節点のラベルは、一例として、
（無人車＃１の目的地，無人車＃２の目的地，…，無人車＃ｎの目的地）
となる。但し、このラベルにおいて、各無人車の目的地の並び順は、親節点のラベルにおける各無人車の現在地の並び順と同じ順番でなければならない（以後作成する節点も同様）。また、このラベルにおいて、仕事が与えられていない等により、目的地のない無人車については、そのことを示す符号（一例として、”＊”とする）が、目的地の代わりにセットされる。
最後に、親節点を着目節点とし、ステップＳ２へ進む。
【００２３】
ステップＳ２では、着目節点のラベルと目標節点のラベルとを比較し、両ラベルが一致するか否かを判断する。
すなわち、このステップでは、着目節点のラベルに記載された現在地と、目標節点のラベルに記載された目的地とを、各無人車毎に比較し、該現在地と該目的地とが全ての無人車について等しいならば、両ラベルは一致すると判断する。
但し、目的地のない無人車（すなわち、目的地が上記符号＊である無人車）に関しては、該無人車の現在地にかかわらず、該無人車の現在地と目的地とは等しいと見なす。
この判断結果が「ＮＯ」の場合、すなわち、着目節点のラベルと目標節点のラベルとが一致しない場合には、ステップＳ３へ進む。
【００２４】
ステップＳ３では、探索木を調べて、最初に検出された展開済みでない節点を取り出し、ステップＳ４へ進む。ここで、「展開済みでない節点」とは、次に述べるステップＳ４の方法で子節点を作成することが可能な節点を指す。
【００２５】
ステップＳ４では、ステップＳ３で取り出した節点について、いずれか一台の無人車の位置を隣のノード（但し、該位置から隣のノードへ移動できることが必要）に変えたラベルを、移動可能な全ての無人車の全てのノードについて作成し、各ラベルを有する子節点をそれぞれ作成し、ステップＳ５へ進む。
【００２６】
ステップＳ５では、ステップＳ４で作成された各子節点について、該子節点のラベルに記載された各無人車の位置を調べ、無人車同士が干渉関係にないか否かを判断する。そして、この判断結果が「ＹＥＳ」の子節点、すなわち、無人車同士が干渉関係にない節点のみを取り出し、ステップＳ６へ進む。
【００２７】
ステップＳ６では、ステップＳ５を通過した子節点について、該子節点のラベルと同じラベルを有する節点が既に探索木に登録されているか否かを判断する。そして、この判断結果が「ＮＯ」の子節点、すなわち、探索木に登録されていない節点のみを取り出し、ステップＳ７へ進む。
【００２８】
ステップＳ７では、ステップＳ６を通過した子節点およびその親節点（すなわち、展開した節点）を、探索木の最後に加える。なお、当然のことながら、探索木の最初の節点（最上位の節点）には、親節点は存在しない。そして、探索木に加えた子節点を着目節点とした後、ステップＳ２へ進む。
【００２９】
一方、ステップＳ５の判断結果が「ＮＯ」の場合、すなわち、ステップＳ４で作成された子節点が可能な状態でない（無人車同士が衝突する）場合には、ステップＳ２へ進む。
また、ステップＳ６の判断結果が「ＹＥＳ」の場合、すなわち、ステップＳ４で作成された子節点のラベルと同じラベルを有する節点が既に探索木にある場合にも、ステップＳ２へ進む。
【００３０】
一方、ステップＳ２の判断結果が「ＹＥＳ」の場合、すなわち、着目節点のラベルと目標節点のラベルとが一致する場合には、ステップＳ８へ進む。
ステップＳ８では、まず、目標節点と一致した子節点を起点として、該起点から上位方向へ、親節点が存在する限り、探索木を順次遡っていき、その過程で通過する各節点のラベルを、通過順とは逆の順番で並べる。
このラベルの並び（ラベル列）は、一例として、以下のようになる。
ラベル１    ：（ノード1#1   ，ノード1#2   ，…，ノード1#n ）
：
ラベルｋ    ：（ノードk#1   ，ノードk#2   ，…，ノードk#n ）
ラベルｋ＋１：（ノードk+1#1 ，ノードk+1#2 ，…，ノードk+1#n ）
：
ラベルｍ    ：（ノードm#1   ，ノードm#2   ，…，ノードm#n ）
上記ラベル列において、ラベル１は、各無人車の現在地を並べたラベル（探索木の最上位の節点のラベル）であり、ラベルｍは、目標節点のラベルとなる。
【００３１】
次に、上記ラベル列に基づいて、図８に示すような無人車経路表、および、図９に示すようなノード予約表を求める。
この無人車経路表およびノード予約表の求め方の一例を以下に示す。
▲１▼  無人車経路表における各無人車の経路欄、および、ノード予約表における各ノードの予約シーケンス欄を空欄にする（初期化）。また、現在の処理対象となるラベル（以下、「処理対象ラベル」と称する）として、上記ラベル列のうちのラベル１をセットする。
▲２▼  無人車経路表について、処理対象ラベルにおける各無人車のノードを、対応する無人車の経路欄にセットする。また、ノード予約表について、処理対象ラベルにおける各ノードの予約シーケンス欄に、対応する無人車の番号をセットする。
▲３▼  処理対象ラベルがラベルｍである場合（すなわち、最終ラベルである場合）には、処理を終了する。それ以外の場合には、▲４▼へ進む。
▲４▼  処理対象ラベルと、該処理対象ラベルの次のラベルとを比較し、該次ラベルにおいて、処理対象ラベルと異なるノードおよびその無人車を検出する。無人車経路表について、該検出されたノードを、対応する無人車の経路欄に追加する。このときの追加表記は、「→（ノード番号）」となる。また、ノード予約表について、該検出されたノードの予約シーケンス欄に、対応する無人車の番号を追加する。
▲５▼  処理対象ラベルを上記次ラベルに更新して、▲３▼へ戻る。
以上で、上記構成による無人搬送車制御装置の動作説明を終了する。
【００３２】
（２）具体例１
次に、具体的な例を挙げて、本装置の動作を以下に説明する。
本具体例では、図３に示すような走行路において、ノード１とノード１１との間、および、ノード１１とノード１２の間が閉鎖されているものとする。
また、本具体例において、無人車の台数は２台（無人車＃１および無人車＃２）であり、各無人車の現在地および目的地は、図４に示す通りであるとする。
【００３３】
次に、図２のフローチャートに基づいて、経路決定部２１３の動作を説明する。
図５は、本具体例で作成される探索木の一例を示す説明図である。
まず、無人車＃１および無人車＃２の現在地に基づいて、ラベル（１，２）を有する親節点を作成する。図５では、一番最初に作成された節点であることを明示するため、１：（１，２）と表記している。
また、無人車＃１および無人車＃２の目的地に基づいて、ラベル（２，１）を有する目標節点を作成する。
【００３４】
次に、節点１のラベル（１，２）と目標節点のラベル（２，１）は一致しないので、この節点に対する子節点を作成する。
ここで、節点１：（１，２）について、無人車＃１の位置を隣のノード２に移すことにより作られる子節点は、そのラベルが（２，２）であり、無人車＃１と無人車＃２が同じノード（ノード２）上で衝突するので、可能な状態ではない。
また、無人車＃２について考えると、無人車＃２を隣のノード１に移す場合と、同じく隣のノード３に移す場合とが考えられる。
無人車＃２を隣のノード１に移すことにより作られる子節点は、そのラベルが（１，１）であり、無人車＃１と無人車＃２が同じノード（ノード１）上で衝突するので、可能な状態ではない。
一方、無人車＃２を隣のノード３に移すことにより作られる子節点は、そのラベルが（１，３）である。この子節点は、無人車＃１と無人車＃２が衝突せず、かつ、現在の探索木には存在しない。故に、この子節点を２：（１，３）として探索木に加える。この子節点２：（１，３）の親節点は１：（１，２）なので、図５では、両節点間を線で結んでいる。
以上の処理により、節点１：（１，２）から展開できる子節点は全て調べたので、該節点１：（１，２）は展開済みとなる。
【００３５】
次に、節点２のラベル（１，３）と目標節点のラベル（２，１）は一致しないので、この節点に対する子節点を作成する。
節点２：（１，３）に対応する無人車の状態を図６に示す。この状態に対して、無人車＃１をノード２に移すことを意味する子節点３：（２，３）と、無人車＃２をノード４に移すことを意味する子節点４：（１，４）と、無人車＃２をノード１２に移すことを意味する子節点５：（１，１２）が作られ、それぞれ探索木に加えられる。
なお、図６に示す状態では、無人車＃２をノード２へ移すことを意味する節点（１，２）も可能な状態であるが、該節点（１，２）は探索木の節点１：（１，２）と同じものであるので、展開済みとして、探索木には加えられない。
【００３６】
以下、経路決定部は、同様の手順にて、節点を次々に展開していく。ここでは、その途中の一例として、図５に示す節点６：（２，４）に対する子節点を作成する場合を考える。
節点６：（２，４）が示す状態では、無人車＃１がノード２にあり、無人車＃２がノード４にあるので、該節点６：（２，４）から展開する節点として、（１，４），（３，４），（２，３），（２，５）が考えられる。このうち、（１，４）と（２，３）は、節点４：（１，４）および節点３：（２，３）として、既に探索木に登録されているので、探索木には加えられない。また、（３，４）については、上述したように、ノード３とノード４は干渉関係にある（同時に無人車を置くことはできない）ので、可能な状態でないと判断され、探索木には登録されない。従って、（２，５）のみが、節点１０：（２，５）として、節点６：（２，４）の下に加えられる。
【００３７】
以下、経路決定部は、同様の手順にて、節点を次々に展開していく。
これにより、図５に示すように、節点６６として、目標節点（２，１）と同じ節点が得られ、この時点で探索は終了する。最終的に作成された探索木は、図５に示す通りとなる。
【００３８】
次に、作成された探索木に基づいて、計画結果を作成する。
まず、現在地の節点（親節点）のラベルから目標節点のラベルまでを並べると、図７に示す通りとなる。この図において、節点１：（１，２）から節点２：（１，３）への遷移は、無人車＃２がノード２からノード３へ移動することを示す。
このラベル列に対して、上述したステップＳ８の▲１▼〜▲５▼の手順に従って、無人車経路表およびノード予約表を作成すると、図８および図９に示す通りとなる。
以上で、本具体例の説明を終了する。
【００３９】
（３）具体例２
次に、他の具体的な例を挙げて、本装置の動作を以下に説明する。
まず、現在の状況を説明すると、本具体例における走行経路の状態は、上述した具体例１と同じものとする（図３参照）。また、本具体例において、無人車の台数は２台（無人車＃１および無人車＃２）であり、各無人車の現在地および目的地は、図１０に示す通りであるとする。この図に示すように、本具体例の場合、無人車＃１がノード１で待機中であり、目的地を有していない点が、具体例１と異なる。
【００４０】
次に、図２のフローチャートに基づいて、経路決定部２１３の動作を説明する。
まず、親節点を作成する。本具体例における親節点のラベルは、無人車＃１および無人車＃２の現在地に基づいて、具体例１の親節点と同じラベル（１，２）となる。一方、無人車＃１は目的地を有していないので、本具体例における目標節点のラベルは、（＊，１）となる。
以下、具体例１と同様の手順で、子節点を作成し、探索木に加えていく。本具体例の探索木を図１１に示す。この図は、図５に示す探索木（具体例１）の節点５６までに相当する。
【００４１】
すなわち、本具体例の最上位節点（親節点）のラベルは、具体例１の最上位節点（親節点）のラベルと同じものであるから、本具体例の探索木は、途中までは具体例１の探索木と同じものとなる。
但し、本具体例では、目標節点のラベルは（＊，１）であるため、図１１に示す節点５６のラベル（１２，１）が該目標節点のラベルと一致するとみなされる。そのため、節点５６：（１２，１）が作成された時点で探索は終了する。
探索が終了すると、具体例１と同様の手順で、該探索木に基づいて、計画結果を作成する。これにより、図１２および図１３に示す無人車経路表およびノード予約表が作成される。
以上で、本具体例の説明を終了する。
【００４２】
§２．第２実施形態
次に、この発明の第２実施形態について説明する。
図１４は、この発明の第２実施形態による無人搬送車制御装置の構成例を示すブロック図である。この図において、図１の各部に対応する部分には同一の符号を付け、その説明を省略する。この図に示す無人搬送車制御装置においては、経路決定部２１３に代えて運行計画部２１４が新たに設けられている。
この運行計画部２１４の詳細説明は、以下に述べる動作説明で行う。
【００４３】
次に、上記構成による無人搬送車制御装置の動作を説明する。
図１５は、本実施形態による運行計画部２１４の動作の一例を示すフローチャートである。
ステップＳ１１では、走行路データメモリ２１２、無人車データメモリ２０５および計画指示データメモリ２０４を参照して、運行計画を立てるための条件（以下、「運行計画条件」と称する）を設定する。
図１６は、本実施形態における運行計画条件の一例を示す説明図である。以下、この図に示す各欄について説明する。
(1) 無人車 ： 計画対象となる無人車は、運行管理下にある無人車、すなわち、稼働中の無人車である。故障や点検のため非稼働状態の無人車は除外する。
(2) 出発点 ： 各無人車の現在位置のノードを出発点とする。
(3) 目標点 ： 各無人車がいま行こうとしているノードを目標点とする。搬送や移載などの仕事が与えられていない待機状態の無人車（以下、「待機無人車」と称する）については、出発点を目標点とする。
(4) 作業 ： 各無人車が目標点で行う作業を示す。作業としては、「移載」、「充電」、「待機」等がある。ここで、「待機」とは、その目標点で何もせずに待機することを意味する。また、待機無人車については当然「待機」が指示されるが、その他にも、（先の出願で述べた退避／待避経路に従って）競合相手の邪魔にならない場所へ向かっている無人車についても「待機」が設定される。
(5) 経路確定レベル ： 経路確定レベルとしては、「目標点まで確定」と「未定」の２種類がある。ここで、「目標点まで確定」は、出発点から目標点までの経路がすでに求められている場合を指し、「未定」は、経路がまた決まっていない場合、または、既に目標点にいる場合を指している。
(6) 経路 ： 「目標点まで確定」の無人車に対しては、出発点から目標点までを結ぶノード列を経路として設定する。一方、「未定」の無人車に対しては、出発点（＝目標点）のノードのみを設定する。
運行計画条件の設定が終了すると、ステップＳ１２へ進む。
【００４４】
ステップＳ１２では、設定された運行計画条件の下で、先の出願で述べた方法を用いて、運行計画を立てる。また、実施回数を１に設定する。
ステップＳ１３では、ステップＳ１２において運行計画を立てることができたか否かを判断する。この判断結果が「ＮＯ」の場合、すなわち、運行計画を立てることができなかった場合には、ステップＳ１４へ進む。
【００４５】
ステップＳ１４では、以下に示す手順で、運行計画条件を変更する。
(1) 現在の実施回数が１の場合のみ、以下の処理▲１▼〜▲３▼を行った後、(2) 以降の処理にはいる。現在の実施回数が２以上の場合には、以下の処理▲１▼〜▲３▼を行わずに、(2) 以降の処理にはいる。
▲１▼  出発点と目標点が異なり、かつ、経路確定レベルが「未定」の無人車を求める。
▲２▼  ▲１▼で求めた無人車から作られる全ての部分集合を求める。但し、全ての無人車を含む集合と、無人車を一台も含まない集合は除外する。従って、例えば、▲１▼において無人車＃１，＃２，＃３が求められた場合には、（＃１，＃２），（＃１，＃３），（＃２，＃３），（＃１），（＃２），（＃３）の６つの部分集合が得られる。
▲３▼  ▲２▼で求めた部分集合を、該集合に含まれる無人車の台数が少ない順番に並べ替え、番号を付ける。例えば、上の例では、１（＃１），２（＃２），３（＃３），４（＃１，＃２），５（＃１，＃３），６（＃２，＃３）となる。
(2) 実施回数と同じ番号の部分集合を取り出す。もし、実施回数に対応した部分集合がない場合には、「運行計画条件は変更不可能」とする。
(3) 取り出した部分集合に含まれる無人車の目標点を出発点にし、運行計画条件の作業欄に「待機」をセットする。これは、その無人車の本来の目的地および作業を一旦保留し、該無人車を一時的に待機状態にすることを意味する。
(4) 実施回数を１増やす。
【００４６】
次に、ステップＳ１５では、ステップＳ１４の(2) において、「運行計画条件は変更不可能」であるか否かを判断する。
この判断結果が「ＹＥＳ」の場合、すなわち、運行計画条件が変更不可能である場合には、変更不可能として処理を終了する。
一方、この判断結果が「ＮＯ」の場合、すなわち、運行計画条件が変更可能である場合には、ステップＳ１２へ戻る。
そして、ステップＳ１２では、変更された運行計画条件の下で、先の出願で示した方法を用いて、運行計画を立てる。
以降、ステップＳ１２〜Ｓ１５は同様の処理を繰り返す。そして、ステップＳ１３の判断結果が「ＹＥＳ」の場合、すなわち、運行計画を立てることに成功した場合には、ステップＳ１６へ進む。
【００４７】
ステップＳ１６では、計画成功の場合の運行計画条件、並びに、その運行計画（すなわち、各無人車の経路および各ノードの予約シーケンスなど）を、計画結果格納メモリ２０３に書き込む。
以上で、上記構成による無人搬送車制御装置の動作説明を終了する。
【００４８】
（２）具体例
次に、具体的な例を挙げて、本装置の動作を以下に説明する。
本具体例では、現在の状況として、「§２．課題２」で挙げた例を考える。
すなわち、図２３に示す走行路において、無人車＃１はノード１で移載すべく矢印で示す経路を走行中であり、無人車＃２はノード１１で移載すべく矢印で示す経路を走行中であり、ノード９にいる無人車＃３はノード１で移載作業を行う必要があり、ノード１９にいる無人車＃４はノード１１で移載作業を行う必要があるとする。
【００４９】
この場合、まず、ステップＳ１１では、図１６に示す運行計画条件が設定される。
次に、ステップＳ１２に進み、先の出願に示す方法に基づいて、運行計画の作成が試みられる。しかしながら、図１６に示す運行計画条件の下では、「§２．課題２」で述べた理由により、運行計画を立てることができない。
このため、ステップＳ１３の判断結果は「ＮＯ（運行計画失敗）」となり、ステップＳ１４へ進む。
【００５０】
ステップＳ１４では、現在の実施回数は１であるので、(1) の▲１▼〜▲３▼の処理に基づいて、無人車＃３と無人車＃４の部分集合、１（＃３）および２（＃４）を求める。そして、現在の実施回数１と同じ番号の部分集合１（＃３）を取り出し、図１６に示す運行計画条件に対して、無人車＃３の目標点を出発点（ノード９）にし、該無人車＃３の作業欄に「待機」をセットした後、実施回数を１増やす（２にする）。以上の処理により、図１６に示す運行計画条件は、図１７のように変更される。この運行計画条件の変更後、ステップＳ１２へ進む。
【００５１】
ステップＳ１２では、変更された運行計画条件（図１７参照）の下で、先の出願で示した方法を用いて、再度、運行計画の作成を試みる。
変更された運行計画条件では、無人車＃３の目的地および作業を一時的に保留したので、無人車＃１は移載後にノード２へ退避し、無人車＃２は移載後にノード１へ退避し、無人車＃４は新規の経路（ノード１９→ノード１８→ノード１７→ノード１６→ノード１５→ノード１４→ノード１３→ノード１２→ノード１１）を移動する運行計画を立てることに成功する（図１８参照）。
これにより、ステップＳ１３の判断結果は「ＹＥＳ」となり、ステップＳ１６へ進む。
ステップＳ１６では、図１８に示す運行計画に基づいて、各無人車の経路（図１９参照）、および、各ノードの予約シーケンス（図２０参照）が求められる。そして、図１７に示す運行計画条件と共に、計画結果格納メモリ２０３に書き込まれる。
以上で、本具体例の説明を終了する。
【００５２】
§３．補足
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。
【００５３】
【発明の効果】
以上説明したように、この発明によれば、走行路の閉鎖等により、従来の最短経路探索手法に基づく方法では全ての無人車の経路を求めることができない場合であっても、効率の良い経路を求めることができる。
また、この発明によれば、全ての無人車が本来の目的地へ向かう運行計画を立てることができない場合であっても、できるだけ少ない無人車に対して、本来の目的地および作業を一旦保留した状態での運行計画が立てられるので、それ以外の無人車は目標点へ移動することができ、搬送システム全体としての搬送能力が向上する。
【図面の簡単な説明】
【図１】  この発明の第１実施形態による無人搬送車制御装置の構成例を示すブロック図である。
【図２】  同実施形態による無人搬送車制御装置の動作例を示すフローチャートである。
【図３】  同実施形態の具体例１における走行路を示す説明図である。
【図４】  同具体例における無人車の現在地と目的地を示す説明図である。
【図５】  同具体例における探索木の一例を示す説明図である。
【図６】  同具体例における節点２の状態を示す説明図である。
【図７】  同具体例において得られたラベル列を示す説明図である。
【図８】  同具体例において得られた無人車の経路を示す説明図である。
【図９】  同具体例において得られたノードの予約シーケンスを示す説明図である。
【図１０】  同実施形態の具体例２における無人車の現在地と目的地を示す説明図である。
【図１１】  同具体例における探索木の一例を示す説明図である。
【図１２】  同具体例において得られた無人車の経路を示す説明図である。
【図１３】  同具体例において得られたノードの予約シーケンスを示す説明図である。
【図１４】  この発明の第２実施形態による無人搬送車制御装置の構成例を示すブロック図である。
【図１５】  同実施形態による無人搬送車制御装置の動作例を示すフローチャートである。
【図１６】  同実施形態の具体例において設定された運行計画条件を示す説明図である。
【図１７】  同具体例において変更された運行計画条件を示す説明図である。
【図１８】  同具体例において得られた運行計画結果を示す説明図である。
【図１９】  同具体例において得られた無人車の経路を示す説明図である。
【図２０】  同具体例において得られたノードの予約シーケンスを示す説明図である。
【図２１】  走行路の一例を示す説明図である。
【図２２】  閉鎖区間のある走行路の一例を示す説明図である。
【図２３】  無人車の運行の一例を示す説明図である。
【図２４】  無人車の状況の一例を示す説明図である。
【符号の説明】
２００……運行制御部、  ２０１……搬送実行テーブルメモリ、
２０３……計画結果格納メモリ、  ２０４……計画指示データメモリ、
２０５……無人車データメモリ、  ２０６……運行制御データメモリ、
２１１……無人車インターフェース、  ２１２……走行路データメモリ、
２１３……経路決定部、  ２１４……運行計画部
【図１】
0003728864.tif 000002
【図２】
0003728864.tif 000003
【図３】
0003728864.tif 000004
【図４】
0003728864.tif 000005
【図５】
0003728864.tif 000006
【図６】
0003728864.tif 000007
【図７】
0003728864.tif 000008
【図８】
0003728864.tif 000009
【図９】
0003728864.tif 000010
【図１０】
0003728864.tif 000011
【図１１】
0003728864.tif 000012
【図１２】
0003728864.tif 000013
【図１３】
0003728864.tif 000014
【図１４】
0003728864.tif 000015
【図１５】
0003728864.tif 000016
【図１６】
0003728864.tif 000017
【図１７】
0003728864.tif 000018
【図１８】
0003728864.tif 000019
【図１９】
0003728864.tif 000020
【図２０】
0003728864.tif 000021
【図２１】
0003728864.tif 000022
【図２２】
0003728864.tif 000023
【図２３】
0003728864.tif 000024
【図２４】
0003728864.tif 000025