(57)【要約】【課題】走行路を走行する複数の無人搬送車を、他の無人搬送車との干渉及び衝突を回避して効率よく走行させる無人搬送車制御装置を提供する。【解決手段】ＣＰＵ１０は、取得した搬送命令に基づき決定された走行ルートに従って走行するＡＧＶ３，３…の現在位置を、ＨＤ１１に記憶してあるＡＧＶ状態管理テーブル１１ｄに基づき認識し、認識した各ＡＧＶ３，３…が位置するブロックに基づき前方干渉防止制御処理を行ない、また認識した各ブロックが、干渉範囲定義テーブル１１ｃ、予約・解除タイミング定義テーブル１１ｆ、退出予約テーブル１１ｈで定義されたブロックである場合に、双方向路予約制御処理、退出予約制御処理、干渉確認制御処理を逐次実行する。【選択図】        図２
2004280296.tif 000002
【特許請求の範囲】
【請求項１】
複数の搬送物置場間を連絡する走行路を走行する複数の無人搬送車を制御する無人搬送車制御装置において、
前記走行路及び前記搬送物置場を複数のブロックに区分して管理する管理手段と、
無人搬送車が走行する走行ルートを決定する走行ルート決定手段と、
無人搬送車が存在するブロックを検知する検知手段が検知したブロックに基づき、各無人搬送車の位置するブロックを認識する認識手段と、
所定のブロックを示す情報、及び前記認識手段が前記所定のブロックを認識した場合に行なう所定の処理に係る情報を対応させて定義した少なくとも１つの定義テーブルを記憶している記憶手段と、
前記認識手段が認識したブロックに対応する前記所定の処理に係る情報を前記定義テーブルから読み出し、読み出した情報及び前記走行ルート決定手段が決定した走行ルートに基づき、無人搬送車の走行を制御する走行制御手段とを備えることを特徴とする無人搬送車制御装置。
【請求項２】
前記認識手段が認識した各無人搬送車の位置するブロックに基づき、夫々の無人搬送車を、前方を走行する他の無人搬送車から少なくとも予め定めたブロック数を隔てて走行させるように制御する前方干渉防止制御手段を更に備えることを特徴とする請求項１に記載の無人搬送車制御装置。
【請求項３】
前記走行路は、無人搬送車が双方向に走行可能な双方向の走行区間を複数有しており、
前記記憶手段は、前記定義テーブルとして、前記所定の処理に係る情報に、双方向の走行区間を特定する情報を、前記所定のブロックを示す情報に、前記走行区間を予約すべきブロック及び予約を解除すべきブロックを夫々定義する予約・解除タイミング定義テーブルを記憶しており、
前記走行制御手段は、
前記認識手段が認識した各無人搬送車の位置するブロックが前記予約・解除タイミング定義テーブルに定義されたブロックと一致する場合に、対応する走行区間の予約処理又は予約解除処理を行なう双方向路予約制御手段を備えることを特徴とする請求項１又は２に記載の無人搬送車制御装置。
【請求項４】
前記記憶手段は、前記走行区間毎に、該走行区間の走行を予約する無人搬送車を特定する情報を格納する予約搬送車情報格納場所を有する予約状態管理テーブルを記憶しており、
前記双方向路予約制御手段は、
予約処理を行なう場合、前記予約状態管理テーブルの対応する走行区間の予約搬送車情報格納場所に、前記認識手段が認識したブロックに位置する無人搬送車を特定する情報を格納する手段と、
予約解除処理を行なう場合、前記予約状態管理テーブルの対応する走行区間の予約搬送車情報格納場所に格納してある情報を消去する手段とを備えることを特徴とする請求項３に記載の無人搬送車制御装置。
【請求項５】
前記予約・解除タイミング定義テーブルは、走行区間に対応して、走行方向毎に各走行区間を予約すべきブロック及び予約を解除すべきブロックを定義しており、
前記走行制御手段は、前記走行ルート決定手段により決定された走行ルートに基づき、前記無人搬送車の走行方向を認識する走行方向認識手段を備え、
前記双方向路予約制御手段は、認識した前記走行方向と前記予約・解除タイミング定義テーブルとに基づき、双方向の走行区間の予約処理又は予約解除処理を行なうように構成してあることを特徴とする請求項３に記載の無人搬送車制御装置。
【請求項６】
前記予約・解除タイミング定義テーブルは、走行区間に対応して、走行方向毎に各走行区間を予約すべきブロック及び予約を解除すべきブロックを定義しており、
前記走行制御手段は、前記走行ルート決定手段により決定された走行ルートに基づき、前記無人搬送車の走行方向を認識する走行方向認識手段を備え、
前記双方向路予約制御手段は、
予約処理を行なう場合、前記予約状態管理テーブルの予約搬送車情報格納場所に、更に認識した前記走行方向を特定する情報を格納する手段を備えることを特徴とする請求項４に記載の無人搬送車制御装置。
【請求項７】
前記記憶手段は、前記定義テーブルとして、前記所定のブロックを示す情報に、他の無人搬送車との干渉を生じるか否かの確認処理を行なう要確認位置を示すブロックを、前記所定の処理に係る情報に、前記他の無人搬送車が存在するか否かを確認する確認対象のブロックを夫々定義する干渉範囲定義テーブルを記憶しており、
前記走行制御手段は、
前記認識手段が認識したブロックが前記干渉範囲定義テーブルの要確認位置のブロックに定義されたブロックと一致する場合に、対応する確認対象のブロックを前記干渉範囲定義テーブルから読み出し、読み出した確認対象のブロックに他の無人搬送車が存在するか否かを前記認識手段が認識した結果に基づき判断する手段と、
前記他の無人搬送車が存在しない場合に、前記要確認位置を示すブロックに存在する無人搬送車を走行させるように制御する干渉確認制御手段とを備えることを特徴とする請求項１乃至６のいずれかに記載の無人搬送車制御装置。
【請求項８】
前記走行路は交差部を有しており、
前記干渉範囲定義テーブルは、前記要確認位置を示すブロックに前記交差部の手前のブロックを定義しており、
前記走行制御手段は、
少なくとも前記確認対象のブロックに他の無人搬送車が存在すると判断した場合に、前記要確認位置を示すブロックに存在する無人搬送車と、前記確認対象のブロックに存在する他の無人搬送車との少なくとも一方の走行ルートを確認する手段と、
確認した走行ルートに基づき、前記要確認位置を示すブロックに存在する無人搬送車を待機させた場合に、前記確認対象のブロックに存在する他の無人搬送車の進行が妨げられるか否かを判断する手段と、
前記進行が妨げられると判断した場合に、前記要確認位置を示すブロックに存在する無人搬送車を走行させ、次に、前記確認対象のブロックに存在する他の無人搬送車を走行させるように制御するルート重複確認制御手段とを備えることを特徴とする請求項７に記載の無人搬送車制御装置。
【請求項９】
前記管理手段は、前記走行路の交差部の一方の走行路を優先路、他方を非優先路として管理しており、
前記干渉範囲定義テーブルは、前記交差部における前記要確認位置を示すブロックに、非優先路上のブロックを定義していることを特徴とする請求項７又は８に記載の無人搬送車制御装置。
【請求項１０】
前記複数の搬送物置場は前記走行路に沿って設けられており、
前記記憶手段は、前記複数の搬送物置場のうち隣接する搬送物置場を示す情報を定義しており、前記隣接する搬送物置場を示す情報に対応させて、予約した無人搬送車を特定する情報を格納できる予約搬送車格納場所を有する退出予約テーブルを記憶しており、
前記走行制御手段は、
前記認識手段が認識したブロックが前記退出予約テーブルに定義される搬送物置場である場合、対応する予約搬送車格納場所に、前記認識手段が認識したブロックに位置する無人搬送車を特定する情報を格納する手段と、
前記退出予約テーブルに基づき、前記無人搬送車を、前記搬送物置場から走行路へ進入させるように制御する退出予約制御手段とを備えることを特徴とする請求項１乃至９のいずれかに記載の無人搬送車制御装置。
【請求項１１】
前記走行路は、前記無人搬送車の待機場所を有しており、
前記記憶手段は、複数の搬送物置場間及び搬送物置場と待機場所との間を連絡する走行ルートを定義した走行ルート定義テーブルを記憶しており、
所定の搬送物を搬送元の搬送物置場から搬送先の搬送物置場への搬送処理を指示する搬送命令を取得する取得手段と、
該取得手段が取得した搬送命令が指示する搬送処理に用いる無人搬送車が位置する待機場所を選択する第１選択手段と、
前記搬送命令が指示する搬送処理を行なった前記無人搬送車を帰還させる待機場所を選択する第２選択手段とを備え、
前記走行ルート決定手段は、
前記第１選択手段が選択した待機場所から前記搬送元の搬送物置場までの第１走行ルートを前記走行ルート定義テーブルに基づき決定する第１ルート決定手段と、
前記搬送元の搬送物置場から前記搬送先の搬送物置場までの第２走行ルートを前記走行ルート定義テーブルに基づき決定する第２ルート決定手段と、
前記搬送先の搬送物置場から前記第２選択手段が選択した待機場所までの第３走行ルートを前記走行ルート定義テーブルに基づき決定する第３ルート決定手段とを備えており、
前記第２ルート決定手段は、前記無人搬送車が前記第１ルート決定手段が決定した第１走行ルートを走行した後に前記第２走行ルートを決定し、
前記第３ルート決定手段は、前記無人搬送車が前記第２ルート決定手段が決定した第２走行ルートを走行した後に前記第３走行ルートを決定するように構成してあることを特徴とする請求項１乃至１０のいずれかに記載の無人搬送車制御装置。
【請求項１２】
前記管理手段は、前記走行路を、複数のブロックからなる複数のエリアに分割して管理しており、
走行できない無人搬送車が存在するエリアを特定する手段を備え、
前記走行制御手段は、
前記走行ルート決定手段が決定した走行ルートが、特定されたエリアを含まない場合に、前記走行ルートに基づき、前記無人搬送車の走行を制御するように構成してあることを特徴とする請求項１乃至１１のいずれかに記載の無人搬送車制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の搬送物置場間を連絡する走行路を走行する複数の無人搬送車を制御する無人搬送車制御装置に関するものである。
【０００２】
【従来の技術】
近年、工場及び倉庫内において、複数の工程間を連絡する走行路を設定し、この走行路に沿って配置された複数の物品（搬送物）置場間に無人搬送車（ＡＧＶ：Ａｕｔｏ  Ｇｕｉｄｅｄ  Ｖｅｈｉｃｌｅ  ）（以下、ＡＧＶという）を走行させて、物品の無人搬送を行う無人搬送システムの導入が進んでいる。
一般に、設備コストや工場・倉庫内のスペースの都合やそこで行なわれる搬送処理の状況により、ＡＧＶが走行する走行路の形態は、単線路や複線路、また単線の場合でもＡＧＶが双方向に走行できる双方向路、一方向にしか走行できない一方向路等種々のケースが存在し、また、全走行路中に前記種々の形態が混在することも多い。複線路を隣接して平行に配設された複数の単線路としてとらえれば、走行路は双方向路及び一方向路が混在又はいずれか一方の単線路で構成されていることになる。
【０００３】
この無人搬送システムにおいては、複数のＡＧＶを互いに干渉させることなく、いかに効率よく走行させるかが重要な課題である。
ここで、干渉とは、典型的には複数のＡＧＶによる衝突及び接触が発生する状況をいうが、それだけではなく、例えば、他のＡＧＶとの車間距離を少なくとも予め定めた所定距離以上とるような制御を行なっている場合に、双方向に走行可能な単線の走行路に対向する２台のＡＧＶが存在する場合、それら２台の車間距離が上記所定距離まで接近した時点で、互いにそれ以上進むことができず身動きがとれなくなってしまうデッドロック状態となるが、このような状況も本発明でいう干渉の１つである。
【０００４】
従って、このようなＡＧＶの干渉を確実に回避する必要があり、一般に、上述した無人搬送システムを構成する各ＡＧＶの制御方法としては、全てのＡＧＶの走行状態を中央制御装置にて管理し、この中央制御装置が、各ＡＧＶを制御する中央集中制御方法と、ＡＧＶ自体が自身の走行制御を行う自立分散制御方法とが提案されている。
ここで、中央集中制御方法においては、中央制御装置が、全てのＡＧＶの位置及び走行状態等を把握し、各ＡＧＶの走行制御を行うため、効率のよい無人搬送システムを実現できることが期待されている。
【０００５】
上述した中央集中制御方法については、走行路を複数の閉区間（ゾーン）に分割して管理し、走行ルートの起点から終点までの全てのゾーンについて、ＡＧＶを走行させる前に予約し、予約したゾーンを１台のＡＧＶで占有させて走行させる搬送車制御装置が知られている（例えば、特許文献１参照）。また、走行ルートの起点から終点までの全てのゾーンを一時に（同時に）予約するのではなく、当該起点から終点までの間に１又は複数の回避ゾーンを設定し、起点から回避ゾーンまでの間の全ゾーン、複数の回避ゾーン間の全ゾーン、回避ゾーンから終点までの全ゾーンを随時予約し、予約したゾーンを１台のＡＧＶで占有させて走行させる搬送車制御装置も知られている（例えば、特許文献２参照）。
このようなシステムにおいては、走行するＡＧＶが、自身の走行ルートをゾーン毎に予約し、予約順序にて各ゾーンを占有して走行することにより、ＡＧＶ同士の干渉及び衝突を回避することができる。
【０００６】
【特許文献１】
特開平２−２４７０６号公報
【０００７】
【特許文献２】
特開２００２−１９６８２２号公報
【０００８】
【発明が解決しようとする課題】
しかし、特許文献１の制御装置においては、起点から終点までの全ゾーンを１台のＡＧＶが占有することになり、他のＡＧＶは当該ゾーンには進入できず長時間待機する必要があり、複数のＡＧＶを用い効率よく搬送処理を行なうことが困難であるという問題があった。また、特許文献２の制御装置においては、起点から終点までの全ゾーンを複数に分割して予約し、予約したゾーンのみが１台のＡＧＶで占有されることになるので、多少効率は上がるが、起点から終点までの全走行ルートをゾーン予約処理のみによって制御しており、予約しているゾーンは１台のＡＧＶに占有されるため、やはり効率の点で問題があった。
【０００９】
本発明は以上のような事情に鑑みてなされたものであり、複数のＡＧＶを効率よく走行させることができる無人搬送車制御装置を提供することが目的である。更に、各種設備変更（置場の追加、削除、走行路の延長、ＡＧＶの追加等）に容易に対応できる無人搬送車制御装置を提供することが目的である。
【００１０】
【課題を解決するための手段】
第１発明に係る無人搬送車制御装置は、複数の搬送物置場間を連絡する走行路を走行する複数の無人搬送車を制御する無人搬送車制御装置において、前記走行路及び前記搬送物置場を複数のブロックに区分して管理する管理手段と、前記無人搬送車が走行する走行ルートを決定する走行ルート決定手段と、前記無人搬送車が存在するブロックを検知する検知手段が検知したブロックに基づき、各無人搬送車の位置するブロックを認識する認識手段と、所定のブロックを示す情報、及び前記認識手段が前記所定のブロックを認識した場合に行なう所定の処理に係る情報を対応させて定義した少なくとも１つの定義テーブルを記憶する記憶手段と、前記認識手段が認識したブロックに対応する前記所定の処理に係る情報を前記定義テーブルから読み出し、読み出した情報及び前記走行ルート決定手段が決定した走行ルートに基づき、前記無人搬送車の走行を制御する走行制御手段とを備えることを特徴とする。
【００１１】
第１発明による場合は、走行路及び搬送物置場を複数のブロックに区分して管理しており、夫々の無人搬送車が存在するブロックを検知し、検知したブロックに基づき、各無人搬送車の位置するブロックを認識する。また、所定のブロックを示す情報と、前記所定のブロックに位置する無人搬送車を認識した場合に行なう所定の処理に係る情報とを対応させて定義した少なくとも１つの定義テーブルを記憶しておき、認識したブロックに対応する前記所定の処理に係る情報を前記定義テーブルから読み出し、読み出した情報に基づき、走行制御手段にて前記無人搬送車の走行を制御する。
このように、走行路を走行する無人搬送車の、前記走行路上の位置に対応する処理を行なうことにより、他の無人搬送車との干渉を回避することができる。
【００１２】
第２発明に係る無人搬送車制御装置は、前記認識手段が認識した各無人搬送車の位置するブロックに基づき、夫々の無人搬送車を、前方を走行する他の無人搬送車から少なくとも予め定めたブロック数を隔てて走行させるように制御する前方干渉防止制御手段を備えることを特徴とする。
【００１３】
第２発明による場合は、各無人搬送車を、前方を走行する他の無人搬送車から予め定めたブロック数以上の距離を隔てて走行させることにより、前方の他の無人搬送車との衝突を回避しながら走行させることができる。これにより、同方向に走行する他の無人搬送車との干渉（追突）を確実に回避することができる。
【００１４】
第３発明に係る無人搬送車制御装置は、前記走行路は、前記無人搬送車が双方向に走行可能な双方向の走行区間を複数有しており、前記定義テーブルは、前記所定の処理に係る情報に、双方向の走行区間を特定する情報を、前記所定のブロックを示す情報に、前記走行区間を予約すべきブロック及び予約を解除すべきブロックを夫々定義する予約・解除タイミング定義テーブルを含んでおり、前記走行制御手段は、前記認識手段が認識した各無人搬送車の位置するブロックが前記予約・解除タイミング定義テーブルに定義される場合に、対応する走行区間の予約処理又は予約解除処理を行なう双方向路予約制御手段を備えることを特徴とする。
【００１５】
第３発明による場合は、無人搬送車が双方向の走行区間を走行する場合には、前記走行区間への進入を予約することにより、無人搬送車を、前記走行区間を占有して走行させることができ、双方向の走行区間における他の無人搬送車との干渉を確実に回避することができる。
また、無人搬送車が現在位置するブロックの認識処理と前記予約・解除タイミング定義テーブルの参照処理にて各走行区間の予約処理及び予約解除処理を行なうことができる。
【００１６】
第４発明に係る無人搬送車制御装置は、前記記憶手段は、前記走行区間毎に、該走行区間の走行を予約する無人搬送車を特定する情報を格納する予約搬送車情報格納場所を有する予約状態管理テーブルを記憶しており、前記双方向路予約制御手段は、予約処理を行なう場合、前記予約状態管理テーブルの対応する走行区間の予約搬送車情報格納場所に、前記認識手段が認識したブロックに位置する無人搬送車を特定する情報を格納する手段と、予約解除処理を行なう場合、前記予約状態管理テーブルの対応する走行区間の予約搬送車情報格納場所に格納してある情報を消去する手段とを備えることを特徴とする。
【００１７】
第４発明による場合は、走行区間毎に、該走行区間の走行を予約する無人搬送車を特定する情報を格納する予約搬送車情報格納場所を有する予約状態管理テーブルを有し、双方向の走行区間を予約する場合、前記予約状態管理テーブルの対応する走行区間の予約搬送車情報格納場所に、予約すべき無人搬送車を特定する情報を格納し、また、予約を解除する場合、前記予約状態管理テーブルの対応する走行区間の予約搬送車情報格納場所に格納してある情報を消去することにより、予約処理及び予約解除処理を行なう。この予約状態管理テーブルにより、容易に前記走行区間の予約状況を管理することができる。
【００１８】
第５発明に係る無人搬送車制御装置は、前記予約・解除タイミング定義テーブルは、走行区間に対応して、走行方向毎に各走行区間を予約すべきブロック及び予約を解除すべきブロックを定義しており、前記走行制御手段は、前記走行ルート決定手段により決定された走行ルートに基づき、前記無人搬送車の走行方向を認識する手段を備え、前記双方向路予約制御手段は、認識した前記走行方向と前記予約・解除タイミング定義テーブルとに基づき、双方向の走行区間の予約処理又は予約解除処理を行なうように構成してあることを特徴とする。
【００１９】
第６発明に係る無人搬送車制御装置は、前記予約・解除タイミング定義テーブルは、走行区間に対応して、走行方向毎に各走行区間を予約すべきブロック及び予約を解除すべきブロックを定義しており、前記走行制御手段は、前記走行ルート決定手段により決定された走行ルートに基づき、前記無人搬送車の走行方向を認識する走行方向認識手段を備え、前記双方向路予約制御手段は、予約処理を行なう場合、前記予約状態管理テーブルの予約搬送車情報格納場所に、認識した前記走行方向を特定する情報を格納する手段を備えることを特徴とする。
【００２０】
第５及び第６発明による場合は、第３、第４発明に加え各無人搬送車の走行方向も考慮して各走行区間の予約処理を行なっているため、同一走行区間内に同時に走行方向が一致する複数の無人搬送車を走行させることが可能となり、１台の無人搬送車による走行区間の占有を緩和することができ、より効率のよい搬送処理が可能となる。
【００２１】
第７発明に係る無人搬送車制御装置は、前記定義テーブルは、前記所定のブロックを示す情報に、他の無人搬送車との干渉を生じるか否かの確認処理を行なう要確認位置を示すブロックを、前記所定の処理に係る情報に、前記他の無人搬送車が存在するか否かを確認する確認対象のブロックを夫々定義する干渉範囲定義テーブルを含んでおり、前記走行制御手段は、前記認識手段が認識したブロックが前記干渉範囲定義テーブルの要確認位置のブロックに定義される場合に、対応する確認対象のブロックを前記干渉範囲定義テーブルから読み出し、読み出した確認対象のブロックに他の無人搬送車が存在するか否かを前記搬送車状態テーブルに基づき判断する手段と、前記他の無人搬送車が存在しない場合に、前記要確認位置を示すブロックに存在する無人搬送車を走行するように制御する干渉確認制御手段とを備えることを特徴とする。
【００２２】
第７発明による場合は、認識手段が認識したブロックが干渉範囲定義テーブルの要確認位置のブロックに定義される場合に、対応する確認対象のブロックに他の無人搬送車が存在するか否かを前記搬送車状態テーブルに基づき判断し、前記他の無人搬送車が存在しない場合に、前記要確認位置を示すブロックに存在する無人搬送車を走行することにより、無人搬送車が現在位置するブロックの認識処理と前記干渉範囲定義テーブルの参照処理にて、他の無人搬送車との衝突及び干渉を回避することができる。
【００２３】
第８発明に係る無人搬送車制御装置は、前記走行路は交差部を有しており、前記干渉範囲定義テーブルは、前記要確認位置を示すブロックに前記交差部の手前のブロックを定義しており、前記走行制御手段は、前記確認対象のブロックに他の無人搬送車が存在すると判断した場合に、前記要確認位置を示すブロックに存在する無人搬送車と、前記確認対象のブロックに存在する他の無人搬送車との少なくとも一方の走行ルートを確認する手段と、確認した走行ルートに基づき、前記要確認位置を示すブロックに存在する無人搬送車を待機させた場合に、前記確認対象のブロックに存在する他の無人搬送車の進行が妨げられるか否かを判断する手段と、前記進行が妨げられると判断した場合に、前記要確認位置を示すブロックに存在する無人搬送車を走行させ、次に、前記確認対象のブロックに存在する他の無人搬送車を走行させるように制御するルート重複確認制御手段とを備えることを特徴とする。
【００２４】
第８発明による場合は、他の無人搬送車との衝突及び干渉が生じるおそれのある確認対象のブロックに他の無人搬送車が存在する場合であっても、当該無人搬送車が停止することにより、前記他の無人搬送車の進行を妨げる場合には、当該無人搬送車を走行させることにより、当該無人搬送車が停止することによる走行路の交差部におけるデッドロックを回避することができる。
【００２５】
第９発明に係る無人搬送車制御装置は、前記管理手段は、前記走行路の交差部の一方の走行路を優先路、他方を非優先路として管理しており、前記干渉範囲定義テーブルは、前記交差部における前記要確認位置を示すブロックに、非優先路上のブロックを定義していることを特徴とする。
【００２６】
第９発明による場合は、干渉範囲定義テーブルが、前記交差部における前記要確認位置を示すブロックに非優先路上のブロックを定義していることにより、干渉確認制御手段は、交差部においては、非優先路上の無人搬送車のみについて制御するため、前記干渉確認制御手段における処理負担を軽減することができる。
【００２７】
第１０発明に係る無人搬送車制御装置は、前記複数の搬送物置場は前記走行路に沿って設けられており、前記定義テーブルは、前記複数の搬送物置場のうち隣接する搬送物置場を示す情報を定義しており、前記隣接する搬送物置場を示す情報に対応させて、予約した無人搬送車を特定する情報を格納できる予約搬送車格納場所を有する退出予約テーブルを含んでおり、前記走行制御手段は、前記認識手段が認識したブロックが前記退出予約テーブルに定義される搬送物置場である場合、対応する予約搬送車格納場所に、前記認識手段が認識したブロックに位置する無人搬送車を特定する情報を格納する手段と、前記退出予約テーブルに基づき、前記無人搬送車を、前記搬送物置場から走行路へ進入させるように制御する退出予約制御手段とを備えることを特徴とする。
【００２８】
第１０発明による場合は、無人搬送車が走行路に設けられた搬送物置場から退出する場合に、退出予約テーブルの対応する予約搬送車格納場所に、退出すべき無人搬送車を特定する情報を格納することにより、各無人搬送車が隣接する搬送物置場から走行路へ進入（搬送物置場から退出）する場合、１台ずつ退出させることができ、各無人搬送車の前記搬送物置場からの退出処理における他の無人搬送車との衝突を回避することができる。
【００２９】
第１１発明に係る無人搬送車制御装置は、前記走行路は、前記無人搬送車の待機場所を有しており、前記記憶手段は、複数の搬送物置場及び搬送物置場と待機場所との間を連絡する走行ルートを定義した走行ルート定義テーブルを記憶しており、所定の搬送物を搬送元の搬送物置場から搬送先の搬送物置場への搬送処理を指示する搬送命令を取得する取得手段と、該取得手段が取得した搬送命令が指示する搬送処理に用いる無人搬送車が位置する待機場所を選択する第１選択手段と、前記搬送命令が指示する搬送処理を行なった前記無人搬送車を帰還させる待機場所を選択する第２選択手段とを備え、前記走行ルート決定手段は、前記第１選択手段が選択した待機場所から前記搬送元の搬送物置場までの第１走行ルートを前記走行ルート定義テーブルに基づき決定する第１ルート決定手段と、前記搬送元の搬送物置場から前記搬送先の搬送物置場までの第２走行ルートを前記走行ルート定義テーブルに基づき決定する第２ルート決定手段と、前記搬送先の搬送物置場から前記第２選択手段が選択した待機場所までの第３走行ルートを前記走行ルート定義テーブルに基づき決定する第３ルート決定手段とを備えており、前記第２ルート決定手段は、前記無人搬送車が前記第１ルート決定手段が決定した第１走行ルートを走行した後に前記第２走行ルートを決定し、前記第３ルート決定手段は、前記無人搬送車が前記第２ルート決定手段が決定した第２走行ルートを走行した後に前記第３走行ルートを決定するように構成してあることを特徴とする。
【００３０】
第１１発明による場合は、複数の搬送物置場間及び搬送物置場−待機場所間を連絡する走行ルートを定義した走行ルート定義テーブルを予め記憶しておくことで、搬送処理に用いる無人搬送車の待機場所から搬送元の搬送物置場までの第１走行ルートと、搬送元の搬送物置場から搬送先の搬送物置場までの第２走行ルートと、搬送先の搬送物置場から前記無人搬送車を帰還させる待機場所までの第３走行ルートとを走行ルート定義テーブルからの選択処理にて容易に決定することができる。
また、１つの搬送処理を第１走行ルートの走行、第２走行ルートの走行、第３走行ルートの走行という３つの走行段階に分け、夫々の走行段階毎に走行ルートを決定している。従って、１つの走行ルートを（全ルートをまとめて定義する場合に較べ）比較的容易に定義することができ、走行路の追加や一方向路から双方向路への切り替え（又はその逆）等の設備変更に対し、比較的容易に走行ルートの定義テーブルの走行ルート定義内容の変更が可能となる。
【００３１】
第１２発明に係る無人搬送車制御装置は、前記管理手段は、前記走行路を、複数のブロックを有する複数のエリアに分割して管理しており、走行できない無人搬送車が存在するエリアを特定する手段を備え、前記走行制御手段は、前記走行ルート決定手段が決定した走行ルートが、特定されたエリアを含まない場合に、前記走行ルートに基づき、前記無人搬送車の走行を制御するように構成してあることを特徴とする。
【００３２】
第１２発明による場合は、重故障等により走行できない無人搬送車が存在するエリアを特定し、前記走行ルート決定手段が決定した走行ルートが、特定されたエリアを含まない場合に、前記走行ルートに基づき、前記無人搬送車の走行を制御することにより、重故障の無人搬送車による影響を受けない搬送処理を継続して行なうことができ、重故障の無人搬送車による搬送作業の影響を最小限に抑えることができる。
即ち、一部エリアの不具合により工場や倉庫における全搬送処理を停止することなく、不具合の影響のない搬送処理を行なうことができる。
【００３３】
【発明の実施の形態】
以下に、本発明に係る無人搬送車制御装置を、コンピュータを利用した実施の形態を示す図面に基づいて詳述する。図１は本発明に係る無人搬送車制御装置を用いた無人搬送システムの構成を示す模式図であり、この無人搬送システムは、本発明の無人搬送車制御装置としてのコンピュータ１と、所定の走行路上を走行する複数のＡＧＶ（無人搬送車）３，３…と、コンピュータ１からの命令により複数のＡＧＶ３，３…の走行状態を制御するＡＧＶコントローラ２とにより構成されている。
尚、各ＡＧＶ３，３…には、車上コントローラ３０，３０…が夫々搭載されており、ＡＧＶコントローラ２からの指示による車上コントローラ３０，３０…の制御により、各ＡＧＶ３，３…は自動走行している。
【００３４】
本実施の形態では、ＡＧＶコントローラ２とＡＧＶ３，３…に搭載された車上コントローラ３０，３０…とは無線通信が可能に構成されており、ＡＧＶコントローラ２は、ネットワークＮを介して接続してあるコンピュータ１により決定された制御処理に従ってＡＧＶ３，３…を走行させるべく、無線通信にて各ＡＧＶ３，３…に搭載された車上コントローラ３０，３０…に制御信号を送信する。
また、コンピュータ１は、工場等の構内に構築された構内ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続してあり、この構内ＬＡＮを介して、工場内の各種のコンピュータを制御する上位コンピュータ４に接続されている。
【００３５】
上位コンピュータ４は、例えば、「製品Ａを１００個」という注文を受けた場合（このような注文が上位コンピュータ４に入力された場合）に、この製品Ａを製造するために必要な製造工程等を決定し、それに基づき、当該製造工程中の適切な場面において、必要な搬送処理を示す搬送命令を構内ＬＡＮを介して下位のコンピュータ（例えば、コンピュータ１）へ送信する。
例えば、処理ライン１による処理の後に処理ライン２による処理が必要であるような場合、処理ライン１にて処理された製品１（製造途中の未完成品であるが便宜上「製品１」と称する）は、その処理ライン１の出口近傍に設置された置場に一旦置かれ、所定のタイミングでその製品１を、次の工程である処理ライン２の入口近傍に設置された置場まで搬送する必要がある。
【００３６】
このような場合、処理ライン１の出口置場から処理ライン２の入口置場へ製品１を搬送する処理が必要となり、「製品１を処理ライン１の出口置場から処理ライン２の入口置場まで搬送せよ」という旨の搬送命令が上位コンピュータ４からコンピュータ１へ送信される。
上述した搬送命令を取得（受信）したコンピュータ１は、取得した搬送命令に基づき、搬送命令が示す各搬送処理に用いるＡＧＶ３を決定し、このＡＧＶ３が他のＡＧＶ３，３…と干渉せずに走行できるように、ＡＧＶコントローラ２を介して制御する。
【００３７】
図２は本実施の形態に係る無人搬送システムの構成を示すブロック図であり、本発明の無人搬送車制御装置としてのコンピュータ１は、ＣＰＵ１０，ハードディスク（以下、ＨＤという）１１，ＲＡＭ１２，ディスプレイ１３，キーボード１４，マウス１５，ネットワークＮを介してＡＧＶコントローラ２と通信を行うための通信インタフェース１６等を備えている。
ＣＰＵ１０は、バスを介してコンピュータ１の上述したようなハードウェア各部と接続されており、それらを制御すると共に、ＨＤ１１に格納されたコンピュータプログラムを順次実行する。
【００３８】
ＨＤ１１は、コンピュータ１を無人搬送車制御装置として動作させるために必要な種々のコンピュータプログラム（図示せず）の他に本実施の形態の特徴である、無人搬送車制御装置としての各処理に用いる各種のテーブル（一部図示せず）を予め記憶している。
ＲＡＭ１２は、ＳＲＡＭ，ＤＲＡＭ，フラッシュメモリ等で構成されており、コンピュータ１による無人搬送車制御の実行中は、前記各種のテーブルも必要に応じて適宜ＨＤ１１から読み出されて、ＲＡＭ１２に一時的に記憶される。
【００３９】
また、ＡＧＶコントローラ２は、ＣＰＵ２０，ＲＯＭ２１，ＲＡＭ２２，ネットワークＮを介してコンピュータ１と通信を行うための通信インタフェース２３，無線通信方式を利用して各ＡＧＶ３，３…に搭載された車上コントローラ３０，３０…と通信を行うための無線通信インタフェース２４等を備えており、例えば、市販のプログラマブルコントローラを用いることができる。
【００４０】
以下に、上述した構成の無人搬送システムにおいて、各ＡＧＶ３，３…が走行する走行路について説明する。図３はＡＧＶが走行する走行路の設置例を示す図であり、図においては一部が省略されている。
本実施の形態では、走行路は、後述する仮想的な複数のブロックＣ２０〜Ｃ４２に区分されて管理されている。また、走行路には、複数の交差部（交差点）が存在しており、図においてはＫ１，Ｋ２が夫々交差部を示している。
【００４１】
また、走行路には、ＡＧＶが双方向に走行可能である走行区間がある。図においては、走行区間Ｗ１（ブロックＣ２０…Ｃ２３）、Ｗ２（ブロックＣ２４，Ｃ２５）、Ｗ３（ブロックＣ２６…Ｃ２８）及びＷ４（ブロックＣ３８…Ｃ４２…（Ｃ４２の左方は図示せず））が双方向Ａ，Ｂに走行可能な走行区間である。その他の区間はＡＧＶが一方向にのみ走行可能な走行区間である。図中、上下方向の走行区間（ブロックＣ３１…Ｃ３７…（Ｃ３７の上方は図示せず））はＣ方向にのみ走行可能な一方向の走行区間であり、また、双方向の走行区間Ｗ３の左方（ブロックＣ２８の左方）には、Ｅ方向にのみ走行可能な一方向の走行区間がある。
尚、以降の説明において、走行路におけるＡＧＶが双方向に走行可能な走行区間を「双方向路」、一方向にのみ走行可能な走行区間を「一方向路」と呼ぶこともある。また、図３に示す双方向路においては、Ｄ方向を正方向、Ｅ方向を逆方向とする。
【００４２】
図中ＳＫ１０…ＳＫ１９は、この走行路に沿って搬送される搬送物の置場を夫々示しており、各搬送物置場ＳＫ１０…ＳＫ１９間をＡＧＶ３，３…が自動走行すべく、走行路が配置されている。
尚、本実施の形態においては、近傍に併設される搬送物置場ＳＫ１０…ＳＫ１３は置場ステーションＳＴ１として、搬送物置場ＳＫ１４，ＳＫ１５は置場ステーションＳＴ２として、搬送物置場ＳＫ１６，ＳＫ１７は置場ステーションＳＴ３として、搬送物置場ＳＫ１８，ＳＫ１９は置場ステーションＳＴ４として、一括に管理しており、これにより、コンピュータ１による搬送車制御処理における各処理を簡略化している。
【００４３】
また、図中ＨＰ１，ＨＰ２，ＨＰ３は、ＡＧＶを充電する充電器を備えた待機位置（待機場所）を示しており、走行路の適宜箇所に配置してある。尚、本実施の形態では、後述するとおり、各ＡＧＶ３，３…は、１つの搬送処理を終了した場合、いずれかの待機位置まで走行し、次の搬送処理まで待機するものとする。即ち、各ＡＧＶ３，３…は、故障状態でない限り、搬送処理を行なっていない場合は、いずれかの待機位置にて待機している。
【００４４】
上述した走行路、搬送物置場ＳＫ１０…ＳＫ１９、各搬送物置場の置場前位置（この部分も走行路の一部とみなせるが、幹線路と区別する目的で置場前位置として管理する。）、及び待機位置ＨＰ１…ＨＰ３上には夫々、磁気マーカ等からなるセンサＤ２０…Ｄ４２，Ｄ５０…Ｄ５９，Ｄ１０…Ｄ１９，Ｄ１…Ｄ３が配置してあり、ＡＧＶ３，３…に搭載された車上コントローラ３０，３０…は、各センサにより、自身のＡＧＶ３，３…の現在位置を検出することができ、無線通信方式に従ってＡＧＶコントローラ２に、検知した現在位置情報（後述のブロック番号）を報知する。
【００４５】
また、ＡＧＶコントローラ２は、報知された各ＡＧＶ３，３…の現在位置をコンピュータ１に通知し、これによりコンピュータ１はＡＧＶ３，３…の現在位置を把握することができ、通知された各ＡＧＶ３，３…の現在位置を、図３において破線で示す各ブロック単位で管理する。コンピュータ１による各ＡＧＶ３，３…の現在位置の管理は、後述するＡＧＶ状態管理テーブルの現在位置情報を、定期的に（一定の周期で）通知される現在位置情報に更新することにより行なう。
尚、図３に示す破線は、本発明の搬送車制御処理のために（例えば、各ＡＧＶの現在位置を把握し、管理するために）、仮想的に引いている線であり、走行路上に実際に引かれているものではない。
【００４６】
本実施の形態では、走行路上の各ブロック及び各置場前位置を夫々ブロックＣ２０…Ｃ４２、Ｃ１０…Ｃ１９として管理している（図３中では一部のみを図示しているが、上記センサＤ２０…Ｄ４２、Ｄ１０…Ｄ１９が配置されているブロックの番号が夫々Ｃ２０…Ｃ４２、Ｃ１０…Ｃ１９である）。また、各搬送物置場ＳＫ１０…ＳＫ１９、及び各待機場所ＨＰ１…ＨＰ３についても、夫々ブロックの１つとして管理している。即ち、コンピュータ１は、走行路の各ブロックをブロック番号Ｃ２０…Ｃ４２を用いて、各置場前位置をブロック番号Ｃ１０…Ｃ１９を用いて、各搬送物置場をブロック番号ＳＫ１０…ＳＫ１９を用いて、各待機場所をブロック番号ＨＰ１…ＨＰ３を用いて特定することができ、このブロック番号により管理している。
【００４７】
前述のとおり、コンピュータ１が上位コンピュータ４から取得する搬送命令は、ある搬送物置場に置かれている被搬送物を別の搬送物置場まで搬送せよという旨のものであるが、コンピュータ１は、このような搬送命令に基づき搬送処理を行なう場合、まず、複数あるＡＧＶ３，３…から、その搬送処理に用いるＡＧＶを決定する必要がある。
コンピュータ１のＨＤ１１には予め図４に示す出動優先順位定義テーブル１１ａが記憶してあり、ＣＰＵ１０はこの出動優先順位定義テーブル１１ａを参照し、各搬送処理に用いるＡＧＶ３を決定する。
【００４８】
出動優先順位定義テーブル１１ａは、上記置場ステーションＳＴ１，ＳＴ２…毎に、出動させるべきＡＧＶ３の待機位置を出動優先順位順に示したものであり、例えば、置場ステーション毎に、距離的に近い順に待機位置の優先順位を定めたものである。尚、置場ステーションと待機位置間の走行路が双方向区間であるか一方向区間であるかを考慮して、単純な直線距離ではなく、実際の走行距離に基づいて優先順位を定めた方がよい。
【００４９】
ＣＰＵ１０は、例えば、取得した搬送処理における被搬送物の搬送元である搬送物置場が、置場ステーションＳＴ１内にある場合に、出動優先順位が１位である待機位置ＨＰ１にＡＧＶが待機している場合は、そのＡＧＶ３によりこの搬送処理を行なうように決定し、待機位置ＨＰ１にＡＧＶが待機していない場合（不在の場合）は、出動優先順位が２位である待機位置ＨＰ３に待機しているＡＧＶを、そこにもＡＧＶが不在の場合には出動優先順位が３位である待機位置ＨＰ４に待機しているＡＧＶを当該搬送処理に用いるように決定する。
【００５０】
尚、各待機位置におけるＡＧＶの充電完了までの充電残り時間を管理しておき、出動優先順位が上位の待機位置にＡＧＶが存在している場合であっても、その充電残り時間が予め定めた所定時間よりも長い場合には、それより出動優先順位が下位の待機位置のＡＧＶを搬送処理に用いるように処理してもよい。この場合、充電残り時間が短いＡＧＶを選択することにより、搬送処理を開始するまでに発生する待ち時間（無駄時間）を短縮することができ、処理の効率化を図ることができる。尚、各待機位置における各ＡＧＶの充電残時間の管理方法については後述する。
【００５１】
また、図４に示す出動優先順位定義テーブル１１ａの例では優先順位３位までを定義しているが、４位以下を定義してもよいことは言うまでもない。更に、上述したように、この出動優先順位は、各置場ステーション毎に設定してあるが、各搬送物置場毎に設定することもできる。
ここで、コンピュータ１は、ＨＤ１１に図５に示すような各ＡＧＶ３，３…の走行状態等を示すＡＧＶ状態管理テーブル（無人搬送車状態管理テーブル）１１ｄを記憶しており、出動させるＡＧＶ３を決定する際に、各ＡＧＶ３，３…の動作状態をＡＧＶ状態管理テーブル１１ｄにより確認することができる。
【００５２】
このＡＧＶ状態管理テーブル１１ｄには、図５に示すように各ＡＧＶ３，３…について、ＡＧＶを特定するためのＡＧＶ番号、本システムへの登録状態、走行状態、搬送処理における搬送物を示す搬送物コード、前記搬送処理における搬送元の搬送物置場（「搬送元」と表示）及び搬送先の搬送物置場（「搬送先」と表示）、前記搬送処理において現在走行中の走行ルートの走行元及び走行先、車上コントローラ３０により検出され、上述のとおりコンピュータ１に通知される現在位置（現在位置するブロック番号）が格納される。尚、ＡＧＶ状態管理テーブル１１ｄに格納する情報は上記に限る必要はなく、少なくともコンピュータ１に認識させるべきＡＧＶの現在位置情報が格納されていればよく、他は処理に必要な情報を適宜格納すればよい。
【００５３】
コンピュータ１のＣＰＵ１０は、定期的に（一定の周期で）、上述したとおり、各ＡＧＶの車上コントローラ３０，３０…からＡＧＶコントローラ２を介して通知される現在位置情報に基づいて、ＡＧＶ状態管理テーブル１１ｄの内容を更新している。これにより、ＣＰＵ１０は、各ＡＧＶ３，３…の現在位置をリアルタイムに管理することができ、必要時にこのテーブルを参照することで各ＡＧＶの現在位置を認識できる認識手段として動作できる。
尚、コンピュータ処理においては、処理実行に際して、ハードディスクに記憶されているプログラムやデータ等を適宜ＲＡＭに移すことが一般的に行なわれており、本実施の形態においても、このＡＧＶ状態管理テーブル１１ｄは、コンピュータ１による処理中は、適宜、ＨＤ１１から読み出してＲＡＭ１２に一時記憶させておき、ＣＰＵ１０はＲＡＭ１２にアクセスして内容の更新（書き込み）又は内容の参照（読み出し）するようにしている。
【００５４】
ここで、１つの搬送処理を行なうＡＧＶ３は、先の待機位置（ＡＧＶを出動させる待機位置）から搬送元の搬送物置場までの第１走行ルートと、前記搬送元の搬送物置場から搬送先の搬送物置場までの第２走行ルートと、前記搬送先の搬送物置場から次の待機位置（ＡＧＶを帰還させる待機位置）までの第３走行ルートを順次走行することにより各搬送処理を実現しており、第１走行ルートにおいては、先の待機位置を走行元、前記搬送元を走行先とし、第２走行ルートにおいては、前記搬送元を走行元、前記搬送先を走行先とし、第３走行ルートにおいては、前記搬送先を走行元、次の待機位置を走行先としている。
【００５５】
コンピュータ１は、上述のとおり、１つの搬送処理に用いるＡＧＶを決定（具体的には、上述のように搬送処置に用いるべきＡＧＶが待機している待機位置を決定）すれば、次にそのＡＧＶを走行させる走行ルートを決定する必要がある。
尚、上述したように、１つの搬送処理に用いるＡＧＶ３は、第１走行ルート、第２走行ルート及び第３走行ルートを走行する必要があり、コンピュータ１のＣＰＵ１０は、各走行ルートを、ＨＤ１１に予め記憶してある図６に示す走行ルート定義テーブル１１ｂから選択し決定する走行ルート決定手段として動作している。
【００５６】
走行ルート定義テーブル１１ｂは、走行路上に設定された各搬送物置場間を連絡する走行ルート、及び各搬送物置場と各待機位置との間を連絡する走行ルートを定義したものである。
例えば、走行元を搬送物置場ＳＫ１０とし、走行先を搬送物置場ＳＫ１５とした場合の走行ルートは、ブロックＣ２１，Ｃ２２，Ｃ２３，Ｃ２４，Ｃ２５，Ｃ３１，Ｃ３２，Ｃ３３，Ｃ３４，Ｃ３８，Ｃ３９，Ｃ４０，Ｃ４１，Ｃ４２を、この順序にて辿るルートに決定される。
【００５７】
このように決定された走行ルートは、ＨＤ１１に記憶（用意）されている各ＡＧＶ毎の走行ルート管理テーブル（図示せず）に格納され、コンピュータ１（ＣＰＵ１０）はこの走行ルート管理テーブルを参照することで各ＡＧＶの走行ルートを確認することができる。走行ルート管理テーブルは、例えば、ＡＧＶ毎に前述のとおり決定された走行ルートの全ブロックのブロック番号を走行順に格納したものである。また、この走行ルート管理テーブルもコンピュータ１による処理中は適宜ＲＡＭ１２に一時記憶される。
尚、決定された走行ルートの管理はこれに限らず、例えば、前述のＡＧＶ状態管理テーブル１１ｄに格納して管理することもできる。また、ブロックの区分の仕方や置場ステーションの大きさによっては、置場ステーション単位で走行ルートを定義することもできる。
【００５８】
また、各待機位置間を連絡する走行ルートも走行ルート定義テーブル１１ｂに登録しておいてもよい。これにより、ある待機位置に備えた充電器が故障等し、ＡＧＶ３を他の待機位置へ走行させる必要がある場合の走行ルートも、この走行ルート定義テーブル１１ｂから選択して決定することができる。
更に、１組の走行元及び走行先について、複数の走行ルートを優先順位を設定して走行ルート定義テーブル１１ｂに登録してもよい。この場合は、例えば優先順位が１位の走行ルート上に故障中のＡＧＶが存在する等の不具合が発生し、そのルートが使えない場合であっても、走行ルート定義テーブル１１ｂに登録された他の走行ルート（優先順位の低い走行ルート）を利用することで、より効率よく各ＡＧＶ３，３…を走行させることができる。
【００５９】
以上のようにして、コンピュータ１は、搬送処理に用いるＡＧＶを決定し、更に走行ルートを決定するが、次に、その決定された走行ルートに従って、当該搬送処理に用いるＡＧＶ３（以下の説明において「自ＡＧＶ」と称することもある。「自ＡＧＶ」とは、その時点においてコンピュータ１の制御対象となっているＡＧＶを指しており、干渉対象となる他のＡＧＶと対比する意味で「自ＡＧＶ」と称するのであって、場面場面で「自ＡＧＶ」が指す具体的なＡＧＶは異なることとなる）を、他のＡＧＶ３，３…と干渉しないように走行させる必要がある。
以下に、コンピュータ１が、自ＡＧＶを他のＡＧＶとの干渉を防止しながら前述の走行ルートに従って走行させる際に行なう制御処理について説明する。
【００６０】
まず、自ＡＧＶの走行ルート上の前方を走行する他のＡＧＶとの干渉防止に関するコンピュータ１の制御処理について説明する（以下、この制御を「前方干渉防止制御」と呼ぶことがある）。
この場合の干渉としては、前方を走行する他のＡＧＶへの追突が考えられるため、これを防止するために、自ＡＧＶと前方を走行する他のＡＧＶとの間に少なくとも予め定めた所定数（以下、この所定数を「Ｎ」とする。Ｎ＝１，２，３…）のブロックが存在するように制御する。換言すれば、自ＡＧＶを他のＡＧＶと少なくともＮブロック隔てて走行させるよう制御する。より詳細には、ＣＰＵ１０は、ＡＧＶ状態管理テーブル１１ｄを参照して各ＡＧＶの現在位置を確認し、また走行ルート管理テーブルを参照して自ＡＧＶの走行ルートを確認して、自ＡＧＶの走行ルート上の前方Ｎブロックに他のＡＧＶが存在しない場合に自ＡＧＶに対して進行許可を出す（尚、前方Ｎブロックに他のＡＧＶが存在しない場合でも、後述する他の制御処理の内容によって他に干渉の要因があると判断した場合には、コンピュータ１は自ＡＧＶを必ずしも進行させるとは限らない。）。
【００６１】
次に、双方向の走行区間を走行する場合の干渉防止に関するコンピュータ１の制御処理について説明する（以下、この制御を「双方向路予約制御」と呼ぶことがある）。
この場合の干渉としては、典型的には対向する他のＡＧＶとの正面衝突が考えられる。また、上述の前方干渉防止制御を行なっている場合には、対向する他のＡＧＶがあったときに、互いの距離が上述のＮブロックまで接近すれば、互いにそれ以上進行できなくなり身動きがとれなくなるデッドロック状態が発生することになるが、これも双方向路における干渉の１つである。
このような双方向路における干渉を防止するため、コンピュータ１は、各ＡＧＶが双方向の走行区間に進入する際には、事前に当該走行区間の予約を行ない、予約した順序にて当該走行区間を占有して走行させる予約処理を行なう。尚、後述するように、この予約処理の際には、ＡＧＶの進行方向も考慮し、進行方向が同じ場合には複数のＡＧＶが同一走行区間に存在できるように制御する。
【００６２】
ここで、走行路中の双方向の走行区間は、予め双方向区間定義テーブル１１ｅを用いて定義され、コンピュータ１のＨＤ１１に記憶されている。双方向区間定義テーブル１１ｅは、図７に示すように各走行区間を、それを構成するブロック番号により定義したものである。具体的には、例えば、走行区分コードがＷ１である走行区分Ｗ１は、ブロックＣ２０，Ｃ２１，Ｃ２２，Ｃ２３により構成されていることを示している。
このように走行路における、双方向路、一方向路の区分は、この双方向区間定義テーブル１１ｅに予め定義することで行なう。走行路のレイアウトや各搬送物置場の配置やそこで発生する搬送処理の状況等を考慮して、双方向路と、一方向路の区分を行なうことができる。
【００６３】
尚、連続する双方向路であっても、搬送物置場や待機位置や交差部の配置関係によって、複数の走行区間に分割することもできる。例えば、図３に示す走行路においては、ブロックＣ２０〜ブロックＣ２８は、連続する双方向路であるが、３つの走行区間Ｗ１，Ｗ２，Ｗ３に分割して定義されている。このように連続する双方向路を複数に分割し、分割された走行区間毎に予約することにより、予約による占有区間を比較的狭い範囲に限定することができ、複数のＡＧＶによる搬送効率を向上させることができる。
ＣＰＵ１０は、このように定義された走行区間毎に双方向路の予約を行なう。
【００６４】
ＨＤ１１には、予約・解除タイミング定義テーブル１１ｆも予め記憶されている。予約・解除タイミング定義テーブル１１ｆは、例えば図８に示すように、上述した双方向区間定義テーブル１１ｅにより定義された各走行区間において、ＡＧＶの走行方向毎に各走行区間を予約及び予約を解除するタイミングを定義したものである（図８に示す各ブロックは一部記載を省略している）。
コンピュータ１は、自ＡＧＶの現在位置及び走行ルート（それに基づき走行方向）を確認し、確認した現在位置が予約・解除タイミング定義テーブル１１ｆに定義されている予約タイミングブロックである場合には、対応する走行区間の予約を行ない、確認した現在位置が解除タイミングブロックである場合には、対応する走行区間の予約を解除する。
【００６５】
例えば、図３に示すブロックＣ３０上をＦ方向（逆方向）に進行中であり交差部Ｋ１で左折する予定のＡＧＶについて、ＣＰＵ１０は、このＡＧＶがブロックＣ２９に到達したタイミングで走行区間Ｗ３を予約することになり、ブロックＣ３１に到達したタイミングでこの予約（走行区間Ｗ３の逆方向の予約）を解除することとなる。
【００６６】
コンピュータ１は、上述した予約・解除タイミング定義テーブル１１ｆに従って予約した内容を、図９に示すような予約管理テーブル１１ｇにより管理している。予約管理テーブル１１ｇは、走行区間毎に、その走行区間を予約したＡＧＶのＡＧＶ番号及び走行方向を格納するセル（予約ＡＧＶ情報格納セル）が優先順位をもって設けられたテーブルであり、予約・解除タイミング定義テーブル１１ｆに基づいてある走行区間を予約する際には、ＣＰＵ１０は、その走行区間の空きのあるセル（空いているセルのうち最も優先順位の高いセル）にＡＧＶ番号と走行方向を格納する（書き込む）。尚、この予約管理テーブル１１ｇもＨＤ１１に用意されており、処理中は、適宜ＲＡＭ１２に一時記憶される。
【００６７】
この予約管理テーブル１１ｇにおける予約順位が１位になるとそのＡＧＶは対応する走行区間に進入可能となる。また、当該ＡＧＶが当該走行区間を走行している間は予約管理テーブル１１ｇの予約順位は１位のままである。当該ＡＧＶが当該走行区間を走行後、予約・解除タイミング定義テーブル１１ｆにて定義された解除タイミングブロックに到達すれば、予約管理テーブル１１ｇ（の予約順序１位の位置）から当該ＡＧＶ（の予約）を削除し、優先順位２位以下を上位にシフトする。
【００６８】
ここで、予約順序が２番目以降の走行順序待ちのＡＧＶについては、そのＡＧＶの走行方向が、当該ＡＧＶの予約順序よりも上位の全てのＡＧＶと同方向である場合には、その予約順序が上位のＡＧＶにおける当該走行区間の予約が解除されるのを待たずに、各走行区間に進入させる。
これは、あるＡＧＶの走行方向が、当該ＡＧＶよりも予約順序が上位の全てのＡＧＶと同方向である場合には、他のＡＧＶと正面衝突するおそれがないためである。
【００６９】
このように双方向の走行区間の予約の際に、進行方向の管理も同時に行なうことにより、走行区間が１台のＡＧＶに占有されるという制約が緩和され、前述の連続する双方向路を複数の走行区間に分割して管理することと併せて、予約による待ち時間を短縮することができ、より効率のよい搬送処理が実現できる。
尚、ＣＰＵ１０は走行ルートを確認し、ＡＧＶの走行ルート中に連続する双方向の走行区間がある場合には、最初の走行区間を予約する際に、連続する各走行区間を一時に予約することとする。
【００７０】
例えば、図３に示す搬送物置場ＳＫ１８から搬送物置場ＳＫ１０まで走行しようとするＡＧＶについては、ＣＰＵ１０は、走行ルート管理テーブルを参照しその走行ルートに連続する双方向の走行区間Ｗ３、Ｗ２、Ｗ１が存在することを確認し、ブロックＣ１８（走行区間Ｗ３の予約タイミング）に到達した時点で、走行区間Ｗ３だけでなく、それと連続するＷ２、Ｗ１も同時に予約する。そして、それら全ての予約順序が１番になるか又は上位と走行方向が一致した場合に走行許可を出す。
これにより、ＡＧＶ３，３…は、連続する走行区分の途中で待機することなく、また、連続する走行区分の途中で他のＡＧＶ３とデッドロックを生じることなく、連続する走行区分を占有して走行することができる。
【００７１】
次に、自ＡＧＶが搬送物置場や待機位置から走行路へ退出（進行）する際に、隣接する搬送物置場や待機位置から退出する他のＡＧＶとの干渉防止に関するコンピュータ１の制御処理について説明する（以下、この制御を「退出予約制御」と呼ぶことがある。）。
この場合の干渉としては、隣接する搬送物置場、待機位置から同時に複数のＡＧＶが走行路への退出を試みた場合におけるそれらＡＧＶ同士の衝突や接触が考えられる。このような干渉を防止するために、コンピュータ１は、上述した双方向の走行区間の予約処理と同様の処理を用いて、隣接する搬送物置場、待機位置からの退出は１台ずつ行なうように制御する。
【００７２】
図１０は退出予約テーブル１１ｈを示しており、退出予約テーブル１１ｈは、退出予約が必要な隣接する搬送物置場、待機位置を示した退出場所と、それに対応して退出を予約したＡＧＶを特定するためのＡＧＶ番号が１つのみ記入される予約ＡＧＶ格納セルにより構成されている。本テーブルも処理中は適宜ＲＡＭ１２に一時記憶される。
本実施の形態では、図１０に示すように置場ステーションＳＴ１内の搬送物置場ＳＫ１０〜ＳＫ１３及び待機位置ＨＰ１は、夫々隣接して配置されているため、これらの場所からは複数のＡＧＶが同時に退出しないように制御する。即ち、コンピュータ１は、あるＡＧＶがこれらの場所から退出しようとする場合は、退出予約を行ない、予約が取れた後に（退出予約テーブル１１ｈにそのＡＧＶ番号を記入した後に）退出させるように制御する。
尚、隣合う搬送物置場間の間隔や搬送物置場−待機位置間の間隔が、それらの場所から複数のＡＧＶが同時に退出しても干渉が生じるおそれがない程度に十分に広い場合には、この退出予約制御は行なう必要がない。
【００７３】
次に、交差部における他のＡＧＶとの干渉防止、及び搬送物置場や待機位置から走行路へ進入する際に走行路（搬送物置場前位置も含む）を走行中の他のＡＧＶとの干渉防止に関するコンピュータ１の制御処理について説明する（以下、この制御を「干渉確認制御」と呼ぶことがある）。
これらの場合の典型的な干渉としては、いわゆる「出会い頭の衝突」が考えられる。即ち、ある走行路を走行しているＡＧＶが交差点に進入した際に、当該走行路に交差する走行路を走行中で同時に交差点に進入してきた他のＡＧＶとの衝突や、待機位置から走行路へ進入した際に走行路を走行中の他のＡＧＶとの衝突が考えられる。このような干渉を避けるため、コンピュータ１は、自ＡＧＶがこのような干渉を生じるおそれのある場所の手前（例えば、交差部の手前）に来た時に、他のＡＧＶとの間で干渉が生じるおそれがあるか否かの判断を行ない、干渉の生じるおそれがない場合に自ＡＧＶを走行させるように制御する。
【００７４】
具体的には、コンピュータ１のＨＤ１１には、予め干渉範囲定義テーブル１１ｃが記憶されている。この干渉範囲定義テーブル１１ｃは、図１１に示すように、交差部の手前等の他のＡＧＶとの干渉が生じるおそれがあるか否かの確認を行なうべきブロック（要確認位置）と、そのブロックに対応させて他のＡＧＶの存否を確認すべき範囲（確認対象ブロック）を定義したテーブルである。
ＣＰＵ１０は、この干渉範囲定義テーブル１１ｃを参照し、自ＡＧＶの現在位置がこのテーブルに定義された干渉確認が必要である要確認位置である場合に、当該要確認位置に対応する確認対象ブロックに他のＡＧＶが存在するか否かの判断を行なう。そして、他のＡＧＶが存在しない場合にのみ走行を許可する。このような処理により、上述したいわゆる「出会い頭の衝突」を防止することができる。
【００７５】
ここで、本実施の形態の走行路においては、交差部をなす一方の走行区間（走行路）を優先区間（優先路）、他方の走行区間（走行路）を非優先区間（非優先路）として管理しており、非優先区間を走行中のＡＧＶのみが交差点手前で前述の干渉確認制御を行なうこととし、優先区間を走行中のＡＧＶは行なわないこととしている。例えば、図３においては、交差部Ｋ１，Ｋ２夫々の近傍において、図面上ハッチングを施している走行区間を優先区間として定義している。
従って、例えば、交差部Ｋ２においては、図面上横方向の走行路を走行しているＡＧＶが交差部Ｋ２の手前に到着した時に干渉確認を行ない、図面縦方向の走行路を走行しているＡＧＶは交差部Ｋ２に進入する場合でも干渉確認は行なわない。図１１に示す例では、ブロックＣ３８が要確認位置として定義されており、ブロックＣ３４は定義されていない。このように、優先区間（優先路）と非優先区間（非優先路）を区分することにより、干渉確認の処理回数を軽減することができる。
【００７６】
尚、優先区間、非優先区間の区分は、予め優先区間定義テーブル（図示せず）を用いて定義してＨＤ１１に記憶しておけばよい。優先区間定義テーブルは、例えば、優先区間、非優先区間をブロック番号で定義したものとすることができる。
また、わざわざこのような定義テーブルを作成せずとも、上述の干渉範囲定義テーブル１１ｃにて、図１１に示すように、交差部をなす走行区間のうち一方のみを干渉確認ブロックとして定義することにより、実質的に優先区間と非優先区間を定義（区分）できる。
【００７７】
ところで、交差点の手前で前述の干渉確認制御を行なった場合に、他のＡＧＶとの間でデッドロック状態が生じる場合がある。例えば、ブロックＣ３８に１台のＡＧＶ（以下、「ＡＧＶａ」とする）が存在しており、このＡＧＶａが交差部Ｋ２を通過してブロックＣ３５，Ｃ３６…と走行しようとし、他のＡＧＶ（以下、「ＡＧＶｂ」とする）がブロックＣ３３に存在しており、交差部Ｋ２を通過して走行区間Ｗ４に進入（ブロックＣ３８，Ｃ３９…と走行）しようとした場合、ＣＰＵ１０は、上述したように、干渉範囲定義テーブル１１ｃに基づき、非優先区間上のＡＧＶａを、優先区間上の他のＡＧＶｂが、干渉範囲定義テーブル１１ｃに定義された確認対象ブロックからいなくなるまで待機させるように制御することになる。
一方、ＡＧＶｂにおいては、前述した前方干渉制御や双方向路予約制御にて走行ルートであるブロックＣ３８に他のＡＧＶａが存在するため、走行区間Ｗ４へは進入できない（ブロックＣ３３又はＣ３４で停止し待機することになる）。このように、両ＡＧＶとも身動きが取れない状態（デッドロック状態）となってしまう。
【００７８】
このような状態を解消するために、ＣＰＵ１０は、ＡＧＶの現在位置が交差部手前における干渉確認ブロック（要確認位置）である場合には、前述の干渉確認制御を行ない、その結果、干渉のおそれがありと判断した場合には、干渉対象となる他のＡＧＶがこれから走行する走行ルート上に、自ＡＧＶの現在位置が含まれるか否かを判断し（より具体的には、他のＡＧＶが交差部に進入後に走行するブロック番号に自ＡＧＶの現在位置のブロック番号が含まれるか否かを判断し）、含まれる場合には、干渉確認制御の結果に関わらず、非優先区間走行中のＡＧＶを先に走行させる処理を行なう（以下、「ルート重複確認制御」とよぶことがある。）。
例えば、前述した例のようにＡＧＶａがブロックＣ３８に存在し、他のＡＧＶｂがブロックＣ３３に存在する場合であって、ＡＧＶｂの今後の進行先が走行区間Ｗ４である場合には、交差部Ｋ２に進入後に走行するブロックＣ３８が、ＡＧＶａの現在位置と一致するため、非優先区間を走行中のＡＧＶａを先に走行させる。
【００７９】
尚、上述では、優先区間に存在するＡＧＶ（干渉対象となるＡＧＶ）の走行ルートに、非優先区間に存在するＡＧＶ（干渉確認を行なうＡＧＶ）の現在位置が含まれるか否かの判断を行なっているが、これに限らず、例えば、交差部が図３に示すような三叉路である場合には、非優先区間に存在するＡＧＶの走行ルート（交差部以降の走行ルート）と優先区間に存在するＡＧＶの走行ルート（同）が重複するか否か（より具体的には、非優先区間に存在するＡＧＶが交差部に進入後に走行するブロック番号が、優先区間に存在するＡＧＶの走行ルートに含まれるか否か）を判断し、重複しない場合には、干渉確認処理の結果に関わらず、非優先区間のＡＧＶを先に走行させるように処理してもよい。
要するに、上述のデッドロック状態を回避するために、非優先区間のＡＧＶの走行ルート及び／又は現在位置と優先区間の走行ルート及び／又は現在位置とを確認し、デッドロック状態が発生する場合には、干渉確認処理の結果を無視して、非優先区間のＡＧＶを先に進行させるようにすればよい。尚、上述では、干渉確認処理の結果に応じて、このルート重複確認制御を行なうようにしているが、干渉確認制御の結果如何に関わらず、交差部手前（本実施の形態では非優先路における交差部手前）においては、必ず干渉確認制御とルート重複確認制御の双方を行なってもよい。
【００８０】
尚、このようなルート重複確認制御は、非優先路が一方向路の場合は必要ない。例えば、図３に示す走行路において、走行区間Ｗ４で示す走行路（ブロックＣ３８…Ｃ４２…）が、仮にＥ方向の一方向路であるとすると、優先路を走行中の他のＡＧＶが非優先路に進入してくることはないため、上述のようなデッドロック状態は発生しない。従って、非優先路が一方向路の場合は、優先路が双方向路であるか一方向路であるかに関わらず、干渉確認制御を行なえば交差部における干渉を防止することができ、ルート重複確認制御は必要ない。
【００８１】
以下に、上述した処理を行なうコンピュータ１によるＡＧＶ３，３…の制御フローについて説明する。図１２及び図１３は本実施の形態に係るコンピュータ１によるＡＧＶ３，３…の制御処理手順を示すフローチャートである。
コンピュータ１は、構内ＬＡＮを介して上位コンピュータ４から搬送命令を取得してＲＡＭ１２に記憶する（図示せず）。
図１４は搬送命令の例を示す図であり、図に示すように、各搬送処理を、当該搬送処理に割り当てられた搬送処理コード、当該搬送処理において搬送すべき被搬送物の搬送元の置場のブロック番号、前記被搬送物を示す搬送物コード、前記被搬送物の搬送先の置場のブロック番号等により示している。
【００８２】
ＣＰＵ１０は、取得した搬送命令から１つの搬送処理を選択し、この搬送処理における搬送元の搬送物置場を抽出し、抽出した搬送元の搬送物置場に基づき、出動優先順位定義テーブル１１ａ及びＡＧＶ状態管理テーブル１１ｄを参照して当該搬送処理に用いるＡＧＶ３を決定する（Ｓ１）。
より詳細には、この搬送処理における搬送元の搬送物置場を抽出し、出動優先順位定義テーブル１１ａ及びＡＧＶ状態管理テーブル１１ｄに基づいて、ＡＧＶ３が存在する待機場所（ＨＰ）のうち優先順位の最も高いＨＰに存在するＡＧＶ３をこの搬送処理に用いるＡＧＶ３とする。
【００８３】
尚、この際に、ＨＰに待機中のＡＧＶ３の充電完了までの残り時間（残充電時間）を考慮してもよい。即ち、予め許容残充電時間Ｘを定めておき、ＡＧＶ３が存在する最も優先順位が高いＨＰにおけるＡＧＶ３の残充電時間がＸ以下であれば、そのＡＧＶ３を用いることとし、残充電時間がＸ以上の場合には、その次の優先順位のＨＰに存在するＡＧＶ３を用いることとする。
このような処理により、原則としては、搬送元の搬送物置場の最寄のＨＰからＡＧＶを出動させるが、当該最寄のＨＰに存在するＡＧＶが充電完了までに相当時間が必要な場合は、他のＨＰからＡＧＶを出動させることができ、搬送処理の効率化を図れる。
【００８４】
図１４の搬送命令例の場合は、搬送処理１については、搬送元の搬送物置場がＳＫ１０であり、これは置場ステーションＳＴ１に含まれるから、出動優先順位定義テーブル１１ａに基づいて、ＨＰ１，ＨＰ３，ＨＰ４（図示せず）…の順序で、前述のとおり、各ＨＰにおけるＡＧＶ３の存在／不在及び残充電時間に基づいて、この搬送処理１に用いるＡＧＶ３を決定する（ＡＧＶ３を出動させる出動元ＨＰを決定する）。
同様に、ＣＰＵ１０は、搬送処理２についても、この搬送処理２に用いるＡＧＶ３を決定することができる。図１４の搬送命令例においては、搬送処理１にはＨＰ１に存在するＡＧＶ番号が１０１のＡＧＶ３（以下、ＡＧＶ１０１という）を、搬送処理２にはＨＰ５（図示せず）のＡＧＶ３（以下、ＡＧＶ１０３という）を用いることとする。
【００８５】
ＣＰＵ１０は、上述のように、搬送処理に用いるＡＧＶ３を決定した後、当該ＡＧＶ３の待機位置であるＨＰから、その搬送処理における搬送元の搬送物置場までの第１走行ルートを、走行ルート定義テーブル１１ｂに基づいて決定する（Ｓ２）。
上記図１４に示す例における各搬送処理１，２の場合は、各待機位置ＨＰ１，ＨＰ５から、各搬送元の搬送物置場ＳＫ１０，ＳＫ１５の各第１走行ルートを走行ルート定義テーブル１１ｂに基づいて決定する。尚、搬送処理１について、待機位置ＨＰ１から搬送元の搬送物置場ＳＫ１０までの第１走行ルートは、ブロックＣ２３，Ｃ２２，Ｃ２１を辿るルートとする。また、搬送処理２については以下の説明を省略する。
【００８６】
次に、ＣＰＵ１０は、ＡＧＶ状態管理テーブル１１ｄを参照してＡＧＶの現在位置を確認し（Ｓ３）、ＲＡＭ１２等に一時保存する。その後、ＣＰＵ１０は、以下に説明するとおり、ＡＧＶの進行とともに変化する現在位置に基づいて、前述した前方干渉防止制御、双方向路予約制御、退出予約制御、干渉確認制御及びルート重複確認制御を行ない、他のＡＧＶとの干渉を回避しながら制御対象のＡＧＶを決定した走行ルートに沿って走行させる。
尚、以下の説明において、前述同様に、制御対象のＡＧＶを「自ＡＧＶ」と呼ぶこともある。前述の図１４に示す例においては、搬送処理１についてはＡＧＶ１０１が自ＡＧＶに、搬送処理２についてはＡＧＶ１０３が自ＡＧＶとなる。
【００８７】
ＣＰＵ１０は、予約・解除タイミング定義テーブル１１ｆを参照し、自ＡＧＶの現在位置が、走行区間の予約を行なうべきブロックであるか否か（予約タイミングブロックであるか否か）を判断する（Ｓ４）。予約を行なうべきブロックである場合、ＣＰＵ１０は予約・解除タイミング定義テーブル１１ｆに定められている走行区間の予約を行なう（Ｓ５）。尚、ＣＰＵ１０は、決定された走行ルートによりその進行方向も考慮して予約を行なう。具体的には、予約管理テーブル１１ｇの当該走行区間の予約順序の最後尾の予約ＡＧＶ情報確認セルに、自ＡＧＶのＡＧＶ番号と走行方向を追加（格納）する。
また、この予約管理テーブル１１ｇに基づいて、予約した走行区間に進入可能か否かを判断する（Ｓ６）。具体的には、予約順序が１位であるか、自ＡＧＶより予約順序が上位である全ての他のＡＧＶとの走行方向が一致する場合には進入可能と判断し、その他の場合には進入不能と判断する。
【００８８】
図１４の例の場合には、ＡＧＶ１０１の現在ブロックがＨＰ１であり、走行ルートがＨＰ１→Ｃ２３→Ｃ２２→…であるため、予約・解除タイミングテーブル１１ｆに基づき、走行区分コードＷ１の進行方向逆方向（Ｅ方向）の予約タイミングブロックであることを確認する。
そして、その走行区分コードＷ１を予約すべく、予約管理テーブル１１ｇの予約ＡＧＶ情報確認セルの最後尾にＡＧＶ番号：１０１、走行方向：逆を記入する。そして、この予約管理テーブル１１ｇの内容に基づいて、ＡＧＶ１０１が走行区分Ｗ１（の最初のブロックＣ２３）に進入可能か否かを判断する。
【００８９】
また、ＣＰＵ１０は、退出予約テーブル１１ｈを参照し、自ＡＧＶの現在位置が、退出予約が必要であるブロック（退出場所）であるか否かを確認する（Ｓ７）。退出予約が必要なブロックである場合には、予約が可能か否かを判断する（Ｓ８）。
図１４の例の場合には、ＡＧＶ１０１の現在位置がＨＰ１であるため、退出予約テーブル１１ｈに基づき、退出予約が必要である。従って、予約が可能である場合（Ｓ８：ＹＥＳ）、退出予約処理を行ない、予約ができてから待機場所から走行路（この場合は、ブロックＣ２３）への進行が可能となる。
【００９０】
次にＣＰＵ１０は、干渉範囲定義テーブル１１ｃを参照し、自ＡＧＶの現在位置が、干渉を確認すべきブロック（要確認位置）であるか否かを確認する（Ｓ９）。
自ＡＧＶが干渉範囲定義テーブル１１ｃの要確認位置に存在する場合（Ｓ９：ＹＥＳ）、ＣＰＵ１０は、対応する確認対象ブロックを干渉範囲定義テーブル１１ｃから読み出し、この確認対象ブロックに他のＡＧＶが存在するか否かをＡＧＶ状態管理テーブル１１ｄを参照して判断する（Ｓ１０）。
【００９１】
ここで、確認対象ブロックに他のＡＧＶが存在する場合（Ｓ１０：ＹＥＳ）、自ＡＧＶの現在位置がルート重複確認制御の必要な位置（ルート重複確認位置）（即ち、非優先路の交差部手前の位置）であるか否かを判断する（Ｓ１１）。そして、ルート重複確認制御が必要な位置の場合（Ｓ１１：ＹＥＳ）、前述のとおり、当該確認対象ブロックに存在する他のＡＧＶとの間でデッドロックが生じるか否かを判断し（Ｓ１２）、デッドロックが生じる場合は（Ｓ１２：ＹＥＳ）、自ＡＧＶを先に進行させるような処理を行なう。
【００９２】
ステップＳ９で自ＡＧＶが干渉を確認すべきブロックに存在しない場合（Ｓ９：ＮＯ）、ステップＳ１０で確認対象ブロックに他のＡＧＶが存在しない場合（Ｓ１０：ＮＯ）、及びステップＳ１２でデッドロックが発生した場合（Ｓ１２：ＹＥＳ）、ＣＰＵ１０は、ＡＧＶ状態管理テーブル１１ｄを参照し、自ＡＧＶの前方の所定ブロック（Ｎブロック）内に他のＡＧＶ３，３…が存在するか否かを判断する（Ｓ１３）。
自ＡＧＶの前方の所定ブロック内に他のＡＧＶ３，３…が存在しない場合（Ｓ１３：ＮＯ）、この自ＡＧＶにおいては他のＡＧＶ３，３…と干渉が生じるおそれがないため、自ＡＧＶを走行させる（Ｓ１４）。
【００９３】
一方、ステップＳ６で予約した走行区間に進入が可能でない場合（Ｓ６：ＮＯ）、ステップＳ８で退出予約ができない場合（Ｓ８：ＮＯ）、ステップＳ１１で自ＡＧＶがルート重複確認処理の必要な位置に存在しない場合（Ｓ１１：ＮＯ）、ステップＳ１２でデッドロックが発生しない場合（Ｓ１２：ＮＯ）、更にステップＳ１３で自ＡＧＶの前方に他のＡＧＶが存在する場合（Ｓ１３：ＹＥＳ）、ＡＧＶ１０１が他のＡＧＶ３，３…と干渉が生じるおそれがあるため、このＡＧＶ１０１を走行させず、ステップＳ１５の処理を行なう。
【００９４】
次に、ＣＰＵ１０は、予約・解除タイミング定義テーブル１１ｆを参照し、自ＡＧＶの現在位置が予約の解除タイミングのブロックに存在するか否かを判断しており（Ｓ１５）、自ＡＧＶが解除タイミングブロックに存在している場合（Ｓ１５：ＹＥＳ）、ＣＰＵ１０は、自ＡＧＶが予約している走行区間の予約を解除する（Ｓ１６）。
尚、自ＡＧＶが予約の解除タイミングのブロックに存在しない場合（Ｓ１５：ＮＯ）、ＣＰＵ１０は、ステップＳ１６の処理を行なわず、自ＡＧＶが現在走行中の第１走行ルートの走行を完了したか否かを判断する（Ｓ１７）。
【００９５】
図１４の例の搬送処理１の場合、最初の時点では、現在位置がブロックＨＰ１であるので、上述のとおり、走行区分Ｗ１の予約処理、退出予約処理を行ない、干渉確認制御は行なわないことになるが、仮に走行区分Ｗ１の予約順序が１位となり、退出予約もできたとすれば、前方チェックを行ない、例えばＮ＝２の場合、前方２ブロック（この場合ブロックＣ２３，Ｃ２２）に他のＡＧＶが存在しなければ、ＡＧＶ１０１はＣ２３に進行する。また、走行区分の解除は行なわない。
次いで、ステップＳ１７の判断では、第１走行ルート（即ち、ブロックＨＰ１からブロックＳＫ１０までのルート）は完了していないため、ステップＳ４に戻り同様の処理を続ける。
【００９６】
現在位置がブロックＣ２３の場合は、走行区分予約も退出予約も干渉判定も必要ないため、前方チェックのみを行ない、前方２ブロックに他のＡＧＶが存在しなければ、ＡＧＶ１０１はＣ２２へと進む。
以下、同様の処理を繰り返し、ＡＧＶ１０１がＣ１０まで進んだとき（ＡＧＶ１０１の現在位置がブロックＣ１０となったとき）には、走行区分Ｗ１の予約を解除する処理を行なう。具体的には、ＣＰＵ１０は予約確認テーブル１１ｇから対応する予約情報（ＡＧＶ番号及び走行方向の情報）を削除する。その後、ＡＧＶ１０１は搬送元の搬送物置場ＳＫ１０まで走行し、第１走行ルートの走行処理が完了する。
【００９７】
自ＡＧＶが第１走行ルートの走行を完了した場合（Ｓ１７：ＹＥＳ）、ＡＧＶが、現在行なっている搬送処理１を完了したか否かを判断しており（Ｓ１８）、搬送処理１を完了した場合（Ｓ１８：ＹＥＳ）、ＣＰＵ１０は走行制御処理を終了する。
一方、ステップＳ１７で第１走行ルートの走行を完了していない場合（Ｓ１７：ＮＯ）、ＣＰＵ１０は、ステップＳ４の処理に戻り、上述したステップＳ４からＳ１７の処理を繰り返すことにより、自ＡＧＶを他のＡＧＶ３，３…との干渉及び衝突を回避しながら走行させる。
【００９８】
また、ステップＳ１８で搬送処理１が完了していない場合（Ｓ１８：ＮＯ）、即ち、例えば搬送処理１において、第１走行ルートの走行のみが完了した場合、ＣＰＵ１０は、次の第２走行ルート（搬送元の搬送物置場から搬送先の搬送物置場までのルート）を、走行ルート定義テーブル１１ｂを参照して決定し（Ｓ１９）、決定した走行ルートに沿って、上述したステップＳ４からＳ１７の処理を繰り返すことにより、自ＡＧＶを他のＡＧＶ３，３…との干渉を回避しながら走行させる。
【００９９】
また、ステップＳ１８において、ＡＧＶ１０１が搬送処理１を完了していない場合であって（Ｓ１８：ＮＯ）、搬送処理１において、第２走行ルートの走行が完了した場合、ＣＰＵ１０は、次の第３走行ルートを、走行ルート定義テーブル１１ｂを参照して決定し（Ｓ１９）、決定した第３走行ルートに沿って、上述したステップＳ４からＳ１７の処理を繰り返すことにより、他のＡＧＶ３，３…との干渉を回避しながら、搬送処理１における各走行ルートの走行を完了させる。
【０１００】
ここで、第３走行ルートは、搬送処理１における搬送先の搬送物置場から、当該ＡＧＶ１０１を次に待機させる待機位置までのルートであり、ＣＰＵ１０は、この第３走行ルートを決定する際に、ＡＧＶ１０１を帰還させて次の搬送処理に用いられるまでの間、充電及び待機させる待機位置を決定する。
この待機位置の決定処理は、出動優先順位定義テーブル１１ａと同様に、当該搬送先の搬送物置場からの距離等に応じて、搬送処理を完了したＡＧＶ１０１を帰還させるべき待機位置を定義した帰還優先順位定義テーブル（図示せず）を参照し、当該搬送先の搬送物置場に対応する空き状況の待機位置を選択する。
【０１０１】
尚、詳細な説明は省略するが、前述の第２走行ルートの決定処理は、搬送元の搬送物置場にある搬送物をＡＧＶに積載した後に行ない、第３走行ルートの決定処理は搬送先の搬送物置場へ搬送物を置いた後に行ない、積載完了等の確認処理は適宜公知の手段によって行なう（例えば、置場とＡＧＶ（の積載位置）にそれぞれロードセルを取り付けておき、ロードセルの検出値によって搬送物の有無を検知し、それに基づき積載完了を確認することができる）。
【０１０２】
第３走行ルートの走行が完了し、待機位置に帰還したＡＧＶは、当該待機位置に備えられた充電器にて充電される。ＣＰＵ１０は、充電完了までの予想残り時間（残充電時間）Ｔを、以下の（１）式により求め、ＨＤ１１に用意された、各ＡＧＶ毎のそのＡＧＶに対応させてそのＡＧＶの残充電時間を格納する残充電時間テーブル（図示せず）に記憶させる。
コンピュータ１は、この残充電時間テーブルの内容（各ＡＧＶ毎の残充電時間）を、コンピュータ１に内蔵されている計時手段等を用いて定期的に（一定の周期で）更新する（例えば、前述のＡＧＶ状態管理テーブル１１ｄの更新周期（タイミング）と同一周期（タイミング）で更新する）。これにより、コンピュータ１は、この残充電時間テーブルを参照することにより、リアルタイムで各ＡＧＶの残充電時間が確認できるようになっており、前述した搬送処理に用いるＡＧＶを決定する（搬送処理に用いるべきＡＧＶが待機している待機位置を決定する）処理を行なう際に用いる。
【０１０３】
Ｔ  ＝  Ｋ  ×  （１００−Ｂ）    …（１）
尚、Ｔ：残充電時間（ｓ），Ｂ：バッテリー残容量（％），Ｋ：定数
【０１０４】
尚、上述の説明では、１つの搬送処理について、その搬送処理に用いられるＡＧＶ（自ＡＧＶ）を走行させるための制御フローについて説明したが、搬送指令が複数ある場合は、複数の搬送処理を並行して行なうことになる。
例えば、図１４に示す例では、搬送処理１，２の２つの搬送処理のみを示しているが、この他に図示しない搬送処理３，４が同時に存在する場合には、搬送処理１〜４の４つの処理を同時に並行して行なう。従って、走行ルート上には４台のＡＧＶが存在することになるが、夫々上述の搬送処理を行なうことにより、互いに干渉することなく走行させることができる。
【０１０５】
図１５は図３の簡略図を示しており、コンピュータ１は、図１５に示すように、走行路を複数のエリアＥ１，Ｅ２，Ｅ３，Ｅ４，Ｅ５に分割して管理している。各エリアは複数のブロックで構成されており、ＨＤ１１には、各エリア毎に各エリアを構成するブロックを定義したエリア定義テーブル（図示せず）が記憶されている。
走行路上でＡＧＶが重故障する等の不具合が発生した場合に、ＣＰＵ１０は、ＡＧＶ車上コントローラ３０からＡＧＶコントローラ２を介して通知される情報又は作業者がキーボード１４又はマウス１５により入力した情報に基づいて、不具合が発生したエリアを確認する。そして複数の搬送処理のうち、その故障発生エリアを含む走行ルートを利用した搬送処理の実行を禁止し、他の搬送処理を継続する。これにより、発生した不具合による影響を最小限に留めることができる。
【０１０６】
また、前述したように、走行ルート定義テーブルに優先順位を持たせて複数の走行ルートを定義している場合は、故障発生エリアを含まない優先順位が下位の走行ルートを選択し、その走行ルートを利用して搬送処理を実行することもできる。尚、この場合であっても定義されている全て優先順位の走行ルートを検索しても故障発生エリアを含まない走行ルートがない場合は、当該搬送処理のみの実行を禁止し、他の搬送処理を継続することで、工場又は倉庫全体の搬送処理を停止させる必要がなくなり、影響を最小限に留めることができる。
【０１０７】
また、前述の実施の形態においては、予約・解除タイミング定義テーブル１１ｆにて定義されている各走行区間の予約タイミングブロック及び干渉範囲定義テーブル１１ｃにて定義されている交差部手前における要確認位置（ブロック）は、対応する走行区間及び交差部の直前のブロックとしているが、より手前のブロックを定義してもよい。例えば、走行区間Ｗ２の正方向の予約タイミングブロックをブロックＣ２３ではなく、Ｃ２２としてもよい。
【０１０８】
予約タイミングブロック及び干渉要確認ブロックを直前のブロックとして定義するかより手前のブロックを定義するかは、ＡＧＶの速度やコンピュータの負荷・処理速度等を考慮して、安全に効率よく搬送処理が行えるように適宜決定すればよい。また、同様に前方干渉防止制御においても、予め定めるべき他のＡＧＶとの間に隔てる最小のブロック数Ｎの値は、ＡＧＶの速度等を考慮して、適宜変更すればよい。
本発明においては、ＡＧＶの速度変更等により必要となるこのようなチューニング作業を、記憶手段に記憶している定義テーブルの内容や所定数の値を書き換えるだけで容易に行うことができる。
【０１０９】
更に、ＡＧＶ状態管理テーブル１１ｄに格納する各ＡＧＶの現在位置の情報を、各ＡＧＶの実際の現在位置（すなわち、各ＡＧＶ車上コントローラから通知される現在位置）ではなく、各ＡＧＶの現在位置の次の予定位置（進行方向に１ブロック進めたブロック）を格納するようにしてもよい。コンピュータ１は、このＡＧＶ状態管理テーブル１１ｄに格納されている現在位置の情報により各ＡＧＶの現在位置を認識しているため、この現在位置を実際の現在位置より１ブロック進めておくことにより、コンピュータ１は実際の現在位置より１ブロック進んだ位置にＡＧＶが存在していると認識することになる。
【０１１０】
【発明の効果】
このように、コンピュータ１に現実より１ブロック進んだ位置にＡＧＶが存在すると認識させることにより、余裕を持った走行制御が可能となり、より安全にＡＧＶを走行させることができる。尚、上述のようにＡＧＶ状態管理テーブル１１ｄにＡＧＶの現在位置情報として、次の予定位置を格納する場合であっても、次の予定位置が未定のＡＧＶ（例えば、待機場所で充電中又は待機中であり、まだ走行ルートが決定されていない（どの搬送処理にも用いられていない）ＡＧＶ等）については、実際の現在位置を格納するようにすればよい。
また、ＡＧＶ状態管理テーブル１１ｄに実際の現在位置を格納するか次の予定位置を格納するかも、同様に、ＡＧＶの速度やコンピュータの負荷・処理速度等を考慮して、安全に効率よく搬送処理が行えるように適宜決定すればよい。
【０１１１】
本発明の無人搬送車制御装置によれば、走行元（起点）から走行先（終点）までの全走行ルートを予約処理によって干渉防止するのではなく、他のＡＧＶとの干渉が発生し得る色々な局面毎にそれに適した種々の干渉防止制御を行う（ＡＧＶの進行に伴って変化する局面（すなわちＡＧＶの現在位置）に応じて、各種の定義テーブルを参照し、その現在位置に適した干渉防止制御を行う。）ので、予約処理によって１台のＡＧＶで占有してしまう区間（ゾーン）を低減できる。例えば、一方向路においては、交差点手前の干渉確認制御を除けば、前方を走行する他のＡＧＶと所定距離だけ隔てて走行させる前方干渉防止制御のみを行うことになるので、このような区間（ゾーン）では複数台のＡＧＶが走行でき、搬送処理の効率化が図れる。また、双方向路においても、各ＡＧＶの進行方向も考慮して予約処理を行うため、走行方向が同一の複数のＡＧＶが１つの区間（ゾーン）に存在し得ることになるので、搬送処理の効率化が図れる。
【０１１２】
また、走行路中の双方向路と一方向路の区分（双方向区間の定義）や双方向路の予約又は解除タイミング、退出予約が必要な範囲、干渉確認が必要な位置や確認対象範囲、搬送物置場間等の走行ルート等を予め記憶手段に記憶しておく各種の定義テーブルを用いて定義している。従って、概ねこれらの定義テーブルの内容を変更するだけで、設備変更等に対応できる。例えば、走行路中に一方向路を一本追加する場合においては、干渉範囲定義テーブル１１ｃにその単方向路上の既存の走行路との交差点の手前のブロックを要確認位置として追加定義し、当該交差点近傍のブロックを確認対象ブロックとして追加定義し、またこの一方向路の追加に伴う新規の走行ルートを走行ルート定義テーブル１１ｂに追加定義するだけで概ね対応できる。
【０１１３】
更に、一方向路を双方向路に変更する場合においても、双方向区間定義テーブル１１ｅに新たに双方向路となるブロックを追加して双方向路として定義し、また、それに併せて予約・解除タイミング定義テーブル１１ｆにその新規の双方向区間とその区間を予約すべきブロック及び予約を解除すべきブロックを定義し、双方向路化にあわせて走行ルート定義テーブル１１ｂの内容を変更するだけで概ね対応できる。逆に、双方向路を一方向路に変更する場合も、双方向区間定義テーブル１１ｅ、予約・解除タイミング定義テーブル１１ｆから当該双方向路の情報を削除し、必要であれば干渉範囲定義テーブル１１ｃの内容、走行ルート定義テーブル１１ｂの内容を変更するだけで概ね対応できる。
同様に、各種定義テーブルで定義する内容を変更するだけで、他の工場・走行の搬送車制御にも、比較的容易に流用できる。尚、複線路は、隣接して平行に延びる複数本の単線路とみなすことができるので、走行路中に複線路が存在するような場合にも、本発明を適用することができる。
【０１１４】
本実施の形態においては、前述の前方干渉防止制御に加えて、双方向路予約制御、退出予約制御、干渉確認制御及びルート重複確認制御の全てを行う例を示したが、本発明はこれに限らず、走行路、搬送物置場及び待機場所等のレイアウトに応じて、適宜必要な制御処理を選択して搬送車の走行を制御することができる。例えば、環状の双方向路だけで構成され交差部が存在しないような場合は、交差部手前における干渉確認制御は不要となる。また、隣接する搬送物置場間の間隔が十分に広い場合（複数の置場が隣接してない場合）等では、退出予約制御は不要となる。更に、交差部を構成する走行路の内、干渉確認制御を行う非優先路（非優先区間）が一方向路の場合は、ルート重複確認制御は不要となる。また、双方向路が存在しない（搬送物置場の出入部の双方向区間（本実施の形態の置場前位置）を除く）場合（例えば、複線路（隣接して平行に配置される走行方向が互いに逆向きの２本の一方向路）を用いる場合等）は、双方向路予約制御は不要となる。
このように前方干渉防止制御に、双方向路予約制御、退出予約制御、干渉確認制御及びルート重複確認制御の全て又はいずれかを適宜選択して加えることで、種々のレイアウトに本発明を適用することができるため、本発明によれば、汎用性の高いＡＧＶ制御装置を提供することができる。
【０１１５】
また、本実施の形態においては、前方に位置する他のＡＧＶとの衝突防止制御として、前述の前方干渉防止制御を行なっているが、これにかえて、距離センサ等を用いて前方を走行する他のＡＧＶへの追突を防止する周知の制御技術を用いることもできる。例えば、超音波を用いた距離センサをＡＧＶに取り付けておき、前方のＡＧＶとの車間距離がある程度以下になると停止するように制御することもできる（尚、距離センサを用いた衝突防止技術は周知の技術である）。
但し、この場合は、物理的な前方を監視することになるので、交差点や角部等の曲がり角では走行ルート上の前方を監視できず、曲がった直後に干渉が生じるおそれがある。例えば、図３のブロックＣ２４上をＤ方向に走行しているＡＧＶが交差部Ｋ１を右折してブロックＣ３１に走行しようとしている場合、走行路上の前方のブロックはＣ２５、Ｃ３１…となるが、超音波センサの場合、Ｃ２５、Ｃ２６方向しか監視できない。
【０１１６】
従って、センサを用いて前方のＡＧＶとの干渉を防止する場合は、このような曲がり角における干渉を防止するために、優先路／非優先路に関わらず交差部及び角部等の曲がり角の手前において、干渉確認制御を行なう必要がある。このような場合でも、本発明によれば、干渉範囲定義テーブル１１ｃの内容を変更（追加）することで容易に対応できる。即ち、優先路／非優先路に関わらず交差部手前のブロック及び角部手前のブロックを要確認位置として定義し、それに対応して確認対象となるブロックを定義すればよい。
以上のように、本発明によれば、前方干渉防止制御、双方向路予約制御、退出予約制御、干渉確認制御及びルート重複確認制御を設備レイアウト等に応じて適宜選択して用い、また各種定義テーブルの内容を定義調整して用いることで、種々のレイアウトに適用可能となる非常に汎用性の高いＡＧＶ制御装置を提供することができる。
【図面の簡単な説明】
【図１】本発明に係る無人搬送車制御装置を用いた無人搬送システムの構成を示す模式図である。
【図２】本実施の形態に係る無人搬送システムの構成を示すブロック図である。
【図３】走行路の設置例を示す図である。
【図４】出動優先順位定義テーブルを示す図である。
【図５】ＡＧＶ状態管理テーブルを示す図である。
【図６】走行ルート定義テーブルを示す図である。
【図７】双方向区間定義テーブルを示す図である。
【図８】予約・解除タイミング定義テーブルを示す図である。
【図９】予約管理テーブルを示す図である。
【図１０】退出予約テーブルを示す図である。
【図１１】干渉範囲定義テーブルを示す図である。
【図１２】本実施の形態に係るコンピュータによるＡＧＶの制御処理手順を示すフローチャートである。
【図１３】本実施の形態に係るコンピュータによるＡＧＶの制御処理手順を示すフローチャートである。
【図１４】搬送命令の例を示す図である。
【図１５】図３の簡略図である。
【符号の説明】
１  コンピュータ（無人搬送車制御装置）
１０  ＣＰＵ（認識手段、走行ルート決定手段）
１１  ハードディスク（記憶手段）
１１ｂ  走行ルート定義テーブル
１１ｃ  干渉範囲定義テーブル
１１ｆ  予約・解除タイミング定義テーブル
１１ｇ  予約管理テーブル（予約状態管理テーブル）
１１ｈ  退出予約テーブル
２  ＡＧＶコントローラ
３  ＡＧＶ（無人搬送車）
Ｄ１，Ｄ２…  センサ
【図１】
2004280296.tif 000003
【図２】
2004280296.tif 000004
【図３】
2004280296.tif 000005
【図４】
2004280296.tif 000006
【図５】
2004280296.tif 000007
【図６】
2004280296.tif 000008
【図７】
2004280296.tif 000009
【図８】
2004280296.tif 000010
【図９】
2004280296.tif 000011
【図１０】
2004280296.tif 000012
【図１１】
2004280296.tif 000013
【図１２】
2004280296.tif 000014
【図１３】
2004280296.tif 000015
【図１４】
2004280296.tif 000016
【図１５】
2004280296.tif 000017