(57)【特許請求の範囲】
【請求項１】
所定の走行路を移動する複数の無人車の運行を計画する無人搬送車制御装置において、
各無人搬送車の現在地の情報を有する節点を作成し、該節点を所定の探索木の最上位節点である根節点とする根節点作成手段と、
各無人搬送車の目的地の情報を有する目標節点を作成する目標節点作成手段と、
前記根節点を着目節点とする着目節点初期化手段と、
前記着目節点と前記目標節点とが一致するか否か判断する一致判断手段と、
前記一致判断手段において前記着目節点と前記目標節点とが不一致の場合には、前記着目節点の下に子節点が作成可能か否か判断する子節点作成可能判断手段と、
前記子節点作成可能判断手段において子節点が作成不可能である場合には、着目節点の親節点を新たな着目節点とし、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる着目節点遡及手段と、
前記子節点作成可能判断手段において子節点が作成可能である場合には、作成可能な子節点を子節点候補として列挙する子節点候補列挙手段と、
列挙された子節点候補の中から子節点候補を１つ選択する子節点候補選択手段と、
前記子節点候補選択手段で選択された子節点に登録された無人搬送車のノード番号を調べ、無人搬送車同士が衝突しないか否かを判断し、衝突する場合には、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる衝突判断手段と、
前記衝突判断手段において各無人搬送車が衝突しない場合には、選択された子節点候補と同じ節点が既に探索木にあるか否かを判断し、該節点が既に探索木にある場合には、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる既存在手段と、
前記既存在手段において該節点が探索木にない場合には、選択された子節点候補を着目節点の子節点として登録する登録手段と、
登録された子節点を新たな着目節点とし、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる着目節点更新手段と、
前記一致判断手段において前記着目節点と前記目標節点とが一致した場合には、該着目節点から前記根節点までを結ぶ節点の列に基づいて、前記走行路における無人搬送車の運行計画を作成する運行計画作成手段と
を具備することを特徴とする無人搬送車制御装置。
【請求項２】
請求項１記載の無人搬送車制御装置において、
前記走行路は、停止位置である複数のノードと、前記ノード間を接続する接続路からなり、
前記子節点作成可能判断手段は、
着目節点が有する各無人車の位置情報について、ある１台の無人車のみの位置をその隣接ノードに置き換えた位置情報を、全ての無人車について、かつ、置き換え可能な全ての隣接ノードについて作成し、
作成された各位置情報について、各無人車の目的地までのコストを求め、該コストを積算し、積算したコストをその位置情報のコストとし、
着目節点の位置情報について、各無人車の目的地までのコストを求め、該コストを積算し、積算したコストを着目節点のコストとし、
作成された各位置情報の中から、そのコストが着目節点のコストより大きいものを除外し、残った位置情報を有する節点を子節点候補とする
ことを特徴とする無人搬送車制御装置。
【請求項３】
請求項２記載の無人搬送車制御装置において、
前記子節点候補選択手段は、列挙された子節点候補の中から最もコストの小さい子節点候補を選択する
ことを特徴とする無人搬送車制御装置。
【請求項４】
所定の走行路を移動する複数の無人車の運行を計画する無人搬送車制御装置を用いた無人搬送車制御方法において、
根節点作成手段が各無人搬送車の現在地の情報を有する節点を作成し、該節点を所定の探索木の最上位節点である根節点とする根節点作成過程と、
目標節点作成手段が各無人搬送車の目的地の情報を有する目標節点を作成する目標節点作成過程と、
着目節点初期化手段が前記根節点を着目節点とする着目節点初期化過程と、
一致判断手段が前記着目節点と前記目標節点とが一致するか否か判断する一致判断過程と、
子節点作成可能判断手段が前記一致判断過程において前記着目節点と前記目標節点とが不一致の場合には、前記着目節点の下に子節点が作成可能か否か判断する子節点作成可能判断過程と、
着目節点遡及手段が前記子節点作成可能判断過程において子節点が作成不可能である場合には、着目節点の親節点を新たな着目節点とし、一致判断過程に着目節点と前記目標節点とが一致するか否か判断させる着目節点遡及過程と、
子節点候補列挙手段が前記子節点作成可能判断過程において子節点が作成可能である場合には、作成可能な子節点を子節点候補として列挙する子節点候補列挙過程と、
子節点候補選択手段が列挙された子節点候補の中から子節点候補を１つ選択する子節点候補選択過程と、
衝突判断手段が前記子節点候補選択過程で選択された子節点に登録された無人搬送車のノード番号を調べ、無人搬送車同士が衝突しないか否かを判断し、衝突する場合には、一致判断過程に着目節点と前記目標節点とが一致するか否か判断させる衝突判断過程と、
既存在手段が前記衝突判断過程において各無人搬送車が衝突しない場合には、選択された子節点候補と同じ節点が既に探索木にあるか否かを判断し、該節点が既に探索木にある場合には、一致判断過程に着目節点と前記目標節点とが一致するか否か判断させる既存在過程と、
登録手段が前記既存在過程において該節点が探索木にない場合には、選択された子節点候補を着目節点の子節点として登録する登録過程と、
着目節点更新手段が登録された子節点を新たな着目節点とし、一致判断過程に着目節点と前記目標節点とが一致するか否か判断させる着目節点更新過程と、
運行計画作成手段が前記一致判断過程において前記着目節点と前記目標節点とが一致した場合には、該着目節点から前記根節点までを結ぶ節点の列に基づいて、前記走行路における無人搬送車の運行計画を作成する運行計画作成過程と
を具備することを特徴とする無人搬送車制御方法。
【請求項５】
請求項４に記載の無人搬送車制御方法において、
前記走行路は、停止位置である複数のノードと、前記ノード間を接続する接続路からなり、前記子節点作成可能判断過程は、子節点作成可能判断手段が着目節点が有する各無人車の位置情報について、ある1台の無人車のみの位置をその隣接ノードに置き換えた位置情報を、全ての無人車について、かつ、置き換え可能な全ての隣接ノードについて作成する過程と、作成された各位置情報について、各無人車の目的地までのコストを求め、該コストを積算し、積算したコストをその位置情報のコストとする過程と、
着目節点の位置情報について、各無人車の目的地までのコストを求め、該コストを積算し、積算したコストを着目点のコストとする過程と、
作成された各位置情報の中から、そのコストが着目節点のコストより大きいものを除外し、残った位置情報を有する節点を子節点候補とする過程とを具備することを特徴とする無人搬送車制御方法。
【請求項６】
請求項５に記載の無人搬送車制御方法において、
前記子節点候補選択過程は、子節点候補選択手段が列挙された子節点候補の中から最もコストの小さな子節点候補を選択する
ことを特徴とする無人搬送車制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工場等の無人自動搬送システムにおいて、無人搬送車（以下、「無人車」と称する）の運行を管理し、搬送経路の決定等を行う無人搬送車制御装置およびその方法に関する。
【０００２】
【従来の技術】
工場等の無人自動搬送システムにおいて、無人車の運行を管理し、搬送経路の決定等を行う無人搬送車制御装置およびその方法として、出願人は、先に、特願平９−１２２５５７を出願した。
【０００３】
図９は、上記出願による無人搬送車制御装置の構成例を示すブロック図である。
図９において、走行路データメモリ２１２は、ノードや区間の情報、および、区間の閉鎖など現在の走行路の状況を記憶している。
無人車データメモリ２０５は、各無人車の位置などの情報を記憶する。
計画指示データメモリ２０４は、各無人車の目的地やそこでの作業内容を記憶している。
そして、経路決定部２１３は、走行路データメモリ２１２，無人車データメモリ２０５，計画指示データメモリ２０４を参照して、各無人車の搬送経路を計画し、該計画結果を計画結果格納メモリ２０３に書き込む。
【０００４】
このような構成において、経路決定部２１３は、以下の手順▲１▼〜▲４▼に従って、各無人車の搬送経路を計画する。
▲１▼各無人車の位置の集合を１つの状態として捉え、該状態間の遷移は、どれか１台の無人車の位置を隣接ノードへ移すことと等価とみなす。１つの状態を１つの節点に対応つけると、遷移前の節点（「親節点」と称する）は、０個以上の次の節点（「子節点」と称する）に遷移可能である。
▲２▼子節点を親節点の下に加え、さらにその子節点を親節点としてその下に子節点を加えていく……ということを繰り返していくと、木構造になる。これを「探索木」と呼ぶ。経路決定部２１３は、子節点作成の処理対象となる親節点を、該親節点が生成された順番に選択する。このような親節点の選択方法は「横型探索手法」と呼ばれる。
【０００５】
▲３▼無人車の現在地の集合（初期状態）を親節点として出発し、順次、子節点を生成していく。但し、探索木中の節点数を抑えるため、対応する状態（位置集合）の等しい節点が２つ以上探索木に登録されないようにする。このようにして節点を展開していき、全ての無人車の目的地の集合を示す目標節点が得られたならば、探索を停止する。
▲４▼作成された探索木について、親節点から目標節点までのパス上の各節点について、各節点間の状態（位置集合）の移り変わりを無人車の状態遷移とすると、各無人車に関する最短経路が得られる。
【０００６】
【発明が解決しようとする課題】
ところで、上述した従来の無人搬送車制御装置および方法では、移動すべきノード数が多くなると、探索木中の節点が爆発的に多くなり、その結果、計画完了までに要する時間が大きくなると共に、必要となる資源（メモリ容量等）も大きくなる、という課題があった。
これは、上記従来技術が横型探索手法を採用しており、目的地を持たない無人車も目的地を有する無人車と同じように扱うためである。
【０００７】
以下、このことを一例を挙げて説明する。
走行路および無人車が図３に示す場合を考える。また、各無人車の現在地および目的地は図４の通りであるとする。図４に示すように、無人車＃１は目的地（ノード１）を持っているが、無人車＃２は目的を持っていない。
このような場合、無人車＃１を現在地から目的地へ移動させるばかりでなく、無人車＃１の目的地に停車している無人車＃２を邪魔にならない場所へ移動（これを「退避」と称する）させることも併せて計画する必要がある。
図３の場合、妥当な計画経路として、
無人車＃１：８→７→６→５→４→３→２→１
無人車＃２：１→２→１０
が考えられる。
【０００８】
上記従来技術では、無人車＃１と無人車＃２とを同等に扱って、探索木を作成する。上述したように、探索木において、ある親節点からその子節点へ遷移することは、他の無人車はそのままにして、１台の無人車だけを隣接ノードへ移動させることに対応する。
従って、図３に示す走行路では、無人車＃１を現在地から目的地へ移動させるために、無人車＃１はノード間を７回移動し、無人車＃２はノード間を２回移動しなくてはならない。故に、探索木を９階層（最初の親節点を含めると１０階層）にわたって展開しなくては、経路計画が完了しない。
【０００９】
ところが、上記従来技術は横型探索手法を採用しているので、上記１０層の各層において、無人車＃１，＃２の可能な移動先（ノード）を全て探し出し、該ノードへ移動した状態を子節点として探索木に登録する。この結果、探索木中の節点数がかなり増えることとなる（探索木が大きくなるので図示することは省略するが、図３の例では、探索木の節点数が１２１個になる）。
以上説明したように、上記従来技術では、移動すべきノード数が多くなると、探索木中の節点が爆発的に多くなり、その結果、計画完了までに要する時間が大きくなると共に、必要となる資源（メモリ容量等）も大きくなり、実際の搬送システムにおいては、使用に耐えない場合が出てくる。
【００１０】
この発明は、このような背景の下になされたもので、移動すべきノード数が多い場合であっても、短時間で経路計画を完了することができ、かつ、必要な資源（メモリ容量等）が少なくて済む無人搬送車制御装置および方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
請求項１記載の発明は、所定の走行路を移動する複数の無人車の運行を計画する無人搬送車制御装置において、各無人搬送車の現在地の情報を有する節点を作成し、該節点を所定の探索木の最上位節点である根節点とする根節点作成手段と、各無人搬送車の目的地の情報を有する目標節点を作成する目標節点作成手段と、前記根節点を着目節点とする着目節点初期化手段と、前記着目節点と前記目標節点とが一致するか否か判断する一致判断手段と、前記一致判断手段において前記着目節点と前記目標節点とが不一致の場合には、前記着目節点の下に子節点が作成可能か否か判断する子節点作成可能判断手段と、前記子節点作成可能判断手段において子節点が作成不可能である場合には、着目節点の親節点を新たな着目節点とし、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる着目節点遡及手段と、前記子節点作成可能判断手段において子節点が作成可能である場合には、作成可能な子節点を子節点候補として列挙する子節点候補列挙手段と、列挙された子節点候補の中から子節点候補を１つ選択する子節点候補選択手段と、前記子節点候補選択手段で選択された子節点に登録された無人搬送車のノード番号を調べ、無人搬送車同士が衝突しないか否かを判断し、衝突する場合には、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる衝突判断手段と、前記衝突判断手段において各無人搬送車が衝突しない場合には、選択された子節点候補と同じ節点が既に探索木にあるか否かを判断し、該節点が既に探索木にある場合には、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる既存在手段と、前記既存在手段において該節点が探索木にない場合には、選択された子節点候補を着目節点の子節点として登録する登録手段と、登録された子節点を新たな着目節点とし、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる着目節点更新手段と、前記一致判断手段において前記着目節点と前記目標節点とが一致した場合には、該着目節点から前記根節点までを結ぶ節点の列に基づいて、前記走行路における無人搬送車の運行計画を作成する運行計画作成手段とを具備することを特徴とする。
請求項２記載の発明は、請求項１に記載の無人搬送車制御装置において、前記走行路は、停止位置である複数のノードと、前記ノード間を接続する接続路からなり、前記子節点作成可能判断手段は、着目節点が有する各無人車の位置情報について、ある１台の無人車のみの位置をその隣接ノードに置き換えた位置情報を、全ての無人車について、かつ、置き換え可能な全ての隣接ノードについて作成し、作成された各位置情報について、各無人車の目的地までのコストを求め、該コストを積算し、積算したコストをその位置情報のコストとし、着目節点の位置情報について、各無人車の目的地までのコストを求め、該コストを積算し、積算したコストを着目節点のコストとし、作成された各位置情報の中から、そのコストが着目節点のコストより大きいものを除外し、残った位置情報を有する節点を子節点候補とすることを特徴とする。
請求項３記載の発明は、請求項２記載の無人搬送車制御装置において、前記子節点候補選択手段は、列挙された子節点候補の中から最もコストの小さい子節点候補を選択することを特徴とする。
請求項４記載の発明は、所定の走行路を移動する複数の無人車の運行を計画する無人搬送車制御装置を用いた無人搬送車制御方法において、根節点作成手段が各無人搬送車の現在地の情報を有する節点を作成し、該節点を所定の探索木の最上位節点である根節点とする根節点作成過程と、目標節点作成手段が各無人搬送車の目的地の情報を有する目標節点を作成する目標節点作成過程と、着目節点初期化手段が前記根節点を着目節点とする着目節点初期化過程と、一致判断手段が前記着目節点と前記目標節点とが一致するか否か判断する一致判断過程と、子節点作成可能判断手段が前記一致判断過程において前記着目節点と前記目標節点とが不一致の場合には、前記着目節点の下に子節点が作成可能か否か判断する子節点作成可能判断過程と、着目節点遡及手段が前記子節点作成可能判断過程において子節点が作成不可能である場合には、着目節点の親節点を新たな着目節点とし、一致判断過程に着目節点と前記目標節点とが一致するか否か判断させる着目節点遡及過程と、子節点候補列挙手段が前記子節点作成可能判断過程において子節点が作成可能である場合には、作成可能な子節点を子節点候補として列挙する子節点候補列挙過程と、子節点候補選択手段が列挙された子節点候補の中から子節点候補を１つ選択する子節点候補選択過程と、衝突判断手段が前記子節点候補選択過程で選択された子節点に登録された無人搬送車のノード番号を調べ、無人搬送車同士が衝突しないか否かを判断し、衝突する場合には、一致判断過程に着目節点と前記目標節点とが一致するか否か判断させる衝突判断過程と、既存在手段が前記衝突判断過程において各無人搬送車が衝突しない場合には、選択された子節点候補と同じ節点が既に探索木にあるか否かを判断し、該節点が既に探索木にある場合には、一致判断過程に着目節点と前記目標節点とが一致するか否か判断させる既存在過程と、登録手段が前記既存在過程において該節点が探索木にない場合には、選択された子節点候補を着目節点の子節点として登録する登録過程と、着目節点更新手段が登録された子節点を新たな着目節点とし、一致判断過程に着目節点と前記目標節点とが一致するか否か判断させる着目節点更新過程と、運行計画作成手段が前記一致判断過程において前記着目節点と前記目標節点とが一致した場合には、該着目節点から前記根節点までを結ぶ節点の列に基づいて、前記走行路における無人搬送車の運行計画を作成する運行計画作成過程とを具備することを特徴とする
請求項５記載の発明は、請求項４に記載の無人搬送車制御方法において、前記走行路は、停止位置である複数のノードと、前記ノード間を接続する接続路からなり、前記子節点作成可能判断過程は、子節点作成可能判断手段が着目節点が有する各無人車の位置情報について、ある1台の無人車のみの位置をその隣接ノードに置き換えた位置情報を、全ての無人車について、かつ、置き換え可能な全ての隣接ノードについて作成する過程と、作成された各位置情報について、各無人車の目的地までのコストを求め、該コストを積算し、積算したコストをその位置情報のコストとする過程と、着目節点の位置情報について、各無人車の目的地までのコストを求め、該コストを積算し、積算したコストを着目点のコストとする過程と、作成された各位置情報の中から、そのコストが着目節点のコストより大きいものを除外し、残った位置情報を有する節点を子節点候補とする過程とを具備することを特徴とする。
請求項６記載の発明は、請求項５に記載の無人搬送車制御方法において、前記子節点候補選択過程は、子節点候補選択手段が列挙された子節点候補の中から最もコストの小さな子節点候補を選択することを特徴とする。
【００１２】
【発明の実施の形態】
以下、図面を参照して、この発明の実施形態について説明する。
（１）構成および動作
図１は、この発明の一実施形態による無人搬送車制御装置の構成例を示すブロック図である。この図において、図９の各部に対応する部分には同一の符号を付ける。この図に示す無人搬送車制御装置においては、経路決定部２１３に代えて経路決定部３１３が新たに設けられている。
【００１３】
この図において、運行制御部２００は、ＣＰＵ（中央処理装置）、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）等からなる処理装置である。
経路決定部３１３は、ＣＰＵ等により構成され、各無人車の最適な搬送経路および動作順序を決定する。運行制御部２００は、経路決定部３１３を起動し、該経路決定部３１３が求めた各無人車の搬送経路に基づいて無人車の運行制御を行う。
【００１４】
搬送実行テーブルメモリ２０１は、本装置の制御対象となる無人搬送システムに与えられる仕事に関するデータをプールしておく記憶領域である。
計画結果格納メモリ２０３は、経路決定部３１３において計画された各無人車の確定経路、及び、走行路上において無人車が停止可能な各ノードに関する予約シーケンス等を記憶する領域である。運行制御部２００は、計画結果格納メモリ２０３内のデータをチェック・参照し、各無人車への走行指示を出力する。
【００１５】
計画指示データメモリ２０４は、各無人車の目的地やそこでの作業内容を記憶している。経路決定部３１３は、計画指示データメモリ２０４のデータに基づいて、経路計画および動作計画を立てる。
無人車データメモリ２０５は、各無人車の位置などの情報を記憶する。運行制御部２００は、無人車インタフェース２１１から各無人車の状態を逐次受信し、その内容を元に無人車データメモリ２０５の内容を更新する。
経路決定部３１３による計画動作が終了し、そのデータが計画結果格納メモリ２０３へ格納されると、運行制御部２００はその内容を調べて、計画が成功していれば、運行制御データメモリ２０６へ当該データをコピーする。
【００１６】
走行路データメモリ２１２は、ノードや区間の情報、および、区間の閉鎖など現在の走行路の状況を記憶している。
運行制御部２００は、搬送実行テーブルメモリ２０１および無人車データメモリ２０５を参照して、未割当の仕事の存在および仕事を持たない無人車の存在を確認した場合、その参照データを元に、計画指示データメモリ２０４に経路確定レベルや目的ノード等をセットし、経路決定部３１３を起動する。
【００１７】
次に、上記構成による無人搬送車制御装置の動作を説明する。
なお、経路決定部３１３は、探索木（図５，図６参照）を作成しながら、各無人車について現在地から目的地までの経路を決定する。探索木上において、長円で示される節点は、各無人車のその時点における位置集合をラベルとして保持している。
【００１８】
図２は、本実施形態による経路決定部３１３の動作の一例を示すフローチャートである。
運行制御部２００が、経路決定部３１３に対して、経路計画を行うよう指示すると、経路決定部３１３の処理はステップＳ１へ進む。
【００１９】
ステップＳ１では、まず始めに、無人車データメモリ２０５および計画指示データメモリ２０４を参照して、経路を決定すべき無人車およびその現在地／目的地を求める。
【００２０】
次に、各無人車の現在地を並べた位置集合をラベルとする節点を作成し、該節点を根節点として探索木に登録する。上記従来技術（特願平９−１２２５５７）では、この節点を「親節点」と呼んでいたが、ここでは、該節点は探索木の根元の節点に該当するので「根節点」と呼ぶことにする。ここで、上記根節点のラベルは、一例として、
（無人車＃１の現在地，無人車＃２の現在地，…，無人車＃ｎの現在地）
となる。但し、このラベルにおいて、各無人車の現在地は、必ずしも、無人車の番号の小さい順番に並べる必要はない。
【００２１】
次に、各無人車の目的地を並べた位置集合をラベルとする目標節点を作成する。ここで、上記目標節点のラベルは、一例として、
（無人車＃１の目的地，無人車＃２の目的地，…，無人車＃ｎの目的地）
となる。但し、このラベルにおいて、各無人車の目的地の並び順は、根節点のラベル（位置集合）における各無人車の現在地の並び順と同じ順番でなければならない（以後作成する節点も同様）。また、このラベルにおいて、仕事が与えられていない等により、目的地のない無人車については、そのことを示す符号（一例として、”＊”とする）が、目的地の代わりにセットされる。
以上の処理の後、ステップＳ２へ進む。
【００２２】
ステップＳ２では、ステップＳ１で作成した根節点を着目節点とし、ステップＳ３へ進む。ここで、着目節点とは、探索木において現在の処理対象となる節点を指す。
ステップＳ３では、現在の着目節点のラベル（位置集合）と目標節点のラベル（位置集合）とを比較し、全ての無人車が目的地に到達しているか否かを判断する。この判断結果が「ＮＯ」、即ち、目的地に到達していない無人車が存在する場合、ステップＳ４へ進む。
【００２３】
ステップＳ４では、着目節点から新たな子節点が作成可能か否かを判断する。ここで、子節点とは、着目節点のラベル（位置集合）において１台の無人車だけを隣接ノードへ移動させることによって得られる位置集合をラベルとする節点（一般的には複数存在する）を指す。このとき、子節点が作成される元となった着目節点を、該子節点の「親節点」と呼ぶ。
即ち、ステップＳ４では、以下の手順（ａ）〜（ｄ）に従って、１つ以上の子節点が作成できるか否かを判断する。但し、現在の着目節点の下に或る子節点が既に作成されている場合、該着目節点から同じ子節点を再度作成することはできない。
【００２４】
［子節点候補の導出と評価方法］
（ａ）着目節点のラベル（位置集合）について、ある１台の無人車のみの位置をその隣接ノードに置き換えた位置集合を、全ての無人車について、かつ、置き換え可能な全ての隣接ノードについて作成する。
（ｂ）作成された各位置集合について、以下の手順（ｂ−１），（ｂ−２）に従って、各無人車の評価値を求め、該評価値を積算し、該積算値をその位置集合の評価値とする。
（ｂ−１）作成された位置集合における無人車の位置から目的地までの最短経路探索を行い、目的地までのコストをその無人車の評価値とする。
（ｂ−２）その無人車が目的地を有しない場合は、目的地までのコストを０とする。
（ｃ）現在の着目節点のラベル（位置集合）についても、（ｂ）と同じ方法で、該位置集合の評価値を求める。
（ｄ）各位置集合の評価値を比較し、小さい順番に並べ、子節点候補とする。但し、現在の着目節点の評価値より大きいものは除外する。
【００２５】
そして、ステップＳ４の判断結果が「ＮＯ」の場合、即ち、子節点候補が１つも得られないならば、ステップＳ５へ進む。
ステップＳ５では、現在の着目節点の親節点を着目節点とし（この処理を「バックトラック」と呼ぶ）、ステップＳ４へ戻る。
【００２６】
一方、ステップＳ４の判断結果が「ＹＥＳ」の場合、即ち、１つ以上の子節点候補が得られたならば、ステップＳ６へ進む。
ステップＳ６では、子節点候補の中から評価値の最も小さい位置集合を選択する。そして、該位置集合における各無人車の位置を調べ、無人車同士が衝突していないか否かを判断する。
そして、この判断結果が「ＮＯ」、即ち、無人車同士が衝突しているならば、不可能な状態と判断し、ステップＳ４へ戻る。
一方、この判断結果が「ＹＥＳ」、即ち、無人車同士が衝突していないならば、可能な状態と判断し、ステップＳ７へ進む。
【００２７】
ステップＳ７では、ステップＳ６で選択された位置集合と同じ位置集合（ラベル）を有する節点が既に探索木に登録されているか否かを調べる。
そして、この結果が「ＹＥＳ」、即ち、該節点が既に探索木に登録されているならば、展開済みと判断し、ステップＳ４へ戻る。
一方、この結果が「ＮＯ」、即ち、該節点が探索木に登録されていないならば、展開済みでないと判断し、ステップＳ８へ進む。
【００２８】
ステップＳ８では、ステップＳ６で選択された位置集合をラベルとする節点を作成し、該節点を、現在の着目節点の子節点として、探索木に登録し、ステップＳ９へ進む。
ステップＳ９では、ステップＳ８で登録した子節点を新たな着目節点とし、ステップＳ３へ戻る。
【００２９】
一方、ステップＳ３の判断結果が「ＹＥＳ」、即ち、全ての無人車が目的地に到達している場合、ステップＳ１０へ進む。
ステップＳ１０では、まず、目標節点と一致した着目節点を起点として、該起点から上位方向へ、親節点が存在する限り、探索木を順次遡っていき、その過程で通過する各節点のラベル（位置集合）を、通過順とは逆の順番で並べる。
この位置集合の並び（位置集合列）は、一例として、以下のようになる。
位置集合１    ：（ノード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 ）
上記位置集合列において、位置集合１は、計画指示における各無人車の現在地を並べた位置集合（根節点のラベル）であり、最後の位置集合ｍは、計画指示における各無人車の目的地を並べた位置集合（目標節点のラベル）である。
【００３０】
次に、上記位置集合列に基づいて、以下の手順▲１▼〜▲５▼に従って、無人車経路表およびノード予約表を求める。
▲１▼  無人車経路表における各無人車の経路欄、および、ノード予約表における各ノードの予約シーケンス欄を空欄にする（初期化）。また、現在の処理対象となる位置集合（以下、「現位置集合」と称する）として、位置集合１をセットする。
▲２▼  無人車経路表について、現位置集合における各無人車のノードを、対応する無人車の経路欄にセットする。また、ノード予約表について、現位置集合における各ノードの予約シーケンス欄に、対応する無人車の番号をセットする。
▲３▼  現位置集合が位置集合ｍである場合（すなわち、最終ラベルである場合）には、処理を終了する。それ以外の場合には、▲４▼へ進む。
▲４▼  現位置集合と、該現位置集合の次の位置集合（以下、「次位置集合」と称する）とを比較し、該次位置集合において、現位置集合と異なるノードおよびその無人車を検出する。無人車経路表について、該検出されたノードを、対応する無人車の経路欄に追加する。このときの追加表記は、「→（ノード番号）」となる。また、ノード予約表について、該検出されたノードの予約シーケンス欄に、対応する無人車の番号を追加する。
▲５▼  現位置集合を上記次位置集合に更新して、▲３▼へ戻る。
以上で、上記構成による無人搬送車制御装置の動作説明を終了する。
【００３１】
（２）具体例
次に、具体的な例を挙げて、本装置の動作を以下に説明する。
本具体例において、走行路は、図３に示す通りとする。なお、上記評価値（目的地までのコスト）を算出するための一例として、図３に示す走行路では、各隣接ノード間の距離は全て等しい（距離＝１）とする。
また、本具体例において、無人車の台数は２台（無人車＃１，＃２）であり、各無人車の現在地および目的地は図４に示す通りとする。
【００３２】
次に、図２のフローチャートに基づいて、経路決定部３１３の動作を説明する。
（ステップＳ１）
無人車＃１，＃２の現在地を並べた位置集合（８，１）をラベルとする節点（節点１）を作成し、該節点１を根節点として探索木に登録し（図５参照）、ステップＳ２へ進む。
【００３３】
（ステップＳ２）
根節点（節点１）を着目節点とし、ステップＳ３へ進む。
（ステップＳ３）
着目節点（節点１）において、無人車＃１の位置は目的地と異なるので、該着目節点を「目標節点でない」と判断し、ステップＳ４へ進む。
【００３４】
（ステップＳ４）
着目節点（節点１）において、無人車＃１の位置（ノード８）の隣接ノードはノード７，１６であり、無人車＃２の位置（ノード１）の隣接ノードはノード２なので、位置集合（７，１），（１６，１），（８，２）を作成する。
次に、上記各位置集合について、評価値を求める。このとき、無人車＃２は目的地を持たないので、無人車＃２の評価値は常に０となる。故に、位置集合（７，１）の評価値は６となり、位置集合（１６，１）の評価値は８となり、位置集合（８，２）の評価値は７となる。一方、着目節点（節点１）の評価値は７である。
ここで、位置集合（１６，１）は、その評価値が着目節点（節点１）の評価値よりも大きいので、除外される。残った位置集合を子節点候補とし、評価値の小さい順番に、▲１▼（７，１），▲２▼（８，２）と並べる。
１つ以上の子節点候補が存在するので、「子節点が作成可能」と判断し、ステップＳ６へ進む。
【００３５】
（ステップＳ６）
子節点候補の中から、評価値の最も小さい位置集合（７，１）を選択する。選択された位置集合（７，１）において無人車＃１と無人車＃２とは衝突しないので、該位置集合（７，１）を「可能な状態」と判断し、ステップＳ７へ進む。
（ステップＳ７）
位置集合（７，１）と同じ位置集合を持つ節点は探索木に存在しないので、該位置集合（７，１）を「展開済みでない」と判断し、ステップＳ８へ進む。
【００３６】
（ステップＳ８）
位置集合（７，１）をラベルとする節点（節点２）を作成し、該節点２を、着目節点（節点１）の子節点として、探索木に登録し（図５参照）、ステップＳ９へ進む。なお、節点１で作成可能な他の子節点候補▲２▼（８，２）は、ここでは探索木に登録されないが、理解を容易にするために、図５では、該子節点候補▲２▼（８，２）を点線で図示しておく。
（ステップＳ９）
探索木に登録した子節点（節点２）を新たな着目節点とし、ステップＳ３へ進む。
【００３７】
以下、ステップＳ３〜Ｓ９の処理を繰り返し、節点３〜７を探索木に登録する（図５参照）。
次に、節点７を新たな着目節点として、ステップＳ３へ進む。
（ステップＳ３）
着目節点（節点７）において、無人車＃１の位置は目的地と異なるので、該着目節点を「目標節点でない」と判断し、ステップＳ４へ進む。
【００３８】
（ステップＳ４）
着目節点（節点７）において、無人車＃１の位置（ノード２）の隣接ノードはノード１，３，１０であり、無人車＃２の位置（ノード１）の隣接ノードはノード２なので、位置集合（１，１），（３，１），（１０，１），（２，２）を作成する。
次に、上記各位置集合について、評価値を求めると、位置集合（１，１）の評価値は０となり、位置集合（３，１）の評価値は２となり、位置集合（１０，１）の評価値は２となり、位置集合（２，２）の評価値は１となる。一方、着目節点（節点７）の評価値は１である。
ここで、位置集合（３，１），（１０，１）は、その評価値が着目節点（節点７）の評価値よりも大きいので、除外される。残った位置集合を子節点候補とし、評価値の小さい順番に、▲１▼（１，１），▲２▼（２，２）と並べる。
１つ以上の子節点候補が存在するので、「子節点が作成可能」と判断し、ステップＳ６へ進む。
【００３９】
（ステップＳ６）
子節点候補の中から、評価値の最も小さい位置集合（１，１）を選択する。選択された位置集合（１，１）において無人車＃１と無人車＃２とは衝突するので、該位置集合（１，１）を「不可能な状態」と判断し、ステップＳ４へ進む。
【００４０】
（ステップＳ４）
上述したように、着目節点（節点７）に対する位置集合は（１，１），（３，１），（１０，１），（２，２）である。このうち、位置集合（３，１），（１０，１）は、その評価値が着目節点（節点７）の評価値よりも大きいので、除外される。また、位置集合（１，１）は、ステップＳ６において、「不可能な状態」と判断されたので、除外される。故に、残った位置集合（２，２）を子節点候補とする。
１つ以上の子節点候補が存在するので、「子節点が作成可能」と判断し、ステップＳ６へ進む。
【００４１】
（ステップＳ６）
唯一の位置集合（２，２）において無人車＃１と無人車＃２とは衝突するので、該位置集合（２，２）を「不可能な状態」と判断し、ステップＳ４へ進む。
【００４２】
（ステップＳ４）
上述したように、着目節点（節点７）に対する位置集合は（１，１），（３，１），（１０，１），（２，２）である。このうち、位置集合（３，１），（１０，１）は、その評価値が着目節点（節点７）の評価値よりも大きいので、除外される。また、位置集合（１，１），（２，２）は、ステップＳ６において、「不可能な状態」と判断されたので、除外される。これにより、子節点候補は存在しない。故に、「子節点が作成不可能」と判断し、ステップＳ５へ進む。
（ステップＳ５）
着目節点を親節点（節点６：図５参照）に戻し、ステップＳ４へ進む。
【００４３】
（ステップＳ４）
着目節点（節点６）において、無人車＃１の位置（ノード３）の隣接ノードはノード２，４，１１であり、無人車＃２の位置（ノード１）の隣接ノードはノード２なので、位置集合（２，１），（４，１），（１１，１），（３，２）を作成する。
次に、上記各位置集合について、評価値を求めると、位置集合（２，１）の評価値は１となり、位置集合（４，１）の評価値は３となり、位置集合（１１，１）の評価値は３となり、位置集合（３，２）の評価値は２となる。一方、着目節点（節点６）の評価値は２である。
ここで、位置集合（４，１），（１１，１）は、その評価値は着目節点（節点６）の評価値よりも大きいので、除外される。また、位置集合（２，１）は、節点７として既に登録されているので、除外される。故に、残った位置集合（３，２）を子節点候補とする。
１つ以上の子節点候補が存在するので、「子節点が作成可能」と判断し、ステップＳ６へ進む。
【００４４】
（ステップＳ６）
唯一の位置集合（３，２）において無人車＃１と無人車＃２とは衝突しないので、該位置集合（３，２）を「可能な状態」と判断し、ステップＳ７へ進む。
（ステップＳ７）
位置集合（３，２）と同じ位置集合を持つ節点は探索木に存在しないので、該位置集合（３，２）を「展開済みでない」と判断し、ステップＳ８へ進む。
【００４５】
（ステップＳ８）
位置集合（３，２）をラベルとする節点（節点８）を作成し、該節点８を、着目節点（節点６）の子節点として、探索木に登録し（図６参照）、ステップＳ９へ進む。
（ステップＳ９）
子節点（節点８）を新たな着目節点とし、ステップＳ３へ進む。
【００４６】
以下、ステップＳ３〜Ｓ９の処理を繰り返し、節点９〜１１を探索木に登録する（図６参照）。
次に、節点１１を新たな着目節点として、ステップＳ３へ進む。
（ステップＳ３）
着目節点（節点１１）と目標節点とが等しいので、該着目節点を「目標節点である」と判断し、ステップＳ１０へ進む。
【００４７】
（ステップＳ１０）
図６に示す探索木を、目標節点（節点１１）から、親節点が存在する限り、その親節点を順次辿っていき、各親節点のラベル（位置集合）を逆に並べると、以下の通りになる。
位置集合１（８，１）→位置集合２（７，１）→位置集合３（６，１）→
位置集合４（５，１）→位置集合５（４，１）→位置集合６（３，１）→
位置集合８（３，２）→位置集合９（３，10）→位置集合10（２，10）→
位置集合11（１，10）
上記の位置集合列に基づいて、各無人車の経路（無人車経路表）および各ノードの予約シーケンス（ノード予約表）を求めると、図７および図８の通りとなる。
以上で、本具体例の説明を終了する。
【００４８】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。
【００４９】
【発明の効果】
以上説明したように、この発明によれば、移動すべきノード数が多い場合であっても、少ない節点数で望む搬送経路が得られるので、短時間で経路計画を完了することができ、かつ、必要な資源（メモリ容量等）が少なくて済む。
【図面の簡単な説明】
【図１】  この発明の一実施形態による無人搬送車制御装置の構成例を示すブロック図である。
【図２】  同実施形態による経路決定部３１３の動作の一例を示すフローチャートである。
【図３】  同実施形態の具体例における走行路を示す説明図である。
【図４】  同具体例における無人車の現在地と目的地を示す説明図である。
【図５】  同具体例における探索木の一例を示す説明図である。
【図６】  同具体例における探索木の一例を示す説明図である。
【図７】  同具体例において得られた無人車の経路を示す説明図である。
【図８】  同具体例において得られたノードの予約シーケンスを示す説明図である。
【図９】  従来の無人搬送車制御装置の構成例を示すブロック図である。
【符号の説明】
２００……運行制御部、  ２０１……搬送実行テーブルメモリ、
２０３……計画結果格納メモリ、  ２０４……計画指示データメモリ、
２０５……無人車データメモリ、  ２０６……運行制御データメモリ、
２１１……無人車インターフェース、  ２１２……走行路データメモリ、
３１３……経路決定部
【図１】
0003757588.tif 000002
【図２】
0003757588.tif 000003
【図３】
0003757588.tif 000004
【図４】
0003757588.tif 000005
【図５】
0003757588.tif 000006
【図６】
0003757588.tif 000007
【図７】
0003757588.tif 000008
【図８】
0003757588.tif 000009
【図９】
0003757588.tif 000010