(57)【要約】【課題】  伝送遅延を考慮するのみでは、フィードバック制御を行う周期を最速化することが困難であった。【解決手段】  制御装置は、通信を介して所定の動作を実行する複数の駆動装置を制御する制御装置であって、複数の駆動装置のそれぞれが信号を受信して当該信号に応じて動作を実行できる状態となるまでの駆動準備時間と、複数の駆動装置のそれぞれと制御装置との信号の伝送に要する伝送遅延とを取得し、駆動準備時間と伝送遅延とに基づいて、複数の駆動装置を制御するための信号を当該複数の駆動装置へ送信する順序を決定し、決定した順序に基づいて、複数の駆動装置へ信号を送信する。【選択図】  図６
2013084111.tif 000002
【特許請求の範囲】
【請求項１】
外部環境情報を検出する複数の検出装置および所定の動作を実行する複数の駆動装置と、前記複数の検出装置および前記複数の駆動装置と通信を行う制御装置とを含む通信システムであって、
前記制御装置は、
前記複数の検出装置のそれぞれが外部環境情報の検出および検出した情報を送信するための信号の生成に要する検出処理時間と、前記複数の駆動装置のそれぞれが信号を受信して当該信号に応じて前記動作を実行できる状態となるまでの駆動準備時間と、前記複数の検出装置および前記複数の駆動装置のそれぞれと前記制御装置との信号の伝送に要する伝送遅延とを取得する取得手段と、
前記複数の検出装置のそれぞれについての前記検出処理時間と前記伝送遅延とに基づいて、前記複数の検出装置が前記制御装置へ信号を送信する順序を決定し、前記複数の駆動装置のそれぞれについての駆動準備時間と前記伝送遅延とに基づいて、前記制御装置が前記複数の駆動装置を制御するための信号を当該複数の駆動装置へ送信する順序を決定する決定手段と、
決定した前記複数の検出装置が前記制御装置へ信号を送信する順序の情報を前記複数の検出装置へ送信し、前記制御装置が前記複数の駆動装置へ信号を送信する順序に基づいて当該複数の駆動装置を制御する信号を送信する送信手段と、
前記複数の検出装置から前記検出した情報を含む信号を受信する受信手段と、
を有し、
前記複数の検出装置は、
前記制御装置から、当該制御装置へ信号を送信する順序の情報を受信する受信手段と、
受信した順序の情報に基づいて、検出した情報から生成された信号を前記制御装置へ送信する送信手段と、
を有し、
前記複数の駆動装置は、
自らの制御のための信号を前記制御装置から受信する受信手段を有する、
ことを特徴とする通信システム。
【請求項２】
前記検出装置と前記制御装置とは、１つの装置に含まれることを特徴とする請求項１に記載の通信システム。
【請求項３】
通信を介して所定の動作を実行する複数の駆動装置を制御する制御装置であって、
前記複数の駆動装置のそれぞれが信号を受信して当該信号に応じて前記動作を実行できる状態となるまでの駆動準備時間と、前記複数の駆動装置のそれぞれと前記制御装置との信号の伝送に要する伝送遅延とを取得する取得手段と、
前記駆動準備時間と前記伝送遅延とに基づいて、前記複数の駆動装置を制御するための信号を当該複数の駆動装置へ送信する順序を決定する決定手段と、
決定した前記順序に基づいて、前記複数の駆動装置へ前記信号を送信する送信手段と、
を有することを特徴とする制御装置。
【請求項４】
前記決定手段は、前記複数の駆動装置のうち、前記駆動準備時間と前記伝送遅延との和が大きい駆動装置への信号から順に送信するように前記順序を決定することを特徴とする請求項３に記載の制御装置。
【請求項５】
前記複数の駆動装置のそれぞれから、前記駆動準備時間に関する情報を受信する受信手段をさらに備える請求項３または４に記載の制御装置。
【請求項６】
前記駆動準備時間に関する情報は、前記複数の駆動装置の種別に関する情報であることを特徴とする請求項５に記載の制御装置。
【請求項７】
外部環境情報を検出する複数の検出装置と通信を行う通信装置であって、
前記複数の検出装置のそれぞれが外部環境情報の検出および検出した情報を送信するための信号の生成に要する検出処理時間と、前記複数の検出装置のそれぞれと前記通信装置との信号の伝送に要する伝送遅延とを取得する取得手段と、
前記複数の検出装置のそれぞれについての前記検出処理時間と前記伝送遅延とに基づいて、前記複数の検出装置が前記通信装置へ信号を送信する順序を決定する決定手段と、
決定した前記順序の情報を前記複数の検出装置へ送信する送信手段と、
前記複数の検出装置から、当該複数の検出装置が検出した情報を含む信号を受信する受信手段と、
を有することを特徴とする通信装置。
【請求項８】
前記決定手段は、前記複数の検出装置のうち、前記検出処理時間と前記伝送遅延との和が小さい検出装置から順に信号を送信するように前記順序を決定する請求項７に記載の通信装置。
【請求項９】
前記受信手段は、前記複数の検出装置のそれぞれから、前記検出処理時間に関する情報を受信することを特徴とする請求項７または８に記載の通信装置。
【請求項１０】
前記順序の情報は、前記複数の検出装置のそれぞれが信号を送信するタイミングに関する情報であることを特徴とする請求項７から９のいずれか１項に記載の通信装置。
【請求項１１】
通信を介して所定の動作を実行する複数の駆動装置を制御する制御装置における制御方法であって、
取得手段が、前記複数の駆動装置のそれぞれが信号を受信して当該信号に応じて前記動作を実行できる状態となるまでの駆動準備時間と、前記複数の駆動装置のそれぞれと前記制御装置との信号の伝送に要する伝送遅延とを取得する取得工程と、
決定手段が、前記駆動準備時間と前記伝送遅延とに基づいて、前記複数の駆動装置を制御するための信号を当該複数の駆動装置へ送信する順序を決定する決定工程と、
送信手段が、決定した前記順序に基づいて、前記複数の駆動装置へ前記信号を送信する送信工程と、
を有することを特徴とする制御方法。
【請求項１２】
外部環境情報を検出する複数の検出装置と通信を行う通信装置における通信方法であって、
取得手段が、前記複数の検出装置のそれぞれが情報の検出および検出した情報を送信するための信号の生成に要する検出処理時間と、前記複数の検出装置のそれぞれと前記通信装置との信号の伝送に要する伝送遅延とを取得する取得工程と、
決定手段が、前記複数の検出装置のそれぞれについての前記検出処理時間と前記伝送遅延とに基づいて、前記複数の検出装置が前記通信装置へ信号を送信する順序を決定する決定工程と、
送信手段が、決定した前記順序の情報を前記複数の検出装置へ送信する送信工程と、
受信手段が、前記複数の検出装置から、当該複数の検出装置が検出した情報を含む信号を受信する受信工程と、
を有することを特徴とする通信方法。
【請求項１３】
コンピュータを請求項３から６のいずれか１項に記載の制御装置が備える各手段として機能させるためのプログラム。
【請求項１４】
コンピュータを請求項７から１０のいずれか１項に記載の通信装置が備える各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信に要する時間を短縮する通信システム、制御装置、通信装置、制御方法、通信方法、及びプログラムに関する。
【背景技術】
【０００２】
モーション制御を必要とする制御システムは、一般的に、コントローラと、複数のセンサや複数のモータなどのアクチュエータにより構成される。一般的な制御システムの構成図を図１６に示す。図１６において１０００はコントローラ、１００１はモータ（アクチュエータ）、１００２はセンサである。センサ１００２は一定周期毎に外部環境をセンシングし、得られたデータを検出信号としてコントローラ１０００へ出力する。コントローラ１０００は、入力される検出信号に含まれる外部環境に関するデータと、その目標値とのずれを算出し、その補正値に基づいてアクチュエータを制御する駆動信号を生成し、当該駆動信号を各アクチュエータ１００１へ出力する。アクチュエータ１００１は入力される駆動信号に基づいて動作する。ここで検出信号は、例えば温度や光の強度を示すアナログ値を含む信号であり、例えば当該アナログ値を電圧で表現した信号である。また、駆動信号は、例えばモータを制御するＰＷＭ信号である。制御システムは、以上のようなフィードバック制御を周期的に繰り返すことで、所望の動作を得ることができる。
【０００３】
フィードバックを行う周期は、一般的にサンプリング周期と呼ばれる。制御システムにおいて高速かつ精密な動作を実現するためにはサンプリング周期を短くする必要がある。この場合、さらに、センサが外部環境を検出して情報を取得するタイミングと、アクチュエータが駆動するタイミング（以下、「駆動タイミング」という）を同期させる必要がある。しかし、サンプリング周期の高速化は、いくつかの外的要因により、事実上の限界がある。その要因の１つとしてむだ時間がある。むだ時間とは制御システムの内部に生じる時間遅れのことを指す。上記の制御システムでは、センサ１００２が外部環境を検出してから、アクチュエータ１００１が駆動を始めるまでに要する時間がむだ時間となる。むだ時間はサンプリング周期と比較して十分に小さく設定する必要がある。もしむだ時間が無視できないほど大きくなると、制御が不安定となるおそれがある。以上より、制御システムの高速化のためには、むだ時間の短縮が重要な課題となる。
【０００４】
むだ時間の短縮と同期の確保を実現する単純な方法として、図１６に示すように、コントローラと、各センサ及びアクチュエータを１対１の配線で接続する構成がある。この構成は、高速な信号送信を可能とし、容易にむだ時間の短縮と同期の確保を達成できる。しかし、センサ及びアクチュエータの個数分の配線が必要となる。したがって多数のセンサ、多数のアクチュエータを有する制御システムでは配線の数が膨大となる。このため、ケーブルの引き回しが複雑になるほか、ケーブルの重量や振動による制御への影響、及びコストの増大などを招くことが課題となる。このため、近年では、コントローラと各センサ、アクチュエータ間の配線をネットワーク化することで省配線化する取り組みが広く行われている。
【０００５】
例えば、特許文献１には、コントローラに内蔵される親局と、センサやアクチュエータが接続される子局間をデイジーチェーン接続する制御システムが記載されている。この制御システムでは、親局は、下りの信号送信時に、下位に接続された子局宛のデータほど先に送信されるように送信順序を決定する。
【０００６】
特許文献２には、特許文献１と同様に、コントローラに内蔵される親局と、センサやアクチュエータが接続される子局間をデイジーチェーン接続する制御システムが記載されている。この制御システムでは、下りの信号送信時は、特許文献１と同様、親局は下位に接続された子局宛のデータほど先に送信する。一方、上りの信号送信時には、上位に接続された子局ほど先にデータを送信する。
【０００７】
また特許文献３、特許文献４には、コントローラに内蔵される親局と、センサやアクチュエータが接続される子局がネットワーク化されており、親局は通信開始前に各子局との間で生じる伝送遅延時間を把握する。そして当該伝送遅延時間に基づいて端局間の同期を確保する制御システムが記載されている。この構成により、高精度な同期の確保を実現する。これらの特許文献によれば、コントローラと各センサ及びアクチュエータ間の配線をネットワーク化しつつ、むだ時間の短縮と同期の確保を実現することができる。
【０００８】
モーション制御を必要とする制御システムの１つに、産業用ロボットに代表されるロボットシステムがある。特許文献５には、機械的・電気的に独立した関節モジュールを組み合わせて接続し、関節モジュール内部の通信手段を用いて動作制御に関わる情報を送受信することで全体の動作制御を行うロボットシステムが記載されている。この構造により、多数の関節モジュールを組み合わせた場合においても、作業内容の変化に応じて柔軟に組替えができるロボットシステムを構築できる。特許文献６には、作業内容を認識し、作業内容に応じた適切なエンドエフェクタの選択及び自律的な交換を行うロボットシステムが記載されている。特許文献５及び特許文献６のロボットシステムを用いれば、作業内容毎に専用のロボットを用意する必要はない。このようなロボットシステムは、例えば、多品種少量生産の製品組み立て等に用いられる自動機械に好適である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−０８８２０８号公報
【特許文献２】特開２００６−０９４３０２号公報
【特許文献３】特開２００２−１６４９０３号公報
【特許文献４】特開平１０−０１３３９４号公報
【特許文献５】特開平０９−０２９６７１号公報
【特許文献６】特開２００９−１４８８４５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述のように、コントローラに内蔵される親局と、センサやアクチュエータが接続される子局間をネットワーク化する場合、各子局はセンサが検出した外部環境の情報に、信号送信しやすい形式に変換するための情報処理を施す。以下、この情報処理を検出用情報処理という。検出した情報に検出用情報処理を施したものを検出データという。なお、検出用情報処理とはＡＤ変換やデータ圧縮処理といった処理を指す。各子局で生成された検出データは変調処理や符号化処理が施された後、検出信号として親局へ送信される。親局は検出信号を受信すると、当該検出信号に復調処理や復号化処理を施し、検出データを得る。そして検出データに含まれる外部環境の情報と目標値とのずれを算出し、補正用のデータを生成する。以後、当該補正用のデータを駆動データと呼ぶ。親局で生成された駆動データは変調処理が施された後、駆動制御信号として各子局へ送信される。各子局は駆動制御信号を受信すると、当該駆動制御信号に復調処理を施し、駆動データを得る。そして駆動データに所定の処理（以下「駆動準備」という）を施し、駆動信号を生成する。ここで駆動準備とは、解凍処理やＤＡ変換、ＰＷＭ信号の生成といった処理を指す。生成された駆動信号は所定のタイミングでアクチュエータへ出力される。以上のようなフィードバック制御を周期的に繰り返すことで、所望の動作を得る。なお、以下の説明において、検出用情報処理に要する時間を検出処理時間、駆動準備にかかる時間を駆動準備時間と呼ぶ。
【００１１】
特許文献１及び特許文献２では、上述の検出処理時間及び駆動準備時間は考慮されていない。例えば、特許文献１及び特許文献２において、下り／上りでの送信順序はトポロジーに基づいて決定される。すなわち、送信順序の決定は、伝送遅延時間に基づいて実行され、検出処理時間や駆動準備時間によって影響を受けることはない。特許文献１及び特許文献２の技術は、検出処理時間と駆動準備時間が伝送遅延時間と比較して十分に小さい場合、または全子局の検出処理時間と駆動準備時間が同一である場合に、むだ時間を最小化できる。しかし、検出処理時間と駆動準備時間の少なくとも一方が伝送遅延時間と比較して無視できないほど大きく、かつ全子局の検出処理時間と駆動準備時間の少なくとも一方が同一でない場合、むだ時間を最小化できないことがあった。
【００１２】
ロボットシステムのような複雑な制御システムでは、視覚センサ、力覚センサ及び角度センサのような様々なセンサと、ステッピングモータ、ＤＣモータ及びレーザーのような様々なアクチュエータにより構築される。したがって、全子局の検出処理時間及び駆動準備時間が同一であるとは限らない。また制御システムとして、親局だけでなく子局にも制御機能を持たせることで負荷を分散させる分散型の制御システムが採用されることも考えられる。分散型の制御システムは、ＣＰＵ負荷を分散することができ、またデータは抽象化されて伝送されるため、ネットワーク化により制限される帯域を有効に活用することができる。このような制御システムにおいては、全子局の検出処理時間または駆動準備時間は伝送遅延時間と比較して、無視できないほど大きくなる。
【００１３】
また従来技術では、駆動タイミングの設定についての具体的な記載がない。特許文献５及び特許文献６に記載のロボットシステムは、エンドエフェクタを作業内容に応じて適宜交換する。このようなロボットシステムを構築する場合に、状況に応じて交換されるエンドエフェクタの駆動準備時間を把握しないで駆動タイミングを同期させるには、常に想定される最大の駆動準備時間に合わせて駆動させるなどの対策が必要となる。ゆえに、駆動準備時間の短いエンドエフェクタを装着した際にも、駆動準備時間が最も長いエンドエフェクタに合わせた駆動タイミングとなり、時間的なむだが生じる。
【００１４】
以上のように、従来技術では特に上述の駆動準備時間などを考慮していないため、むだ時間を最小化できず、サンプリング周期を最速化することが困難であるという課題があった。本発明は上記課題に鑑みなされたものであり、むだ時間を最小にする技術を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明による通信システムは、外部環境情報を検出する複数の検出装置および所定の動作を実行する複数の駆動装置と、前記複数の検出装置および前記複数の駆動装置と通信を行う制御装置とを含む通信システムであって、前記制御装置は、前記複数の検出装置のそれぞれが情報の検出および検出した情報を送信するための信号の生成に要する検出処理時間と、前記複数の駆動装置のそれぞれが信号を受信して当該信号に応じて前記動作を実行できる状態となるまでの駆動準備時間と、前記複数の検出装置および前記複数の駆動装置のそれぞれと前記制御装置との信号の伝送に要する伝送遅延とを取得する取得手段と、前記複数の検出装置のそれぞれについての前記検出処理時間と前記伝送遅延とに基づいて、前記複数の検出装置が前記制御装置へ信号を送信する順序を決定し、前記複数の駆動装置のそれぞれについての駆動準備時間と前記伝送遅延とに基づいて、前記制御装置が前記複数の駆動装置を制御するための信号を当該複数の駆動装置へ送信する順序を決定する決定手段と、決定した前記複数の検出装置が前記制御装置へ信号を送信する順序の情報を前記複数の検出装置へ送信し、前記制御装置が前記複数の駆動装置へ信号を送信する順序に基づいて当該複数の駆動装置を制御する信号を送信する送信手段と、前記複数の検出装置から前記検出した情報を含む信号を受信する受信手段と、を有し、前記複数の検出装置は、前記制御装置から、当該制御装置へ信号を送信する順序の情報を受信する受信手段と、受信した順序の情報に基づいて、検出した情報から生成された信号を前記制御装置へ送信する送信手段と、を有し、前記複数の駆動装置は、自らの制御のための信号を前記制御装置から受信する受信手段を有する。
【発明の効果】
【００１６】
本発明によれば、通信に係るむだな時間を最小とする通信システム、制御装置、通信装置、制御方法、通信方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】ロボットシステムの概要図。
【図２】ロボットシステムの接続形態例を表す構成図。
【図３】親局の機能構成図。
【図４】子局の機能構成図。
【図５】初期シーケンスの動作フロー図。
【図６】データの送信順序を説明する図。
【図７】送信順序算出部の動作フロー図。
【図８】実施形態２に係る親局の機能構成図。
【図９】実施形態２に係るデータの送信順序を説明する図。
【図１０】実施形態２に係る親局に設置される送信順序変更部の動作フロー図。
【図１１】実施形態３に係る親局の内部構成図。
【図１２】実施形態３に係る子局の内部構成図。
【図１３】実施形態３に係る初期シーケンスの動作フロー図。
【図１４】実施形態３に係るスロットテーブルを説明する図。
【図１５】実施形態３に係るデータの送信順序を説明する図。
【図１６】従来の制御システムの構成図。
【図１７】ロボットシステムのマルチドロップによる接続形態例を表す構成図。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
【００１９】
＜＜実施形態１＞＞
（システム構成）
図１は本実施形態に係るロボットシステムの概要図である。本ロボットシステムは、コントローラ１、視覚モジュール２、関節モジュール３及び４、エンドエフェクタ５及び６により構成される。コントローラ１は、ロボットシステム全体の動作制御を実施する。また、不図示の上位の管理システムへ、作業進捗やエラー情報等を随時送信する。視覚モジュール２は、加工対象物８のようなロボットシステムが影響を及ぼす外部環境の取得（撮影）を実施する。関節モジュール３及び関節モジュール４は、ロボットアームの関節の角度制御を実施する。エンドエフェクタ５は、図示するようロボットアーム先端に取り付けられ、加工対象物８に対して所定の加工を実行する。エンドエフェクタ６は、エンドエフェクタ５とは異なる所定の加工を実行することができるエンドエフェクタである。エンドエフェクタ５とエンドエフェクタ６は、作業内容に応じて人手を介さず自律的に交換される。なお、コントローラ１と視覚モジュール２や関節モジュール３等を含むロボット本体とは、配線７により接続される。配線７を介してコントローラ１と各モジュールとの間の信号の伝送が行われる。
【００２０】
図２は本実施形態のロボットシステムの接続形態例を表す構成図である。本ロボットシステムは、親局１０と子局Ａ２０〜子局Ｅ６０を有する通信システムである。親局１０はコントローラ１に含まれるものとする。また、子局Ａ２０は視覚モジュール２に、子局Ｂ３０は関節モジュール３に、子局Ｃ４０は関節モジュール４に、子局Ｄ５０はエンドエフェクタ５に、そして子局Ｅ６０はエンドエフェクタ６に、それぞれ含まれるものとする。
【００２１】
親局１０は下位局接続コネクタ１１を有し、最上位の子局となる子局Ａ２０の上位局接続コネクタ２１と接続される。子局Ａ２０〜子局Ｄ５０は、それぞれ、上位局と接続するための上位局接続コネクタ２１〜上位局接続コネクタ５１を有する。同様に、子局Ａ２０〜子局Ｄ５０は、下位局と接続するための下位局接続コネクタ２２〜下位局接続コネクタ５２を有する。以上のように、親局１０と子局Ａ２０〜子局Ｄ５０はデイジーチェーン接続されてシステムが構成される。また、データは各子局がデータ中継を行うことで伝送される。子局Ａ２０〜子局Ｅ６０には、それぞれモータ２３〜モータ６３、センサ２４〜センサ６４が接続されている。なお、本実施形態では、子局Ｄ５０及び子局Ｅ６０も下位局接続コネクタ５２及び下位局接続コネクタ６２を有する例を示しているが、接続される下位局が存在しない場合は、これらはなくてもよい。
【００２２】
本実施形態では、視覚モジュール２はモータ２３、センサ２４を有する。ここでモータ２３は例えばオープンループ方式で制御されるステッピングモータであり、センサ２４はＣＣＤカメラのような外部環境を撮影により取得するセンサである。子局Ａ２０は、センサ２４が検出した外部環境情報（撮影画像等）を、サンプリング周期毎にＡＤ変換や圧縮処理などの検出用情報処理と変調処理を施した後に、検出信号として親局１０へ送信する。モータ２３は、センサ２４の撮影角度調整を行うために設けられている。子局Ａ２０は、親局１０から駆動制御信号を受信すると、パルス電圧に変換する駆動準備を実行し、駆動信号をモータ２３へ出力する。
【００２３】
また、本実施形態では、関節モジュール３はモータ３３及びセンサ３４を、関節モジュール４はモータ４３及びセンサ４４を有する。ここでモータ３３及びモータ４３は例えばクローズループ方式で制御されるサーボモータであり、センサ３４及びセンサ４４はロータリーエンコーダといった角度検出を行うセンサである。子局Ｂ３０は、親局１０から送信される目標角度情報を含む駆動制御信号とセンサ３４が検出した角度情報とを用いて駆動準備を実行し、駆動信号を生成する。そして、子局Ｂ３０は、生成した駆動信号をモータ３３へ出力する。また、子局Ｂ３０は、センサ３４が検出した外部環境情報を、サンプリング周期毎にＡＤ変換などの検出用情報処理と変調処理を施し、親局１０へ送信する。子局Ｃ４０も子局Ｂ３０と同様の動作を実施する。
【００２４】
さらに、本実施形態では、エンドエフェクタ５はモータ５３及びセンサ５４を、エンドエフェクタ６はモータ６３及びセンサ６４を有する。ここでモータ５３は例えばオープンループ方式で制御されるステッピングモータであり、モータ６３は例えばクローズループ方式で制御されるサーボモータである。またセンサ５４、センサ６４は力覚センサのようなトルクを検出するセンサである。子局Ｄ５０は、センサ５４が検出した力覚などの外部環境情報を、サンプリング周期毎にＡＤ変換などの検出用情報処理と変調処理を施し、検出信号として親局１０へ送信する。モータ５３は、加工対象物８の把持や加工を行うハンドを駆動するために設けられる。子局Ｄ５０は、親局１０から駆動制御信号を受信すると、パルス電圧に変換する駆動準備を実行し、駆動信号としてモータ５３へ出力する。子局Ｅ６０も同様の動作を実施する。
【００２５】
また親局１０は、子局Ａ２０〜子局Ｅ６０から検出信号を受信すると、当該検出信号に含まれる画像情報、角度情報、力覚情報などの外部環境情報を取得し、当該情報に基づいて各モータの駆動制御信号を生成する。生成された駆動制御信号は各子局へ送信される。
【００２６】
以上に示すようにサンプリング周期毎にフィードバック制御を実施することで、所定の動作を実現する。
【００２７】
（親局の構成）
図３は本実施形態における親局１０の内部構成を示す図である。親局１０は、下位局接続コネクタ１１を用いて、下位局と、すなわち本実施形態においては子局Ａ２０と接続する。下位局接続コネクタ１１は、変調処理部１１２から入力された信号を子局Ａ２０へ送信し、子局Ａ２０から受信した信号を復調処理部１１３へ入力する。
【００２８】
演算処理部１００は、後述する復調処理部１１３を介して、各子局から受信した検出信号を用いて駆動演算を実行する。タイマ１０１は、例えばサンプリング周期毎にリセットされるクロックカウンタであり、ロボットシステムの動作制御を行うための基準となる時刻を生成する。タイマ信号生成部１０２は、タイマ１０１から出力されるカウント値（以後、時刻という）を含むタイマ信号を生成する。タイマ信号は各子局に送信され、後述するように各子局が有するタイマ２０２にセットされる。タイマ読出信号生成部１０３は、各子局に対して、子局が有するタイマ２０２の時刻を送信するように指令を行うタイマ読出信号を生成する。タイマ補正信号生成部１０４は後述する伝送遅延演算部１０６が算出する伝送遅延時間に応じて、各子局が有するタイマ２０２の補正値を含むタイマ補正信号を生成する。
【００２９】
処理時間読出信号生成部１０５は各子局に対し、子局が有する後述の駆動準備時間記憶部２０９に記憶された駆動準備時間信号を送信するように指令を行う処理時間読出信号を生成する。伝送遅延演算部１０６は、後述するように各子局から送信されたタイマ信号と、タイマ１０１の時刻とに基づいて、各子局の伝送遅延時間を算出する。ここで伝送遅延時間の算出には従来技術の方法を用いる。詳細については後述する。
【００３０】
駆動タイミング信号生成部１０７は、伝送遅延演算部１０６が算出した各子局の伝送遅延時間と、各子局から送信された駆動準備時間と、後述する送信順序算出部１１０の送信テーブルとから、各モータが駆動すべき時刻（駆動タイミング）を算出する。そして当該時刻情報を含む駆動タイミング信号を生成する。駆動タイミング信号の内容と決定方法については後述する。駆動制御信号生成部１０８は、演算処理部１００の演算結果に応じた駆動制御信号を生成する。
【００３１】
伝送制御部１０９は、後述する送信順序算出部１１０が生成した送信テーブルに従って、駆動制御信号生成部１０８が生成した駆動制御信号を送信する。送信順序算出部１１０は、子局毎に伝送遅延時間と駆動準備時間の和を算出し、当該和が大きい子局から順に駆動制御信号を送信することが記された送信テーブルを生成する。なお、本実施形態では、伝送遅延時間と駆動準備時間の和に基づいて送信順序を決定するが、決定の基準はこれらの時間の単なる和でなくともよい。例えば、伝送遅延時間の閾値を設定し、当該閾値を超える伝送遅延時間を有する子局から駆動準備時間が長い順に信号を送信し、それらの子局宛ての信号の送信が完了後にそれ以外の子局あての信号を送信してもよい。また、駆動準備時間の閾値を用意し、当該閾値を超える駆動準備時間を有する子局の中から、伝送遅延時間が長い順に信号を送信するようにしてもよい。これにより、子局の数が増加したときに、時間の和の比較に係る演算量を削減することができる。
【００３２】
また、送信順序算出部１１０は、同時に子局が検出信号を送信する順序を決定してもよい。例えば、子局毎に伝送遅延時間と検出処理時間との和を算出し、当該和が小さい方の子局から信号を送信させるように決定する。なお、この場合、決定した順序は、子局に当該順序に関する情報を含む信号を送信して通知する。
【００３３】
信号選択部１１１は、事前に定められたスケジュールに従って、タイマ信号、タイマ読出信号、タイマ補正信号、処理時間読出信号、駆動制御信号を選択し、出力する。なお本実施形態では、駆動タイミング信号は駆動制御信号に付加されて送信されるものとする。変調処理部１１２は、信号選択部１１１が選択した信号に変調処理を施し、通信路を介した伝送に適した形式の送信信号を生成し、子局Ａ２０〜子局Ｄ５０へ送信する。ここで変調処理とは、誤り検出符号化やクロック挿入処理等を指す。復調処理部１１３は、子局Ａ２０から受信した信号に対して復調処理を施し、タイマ信号、駆動準備時間信号、検出信号、切断／接続信号を取得する。ここで復調処理とは、誤り検出復号化やクロック再生処理等を指す。なお、子局Ａ２０から受信した信号は、子局Ｂ３０〜子局Ｄ５０がそれぞれ生成して送信した信号を、子局Ａ２０が転送したものを含む。トポロジー変更検出部１１４は、各子局から送信される切断接続信号を元に、トポロジーの変更を検出し、信号選択部１１１へトポロジーの変更を通知する。
【００３４】
（子局の構成）
図４は本実施形態における子局Ａ２０の内部構成を示す図である。子局Ａ２０は、上位局と、すなわち親局１０と接続する上位局接続コネクタ２１と、下位局と、すなわち子局Ｂ３０と接続する下位局接続コネクタ２２とを有する。上位局接続コネクタ２１は親局１０から受信した信号を復調処理部２００及び下り中継処理部２０１へ入力し、送信信号選択部２１４から入力された信号を親局１０へ送信する。また、下位局接続コネクタ２２は、子局Ｂ３０から受信した信号を下位局検知部２１０及び上り中継処理部２１３へと入力し、下り中継処理部２０１から入力された信号を子局Ｂ３０へ送信する。
【００３５】
復調処理部２００は、親局１０から受信した信号に対して復調処理を施し、タイマ信号、タイマ読出信号、タイマ補正信号、処理時間読出信号、駆動タイミング信号、駆動制御信号を取得する。下り中継処理部２０１は、親局１０から受信した信号を、自局より下位に接続された子局Ｂ３０へ転送する。転送する信号に対する復調処理などは行わず、そのまま、または場合によっては増幅や波形整形を行ってから転送する。すなわち、非再生中継を実行する。この信号は、下位局接続コネクタ２２へ入力される。本実施形態では非再生中継を用いる場合について説明するが、中継毎に復調処理をし、再び変調処理を施してから中継する再生中継を用いてもよい。
【００３６】
タイマ２０２は、例えばサンプリング周期毎にリセットされるクロックカウンタである。親局１０から送信されたタイマ信号をセットすることで、親局１０のタイマ１０１と粗同期をとる。その後、親局１０から送信されたタイマ補正信号を用いてタイマ補正を実行することで、親局１０のタイマ１０１と精密に同期する。詳細については後述する。タイマ信号生成部２０３は、親局１０から送信されたタイマ読出信号を受信すると、タイマ２０２が出力する時刻を含むタイマ信号を生成する。
【００３７】
駆動制御部２０４は、親局１０から送信された駆動タイミング信号を用いて、後述する駆動信号記憶部２０６へ、駆動信号の出力指示を出す。駆動準備部２０５は、親局１０から送信された駆動制御信号に所定の駆動準備を実行し、駆動信号を生成する。駆動信号記憶部２０６は、駆動制御部２０４が生成した駆動信号を一時的にバッファする。そして駆動制御部２０４からの出力指示に従い、駆動信号をモータ２３へ出力する。
【００３８】
検出制御部２０７は、タイマ２０２が出力する時刻が、事前に規定された時刻になると、後述する検出信号生成部２０８へ取得指示を出す。検出信号生成部２０８は、検出制御部２０７からの取得指示に従い、センサ２４で検出された外部環境の情報を取得し、所定の検出用情報処理を施して、検出信号を生成する。
【００３９】
駆動準備時間記憶部２０９は、親局１０から送信された処理時間読出信号を受信すると、事前に記憶された自局の駆動準備時間を駆動準備時間信号として出力する。下位局検知部２１０は下位局が存在するか否かを、例えば電気的、または物理的に検知する。下位局の切断または接続を検知した場合、切断接続信号を出力する。信号選択部２１１は、事前に定められたスケジュールに従って、タイマ信号、検出信号、駆動準備時間信号、切断接続信号を選択し、出力する。詳細については後述する。変調処理部２１２は、信号選択部２１１が選択した信号に対して変調処理を施して送信信号を生成し、送信信号選択部２１４へ入力する。上り中継処理部２１３は自局より下位に接続された子局Ｂ３０〜子局Ｄ５０からの送信信号を、送信信号選択部２１４へ入力する。
【００４０】
送信信号選択部２１４は、変調処理部２１２または上り中継処理部２１３から入力された送信信号について、時間的に早く入力されたものから順次、親局１０へ送信する。以下に具体的に説明する。説明の便宜上、変調処理部２１２から出力される送信信号を送信信号Ａ、上り中継処理部２１３から出力される送信信号を送信信号Ｂと示す。送信信号選択部２１４は、送信信号Ａの方が送信信号Ｂよりも時間的に早く入力された場合、送信信号Ａを先に上位局接続コネクタ２１へ入力する。そして、送信信号選択部２１４は、その後、送信信号Ｂを上位局接続コネクタ２１へ入力する。逆に送信信号Ｂの方が送信信号Ａよりも時間的に早く入力された場合、送信信号Ｂを先に上位局接続コネクタ２１へ入力する。そして、送信信号選択部２１４は、その後、送信信号Ｂを上位局接続コネクタ２１へ入力する。上位局接続コネクタ２１へ入力された送信信号は、入力された順に親局１０へ送信される。なお、先に入力された信号を先に出力するのでなく、親局１０から指定された順序で信号を出力するようにしてもよい。この場合、親局は、例えば伝送遅延と検出処理時間との和が少ない方の子局から信号を送信するように指示する。
【００４１】
なお、ここでは、子局Ａ２０を例にとって詳細を説明したが、子局Ａ２０以外の子局（子局Ｂ３０〜子局Ｅ６０）も、子局Ａ２０と同様の構成をとるため、詳細については省略する。ただし、子局Ｂ３０〜子局Ｅ６０の場合、上位局接続コネクタに接続されるのは、上位に位置する子局である。
【００４２】
（信号送信手順の初期シーケンス）
続いて本実施形態における信号送信の手順について説明する。本実施形態では信号送信を行う前に、初期シーケンスが実行される。親局１０は初期シーケンスにて各子局の伝送遅延時間、駆動準備時間の把握、同期補正処理を実行する。図５を用いて本実施形態の初期シーケンスについて説明する。なお、初期シーケンスは、ロボットシステムの電源投入時、またはトポロジー変更検出を契機に開始する。
【００４３】
初期シーケンスが開始すると、親局１０の信号選択部１１１は、まずタイマ信号を選択して出力する。タイマ信号には、その時点におけるタイマ１０１の時刻が含まれる。タイマ信号は変調処理部１１２にて変調処理され、通信路を介した伝送に適した形式に変換されて子局Ａ２０〜子局Ｄ５０へ送信される。各子局の復調処理部２００は、受信信号に復調処理を施す。また下り中継処理部２０１は自局より下位に接続された子局へタイマ信号を非再生中継する。復調処理部２００は、復調後のタイマ信号をタイマ２０２へ出力する。タイマ２０２はタイマ信号に含まれた時刻をセットする。以上の動作により、親局１０のタイマ１０１と各子局のタイマ２０２との間で時刻の粗同期が完了する。ここで粗同期としたのは伝送遅延によるずれが存在するためである。
【００４４】
親局１０の信号選択部１１１は、タイマ信号の送信後、タイマ読出信号を選択して出力する。タイマ読出信号にはアドレスが付与され、各子局において、どの子局宛のものかを把握できるようになっている。タイマ読出信号は変調処理部１１２にて変調処理され、通信路を介した伝送に適した形式に変換されて子局Ａ２０〜子局Ｄ５０へ送信される。
【００４５】
各子局の復調処理部２００は、受信信号に復調処理を施す。また下り中継処理部２０１は自局より下位に接続された子局へタイマ読出信号を非再生中継する。復調処理部２００は、受信したタイマ読出信号が自局宛であるか否かを判定し、自局宛である場合には、タイマ信号生成部２０３へ出力する。一方、自局宛でない場合は破棄する。タイマ信号生成部２０３は、タイマ読出信号が入力された時点でのタイマ２０２の時刻を含むタイマ信号を、信号選択部２１１へ出力する。信号選択部２１１は初期シーケンス開始時、まずタイマ信号が選択されるように規定しておく。これにより、信号選択部２１１はタイマ信号を即座に変調処理部２１２へ転送し、変調処理部２１２は、当該タイマ信号に変調処理を施し、通信路を介した送信に適した形式の信号に変換する。変調されたタイマ信号は、送信信号選択部２１４を介して親局１０へ送信される。
【００４６】
なお、複数の子局において生成したタイマ信号が、当該子局またはその上位局の送信信号選択部２１４に同時に入力されることによる待ち時間が発生しないように、親局１０は十分な時間の間隔を空けて各子局宛のタイマ読出信号を送信する。
【００４７】
親局１０の復調処理部１１３は、受信信号に復調処理を施す。そして、復調後のタイマ信号を伝送遅延演算部１０６へ出力する。伝送遅延演算部１０６は、受信したタイマ信号に含まれる時刻と、タイマ１０１の時刻との差分から、各子局の伝送遅延時間を算出する。伝送遅延時間の算出方法を、子局Ａ２０を例に説明する。
【００４８】
子局Ａ２０からのタイマ信号を受信した時点、つまり子局Ａ２０からのタイマ信号が、伝送遅延演算部１０６に入力された時点における、親局１０のタイマ１０１の時刻をＴ１０とする。また、子局Ａ２０から受信したタイマ信号に含まれる時刻をＴａ２０とする。この場合、親局１０と子局Ａ２０間に生じる伝送遅延時間Ｔｄａは、
Ｔｄａ  ＝  （Ｔ１０  −  Ｔａ２０）／２
のように計算される。これは、例えば、時間ｔ０において親局１０が子局Ａ２０へタイマ信号を送信すると、親局１０におけるタイマがＴｄａ＋ｔ０のタイミングで子局Ａ２０のタイマがｔ０にセットされる。その後、Ｔａ２０＝ｔ０＋ｔ１とすると、子局Ａ２０のタイマがＴａ２０であるときに親局１０のタイマはＴｄａ＋ｔ０＋ｔ１、すなわち、Ｔｄａ＋Ｔａ２０となる。子局Ａ２０から親局１０までの伝送遅延はＴｄａであるから、親局１０がタイマ読出信号を受信するタイミングは、Ｔ１０＝Ｔｄａ＋Ｔａ２０＋Ｔｄａとなる。したがって、上式が成立する。
【００４９】
子局Ｂ３０〜子局Ｄ５０に関しても同様である。本実施形態では、上記の方法にて伝送遅延時間の把握を行う。以上の動作によって全子局の伝送遅延時間を把握すると、初期シーケンスの処理はＳ１１に移る。
【００５０】
Ｓ１１では、親局１０の信号選択部１１１は、タイマ補正信号を選択して出力する。タイマ補正信号には上記の方法で把握した伝送遅延時間Ｔｄａの情報が含まれている。またタイマ補正信号にはアドレスが付与され、どの子局宛のものか把握できるようになっている。変調処理部１１２は、タイマ補正信号に変調処理を施し、通信路を介した送信に適した形式の信号に変換する。変調されたタイマ補正信号は、子局Ａ２０〜子局Ｄ５０へ送信される。
【００５１】
各子局の復調処理部２００は、受信信号に復調処理を施す。また下り中継処理部２０１は自局より下位に接続された子局へタイマ補正信号を非再生中継する。復調処理部２００は、受信したタイマ補正信号が自局宛であるか否かを判定し、自局宛である場合にはタイマ２０２へ出力する。一方、自局宛でない場合は破棄する。タイマ２０２は、復調されたタイマ補正信号が入力されると、タイマ補正信号に含まれる親局１０と自局との伝送遅延時間に基づいて時刻を補正する。すなわち、例えば、タイマ２０２の時刻をＴｄａだけ進める。
【００５２】
以上の動作により、親局１０のタイマ１０１と各子局のタイマ２０２の時刻は伝送遅延を含めて精密に同期される。以上の動作によって、全子局のタイマ２０２の同期補正を完了すると、初期シーケンスの処理をＳ１２へ進める。
【００５３】
Ｓ１２では、親局１０の信号選択部１１１は、処理時間読出信号を選択して出力する。処理時間読出信号にはアドレスが付与され、どの子局宛のものか把握できるようになっている。変調処理部１１２は、処理時間読出信号に変調処理を施し、通信路を介した送信に適した形式の信号に変換する。変調された処理時間読出信号は、子局Ａ２０〜子局Ｄ５０へ送信される。
【００５４】
各子局の復調処理部２００は、受信信号に復調処理を施す。また下り中継処理部２０１は自局より下位に接続された子局へ処理時間読出信号を非再生中継する。復調処理部２００は、受信した処理時間読出信号が自局宛であるか否かを判定し、自局宛である場合には駆動準備時間記憶部２０９へ出力する。一方、自局宛でない場合は破棄する。駆動準備時間記憶部２０９は、処理時間読出信号が入力されると、事前に記憶された自局の駆動準備時間に関する情報を含む駆動準備時間信号を信号選択部２１１へ出力する。信号選択部２１１は初期シーケンスにおいて、タイマ信号を選択した後、駆動準備時間信号が選択されるように規定しておく。これにより、駆動準備時間信号は、変調処理部２１２に転送され、変調処理部２１２は、当該駆動準備時間信号に変調処理を施し、通信路を介した送信に適した形式の信号に変換する。変調された駆動準備時間信号は、送信信号選択部２１４を介して親局１０へ送信される。
【００５５】
親局１０の復調処理部１１３は、受信信号に復調処理を施す。そして復調された駆動準備時間信号を駆動タイミング信号生成部１０７及び送信順序算出部１１０へ出力する。本実施形態では、上記の方法で駆動準備時間の把握を行う。以上の動作を子局毎に行うことで全子局の駆動準備時間を把握し、初期シーケンスを完了する。
【００５６】
（信号送信手順）
信号送信手順における信号の送信順序について図６を用いて説明する。ここで本実施形態において子局Ａ２０、子局Ｄ５０の駆動準備時間をＴｋ１、子局Ｂ３０、子局Ｃ４０の駆動準備時間をＴｋ２とし、Ｔｋ２＞Ｔｋ１が成り立つものとする。また子局Ａ２０の検出処理時間は、子局Ｂ３０〜子局Ｄ５０の検出処理時間と比較して大きいものとする。伝送遅延時間は子局Ａ２０〜子局Ｄ５０から順にＴｄａ、Ｔｄｂ、Ｔｄｃ、Ｔｄｄとし、Ｔｄｄ＞Ｔｄｃ＞Ｔｄｂ＞Ｔｄａが成り立つものとする。さらに、図６の例では、親局１０から子局Ａ２０〜子局Ｄ５０へ、信号の送信順序が伝えられるものとし、その順序は子局Ｂ３０、子局Ｃ４０、子局Ｄ５０、子局Ａ２０の順であるものとする。
【００５７】
図６の時刻Ｔ１０００は、各子局のセンサが外部情報の検出を開始する検出タイミングである。各子局の検出制御部２０７は、タイマ２０２の時刻が時刻Ｔ１０００になると、検出信号生成部２０８へ外部環境に関する検出情報の取得指示を出す。取得指示を受けた検出信号生成部２０８はセンサ２４から検出情報を取得し、所定の検出用情報処理を施して、検出信号を生成する。ここで各子局のタイマ２０２は上述の初期シーケンスにて親局１０のタイマ１０１と同期している。したがって、各子局間は同期して情報の検出と検出用情報処理を実行することができる。
【００５８】
時刻Ｔ１００１は、子局Ｂ３０〜子局Ｄ５０において検出情報の取得及び検出用情報処理が完了した時刻である。検出用情報処理により生成された検出信号は、信号選択部２１１へ出力される。このとき、信号選択部２１１は初期シーケンス終了後、検出信号が選択されるよう規定しておく。これにより、検出信号は、変調処理部２１２に転送される。そして、変調処理部２１２は、当該検出信号に変調処理を施し、通信路を介した送信に適した形式の信号に変換する。変調された検出信号は、送信信号選択部２１４を介して上位に接続される局へ送信される。なお、本実施形態では、各子局は、親局１０から、信号の送信順序が子局Ｂ３０、子局Ｃ４０、子局Ｄ５０、子局Ａ２０の順であることが通知されている。しかしながら、子局Ｂ３０〜子局Ｄ５０には、この時点で他の子局から送信されてきた信号は存在しない。このため、各子局は、検出信号をそのまま上位局へ送信する。
【００５９】
時刻Ｔ１００２は、子局Ａ２０が子局Ｂ３０から送信された検出データの受信を開始した時刻である。具体的には、上り中継処理部２１３によって非再生中継された検出データが送信信号選択部２１４へ入力される時刻である。時刻Ｔ１００２において、子局Ａ２０の検出用情報処理は完了していない。このため、子局Ａ２０の送信信号選択部２１４は、子局Ｂ３０から送信された検出データを親局１０へ送信する。なお、子局Ａ２０の検出用情報処理は、時刻Ｔ１００３において完了する。子局Ａ２０の検出信号は、変調処理部２１２にて変調処理が施され、通信路を介した送信に適した形式の信号に変換される。変調後の検出信号は送信信号選択部２１４に出力される。ここで、親局１０から伝えられた順序では、子局Ｄ５０からの検出データの後に子局Ａ２０の検出データを送ることになっている。また、子局Ａ２０には、子局Ｂ３０〜子局Ｄ５０からの信号が連続的に入力されるため、転送すべきデータが子局Ａ２０において存在する。このため、子局Ｃ４０からの信号の送信が始まる前に、子局Ａ２０の検出信号が生成されるが、その信号が送信されるのは子局Ｄ５０からの検出データの送信が完了した後となる。以上に述べた検出データの伝送手順により、上りの信号送信においてむだな時間なく伝送を行うことができる。
【００６０】
なお、各子局において、送信信号選択部２１４がＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）により、先に入力された信号を先に出力することもできる。これによれば、子局Ｂ３０〜子局Ｄ５０までの信号の送信順序は変わらないが、子局Ａ２０では、子局Ｂ３０からの信号の送信が完了時において検出用情報処理が完了しているため、子局Ｂ３０からの信号に続いて子局Ａ２０の信号を送信する。これにより、送信順序を予め通知しておく必要がないため、全体の処理の速度を短縮することができる。
【００６１】
時刻Ｔ１００４は、親局１０の復調処理部１１３が、子局Ａ２０〜子局Ｄ５０の検出データの復調処理を完了した時刻である。親局１０の復調処理部１１３が受信した検出信号は、演算処理部１００へ出力される。演算処理部１００は、入力された検出信号から目標値とのずれを演算する。時刻Ｔ１００５は、演算処理部１００の演算結果に応じて、駆動制御信号生成部１０８が各子局の駆動制御信号の生成を完了した時刻である。駆動制御信号生成部１０８が生成した駆動制御信号は、伝送制御部１０９により送信順序算出部１１０が作成した送信テーブルに従い送信される。
【００６２】
図７は、送信順序算出部１１０の動作について示したフローチャートである。このフローチャートを用いて、送信順序算出部１１０の動作について説明する。処理が開始されると、まずＳ１において、初期シーケンスが完了したか否かの判定を行う。初期シーケンスが完了した場合はＳ２へ、完了していない場合はＳ１へ戻り、再び上記判定を行う。
【００６３】
Ｓ２では、各子局の『伝送遅延時間＋駆動準備時間』を算出する。本実施形態においては、子局Ａ２０の『伝送遅延時間＋駆動準備時間』はＴｄａ＋Ｔｋ１として算出される。同様に子局Ｂ３０〜子局Ｄ５０の『伝送遅延時間＋駆動準備時間』はそれぞれ、Ｔｄｂ＋Ｔｋ２、Ｔｄｃ＋Ｔｋ２、Ｔｄｄ＋Ｔｋ１として算出される。全子局の『伝送遅延時間＋駆動準備時間』を算出するとＳ３へ進む。
【００６４】
Ｓ３では、『伝送遅延時間＋駆動準備時間』の大きい方から先に駆動制御信号を送信するように、送信テーブルを生成する。本実施形態では、
Ｔｄｃ＋Ｔｋ２  ＞  Ｔｄｂ＋Ｔｋ２  ＞  Ｔｄｄ＋Ｔｋ１  ＞  Ｔｄａ＋Ｔｋ１
が成り立つものとする。したがって、図６に示すように、子局Ｃ４０、子局Ｂ３０、子局Ｄ５０、子局Ａ２０の順に駆動制御信号が送信されることを示す送信テーブルが生成される。テーブルの生成が完了すると、フローを終了する。
【００６５】
上記フロー処理により、図６に示すように『伝送遅延時間＋駆動準備時間』が大きい子局に宛てた駆動制御信号から先に出力されるため、下りの信号送信において、むだな時間なく伝送を行うことができる。
【００６６】
なお駆動制御信号には、上述したように、駆動タイミング信号が付加されている。駆動タイミング信号生成部１０７は、各モータが同期して駆動可能な最短の駆動タイミングを算出し、その時刻情報を含む駆動タイミング信号を生成する。ここで同期して駆動可能な最短の駆動タイミングとは、全子局の駆動準備が完了する時刻である。当該時刻は、各子局の伝送遅延時間、駆動準備に関する時間、駆動制御信号の送信順序により算出することができる。本実施形態において、駆動制御信号の時間長をＴｓとすると、子局Ａ２０の駆動準備が完了する時刻（以後、駆動準備完了時刻という）Ｔｅａは、
Ｔｅａ＝Ｔ１００５＋４Ｔｓ＋Ｔｄａ＋Ｔｋ１
のように算出される。同様に子局Ｂ３０〜子局Ｄ５０の駆動準備完了時刻Ｔｅｂ〜Ｔｅｄは、
Ｔｅｂ＝Ｔ１００５＋２Ｔｓ＋Ｔｄｂ＋Ｔｋ２
Ｔｅｃ＝Ｔ１００５＋Ｔｓ＋Ｔｄｃ＋Ｔｋ２
Ｔｅｄ＝Ｔ１００５＋３Ｔｓ＋Ｔｄｄ＋Ｔｋ１
のように算出される。
【００６７】
ここで、これらの駆動準備完了時刻Ｔｅａ〜Ｔｅｄの中で、子局Ｂに対応するＴｅｂが最大であるとすると、駆動タイミングはＴｅｂに設定される。以上のように生成された駆動タイミング信号は、駆動制御信号に付加されて信号選択部１１１へ出力される。ここで信号選択部１１１は初期シーケンス後、駆動制御信号が選択されるよう事前に規定しておく。これにより、駆動タイミング信号が付加された駆動制御信号が、信号選択部１１１を通じて変調処理部１１２に入力される。駆動制御信号は、変調処理部１１２により変調処理が施され、通信路を介した送信に適した形式の信号に変換される。変調後の駆動制御信号は、子局Ａ２０〜子局Ｄ５０へ送信される。
【００６８】
各子局の復調処理部２００は、受信信号に復調処理を施す。そして受信した駆動制御信号が自局宛である場合は、駆動準備部２０５へ出力し、駆動制御信号に付加された駆動タイミング信号を駆動制御部２０４へ出力する。駆動準備部２０５は入力された駆動制御信号に対し、所定の駆動準備を実行することで駆動信号を生成し、駆動信号記憶部２０６へ出力する。駆動信号記憶部２０６は、駆動準備部２０５が生成した駆動信号を、駆動制御部２０４からの出力指示があるまで一時的にバッファする。
【００６９】
時刻Ｔ１００６は、全子局において駆動準備が終了するタイミングであり、すなわち、各子局がモータに対して駆動信号を出力する駆動タイミングである。本実施形態において『時刻Ｔ１００６から時刻Ｔ１０００』がフィードバック制御全体のむだ時間となる。駆動制御部２０４は、タイマ２０２の時刻と駆動タイミング信号に含まれる時刻が一致すると、駆動信号記憶部２０６へ出力指示を出す。ここでは上述のように、駆動タイミング信号に含まれる時刻は、子局Ｂ３０における駆動準備完了時刻と同一である。したがって、図６に示すように、子局Ｂ３０の駆動準備が完了すると同時に、駆動信号の出力が行われるように駆動信号記憶部２０６が制御される。
【００７０】
以上に示した信号送信、及び駆動タイミング設定を行うことにより、親局及び子局がデイジーチェーン接続されており、検出に係る処理時間と駆動準備時間が子局間で一致していない場合であっても、むだ時間を最小化することができる。
【００７１】
なお、エンドエフェクタの交換により、ネットワークに接続される子局が変更された場合、親局１０はそれを検知し、再び初期シーケンスを開始する。具体的には、子局Ｃ４０の下位局検知部２１０が、下位局（子局Ｄ５０または子局Ｅ６０）の切断または接続を検知すると、切断接続信号を信号選択部２１１へ出力する。ここで、信号選択部２１１は、切断接続信号が入力されると、他の信号より優先的に切断接続信号を変調処理部２１２へ出力するように規定しておく。切断接続信号は変調処理部２１２によって変調処理が施され、通信路を介した送信に適した形式に変換される。変調された切断接続信号は、送信信号選択部２１４を介して、親局１０へ送信される。
【００７２】
親局１０の復調処理部１１３は、受信信号に復調処理を施す。そして復調した切断接続信号を、トポロジー変更検出部１１４へ出力する。トポロジー変更検出部１１４は、各子局から送信される切断接続信号によりトポロジーの変更を検出し、信号選択部１１１へトポロジーの変更を通知する。通知を受けた信号選択部１１１は、当該通知に従って、再び初期シーケンスから開始する。新しい子局が追加された場合には、当該子局と同期を取る必要があるからである。以上の構成により、エンドエフェクタの交換等、適宜トポロジーが変更されるネットワークであっても、そのネットワークに応じて、最小のむだ時間で信号送信を行うことができる。
【００７３】
＜＜実施形態２＞＞
実施形態１では親局が各子局の伝送遅延時間、駆動準備時間を把握した後、駆動データの送信順序を適宜決定するロボットシステムについて説明した。しかし送信順序を適宜決定せずとも、例えば初期状態（電源入力時）における送信順序を決めておき、子局（エンドエフェクタ）が交換され、かつ交換された子局の『伝送遅延時間＋駆動準備時間』が所定値を超えた場合に限り、送信順序を変更しても良い。本実施形態ではその方法について説明する。
【００７４】
本実施形態のロボットシステムの概要及び接続形態は、実施形態１と同様であるため、詳細については省略する。なお本実施形態のロボットシステムは、初期状態においてエンドエフェクタ５が装着されているものとする。
【００７５】
（親局の構成）
図８は本実施形態における親局１０の機能構成を示す図である。なお、実施形態１と同じ動作をするブロックには同一の符号を付し、詳細な説明を省略する。
【００７６】
送信テーブル記憶部１２０には事前に所定の駆動制御信号の送信順序が記された送信テーブルが記憶されている。伝送制御部１２１は、送信テーブル記憶部１２０の送信テーブル、または後述する送信順序変更部１２２が生成した送信テーブルに従って、駆動制御信号生成部１０８が生成した駆動制御信号を出力する。送信順序変更部１２２は、各子局の『伝送遅延時間＋駆動準備時間』が所定値を超えた場合に、自身の出力が伝送制御部１２１及び駆動タイミング信号生成部１０７へ入力されるように、後述するセレクタ１２３を制御する。また送信順序変更部１２２は、『伝送遅延時間＋駆動準備時間』の大きい子局へ宛てた駆動制御信号が先に送信されることを示す送信テーブルを生成する。セレクタ１２３は送信順序変更部１２２からの指示に従い、送信テーブル記憶部１２０と送信順序変更部１２２から入力された情報のうち、出力するものを選択する。初期状態では、送信テーブル記憶部１２０の出力が選択される。
【００７７】
（子局の構成）
子局の構成は実施形態１と同様であるため、詳細については省略する。
【００７８】
（信号送信手順）
続いて本実施形態における信号送信手順について説明する。本実施形態では、実施形態１と同様、子局Ａ２０、子局Ｄ５０の駆動準備時間をＴｋ１、子局Ｂ３０、子局Ｃ４０の駆動準備時間をＴｋ２とし、Ｔｋ２＞Ｔｋ１が成り立つものとする。子局Ａ２０の検出処理時間は、子局Ｂ３０〜子局Ｄ５０の検出処理時間と比較して大きいものとする。また伝送遅延時間は、子局Ａ２０〜子局Ｄ５０から順にＴｄａ、Ｔｄｂ、Ｔｄｃ、Ｔｄｄとし、Ｔｄｄ＞Ｔｄｃ＞Ｔｄｂ＞Ｔｄａが成り立つものとする。
【００７９】
送信テーブル記憶部１２０には、事前に子局Ｃ４０、子局Ｂ３０、子局Ｄ５０、子局Ａ２０の順に駆動制御信号を送信するよう記された送信テーブルが記憶されている。ゆえに子局Ｄ５０が内蔵されるエンドエフェクタ５が装着されている場合は、実施形態１と同様、図６に示す送信順序で伝送が行われる。
【００８０】
ここで、ロボットシステムがエンドエフェクタ５から、子局Ｅ６０を内蔵するエンドエフェクタ６に交換した場合について考える。ここで子局Ｅ６０の駆動準備時間をＴｋ３とし、Ｔｋ３＞Ｔｋ２＞Ｔｋ１が成り立つものとする。また伝送遅延時間はＴｄｅとし、Ｔｄｅ＝Ｔｄｄが成り立つものとする。エンドエフェクタ５がエンドエフェクタ６に交換されると、トポロジー変更検出部１１４は信号選択部１１１へトポロジーの変更があったことを通知する。通知を受けた信号選択部１１１は、再び初期シーケンスを開始する。
【００８１】
親局１０は実施形態１と同様、初期シーケンスによって各子局の伝送遅延時間、駆動準備時間を把握、同期補正処理を実施する。本実施形態の初期シーケンスは実施形態１と同様であるため、詳細については省略する。なお、ここでの初期シーケンスは、新規に追加された子局Ｅ６０のみを対象にして伝送遅延時間、駆動準備時間を把握、同期補正処理を実行してもよい。
【００８２】
続いて初期シーケンス完了後、つまり信号送信開始後のデータの送信順序について図９を用いて詳細に説明する。図９において、時刻Ｔ２０００〜時刻Ｔ２００４時の動作は、実施形態１の時刻Ｔ１０００〜１００４と同様であるため、詳細については省略する。
【００８３】
時刻Ｔ２００５は、演算処理部１００の演算結果に応じて、駆動制御信号生成部１０８が、各子局の駆動制御信号の生成を完了した時刻である。駆動制御信号生成部１０８が生成した駆動制御信号は、伝送制御部１２１から信号選択部１１１へ出力され、変調処理部１１２において変調処理を施された後に送信される。
【００８４】
図１０は、送信順序変更部１２２の動作について示したフローチャートである。フローチャートを用いて、送信順序変更部１２２の動作について説明する。Ｓ２０では、初期シーケンスが完了したか否かの判定を実施する。初期シーケンスが完了した場合はＳ２１へ、完了していない場合はＳ２０へ戻り、再び上記判定を行う。Ｓ２１では、新規の子局Ｅ６０の駆動データを、以前の子局Ｄ５０の駆動データと同じ送信順序（つまり、子局Ｃ４０、子局Ｂ３０、子局Ｅ６０、子局Ａ２０の順）で伝送しても良いか否かを判定する。具体的には子局Ｅ６０の駆動準備完了時刻Ｔｅｅが、図６の時刻Ｔ１００６を超えるか否かを判定する。超える場合はＳ２２へ、超えない場合はフローを終了する。本実施形態においてＴｅｅは、
Ｔｅｅ＝Ｔ１００５＋３Ｔｓ＋Ｔｄｅ＋Ｔｋ３
のように計算される。
【００８５】
なお、ここでは、Ｔｅｅ＞Ｔ１００６が成り立つものとする。この場合、Ｓ２２では、各子局の『伝送遅延時間＋駆動準備時間』を算出し、Ｓ２３へ進む。本実施形態では、
Ｔｄｅ＋Ｔｋ３  ＞  Ｔｄｃ＋Ｔｋ２  ＞  Ｔｄｂ＋Ｔｋ２  ＞  Ｔｄａ＋Ｔｋ１
が成り立つものとする。Ｓ２３では、Ｓ２２で求めた『伝送遅延時間＋駆動準備時間』の大きい子局から順に駆動制御信号を取得できるように送信順序を定めた送信テーブルを生成する。具体的には、子局Ｅ６０、子局Ｃ４０、子局Ｂ３０、子局Ａ２０の順序であて先を定めた駆動制御信号が送信されることを示す送信テーブルを生成する。またセレクタ１２３の出力が、送信順序変更部１２２の出力となるよう制御する。以上の動作を完了すると、フローを終了する。図１０の処理により、エンドエフェクタ５を別のエンドエフェクタ６に変更しても、送信順序を変更せずとも変更前と同様のむだ時間を確保できるか否かを判定し、確保できない場合に適応的にむだ時間が最短となる送信順序を決定することができる。これにより、エンドエフェクタの交換前と同水準のむだ時間の達成、または、交換後のエンドエフェクタ６を用いた場合のむだ時間の最小化の達成が可能となる。
【００８６】
なお、駆動制御信号には、実施形態１と同様、駆動タイミング信号生成部１０７が生成する駆動タイミング信号が付加される。駆動タイミングを算出の方法は、実施形態１と同様に決定される。よって子局Ｂ３０の駆動準備完了時刻である時刻Ｔ２００６にて、各子局が同期してモータを駆動する。
【００８７】
以上のように初期状態における送信順序を事前に決めておき、子局が交換され、かつ交換された子局の『伝送遅延時間＋駆動準備時間』が所定値を超えた場合のみ、送信順序を変更する方法をとっても、フィードバック制御のむだ時間を最小化することができる。また、上述の説明では、初期状態から送信順序を変更することについて説明したが、上記の方法により変更後の送信順序からさらに送信順序を変更することもできる。この場合、一旦送信順序を変更すると、変更後の送信順序を定めるテーブルを送信テーブル記憶部１２０に保持し、その変更後の送信順序に基づいて、上述の『伝送遅延時間＋駆動準備時間』の所定値を定めてもよい。
【００８８】
＜＜実施形態３＞＞
実施形態１、実施形態２では、親局及び各子局がデイジーチェーン接続され、各子局にてデータ中継を行うロボットシステムについて説明した。しかし本発明はこれに限らず、１つの伝送ケーブル上に複数の端局を接続したマルチドロップ接続や、無線接続された場合でも適用可能である。本実施形態では、親局及び各子局がマルチドロップ接続されたロボットシステム、及びその伝送手順について説明する。本実施形態のロボットシステムの概要は、実施形態１と同様であるため、詳細については省略する。なお伝送方式にはＴＤＭＡ（時分割多元接続）方式を用いるものとして説明する。
【００８９】
本実施形態では、図１７に示すように、１本または複数本のバスに親局と子局が接続する接続形態を用いる場合について説明する。なお、図１７における親局１０のコネクタ１５及び各子局のコネクタ２５〜６５は、バス接続により信号の送受信を行うためのコネクタである。これ以外の構成として、回線の親局方向への信号送信を上り、及び親局方向からの信号送信を下りと定義することにより、上り用のコネクタと下り用のコネクタを用いて信号の送受信を実行することも可能である。
【００９０】
（親局の構成）
図１１は本実施形態における親局１０の機能構成を示す図である。本実施形態ではマルチドロップ接続であるため、実施形態１とは異なり、図１１のように、変調処理部１３４の出力と、復調処理部１３５の入力が接続されている。なお、実施形態１と同じ動作をするブロックには、同一の符号を付し、詳細な説明は省略する。
【００９１】
スロット信号生成部１３０は、伝送遅延演算部１０６が算出した各子局の伝送遅延時間と、各子局から送信された駆動準備時間の和、つまり『伝送遅延時間＋駆動準備時間』を子局毎に算出する。また同様に、各子局の伝送遅延時間と、各子局から送信された検出処理時間の和、つまり『伝送遅延時間＋検出処理時間』も子局毎に算出する。そして下りは『伝送遅延時間＋駆動準備時間』が大きい子局宛の駆動制御信号から、上りは『伝送遅延時間＋検出処理時間』が小さい子局の検出信号から順に送信するようスロット割当を定めたテーブルを生成する。また、スロット信号生成部１３０は、生成したテーブルをスロット信号として信号選択部１１１へ出力する。
【００９２】
伝送制御部１３１は、スロット信号生成部１３０が生成したスロットテーブルに従い、駆動制御信号生成部１０８が生成した駆動制御信号を送信する。送受信制御部１３２は、スロット信号生成部１３０が生成したスロットテーブルを元に、変調処理部１３４、復調処理部１３５に対して送信、受信指示を出力する。信号選択部１３３は、事前に定められたスケジュールに従って、タイマ信号、タイマ読出信号、タイマ補正信号、処理時間読出信号、駆動制御信号、スロット信号を選択し、出力する。変調処理部１３４は、送受信制御部１３２からの送信指示に従い、信号選択部１３３が選択した信号に変調処理を施し、変調後の信号を子局Ａ２０〜子局Ｄ５０へ送信する。復調処理部１３５は、送受信制御部１３２からの受信指示に従い、子局Ａ２０〜子局Ｄ５０からの信号を受信して復調処理を施し、各子局からのタイマ信号、駆動準備時間信号、検出処理時間信号、検出信号を取得する。
【００９３】
（子局の構成）
図１２は本実施形態における子局Ａ２０の機能構成を示す図である。本実施形態はマルチドロップ接続であるため、実施形態１とは異なり、変調処理部２１７の出力と、復調処理部２１５の入力は図のように接続されている。なお、実施形態１と同じ動作をするブロックには、同一の符号を付し、詳細な説明については省略する。
【００９４】
復調処理部２１５は、後述する送受信制御部２１６の受信指示に従い、親局１０からのタイマ信号、タイマ読出信号、タイマ補正信号、処理時間読出信号、駆動タイミング信号、駆動制御信号、スロット信号を受信する。送受信制御部２１６は、受信したスロット信号に含まれるスロットテーブルを元に、変調処理部２１７、復調処理部２１５に対して送信指示、または受信指示を出力する。変調処理部２１７は、送受信制御部２１６からの送信指示に従い、信号選択部２１１が選択した信号に対して変調処理を施し、変調後の信号を親局１０へ送信する。処理時間記憶部２１８は、親局１０から送信された処理時間読出信号を受信すると、事前に記憶された自局の駆動準備時間及び検出処理時間を駆動準備時間信号、検出処理時間信号として出力する。子局Ａ２０以外の子局（子局Ｂ３０〜子局Ｅ６０）も、子局Ａ２０と同様の構成となる。
【００９５】
（信号送信手順の初期シーケンス）
続いて本実施形態における信号送信手順について説明する。本実施形態では実施形態１と同様、子局Ａ２０、子局Ｄ５０の駆動準備時間をＴｋ１、子局Ｂ３０、子局Ｃ４０の駆動準備時間をＴｋ２とし、Ｔｋ２＞Ｔｋ１が成り立つものとする。また子局Ａ２０の検出処理時間は、子局Ｂ３０〜子局Ｄ５０のそれと比較して大きいものとする。伝送遅延時間は、子局Ａ２０〜子局Ｄ５０から順にＴｄａ、Ｔｄｂ、Ｔｄｃ、Ｔｄｄとし、Ｔｄｄ＞Ｔｄｃ＞Ｔｄｂ＞Ｔｄａが成り立つものとする。また子局Ａ２０の検出処理時間をＴｋ４とし、子局Ｂ３０〜子局Ｄ５０の検出処理時間をＴｋ３とする。なお、Ｔｋ４＞Ｔｋ３が成り立つものとする。
【００９６】
初めに初期シーケンスについて図１３を用いて説明する。親局１０は、まず、初期シーケンスにおいて、各子局の伝送遅延時間を把握して、同期補正処理を実行する。これらの処理については実施形態１と略同様の方法で行う。すなわち、図１３のＳ３０、Ｓ３１は、図５のＳ１０、Ｓ１１とほぼ同様であり、詳細な説明は省略する。ただしマルチドロップ接続であるため、送信信号の衝突が起きないよう、伝送制御されるものとする。
【００９７】
図１３のＳ３２からの動作について説明する。Ｓ３１を完了後、つまり全子局のタイマ２０２の同期補正を完了すると、親局１０の信号選択部１３３は、処理時間読出信号を選択して出力する。処理時間読出信号にはアドレスが付与されており、どの子局宛のものか把握できるようになっている。処理時間読出信号は変調処理部１３４にて変調処理され、変調後の信号が子局Ａ２０〜子局Ｄ５０へ送信される。
【００９８】
各子局の復調処理部２１５は、受信信号に復調処理を施す。復調処理部２１５は、受信した処理時間読出信号が自局宛であるか否かを判定し、自局宛である場合には、処理時間記憶部２１８へ出力する。一方、自局宛でない場合は破棄する。処理時間記憶部２１８は、処理時間読出信号が入力されると、事前に記憶された自局の駆動準備時間に関する情報を含む駆動準備時間信号と、検出処理時間に関する情報を含む検出処理時間信号とを、処理時間信号として信号選択部２１１へ出力する。信号選択部２１１はＳ３１を完了後、処理時間信号が選択されるように規定しておく。処理時間信号は、変調処理部２１７にて変調処理が施され、変調後の信号は親局１０へ送信される。
【００９９】
親局１０の復調処理部１３５は、受信信号に復調処理を施す。そして復調処理部１３５は、駆動準備時間信号を駆動タイミング信号生成部１０７及びスロット信号生成部１３０へ、検出処理時間信号をスロット信号生成部１３０へ出力する。本実施形態では、上記の方法で駆動準備時間と検出処理時間の把握を行う。以上の動作を子局毎に行うことで全子局の駆動準備時間と検出処理時間を把握し、Ｓ３３へ進む。
【０１００】
スロット信号生成部１３０は、上述のように『伝送遅延時間＋駆動準備時間』と、『伝送遅延時間＋検出処理時間』を子局毎に算出する。そして下りは『伝送遅延時間＋駆動準備時間』が大きい子局宛の駆動制御信号から、上りは『伝送遅延時間＋検出処理時間』が小さい子局の検出信号から順に送信するようなスロット割当を示すテーブルを生成する。本実施形態では『伝送遅延時間＋駆動準備時間』は実施形態１と同様に、
Ｔｄｃ＋Ｔｋ２  ＞  Ｔｄｂ＋Ｔｋ２  ＞  Ｔｄｄ＋Ｔｋ１  ＞  Ｔｄａ＋Ｔｋ１
が成り立つものとする。また『伝送遅延時間＋検出処理時間』は、
Ｔｄａ＋Ｔｋ４  ＞  Ｔｄｄ＋Ｔｋ３  ＞  Ｔｄｃ＋Ｔｋ３  ＞  Ｔｄｂ＋Ｔｋ３
が成り立つものとする。この場合、本実施形態において生成するスロットテーブルは図１４に示すようになる。このスロットテーブルには送信局と受信局の割当、及び送信局の送信時刻について示されている。
【０１０１】
親局１０の信号選択部１３３はＳ３２を完了後、つまり全子局の駆動準備時間と検出処理時間を把握すると、スロット信号を選択して出力する。スロット信号は変調処理部１３４にて変調処理され、変調後の信号は子局Ａ２０〜子局Ｄ５０へ送信される。各子局の復調処理部２１５は、受信信号に復調処理を施す。復調処理部２１５は、受信したスロット信号を送受信制御部２１６へ出力する。送受信制御部２１６は、スロット信号が入力されると、当該スロット信号に含まれるテーブルに基づいて、変調処理部１３４、復調処理部１３５に対して送信指示、または受信指示を出力する。
【０１０２】
以上の動作により、全子局のスロット割当を完了し、初期シーケンスを完了する。
【０１０３】
（信号送信手順）
初期シーケンス完了後における信号の送信順序について図１５を用いて説明する。時刻Ｔ３０００は、各子局のセンサが外部情報の検出を開始する検出タイミングである。各子局の検出制御部２０７は、タイマ２０２の時刻が時刻Ｔ３０００と一致すると、検出信号生成部２０８へ外部環境に関する検出情報の取得指示を出す。取得指示を受けた検出信号生成部２０８はセンサ２４から検出情報を取得し、所定の検出用情報処理を施して、検出信号を生成する。
【０１０４】
時刻Ｔ３００１は、子局Ｂ３０〜子局Ｄ５０において検出用情報処理が完了した時刻である。検出用情報処理により生成された検出信号は、信号選択部２１１へ出力される。この際、信号選択部２１１は初期シーケンスが終了後は、検出信号が選択されるよう規定されている。ゆえに検出信号は、信号選択部２１１を通して、変調処理部２１７に出力される。
【０１０５】
図１４のスロットテーブルより、時刻Ｔ３００１は子局Ｂ３０が送信する時刻である。ゆえに子局Ｂ３０の送受信制御部２１６は、送信指示を変調処理部２１７へ出力する。送信指示を受けた子局Ｂ３０の変調処理部２１７は、検出信号を変調処理し、検出データとして親局１０へ送信する。同様に時刻Ｔ３００２、時刻Ｔ３００４、時刻Ｔ３００５にて、子局Ｃ４０、子局Ｄ５０、子局Ａ２０の送受信制御部２１６は、送信指示を変調処理部２１７へ出力する。よって図１５に示すように、子局Ｂ３０、子局Ｃ４０、子局Ｄ５０、子局Ａ２０の順、つまり『伝送遅延時間＋検出処理時間』の和の小さい子局順に検出データが伝送される。以上の送信順序により、上りの信号送信においてむだな時間を最小化することができる。
【０１０６】
なお本実施形態ではマルチドロップ接続のため、図１５に示すように、送信局が切り替わる際に衝突が生じないようにガードタイムが挿入される。ガードタイムは、例えば子局Ｄ５０の次に子局Ａ２０が信号を送信する場合など、親局から離れた子局が先に信号を送信し、その後の親局の近くの子局が信号を送信する場合などに長くとるのが望ましい。反対に、子局Ｂ３０の次に子局Ｃ４０が送信する場合など、親局から近い方が先に信号を送信する場合は、ガードタイムは極めて小さい値であってもよい。さらに、伝送遅延を考慮して、伝送遅延分だけ早く送信するようにしてもよい。例えば、図１５の例では、子局Ｃは、子局Ｂの送信完了の時間より、伝送遅延差Ｔｄｃ−Ｔｄｂだけ早い時間に送信を開始してもよい。また、この伝送遅延差を考慮して早く送信する際に、受信側、すなわち親局１０における衝突を防ぐため、ガードタイムを挿入してもよい。このように伝送遅延差を考慮することにより、むだ時間をより削減することができる。
【０１０７】
時刻Ｔ３００６は、親局１０の復調処理部１３５が、子局Ａ２０〜子局Ｄ５０の検出データの復調処理を完了した時刻である。親局１０の復調処理部１１３が受信した検出信号は、演算処理部１００へ出力される。演算処理部１００は、入力された検出信号から目標値とのずれを演算する。
【０１０８】
時刻Ｔ３００７は、演算処理部１００の演算結果に応じて、駆動制御信号生成部１０８が各子局の駆動制御信号の生成を完了した時刻である。ここで伝送制御部１３１は図１４のスロットテーブルに従い、駆動制御信号生成部１０８の駆動制御信号を送信する。よって子局Ｃ４０、子局Ｂ３０、子局Ｄ５０、子局Ａ２０の駆動制御信号の順に出力するように制御する。上記出力制御により、図１５に示すように『伝送遅延時間＋駆動準備時間』が大きい子局から順に駆動制御信号が出力される。また、図１４のスロットテーブルより、時刻Ｔ３００７は親局１０が信号を送信する時刻であるため、親局１０の送受信制御部１３２は、変調処理部１３４へ信号の送信指示を出力する。送信指示を受けた変調処理部１３４は、駆動制御信号を変調処理し、駆動データとして親局１０へ送信する。同様に時刻Ｔ３００８、時刻Ｔ３００９、時刻Ｔ３０１０においても、送受信制御部１３２は、送信指示を変調処理部１３４へ出力する。以上の送信順序により、下りの信号送信においてもむだな時間を最小化することができる。
【０１０９】
ここで駆動制御信号には、実施形態１と同様、駆動タイミング信号生成部１０７が生成する駆動タイミング信号が付加される。駆動タイミング信号生成部１０７は、各モータが同期して駆動可能な最短の駆動タイミングを算出し、その時刻情報を含む駆動タイミング信号を生成する。駆動タイミング信号の生成方法については実施形態１と同様であるため、詳細については省略する。
【０１１０】
各子局の復調処理部２１５は受信信号に復調処理を施す。そして復調後の駆動制御信号が自局宛である場合は、当該信号を駆動準備部２０５へ出力する。また駆動制御信号に付加された駆動タイミング信号を駆動制御部２０４へ出力する。駆動準備部２０５は入力された駆動制御信号に対し、所定の駆動準備を実行することで駆動信号を生成し、駆動信号記憶部２０６へ出力する。駆動信号記憶部２０６は、駆動準備部２０５が生成した駆動信号を、駆動制御部２０４からの出力指示があるまで一時的にバッファする。
【０１１１】
時刻Ｔ３０１１は、各子局がモータに対して駆動信号を出力する駆動タイミングである。駆動制御部２０４は、タイマ２０２の時刻と駆動タイミング信号に含まれる時刻が一致すると、駆動信号記憶部２０６へ出力指示を出す。ここで駆動タイミング信号に含まれる時刻は、子局Ｂ３０の駆動準備完了時刻と同一である。ゆえに図１５に示すように、子局Ｂ３０の駆動準備が完了すると同時に、駆動信号の出力が行われるように駆動タイミング信号の内容が決定される。
【０１１２】
以上に示した送信順序及び駆動タイミング設定を行うことにより、親局及び子局がマルチドロップ接続され、各子局の検出処理時間と駆動準備時間の少なくとも一方が同一でない場合であっても、むだな時間を最小化することができる。
【０１１３】
なお、実施形態１から実施形態３のロボットシステムにおいて、各子局はセンサとアクチュエータの両方を具備する構成であったが、これに限らない。例えば、センサのみを具備する子局が存在しても良いし、逆にアクチュエータのみを具備する子局が存在しても良い。また、実施形態１から実施形態３のロボットシステムで示した方法以外で、伝送遅延時間を把握しても良い。例えば伝送遅延時間が既知の場合は、事前にその値をメモリに記憶しておき、それを読み出す方法を用いてもよい。
【０１１４】
また、実施形態１から実施形態３のロボットシステムで示した方法以外で、検出処理時間及び駆動遅延時間を把握しても良い。例えば親局側にセンサ、アクチュエータの種別と、その種別における検出処理時間、駆動準備時間の対応表を事前に持たせておく。そして子局が自局に接続されたセンサやアクチュエータの種別情報を親局へ送信し、親局はその情報から各子局の検出処理時間、及び駆動準備時間を推定する、といった方法を用いても良い。これにより、同様のセンサやアクチュエータを多く備えるロボットシステムにおいて、それぞれのセンサやアクチュエータがそれぞれ検出処理時間や駆動準備時間を計測して通知する必要がなくなるため、全体の処理量を削減することができる。
【０１１５】
また、実施形態１〜実施形態３ではロボットシステムを例に説明したが、本発明はこれに限らず、自動機等の各種産業機器や紙媒体への印字等を行う事務機、自動車といった駆動部位の動作をフィードバック制御で実行する制御システム全般に適用される。
【０１１６】
＜＜その他の実施形態＞＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013084111.tif 000003
【図２】
2013084111.tif 000004
【図３】
2013084111.tif 000005
【図４】
2013084111.tif 000006
【図５】
2013084111.tif 000007
【図６】
2013084111.tif 000008
【図７】
2013084111.tif 000009
【図８】
2013084111.tif 000010
【図９】
2013084111.tif 000011
【図１０】
2013084111.tif 000012
【図１１】
2013084111.tif 000013
【図１２】
2013084111.tif 000014
【図１３】
2013084111.tif 000015
【図１４】
2013084111.tif 000016
【図１５】
2013084111.tif 000017
【図１６】
2013084111.tif 000018
【図１７】
2013084111.tif 000019