(57)【特許請求の範囲】
【請求項１】
移動体に設けられた複数の制御対象を分散制御する分散制御システムであって、
前記移動体の制御のための演算処理を行う主制御ユニットと、
前記主制御ユニットと制御データの通信を行い、前記制御データに基づいて一以上の制御対象の駆動を制御する複数の副制御ユニットと、
を備え、
前記主制御ユニットは、
前記複数の副制御ユニットに対応する前記制御対象と当該制御対象に付与されたアドレスとの関係が記憶された第一の記憶部と、
各前記制御対象に関する個別制御データを前記アドレスの順に並べた前記制御データを生成する制御データ生成部と、
前記制御データをブロードキャスト方式で送信する制御データ送信部と、
を備え、
前記副制御ユニットは、
当該副制御ユニットに対応する前記制御対象の前記アドレスが記憶された第二の記憶部と、
前記第二の記憶部に記憶された前記アドレスに基づいて、前記制御データに含まれる当該副制御ユニットに対応する前記制御対象に関する前記個別制御データを取得する個別制御データ取得部と、
取得された前記個別制御データに基づいて、前記制御対象の駆動を制御する制御対象制御部と、
を備えることを特徴とする分散制御システム。
【請求項２】
前記主制御ユニットは、
前記制御対象又は前記副制御ユニットの増減に応じて前記第一の記憶部に記憶された前記制御対象と前記アドレスとの関係を更新する第一のアドレス更新部と、
更新された前記アドレスを前記副制御ユニットへ通知するアドレス通知部と、
を備え、
前記副制御ユニットは、通知された前記アドレスに基づいて前記第二の記憶部に記憶された前記アドレスを更新する第二のアドレス更新部を備える
ことを特徴とする請求項１に記載の分散制御システム。
【請求項３】
前記移動体は、自律移動可能なロボットであり、
前記制御対象は、関節駆動用のモータを含む
ことを特徴とする請求項１又は請求項２に記載の分散制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット等の移動体における分散制御システムに関する。
【背景技術】
【０００２】
ロボット等の移動体では、複数の制御対象（例えば、モータ、センサ等）の駆動を分散制御するために、移動体の制御のための演算処理機能を有する主制御ユニットと、主制御ユニットと制御データの通信を行い、主制御ユニットの演算処理結果に基づいて一以上の制御対象の駆動を制御する複数の副制御ユニットと、を備えるシステムが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２１１３８０号公報（図４）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボット等の移動体では、仕様変更に伴い、制御対象としてのモータ、センサ等を追加したり取り外したりすることがある。しかし、特許文献１に記載されたシステムは、具体的な構成の開示がされておらず、制御対象又は副制御ユニットの増減に対応できるものではない。
【０００５】
本発明は、前記事情に鑑みて創作されたものであり、移動体における制御対象又は副制御ユニットの増減に容易に対応可能な分散制御システムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するため、本発明は、移動体に設けられた複数の制御対象を分散制御する分散制御システムであって、前記移動体の制御のための演算処理を行う主制御ユニットと、前記主制御ユニットと制御データの通信を行い、前記制御データに基づいて一以上の制御対象の駆動を制御する複数の副制御ユニットと、を備え、前記主制御ユニットは、前記複数の副制御ユニットに対応する前記制御対象と当該制御対象に付与されたアドレスとの関係が記憶された第一の記憶部と、各前記制御対象に関する個別制御データを前記アドレスの順に並べた前記制御データを生成する制御データ生成部と、前記制御データをブロードキャスト方式で送信する制御データ送信部と、を備え、前記副制御ユニットは、当該副制御ユニットに対応する前記制御対象の前記アドレスが記憶された第二の記憶部と、前記第二の記憶部に記憶された前記アドレスに基づいて、前記制御データに含まれる当該副制御ユニットに対応する前記制御対象に関する前記個別制御データを取得する個別制御データ取得部と、取得された前記個別制御データに基づいて、前記制御対象の駆動を制御する制御対象制御部と、を備えることを特徴とする。
【０００７】
かかる構成によると、主制御ユニットから副制御ユニットへブロードキャスト送信される制御データに含まれる個別制御データにアドレスが付与されており、副制御ユニットが自身に接続されている制御対象のアドレスに基づいて必要な個別制御データのみを取得するので、分散制御システムは、移動体における制御対象又は副制御ユニットの増減に容易に対応することができる。
【０００８】
前記主制御ユニットは、前記制御対象又は前記副制御ユニットの増減に応じて前記第一の記憶部に記憶された前記制御対象と前記アドレスとの関係を更新する第一のアドレス更新部と、更新された前記アドレスを前記副制御ユニットへ通知するアドレス通知部と、を備え、前記副制御ユニットは、通知された前記アドレスに基づいて前記第二の記憶部に記憶された前記アドレスを更新する第二のアドレス更新部を備えることが望ましい。
【０００９】
また、前記移動体は、自律移動可能なロボットであり、前記制御対象は、関節駆動用のモータを含む構成であってもよい。
【発明の効果】
【００１０】
本発明によれば、移動体における制御対象又は副制御ユニットの増減に容易に対応することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るロボットの外観を示す側面図である。
【図２】図１のロボットの内部構造を模式的に示す斜視図である。
【図３】図１のロボットを示すブロック図である。
【図４】本発明の実施形態に係る分散制御システムを示すブロック図である。
【図５】図４の主制御ユニット及び副制御ユニットの構成を示すブロック図である。
【図６】（ａ）は、変更前の制御データ構造体を示す図、（ｂ）は、変更後の制御データ構造体を示す図である。
【図７】制御対象の増減について説明するための図であり、変更前後の制御データ構造体及びアドレスと、各副制御ユニットにおける変更前後の先頭の制御対象のアドレス及び対象数と、を示す図である。
【図８】本発明の実施形態に係る分散制御システムの動作例を説明するための図である。
【発明を実施するための形態】
【００１２】
本発明の実施形態について、図面を参照して詳細に説明する。説明において、同一の要素には同一の番号を付し、重複する説明は省略する。
【００１３】
（ロボットＲの構成）
まず、本発明の実施形態に係るロボットＲについて説明する。以下の説明において、ロボットＲの前後方向にＸ軸、左右方向にＹ軸、上下方向にＺ軸をとる（図１参照）。本発明の実施形態に係るロボットＲは、自律移動型の２足移動ロボットである。このロボットＲは、外部のロボット管理装置から送信された実行命令信号に基づき、タスクを実行するものである。
【００１４】
図１は、ロボットの外観を示す模式図である。図１に示すように、ロボットＲは、人間と同じように２本の脚部Ｒ１（１本のみ図示）により起立、移動（歩行、走行など）し、上体部Ｒ２、２本の腕部Ｒ３（１本のみ図示）及び頭部Ｒ４を備え、自律して移動する。また、ロボットＲは、これら脚部Ｒ１、上体部Ｒ２、腕部Ｒ３及び頭部Ｒ４の動作を制御する制御装置搭載部Ｒ５を背負う形で背中（上体部Ｒ２の後部）に備えている。
【００１５】
（ロボットＲの駆動構造）
続いて、ロボットＲの駆動構造について説明する。図２は、図１のロボットの駆動構造を模式的に示す斜視図である。なお、図２における関節部は、当該関節部を駆動する電動モータにより示されている。
【００１６】
（脚部Ｒ１）
図２に示すように、左右それぞれの脚部Ｒ１は、６個の関節部１１Ｒ（Ｌ）〜１６Ｒ（Ｌ）を備えている。左右１２個の関節は、股部（脚部Ｒ１と上体部Ｒ２との連結部分）の脚部回旋用（Ｚ軸まわり）の股関節部１１Ｒ，１１Ｌ（右側をＲ、左側をＬとする。また、Ｒ，Ｌを付さない場合もある。以下同じ。）、股部のピッチ軸（Ｙ軸）まわりの股関節部１２Ｒ，１２Ｌ、股部のロール軸（Ｘ軸）まわりの股関節部１３Ｒ，１３Ｌ、膝部のピッチ軸（Ｙ軸）まわりの膝関節部１４Ｒ，１４Ｌ、足首のピッチ軸（Ｙ軸）まわりの足首関節部１５Ｒ，１５Ｌ、及び、足首のロール軸（Ｘ軸）まわりの足首関節部１６Ｒ，１６Ｌから構成されている。そして、脚部Ｒ１の下には足部１７Ｒ，１７Ｌが取り付けられている。
【００１７】
すなわち、脚部Ｒ１は、股関節部１１Ｒ（Ｌ），１２Ｒ（Ｌ），１３Ｒ（Ｌ）、膝関節部１４Ｒ（Ｌ）及び足首関節部１５Ｒ（Ｌ），１６Ｒ（Ｌ）を備えている。股関節部１１Ｒ（Ｌ）〜１３Ｒ（Ｌ）と膝関節部１４Ｒ（Ｌ）とは大腿リンク５１Ｒ，５１Ｌで、膝関節部１４Ｒ（Ｌ）と足首関節部１５Ｒ（Ｌ），１６Ｒ（Ｌ）とは下腿リンク５２Ｒ，５２Ｌで連結されている。
【００１８】
（上体部Ｒ２）
図２に示すように、上体部Ｒ２は、ロボットＲの基体部分であり、脚部Ｒ１、腕部Ｒ３及び頭部Ｒ４と連結されている。すなわち、上体部Ｒ２（上体リンク５３）は、股関節部１１Ｒ（Ｌ）〜１３Ｒ（Ｌ）を介して脚部Ｒ１と連結されている。また、上体部Ｒ２は、後記する肩関節部３１Ｒ（Ｌ）〜３３Ｒ（Ｌ）を介して腕部Ｒ３と連結されている。また、上体部Ｒ２は、後記する首関節部４１，４２を介して頭部Ｒ４と連結されている。
また、上体部Ｒ２は、上体回旋用（Ｚ軸まわり）の関節部２１を備えている。
【００１９】
（腕部Ｒ３）
図２に示すように、左右それぞれの腕部Ｒ３は、７個の関節部３１Ｒ（Ｌ）〜３７Ｒ（Ｌ）を備えている。左右１４個の関節部は、肩部（腕部Ｒ３と上体部Ｒ２との連結部分）のピッチ軸（Ｙ軸）まわりの肩関節部３１Ｒ，３１Ｌ、肩部のロール軸（Ｘ軸）まわりの肩関節部３２Ｒ，３２Ｌ、腕部回旋用（Ｚ軸まわり）の肩関節部３３Ｒ，３３Ｌ、肘部のピッチ軸（Ｙ軸）まわりの肘関節部３４Ｒ，３４Ｌ、手首回旋用（Ｚ軸まわり）の腕関節部３５Ｒ，３５Ｌ、手首のピッチ軸（Ｙ軸）まわりの手首関節部３６Ｒ，３６Ｌ、及び手首のロール軸（Ｘ軸）まわりの手首関節部３７Ｒ，３７Ｌから構成されている。そして、腕部Ｒ３の先端には把持部（ハンド）７１Ｒ，７１Ｌが取り付けられている。
【００２０】
すなわち、腕部Ｒ３は、肩関節部３１Ｒ（Ｌ），３２Ｒ（Ｌ），３３Ｒ（Ｌ）、肘関節部３４Ｒ（Ｌ）、腕関節部３５Ｒ（Ｌ）及び手首関節部３６Ｒ（Ｌ），３７Ｒ（Ｌ）を備えている。肩関節部３１Ｒ（Ｌ）〜３３Ｒ（Ｌ）とは肘関節部３４Ｒ（Ｌ）とは上腕リンク５４Ｒ（Ｌ）で、肘関節部３４Ｒ（Ｌ）と手首関節部３６Ｒ（Ｌ），３７Ｒ（Ｌ）とは前腕リンク５５Ｒ（Ｌ）で連結されている。
【００２１】
（頭部Ｒ４）
図２に示すように、頭部Ｒ４は、首部（頭部Ｒ４と上体部Ｒ２との連結部分）のＹ軸まわりの首関節部４１と、首部のＺ軸まわりの首関節部４２と、を備えている。首関節部４１は頭部Ｒ４のチルト角を設定するためのものであり、首関節部４２は頭部Ｒ４のパンを設定するためのものである。
【００２２】
このような構成により、左右の脚部Ｒ１は合計１２の自由度を与えられ、移動中に１２個の関節部１１Ｒ（Ｌ）〜１６Ｒ（Ｌ）を適宜な角度で駆動することで、脚部Ｒ１に所望の動きを与えることができ、ロボットＲが任意に３次元空間を移動することができる。また、左右の腕部Ｒ３は合計１４の自由度を与えられ、１４個の関節部３１Ｒ（Ｌ）〜３７Ｒ（Ｌ）を適宜な角度で駆動することで、ロボットＲが所望の作業を行うことができる。
【００２３】
また、足首関節部１５Ｒ（Ｌ），１６Ｒ（Ｌ）と足部１７Ｒ（Ｌ）との間には、公知の６軸力センサ６１Ｒ（Ｌ）が設けられている。６軸力センサ６１Ｒ（Ｌ）は、床面からロボットＲに作用する床反力の３方向成分Ｆｘ，Ｆｙ，Ｆｚと、モーメントの３方向成分Ｍｘ，Ｍｙ，Ｍｚと、を検出する。
【００２４】
また、手首関節部３６Ｒ（Ｌ），３７Ｒ（Ｌ）と把持部７１Ｒ（Ｌ）との間には、公知の６軸力センサ６２Ｒ（Ｌ）が設けられている。６軸力センサ６２Ｒ（Ｌ）は、ロボットＲの把持部７１Ｒ（Ｌ）に作用する反力の３方向成分Ｆｘ，Ｆｙ，Ｆｚと、モーメントの３方向成分Ｍｘ，Ｍｙ，Ｍｚと、を検出する。
【００２５】
また、上体部Ｒ２には、傾斜センサ６３が設けられている。傾斜センサ６３は、上体部Ｒ２の重力軸（Ｚ軸）に対する傾きと、その角速度と、を検出する。
また、各関節部の電動モータは、その出力を減速・増力する減速機（図示せず）を介して前記した大腿リンク５１Ｒ（Ｌ）、下腿リンク５２Ｒ（Ｌ）などを相対変位させる。これら各関節部の角度は、関節角度検出手段（例えば、ロータリエンコーダ）によって検出される。
【００２６】
制御装置搭載部Ｒ５は、後記する自律移動制御部１５０、把持部制御部１６０、無線通信部１７０、主制御部２００、バッテリ（図示せず）などを収納している。各センサ６１〜６３などの検出データは、制御装置搭載部Ｒ５内の各制御部に送られる。また、各電動モータは、各制御部からの駆動指示信号により駆動される。
【００２７】
図３は、図１のロボットを示すブロック図である。図３に示すように、ロボットＲは、脚部Ｒ１、腕部Ｒ３及び頭部Ｒ４に加えて、カメラＣ，Ｃ、スピーカＳ、マイクＭＣ，ＭＣ、画像処理部１００、音声処理部１１０、対象検知部１２０、自律移動制御部１５０、把持部制御部１６０、無線通信部１７０、主制御部２００及び記憶部３００を備えている。
【００２８】
また、ロボットＲは、ジャイロセンサＳＲ１及びＧＰＳ受信器ＳＲ２を備えている。
ジャイロセンサＳＲ１は、ロボットＲの向きに関するデータ（向きデータ）を検出する。また、ＧＰＳ受信器ＳＲ２は、ロボットＲの位置に関するデータ（位置データ）を検出する。ジャイロセンサＳＲ１及びＧＰＳ受信器ＳＲ２が検出したデータは、主制御部２００に出力され、ロボットＲの行動を決定するために利用されると共に、主制御部２００から無線通信部１７０を介してロボット管理装置３に送信される。
【００２９】
［カメラ］
カメラＣ，Ｃは、映像をデジタルデータとして取り込むことができるものであり、例えばカラーＣＣＤ(Charge-Coupled Device)カメラが使用される。カメラＣ，Ｃは、左右に平行に並んで配置され、撮影した画像は画像処理部１００に出力される。このカメラＣ，Ｃと、スピーカＳ及びマイクＭＣ，ＭＣは、いずれも頭部Ｒ４の内部に配設される。
【００３０】
［画像処理部］
画像処理部１００は、カメラＣ，Ｃが撮影した画像を処理して、撮影された画像からロボットＲの周囲の状況を把握するため、周囲の障害物や人物の認識を行う部分である。この画像処理部１００は、ステレオ処理部１０１、移動体抽出部１０２及び顔認識部１０３を備えている。
【００３１】
ステレオ処理部１０１は、左右のカメラＣ，Ｃが撮影した２枚の画像の一方を基準としてパターンマッチングを行い、左右の画像中の対応する各画素の視差を計算して視差画像を生成し、生成した視差画像及び元の画像を移動体抽出部１０２に出力する。なお、この視差は、ロボットＲから撮影された物体までの距離を表すものである。
【００３２】
移動体抽出部１０２は、ステレオ処理部１０１から出力されたデータに基づき、撮影した画像中の移動体を抽出するものである。移動する物体（移動体）を抽出するのは、移動する物体は人物であると推定して、人物の認識をするためである。
移動体の抽出をするために、移動体抽出部１０２は、過去の数フレーム（コマ）の画像を記憶しており、最も新しいフレーム（画像）と、過去のフレーム（画像）を比較して、パターンマッチングを行い、各画素の移動量を計算し、移動量画像を生成する。そして、視差画像と、移動量画像とから、カメラＣ，Ｃから所定の距離範囲内で、移動量の多い画素がある場合に、その位置に人物がいると推定し、その所定距離範囲のみの視差画像として、移動体を抽出し、顔認識部１０３へ移動体の画像を出力する。
また、移動体抽出部１０２は、抽出した移動体の高さ、すなわち身長を算出し、顔認識部１０３へ出力する。
【００３３】
顔認識部１０３は、抽出した移動体から肌色の部分を抽出して、その大きさ、形状などから顔の位置を認識する。なお、同様にして、肌色の領域と、大きさ、形状などから手の位置も認識される。
認識された顔の位置は、ロボットＲが移動するときの情報として、また、その人とのコミュニケーションを取るため、主制御部２００に出力されると共に、無線通信部１７０に出力されて、基地局１を介して、ロボット管理装置３に送信される。
【００３４】
［スピーカ］
スピーカＳは、後記する音声合成部１１１により生成された音声データに基づき、音声を出力する。
【００３５】
［マイク］
マイクＭＣ，ＭＣは、ロボットＲの周囲の音を集音するものである。集音された音は、後記する音声認識部１１２及び音源定位部１１３に出力される。
【００３６】
［音声処理部］
音声処理部１１０は、音声合成部１１１、音声認識部１１２及び音源定位部１１３を備えている。
【００３７】
音声合成部１１１は、主制御部２００が決定し、出力してきた発話行動の指令に基づき、文字情報から音声データを生成し、スピーカＳに音声を出力する部分である。音声データの生成には、予め記憶している文字情報と音声データとの対応関係を利用する。
【００３８】
音声認識部１１２は、マイクＭＣ，ＭＣから音声データが入力され、予め記憶している音声データと文字情報との対応関係に基づき、音声データから文字情報を生成し、主制御部２００に出力するものである。
【００３９】
音源定位部１１３は、マイクＭＣ，ＭＣ間の音圧差及び音の到達時間差に基づいて、音源の位置（ロボットＲからの距離及び方向）を特定する。
【００４０】
［対象検知部］
対象検知部１２０は、ロボットＲの周囲に検知用タグを備える検知対象（例えば、ヒト）が存在するか否かを検知すると共に、検知対象の存在が検知された場合、当該検知対象の位置を特定するものである。
【００４１】
［自律移動制御部］
自律移動制御部１５０は、頭部制御部１５１、腕部制御部１５２及び脚部制御部１５３を備えている。頭部制御部１５１は、主制御部２００の指示に従い頭部Ｒ４を駆動し、腕部制御部１５２は、主制御部２００の指示に従い腕部Ｒ３を駆動し、脚部制御部１５３は、主制御部２００の指示に従い脚部Ｒ１を駆動する。
【００４２】
［把持部制御部］
把持部制御部１６０は、主制御部２００の指示に従い、ロボットハンドである把持部７１を駆動する。
【００４３】
［無線通信部］
無線通信部１７０は、ロボット管理装置３とデータの送受信を行う通信装置である。無線通信部１７０は、公衆回線通信装置１７１および無線通信装置１７２を備えている。
公衆回線通信装置１７１は、携帯電話回線やＰＨＳ(Personal Handyphone System)回線などの公衆回線を利用した無線通信手段である。一方、無線通信装置１７２は、IEEE802.11b規格に準拠するワイヤレスＬＡＮなどの、近距離無線通信による無線通信手段である。
無線通信部１７０は、ロボット管理装置３からの接続要求に従い、公衆回線通信装置１７１または無線通信装置１７２を選択してロボット管理装置３とデータ通信を行う。
【００４４】
［主制御部及び記憶部］
記憶部３００には、ロボットＲが移動するエリアの地形（壁位置、机位置など）に関するデータ（地図データ）、ロボットＲが発話するためのデータ（発話データ）等が記憶されている。主制御部２００は、ロボット管理装置３によって送信されたタスクを取得し、取得されたタスクと、ジャイロセンサＳＲ１及びＧＰＳ受信器ＳＲ２によって検出されたデータと、に基づいて、ロボットＲの行動を決定し、決定された内容を自律移動制御部１５０及び把持部制御部１６０へ出力する。
【００４５】
＜分散制御システムの構成＞
図４に示すように、本発明の実施形態に係る分散制御システム４００は、移動体であるロボットＲに設けられた複数の制御対象を分散制御するシステムであって、一の主制御ユニット４１０と、複数の副制御ユニット４２０（４２０Ａ〜４２０Ｎ）と、制御対象４３０であるモータ４３０Ａ−１，４３０Ａ−２，４３０Ｂ−１，４３０−Ｂ２，４３０−Ｃ１，４３０Ｃ−２、センサ４３０Ｄ−１，４３０Ｄ−２、…及びデバイス４３０Ｎ−１，４３０Ｎ−２と、を備える。
【００４６】
主制御ユニット４１０は、図３における自律移動制御部１５０及び把持部制御部１６０に相当し、ロボットＲの制御のための演算処理を行って全制御対象４３０に関する個別制御データを含む制御データを生成し、生成された制御データを副制御ユニット４２０へ送信する。
【００４７】
副制御ユニット４２０は、主制御ユニット４１０と制御データの通信を行い、主制御ユニット４１０から送信された制御データを受信し、受信した制御データに基づいて、当該副制御ユニット４２０に通信可能に接続された一以上の制御対象４３０の駆動を制御する。
【００４８】
副制御ユニット４２０Ａは、例えば図３における頭部Ｒ４に設けられたモータドライバとしてのＥＣＵ（Electronic Control Unit）であり、頭部Ｒ４に設けられた首関節部４１，４２用のモータの駆動を制御する。以下、説明の簡略化のため、副制御ユニット４２０Ａには二つのモータ４３０Ａ−１，４３０Ａ−２が通信可能に接続されているものとする。
【００４９】
副制御ユニット４２０Ｂは、例えば図３における右側の腕部Ｒ３に設けられたモータドライバとしてのＥＣＵであり、腕部Ｒ３に設けられた肩関節部３１Ｒ，３２Ｒ，３３Ｒ用のモータの駆動を制御する。以下、説明の簡略化のため、副制御ユニット４２０Ｂには二つのモータ４３０Ｂ−１，４３０Ｂ−２が通信可能に接続されているものとする。
【００５０】
副制御ユニット４２０Ｃは、例えば図３における右側の腕部Ｒ３に設けられたモータドライバとしてのＥＣＵであり、腕部Ｒ３に設けられた肘関節部３４Ｒ及び腕関節部３５Ｒ用のモータの駆動を制御する。以下、説明の簡略化のため、副制御ユニット４２０Ｃには二つのモータ４３０Ｃ−１，４３０Ｃ−２が通信可能に接続されているものとする。
【００５１】
副制御ユニット４２０Ｄは、センサ用ＥＣＵであり、ロボットＲのセンサ（例えば、右側の腕部Ｒ３に設けられた６軸力センサ等）の駆動を制御する。以下、説明の簡略化のため、副制御ユニット４２０Ｄには二つのセンサ４３０Ｄ−１，４３０Ｄ−２が通信可能に接続されているものとする。かかる副制御ユニット４２０Ｄは、個別制御データに基づいて、センサ４３０Ｄ−１，４３０Ｄ−２のゲイン値、サンプリング周期等を変更することができる。
【００５２】
副制御ユニット４２０Ｎは、インターフェース用ＥＣＵであり、ロボットＲに取り付けられたデバイス（例えば、ＬＥＤ、ブザー等）の駆動を制御する。以下、説明の簡略化のため、副制御ユニット４２０Ｎには二つのデバイス４３０Ｎ−１，４３０Ｎ−２が通信可能に接続されているものとする。
【００５３】
続いて、図５〜図７を参照して、主制御ユニット４１０及び副制御ユニット４２０の詳細構成について説明する。図５は、主制御ユニット及び副制御ユニットの構成を示すブロック図であり、図６（ａ）は、変更前の制御データ構造体を示す図、図６（ｂ）は、変更後の制御データ構造体を示す図であり、図７は、制御対象の増減について説明するための図であり、変更前後の制御データ構造体及びアドレスと、各副制御ユニットにおける変更前後の先頭の制御対象のアドレス及び対象数と、を示す図である。
【００５４】
＜主制御ユニットの構成＞
図５に示すように、主制御ユニット４１０は、機能部として、第一の記憶部４１１と、制御データ生成部４１２と、タイミング決定部４１３と、制御データ送信部４１４と、第一のアドレス更新部４１５と、アドレス通知部４１６と、制御対象情報取得部４１７と、を備える。
【００５５】
第一の記憶部４１１には、複数の制御対象４３０と当該制御対象４３０に付与されたアドレス（オフセットアドレスともいう）との関係が記憶されている。より詳細には、第一の記憶部４１１には、制御データ構造体と、当該制御データ構造体に付与されたアドレスと、が記憶されている。ここで、制御データ構造体は、図６（ａ）に示すように、制御データ全体において、どのデータがどの制御対象の個別制御データであるかを示すものである。また、アドレスは、０から始まる整数であって、例えば、図７の変更前に示すように、制御データのうち、１番目のモータ４３０Ａ−１の個別制御データが含まれる部分にアドレス「０」が付与され、２番目のモータ４３０Ａ−２の個別制御データが含まれる部分にアドレス「１」が付与され、３番目のモータ４３０Ｂ−１の個別制御データが含まれる部分にアドレス「２」が付与され、…、Ｎ番目のデバイス４３０Ｎ−２の個別制御データが含まれる部分にアドレス「２Ｎ＋１」が付与されている。かかる第一の記憶部４１１は、主制御ユニット４１０の起動時のみ機能する。
【００５６】
制御データ生成部４１２は、後記する指令値生成部２０１から送信された指令値を受信し、受信した指令値（個別制御データ）を、第一の記憶部４１１に記憶された、制御対象４３０と当該制御対象４３０に付与されたアドレスとの関係に基づいて並べ替えた制御データを生成し、制御データ送信部４１４へ出力する。ここで、主制御ユニット４１０の制御対象情報取得部４１７は、後記する各副制御ユニット４２０の制御対象送信部４２５によって送信された各制御対象情報をバラバラの順に取得して主制御部２００の指令値生成部２０１へ送信する。指令値生成部２０１は、生成された各指令値をバラバラの順で主制御ユニット４１０の制御データ生成部４１２へ送信するため、制御データ生成部４１２は、各指令値をバラバラの順で取得することになる。したがって、制御データ生成部４１２は、制御データを生成する際に、バラバラの順で取得された各指令値（個別制御データ）を、第一の記憶部４１１に記憶された制御データ構造体の順に並べ替える。
【００５７】
タイミング決定部４１３は、移動体であるロボットＲの制御対象４３０の全体の制御タイミング（全ての制御対象の同期基準）を決定し、制御データ送信部４１４へ出力する。かかる制御タイミングの決定に関しては、公知の技術を採用可能であるため、詳細な説明を省略する。
【００５８】
制御データ送信部４１４は、制御データ生成部４１２によって生成された制御データ、及び、タイミング決定部４１３によって決定された送信タイミングを取得し、取得された制御データを取得された送信タイミングで、全ての副制御ユニット４２０に対してブロードキャスト送信する。
【００５９】
第一のアドレス更新部４１５は、制御対象４３０の増減が行われた場合に、外部端末５００から送信された増減通知を受信し、受信した増減通知に基づいて第一の記憶部４１１に記憶された制御対象４３０とアドレスとの関係を更新する。かかる増減通知は、どの副制御ユニット４２０の制御対象４３０が増減したかを含むデータである。なお、外部端末５００は、図３のロボット管理装置３であって、基地局１、無線通信部１７０及び主制御部２００を介して主制御ユニットの第一のアドレス更新部４１５と通信可能に接続される構成であってもよい。
【００６０】
より詳細には、第一のアドレス更新部４１５は、増減通知に基づいて制御データ構造体を生成し直すとともに、複数の制御対象４３０のアドレスを算出し直し、新たな制御データ構造体及びアドレスを第一の記憶部４１１に記憶させる。例えば、副制御ユニット４２０Ｂに新たな制御対象（モータ）４３０Ｂ−３が接続された場合には、第一のアドレス更新部４１５は、第一の記憶部４１１に記憶された変更前の制御データ構造体（図６（ａ）参照）を読み出し、これに制御対象４３０Ｂ−３の個別制御データの場所を追加した変更後の制御データ構造体（図６（ｂ）参照）を生成し、変更後の制御データ構造体にアドレスを付与し直して、変更度の制御データ構造体及びアドレスを第一の記憶部４１１に記憶させる。
【００６１】
また、第一のアドレス更新部４１５は、第一の記憶部４１１に記憶された制御対象４３０とアドレスとの関係を更新した場合に、更新されたアドレスを含む更新通知をアドレス通知部４１６へ出力する。本実施形態において、更新通知は、副制御ユニット４２０ごとに生成されており、当該副制御ユニット４２０の接続された先頭の制御対象４３０のアドレスと対象数とを含むデータである。
なお、第一のアドレス更新部４１５は、第一の記憶部４１１に記憶された制御対象４３０とアドレスとの関係を書き換えた場合には、第一の記憶部４１１を再起動させることによって前記した関係を更新する。
【００６２】
アドレス通知部４１６は、第一のアドレス更新部４１５から出力された更新通知を取得し、取得された更新通知を各副制御ユニット４２０へ送信する。
【００６３】
制御対象情報取得部４１７は、後記する副制御ユニット４２０の制御対象情報送信部４２５によって送信された制御対象情報を取得し、主制御部２００の指令値生成部２０１へ転送する。
【００６４】
なお、主制御部２００の指令値生成部２０１は、制御対象情報取得部４１７によって転送された制御対象情報を取得し、ロボットＲが実行すべきタスクの内容、及び、取得された制御対象情報に基づいて、フィードバック制御等の手法を用いて各制御対象の制御量を生成し、指令値として主制御ユニット４１０の制御データ生成部４１２へ送信する。
【００６５】
＜副制御ユニット４２０の構成＞
副制御ユニット４２０は、モータドライバとしてのＥＣＵ、センサ用ＥＣＵ、インターフェース用ＥＣＵ等といった、個別制御データに基づいて当該副制御ユニット４２０に接続された制御対象４３０の駆動を直接制御するものであって、機能部として、第二の記憶部４２１と、個別制御データ取得部４２２と、制御対象制御部４２３と、第二のアドレス更新部４２４と、制御対象情報送信部４２５と、を備える。
【００６６】
第二の記憶部４２１には、当該副制御ユニット４２０に対応する制御対象４３０のアドレスが記憶されている。本実施形態では、図７の「変更前」に記載されているように、副制御ユニット４２０の先頭の制御対象４３０のアドレスと当該副制御ユニット４２０に接続された制御対象４３０の数（対象数）とが関連付けて記憶されている。例えば、副制御ユニット４２０Ａの第二の記憶部４２１には、先頭の制御対象４３０のアドレス「０」と対象数「２」とが関連付けて記憶されており、副制御ユニット４２０Ｂの第二の記憶部４２１には、先頭の制御対象４３０のアドレス「２」と対象数「２」とが関連付けて記憶されている。なお、図７では、制御データ構造体のうち、各副制御ユニット４２０Ａ，Ｂ，Ｃ，…，Ｎの「変更前」及び「変更後」の対応制御対象４３０の個別制御データが格納される部分が太線枠で示されている。
【００６７】
個別制御データ取得部４２２は、制御データ送信部４１４によって送信された制御データを受信し、第二の記憶部４２１に記憶されたアドレス及び対象数を参照することによって、制御データの中から該当する個別制御データを取得し、残りの個別制御データを破棄する。取得された個別制御データは、制御対象制御部４２３へ出力される。
例えば、図７に示す副制御ユニット４２０Ａの個別制御データ４２２は、第二の記憶部４２１に記憶されたアドレスが「０」、対象数が「２」であるため、制御データのうち、１，２番目の個別制御データを取得する。
【００６８】
制御対象制御部４２３は、個別制御データ取得部４２２から出力された個別制御データを取得し、取得された個別制御データに基づいて、副制御ユニット４２０に接続された制御対象４３０の駆動を制御する。個別制御データは、前記した指令値等であって、例えば、制御対象４３０がモータである場合には、制御対象制御部４２３は、個別制御データであるモータの目標回転数と実際の回転数が一致するように、当該モータの駆動を制御する。
【００６９】
第二のアドレス更新部４２４は、アドレス通知部４１６から送信された更新通知を受信し、受信した更新通知に基づいて、第二の記憶部４２１に記憶されたアドレス及び対象数を更新する。なお、第二のアドレス更新部４２４は、第二の記憶部４２１に記憶されたアドレス及び対象数を書き換えた場合には、第二の記憶部４２１を再起動させることによって前記したアドレス及び対象数を更新する。
【００７０】
制御対象情報送信部４２５は、制御対象４３０であるモータ、センサ等から出力された現在値である制御対象情報を取得し、取得された制御対象情報を主制御ユニット４１０の制御対象情報取得部４１７へ送信する。
【００７１】
＜分散制御システムの動作例＞
続いて、分散制御システム４００の動作例について、図８を参照し、副制御ユニット４２０Ｂにモータ４３０Ｂ−３が追加接続された場合を例にとって説明する（適宜図４〜図７参照）。
【００７２】
＜主制御ユニットの動作例＞
まず、作業者がロボットＲの副制御ユニット４２０Ｂに新たなモータ４３０Ｂ−３を接続し、外部端末５００にその旨を入力する。主制御ユニット４１０の第一のアドレス更新部４１５が外部端末５００によって送信された増減指示を受信すると（ステップＳ１１でＹｅｓ）、第一のアドレス更新部４１５は、増減指示に基づいて新たな制御データ構造体を生成するとともに新たなアドレスを算出し（ステップＳ１２）、第一の記憶部４１１に記憶させ、第一の記憶部４１１を再起動させる。これにより、第一の記憶部４１１に記憶された制御データ構造体及びアドレスが更新される。なお、ステップＳ１１でＮｏの場合は、本フローはステップＳ１４に移行する。
【００７３】
ステップＳ１２に続いて、第一のアドレス更新部４１５は、第一の記憶部４１１を参照して副制御ユニット４２０ごとの更新通知を生成し、第一のアドレス通知部４１６へ出力する。
続いて、アドレス通知部４１６は、更新通知を各副制御ユニット４２０へ送信する（ステップＳ１３）。
【００７４】
続いて、制御データ生成部４１２が制御データを生成して制御データ送信部４１４へ出力し、制御データ送信部４１４は、送信タイミングに応じて制御データを全副制御ユニット４２０に対してブロードキャスト送信し（ステップＳ１４）、その後、本フローはステップＳ１１に移行する。
【００７５】
＜副制御ユニットの動作例＞
一方、副制御ユニット４２０の第二のアドレス更新部４２４がアドレス通知部４１６から送信された更新通知を受信すると（ステップＳ２１でＹｅｓ）、第二のアドレス更新部４２４は、更新通知に含まれる先頭のアドレス及び対象数を第二の記憶部４２１に記憶させ、第二の記憶部４２１を再起動させることによって、第二の記憶部４２１における先頭のアドレス及び対象数を更新する（ステップＳ２２）。ここで、図７に示すように、副制御ユニット４２０Ｂの第二の記憶部４２１では、対象数が「２」から「３」に更新され、副制御ユニット４２０Ｃの第二の記憶部４２１では、先頭のアドレスが「４」から「５」に更新され、それ以降の副制御ユニット４２０の第二の記憶部４２１でも、先頭のアドレスが１つ大きい数に更新される。なお、ステップＳ２１でＮｏの場合は、本フローはステップＳ２３に移行する。
【００７６】
続いて、個別制御データ取得部４２２が制御データ送信部４１４によって送信された制御データを受信すると（ステップＳ２３でＹｅｓ）、個別制御データ取得部４２２は、第二の記憶部４２１の記憶内容を参照して当該副制御ユニット４２０に接続された制御対象４３０の個別制御データのみを取得し（ステップＳ２４）、制御対象制御部４２３へ出力する。例えば、図７に示すように、変更前の副制御ユニット４２０Ｂでは、先頭のアドレスが「２」、対象数が「２」であるので、個別制御データ取得部４２２は、制御データに含まれる３，４番目の個別制御データを取得するのに対し、変更後の副制御ユニット４２０Ｂでは、先頭のアドレスが「２」、対象数が「３」であるので、個別制御データ取得部４２２は、制御データに含まれる３〜５番目の個別制御データを取得する。なお、ステップＳ２３でＮｏの場合は、本フローはステップＳ２１に移行する。
【００７７】
続いて、制御対象制御部４２３は、取得された個別制御データに基づいて、制御対象４３０の駆動を制御する（ステップＳ２５）、ステップＳ２５の実行後、本フローはステップＳ２１に移行する。
【００７８】
従来の分散制御システムにおいては、主制御ユニットが個別制御データを制御対象に付与されたアドレスとの関係に基づいて並べ替えた制御データを生成して副制御ユニットへブロードキャスト送信し、副制御ユニットがアドレスに基づいて必要な個別制御データのみを取得するという概念は無く、全ての主制御ユニット及び副制御ユニットが同じ制御データ構造体を有していた（全ての主制御ユニット及び副制御ユニットにおいて、同じ制御データ構造体がプログラム上で宣言されていた）。そのため、従来の分散制御システムにおいて制御対象又は副制御ユニットの増減を行う場合は、全ての主制御ユニット及び副制御ユニットにおいて制御データ構造体を書き換える必要があった。
【００７９】
これに対して、本発明の実施形態に係る分散制御システム４００は、主制御ユニット４１０から副制御ユニット４２０へブロードキャスト送信される制御データから副制御ユニット４２０が自身に接続されている制御対象４３０の先頭のアドレス及び対象数に基づいて必要な個別制御データのみを取得するので、移動体であるロボットＲにおける制御対象４３０又は副制御ユニット４２０の増減に容易に対応することができる。なお、本システム４００を起動するときにも、アドレス通知部４１６が制御対象４３０のアドレスを第一の記憶部４１１から読み出して副制御ユニット４２０の第二のアドレス更新部４２４へ通知され、第二のアドレス更新部４２４が第二の記憶部４２１に記憶されたアドレスを更新する。
【００８０】
以上、本発明の実施形態について図面を参照して説明したが、本発明は前記実施形態に限定されず、本発明の要旨を逸脱しない範囲で適宜変更可能である。例えば、第二の記憶部４２１には、当該副制御ユニット４２０に接続された全ての制御対象４３０のアドレスが記憶されており、第一のアドレス更新部４１５は、更新通知として、副制御ユニット４２０に接続された全ての制御対象４３０のアドレスを含むデータを生成する構成であってもよい。また、分散制御システム４００の動作例として、制御対象４３０が一つ追加された場合について説明したが、分散制御システム４００は、制御対象４３０が二つ以上追加された場合、制御対象４３０が一つ以上削減された場合、副制御ユニット４２０（及び当該副制御ユニット４２０に接続された一以上の制御対象４３０）が一つ以上追加又は削減された場合等においても、同様に動作することによって、制御対象４３０又は副制御ユニット４２０の増減に容易に対応することができる。
【符号の説明】
【００８１】
４００  分散制御システム
４１０  主制御ユニット
４１１  第一の記憶部
４１２  制御データ生成部
４１４  制御データ送信部
４１５  第一のアドレス更新部
４１６  アドレス通知部
４２０  副制御ユニット
４２１  第二の記憶部
４２２  個別制御データ取得部
４２３  制御対象制御部
４２４  第二のアドレス更新部
４２５  制御対象情報送信部
Ｒ      ロボット（移動体）
【図１】
0005613114.tif 000002
【図２】
0005613114.tif 000003
【図３】
0005613114.tif 000004
【図４】
0005613114.tif 000005
【図５】
0005613114.tif 000006
【図６】
0005613114.tif 000007
【図７】
0005613114.tif 000008
【図８】
0005613114.tif 000009