(57)【特許請求の範囲】
【請求項１】
停止位置である複数のノードと、前記ノード間を接続する接続路とからなる走行路を移動する複数の無人搬送車の運行を計画する無人搬送車制御装置において、
各無人搬送車の現在地の情報を有する着目節点を作成し、該着目節点を所定の探索木の最上位節点とする親節点作成手段と、
各無人搬送車の目的地の情報を有する目標節点を作成する目標節点作成手段と、
前記着目節点と前記目標節点とが一致するか否か判断する一致判断手段と、
前記一致判断手段において前記着目節点と前記目標節点とが不一致の場合には、前記探索木から前記着目節点を親節点として展開済みでない節点を取り出す節点検出手段と、
前記節点検出手段で取り出された節点について、該節点が示す無人搬送車の位置を隣のノードに変えて子節点とし、かつ前記親節点のノードから前記子節点のノードまでの間にあるノードのノード間の評価値を積算し、積算結果の積算値を前記子節点に登録されているノード番号に加え、前記子節点に登録することにより新たな子節点を作成する子節点作成手段と、
前記子節点作成手段で作成された子節点に登録された無人搬送車のノード番号を調べ、無人搬送車同士が衝突しないか否かを判断し、衝突する場合には、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる衝突判断手段と、
前記衝突判断手段において各無人搬送車が衝突しない場合には、前記子節点作成手段で作成された前記子節点に登録された各無人搬送車のノード番号が同一となる他の節点が探索木にあるか否か判断し、該同一となる他の節点が既に探索木にある場合には、前記子節点の前記積算値が前記同節点より高い評価のとき、前記同節点を探索木から削除し、前記子節点作成手段で作成された該子節点を、該子節点の親節点の下位に登録し、該子節点を着目節点とし、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させ、また、前記子節点の前記積算値が前記同節点より低い評価のとき、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる既存在手段と、
前記既存在手段において該節点が探索木にない場合には、前記節点作成手段で作成された子節点を前記節点検出手段で取り出された節点の下位に登録し、該子節点を着目節点とし、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる登録手段と、
前記一致判断手段において着目節点と目標節点とが一致した場合には、該着目節点から前記最上位節点までを結ぶ節点の列に基づいて、前記走行路における無人搬送車の運行計画を作成する運行計画作成手段と
を具備することを特徴とする無人搬送車制御装置。
【請求項２】
請求項１記載の無人搬送車制御装置において、走行路を探索する評価基準が最短距離の場合、前記評価値は隣接するノードとノードとの間の区間の距離データであることを特徴とする無人搬送車制御装置。
【請求項３】
請求項１記載の無人搬送車制御装置において、走行路を探索する評価基準が最短時間の場合、前記評価値は隣接するノードとノードとの間の区間の前記無人搬送車の走行時間データであることを特徴とする無人搬送車制御装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の無人搬送車制御装置において、前記一致判断手段は、前記目標節点において目的地が設定されていない無人搬送車については、前記着目節点における位置と該目標節点における目的地とが一致すると見なすことを特徴とする無人搬送車制御装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の無人搬送車制御装置において、前記運行計画作成手段で作成される運行計画は、各無人搬送車の現在地から目的地までの移動経路を示す情報、および、各ノードに停車する無人搬送車の停車の順番を示す情報からなることを特徴とする無人搬送車制御装置。
【請求項６】
停止位置である複数のノードと、前記ノード間を接続する接続路とからなる走行路を、請求項１から請求項５のいずれかに記載の無人搬送車制御装置を動作させ、移動する複数の無人搬送車の運行を計画する無人搬送車制御方法において、
親節点作成手段が各無人搬送車の現在地の情報を含む着目節点を作成し、該着目節点を所定の探索木の最上位節点とする親節点作成過程と、
目標節点作成手段が各無人搬送車の目的地の情報を含む目標節点を作成する目標節点作成過程と、
一致判断手段が前記着目節点と前記目標節点とが一致するか否か判断する一致判断過程と、
前記一致判断過程において前記着目節点と前記目標節点とが不一致の場合には、節点検出手段が前記探索木から前記着目節点を親節点として展開済みでない節点を取り出す節点検出過程と、
子節点作成手段が前記節点検出過程で取り出された節点について、該節点が示す無人搬送車の位置を隣のノードに変えて子節点とし、かつ前記親節点のノードから前記子節点のノードまでの間にあるノードのノード間の評価値を積算し、積算結果の積算値を前記子節点に登録されているノード番号に加え登録することにより新たな子節点を作成する子節点作成過程と、
衝突判断手段が前記子節点作成過程で作成された子節点に登録された無人搬送車のノード番号を調べ、無人搬送車同士が衝突しないか否かを判断し、衝突する場合、一致判断過程にて着目節点と前記目標節点とが一致するか否か判断させる衝突判断過程と、
前記衝突判断過程において各無人搬送車が衝突しない場合には、既存在手段が前記子節点作成過程で作成された前記子節点に登録された各無人搬送車のノード番号と同一となる他の節点が探索木にあるか否か判断し、該同一となる他の節点が既に探索木にある場合には、前記子節点の前記積算値が前記同節点より高い評価のとき、前記同節点を探索木から削除し、前記子節点作成過程で作成された該子節点を、該子節点の親節点の下位に登録し、該子節点を着目節点として、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させ、また、前記子節点の前記積算値が前記同節点より低い評価のとき、何も行わず一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる既存在過程と、
登録手段が前記既存在過程において該節点が探索木にない場合には、前記節点作成過程で作成された子節点を前記節点検出過程で取り出された節点の下位に登録し、該子節点を着目節点とし、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる登録過程と、
前記一致判断過程において着目節点と目標節点とが一致した場合には、該着目節点から前記最上位節点までを結ぶ節点の列に基づいて、運行計画作成手段が前記走行路における無人搬送車の運行計画を作成する運行計画作成過程と
を具備することを特徴とする無人搬送車制御装置の無人搬送車制御方法。
【請求項７】
請求項６に記載の無人搬送車制御方法において、
走行路を探索する評価基準が最短距離の場合、前記評価値は隣接するノードとノードとの間の区間の距離データとすることを特徴とする無人搬送車制御方法。
【請求項８】
請求項６に記載の無人搬送車制御方法において、
走行路を探索する評価基準が最短時間の場合、前記評価値は隣接するノードとノードとの間の区間の前記無人車の走行時間データとすることを特徴とする無人搬送車制御方法。
【請求項９】
請求項６ないし請求項８いずれかに記載の無人搬送車制御方法において、
前記一致判断過程において、一致判断手段が、前記目標節点において目的地が設定されていない無人搬送車については、前記着目節点における位置と該目標節点における目的地とが一致すると見なすことを特徴とする無人搬送車制御方法。
【請求項１０】
請求項６ないし請求項８いずれかに記載の無人搬送車制御方法において、
前記運行計画作成手段の作成する運行計画が、各無人搬送車の現在地から目的地までの移動経路を示す情報、および、各ノードに停車する無人搬送車の停車の順番を示す情報からなることを特徴とする無人搬送車制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工場等の無人自動搬送システムにお  いて、無人搬送車（無人車）の運行を管理し、搬送経路の決定等を行う無人搬送車制御装置およびその方法に関する。
【０００２】
【従来の技術】
工場などの自動搬送システムでは、限られたスペースで生産量をアップさせるため、狭い走行路に複数台の無人搬送車を投入することがある。また、工場内の装置の保守などで走行路が閉鎖されると無人搬送車同士が干渉しあって、移動できなくなる状態が発生する。
【０００３】
無人搬送車を現在地から目的地へ進めるための経路を求めるのに、最短経路探索手法がよく使用される。この場合、最短の指標を何にするかにより様々なバリエーションがあるが、移動距離を指標とする場合と、移動時間を指標とする場合が代表的である。移動距離を指標とする場合は、ノード間の距離の総和が最小となる経路が選択され、移動時間を指標とする場合は、ノード間の移動時間の総和が最小となる経路が選択される。
【０００４】
ノード間の走行方向が一方向に決まっている場合は、上述した最短経路探索手法が妥当な手法であるが、図１１に示すように走行路におけるノード間を両方向へ移動でき、かつある区間が閉鎖される走行路の場合、複数の無人搬送車を効率よく、互いに干渉させず移動させようとすると、出願人の先の出願、すなわち、特願平０９−１２２５５７（以下、「先の出願」と称する）で述べたような工夫が必要となる。
【０００５】
従来例である先の先願について図１２を参照して説明する。この図において、２００は運行制御部であり、ＣＰＵ（中央処理装置）、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）等からなる処理装置である。
経路決定部２１３は、ＣＰＵ等により構成され、各無人搬送車の最適な走行経路および動作順序を決定する。運行制御部２００は、経路決定部２１３を起動し、該経路決定部２１３が求めた各無人搬送車の走行経路に基づいて無人搬送車の運行制御を行う。
【０００６】
搬送実行テーブルメモリ２０１は、本装置の制御対象となる無人搬送システムに与えられる仕事に関するデータをプールしておく記憶領域である。
計画結果格納メモリ２０３は、経路決定部２１３において計画された各無人搬送車の確定経路、及び、走行路上において無人搬送車が停止可能な各ノードに関する予約シーケンス等を記憶する領域である。運行制御部２００は、計画結果格納メモリ２０３内のデータをチェック・参照し、各無人搬送車への走行指示を出力する。
【０００７】
計画指示データメモリ２０４は、各無人搬送車の目的地やそこでの作業内容を記憶している。経路決定部２１３は、計画指示データメモリ２０４のデータに基づいて、経路計画および動作計画を立てる。
無人車データメモリ２０５は、各無人搬送車の位置などの情報を記憶する。運行制御部２００は、無人車インターフェース２１１から各無人搬送車の状態を逐次受信し、その内容を元に無人車データメモリ２０５の内容を更新する。
経路決定部２１３による計画動作が終了し、そのデータが計画結果格納メモリ２０３へ格納されると、運行制御部２００はその内容を調べて、計画が成功していれば、運行制御データメモリ２０６へ当該データをコピーする。
【０００８】
走行路データメモリ２１２は、ノードや区間の情報、および、区間の閉鎖など現在の走行路の状況を記憶している。
運行制御部２００は、搬送実行テーブルメモリ２０１および無人車データメモリ２０５を参照して、未割当の仕事の存在および仕事を持たない無人搬送車の存在を確認した場合、その参照データを元に、計画指示データメモリ２０４に経路確定レベルや目的ノード等をセットし、経路決定部２１３を起動する。
【０００９】
次に、上記構成による無人搬送車制御装置の動作を説明する。先の先願においては、探索木において移動するノード数に対応する探索深さの順に展開していき、目標状態を示す目標節点に達したら、探索を打ち切っていた。
たとえば、図１１の場合は、走行路上に無人搬送車＃１および＃２が存在し、無人搬送車＃１は、ノード６に位置しており、図１３に示すように移動先の目的地がノード１となっている。このとき、無人搬送車＃２は、ノード１に位置しており、移動先の目的地がない状態（作業予定がない状態）である。
【００１０】
図１１に示す状態における探索木の構成は、図１４に示す形状となる。図１４において、節点１：（６、１）を探索木の開始点である根節点として、順次、無人搬送車＃１および＃２の移動可能なノードに対応した子節点を下の方向に作成していく。ここで、１：（６、１）において、「１：」は一番最初に作成した節点番号を示しており、「（６、１）」は、無人搬送車＃１がノード６に位置し、無人搬送車＃２がノード１に位置していることを示しているノード集合であり節点のラベルとしている。また、たとえば、節点１０：（８、１）は、１０番目に作成された節点であり、無人搬送車＃１はノード８に位置し、無人搬送車＃２はノード１に位置していることを示している。したがって、根節点１：（６、１）は、図１１に示す無人搬送車＃１および＃２の位置を示している。
【００１１】
図１４に示す様に、無人搬送車＃１および＃２が互いに干渉しない移動先のノードとして、根節点１：（６、１）から節点番号２、３、４および５の４つの子節点が展開される。たとえば、節点番号２の節点２：（５、１）は、根節点１：（６、１）の状態から無人搬送車＃１をノード６からノード５へ移し、無人搬送車＃２を移動させずノード１に位置させる状態を示す。
このように、ある節点（親節点として考える）の無人搬送車の配置から、無人搬送車＃１および＃２のいずれか（複数の無人搬送車が存在する場合には、この内の１台）を隣のノードへ移した状態を子節点として順次作成していき、無人搬送車＃１および＃２の双方が目的とするノードへ到達した段階において探索木における経路探索処理が終了する。
【００１２】
ここで、親節点５：（５、２）からラベル（５、２）、（７、２）、（６、３）および（６、８）の４つの子節点が作成可能であるが、ラベル（５、２）および（７、２）とは、節点番号７および節点番号９において、すでに作成されているために親節点５：（５、２）から作成されない。そして、ラベル（６、３）および（６、８）は、節点番号１２と節点番号１５とにおいて作成されている。これは、探索木を作成する場合における「枝刈り」と称され、探索木における節点数の爆発的な増加を抑制するために行われる処理である。
また、移動先としての目的のノードを有していない無人搬送車＃２がどのノードに位置しても良いため、無人搬送車＃１が移動目的のノードであるノード１に初めて到達した６１：（１、３）を最終状態として、探索木の作成で行われる経路探索は終了する。
【００１３】
図１４に示す探索木において、根節点１：（６、１）から図に示す太線を矢印の方向に辿ると、無人搬送車＃１および＃２の始めに位置していたノードから最終的な目的地であるノードへ位置するまでの遷移系列は以下の様になる。
１：（６，１）→４：（９，１）→１０：（８，１）→２２：（８，２）→３６：（８，３）→４９：（２，３）→６１：（１，３）
そして、この遷移系列から無人搬送車（無人搬送車）＃１および＃２の走行経路が図１５に示すように、またノード予約表が図１６に示すように求められる。
【００１４】
この図１５に示す走行経路に沿い、かつ図１６に示すノード予約表のノード予約順序に従い、無人搬送車＃１および＃２を移動させて行くことにより、無人搬送車＃１および＃２は、現在位置するノードから目的のノードまでお互いに干渉せずに導かれる。
【００１５】
【発明が解決しようとする課題】
上述した先の出願の方法は、深さ「０」の根節点１：（６、１）、深さ「１」の節点番号２〜５および深さ「３」の節点番号６〜１３というように、同じ深さの節点を全て展開してから次の深さの節点に移る横型探索のため、探索木の探索深さが最も小さく、無人搬送車が目標のノードに達する遷移系列が得られる異になる。すなわち、無人搬送車の移動ノード数の合計が最も少ない経路が求められる。その結果、図１５に示す最短経路が探索されるものであるが、この方法にも、以下に述べるような課題が存在する。
【００１６】
走行路が図１１に示すような場合を考える。図１１を見れば分かるように、無人搬送車＃１および＃２の走行経路としては、以下に示す経路のほうが走行距離が短く、かつ横行回数が少ない等の点で最適経路である。
無人搬送車＃１  ：  ６→５→４→３→２→１
無人搬送車＃２  ：  １→２→８
ここで、横行とは、きついカーブにおいて走行を一旦停止し、垂直方向に方向転換を行いカーブを走行することを言い、一旦停止を行うために時間的な損失が大きい。そのため、無人搬送車の走行性能によっては、横行の少ない走行路を選択する必要がある。
【００１７】
このような、走行経路の良否を判断する評価基準として、現在ノードから目的ノードまでの「最短距離」および「最短時間」が代表的である。ここで、現在ノードから目的ノードまでの「最短距離」とは、無人搬送車の総走行距離が最小である場合を意味し、現在ノードから目的ノードまでの「最短時間」とは無人搬送車の総走行時間が最小である場合を意味している。しかしながら、先の先願の経路探索においては、移動するノード数が最も少ない探索の深さで終了してしまうため、「最短距離」および「最短時間」の経路探索を行えない欠点がある。
【００１８】
本発明は、このような背景の下でなされたもので、投入された無人搬送車の台数が多く、全ての無人搬送車について計画が立てられない場合であっても、できるだけ多くの無人搬送車について所定の評価基準に基づき新規計画を立て、搬送能力の向上を図ることのできる無人搬送車制御装置および方法を提供することを目的とする。
【００１９】
【課題を解決するための手段】
請求項１記載の発明は、停止位置である複数のノードと、前記ノード間を接続する接続路とからなる走行路を移動する複数の無人搬送車の運行を計画する無人搬送車制御装置において、各無人搬送車の現在地の情報を有する着目節点を作成し、該着目節点を所定の探索木の最上位節点とする親節点作成手段と、各無人搬送車の目的地の情報を有する目標節点を作成する目標節点作成手段と、前記着目節点と前記目標節点とが一致するか否か判断する一致判断手段と、前記一致判断手段において前記着目節点と前記目標節点とが不一致の場合には、前記探索木から前記着目節点を親節点として展開済みでない節点を取り出す節点検出手段と、前記節点検出手段で取り出された節点について、該節点が示す無人搬送車の位置を隣のノードに変えて子節点とし、かつ前記親節点のノードから前記子節点のノードまでの間にあるノードのノード間の評価値を積算し、積算結果の積算値を前記子節点に登録されているノード番号に加え、前記子節点に登録することにより新たな子節点を作成する子節点作成手段と、前記子節点作成手段で作成された子節点に登録された無人搬送車のノード番号を調べ、無人搬送車同士が衝突しないか否かを判断し、衝突する場合には、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる衝突判断手段と、前記衝突判断手段において各無人搬送車が衝突しない場合には、前記子節点作成手段で作成された前記子節点に登録された各無人搬送車のノード番号が同一となる他の節点が探索木にあるか否か判断し、該同一となる他の節点が既に探索木にある場合には、前記子節点の前記積算値が前記同節点より高い評価のとき、前記同節点を探索木から削除し、前記子節点作成手段で作成された該子節点を、該子節点の親節点の下位に登録し、該子節点を着目節点とし、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させ、また、前記子節点の前記積算値が前記同節点より低い評価のとき、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる既存在手段と、前記既存在手段において該節点が探索木にない場合には、前記節点作成手段で作成された子節点を前記節点検出手段で取り出された節点の下位に登録し、該子節点を着目節点とし、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる登録手段と、前記一致判断手段において着目節点と目標節点とが一致した場合には、該着目節点から前記最上位節点までを結ぶ節点の列に基づいて、前記走行路における無人搬送車の運行計画を作成する運行計画作成手段とを具備することを特徴とする。
【００２０】
請求項２記載の発明は、請求項１記載の無人搬送車制御装置において、走行路を探索する評価基準が最短距離の場合、前記評価値は隣接するノードとノードとの間の区間の距離データであることを特徴とする。
請求項３記載の発明は、請求項１記載の無人搬送車制御装置において、走行路を探索する評価基準が最短時間の場合、前記評価値は隣接するノードとノードとの間の区間の前記無人搬送車の走行時間データであることを特徴とする。
【００２１】
請求項４記載の発明は、請求項１ないし請求項３のいずれかに記載の無人搬送車制御装置において、前記一致判断手段は、前記目標節点において目的地が設定されていない無人搬送車については、前記着目節点における位置と該目標節点における目的地とが一致すると見なすことを特徴とする。
請求項５記載の発明は、請求項１ないし請求項４のいずれかに記載の無人搬送車制御装置において、前記運行計画作成手段で作成される運行計画は、各無人搬送車の現在地から目的地までの移動経路を示す情報、および、各ノードに停車する無人搬送車の停車の順番を示す情報からなることを特徴とする。
【００２２】
請求項６記載の発明は、停止位置である複数のノードと、前記ノード間を接続する接続路とからなる走行路を、請求項１から請求項５のいずれかに記載の無人搬送車制御装置を動作させ、移動する複数の無人搬送車の運行を計画する無人搬送車制御方法において、親節点作成手段が各無人搬送車の現在地の情報を含む着目節点を作成し、該着目節点を所定の探索木の最上位節点とする親節点作成過程と、目標節点作成手段が各無人搬送車の目的地の情報を含む目標節点を作成する目標節点作成過程と、一致判断手段が前記着目節点と前記目標節点とが一致するか否か判断する一致判断過程と、前記一致判断過程において前記着目節点と前記目標節点とが不一致の場合には、節点検出手段が前記探索木から前記着目節点を親節点として展開済みでない節点を取り出す節点検出過程と、子節点作成手段が前記節点検出過程で取り出された節点について、該節点が示す無人搬送車の位置を隣のノードに変えて子節点とし、かつ前記親節点のノードから前記子節点のノードまでの間にあるノードのノード間の評価値を積算し、積算結果の積算値を前記子節点に登録されているノード番号に加え登録することにより新たな子節点を作成する子節点作成過程と、衝突判断手段が前記子節点作成過程で作成された子節点に登録された無人搬送車のノード番号を調べ、無人搬送車同士が衝突しないか否かを判断し、衝突する場合、一致判断過程にて着目節点と前記目標節点とが一致するか否か判断させる衝突判断過程と、前記衝突判断過程において各無人搬送車が衝突しない場合には、既存在手段が前記子節点作成過程で作成された前記子節点に登録された各無人搬送車のノード番号と同一となる他の節点が探索木にあるか否か判断し、該同一となる他の節点が既に探索木にある場合には、前記子節点の前記積算値が前記同節点より高い評価のとき、前記同節点を探索木から削除し、前記子節点作成過程で作成された該子節点を、該子節点の親節点の下位に登録し、該子節点を着目節点として、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させ、また、前記子節点の前記積算値が前記同節点より低い評価のとき、何も行わず一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる既存在過程と、登録手段が前記既存在過程において該節点が探索木にない場合には、前記節点作成過程で作成された子節点を前記節点検出過程で取り出された節点の下位に登録し、該子節点を着目節点とし、一致判断手段に着目節点と前記目標節点とが一致するか否か判断させる登録過程と、前記一致判断過程において着目節点と目標節点とが一致した場合には、該着目節点から前記最上位節点までを結ぶ節点の列に基づいて、運行計画作成手段が前記走行路における無人搬送車の運行計画を作成する運行計画作成過程とを具備することを特徴とする。
【００２３】
請求項７記載の発明は、請求項６に記載の無人搬送車制御方法において、走行路を探索する評価基準が最短距離の場合、前記評価値は隣接するノードとノードとの間の区間の距離データとすることを特徴とする無人搬送車制御方法。
請求項８記載の発明は、請求項６に記載の無人搬送車制御方法において、走行路を探索する評価基準が最短時間の場合、前記評価値は隣接するノードとノードとの間の区間の前記無人車の走行時間データとすることを特徴とする。
請求項９記載の発明は、請求項６ないし請求項８いずれかに記載の無人搬送車制御方法において、前記一致判断過程において、一致判断手段が、前記目標節点において目的地が設定されていない無人搬送車については、前記着目節点における位置と該目標節点における目的地とが一致すると見なすことを特徴とする。
【００２４】
請求項１０記載の発明は、請求項６ないし請求項８いずれかに記載の無人搬送車制御方法において、前記運行計画作成手段の作成する運行計画が、各無人搬送車の現在地から目的地までの移動経路を示す情報、および、各ノードに停車する無人搬送車の停車の順番を示す情報からなることを特徴とする。
【００２８】
【発明の実施の形態】
§１．第一実施形態
以下、図面を参照して、この発明の第１実施形態について説明する。
（１）構成および動作
図１は、この発明の第１実施形態による無人搬送車制御装置の構成例を示すブロック図である。この図に示す装置は、先の出願（特願平０９−１２２５５７）の図１１に示す走行路データメモリ２１２が走行路・コストデータメモリ１０１に、経路決定部２１３が経路決定部１０２に置き換わったものである。
【００２９】
この図において、運行制御部２００は、ＣＰＵ（中央処理装置）、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）等からなる処理装置である。
経路決定部１０２は、ＣＰＵ等により構成され、各無人搬送車の最適な走行経路および動作順序を決定する。運行制御部２００は、経路決定部１０２を起動し、該経路決定部１０２が求めた各無人搬送車の走行経路に基づいて無人搬送車の運行制御を行う。
【００３０】
搬送実行テーブルメモリ２０１は、本装置の制御対象となる無人搬送システムに与えられる仕事に関するデータをプールしておく記憶領域である。
計画結果格納メモリ２０３は、経路決定部１０２において計画された各無人搬送車の確定経路、及び、走行路上において無人搬送車が停止可能な各ノードに関する予約シーケンス等を記憶する領域である。運行制御部２００は、計画結果格納メモリ２０３内のデータをチェック・参照し、各無人搬送車への走行指示を出力する。
【００３１】
計画指示データメモリ２０４は、各無人搬送車の目的地やそこでの作業内容を記憶している。経路決定部１０２は、計画指示データメモリ２０４のデータに基づいて、経路計画および動作計画を立てる。
無人車データメモリ２０５は、各無人搬送車の位置などの情報を記憶する。運行制御部２００は、無人車インターフェース２１１から各無人搬送車の状態を逐次受信し、その内容を元に無人車データメモリ２０５の内容を更新する。
経路決定部１０２による計画動作が終了し、そのデータが計画結果格納メモリ２０３へ格納されると、運行制御部２００はその内容を調べて、計画が成功していれば、運行制御データメモリ２０６へ当該データをコピーする。
【００３２】
走行路・コストデータメモリ１０１は、ノードや区間の情報、および、区間の閉鎖など現在の走行路の状況および区間のコストデータを記憶している。区間のコストとは、無人搬送車の始めに位置していたノードから目的とするノードまでの走行経路である区間の良否を判断する評価の基礎となるデータである。一実施形態において、評価基準が「最短距離」の場合のコストデータは区間の両端のノード間の距離であり、評価基準が「最短時間」の場合のコストデータは区間の移動に要する時間である。
【００３３】
運行制御部２００は、搬送実行テーブルメモリ２０１および無人車データメモリ２０５を参照して、未割当の仕事の存在および仕事を持たない無人搬送車の存在を確認した場合、その参照データを元に、計画指示データメモリ２０４に経路確定レベルや目的ノード等をセットし、経路決定部１０２を起動する。経路決定部１０２における経路決定処理は、図２に示す探索木を作成しながら、現在位置するノードから目的とするノードまでの走行計画を求めていく。探索木上において長円で示される節点は、各無人搬送車の存在するノードの番号の集合と最初の節点（親節点）から現在位置する節点までのコストの積算値との情報からなるラベルを有する。
【００３４】
次に、上記構成による無人搬送車制御装置の動作を図１および図３を参照して説明する。図３は、本実施形態による経路決定部１０２の動作の一例を示すフローチャートである。
ステップＳ１において、まず始めに、無人車データメモリ２０５および計画指示データメモリ２０４を参照して、経路を決定すべき無人搬送車およびその現在地／目的地を求める。
【００３５】
そして、走行経路を決定すべき各無人搬送車の現在地を並べたラベルを持つ親節点を作成する。ここで、上記親節点のラベルは、一例として、
（無人搬送車＃１の現在地，無人搬送車＃２の現在地，…，無人搬送車＃ｎの現在地）
となる。但し、このラベルにおいて、各無人搬送車の現在地は、必ずしも、無人搬送車の番号の小さい順番に並べる必要はない。
親節点の作成後、この親節点を探索木に登録する。
【００３６】
次に、各無人搬送車の目的地を並べたラベルを持つ目標節点を作成する。ここで、上記目標節点のラベルは、一例として、
（無人搬送車＃１の目的地，無人搬送車＃２の目的地，…，無人搬送車＃ｎの目的地）
となる。但し、このラベルにおいて、各無人搬送車の目的地の並び順は、親節点のラベルにおける各無人搬送車の現在地の並び順と同じ順番でなければならない（以後作成する節点も同様）。また、このラベルにおいて、仕事が与えられていない等により、目的地のない無人搬送車については、そのことを示す符号（一例として、”＊”とする）が、目的地の代わりにセットされる。
最後に、親節点を着目節点とし、ステップＳ２へ進む。
【００３７】
次に、ステップＳ２において、着目節点のラベルと目標節点のラベルとが比較され、両ラベルが一致するか否かの判断が行われる。
すなわち、このステップでは、着目節点のラベルに記載された現在地と、目標節点のラベルに記載された目的地とを、各無人搬送車毎に比較し、該現在地と該目的地とが全ての無人搬送車について等しいならば、両ラベルは一致すると判断する。
【００３８】
但し、目的地のない無人搬送車（すなわち、目的地が上記符号＊である無人搬送車）に関しては、該無人搬送車の現在地にかかわらず、該無人搬送車の現在地と目的地とは等しいと見なす。
この判断結果が「ＮＯ」の場合、すなわち、着目節点のラベルと目標節点のラベルとが一致しない場合に処理は、ステップＳ３へ進む。
また、この判断結果が「ＹＥＳ」の場合、すなわち、着目節点のラベルと目標節点のラベルとが一致しない場合に処理は、ステップＳ４へ進む。
【００３９】
次に、ステップＳ４において、探索木における経路探索で新しい目標節点が得られたとき、この目標節点へ至る経路の積算コストより大きい積算コストを持つ節点を全て「展開済み」とする。この結果、前記目標節点を超える積算コストを有する節点は、この後に展開されなくなる。ここで、積算コストは、区間のコストを根節点から現在位置する節点まで積算したものである。
【００４０】
次に、ステップＳ３において、探索木を調べて、最初に検出された展開済みでない節点を取り出し、ステップＳ５へ進む。ここで、「展開済みでない節点」とは、次に述べるステップＳ５の方法で子節点を作成することが可能な節点を指す。
【００４１】
次に、ステップＳ５において、ステップＳ３で行われた探索木の中における展開する節点の調査の結果、展開する節点が有りと判断された場合、処理はステップＳ６へ進む。
【００４２】
次に、ステップＳ６において、ステップＳ３で取り出した節点について、いずれか一台の無人搬送車の位置を隣のノード（但し、該位置から隣のノードへ移動できることが必要）に変えた無人搬送車の位置集合および隣のノードへの区間のコストを現積算コストへ加えた積算コストを有するラベルを、移動可能な全ての無人搬送車の全てのノードについて作成し、各ラベルを有する子節点をそれぞれ作成する。そして、子節点が作成終了した時点において、処理はステップＳ７へ進む。
【００４３】
次に、ステップＳ７において、ステップＳ６で作成された各子節点について、該子節点のラベルに記載された各無人搬送車の位置を調べ、無人搬送車同士が干渉関係にないか否かを判断する。そして、この判断結果が「ＹＥＳ」の子節点、すなわち、無人搬送車同士が干渉関係にない節点のみを取り出し、ステップＳ８へ進む。
【００４４】
次に、ステップＳ８において、ステップＳ７を通過した子節点について、該子節点のラベルと同じラベルを有する節点が既に探索木に登録されているか否かが判断される。そして、この判断結果が「ＮＯ」の子節点、すなわち、探索木に登録されていない節点のみが取り出され、ステップＳ９へ進む。
【００４５】
次に、ステップＳ９において、ステップＳ８を通過した子節点およびその親節点（すなわち、展開した節点）が、探索木の最後に加えられる。なお、当然のことながら、探索木の最初の節点（最上位の節点、根節点）には、親節点は存在しない。そして、探索木に加えた子節点を着目節点とした後、処理はステップＳ２へ進む。
【００４６】
一方、ステップＳ７の判断結果が「ＮＯ」の場合、すなわち、ステップＳ６で作成された子節点が可能な状態でない（無人搬送車同士が衝突する）場合には、ステップＳ２へ進む。
また、ステップＳ８の判断結果が「ＹＥＳ」の場合、すなわち、ステップＳ６で作成された子節点のラベルと同じラベルを有する節点が既に探索木にある場合、処理は、ステップＳ１０へ進む。
【００４７】
次に、ステップＳ１０において、ステップＳ６で作成された子節点とこの子節点の位置集合に対して同じ位置集合を有するすでに探索木にある子節点（同節点と呼ぶ）との積算コストの比較を行う。この結果、ステップＳ６において作成された子節点のコストが同節点のコストより大きいか等しい場合、判定は「ＮＯ」となりステップＳ２へ進む。
【００４８】
また、ステップＳ６において作成された子節点のコストが同節点のコストより小さい場合、判定は「ＹＥＳ」となりステップＳ１１へ進む。
次に、ステップＳ１１において、ステップＳ１０でステップＳ６において作成された子節点のコストより大きいと判断された同節点および同節点の下にある子節点を全て探索木から削除する。同節点およびその子節点に対する削除の処理が終了した後、処理はステップＳ９へ進む。
【００４９】
一方、ステップＳ５の判断結果が「ＹＥＳ」の場合、すなわち、着目節点のラベルと目標節点のラベルとが一致する場合には、ステップＳ１２へ進む。
【００５０】
次に、ステップＳ１２において、まず、目標節点と一致した子節点を起点として、該起点から上位方向へ、親節点が存在する限り、探索木を順次遡っていき、その過程で通過する各節点のラベルを、通過順とは逆の順番で並べる。
この位置集合の並び（位置集合列）は、一例として、以下のようになる。
0003755268.tif 000002
上記位置集合列において、位置集合１は、各無人搬送車の現在地を並べた位置集合（探索木の最初の親節点の位置集合）であり、位置集合ｍは、目標節点のラベルとなる。
【００５１】
次に、上記位置集合列に基づいて、無人搬送車経路表、および、ノード予約表を求める。
この無人搬送車経路表およびノード予約表の求め方の概要を以下に示す。
▲１▼  無人搬送車経路表における各無人搬送車の経路欄、および、ノード予約表における各ノードの予約シーケンス欄を空欄にする（初期化）。また、現在の処理対象となる位置集合として、上記位置集合列のうちの位置集合１をセットする。
【００５２】
▲２▼  無人搬送車経路表について、処理対象位置集合における各無人搬送車のノードを、対応する無人搬送車の経路欄にセットする。また、ノード予約表について、処理対象位置集合における各ノードの予約シーケンス欄に、対応する無人搬送車の番号をセットする。
▲３▼  現位置集合の次の集合を次位置集合とする。もし、現処理対象位置集合が位置集合ｍである場合（すなわち、最終位置集合である場合）には、処理を終了する。それ以外の場合には、▲４▼へ進む。
【００５３】
▲４▼  処理対象位置集合と、該処理対象位置集合の次の位置集合とを比較し、該次位置集合において、処理対象位置集合と異なるノードおよびその無人搬送車を検出する。無人搬送車経路表について、該検出されたノードを、対応する無人搬送車の経路欄にその異なるノードを加える（表記上は、「→異なるノード」）。また、ノード予約表について、該検出されたノードの予約シーケンス欄に、対応する無人搬送車の番号を追加する。
▲５▼  処理対象位置集合を上記次位置集合に更新して、▲３▼へ戻る。
以上で、上記構成による無人搬送車制御装置の動作説明を終了する。
【００５４】
（２）具体例１
次に、具体的な例を挙げて、一実施形態による無人搬送車制御装置の動作を以下に説明する。
本具体例では、図４に示すような走行路において、無人搬送車の台数は２台（無人搬送車＃１および無人搬送車＃２）である。図４は、各ノード間の区間のコストを示したものである。本具体例の場合「最短距離」を評価基準とし、区間のコストには、両端のノード間の距離を１００ｍｍ単位で設定している。たとえば、ノード１とノード２との間の距離は、２０００ｍｍであることを示している。各無人搬送車の現在地のノード番号および目的地のノード番号は、図５に示す通りであるとする。
【００５５】
次に、図３のフローチャートに基づいて、経路決定部１０２の動作を説明する。
図６は、本具体例で作成される探索木の一例を示す説明図である。
まず、無人搬送車＃１および無人搬送車＃２の現在地に基づいて、一集合（６，１）および積算コスト０のラベルを有する親節点が作成される。図６においては、一番最初に作成された節点であることを明示するため、１：（６，１），０と表記されている。
また、無人搬送車＃１および無人搬送車＃２の目的地のノード番号に基づいて、位置集合（１，＊）を有する目標節点を作成する。
【００５６】
次に、節点１の位置集合（６，１）と目標節点の位置集合（１，＊）とは、一致しないので、この節点１を親として子節点が作成される。無人搬送車＃１が位置するノード６の隣接ノードは、ノード５、ノード７およびノード９であり、無人搬送車＃２が位置するノード１の隣接ノードはノード２である。したがって、子節点としては、
▲１▼  （５，１），１５
▲２▼  （９，１），２０
▲３▼  （６，２），２０
の３節点が考えられる。
【００５７】
そして、この３つの子節点にの全てについて、図３のフローチャートのステップＳ７における展開が「可能な状態？」の判断を行う。▲１▼、▲２▼および▲３▼の３つの子節点のラベルの各無人搬送車の位置を調べると、これら３つの子節点の全ての位置集合において無人搬送車＃１および＃２が衝突しない状態にあるため、展開が「可能な状態」である。
【００５８】
次に、この３つの子節点にの全てについて、図３のフローチャートのステップＳ８における「展開済み？」の判断を行う。すなわち、▲１▼、▲２▼および▲３▼の３つの子節点それぞれの無人搬送車の位置集合がすでに探索木にあるかどうかを調べると、これら３つの子節点のいずれも探索木に存在しないため、「展開済み」でないと判断される。
【００５９】
この結果、図６に示す様に３つの子接点は、それぞれ以下のように節点番号が付けられ探索木に登録される。
▲１▼  ２：（５，１），１５
▲２▼  ３：（９，１），２０
▲３▼  ４：（６，２），２０
【００６０】
次に、経路決定部１０２は、コストが最も低い▲１▼の位置集合２：（５，１），１５を次に展開する節点として選択する。そして、▲１▼の子節点としては、以下に示す節点が考えられる。
▲４▼  （６，１），３０
▲５▼  （４，１），３０
▲６▼  （５，２），３５
【００６１】
しかしながら、▲４▼は節点１と位置集合が同一なため、展開済みとして探索木に登録されない。したがって、▲５▼および▲６▼のみが
▲５▼  ５：（４，１），３０
▲６▼  ６：（５，２），３５
として、図６に示す様に探索木に登録される。
【００６２】
ここで、子節点５の積算コストは、親節点である節点２の積算コスト「１５」に無人搬送車＃１を移動させたノード５およびノード４の間の区間のコスト「１５」を加えた「３０」となっている。同様に、子節点６の積算コストは、親節点である節点２の積算コスト「１５」に無人搬送車＃２を移動させたノード１およびノード２の間の区間のコスト「２０」を加えた「３５」となっている。
【００６３】
そして、上述した処理を行った結果、図７に示すように節点２１：（２，１）６０を展開した時点において、節点２１と位置集合が等しい節点１５：（２，１），１００が探索木に存在する。ここで、節点１５の積算コストは、節点２１の積算コストよりも大きい。このことは、図７における節点１から節点１５までの経路より節点１から節点２１までの経路の方が同じ無人搬送車の配置とさせるコストが低い子とを示している。したがって、接点１５は不要と見なされ、探索木から削除される。そして、この節点１から節点１５までの経路は、無人搬送車の経路に相当する。
【００６４】
さらに位置集合の展開が進められた図８に示す探索木の節点３３の子節点である節点３９：（１，３），１５５は、無人搬送車＃１が図５に示す目的のノードへ到達した位置集合を示す目標節点である。ところが、すでに探索木にある節点番号３９以降の節点において、節点３９の積算コストより大きい積算コストを有する節点が存在しないため、節点３９による枝刈りはない。
【００６５】
そして、次に作成される節点３６の子節点である節点４３：（１，８），１２０も図５に示す目的のノードへ到達した位置集合を示す目標節点である。この時点において、展開済みでない節点３７から節点４２までのうち節点４２以外の節点の積算コストは、節点４３の積算コストよりも大きい。したがって、節点３７から節点４１までの節点は、展開済みとされる。
【００６６】
これにより、節点３６において節点４３を展開した後、展開済みでない節点は、節点節点４２および節点４３のみである。しかしながら、節点４２には展開できる子節点がなく、節点４３は目標節点である。したがって、図８に示す探索木における節点には、展開できる節点が存在しない。
【００６７】
以上の結果により、図８から位置集合列が以下も様に求まる。
位置集合１  ：（６，１）      （←節点１）
位置集合２  ：（５，１）      （←節点２）
位置集合３  ：（４，１）      （←節点５）
位置集合４  ：（３，１）      （←節点１１）
位置集合５  ：（３，２）      （←節点２２）
位置集合６  ：（３，８）      （←節点３０）
位置集合７  ：（２，８）      （←節点３６）
位置集合８  ：（１，８）      （←節点４３）
【００６８】
上述した位置集合列から、図９に示す無人搬送車の走行経路および図１０に示すノード予約表が生成される。
上記の動作説明において、評価基準としてノード間の距離を用いたが、評価基準として無人搬送車のノード間の移動時間を用いることも可能である。
上述したように、本発明による位置実施形態においては、無人搬送車＃１および無人搬送車＃２の走行経路を決定する探索処理において、走行経路の位置集合で形成された探索木における探索処理に最適な走行経路探索のための評価基準を導入している。このため、始点のノードから目的ノードまでの走行経路の探索木の枝刈りをしながら全ての可能性を調べることが可能となり、走行距離または走行時間での評価基準に基づき最適な無人搬送車＃１および無人搬送車＃２の経路計画の生成が行える。
【００６９】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。
【００７０】
【発明の効果】
本願発明によれば、複数の無人搬送車の走行計画を決定する走行路探索処理において、ノードに対応する無人搬送車の位置集合で形成された探索木による探索処理に対して、最適な走行経路探索のために走行距離または走行時間等の所定の評価基準が導入されている。このため、始点のノードから目的のノードまでの走行経路の探索において、探索木にある評価基準に基づく評価の悪い位置集合を除去する枝刈りをしながら全ての経路の可能性を調べることが可能となり、所定の評価基準に基づき最適な複数の無人搬送車の経路計画の生成が行える。
【図面の簡単な説明】
【図１】  この発明の第１実施形態による無人搬送車制御装置の構成例を示すブロック図である。
【図２】  探索木の一例を示す説明図である。
【図３】  この発明の一実施形態による無人搬送車制御装置の動作例を示すフローチャートである。
【図４】  同実施形態の具体例の動作説明における走行路を示す説明図である。
【図５】  同具体例における無人搬送車の現在地と目的地を示す説明図である。
【図６】  同具体例における探索木の一例を示す説明図である。
【図７】  同具体例における探索木の一例を示す説明図である。
【図８】  同具体例における探索木の一例を示す説明図である。
【図９】  同実施形態の具体例において得られた無人搬送車の走行経路を示す説明図である。
【図１０】  同具体例において得られたノードの予約シーケンスを示す説明図である。
【図１１】  従来例による無人搬送車制御装置の構成を示すブロック図である。
【図１２】  従来例による無人搬送車制御装置の動作説明における走行路を示す説明図である。
【図１３】  従来例による無人搬送車制御装置の現在地と目的地を示す説明図である。
【図１４】  従来例による無人搬送車制御装置における探索木の一例を示す説明図である。
【図１５】  従来例において得られた無人搬送車の経路を示す説明図である。
【図１６】  従来例において得られたノードの予約シーケンスを示す説明図である。
【符号の説明】
１０１……走行路・コストデータメモリ
２００……運行制御部
２０１……搬送実行テーブルメモリ
２０３……計画結果格納メモリ
２０４……計画指示データメモリ
２０５……無人車データメモリ
２０６……運行制御データメモリ
２１１……無人車インターフェース
２１３……経路決定部
【図１】
0003755268.tif 000003
【図２】
0003755268.tif 000004
【図３】
0003755268.tif 000005
【図４】
0003755268.tif 000006
【図５】
0003755268.tif 000007
【図６】
0003755268.tif 000008
【図７】
0003755268.tif 000009
【図８】
0003755268.tif 000010
【図９】
0003755268.tif 000011
【図１０】
0003755268.tif 000012
【図１１】
0003755268.tif 000013
【図１２】
0003755268.tif 000014
【図１３】
0003755268.tif 000015
【図１４】
0003755268.tif 000016
【図１５】
0003755268.tif 000017
【図１６】
0003755268.tif 000018