(57)【要約】【課題】通信経路に障害が生じても、適切に危険な状態を回避できる制御システムを提供する。【解決手段】制御ユニットが階層構造に構成された制御システムにおいて、階層構造とは別に非常状態を他の制御ユニットに通知するための非常通信経路を設けることによって、階層構造の通信障害に対しても適切に危険な状態を回避できる制御システムを構成する。さらに、各制御ユニットは所定の時間が経過すると、あらかじめ決められた動作を行うことによっても危険な状態を回避できる。【選択図】図１
2009037424.tif 000002
【特許請求の範囲】
【請求項１】
階層的に接続された複数の制御ユニットと、
非常状態に対応するデータを生成する非常検知手段と、
前記データを制御ユニットへ送信する、冗長な通信経路を構成する非常通信手段と、
を有することを特徴とする制御方法。
【請求項２】
制御対象装置を制御する制御ユニットと、
複数の前記制御ユニットを階層的に接続する通信手段と、
前記制御対象装置の非常状態を検知して非常通知データを生成する非常検知手段と、
前記非常検知手段により検出された非常通知データを前記制御ユニットの間で互いに通知する非常通知手段と、
前記非常状態により危険を回避するための危険機回避指示データを生成する危険回避指示手段と、
を備える装置を有し、
前記危険回避指示手段は、所定の時間内に上位階層の制御ユニットから危険回避指示データを受けとれない場合は、前記非常通知手段より受け取った非常通知データに基づいて危険回避動作を選択する、
ことを特徴とする制御システム。
【請求項３】
請求項２に記載の分散制御システムにおいて、前記非常通知データは、
前記非常状態を識別する非常識別コードと、
前記非常状態の種別を示す非常種別コードと、
前記非常状態が検知された時刻を示す非常検知時刻、
のうちの少なくとも１つを含む、ことを特徴とする分散制御システム。
【請求項４】
請求項２に記載の分散制御システムにおいて、前記非常通知データは、
前記非常状態を識別する非常識別コードと、
前記非常状態の種別を示す非常種別コードと、
前記非常状態が検知された時刻を示す非常検知時刻と、
を含む、ことを特徴とする分散制御システム。
【請求項５】
請求項２に記載の分散制御システムにおいて、前記危険回避指示手段は、
前記非常通知データに記録された前記非常検知時刻に基づいて、危険回避指示締切時刻を求め、
前記危険回避締切時刻を過ぎた時に、前記非常動作指示データを生成し、前記危険回避指示データを前記通信手段により他の制御ユニットに伝達する、
ことを特徴とする分散システム。
【請求項６】
請求項２に記載の分散制御システムにおいて、前記危険回避指示データは、
危険回避する対象の非常状態を示す非常識別コードと、
危険回避動作を選択した制御ユニットを識別するための判断元コードと、
危険回避の内容を記述した危険回避動作情報、
のうち少なくとも１つを含む、ことを特徴とする分散制御システム。
【請求項７】
請求項２に記載の分散制御システムにおいて、
前記制御対象装置は移動体であり、
前記危険回避指示手段は、複数の移動体が同方向に移動している場合には、後方の移動体を停止させ、前方の移動体の移動を続行させるように、前記危険回避指示データを生成する、
ことを特徴とする分散制御システム。
【請求項８】
制御ユニットの非常状態を検知する段階と、
非常状態に対応するデータを生成する段階と、
前記データを制御ユニットへ送信する段階と、
所定の時間内に指示データを受信しなければ、自ら指示データを生成する段階と、
を有することを特徴とする制御方法。
【請求項９】
所定の時間内に指示データを受信しなければ、過去に受信したデータに基づいて、自ら指示データを生成する段階を有する請求項８に記載の制御方法。
【請求項１０】
所定の時間内に指示データを受信しなければ、あらかじめ決められた動作を行う指示データを生成する請求項８に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御システムに関し、特に非常状態が発生した場合に危険回避動作を行うことができる安全機能を備える分散制御システムに関する。
【背景技術】
【０００２】
制御システムでは、複数の制御ユニットを階層的に接続し、上位の制御ユニットから下位の制御ユニットに動作指示を送信して動作させる階層構造をとるものがある。ここで、上位の制御ユニットとは、例えばシステム全体の動作計画など、大局的な判断処理を行う制御ユニットを意味し、下位の制御ユニットとは、例えばモータの制御など、具体的なハードウエアを制御する制御ユニットを意味する。このような階層型のシステムは、情報が上位から下位に向けて一方向に流れる。
【特許文献１】特開平２−２９７６９８号広報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上記のような階層型の構造を用いた場合、制御ユニット間の通信機能が故障したり、上位のユニットが故障したりした場合に、非常状態の通知や、危険回避動作の指示が迅速に正しく伝わらず、適切な危険回避動作が行えなくなる可能性がある。
【０００４】
非常状態では、装置の一部が故障している場合があり、通信系統が使用できなくなっている可能性が通常状態より高いので、この問題に対する対処が求められる。特に、複数の移動ロボットの統合制御システムなど、制御ユニット間の通信に無線を含むシステムでは、非常状態の通知に失敗する確率が有線の場合よりも高いので、通信障害に対する対処が必要である。
【０００５】
そこで、本発明では、通信系統や、上位階層の制御ユニットに障害がある場合でも、適切な危険回避動作を行える制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明の制御システムは、制御ユニットを階層的に構成した分散制御システムにおいて、階層構造とは別の通信経路（いわゆる冗長な通信経路）を設けた制御システムを提供する。また、階層構造または冗長な通信経路での通信に問題がある場合でも、所定の時間内に危険回避のための情報が取得できない場合は、自分自身で危険を回避する動作を行う制御システムを提供する。
【発明の効果】
【０００７】
本発明によれば、非常状態において、制御システムの一部に通信障害や故障がある場合でも、適切に迅速に危険回避動作を行うことができ、制御システム全体の安全性が高まる。
【発明を実施するための最良の形態】
【０００８】
以下に実施の形態の一例を説明する。まず、制御システム全体を概略的に説明し、次に該制御システムを構成する要素、制御システムの動作、および具体的な制御例を説明する。
【０００９】
（制御システムの全体）
以下に説明する実施の形態では２つの移動ロボットの分散制御を想定する。図１にはこの分散制御システム全体のブロック図が示されている。図示したように階層構造を有しており、２つのロボット内にもそれぞれ階層構造が構成されている。以後それぞれのロボットを第１のロボット１１、第２のロボット１２と称する。また、各ロボットの部分を表す場合は、第１のロボット１１に対しては「第１の」、第２のロボット１２に対しては「第２の」という語を用いて区別する。これら「第１の」、「第２の」との語は説明の便宜上、同じ装置を区別するために使用するのであり、例えば２つのロボットがある場合、どちらを「第１の」、「第２の」と呼ぶかは任意でよい。
【００１０】
図１に示したように各ロボットには複数の制御ユニットが配置されており、これらが階層構造を形成するように接続されている。各制御ユニットは、ロボット内では有線で接続し、ロボット同士の接続、またはロボットと外部の制御ユニットとの接続は無線で行うことが好ましい。階層構造に接続された制御ユニットの中で、最も上の階層、つまり頂点に位置する部分は制御システム全体を制御する統合制御ユニット１００である。
【００１１】
このように分散制御では複数の制御ユニットが分散して配置されており、それぞれは通信装置によって接続されている。ロボットを制御するための情報はこの階層構造に沿って伝達される。
【００１２】
本実施の形態の一例ではこの階層構造とは別に冗長な通信経路２９０を設けたことが特徴である。冗長な通信経路２９０を設けることによって、階層構造の通信経路に問題が生じても、冗長な通信経路２９０を使用して情報を伝達することができる。
【００１３】
さらに、本実施の形態の一例は冗長な通信経路２９０にも問題が生じ、各ロボットまたは制御ユニット同士が通信できなくなった場合でも、危険な状態を回避し適切な対処をとることができる。これは、各制御ユニットに所定の時間を設定し、この時間が経過すれば、例えばロボットの走行を停止するというような、所定の動作を全てのロボットが行うことによって実現できる。
【００１４】
ここで、「危険な状態」とは、例えばロボット同士が衝突したり、ロボットが本来停止すべき位置で停止できなくなるというように、ロボットが通常の動作を行うことができない状態である。また制御システム全体が通常の予定された機能を発揮できなくなる状態も「危険な状態」である。
【００１５】
また、「非常状態」とは、例えばロボットを移動させるためのモータ、通信用のアンテナ、障害物を検知するセンサ等が正常に動作しなくなった状態である。つまり故障等により上記の「危険な状態」の原因となる事態が発生した状態をいう。また、周囲の人・ロボット・自動車等が突然予測できない動きをするなど、外部の要因によって非常状態になる場合もある。よって分散制御システムに「非常状態」が発生してから、当該システムが「危険な状態」に移行することになる。
以下に本実施の形態の一例の制御システムの構造を詳細に説明する。
【００１６】
（制御システムの詳細な構造）
図１を用いて分散制御システムの実施の形態の一例を説明する。第１のロボット１１、第２のロボット１２には同じ制御ユニット等が設置されるため、ここでは第１のロボット１１を用いて説明する。
【００１７】
分散制御システム１は、第１のロボット１１、第２のロボット１２と、それらを統合する統合制御ユニット１００を備えている。第１のロボット１１について見ると、第１の走行計画ユニット１１０、第１の周囲環境認識ユニット１１１、第１の走行制御ユニット１１２、を備えている。
【００１８】
分散制御システム１は、図示したように階層的に構成されており、統合制御ユニット１００は最上位の階層である。次に１段下位の層には第１のロボット１１の走行計画ユニットである第１の走行計画ユニット１１０に接続されている。
さらに１段下位の層には第１の周囲環境ユニット１１１と第１の走行制御ユニット１１２に接続されている。
【００１９】
第１のロボット１１、第２のロボット１２は移動するので、統合制御ユニット１００と第１の走行計画ユニット１１０、および統合制御ユニット１００と第２の走行計画ユニット１２０の間の接続には、無線ＬＡＮ（Local Area Network）など無線通信手段が使用される。各ロボット内の制御ユニット間の通信には、ＣＡＮ（Controller Area Network）やＬＡＮなどの高速な有線通信手段を用いることができる。
【００２０】
各ユニットの機能を階層の最上位、つまり統合制御ユニット１００から順に説明する。
統合制御ユニット
統合制御ユニット１００は、第１の走行計画ユニット１１０、第２の走行計画ユニット１２０から通知される各々のロボットの位置および速度の情報から、各ロボットが衝突せずに安全に走行できるように、各ロボットの進行方向、速度を求め、定期的に各走行計画ユニットに指示を送信する。ここで、各ロボットへの指示は、すれ違うときは右側を通行することや、接触しそうな場合は右側のロボットが優先して走行し、左側のロボットは右側に回避するなど、交通ルールを定めることで生成する。
【００２１】
走行計画ユニット
第１の走行計画ユニット１１０は、階層の頂点にある統合制御ユニット１００からの指示に従って、滑らかに走行できる移動経路を算出し、第１の走行制御ユニット１１２に移動速度、旋回速度の指示を与える。また、第１の周囲環境認識ユニット１１１から通知される障害物位置情報に基づいて、近くに障害物が存在する場合には、回避する経路を求めて移動経路を修正する。また、周囲環境認識ユニットから通知される物体位置情報と、第１の走行制御ユニット１１２から通知される速度情報から、自分の位置を計算して、統合制御ユニット１００に報告する。
【００２２】
周囲環境認識ユニット
第１の周囲環境認識ユニット１１１は第１の画像センサ３１１に接続されており、周囲の障害物情報を第１の走行計画ユニット１１０に送信する。
走行制御ユニット
第１の走行制御ユニット１１２は、車輪を駆動する第１のモータ３１２に接続されており、第１の走行計画ユニット１１０からの指示に従って第１のロボット１１の移動を制御する。また、第１のロボット１１の移動速度などの状態を第１の走行計画ユニット１１０に逐次報告する。
【００２３】
以上のように第１のロボット１１を用いて説明したが、第２のロボット１２についても構成は同じである。よって「第１の」を「第２の」と読み替え、図１において第２のロボット１２に関する符号を参照することで第２のロボットの構成を理解することができる。
【００２４】
図２に各制御ユニットの一般的な内部構造を示す。これはどのユニットにも共通する構造である。
制御ユニットは、情報処理装置５１と、他のユニットと通信するための通信装置５２と、非常状態の通知を行うための非常通信装置５３を備えている。また、センサ、モータなどに接続されてハードウエアの制御、データ入出力を行うユニット（例えば第１の周囲環境認識ユニット１１１、第１の走行制御ユニット１１２）は、入出力回路５４を備えている。
【００２５】
情報処理装置５１は、入出力回路５４から得たセンサ等の情報、通信装置５２により受信した情報、またはその両方の情報を基に、装置を制御するための計算、判断を行う。その結果、入出力回路５４を通じてモータ等に制御信号を送信するか、または通信装置５２を通じて他の制御ユニットへ制御の指示を送信する。また、情報処理装置５１は記憶装置５５と接続しており、後述する非常通知データ等を記憶する。なお、非常通信装置５３は省略し、通信装置５２で非常通知を行ってもよい。
【００２６】
本分散制御システム１は、非常状態の通知の確実性を高めるために、非常状態通知のための冗長な通信手段を備えている。この例では、特に安全上重要な第１の走行制御ユニット１１２に、非常通信装置５３を備えている。これによって冗長な通信経路である近距離無線通信経路２９０を形成し、無線通信によって、近くの移動ロボットの走行制御ユニット（例えば第２のロボット１２の第２の走行制御ユニット１２２）との間で相互に非常状態の通知を行う。非常状態の通知は、通常の制御ユニット間の通信路も同時に使用して行う。
【００２７】
一般的には、非常通知の通信路はさまざまな構成があり得る。全てのユニットが通常の通信路とは別に冗長の非常通信経路を持つことが望ましいが、実際には、コストや実装スペースの制約があるので、安全上重要な部分を選択して冗長の通信経路を設けることになる。各制御ユニットは、非常状態を検知したときには、制御通信経路と非常通信経路を用いて他の制御ユニットへ非常状態を通知する。非常状態を通知する先は、各ユニットごとにあらかじめ定めておく。通常は、制御通信経路または非常通信経路により接続された全ての制御ユニットに対して非常状態を通知する。
【００２８】
本分散制御システム１において、非常状態を検知して適切な対処を取るには、非常状態を知らせるための非常通知データと、適切な対処を取るための危険回避指示データが必要である。以下にこれらのデータについて説明する。
非常通知データ
これは各制御ユニットが他の制御ユニットに非常状態を通知するために、冗長な通信経路２９０を通じて送信するデータである。
（１）非常識別コード
システム全体の中で、検出された非常状態を一意に特定するための情報であり、例えば、非常状態を最初に検知した制御ユニットの識別コードと、各ユニットの中で、検知された非常状態ごとに付与した識別番号の組み合わせを非常状態の識別コードとして用いる。
（２）非常種別コード
非常状態の種類を区別するために非常状態の種別ごとにあらかじめ定めたコードである。
（３）非常検知時刻
この非常状態が最初に検知された時刻である。
（４）送信元コード
この非常通知を送信する送信元の制御ユニットの識別コードである。
【００２９】
危険回避指示データ
各制御ユニットは、制御通信経路を通じて下位の階層の制御ユニットに対して、危険回避動作の指示を与えるための、危険回避指示データを送信する。危険回避指示データには以下の内容が含まれている。
【００３０】
（１）非常識別コード
非常通知データに含まれる非常識別コードに対応しており、この危険回避指示データがどの非常通知データに対する危険回避動作であるかを示す。
（２）判断元コード
危険回避動作を定めた最初の制御ユニットの識別コードを格納しており、１つの制御ユニットが複数の危険回避指示データを受信したときに、優先して使用する危険回避指示データを選択するために用いられる。
（３）危険回避動作内容
危険回避を行うために行う動作の内容を格納する。この内容は、制御システムの詳細により異なるが、この実施例の場合は「停止」と「動作継続」を含む。
【００３１】
本発明の分散制御システムにおける非常状態に対する検知、通知、危険回避は、下記の原則により行われる。
１．非常検知
各制御ユニットが、センサ情報と他のユニットから受信する制御情報を元に非常状態の有無、種別を判断する。
【００３２】
２．非常通知
非常状態を検知した制御ユニットは、制御通信路および非常通信路を用いて非常通知ユニット群に非常通知データを送信する。非常通知データを受信した制御ユニットはそれを記憶すると共に、その非常通知ユニット群に非常通知データを転送する。ただし、重複送信を避けるために、該当する非常通知の送信元に対しては転送しない。また、既に同じ非常識別コードの非常通知データを受信し、他の制御ユニットに転送している場合には転送しない。
【００３３】
３．危険回避
受信した非常通知データに対しては、いったん対処を保留し所定の時間経過した後、危険回避の判断を行う。上位の制御ユニットから危険回避指示を受信している場合には、その判断を優先し、それに基づいて危険回避指示データを生成して、下位の制御ユニットに送信する。上位の制御ユニットからの指示がない場合には、その制御ユニットが有する情報に基づいて、危険回避の方法を決定し、危険回避指示データを生成して下位の制御ユニットへ送信する。
【００３４】
危険回避において、受信した非常通知データを一度保留してから危険回避の判断をするのは、ある制御ユニットが非常通知データを受け取った時点では、上位の階層から危険回避指示データをまだ受け取っていない状態が考えられるからである。つまりある制御ユニットが非常通知データを受け取った時点で、上位の階層から危険回避指示データを受け取っていない状態が起こりうる。このような状態では、通信経路に問題があり危険回避指示データを受け取っていないのか、又は危険回避指示データの伝達に時間がかかっているため、まだ受け取っていないのかがその制御ユニットには判別できない。
【００３５】
上位階層の制御ユニット（例えば統合制御ユニット１００）はロボットの動き全体を把握しているため、上位階層の制御ユニットからの危険回避指示データは適切に危険な状態を回避できる。しかし、下位階層の制御ユニットは自分より上位の階層の情報を得ることができない。よって可能な限り上位階層からの危険回避指示データを待つために、上記のように非常通知データを受け取って所定の時間経過するまで待ってから危険回避の判断を行う。この所定の時間経過後の時刻を危険回避指示締切時刻と称する。
【００３６】
上記の危険回避指示締切時刻は以下のようにして定める。まず、非常通知データに含まれている非常検知時刻に非常種別ごとにあらかじめ定められた、危険回避のために必要な時間を足して、最終締切時刻を求める。
【００３７】
上記の危険回避のために必要な時間、いわゆる危険回避対処時間は、非常状態ごとに緊急度を考慮して、危険回避を行うために許される遅れ時間よりも小さい値に定めておく。上記の最終締切時刻から、自分の制御ユニットから端末の制御ユニットまで危険回避指示が伝達されて実際に危険回避動作が行われるまでの最大の遅れ時間を引いた値を、危険回避指示締切時刻とする。これにより最終締切時刻までに危険回避動作が行われる。
【００３８】
１つの非常状態（非常識別コードが同じもの）に対しては、危険回避指示締切時刻に達するよりも前に上位の制御システムからの危険回避指示が到着するので、上位の制御システムの判断に基づいて、危険回避指示を決定することができる。
【００３９】
上記の原則により、非常状態を確実に各制御ユニットに通知し、危険な状態に至る前に危険回避を行うことができる。危険回避の判断では、上位の制御ユニットの判断が優先されるので、より大局的な判断に基づいて、最適な危険回避動作を決定できる。また、何らかの障害により上位の制御ユニットからの指示が届かない場合でも、各制御ユニット内で危険回避判断、指示が行われるので、安全性が高まる。なお、非常通知の際に重複通信を避けるのは、非常通知の通信量が増大して新しい非常通知の送信が妨げられたり、情報処理装置の負荷が増えて、危険回避動作が遅れることを防ぐためである。
【００４０】
また、危険回避指示を決定する方法は、対象とするシステムの詳細に依存するが、本実施例のような複雑な移動体を含むシステムでは、衝突を防止するために、以下を原則とする。
【００４１】
１．移動体２台が近くを逆向きに互いに接近する方向に走行している場合には、双方が停止する。
２．移動体２台が近くを同方向に走行している場合には、後方を走行している移動体は停止し、前方を走行している移動体は走行を継続する。
３．上記以外の場合には、非常状態が発生した移動体は停止し、非常状態が発生していない移動体は走行を継続する。
【００４２】
（分散制御システムの動作）
上記の非常状態への対処原則を実現するために、各制御ユニットの情報処理装置は、次のフローにより非常検知と非常通知と危険回避指示を行う。
【００４３】
まず、入出力回路から入力したセンサ、モータ等の情報に基づいて、非常状態の有無を判断する（ステップＳ１００）。非常状態の例としては、センサにより近くに障害物が検出される場合や、モータに異常な大電流が流れる場合などがある。このような非常状態を検知した場合は、Ｓ１１０へ進み、検知していない場合はＳ２００へ進む。
【００４４】
ステップ１００で非常状態を検出した場合は、非常通知データを生成する（ステップＳ１１０）。ステップ１１０では非常状態の種別を判定し、上述の非常通知データを生成し、非常検知時刻として現在時刻を格納する。
続いて、制御通信路と非常通信路を通じて、非常通知先ユニットへ非常通知データを送信し（ステップＳ１２０）、非常通知データを記憶装置に記憶する（ステップＳ１３０）。
【００４５】
判断ステップＳ１００で非常状態の検知がなかった場合、またはステップＳ１３０で非常通知データを記憶装置に記憶した後は、非常通知データの受信があったか否かを判断する（ステップＳ２００）。ステップＳ２００で制御通信経路または非常通信経路を通じて非常通知データを受信していると判断された場合（Ｙ）にはステップＳ２１０に進む。
【００４６】
このステップＳ２１０では、記憶装置に記憶されている過去に受信した非常通知データを検索して、同じ識別コードの非常通知データを受信しているかどうか調べる。既に受信している場合には非常通知データを転送する（ステップＳ２１１）。
【００４７】
なお、転送する非常通知データのうち、送信元コードは、この制御ユニットの識別コードに置き換えて転送する。また、元の非常通知データの送信元コードに記録されている送信元の制御ユニットに対しては、非常通知データを転送しない。
【００４８】
ステップＳ２１１で非常通知データを送信した後、非常通知データを記憶装置に記憶する（ステップＳ２１２）。
ステップＳ２００で非常通信データを受信した場合、又はステップＳ２１０で過去に同じ非常通知データを受け取っていた場合、又はステップＳ２１２で非常通知データを記憶装置に記憶した後は、危険回避指示データを受信していれば、危険回避データを記憶装置に記憶する（ステップＳ３００）。
【００４９】
次に、記憶装置を検索して、過去に受信した非常通知データのうち危険回避指示締切時刻に達しているものがあるかどうかを調べる（ステップＳ４００）。このステップＳ４００で危険回避指示締め切り時刻に到達しているものがあると判断された場合には、続いて危険回避データを受信しているか否かの判断を行う（ステップＳ４１０）。
【００５０】
ステップＳ４１０では記憶されている危険回避指示データを検索する。この検索は、ステップＳ４００で見つかった締切時刻に到達している過去の非常通知データが、非常通知データの識別コードに該当する危険回避指示データを受信しているかどうか、そして上位の制御ユニットから受信したデータであるかどうかを調べる。当該データに該当する場合にはステップＳ４１１に進み、危険回避指示データを生成する。
【００５１】
ステップＳ４１０で危険回避データを受信していないと判断された場合は、これまでに受信した非常通知データとセンサ情報に基づいて、独自に危険回避の方法を見つけて、危険回避指示データを生成する。生成したデータは下位の制御システムへ送信する。危険回避指示データの判断元ユニットには自分の制御ユニットの識別コードを格納する。
【００５２】
ステップＳ４１０で危険回避データを受信していると判断された場合には、受信した危険回避データに基づいて危険回避指示データを生成し、下位の制御ユニットに送信する（ステップＳ４１１）。このステップＳ４１１で生成する危険回避指示データのうち、判断元コードは、危険回避指示データの判断元コードをコピーする。同じ非常識別コードに対応する複数の危険回避指示データを受信している場合には、判断元コードを参照して、制御システムの階層が最も上位のものを選択して用いる。判断元の階層が同じ場合には、直属の上位の制御ユニットから送信された危険回避指示データを選択して使用する。ここで、「直属の上位の制御ユニット」とは、自分の制御ユニットに対して制御指示を与える上位ユニットを順にたどって到達できる制御ユニットを意味する。
【００５３】
ステップＳ４１１、ステップ４１２で危険回避指示データを生成した後は、危険回避指示データを下位の制御ユニットに送信すると共に（ステップＳ４２０）、この危険回避指示データの生成に用いられた非常通知データを削除する（ステップＳ４３０）。
ステップＳ４００で危険回避指示締切時刻に到達していないと判断された場合、又はステップＳ４３０で記憶装置から非常通知データを削除した後は、再びステップＳ１００へ戻る。
【００５４】
（具体的な制御例）
以下、本発明の分散制御システムにおける非常状態への対処の例を示す。以下の例では２台の自律移動ロボット１１、１２が直列に並んで同じ方向に走行している時に、後方のロボットのモータ３２２に異常が発生した状況を想定する。
また、通信経路に障害がある場合とない場合が想定できる。以下にそれぞれの場合の制御を説明する。通信経路は第１のロボット１１、第２のロボット１２において、階層構造に沿った通信経路については、「第１の」、「第２の」との語を用いて区別するが、例えば第１のロボット内では各階層内の通信経路を区別する用語については図の参照番号を用いて区別する。
【００５５】
通信経路に障害がない場合
図４は階層構造の通信経路に障害がない場合の分散制御システムのブロック図である。この場合、まず第２のロボット１２の第２のモータ３２２に発生した異常を第２の走行制御ユニット１２２が検出する。第２の走行制御ユニット１２２は非常通知データ３１を生成し、第２の通信経路２２２および冗長な非常通信経路２９０を通じて上位の第２の走行計画ユニット１２０と、第１のロボット１１の第１の走行制御ユニット１１２に送信する。
【００５６】
第２の走行計画ユニット１２０は第２の通信経路２２０および２２１を通じて統合制御ユニット１００と第２の周囲環境認識ユニット１２１へ非常通知データ３１を転送する。以下、非常通知データ３１を受信した制御ユニットは、図中に実線矢印で示したように非常通知データ３１を転送し、全ての制御ユニットに非常通知データ３１が通知される。
【００５７】
次に、各制御ユニットはこの非常通知データ３１を受け取ると、危険回避指示締切時刻になるまで待つ。危険回避指示締切時刻は下位のユニットによる処理時間を加味して決められるので、最も上位の統合制御ユニット１００が最初に危険回避指示締切時刻に達する。統御制御ユニット１００は第１のロボット１１の位置、第２のロボット１２の位置、各ロボットの速度を常に得ている。これらの情報に基づいて、安全な危険回避指示として、前方を走行している第１のロボット１１に対しては、走行を継続する第１の危険回避指示データ４１を生成し、後方を走行している第２のロボット１２に対しては、走行を停止させる第２の危険回避指示データ４２を生成する。
【００５８】
第１の危険回避指示データ４１、第２の危険回避指示データ４２は、それぞれ第１の通信経路２１０、第２の通信経路２２０を通じて第１の走行計画ユニット１１０、第２の走行計画ユニット１２０に伝達される。次に、第１の走行計画ユニット１１０、第２の走行計画ユニット１２０が危険回避指示締切時刻に達する。これら両ユニットは、上位の制御ユニットからそれぞれ第１の危険回避指示データ４１、第２の危険回避指示データ４２を受信しているので、それに基づいて、第１のロボット１１の走行を継続させる第１の危険回避指示データ６１および第２のロボット１２の走行を停止させる第２の危険回避指示データ６２を生成し、第１の通信経路２１２、第２の通信経路２２２を通じて第１の走行制御ユニット１１２、第２の走行制御ユニット１２２に送信する。
【００５９】
次に、第１の走行制御ユニット１１２、第２の走行制御ユニット１２２が危険回避指示締切時刻に達する。これら両ユニットは、上位の制御ユニットからそれぞれ、第１の危険回避指示データ６１、第２の危険回避指示データ６２を受信しているので、それに基づいて、第１の制御ユニット１１２は第１のロボット１１の走行を継続させるように第１のモータ３１２を制御する。また、第２の制御ユニット１２２は第２のロボット１２の走行を停止させるように第２のモータ３２２を制御する。これにより、前方を走行している第１のロボット１１は走行を継続し、後方を走行している第２のロボット１２は走行を停止して、危険な状態を回避できる。
【００６０】
通信経路に障害がある場合
図５は、通信経路に障害がある場合の分散制御システムのブロック図である。ここでは統合制御ユニット１００と第１のロボット１１、第２のロボット１２との間の第１の通信経路２１０と第２の通信経路２２０に障害がある場合を想定している。この場合は、図５に示すように、上記通信経路に障害がない場合（図４)と同様に非常通知データの生成、転送が行われるが、第１の通信経路２１０、第２の通信経路２２０が通じないため、統合制御ユニット１００は非常通知データ３１を受信できない。そのため、統合制御ユニット１００は危険回避指示データ３１を受信しない。このため第１の走行計画ユニット１１０と第２の走行計画ユニット１２０は、上位制御ユニットからの危険回避指示データを受信していないので、各々が危険回避指示締め切り時刻に達する。よって各ロボットは独自に危険回避指示データ（この場合は第１の危険回避指示データ６１、第２の危険回避指示データ６２）を生成する。
【００６１】
この場合は、第１および第２のロボット１１、１２の第１の走行計画ユニット１１０と第２の走行計画ユニット１２０は、他のロボットの位置の情報を持たないので、相互に位置関係の判定はできない。そこで、両方とも危険回避のために走行を停止する行動を選択する。すなわち、走行を停止させる内容の第１の危険回避指示データ６１、第２の危険回避指示データ６２を生成し、それぞれ第１の通信経路２１２、第２の通信経路２２２を通じて、第１の走行制御ユニット１１２、第２の走行制御ユニット１２２に送信する。
【００６２】
次に、これら第１および第２の走行制御ユニット１１２、１２２が危険回避指示締切時刻に達する。両ユニットは、上位の制御ユニットから危険回避指示データを受信しているので、それに基づいて、第１の制御ユニット１１２、第２の走行制御ユニット１２２はそれぞれ、第１のロボット１１、第２のロボット１２の走行を停止させるように第１のモータ３１１、第２のモータ３２２を制御する。これにより第１のロボット１１、第２のロボット１２は停止する。
【００６３】
この場合の危険回避動作は、結果的に両方のロボットが停止するという点で第１の場合とは異なっているが、通信路２１０、２２０に障害がある状況下としては最善の選択であるといえる。
【図面の簡単な説明】
【００６４】
【図１】実施の形態のブロック図である。
【図２】ユニットの構成を示したブロック図である。
【図３】分散制御システムの処理の流れを示したフローチャートである。
【図４】通信経路に障害がない場合の分散制御システムのブロック図である。
【図５】通信経路に障害がある場合の分散制御システムのブロック図である。
【符号の説明】
【００６５】
１１・・・第１のロボット、１２・・・第２のロボット、１００・・・統合制御ユニット、１１０・・・第１の走行計画ユニット、１１１・・・第１の周囲環境認識ユニット、１１２・・・第１の走行制御ユニット
【図１】
2009037424.tif 000003
【図２】
2009037424.tif 000004
【図３】
2009037424.tif 000005
【図４】
2009037424.tif 000006
【図５】
2009037424.tif 000007