説明

通信システム、制御装置、通信装置、制御方法、通信方法、及びプログラム

【課題】 伝送遅延を考慮するのみでは、フィードバック制御を行う周期を最速化することが困難であった。
【解決手段】 制御装置は、通信を介して所定の動作を実行する複数の駆動装置を制御する制御装置であって、複数の駆動装置のそれぞれが信号を受信して当該信号に応じて動作を実行できる状態となるまでの駆動準備時間と、複数の駆動装置のそれぞれと制御装置との信号の伝送に要する伝送遅延とを取得し、駆動準備時間と伝送遅延とに基づいて、複数の駆動装置を制御するための信号を当該複数の駆動装置へ送信する順序を決定し、決定した順序に基づいて、複数の駆動装置へ信号を送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信に要する時間を短縮する通信システム、制御装置、通信装置、制御方法、通信方法、及びプログラムに関する。
【背景技術】
【0002】
モーション制御を必要とする制御システムは、一般的に、コントローラと、複数のセンサや複数のモータなどのアクチュエータにより構成される。一般的な制御システムの構成図を図16に示す。図16において1000はコントローラ、1001はモータ(アクチュエータ)、1002はセンサである。センサ1002は一定周期毎に外部環境をセンシングし、得られたデータを検出信号としてコントローラ1000へ出力する。コントローラ1000は、入力される検出信号に含まれる外部環境に関するデータと、その目標値とのずれを算出し、その補正値に基づいてアクチュエータを制御する駆動信号を生成し、当該駆動信号を各アクチュエータ1001へ出力する。アクチュエータ1001は入力される駆動信号に基づいて動作する。ここで検出信号は、例えば温度や光の強度を示すアナログ値を含む信号であり、例えば当該アナログ値を電圧で表現した信号である。また、駆動信号は、例えばモータを制御するPWM信号である。制御システムは、以上のようなフィードバック制御を周期的に繰り返すことで、所望の動作を得ることができる。
【0003】
フィードバックを行う周期は、一般的にサンプリング周期と呼ばれる。制御システムにおいて高速かつ精密な動作を実現するためにはサンプリング周期を短くする必要がある。この場合、さらに、センサが外部環境を検出して情報を取得するタイミングと、アクチュエータが駆動するタイミング(以下、「駆動タイミング」という)を同期させる必要がある。しかし、サンプリング周期の高速化は、いくつかの外的要因により、事実上の限界がある。その要因の1つとしてむだ時間がある。むだ時間とは制御システムの内部に生じる時間遅れのことを指す。上記の制御システムでは、センサ1002が外部環境を検出してから、アクチュエータ1001が駆動を始めるまでに要する時間がむだ時間となる。むだ時間はサンプリング周期と比較して十分に小さく設定する必要がある。もしむだ時間が無視できないほど大きくなると、制御が不安定となるおそれがある。以上より、制御システムの高速化のためには、むだ時間の短縮が重要な課題となる。
【0004】
むだ時間の短縮と同期の確保を実現する単純な方法として、図16に示すように、コントローラと、各センサ及びアクチュエータを1対1の配線で接続する構成がある。この構成は、高速な信号送信を可能とし、容易にむだ時間の短縮と同期の確保を達成できる。しかし、センサ及びアクチュエータの個数分の配線が必要となる。したがって多数のセンサ、多数のアクチュエータを有する制御システムでは配線の数が膨大となる。このため、ケーブルの引き回しが複雑になるほか、ケーブルの重量や振動による制御への影響、及びコストの増大などを招くことが課題となる。このため、近年では、コントローラと各センサ、アクチュエータ間の配線をネットワーク化することで省配線化する取り組みが広く行われている。
【0005】
例えば、特許文献1には、コントローラに内蔵される親局と、センサやアクチュエータが接続される子局間をデイジーチェーン接続する制御システムが記載されている。この制御システムでは、親局は、下りの信号送信時に、下位に接続された子局宛のデータほど先に送信されるように送信順序を決定する。
【0006】
特許文献2には、特許文献1と同様に、コントローラに内蔵される親局と、センサやアクチュエータが接続される子局間をデイジーチェーン接続する制御システムが記載されている。この制御システムでは、下りの信号送信時は、特許文献1と同様、親局は下位に接続された子局宛のデータほど先に送信する。一方、上りの信号送信時には、上位に接続された子局ほど先にデータを送信する。
【0007】
また特許文献3、特許文献4には、コントローラに内蔵される親局と、センサやアクチュエータが接続される子局がネットワーク化されており、親局は通信開始前に各子局との間で生じる伝送遅延時間を把握する。そして当該伝送遅延時間に基づいて端局間の同期を確保する制御システムが記載されている。この構成により、高精度な同期の確保を実現する。これらの特許文献によれば、コントローラと各センサ及びアクチュエータ間の配線をネットワーク化しつつ、むだ時間の短縮と同期の確保を実現することができる。
【0008】
モーション制御を必要とする制御システムの1つに、産業用ロボットに代表されるロボットシステムがある。特許文献5には、機械的・電気的に独立した関節モジュールを組み合わせて接続し、関節モジュール内部の通信手段を用いて動作制御に関わる情報を送受信することで全体の動作制御を行うロボットシステムが記載されている。この構造により、多数の関節モジュールを組み合わせた場合においても、作業内容の変化に応じて柔軟に組替えができるロボットシステムを構築できる。特許文献6には、作業内容を認識し、作業内容に応じた適切なエンドエフェクタの選択及び自律的な交換を行うロボットシステムが記載されている。特許文献5及び特許文献6のロボットシステムを用いれば、作業内容毎に専用のロボットを用意する必要はない。このようなロボットシステムは、例えば、多品種少量生産の製品組み立て等に用いられる自動機械に好適である。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2004−088208号公報
【特許文献2】特開2006−094302号公報
【特許文献3】特開2002−164903号公報
【特許文献4】特開平10−013394号公報
【特許文献5】特開平09−029671号公報
【特許文献6】特開2009−148845号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
上述のように、コントローラに内蔵される親局と、センサやアクチュエータが接続される子局間をネットワーク化する場合、各子局はセンサが検出した外部環境の情報に、信号送信しやすい形式に変換するための情報処理を施す。以下、この情報処理を検出用情報処理という。検出した情報に検出用情報処理を施したものを検出データという。なお、検出用情報処理とはAD変換やデータ圧縮処理といった処理を指す。各子局で生成された検出データは変調処理や符号化処理が施された後、検出信号として親局へ送信される。親局は検出信号を受信すると、当該検出信号に復調処理や復号化処理を施し、検出データを得る。そして検出データに含まれる外部環境の情報と目標値とのずれを算出し、補正用のデータを生成する。以後、当該補正用のデータを駆動データと呼ぶ。親局で生成された駆動データは変調処理が施された後、駆動制御信号として各子局へ送信される。各子局は駆動制御信号を受信すると、当該駆動制御信号に復調処理を施し、駆動データを得る。そして駆動データに所定の処理(以下「駆動準備」という)を施し、駆動信号を生成する。ここで駆動準備とは、解凍処理やDA変換、PWM信号の生成といった処理を指す。生成された駆動信号は所定のタイミングでアクチュエータへ出力される。以上のようなフィードバック制御を周期的に繰り返すことで、所望の動作を得る。なお、以下の説明において、検出用情報処理に要する時間を検出処理時間、駆動準備にかかる時間を駆動準備時間と呼ぶ。
【0011】
特許文献1及び特許文献2では、上述の検出処理時間及び駆動準備時間は考慮されていない。例えば、特許文献1及び特許文献2において、下り/上りでの送信順序はトポロジーに基づいて決定される。すなわち、送信順序の決定は、伝送遅延時間に基づいて実行され、検出処理時間や駆動準備時間によって影響を受けることはない。特許文献1及び特許文献2の技術は、検出処理時間と駆動準備時間が伝送遅延時間と比較して十分に小さい場合、または全子局の検出処理時間と駆動準備時間が同一である場合に、むだ時間を最小化できる。しかし、検出処理時間と駆動準備時間の少なくとも一方が伝送遅延時間と比較して無視できないほど大きく、かつ全子局の検出処理時間と駆動準備時間の少なくとも一方が同一でない場合、むだ時間を最小化できないことがあった。
【0012】
ロボットシステムのような複雑な制御システムでは、視覚センサ、力覚センサ及び角度センサのような様々なセンサと、ステッピングモータ、DCモータ及びレーザーのような様々なアクチュエータにより構築される。したがって、全子局の検出処理時間及び駆動準備時間が同一であるとは限らない。また制御システムとして、親局だけでなく子局にも制御機能を持たせることで負荷を分散させる分散型の制御システムが採用されることも考えられる。分散型の制御システムは、CPU負荷を分散することができ、またデータは抽象化されて伝送されるため、ネットワーク化により制限される帯域を有効に活用することができる。このような制御システムにおいては、全子局の検出処理時間または駆動準備時間は伝送遅延時間と比較して、無視できないほど大きくなる。
【0013】
また従来技術では、駆動タイミングの設定についての具体的な記載がない。特許文献5及び特許文献6に記載のロボットシステムは、エンドエフェクタを作業内容に応じて適宜交換する。このようなロボットシステムを構築する場合に、状況に応じて交換されるエンドエフェクタの駆動準備時間を把握しないで駆動タイミングを同期させるには、常に想定される最大の駆動準備時間に合わせて駆動させるなどの対策が必要となる。ゆえに、駆動準備時間の短いエンドエフェクタを装着した際にも、駆動準備時間が最も長いエンドエフェクタに合わせた駆動タイミングとなり、時間的なむだが生じる。
【0014】
以上のように、従来技術では特に上述の駆動準備時間などを考慮していないため、むだ時間を最小化できず、サンプリング周期を最速化することが困難であるという課題があった。本発明は上記課題に鑑みなされたものであり、むだ時間を最小にする技術を提供することを目的とする。
【課題を解決するための手段】
【0015】
上記目的を達成するため、本発明による通信システムは、外部環境情報を検出する複数の検出装置および所定の動作を実行する複数の駆動装置と、前記複数の検出装置および前記複数の駆動装置と通信を行う制御装置とを含む通信システムであって、前記制御装置は、前記複数の検出装置のそれぞれが情報の検出および検出した情報を送信するための信号の生成に要する検出処理時間と、前記複数の駆動装置のそれぞれが信号を受信して当該信号に応じて前記動作を実行できる状態となるまでの駆動準備時間と、前記複数の検出装置および前記複数の駆動装置のそれぞれと前記制御装置との信号の伝送に要する伝送遅延とを取得する取得手段と、前記複数の検出装置のそれぞれについての前記検出処理時間と前記伝送遅延とに基づいて、前記複数の検出装置が前記制御装置へ信号を送信する順序を決定し、前記複数の駆動装置のそれぞれについての駆動準備時間と前記伝送遅延とに基づいて、前記制御装置が前記複数の駆動装置を制御するための信号を当該複数の駆動装置へ送信する順序を決定する決定手段と、決定した前記複数の検出装置が前記制御装置へ信号を送信する順序の情報を前記複数の検出装置へ送信し、前記制御装置が前記複数の駆動装置へ信号を送信する順序に基づいて当該複数の駆動装置を制御する信号を送信する送信手段と、前記複数の検出装置から前記検出した情報を含む信号を受信する受信手段と、を有し、前記複数の検出装置は、前記制御装置から、当該制御装置へ信号を送信する順序の情報を受信する受信手段と、受信した順序の情報に基づいて、検出した情報から生成された信号を前記制御装置へ送信する送信手段と、を有し、前記複数の駆動装置は、自らの制御のための信号を前記制御装置から受信する受信手段を有する。
【発明の効果】
【0016】
本発明によれば、通信に係るむだな時間を最小とする通信システム、制御装置、通信装置、制御方法、通信方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【0017】
【図1】ロボットシステムの概要図。
【図2】ロボットシステムの接続形態例を表す構成図。
【図3】親局の機能構成図。
【図4】子局の機能構成図。
【図5】初期シーケンスの動作フロー図。
【図6】データの送信順序を説明する図。
【図7】送信順序算出部の動作フロー図。
【図8】実施形態2に係る親局の機能構成図。
【図9】実施形態2に係るデータの送信順序を説明する図。
【図10】実施形態2に係る親局に設置される送信順序変更部の動作フロー図。
【図11】実施形態3に係る親局の内部構成図。
【図12】実施形態3に係る子局の内部構成図。
【図13】実施形態3に係る初期シーケンスの動作フロー図。
【図14】実施形態3に係るスロットテーブルを説明する図。
【図15】実施形態3に係るデータの送信順序を説明する図。
【図16】従来の制御システムの構成図。
【図17】ロボットシステムのマルチドロップによる接続形態例を表す構成図。
【発明を実施するための形態】
【0018】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
【0019】
<<実施形態1>>
(システム構成)
図1は本実施形態に係るロボットシステムの概要図である。本ロボットシステムは、コントローラ1、視覚モジュール2、関節モジュール3及び4、エンドエフェクタ5及び6により構成される。コントローラ1は、ロボットシステム全体の動作制御を実施する。また、不図示の上位の管理システムへ、作業進捗やエラー情報等を随時送信する。視覚モジュール2は、加工対象物8のようなロボットシステムが影響を及ぼす外部環境の取得(撮影)を実施する。関節モジュール3及び関節モジュール4は、ロボットアームの関節の角度制御を実施する。エンドエフェクタ5は、図示するようロボットアーム先端に取り付けられ、加工対象物8に対して所定の加工を実行する。エンドエフェクタ6は、エンドエフェクタ5とは異なる所定の加工を実行することができるエンドエフェクタである。エンドエフェクタ5とエンドエフェクタ6は、作業内容に応じて人手を介さず自律的に交換される。なお、コントローラ1と視覚モジュール2や関節モジュール3等を含むロボット本体とは、配線7により接続される。配線7を介してコントローラ1と各モジュールとの間の信号の伝送が行われる。
【0020】
図2は本実施形態のロボットシステムの接続形態例を表す構成図である。本ロボットシステムは、親局10と子局A20〜子局E60を有する通信システムである。親局10はコントローラ1に含まれるものとする。また、子局A20は視覚モジュール2に、子局B30は関節モジュール3に、子局C40は関節モジュール4に、子局D50はエンドエフェクタ5に、そして子局E60はエンドエフェクタ6に、それぞれ含まれるものとする。
【0021】
親局10は下位局接続コネクタ11を有し、最上位の子局となる子局A20の上位局接続コネクタ21と接続される。子局A20〜子局D50は、それぞれ、上位局と接続するための上位局接続コネクタ21〜上位局接続コネクタ51を有する。同様に、子局A20〜子局D50は、下位局と接続するための下位局接続コネクタ22〜下位局接続コネクタ52を有する。以上のように、親局10と子局A20〜子局D50はデイジーチェーン接続されてシステムが構成される。また、データは各子局がデータ中継を行うことで伝送される。子局A20〜子局E60には、それぞれモータ23〜モータ63、センサ24〜センサ64が接続されている。なお、本実施形態では、子局D50及び子局E60も下位局接続コネクタ52及び下位局接続コネクタ62を有する例を示しているが、接続される下位局が存在しない場合は、これらはなくてもよい。
【0022】
本実施形態では、視覚モジュール2はモータ23、センサ24を有する。ここでモータ23は例えばオープンループ方式で制御されるステッピングモータであり、センサ24はCCDカメラのような外部環境を撮影により取得するセンサである。子局A20は、センサ24が検出した外部環境情報(撮影画像等)を、サンプリング周期毎にAD変換や圧縮処理などの検出用情報処理と変調処理を施した後に、検出信号として親局10へ送信する。モータ23は、センサ24の撮影角度調整を行うために設けられている。子局A20は、親局10から駆動制御信号を受信すると、パルス電圧に変換する駆動準備を実行し、駆動信号をモータ23へ出力する。
【0023】
また、本実施形態では、関節モジュール3はモータ33及びセンサ34を、関節モジュール4はモータ43及びセンサ44を有する。ここでモータ33及びモータ43は例えばクローズループ方式で制御されるサーボモータであり、センサ34及びセンサ44はロータリーエンコーダといった角度検出を行うセンサである。子局B30は、親局10から送信される目標角度情報を含む駆動制御信号とセンサ34が検出した角度情報とを用いて駆動準備を実行し、駆動信号を生成する。そして、子局B30は、生成した駆動信号をモータ33へ出力する。また、子局B30は、センサ34が検出した外部環境情報を、サンプリング周期毎にAD変換などの検出用情報処理と変調処理を施し、親局10へ送信する。子局C40も子局B30と同様の動作を実施する。
【0024】
さらに、本実施形態では、エンドエフェクタ5はモータ53及びセンサ54を、エンドエフェクタ6はモータ63及びセンサ64を有する。ここでモータ53は例えばオープンループ方式で制御されるステッピングモータであり、モータ63は例えばクローズループ方式で制御されるサーボモータである。またセンサ54、センサ64は力覚センサのようなトルクを検出するセンサである。子局D50は、センサ54が検出した力覚などの外部環境情報を、サンプリング周期毎にAD変換などの検出用情報処理と変調処理を施し、検出信号として親局10へ送信する。モータ53は、加工対象物8の把持や加工を行うハンドを駆動するために設けられる。子局D50は、親局10から駆動制御信号を受信すると、パルス電圧に変換する駆動準備を実行し、駆動信号としてモータ53へ出力する。子局E60も同様の動作を実施する。
【0025】
また親局10は、子局A20〜子局E60から検出信号を受信すると、当該検出信号に含まれる画像情報、角度情報、力覚情報などの外部環境情報を取得し、当該情報に基づいて各モータの駆動制御信号を生成する。生成された駆動制御信号は各子局へ送信される。
【0026】
以上に示すようにサンプリング周期毎にフィードバック制御を実施することで、所定の動作を実現する。
【0027】
(親局の構成)
図3は本実施形態における親局10の内部構成を示す図である。親局10は、下位局接続コネクタ11を用いて、下位局と、すなわち本実施形態においては子局A20と接続する。下位局接続コネクタ11は、変調処理部112から入力された信号を子局A20へ送信し、子局A20から受信した信号を復調処理部113へ入力する。
【0028】
演算処理部100は、後述する復調処理部113を介して、各子局から受信した検出信号を用いて駆動演算を実行する。タイマ101は、例えばサンプリング周期毎にリセットされるクロックカウンタであり、ロボットシステムの動作制御を行うための基準となる時刻を生成する。タイマ信号生成部102は、タイマ101から出力されるカウント値(以後、時刻という)を含むタイマ信号を生成する。タイマ信号は各子局に送信され、後述するように各子局が有するタイマ202にセットされる。タイマ読出信号生成部103は、各子局に対して、子局が有するタイマ202の時刻を送信するように指令を行うタイマ読出信号を生成する。タイマ補正信号生成部104は後述する伝送遅延演算部106が算出する伝送遅延時間に応じて、各子局が有するタイマ202の補正値を含むタイマ補正信号を生成する。
【0029】
処理時間読出信号生成部105は各子局に対し、子局が有する後述の駆動準備時間記憶部209に記憶された駆動準備時間信号を送信するように指令を行う処理時間読出信号を生成する。伝送遅延演算部106は、後述するように各子局から送信されたタイマ信号と、タイマ101の時刻とに基づいて、各子局の伝送遅延時間を算出する。ここで伝送遅延時間の算出には従来技術の方法を用いる。詳細については後述する。
【0030】
駆動タイミング信号生成部107は、伝送遅延演算部106が算出した各子局の伝送遅延時間と、各子局から送信された駆動準備時間と、後述する送信順序算出部110の送信テーブルとから、各モータが駆動すべき時刻(駆動タイミング)を算出する。そして当該時刻情報を含む駆動タイミング信号を生成する。駆動タイミング信号の内容と決定方法については後述する。駆動制御信号生成部108は、演算処理部100の演算結果に応じた駆動制御信号を生成する。
【0031】
伝送制御部109は、後述する送信順序算出部110が生成した送信テーブルに従って、駆動制御信号生成部108が生成した駆動制御信号を送信する。送信順序算出部110は、子局毎に伝送遅延時間と駆動準備時間の和を算出し、当該和が大きい子局から順に駆動制御信号を送信することが記された送信テーブルを生成する。なお、本実施形態では、伝送遅延時間と駆動準備時間の和に基づいて送信順序を決定するが、決定の基準はこれらの時間の単なる和でなくともよい。例えば、伝送遅延時間の閾値を設定し、当該閾値を超える伝送遅延時間を有する子局から駆動準備時間が長い順に信号を送信し、それらの子局宛ての信号の送信が完了後にそれ以外の子局あての信号を送信してもよい。また、駆動準備時間の閾値を用意し、当該閾値を超える駆動準備時間を有する子局の中から、伝送遅延時間が長い順に信号を送信するようにしてもよい。これにより、子局の数が増加したときに、時間の和の比較に係る演算量を削減することができる。
【0032】
また、送信順序算出部110は、同時に子局が検出信号を送信する順序を決定してもよい。例えば、子局毎に伝送遅延時間と検出処理時間との和を算出し、当該和が小さい方の子局から信号を送信させるように決定する。なお、この場合、決定した順序は、子局に当該順序に関する情報を含む信号を送信して通知する。
【0033】
信号選択部111は、事前に定められたスケジュールに従って、タイマ信号、タイマ読出信号、タイマ補正信号、処理時間読出信号、駆動制御信号を選択し、出力する。なお本実施形態では、駆動タイミング信号は駆動制御信号に付加されて送信されるものとする。変調処理部112は、信号選択部111が選択した信号に変調処理を施し、通信路を介した伝送に適した形式の送信信号を生成し、子局A20〜子局D50へ送信する。ここで変調処理とは、誤り検出符号化やクロック挿入処理等を指す。復調処理部113は、子局A20から受信した信号に対して復調処理を施し、タイマ信号、駆動準備時間信号、検出信号、切断/接続信号を取得する。ここで復調処理とは、誤り検出復号化やクロック再生処理等を指す。なお、子局A20から受信した信号は、子局B30〜子局D50がそれぞれ生成して送信した信号を、子局A20が転送したものを含む。トポロジー変更検出部114は、各子局から送信される切断接続信号を元に、トポロジーの変更を検出し、信号選択部111へトポロジーの変更を通知する。
【0034】
(子局の構成)
図4は本実施形態における子局A20の内部構成を示す図である。子局A20は、上位局と、すなわち親局10と接続する上位局接続コネクタ21と、下位局と、すなわち子局B30と接続する下位局接続コネクタ22とを有する。上位局接続コネクタ21は親局10から受信した信号を復調処理部200及び下り中継処理部201へ入力し、送信信号選択部214から入力された信号を親局10へ送信する。また、下位局接続コネクタ22は、子局B30から受信した信号を下位局検知部210及び上り中継処理部213へと入力し、下り中継処理部201から入力された信号を子局B30へ送信する。
【0035】
復調処理部200は、親局10から受信した信号に対して復調処理を施し、タイマ信号、タイマ読出信号、タイマ補正信号、処理時間読出信号、駆動タイミング信号、駆動制御信号を取得する。下り中継処理部201は、親局10から受信した信号を、自局より下位に接続された子局B30へ転送する。転送する信号に対する復調処理などは行わず、そのまま、または場合によっては増幅や波形整形を行ってから転送する。すなわち、非再生中継を実行する。この信号は、下位局接続コネクタ22へ入力される。本実施形態では非再生中継を用いる場合について説明するが、中継毎に復調処理をし、再び変調処理を施してから中継する再生中継を用いてもよい。
【0036】
タイマ202は、例えばサンプリング周期毎にリセットされるクロックカウンタである。親局10から送信されたタイマ信号をセットすることで、親局10のタイマ101と粗同期をとる。その後、親局10から送信されたタイマ補正信号を用いてタイマ補正を実行することで、親局10のタイマ101と精密に同期する。詳細については後述する。タイマ信号生成部203は、親局10から送信されたタイマ読出信号を受信すると、タイマ202が出力する時刻を含むタイマ信号を生成する。
【0037】
駆動制御部204は、親局10から送信された駆動タイミング信号を用いて、後述する駆動信号記憶部206へ、駆動信号の出力指示を出す。駆動準備部205は、親局10から送信された駆動制御信号に所定の駆動準備を実行し、駆動信号を生成する。駆動信号記憶部206は、駆動制御部204が生成した駆動信号を一時的にバッファする。そして駆動制御部204からの出力指示に従い、駆動信号をモータ23へ出力する。
【0038】
検出制御部207は、タイマ202が出力する時刻が、事前に規定された時刻になると、後述する検出信号生成部208へ取得指示を出す。検出信号生成部208は、検出制御部207からの取得指示に従い、センサ24で検出された外部環境の情報を取得し、所定の検出用情報処理を施して、検出信号を生成する。
【0039】
駆動準備時間記憶部209は、親局10から送信された処理時間読出信号を受信すると、事前に記憶された自局の駆動準備時間を駆動準備時間信号として出力する。下位局検知部210は下位局が存在するか否かを、例えば電気的、または物理的に検知する。下位局の切断または接続を検知した場合、切断接続信号を出力する。信号選択部211は、事前に定められたスケジュールに従って、タイマ信号、検出信号、駆動準備時間信号、切断接続信号を選択し、出力する。詳細については後述する。変調処理部212は、信号選択部211が選択した信号に対して変調処理を施して送信信号を生成し、送信信号選択部214へ入力する。上り中継処理部213は自局より下位に接続された子局B30〜子局D50からの送信信号を、送信信号選択部214へ入力する。
【0040】
送信信号選択部214は、変調処理部212または上り中継処理部213から入力された送信信号について、時間的に早く入力されたものから順次、親局10へ送信する。以下に具体的に説明する。説明の便宜上、変調処理部212から出力される送信信号を送信信号A、上り中継処理部213から出力される送信信号を送信信号Bと示す。送信信号選択部214は、送信信号Aの方が送信信号Bよりも時間的に早く入力された場合、送信信号Aを先に上位局接続コネクタ21へ入力する。そして、送信信号選択部214は、その後、送信信号Bを上位局接続コネクタ21へ入力する。逆に送信信号Bの方が送信信号Aよりも時間的に早く入力された場合、送信信号Bを先に上位局接続コネクタ21へ入力する。そして、送信信号選択部214は、その後、送信信号Bを上位局接続コネクタ21へ入力する。上位局接続コネクタ21へ入力された送信信号は、入力された順に親局10へ送信される。なお、先に入力された信号を先に出力するのでなく、親局10から指定された順序で信号を出力するようにしてもよい。この場合、親局は、例えば伝送遅延と検出処理時間との和が少ない方の子局から信号を送信するように指示する。
【0041】
なお、ここでは、子局A20を例にとって詳細を説明したが、子局A20以外の子局(子局B30〜子局E60)も、子局A20と同様の構成をとるため、詳細については省略する。ただし、子局B30〜子局E60の場合、上位局接続コネクタに接続されるのは、上位に位置する子局である。
【0042】
(信号送信手順の初期シーケンス)
続いて本実施形態における信号送信の手順について説明する。本実施形態では信号送信を行う前に、初期シーケンスが実行される。親局10は初期シーケンスにて各子局の伝送遅延時間、駆動準備時間の把握、同期補正処理を実行する。図5を用いて本実施形態の初期シーケンスについて説明する。なお、初期シーケンスは、ロボットシステムの電源投入時、またはトポロジー変更検出を契機に開始する。
【0043】
初期シーケンスが開始すると、親局10の信号選択部111は、まずタイマ信号を選択して出力する。タイマ信号には、その時点におけるタイマ101の時刻が含まれる。タイマ信号は変調処理部112にて変調処理され、通信路を介した伝送に適した形式に変換されて子局A20〜子局D50へ送信される。各子局の復調処理部200は、受信信号に復調処理を施す。また下り中継処理部201は自局より下位に接続された子局へタイマ信号を非再生中継する。復調処理部200は、復調後のタイマ信号をタイマ202へ出力する。タイマ202はタイマ信号に含まれた時刻をセットする。以上の動作により、親局10のタイマ101と各子局のタイマ202との間で時刻の粗同期が完了する。ここで粗同期としたのは伝送遅延によるずれが存在するためである。
【0044】
親局10の信号選択部111は、タイマ信号の送信後、タイマ読出信号を選択して出力する。タイマ読出信号にはアドレスが付与され、各子局において、どの子局宛のものかを把握できるようになっている。タイマ読出信号は変調処理部112にて変調処理され、通信路を介した伝送に適した形式に変換されて子局A20〜子局D50へ送信される。
【0045】
各子局の復調処理部200は、受信信号に復調処理を施す。また下り中継処理部201は自局より下位に接続された子局へタイマ読出信号を非再生中継する。復調処理部200は、受信したタイマ読出信号が自局宛であるか否かを判定し、自局宛である場合には、タイマ信号生成部203へ出力する。一方、自局宛でない場合は破棄する。タイマ信号生成部203は、タイマ読出信号が入力された時点でのタイマ202の時刻を含むタイマ信号を、信号選択部211へ出力する。信号選択部211は初期シーケンス開始時、まずタイマ信号が選択されるように規定しておく。これにより、信号選択部211はタイマ信号を即座に変調処理部212へ転送し、変調処理部212は、当該タイマ信号に変調処理を施し、通信路を介した送信に適した形式の信号に変換する。変調されたタイマ信号は、送信信号選択部214を介して親局10へ送信される。
【0046】
なお、複数の子局において生成したタイマ信号が、当該子局またはその上位局の送信信号選択部214に同時に入力されることによる待ち時間が発生しないように、親局10は十分な時間の間隔を空けて各子局宛のタイマ読出信号を送信する。
【0047】
親局10の復調処理部113は、受信信号に復調処理を施す。そして、復調後のタイマ信号を伝送遅延演算部106へ出力する。伝送遅延演算部106は、受信したタイマ信号に含まれる時刻と、タイマ101の時刻との差分から、各子局の伝送遅延時間を算出する。伝送遅延時間の算出方法を、子局A20を例に説明する。
【0048】
子局A20からのタイマ信号を受信した時点、つまり子局A20からのタイマ信号が、伝送遅延演算部106に入力された時点における、親局10のタイマ101の時刻をT10とする。また、子局A20から受信したタイマ信号に含まれる時刻をTa20とする。この場合、親局10と子局A20間に生じる伝送遅延時間Tdaは、
Tda = (T10 − Ta20)/2
のように計算される。これは、例えば、時間t0において親局10が子局A20へタイマ信号を送信すると、親局10におけるタイマがTda+t0のタイミングで子局A20のタイマがt0にセットされる。その後、Ta20=t0+t1とすると、子局A20のタイマがTa20であるときに親局10のタイマはTda+t0+t1、すなわち、Tda+Ta20となる。子局A20から親局10までの伝送遅延はTdaであるから、親局10がタイマ読出信号を受信するタイミングは、T10=Tda+Ta20+Tdaとなる。したがって、上式が成立する。
【0049】
子局B30〜子局D50に関しても同様である。本実施形態では、上記の方法にて伝送遅延時間の把握を行う。以上の動作によって全子局の伝送遅延時間を把握すると、初期シーケンスの処理はS11に移る。
【0050】
S11では、親局10の信号選択部111は、タイマ補正信号を選択して出力する。タイマ補正信号には上記の方法で把握した伝送遅延時間Tdaの情報が含まれている。またタイマ補正信号にはアドレスが付与され、どの子局宛のものか把握できるようになっている。変調処理部112は、タイマ補正信号に変調処理を施し、通信路を介した送信に適した形式の信号に変換する。変調されたタイマ補正信号は、子局A20〜子局D50へ送信される。
【0051】
各子局の復調処理部200は、受信信号に復調処理を施す。また下り中継処理部201は自局より下位に接続された子局へタイマ補正信号を非再生中継する。復調処理部200は、受信したタイマ補正信号が自局宛であるか否かを判定し、自局宛である場合にはタイマ202へ出力する。一方、自局宛でない場合は破棄する。タイマ202は、復調されたタイマ補正信号が入力されると、タイマ補正信号に含まれる親局10と自局との伝送遅延時間に基づいて時刻を補正する。すなわち、例えば、タイマ202の時刻をTdaだけ進める。
【0052】
以上の動作により、親局10のタイマ101と各子局のタイマ202の時刻は伝送遅延を含めて精密に同期される。以上の動作によって、全子局のタイマ202の同期補正を完了すると、初期シーケンスの処理をS12へ進める。
【0053】
S12では、親局10の信号選択部111は、処理時間読出信号を選択して出力する。処理時間読出信号にはアドレスが付与され、どの子局宛のものか把握できるようになっている。変調処理部112は、処理時間読出信号に変調処理を施し、通信路を介した送信に適した形式の信号に変換する。変調された処理時間読出信号は、子局A20〜子局D50へ送信される。
【0054】
各子局の復調処理部200は、受信信号に復調処理を施す。また下り中継処理部201は自局より下位に接続された子局へ処理時間読出信号を非再生中継する。復調処理部200は、受信した処理時間読出信号が自局宛であるか否かを判定し、自局宛である場合には駆動準備時間記憶部209へ出力する。一方、自局宛でない場合は破棄する。駆動準備時間記憶部209は、処理時間読出信号が入力されると、事前に記憶された自局の駆動準備時間に関する情報を含む駆動準備時間信号を信号選択部211へ出力する。信号選択部211は初期シーケンスにおいて、タイマ信号を選択した後、駆動準備時間信号が選択されるように規定しておく。これにより、駆動準備時間信号は、変調処理部212に転送され、変調処理部212は、当該駆動準備時間信号に変調処理を施し、通信路を介した送信に適した形式の信号に変換する。変調された駆動準備時間信号は、送信信号選択部214を介して親局10へ送信される。
【0055】
親局10の復調処理部113は、受信信号に復調処理を施す。そして復調された駆動準備時間信号を駆動タイミング信号生成部107及び送信順序算出部110へ出力する。本実施形態では、上記の方法で駆動準備時間の把握を行う。以上の動作を子局毎に行うことで全子局の駆動準備時間を把握し、初期シーケンスを完了する。
【0056】
(信号送信手順)
信号送信手順における信号の送信順序について図6を用いて説明する。ここで本実施形態において子局A20、子局D50の駆動準備時間をTk1、子局B30、子局C40の駆動準備時間をTk2とし、Tk2>Tk1が成り立つものとする。また子局A20の検出処理時間は、子局B30〜子局D50の検出処理時間と比較して大きいものとする。伝送遅延時間は子局A20〜子局D50から順にTda、Tdb、Tdc、Tddとし、Tdd>Tdc>Tdb>Tdaが成り立つものとする。さらに、図6の例では、親局10から子局A20〜子局D50へ、信号の送信順序が伝えられるものとし、その順序は子局B30、子局C40、子局D50、子局A20の順であるものとする。
【0057】
図6の時刻T1000は、各子局のセンサが外部情報の検出を開始する検出タイミングである。各子局の検出制御部207は、タイマ202の時刻が時刻T1000になると、検出信号生成部208へ外部環境に関する検出情報の取得指示を出す。取得指示を受けた検出信号生成部208はセンサ24から検出情報を取得し、所定の検出用情報処理を施して、検出信号を生成する。ここで各子局のタイマ202は上述の初期シーケンスにて親局10のタイマ101と同期している。したがって、各子局間は同期して情報の検出と検出用情報処理を実行することができる。
【0058】
時刻T1001は、子局B30〜子局D50において検出情報の取得及び検出用情報処理が完了した時刻である。検出用情報処理により生成された検出信号は、信号選択部211へ出力される。このとき、信号選択部211は初期シーケンス終了後、検出信号が選択されるよう規定しておく。これにより、検出信号は、変調処理部212に転送される。そして、変調処理部212は、当該検出信号に変調処理を施し、通信路を介した送信に適した形式の信号に変換する。変調された検出信号は、送信信号選択部214を介して上位に接続される局へ送信される。なお、本実施形態では、各子局は、親局10から、信号の送信順序が子局B30、子局C40、子局D50、子局A20の順であることが通知されている。しかしながら、子局B30〜子局D50には、この時点で他の子局から送信されてきた信号は存在しない。このため、各子局は、検出信号をそのまま上位局へ送信する。
【0059】
時刻T1002は、子局A20が子局B30から送信された検出データの受信を開始した時刻である。具体的には、上り中継処理部213によって非再生中継された検出データが送信信号選択部214へ入力される時刻である。時刻T1002において、子局A20の検出用情報処理は完了していない。このため、子局A20の送信信号選択部214は、子局B30から送信された検出データを親局10へ送信する。なお、子局A20の検出用情報処理は、時刻T1003において完了する。子局A20の検出信号は、変調処理部212にて変調処理が施され、通信路を介した送信に適した形式の信号に変換される。変調後の検出信号は送信信号選択部214に出力される。ここで、親局10から伝えられた順序では、子局D50からの検出データの後に子局A20の検出データを送ることになっている。また、子局A20には、子局B30〜子局D50からの信号が連続的に入力されるため、転送すべきデータが子局A20において存在する。このため、子局C40からの信号の送信が始まる前に、子局A20の検出信号が生成されるが、その信号が送信されるのは子局D50からの検出データの送信が完了した後となる。以上に述べた検出データの伝送手順により、上りの信号送信においてむだな時間なく伝送を行うことができる。
【0060】
なお、各子局において、送信信号選択部214がFIFO(First In First Out)により、先に入力された信号を先に出力することもできる。これによれば、子局B30〜子局D50までの信号の送信順序は変わらないが、子局A20では、子局B30からの信号の送信が完了時において検出用情報処理が完了しているため、子局B30からの信号に続いて子局A20の信号を送信する。これにより、送信順序を予め通知しておく必要がないため、全体の処理の速度を短縮することができる。
【0061】
時刻T1004は、親局10の復調処理部113が、子局A20〜子局D50の検出データの復調処理を完了した時刻である。親局10の復調処理部113が受信した検出信号は、演算処理部100へ出力される。演算処理部100は、入力された検出信号から目標値とのずれを演算する。時刻T1005は、演算処理部100の演算結果に応じて、駆動制御信号生成部108が各子局の駆動制御信号の生成を完了した時刻である。駆動制御信号生成部108が生成した駆動制御信号は、伝送制御部109により送信順序算出部110が作成した送信テーブルに従い送信される。
【0062】
図7は、送信順序算出部110の動作について示したフローチャートである。このフローチャートを用いて、送信順序算出部110の動作について説明する。処理が開始されると、まずS1において、初期シーケンスが完了したか否かの判定を行う。初期シーケンスが完了した場合はS2へ、完了していない場合はS1へ戻り、再び上記判定を行う。
【0063】
S2では、各子局の『伝送遅延時間+駆動準備時間』を算出する。本実施形態においては、子局A20の『伝送遅延時間+駆動準備時間』はTda+Tk1として算出される。同様に子局B30〜子局D50の『伝送遅延時間+駆動準備時間』はそれぞれ、Tdb+Tk2、Tdc+Tk2、Tdd+Tk1として算出される。全子局の『伝送遅延時間+駆動準備時間』を算出するとS3へ進む。
【0064】
S3では、『伝送遅延時間+駆動準備時間』の大きい方から先に駆動制御信号を送信するように、送信テーブルを生成する。本実施形態では、
Tdc+Tk2 > Tdb+Tk2 > Tdd+Tk1 > Tda+Tk1
が成り立つものとする。したがって、図6に示すように、子局C40、子局B30、子局D50、子局A20の順に駆動制御信号が送信されることを示す送信テーブルが生成される。テーブルの生成が完了すると、フローを終了する。
【0065】
上記フロー処理により、図6に示すように『伝送遅延時間+駆動準備時間』が大きい子局に宛てた駆動制御信号から先に出力されるため、下りの信号送信において、むだな時間なく伝送を行うことができる。
【0066】
なお駆動制御信号には、上述したように、駆動タイミング信号が付加されている。駆動タイミング信号生成部107は、各モータが同期して駆動可能な最短の駆動タイミングを算出し、その時刻情報を含む駆動タイミング信号を生成する。ここで同期して駆動可能な最短の駆動タイミングとは、全子局の駆動準備が完了する時刻である。当該時刻は、各子局の伝送遅延時間、駆動準備に関する時間、駆動制御信号の送信順序により算出することができる。本実施形態において、駆動制御信号の時間長をTsとすると、子局A20の駆動準備が完了する時刻(以後、駆動準備完了時刻という)Teaは、
Tea=T1005+4Ts+Tda+Tk1
のように算出される。同様に子局B30〜子局D50の駆動準備完了時刻Teb〜Tedは、
Teb=T1005+2Ts+Tdb+Tk2
Tec=T1005+Ts+Tdc+Tk2
Ted=T1005+3Ts+Tdd+Tk1
のように算出される。
【0067】
ここで、これらの駆動準備完了時刻Tea〜Tedの中で、子局Bに対応するTebが最大であるとすると、駆動タイミングはTebに設定される。以上のように生成された駆動タイミング信号は、駆動制御信号に付加されて信号選択部111へ出力される。ここで信号選択部111は初期シーケンス後、駆動制御信号が選択されるよう事前に規定しておく。これにより、駆動タイミング信号が付加された駆動制御信号が、信号選択部111を通じて変調処理部112に入力される。駆動制御信号は、変調処理部112により変調処理が施され、通信路を介した送信に適した形式の信号に変換される。変調後の駆動制御信号は、子局A20〜子局D50へ送信される。
【0068】
各子局の復調処理部200は、受信信号に復調処理を施す。そして受信した駆動制御信号が自局宛である場合は、駆動準備部205へ出力し、駆動制御信号に付加された駆動タイミング信号を駆動制御部204へ出力する。駆動準備部205は入力された駆動制御信号に対し、所定の駆動準備を実行することで駆動信号を生成し、駆動信号記憶部206へ出力する。駆動信号記憶部206は、駆動準備部205が生成した駆動信号を、駆動制御部204からの出力指示があるまで一時的にバッファする。
【0069】
時刻T1006は、全子局において駆動準備が終了するタイミングであり、すなわち、各子局がモータに対して駆動信号を出力する駆動タイミングである。本実施形態において『時刻T1006から時刻T1000』がフィードバック制御全体のむだ時間となる。駆動制御部204は、タイマ202の時刻と駆動タイミング信号に含まれる時刻が一致すると、駆動信号記憶部206へ出力指示を出す。ここでは上述のように、駆動タイミング信号に含まれる時刻は、子局B30における駆動準備完了時刻と同一である。したがって、図6に示すように、子局B30の駆動準備が完了すると同時に、駆動信号の出力が行われるように駆動信号記憶部206が制御される。
【0070】
以上に示した信号送信、及び駆動タイミング設定を行うことにより、親局及び子局がデイジーチェーン接続されており、検出に係る処理時間と駆動準備時間が子局間で一致していない場合であっても、むだ時間を最小化することができる。
【0071】
なお、エンドエフェクタの交換により、ネットワークに接続される子局が変更された場合、親局10はそれを検知し、再び初期シーケンスを開始する。具体的には、子局C40の下位局検知部210が、下位局(子局D50または子局E60)の切断または接続を検知すると、切断接続信号を信号選択部211へ出力する。ここで、信号選択部211は、切断接続信号が入力されると、他の信号より優先的に切断接続信号を変調処理部212へ出力するように規定しておく。切断接続信号は変調処理部212によって変調処理が施され、通信路を介した送信に適した形式に変換される。変調された切断接続信号は、送信信号選択部214を介して、親局10へ送信される。
【0072】
親局10の復調処理部113は、受信信号に復調処理を施す。そして復調した切断接続信号を、トポロジー変更検出部114へ出力する。トポロジー変更検出部114は、各子局から送信される切断接続信号によりトポロジーの変更を検出し、信号選択部111へトポロジーの変更を通知する。通知を受けた信号選択部111は、当該通知に従って、再び初期シーケンスから開始する。新しい子局が追加された場合には、当該子局と同期を取る必要があるからである。以上の構成により、エンドエフェクタの交換等、適宜トポロジーが変更されるネットワークであっても、そのネットワークに応じて、最小のむだ時間で信号送信を行うことができる。
【0073】
<<実施形態2>>
実施形態1では親局が各子局の伝送遅延時間、駆動準備時間を把握した後、駆動データの送信順序を適宜決定するロボットシステムについて説明した。しかし送信順序を適宜決定せずとも、例えば初期状態(電源入力時)における送信順序を決めておき、子局(エンドエフェクタ)が交換され、かつ交換された子局の『伝送遅延時間+駆動準備時間』が所定値を超えた場合に限り、送信順序を変更しても良い。本実施形態ではその方法について説明する。
【0074】
本実施形態のロボットシステムの概要及び接続形態は、実施形態1と同様であるため、詳細については省略する。なお本実施形態のロボットシステムは、初期状態においてエンドエフェクタ5が装着されているものとする。
【0075】
(親局の構成)
図8は本実施形態における親局10の機能構成を示す図である。なお、実施形態1と同じ動作をするブロックには同一の符号を付し、詳細な説明を省略する。
【0076】
送信テーブル記憶部120には事前に所定の駆動制御信号の送信順序が記された送信テーブルが記憶されている。伝送制御部121は、送信テーブル記憶部120の送信テーブル、または後述する送信順序変更部122が生成した送信テーブルに従って、駆動制御信号生成部108が生成した駆動制御信号を出力する。送信順序変更部122は、各子局の『伝送遅延時間+駆動準備時間』が所定値を超えた場合に、自身の出力が伝送制御部121及び駆動タイミング信号生成部107へ入力されるように、後述するセレクタ123を制御する。また送信順序変更部122は、『伝送遅延時間+駆動準備時間』の大きい子局へ宛てた駆動制御信号が先に送信されることを示す送信テーブルを生成する。セレクタ123は送信順序変更部122からの指示に従い、送信テーブル記憶部120と送信順序変更部122から入力された情報のうち、出力するものを選択する。初期状態では、送信テーブル記憶部120の出力が選択される。
【0077】
(子局の構成)
子局の構成は実施形態1と同様であるため、詳細については省略する。
【0078】
(信号送信手順)
続いて本実施形態における信号送信手順について説明する。本実施形態では、実施形態1と同様、子局A20、子局D50の駆動準備時間をTk1、子局B30、子局C40の駆動準備時間をTk2とし、Tk2>Tk1が成り立つものとする。子局A20の検出処理時間は、子局B30〜子局D50の検出処理時間と比較して大きいものとする。また伝送遅延時間は、子局A20〜子局D50から順にTda、Tdb、Tdc、Tddとし、Tdd>Tdc>Tdb>Tdaが成り立つものとする。
【0079】
送信テーブル記憶部120には、事前に子局C40、子局B30、子局D50、子局A20の順に駆動制御信号を送信するよう記された送信テーブルが記憶されている。ゆえに子局D50が内蔵されるエンドエフェクタ5が装着されている場合は、実施形態1と同様、図6に示す送信順序で伝送が行われる。
【0080】
ここで、ロボットシステムがエンドエフェクタ5から、子局E60を内蔵するエンドエフェクタ6に交換した場合について考える。ここで子局E60の駆動準備時間をTk3とし、Tk3>Tk2>Tk1が成り立つものとする。また伝送遅延時間はTdeとし、Tde=Tddが成り立つものとする。エンドエフェクタ5がエンドエフェクタ6に交換されると、トポロジー変更検出部114は信号選択部111へトポロジーの変更があったことを通知する。通知を受けた信号選択部111は、再び初期シーケンスを開始する。
【0081】
親局10は実施形態1と同様、初期シーケンスによって各子局の伝送遅延時間、駆動準備時間を把握、同期補正処理を実施する。本実施形態の初期シーケンスは実施形態1と同様であるため、詳細については省略する。なお、ここでの初期シーケンスは、新規に追加された子局E60のみを対象にして伝送遅延時間、駆動準備時間を把握、同期補正処理を実行してもよい。
【0082】
続いて初期シーケンス完了後、つまり信号送信開始後のデータの送信順序について図9を用いて詳細に説明する。図9において、時刻T2000〜時刻T2004時の動作は、実施形態1の時刻T1000〜1004と同様であるため、詳細については省略する。
【0083】
時刻T2005は、演算処理部100の演算結果に応じて、駆動制御信号生成部108が、各子局の駆動制御信号の生成を完了した時刻である。駆動制御信号生成部108が生成した駆動制御信号は、伝送制御部121から信号選択部111へ出力され、変調処理部112において変調処理を施された後に送信される。
【0084】
図10は、送信順序変更部122の動作について示したフローチャートである。フローチャートを用いて、送信順序変更部122の動作について説明する。S20では、初期シーケンスが完了したか否かの判定を実施する。初期シーケンスが完了した場合はS21へ、完了していない場合はS20へ戻り、再び上記判定を行う。S21では、新規の子局E60の駆動データを、以前の子局D50の駆動データと同じ送信順序(つまり、子局C40、子局B30、子局E60、子局A20の順)で伝送しても良いか否かを判定する。具体的には子局E60の駆動準備完了時刻Teeが、図6の時刻T1006を超えるか否かを判定する。超える場合はS22へ、超えない場合はフローを終了する。本実施形態においてTeeは、
Tee=T1005+3Ts+Tde+Tk3
のように計算される。
【0085】
なお、ここでは、Tee>T1006が成り立つものとする。この場合、S22では、各子局の『伝送遅延時間+駆動準備時間』を算出し、S23へ進む。本実施形態では、
Tde+Tk3 > Tdc+Tk2 > Tdb+Tk2 > Tda+Tk1
が成り立つものとする。S23では、S22で求めた『伝送遅延時間+駆動準備時間』の大きい子局から順に駆動制御信号を取得できるように送信順序を定めた送信テーブルを生成する。具体的には、子局E60、子局C40、子局B30、子局A20の順序であて先を定めた駆動制御信号が送信されることを示す送信テーブルを生成する。またセレクタ123の出力が、送信順序変更部122の出力となるよう制御する。以上の動作を完了すると、フローを終了する。図10の処理により、エンドエフェクタ5を別のエンドエフェクタ6に変更しても、送信順序を変更せずとも変更前と同様のむだ時間を確保できるか否かを判定し、確保できない場合に適応的にむだ時間が最短となる送信順序を決定することができる。これにより、エンドエフェクタの交換前と同水準のむだ時間の達成、または、交換後のエンドエフェクタ6を用いた場合のむだ時間の最小化の達成が可能となる。
【0086】
なお、駆動制御信号には、実施形態1と同様、駆動タイミング信号生成部107が生成する駆動タイミング信号が付加される。駆動タイミングを算出の方法は、実施形態1と同様に決定される。よって子局B30の駆動準備完了時刻である時刻T2006にて、各子局が同期してモータを駆動する。
【0087】
以上のように初期状態における送信順序を事前に決めておき、子局が交換され、かつ交換された子局の『伝送遅延時間+駆動準備時間』が所定値を超えた場合のみ、送信順序を変更する方法をとっても、フィードバック制御のむだ時間を最小化することができる。また、上述の説明では、初期状態から送信順序を変更することについて説明したが、上記の方法により変更後の送信順序からさらに送信順序を変更することもできる。この場合、一旦送信順序を変更すると、変更後の送信順序を定めるテーブルを送信テーブル記憶部120に保持し、その変更後の送信順序に基づいて、上述の『伝送遅延時間+駆動準備時間』の所定値を定めてもよい。
【0088】
<<実施形態3>>
実施形態1、実施形態2では、親局及び各子局がデイジーチェーン接続され、各子局にてデータ中継を行うロボットシステムについて説明した。しかし本発明はこれに限らず、1つの伝送ケーブル上に複数の端局を接続したマルチドロップ接続や、無線接続された場合でも適用可能である。本実施形態では、親局及び各子局がマルチドロップ接続されたロボットシステム、及びその伝送手順について説明する。本実施形態のロボットシステムの概要は、実施形態1と同様であるため、詳細については省略する。なお伝送方式にはTDMA(時分割多元接続)方式を用いるものとして説明する。
【0089】
本実施形態では、図17に示すように、1本または複数本のバスに親局と子局が接続する接続形態を用いる場合について説明する。なお、図17における親局10のコネクタ15及び各子局のコネクタ25〜65は、バス接続により信号の送受信を行うためのコネクタである。これ以外の構成として、回線の親局方向への信号送信を上り、及び親局方向からの信号送信を下りと定義することにより、上り用のコネクタと下り用のコネクタを用いて信号の送受信を実行することも可能である。
【0090】
(親局の構成)
図11は本実施形態における親局10の機能構成を示す図である。本実施形態ではマルチドロップ接続であるため、実施形態1とは異なり、図11のように、変調処理部134の出力と、復調処理部135の入力が接続されている。なお、実施形態1と同じ動作をするブロックには、同一の符号を付し、詳細な説明は省略する。
【0091】
スロット信号生成部130は、伝送遅延演算部106が算出した各子局の伝送遅延時間と、各子局から送信された駆動準備時間の和、つまり『伝送遅延時間+駆動準備時間』を子局毎に算出する。また同様に、各子局の伝送遅延時間と、各子局から送信された検出処理時間の和、つまり『伝送遅延時間+検出処理時間』も子局毎に算出する。そして下りは『伝送遅延時間+駆動準備時間』が大きい子局宛の駆動制御信号から、上りは『伝送遅延時間+検出処理時間』が小さい子局の検出信号から順に送信するようスロット割当を定めたテーブルを生成する。また、スロット信号生成部130は、生成したテーブルをスロット信号として信号選択部111へ出力する。
【0092】
伝送制御部131は、スロット信号生成部130が生成したスロットテーブルに従い、駆動制御信号生成部108が生成した駆動制御信号を送信する。送受信制御部132は、スロット信号生成部130が生成したスロットテーブルを元に、変調処理部134、復調処理部135に対して送信、受信指示を出力する。信号選択部133は、事前に定められたスケジュールに従って、タイマ信号、タイマ読出信号、タイマ補正信号、処理時間読出信号、駆動制御信号、スロット信号を選択し、出力する。変調処理部134は、送受信制御部132からの送信指示に従い、信号選択部133が選択した信号に変調処理を施し、変調後の信号を子局A20〜子局D50へ送信する。復調処理部135は、送受信制御部132からの受信指示に従い、子局A20〜子局D50からの信号を受信して復調処理を施し、各子局からのタイマ信号、駆動準備時間信号、検出処理時間信号、検出信号を取得する。
【0093】
(子局の構成)
図12は本実施形態における子局A20の機能構成を示す図である。本実施形態はマルチドロップ接続であるため、実施形態1とは異なり、変調処理部217の出力と、復調処理部215の入力は図のように接続されている。なお、実施形態1と同じ動作をするブロックには、同一の符号を付し、詳細な説明については省略する。
【0094】
復調処理部215は、後述する送受信制御部216の受信指示に従い、親局10からのタイマ信号、タイマ読出信号、タイマ補正信号、処理時間読出信号、駆動タイミング信号、駆動制御信号、スロット信号を受信する。送受信制御部216は、受信したスロット信号に含まれるスロットテーブルを元に、変調処理部217、復調処理部215に対して送信指示、または受信指示を出力する。変調処理部217は、送受信制御部216からの送信指示に従い、信号選択部211が選択した信号に対して変調処理を施し、変調後の信号を親局10へ送信する。処理時間記憶部218は、親局10から送信された処理時間読出信号を受信すると、事前に記憶された自局の駆動準備時間及び検出処理時間を駆動準備時間信号、検出処理時間信号として出力する。子局A20以外の子局(子局B30〜子局E60)も、子局A20と同様の構成となる。
【0095】
(信号送信手順の初期シーケンス)
続いて本実施形態における信号送信手順について説明する。本実施形態では実施形態1と同様、子局A20、子局D50の駆動準備時間をTk1、子局B30、子局C40の駆動準備時間をTk2とし、Tk2>Tk1が成り立つものとする。また子局A20の検出処理時間は、子局B30〜子局D50のそれと比較して大きいものとする。伝送遅延時間は、子局A20〜子局D50から順にTda、Tdb、Tdc、Tddとし、Tdd>Tdc>Tdb>Tdaが成り立つものとする。また子局A20の検出処理時間をTk4とし、子局B30〜子局D50の検出処理時間をTk3とする。なお、Tk4>Tk3が成り立つものとする。
【0096】
初めに初期シーケンスについて図13を用いて説明する。親局10は、まず、初期シーケンスにおいて、各子局の伝送遅延時間を把握して、同期補正処理を実行する。これらの処理については実施形態1と略同様の方法で行う。すなわち、図13のS30、S31は、図5のS10、S11とほぼ同様であり、詳細な説明は省略する。ただしマルチドロップ接続であるため、送信信号の衝突が起きないよう、伝送制御されるものとする。
【0097】
図13のS32からの動作について説明する。S31を完了後、つまり全子局のタイマ202の同期補正を完了すると、親局10の信号選択部133は、処理時間読出信号を選択して出力する。処理時間読出信号にはアドレスが付与されており、どの子局宛のものか把握できるようになっている。処理時間読出信号は変調処理部134にて変調処理され、変調後の信号が子局A20〜子局D50へ送信される。
【0098】
各子局の復調処理部215は、受信信号に復調処理を施す。復調処理部215は、受信した処理時間読出信号が自局宛であるか否かを判定し、自局宛である場合には、処理時間記憶部218へ出力する。一方、自局宛でない場合は破棄する。処理時間記憶部218は、処理時間読出信号が入力されると、事前に記憶された自局の駆動準備時間に関する情報を含む駆動準備時間信号と、検出処理時間に関する情報を含む検出処理時間信号とを、処理時間信号として信号選択部211へ出力する。信号選択部211はS31を完了後、処理時間信号が選択されるように規定しておく。処理時間信号は、変調処理部217にて変調処理が施され、変調後の信号は親局10へ送信される。
【0099】
親局10の復調処理部135は、受信信号に復調処理を施す。そして復調処理部135は、駆動準備時間信号を駆動タイミング信号生成部107及びスロット信号生成部130へ、検出処理時間信号をスロット信号生成部130へ出力する。本実施形態では、上記の方法で駆動準備時間と検出処理時間の把握を行う。以上の動作を子局毎に行うことで全子局の駆動準備時間と検出処理時間を把握し、S33へ進む。
【0100】
スロット信号生成部130は、上述のように『伝送遅延時間+駆動準備時間』と、『伝送遅延時間+検出処理時間』を子局毎に算出する。そして下りは『伝送遅延時間+駆動準備時間』が大きい子局宛の駆動制御信号から、上りは『伝送遅延時間+検出処理時間』が小さい子局の検出信号から順に送信するようなスロット割当を示すテーブルを生成する。本実施形態では『伝送遅延時間+駆動準備時間』は実施形態1と同様に、
Tdc+Tk2 > Tdb+Tk2 > Tdd+Tk1 > Tda+Tk1
が成り立つものとする。また『伝送遅延時間+検出処理時間』は、
Tda+Tk4 > Tdd+Tk3 > Tdc+Tk3 > Tdb+Tk3
が成り立つものとする。この場合、本実施形態において生成するスロットテーブルは図14に示すようになる。このスロットテーブルには送信局と受信局の割当、及び送信局の送信時刻について示されている。
【0101】
親局10の信号選択部133はS32を完了後、つまり全子局の駆動準備時間と検出処理時間を把握すると、スロット信号を選択して出力する。スロット信号は変調処理部134にて変調処理され、変調後の信号は子局A20〜子局D50へ送信される。各子局の復調処理部215は、受信信号に復調処理を施す。復調処理部215は、受信したスロット信号を送受信制御部216へ出力する。送受信制御部216は、スロット信号が入力されると、当該スロット信号に含まれるテーブルに基づいて、変調処理部134、復調処理部135に対して送信指示、または受信指示を出力する。
【0102】
以上の動作により、全子局のスロット割当を完了し、初期シーケンスを完了する。
【0103】
(信号送信手順)
初期シーケンス完了後における信号の送信順序について図15を用いて説明する。時刻T3000は、各子局のセンサが外部情報の検出を開始する検出タイミングである。各子局の検出制御部207は、タイマ202の時刻が時刻T3000と一致すると、検出信号生成部208へ外部環境に関する検出情報の取得指示を出す。取得指示を受けた検出信号生成部208はセンサ24から検出情報を取得し、所定の検出用情報処理を施して、検出信号を生成する。
【0104】
時刻T3001は、子局B30〜子局D50において検出用情報処理が完了した時刻である。検出用情報処理により生成された検出信号は、信号選択部211へ出力される。この際、信号選択部211は初期シーケンスが終了後は、検出信号が選択されるよう規定されている。ゆえに検出信号は、信号選択部211を通して、変調処理部217に出力される。
【0105】
図14のスロットテーブルより、時刻T3001は子局B30が送信する時刻である。ゆえに子局B30の送受信制御部216は、送信指示を変調処理部217へ出力する。送信指示を受けた子局B30の変調処理部217は、検出信号を変調処理し、検出データとして親局10へ送信する。同様に時刻T3002、時刻T3004、時刻T3005にて、子局C40、子局D50、子局A20の送受信制御部216は、送信指示を変調処理部217へ出力する。よって図15に示すように、子局B30、子局C40、子局D50、子局A20の順、つまり『伝送遅延時間+検出処理時間』の和の小さい子局順に検出データが伝送される。以上の送信順序により、上りの信号送信においてむだな時間を最小化することができる。
【0106】
なお本実施形態ではマルチドロップ接続のため、図15に示すように、送信局が切り替わる際に衝突が生じないようにガードタイムが挿入される。ガードタイムは、例えば子局D50の次に子局A20が信号を送信する場合など、親局から離れた子局が先に信号を送信し、その後の親局の近くの子局が信号を送信する場合などに長くとるのが望ましい。反対に、子局B30の次に子局C40が送信する場合など、親局から近い方が先に信号を送信する場合は、ガードタイムは極めて小さい値であってもよい。さらに、伝送遅延を考慮して、伝送遅延分だけ早く送信するようにしてもよい。例えば、図15の例では、子局Cは、子局Bの送信完了の時間より、伝送遅延差Tdc−Tdbだけ早い時間に送信を開始してもよい。また、この伝送遅延差を考慮して早く送信する際に、受信側、すなわち親局10における衝突を防ぐため、ガードタイムを挿入してもよい。このように伝送遅延差を考慮することにより、むだ時間をより削減することができる。
【0107】
時刻T3006は、親局10の復調処理部135が、子局A20〜子局D50の検出データの復調処理を完了した時刻である。親局10の復調処理部113が受信した検出信号は、演算処理部100へ出力される。演算処理部100は、入力された検出信号から目標値とのずれを演算する。
【0108】
時刻T3007は、演算処理部100の演算結果に応じて、駆動制御信号生成部108が各子局の駆動制御信号の生成を完了した時刻である。ここで伝送制御部131は図14のスロットテーブルに従い、駆動制御信号生成部108の駆動制御信号を送信する。よって子局C40、子局B30、子局D50、子局A20の駆動制御信号の順に出力するように制御する。上記出力制御により、図15に示すように『伝送遅延時間+駆動準備時間』が大きい子局から順に駆動制御信号が出力される。また、図14のスロットテーブルより、時刻T3007は親局10が信号を送信する時刻であるため、親局10の送受信制御部132は、変調処理部134へ信号の送信指示を出力する。送信指示を受けた変調処理部134は、駆動制御信号を変調処理し、駆動データとして親局10へ送信する。同様に時刻T3008、時刻T3009、時刻T3010においても、送受信制御部132は、送信指示を変調処理部134へ出力する。以上の送信順序により、下りの信号送信においてもむだな時間を最小化することができる。
【0109】
ここで駆動制御信号には、実施形態1と同様、駆動タイミング信号生成部107が生成する駆動タイミング信号が付加される。駆動タイミング信号生成部107は、各モータが同期して駆動可能な最短の駆動タイミングを算出し、その時刻情報を含む駆動タイミング信号を生成する。駆動タイミング信号の生成方法については実施形態1と同様であるため、詳細については省略する。
【0110】
各子局の復調処理部215は受信信号に復調処理を施す。そして復調後の駆動制御信号が自局宛である場合は、当該信号を駆動準備部205へ出力する。また駆動制御信号に付加された駆動タイミング信号を駆動制御部204へ出力する。駆動準備部205は入力された駆動制御信号に対し、所定の駆動準備を実行することで駆動信号を生成し、駆動信号記憶部206へ出力する。駆動信号記憶部206は、駆動準備部205が生成した駆動信号を、駆動制御部204からの出力指示があるまで一時的にバッファする。
【0111】
時刻T3011は、各子局がモータに対して駆動信号を出力する駆動タイミングである。駆動制御部204は、タイマ202の時刻と駆動タイミング信号に含まれる時刻が一致すると、駆動信号記憶部206へ出力指示を出す。ここで駆動タイミング信号に含まれる時刻は、子局B30の駆動準備完了時刻と同一である。ゆえに図15に示すように、子局B30の駆動準備が完了すると同時に、駆動信号の出力が行われるように駆動タイミング信号の内容が決定される。
【0112】
以上に示した送信順序及び駆動タイミング設定を行うことにより、親局及び子局がマルチドロップ接続され、各子局の検出処理時間と駆動準備時間の少なくとも一方が同一でない場合であっても、むだな時間を最小化することができる。
【0113】
なお、実施形態1から実施形態3のロボットシステムにおいて、各子局はセンサとアクチュエータの両方を具備する構成であったが、これに限らない。例えば、センサのみを具備する子局が存在しても良いし、逆にアクチュエータのみを具備する子局が存在しても良い。また、実施形態1から実施形態3のロボットシステムで示した方法以外で、伝送遅延時間を把握しても良い。例えば伝送遅延時間が既知の場合は、事前にその値をメモリに記憶しておき、それを読み出す方法を用いてもよい。
【0114】
また、実施形態1から実施形態3のロボットシステムで示した方法以外で、検出処理時間及び駆動遅延時間を把握しても良い。例えば親局側にセンサ、アクチュエータの種別と、その種別における検出処理時間、駆動準備時間の対応表を事前に持たせておく。そして子局が自局に接続されたセンサやアクチュエータの種別情報を親局へ送信し、親局はその情報から各子局の検出処理時間、及び駆動準備時間を推定する、といった方法を用いても良い。これにより、同様のセンサやアクチュエータを多く備えるロボットシステムにおいて、それぞれのセンサやアクチュエータがそれぞれ検出処理時間や駆動準備時間を計測して通知する必要がなくなるため、全体の処理量を削減することができる。
【0115】
また、実施形態1〜実施形態3ではロボットシステムを例に説明したが、本発明はこれに限らず、自動機等の各種産業機器や紙媒体への印字等を行う事務機、自動車といった駆動部位の動作をフィードバック制御で実行する制御システム全般に適用される。
【0116】
<<その他の実施形態>>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
外部環境情報を検出する複数の検出装置および所定の動作を実行する複数の駆動装置と、前記複数の検出装置および前記複数の駆動装置と通信を行う制御装置とを含む通信システムであって、
前記制御装置は、
前記複数の検出装置のそれぞれが外部環境情報の検出および検出した情報を送信するための信号の生成に要する検出処理時間と、前記複数の駆動装置のそれぞれが信号を受信して当該信号に応じて前記動作を実行できる状態となるまでの駆動準備時間と、前記複数の検出装置および前記複数の駆動装置のそれぞれと前記制御装置との信号の伝送に要する伝送遅延とを取得する取得手段と、
前記複数の検出装置のそれぞれについての前記検出処理時間と前記伝送遅延とに基づいて、前記複数の検出装置が前記制御装置へ信号を送信する順序を決定し、前記複数の駆動装置のそれぞれについての駆動準備時間と前記伝送遅延とに基づいて、前記制御装置が前記複数の駆動装置を制御するための信号を当該複数の駆動装置へ送信する順序を決定する決定手段と、
決定した前記複数の検出装置が前記制御装置へ信号を送信する順序の情報を前記複数の検出装置へ送信し、前記制御装置が前記複数の駆動装置へ信号を送信する順序に基づいて当該複数の駆動装置を制御する信号を送信する送信手段と、
前記複数の検出装置から前記検出した情報を含む信号を受信する受信手段と、
を有し、
前記複数の検出装置は、
前記制御装置から、当該制御装置へ信号を送信する順序の情報を受信する受信手段と、
受信した順序の情報に基づいて、検出した情報から生成された信号を前記制御装置へ送信する送信手段と、
を有し、
前記複数の駆動装置は、
自らの制御のための信号を前記制御装置から受信する受信手段を有する、
ことを特徴とする通信システム。
【請求項2】
前記検出装置と前記制御装置とは、1つの装置に含まれることを特徴とする請求項1に記載の通信システム。
【請求項3】
通信を介して所定の動作を実行する複数の駆動装置を制御する制御装置であって、
前記複数の駆動装置のそれぞれが信号を受信して当該信号に応じて前記動作を実行できる状態となるまでの駆動準備時間と、前記複数の駆動装置のそれぞれと前記制御装置との信号の伝送に要する伝送遅延とを取得する取得手段と、
前記駆動準備時間と前記伝送遅延とに基づいて、前記複数の駆動装置を制御するための信号を当該複数の駆動装置へ送信する順序を決定する決定手段と、
決定した前記順序に基づいて、前記複数の駆動装置へ前記信号を送信する送信手段と、
を有することを特徴とする制御装置。
【請求項4】
前記決定手段は、前記複数の駆動装置のうち、前記駆動準備時間と前記伝送遅延との和が大きい駆動装置への信号から順に送信するように前記順序を決定することを特徴とする請求項3に記載の制御装置。
【請求項5】
前記複数の駆動装置のそれぞれから、前記駆動準備時間に関する情報を受信する受信手段をさらに備える請求項3または4に記載の制御装置。
【請求項6】
前記駆動準備時間に関する情報は、前記複数の駆動装置の種別に関する情報であることを特徴とする請求項5に記載の制御装置。
【請求項7】
外部環境情報を検出する複数の検出装置と通信を行う通信装置であって、
前記複数の検出装置のそれぞれが外部環境情報の検出および検出した情報を送信するための信号の生成に要する検出処理時間と、前記複数の検出装置のそれぞれと前記通信装置との信号の伝送に要する伝送遅延とを取得する取得手段と、
前記複数の検出装置のそれぞれについての前記検出処理時間と前記伝送遅延とに基づいて、前記複数の検出装置が前記通信装置へ信号を送信する順序を決定する決定手段と、
決定した前記順序の情報を前記複数の検出装置へ送信する送信手段と、
前記複数の検出装置から、当該複数の検出装置が検出した情報を含む信号を受信する受信手段と、
を有することを特徴とする通信装置。
【請求項8】
前記決定手段は、前記複数の検出装置のうち、前記検出処理時間と前記伝送遅延との和が小さい検出装置から順に信号を送信するように前記順序を決定する請求項7に記載の通信装置。
【請求項9】
前記受信手段は、前記複数の検出装置のそれぞれから、前記検出処理時間に関する情報を受信することを特徴とする請求項7または8に記載の通信装置。
【請求項10】
前記順序の情報は、前記複数の検出装置のそれぞれが信号を送信するタイミングに関する情報であることを特徴とする請求項7から9のいずれか1項に記載の通信装置。
【請求項11】
通信を介して所定の動作を実行する複数の駆動装置を制御する制御装置における制御方法であって、
取得手段が、前記複数の駆動装置のそれぞれが信号を受信して当該信号に応じて前記動作を実行できる状態となるまでの駆動準備時間と、前記複数の駆動装置のそれぞれと前記制御装置との信号の伝送に要する伝送遅延とを取得する取得工程と、
決定手段が、前記駆動準備時間と前記伝送遅延とに基づいて、前記複数の駆動装置を制御するための信号を当該複数の駆動装置へ送信する順序を決定する決定工程と、
送信手段が、決定した前記順序に基づいて、前記複数の駆動装置へ前記信号を送信する送信工程と、
を有することを特徴とする制御方法。
【請求項12】
外部環境情報を検出する複数の検出装置と通信を行う通信装置における通信方法であって、
取得手段が、前記複数の検出装置のそれぞれが情報の検出および検出した情報を送信するための信号の生成に要する検出処理時間と、前記複数の検出装置のそれぞれと前記通信装置との信号の伝送に要する伝送遅延とを取得する取得工程と、
決定手段が、前記複数の検出装置のそれぞれについての前記検出処理時間と前記伝送遅延とに基づいて、前記複数の検出装置が前記通信装置へ信号を送信する順序を決定する決定工程と、
送信手段が、決定した前記順序の情報を前記複数の検出装置へ送信する送信工程と、
受信手段が、前記複数の検出装置から、当該複数の検出装置が検出した情報を含む信号を受信する受信工程と、
を有することを特徴とする通信方法。
【請求項13】
コンピュータを請求項3から6のいずれか1項に記載の制御装置が備える各手段として機能させるためのプログラム。
【請求項14】
コンピュータを請求項7から10のいずれか1項に記載の通信装置が備える各手段として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2013−84111(P2013−84111A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2011−223452(P2011−223452)
【出願日】平成23年10月7日(2011.10.7)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】