以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
<<実施形態1>>
(通信システムの構成)
図1は、本発明を適用するロボットシステムにおける通信システムの構成を示す図である。本実施形態では、親局10と複数の子局A20〜C40が縦続接続されて通信システムを構成する。なお、以下の説明では、任意の子局A20〜C40から見て、親局10に近い子局を上位局、親局に遠い子局を下位局と呼ぶこととする。すなわち、子局B30においては、子局A20は上位局であり、子局C40は下位局である。
親局10は、子局A20〜C40に対してモータ制御情報を送信する。親局10は子局接続コネクタ11を備え、その子局接続コネクタ11は、最上位の子局である子局A20の上位局接続コネクタ21へ接続される。子局A20、子局B30は、ロボットシステムの構成要素である関節モジュールであり、子局C40、子局D50はロボットシステム用のエンドエフェクタである。本実施形態のロボットシステムは作業内容に応じて、人手を介さず自律的にエンドエフェクタの交換、すなわち、例えば子局C40と子局D50との交換が行われる。なお、この交換により、通信システムの構成も当然に変化する。子局A20〜D50は、上位局接続コネクタ21〜51と下位局接続コネクタ22〜32を備え、これらを用いて上位局・下位局と接続してネットワークを形成する。なお、子局C40と子局D50とは、エンドエフェクタであり、それよりも下位の子局がないため、下位局接続コネクタを備えていないが、必要に応じてこれを備えるようにしてもよい。また、子局A20〜D50には、関節を曲げるためのモータ23〜53及び55、関節の曲げ角度を検出するための角度センサ24〜54が接続される。
親局10が送信するモータ制御情報は、例えばモータ23〜53及び55に印加する電圧値を含んでもよい。子局A20〜D50は、モータ制御情報に基づいてモータ23〜53及び55を駆動する。また、子局A20〜D50は、角度センサ24〜54から関節の曲げ角度を取得し、その取得した角度の情報を角度情報として親局10に送信する。親局10は、受信した角度情報に応じて次のモータ制御情報を生成する。本実施形態では、このような通信、及びモータ制御を一定周期毎に行うことで、システム全体のフィードバック制御を行う。
(親局の構成)
図2は、本実施形態の親局10の内部構成を示す図である。親局10は、例えば、モータ制御情報生成部101、スロット情報生成部102、同期情報生成部103、保守情報要求生成部104、スロット情報記憶部110、送信停止局判断部111、及びスロット情報書き換え部112を備える。また、親局10は、例えば、さらにセレクタ105、送信部106、子局接続コネクタ107、受信部108、カウンタ109、送受信制御部113、及び子局保守部114を備える。
モータ制御情報生成部101は、システム動作に応じて、子局のモータを制御するためのモータ制御情報を生成する。また、モータ制御情報生成部101は、システム動作時に子局A20〜C40から受信した角度情報に応じて、次のモータ制御情報を生成する。スロット情報生成部102は、エンドエフェクタの交換を行った場合、交換されたエンドエフェクタに応じて時分割通信で用いるスロット情報を生成する。なお、スロット情報の生成は、ロボットシステムを起動したとき、又はロボットシステムをリセットしたときなどに行われてもよい。なおスロット情報に固有の識別子を付与することにより、子局は、スロット情報を伝送するスロットの位置を知らなくても、その識別子に基づいてスロット情報を取得できる。スロットの配置などについては後述する。
同期情報生成部103は、現在のフレーム番号や、親局と子局との間の同期を行うために使用する同期信号を含む同期情報を生成する。フレームの構成などについては後述する。同期情報は親局から子局A20〜C40へフレーム毎に送信され、子局はその同期情報を用いて親局10と同期を行い、時分割で通信を行う。保守情報要求生成部104は、後述する保守情報を要求するデータである保守情報要求を生成する。なお保守情報要求は、モータ制御情報、角度情報とは異なり、厳密な等時性は要求されない非等時性情報である。セレクタ105は後述する送受信制御部113の制御に基づき、上述したモータ制御情報、スロット情報、同期情報、及び保守情報要求のいずれかを選択し、出力する。
送信部106は後述する送受信制御部113の制御に基づき、セレクタ105から出力されたモータ制御情報、スロット情報、同期情報、又は保守情報要求のデータに誤り検出符号化処理及び変調処理を施して通信信号として、子局A20〜C40に送信する。受信部108は後述する送受信制御部113の制御に基づき、子局A20〜C40から受信した通信信号に誤り検出復号化処理及び復調処理を施し、角度情報や保守情報を取得する。親局10は子局接続コネクタ107により子局A20と接続され、子局接続コネクタ107を介して子局A20〜C40との信号の送受信を行う。
カウンタ109は、フレーム番号及びスロット番号をカウントし、現在のフレーム番号及びスロット番号の情報を含むカウント信号を出力する。スロット情報記憶部110はスロット情報生成部102が生成したスロット情報を、内蔵するテーブル(以後、スロットテーブル)として記憶して保持する。送信停止局判断部111は、カウンタ109のカウント信号に基づき、子局から送信される信号を検出し、その検出結果とスロット情報記憶部110に保持されるスロットテーブルとを比較することで、子局の送信動作が正常に行われているか否かを判断する。例えば、送信停止局判断部111は、送信用に割り当てたスロットにおいて信号の送信を行っていない子局を検出した場合は、その子局を送信停止局と判断し、送信停止局検出信号を出力する。送信停止局判断部111は、スロット情報の通りに通信が行われているかを監視することにより、使用されるべきスロット情報を子局が保持しているかを判定することができる。
スロット情報書き換え部112は、送信停止局検出信号が入力されると、その送信停止局から親局へ情報を送信するスロット、又は親局からその送信停止局へ情報を送信するスロットを、スロット情報記憶部110に記憶されたスロットテーブルから探索する。そして、探索により発見されたスロットのうち、現スロット以降で一番近い時間に対応するものをスロット情報の再送用スロット(以後、「スロット情報再送用スロット」と呼ぶ)と決定する。そして、決定されたスロット情報再送用スロットによりスロット情報記憶部110のスロットテーブルを書き換える。なお、スロット情報の伝送に必要なスロット数が複数ある場合は、それらの全てに対応するスロット情報再送用スロットを決定してスロットテーブルの書き換えを行う。すなわち、スロット情報書き換え部112は、送信停止局は正しいスロット情報を保持していないため、正しいスロット情報を送信停止局に送信するため、できるだけ早い時間スロットにスロット情報再送用スロットを設ける。
送受信制御部113は、スロット情報記憶部110が保持するスロット情報と、カウンタ109からのカウント値に基づいて、セレクタ105、送信部106、受信部108のそれぞれについて動作制御を行う。子局保守部114は、子局から送信される後述する保守情報を元に、各子局の寿命/異常等を診断、保守を行う。
(子局の構成)
続いて、本実施形態の子局A20〜D50の構成について説明する。図3は、子局A20の内部構成を示す図である。子局A20は、例えば、角度情報生成部201、保守情報生成部202、スロット情報記憶部209、及びスロット情報設定部210を備える。また、子局A20は、例えば、さらにセレクタ203、送信部204、上位局接続コネクタ205、下位局接続コネクタ206、受信部207、カウンタ208、送受信制御部211、及びモータ駆動部212を備える。
角度情報生成部201は、外部に接続された角度センサ24から曲げ角度を取得し、角度情報を生成する。保守情報生成部202は、親局10から送信される保守情報要求を受信すると、自局の稼働時間や磨耗度等を示す保守情報を生成する。保守情報は、保守情報要求と同様に、厳密な等時性は要求されない非等時性情報である。セレクタ203は後述する送受信制御部211の制御に基づき、上述した角度情報、保守情報のいずれかを選択して出力する。送信部204は、後述する送受信制御部211の制御に基づき、セレクタ203から出力された角度情報又は保守情報に誤り検出符号化処理と変調処理を施し、通信信号として親局10に送信する。受信部207は後述する送受信制御部211の制御に基づき、親局10から受信した通信信号に誤り検出復号化処理と復調処理を施し、モータ制御情報、同期情報、スロット情報、又は保守情報要求を取得する。
子局A20は、上位局接続コネクタ205により親局10と接続され、上位局接続コネクタ205を介して親局10と信号の送受信を行う。同様に、子局A20は、下位局接続コネクタ206により子局B30と接続され、下位局接続コネクタ206を介して子局B30との間の信号の送受信を行う。
カウンタ208は、フレーム番号及びスロット番号をカウントし、カウント信号を出力する。スロット情報記憶部209は後述するスロット情報設定部210が出力するスロット情報をスロットテーブルとして記憶し、保持する。スロットテーブルはスロット情報設定部210がスロット情報を出力するごとに書き換えられる。スロット情報設定部210は、スロット情報の取得が正常に行われたか否かを判断し、もし正常に行われた場合は、取得したスロット情報をそのままスロット情報記憶部209へ書き込む。しかし、もし正常に行われなかった場合は、現スロット以降の全スロットを受信スロットとする異常用スロット情報をスロット情報記憶部209へ書き込む。なおこの動作はスロット情報が入力される度に実行される。
送受信制御部211は、スロット情報記憶部209が保持するスロットテーブルと、カウンタ208からのカウント信号に基づいて、セレクタ203、送信部204、及び受信部207のそれぞれについて動作制御を行う。モータ駆動部212は、親局10から送信されるモータ制御情報に応じて、外部に接続されたモータ23を駆動させる。子局B30の内部構成及び動作は、子局A20と同様である。また子局C40も、下位局接続コネクタを所持しないこと以外は子局A20と同様であるため、詳細な説明を省略する。
(スロット割当動作)
続いて本実施形態の時分割通信のためのスロット割当動作について詳細に説明する。
[正常時の動作]
まず正常にスロット割当が行われた場合の動作(以後、正常動作)について示す。なお、以下の説明では、親局10から子局A20〜C40へ、また子局A20〜C40から親局10への信号の送信における、伝送遅延は十分に小さいものとする。
図4Aは、本実施形態において正常動作時のフレーム構成を示す図である。図4Aに示すようにスーパーフレームは、スーパーフレームの1/Nの一定時間幅を有するN個のフレームから構成されており、またフレーム内は一定時間幅のM個(本実施形態では10個)のスロットに区切られている。本実施形態のロボットシステムでは、エンドエフェクタの種類により必要とする情報量が異なるため、エンドエフェクタに応じてスロット割当も異なる。このため、エンドエフェクタの交換を行った場合に、交換されたエンドエフェクタに応じてスロット割当の変更が行われる。なお、以下の動作説明では、前スーパーフレームにおいて、子局C50から子局C40のエンドエフェクタへ交換されたものとする。なお、図の各スロットにおいて、「T」は信号を送信することを、そして「R」は信号を受信することを、それぞれ示す。
親局10は、時刻T1(前スーパーフレームの最終スロット)において、エンドエフェクタである子局C40が接続された場合のスロット情報である図5Aを、子局A20〜C40へ送信する。図5Aのスロット情報を見ると、スロット番号0は、親局10から子局A20〜C40への同期情報の送信に割り当てられている。またスロット番号1〜3は、子局A20〜C40から親局10への角度情報の送信に割り当てられている。スロット番号4〜6は、親局10から子局A20〜C40へのモータ制御情報の送信に割り当てられている。またフレーム番号1〜N−1のスロット番号7〜9とフレーム番号Nのスロット番号7〜8は、ランダムアクセス用のスロットとされている。上述の保守情報要求及び保守情報といった非等時性情報は、ランダムアクセス用スロットを用いて伝送される。送信すべき非等時性情報が発生した端局は、ランダムアクセス用スロットにてCSMA/CDやCSMA/CA方式、スロッテッドアロハ方式など、公知の送信制御によって送信権を確保して情報を送信する。またフレーム番号Nのスロット番号9は、親局10から子局A20〜C40へのスロット情報の送信に割り当てられている。このスロットを用いて、次のスーパーフレームのスロット割当を送信する。
なお図5Aのスロット情報は説明の便宜上、全フレームのスロット情報が記述される形で示しているが、当然圧縮して伝送しても良い。例えば図5Aでは、事前にフレーム番号Nのスロット番号9はスロット情報伝送用スロットであると規定しておけば、1フレームあたりのスロット割当の情報とフレーム数Nの情報とを送信するのみで、図5Aのスロット情報を通知することができる。またフレーム数Nの値は、固定であってもよいし可変であってもよい。例えば予測制御を用いたロボットシステムであれば、エンドエフェクタの交換がしばらく行われない場合はNの値を大きめに、エンドエフェクタの交換が近々に行われる場合はNの値を小さめに設定することができる。以上のようにスロット情報を圧縮すると共にNの値を動的に設定することで、スロット情報の伝送に必要な通信リソースを必要最小限に抑えることができ、ひいては伝送帯域を有効利用することができる。
次に図4Aの時刻T1(前スーパーフレームの最終スロット)における各端局の動作について説明する。時刻T1においては、親局10の送信部106は、スロット情報を変調した通信信号を子局A20〜C40へ送信する。また時刻T1においては、親局10では、スロット情報記憶部110に記憶されたスロットテーブルが、子局A20〜C40へ送信されたスロット情報と同じものに更新される。
子局A20の受信部207は、受信した通信信号を復調し、スロット情報及び誤り検出結果をスロット情報設定部210へ出力する。スロット情報設定部210は、スロット情報及び誤り検出結果が入力されると、そのスロット情報と誤り検出結果に基づいて、スロット情報記憶部209へ出力するスロット情報を決定する。出力するスロット情報の決定処理について、図6を用いて説明する。なおスロット情報設定部210は、スロット情報設定部210へスロット情報及び誤り検出結果が入力されるたびに、本処理を実行する。また、子局B30、子局C40も同様の処理を実行する。
処理が開始されると、スロット情報設定部210は受信部207からの誤り検出結果を確認し、スロット情報の取得が正常に行われたか否かを判断する(S61)。スロット情報の取得が正常に行われた場合(S61でYes)、正常に取得したスロット情報をそのままスロット情報記憶部209に書き込む(S62)。一方、スロット情報の取得が正常に行われなかった場合(S61でNo)、異常用スロット情報をスロット情報記憶部209に書き込む(S63)。なお、ここでは、上述の通り、子局A20〜C40においてスロット情報が正常に取得された(S61でYes)場合、すなわち正常動作の場合について説明している。この場合は、時刻T1において、親局10および子局A20〜C40のスロット情報記憶部209は、図5Aに示すスロット情報をスロットテーブルに保持することになる。
続いて時刻T2(フレーム番号1、スロット番号0)における親局10及び子局A20〜C40の動作について説明する。親局10の送信停止局判断部111は1スロット毎に、子局A20〜C40の送信動作が正常に行われているか否かを判断する。その判断処理について、図7を用いて説明する。
判断処理が開始されると、送信停止局判断部111は、現在のスロット(以後、現スロット)で送信を行う子局が存在するか否かを、カウンタ109からのカウント信号と、スロット情報記憶部110が保持するスロットテーブルから判定する(S71)。例えば、時刻T2(フレーム番号1、スロット番号0)では、親局10が送信を行うため、送信を行う子局は存在しないと判定する(S71でNo)。送信を行う子局が存在しない場合(S71でNo)、判断処理を終了する。一方、例えば時刻T3(フレーム番号1、スロット番号1)では子局A20が送信を行うため、「現スロットで送信を行う子局が存在する」と判定される(S71でYes)。現スロットで送信を行う子局が存在する場合(S71でYes)、その子局が送信動作を停止している送信停止局か否かを判断する(S72)。すなわち、現スロットで送信を行う子局が、正しいスロット情報を保持しているかを判定する。ここで現スロットで送信を行う子局が送信停止局であるか否かの判断は、例えば現スロットにおける信号の受信電力を検知することによって行われる。現スロットの受信電力が閾値以上であれば、その子局は送信動作を行っており、送信停止局ではないと判断し(S72でNo)、処理を終了する。一方、現スロットの受信電力が閾値より小さい場合、その子局は送信動作を行っていない送信停止局であると判断する(S72でYes)。すなわち、その子局は、正しいスロット情報を保持していないと判定する。この場合、送信停止局判断部111は、送信停止局検出信号をスロット情報書き換え部112へ出力し(S73)、処理を終了する。
なお、時刻T2においては、親局10が送信を行うため、送信を行う子局は存在しないと判定し(S71でNo)、送信停止局検出信号を出力することなく判断処理を終了する。
そして、親局10の送受信制御部113は、スロット情報記憶部110が保持するスロットテーブルに基づいて、セレクタ105及び送信部106を制御して、同期情報を送信する。子局A20の送受信制御部211も、親局10と同様、スロット情報記憶部209が保持するスロットテーブルに基づいて受信部207を制御して、同期情報を受信する。子局B30、子局C40の送受信制御部についても子局A20と同様の動作を行う。
続いて時刻T3(フレーム番号1、スロット番号1)における各端局の動作について説明する。親局10の送信停止局判断部111は時刻T2と同様に、図7に示す判断処理を行う。処理においては、上述のように、時刻T3では子局A20が送信を行うため、「現スロットで送信を行う子局が存在する」と判定する(S71でYes)。ここで、本説明では、子局A20は時刻T3において正常に信号を送信しており、送信停止局ではない(S72でNo)。このため、親局10は、判断処理を終了する。
したがって、親局10及び子局A20〜C40は、時刻T2と同様に、それぞれのスロット情報記憶部に保持されたスロットテーブルに基づいて、信号の送受信動作を行うために、それぞれのセレクタ及び送信部、又は受信部のいずれかを制御する。
以上の動作を1スロット毎に繰り返し行うことにより、図5Aに示すスロット情報に従ったフレーム構成(図4A)を形成し、情報の送受信が行われる。
[異常時の動作]
次に、スロット情報の取得が正常に行われなかった場合の動作(以後、異常動作)について説明する。図4Bは、子局A20においてスロット情報が正常に受信されずに異常動作となった時のフレーム構成である。
時刻T4(前スーパーフレームの最終スロット)において、親局10は上述の正常動作時と同様に、図5Aに示すスロット情報を変調した通信信号を子局A20〜C40へ送信する。また時刻T4において、親局10では、スロット情報記憶部110に記憶されたスロットテーブルが、子局A20〜C40へ送信されたスロット情報と同じものに更新される。
ここで、時刻T4において、子局A20との間の伝送経路において伝送誤りが生じ、スロット情報の取得が正常に行われなかったとする。子局A20の受信部207は、受信した通信信号を復調し、スロット情報及び誤り検出結果をスロット情報設定部210へ出力する。スロット情報設定部210は、上述したようにスロット情報及び誤り検出結果が入力されると、図6に示す出力するスロット情報の決定処理を実行する。ここではスロット情報の取得は正常に行われなかったため(S61でNo)、事前に規定された全スロットを受信スロットに設定する異常用スロット情報を、スロット情報記憶部209へ書き込む(S63)。
図5Cに異常用スロット情報の例を示す。図中のMAXとは、設定できる最大のフレーム数である。この最大のフレーム数は、スーパーフレームに含まれるフレームの数が固定されている場合は、その固定値であってもよい。図5Cに示されるように、異常用スロット情報は、送信局や伝送される情報は不定であるが、スロット情報の受信に失敗した子局が常に受信状態であることを規定するスロット情報である。すなわち、スロット情報記憶部209に異常用スロット情報が書き込まれた子局は、異常用スロット情報が書き込まれている期間は信号の送信を行わなくなるため、送信停止局となる。すなわち、本例において、子局A20は送信停止局となる。
一方、子局B30、子局C40では、スロット情報の取得が正常に行われたとする。この場合、子局B30、子局C40のスロット情報記憶部209は、図5Aに示すスロット情報をスロットテーブルに保持する。つまり、時刻T4において、親局10および子局B30、子局C40のスロット情報記憶部は図5Aに示すスロット情報を、子局A20は図5Cに示す異常用スロット情報をスロットテーブルに保持することになる。
続いて時刻T5(フレーム番号1、スロット番号0)における動作について説明する。子局A20の送受信制御部211は、スロット情報記憶部209が保持するスロットテーブルに基づいて、セレクタ203、送信部204、受信部207の制御を行う。ここでスロットテーブルには図5Cが書き込まれているため、送受信制御部211は、現スロットは受信スロットであると判断し、受信を行うように受信部207を制御する。親局10及び子局B30、子局C40の動作は、正常動作時の時刻T2で説明した動作と同等であるため、詳細については割愛する。
続いて時刻T6(フレーム番号1、スロット番号1)における動作について説明する。親局10の送信停止局判断部111は、上述のように、図7に示す判断処理を行う。判断処理では、時刻T6のスロットで子局A20が送信を行うため(S71でYes)、S72に処理を進める。そして、現スロットで送信を行う子局A20が、送信動作を停止する送信停止局か否かを判断する(S72)。ここで子局A20は送信停止局であるため(S72でYes)、送信停止局判断部111は、送信停止局検出信号をスロット情報書き換え部112へ出力する(S73)。
スロット情報書き換え部112は、送信停止局検出信号が入力されると、スロット情報記憶部110のスロットテーブルから、送信停止局(子局A20)から親局10へ情報を送信するスロット、又は親局10が送信停止局へ情報を送信するスロットを抽出する。そして、抽出されたスロットの中から現スロットより後で最も早く送受信されるスロットを、スロット情報再送用スロットに用いるようにスロットテーブルを書き換える。図5Aでは、まず、フレーム番号1のスロット番号1と4、フレーム番号2のスロット番号1などが抽出される。そして、抽出されたスロットの中から、現スロットであるフレーム番号1のスロット番号1より後で、最も早く送受信が行われるスロットとして、フレーム番号1のスロット番号4のスロットが特定される。このため、スロット情報書き換え部112は、その特定されたスロットをスロット情報再送用スロットに書き換える。以上のようにして、正しいスロット情報を保持していない子局A20を検出し、そのスロット情報を再送信するためのスロット情報再送用スロットを設ける。書き換え後のスロットテーブルを図5Bに示す。
次に、時刻T7(フレーム番号1、スロット番号4)における動作について説明する。親局10の送受信制御部113は、スロット情報記憶部110が保持するスロットテーブルに基づいて、セレクタ105、送信部106、受信部108の制御を行う。この際スロットテーブルには、上述したように図5Bが書き込まれているため、時刻T7では、スロット情報が子局A20へ送信される。なお、ここで送信するスロット情報は時刻T4で送信したスロット情報(図5A)と同様のものである。
子局A20は、全てのスロットにおいて受信状態となるスロット情報(図5C)に基づいて動作しているため、親局10から送信されたスロット情報を受信することができる。なお、上述のようにスロット情報に固有の識別子を付与することにより、子局A20の受信部207は、識別子を確認することで受信した情報がスロット情報であると認識することができる。その結果、受信したスロット情報及び誤り検出結果はスロット情報設定部210へ出力される。ここではスロット情報の取得が正常に行われたとすると、スロット情報記憶部209のスロットテーブルに図5Aのスロット情報が書き込まれる。したがって、子局A20は時刻T8より後のスロットでは、正常な送受信制御を行うことができるようになる。
なお上記実施形態ではスロット情報は1スロットで伝送されるものとして説明を行ったが、1スロット以上を用いて伝送を行っても良い。図8はスロット情報を2スロットで伝送する場合のフレーム構成である。図8Aは、正常動作時のフレーム構成であり、図8Bは、子局A20がスロット情報の取得を正常に行えなかった異常動作時のフレーム構成である。スロット情報は、時刻T10、T11または時刻T12、T13(前スーパーフレームの最終2スロット)にて、親局10から子局A20〜C40へ送信される。このとき送信されるスロット情報を図9Aに示す。図9Aに示す通り、本例においては、スロット情報が、スロット情報1とスロット情報2として2スロットを用いて伝送される。正常動作については、これ以外の動作についてはスロット情報を1スロットで伝送する場合の動作と同等であるため、詳細な説明については省略する。
異常動作について図8Bを用いて説明を行う。初めに時刻T12、T13(前スーパーフレームの最終2スロット)における親局10及び子局A20〜C40の動作について説明する。親局10の送信部106は、図9Aに示したスロット情報をスロット情報1及びスロット情報2の2つに分割し、それぞれ変調した通信信号を、2スロットを用いて子局A20〜C40へ送信する。
子局A20の受信部207は、受信した通信信号を復調し、2スロットに分割されたスロット情報1及びスロット情報2を結合して、スロット情報及び誤り検出結果をスロット情報設定部210へ出力する。ここで、スロット情報の取得は正常に行われなかったものとする。この場合、子局A20のスロット情報設定部210は、異常用スロット情報(図5C)をスロット情報記憶部209へ書き込む。これにより、子局A20は送信停止局となる。一方、子局B30と子局C40ではスロット情報の取得が正常に行われ、子局B30と子局C40のスロット情報記憶部209は、図9Aに示すスロット情報をスロットテーブルに保持する。このように、時刻T13において、親局10および子局B30、子局C40では図9Aに示すスロット情報を、子局A20では図5Cに示す異常用スロット情報が、スロットテーブルとしてスロット情報記憶部に保持されることになる。
次に時刻T14(フレーム番号1、スロット番号1)における親局10の動作について説明する。親局10の送信停止局判断部111は上述したように1スロット毎に、図7に示す判断処理を行う。ここで子局A20は上述したように送信停止局になっている。このため、送信停止局判断部111は、送信停止局検出信号をスロット情報書き換え部112へ出力する。スロット情報書き換え部112は、送信停止局検出信号が入力されると、スロット情報記憶部110のスロットテーブルから、送信停止局(子局A20)から親局へ情報を送信するスロット、又は親局が送信停止局へ情報を送信するスロットを抽出する。そして抽出されたスロットの中から現スロットより後に、最も早く送受信が行われるスロットとその次には約送受信が行われるスロットを、スロット情報再送用スロットに用いるようにスロットテーブルを書き換える。図9Aでは、まず、フレーム番号1のスロット番号1と4、フレーム番号2のスロット番号1などが抽出される。そして、抽出されたスロットの中から、現スロットであるフレーム番号1のスロット番号1より後で、最も早く送受信が行われるスロットとして、フレーム番号1のスロット番号4のスロットが特定される。さらに、現スロットであるフレーム番号1のスロット番号1より後で、2番目に早く送受信が行われるスロットとして、フレーム番号2のスロット番号1のスロットが特定される。このため、スロット情報書き換え部112は、その特定されたスロットをスロット情報再送用スロットに書き換える。書き換え後のスロットテーブルを図9Bに示す。
次に時刻T15(フレーム番号1、スロット番号4)及び時刻T16(フレーム番号2、スロット番号1)における親局10及び子局A20〜C40の動作について説明する。親局10の送受信制御部113は、スロット情報記憶部110が保持するスロットテーブルに基づいて、セレクタ105、送信部106、受信部108の制御を行う。この場合、スロットテーブルには、上述したように図9Bで示されるスロット情報が書き込まれている。このため、時刻T15(フレーム番号1、スロット番号4)ではスロット情報1が、そして時刻T16(フレーム番号2、スロット番号1)ではスロット情報2が、それぞれ子局A20へ送信される。なおここで送信されるスロット情報は時刻T12、T13で送信したスロット情報(図9A)と同様のものである。
子局A20は、図5Cで示されるスロット情報が書き込まれたスロットテーブルに従って信号の受信を待ち受ける状態となっている。受信部207は、上述の識別子に基づいて、受信した情報がスロット情報であるかを判定し、スロット情報1及びスロット情報2の受信を確認する。受信部207は、スロット情報1及びスロット情報2を結合して得たスロット情報と誤り検出結果とを、スロット情報設定部210へ出力する。ここではスロット情報の取得が正常に行われたとすると、スロット情報記憶部209のスロットテーブルに図9Aのスロット情報が書き込まれる。これに応じて、子局A20は時刻T17より後のスロットでは、正常な送受信制御を行うことができるようになる。
なお、スロット情報1とスロット情報2の結合は、受信部207で行う必要はなく、例えばスロット情報設定部210で行ってもよい。また、例えば、スロット情報1には1フレーム目からN/2フレーム目の情報が含まれ、スロット情報2にはそれ以外の情報が含まれる場合、結合せずに、逐次的にスロット情報記憶部209のスロットテーブルを更新してもよい。また、スロット情報が3つ以上のスロットを用いて送信される場合も、上記と同様の処理を行ってもよい。
以上、各局の動作により、通信リソースを浪費せずに、スロット情報を送信し、かつスロット情報の取得を正常に行えなかった子局を早急にネットワークへ復帰させることができる。これにより、本実施形態のロボットシステムは、エンドエフェクタの交換を遅滞なくスムーズに行うことができる。また、ロボットシステムにおいて、スロット情報の取得を正常に行えなかった子局が存在しても、制御が不安定に陥ることがなく、高い生産性と信頼性を確保することができる。
なお、本実施形態でのスロット情報再送用スロットは、送信停止局に送信用として割り当てたスロット、もしくは親局が送信停止局へモータ制御情報を送信するために割り当てたスロットとした。しかし、親局の送信用スロットとして、毎回使用することはないが任意の情報を送信できる予備のスロット(以後、「予備スロット」と呼ぶ)が設けられている場合、その予備スロットをスロット情報再送用スロットとして用いても良い。この予備スロットは、例えば緊急時における緊急停止信号や、初期化をするためのリセット信号を伝送するためのスロットであってもよく、これらの信号が送信されないときに、スロット情報を送信するようにしてもよい。
また、本実施形態では非等時性情報を送信するためのランダムアクセス用スロットを設けたが、必ずしも設けなくてもよい。また本実施形態のスロット情報の伝送はスーパーフレーム毎に行ったが、これに限られず、エンドエフェクタの交換が行われた時のみ伝送するようにしてもよい。
<<実施形態2>>
実施形態1で説明した技術は、スロット情報の情報量がそれほど多くない場合に特に有効である。例えば実施形態1では、スロット情報が1スロットの場合では、送信停止局を1フレーム以内にネットワークに復帰させることができる。本実施形態では、スロット情報の情報量が多くなった場合にも柔軟かつ高速に送信停止局をネットワークに復帰させる方法を提案する。具体的には、本実施形態では、送信停止局に割り当てたスロットに加えて、ランダムアクセス用スロットを、スロット情報の再送用のスロットとして使用する。なお、本実施形態のロボットシステム全体の構成は、実施形態1と同様であるので、説明を省略する。
(親局の構成)
親局10の機能構成は、実施形態1に係る図2とほぼ同様であるため図示を省略する。ただし、本実施形態の親局10では、スロット情報書き換え部112に送信停止局検出信号が入力された時に抽出されるスロットが異なる。本実施形態のスロット情報書き換え部112は、送信停止局から親局10へ又は親局10から送信停止局へ信号を送信するスロットに加え、ランダムアクセス用スロットも抽出する。そして、その中から現スロットより後であって、送信停止局との間で最も早く送受信を行うことができる所定数のスロットを特定する。そして、スロット情報書き換え部112は、特定したスロットにおいてスロット情報を送信するように、スロットテーブルを書き換える。親局10の他の機能は実施形態1と同様である。
(子局の構成)
図10は本実施形態の子局A20の内部構成を示す図である。実施形態1の子局A20と同様の機能を果たすブロックについては、図3と同一の符号を付し、その説明については省略する。本実施形態では、子局A20は、さらに送信停止局判断部213と、スロット情報書き換え部214とを備える。これらの動作については、それぞれ、親局の送信停止局判断部111、及びスロット情報書き換え部112と同様である。
(スロット割当動作)
続いて本実施形態のスロット割当動作について詳細に説明する。図11は本実施形態における異常動作時のフレーム構成を示す図である。なお、正常動作時のフレーム構成や動作は図8Aの構成やそれに伴う動作と同様であるため、説明を省略する。
図11は、子局A20がスロット情報の取得を正常に行えなかった異常動作時のフレーム構成である。スロット情報は、時刻T20、T21(前スーパーフレームの最終2スロット)において、親局10から子局A20〜C40へ送信される。このとき送信されるスロット情報は、図9Aと同様である。具体的には、親局10の送信部106は、図9Aに示したスロット情報をスロット情報1及びスロット情報2の2つに分割し、それぞれ変調した通信信号を、2スロットを用いて子局A20〜C40へ送信する。また時刻T21では、スロット情報記憶部110は、スロット情報記憶部110に保持されるスロットテーブルを、子局A20〜C40へ送信するスロット情報と同じものに更新する。
子局A20の受信部207は、受信した通信信号を復調し、2スロットに分割されたスロット情報1及びスロット情報2を結合して、受信したスロット情報及び誤り検出結果をスロット情報設定部210へ出力する。本動作説明ではスロット情報の取得は正常に行われないため、スロット情報設定部210は、異常用スロット情報(図5C)をスロット情報記憶部209に書き込む。これにより、子局A20は送信停止局となる。一方、子局B30と子局C40ではスロット情報の取得は正常に行われ、子局B30と子局C40のスロット情報記憶部209は、図9Aで示されるスロット情報をスロットテーブルとして保持する。このようにして、時刻T23において、親局10および子局B30、子局C40のスロット情報記憶部は図9Aに示すスロット情報を、子局A20は図5Cに示す異常用スロット情報をスロットテーブルとして保持することになる。
次に時刻T22(フレーム番号1、スロット番号0)における親局10及び子局A20〜C40の動作について説明する。親局10の送信停止局判断部111は、実施形態1と同様に図7に示す判断処理を行う。時刻T22では、親局10が送信を行うため、送信を行う子局は存在しない。このため、送信停止局判断部111は何も行わずにフロー処理を終了する。本実施形態では、子局A20の送信停止局判断部213も同様に図7に示す判断処理を行う。子局A20のスロット情報記憶部209は、図5Cをスロットテーブルに保持している。したがって、送信局は不明であり、送信を行う子局が存在すると判断できないため、フローを終了する。また子局B30、C40の送信停止局判断部213もまた、親局10と同様の動作を行う。子局B30と子局C40は、現スロットで送信するのは親局10であることを知っている。このため、現スロットで送信を行う子局は存在しないと判断し、何も行わずフロー処理を終了する。
次に時刻T23(フレーム番号1、スロット番号1)における各端局の動作について説明する。親局10の送信停止局判断部111はまた図7に示す判断処理を行う。この場合は、現スロットで送信する子局(子局A20)が存在するが、その子局A20は上述したように送信停止局になっている。このため、送信停止局判断部111は、送信停止局検出信号をスロット情報書き換え部112へ出力する。
スロット情報書き換え部112は、送信停止局検出信号が入力されると、まずスロット情報記憶部110のスロットテーブルから、送信停止局から親局へ、もしくは親局から送信停止局へ情報を送信するスロット、又はランダムアクセス用スロットを抽出する。そして、抽出されたスロットの中から現スロットより後に送受信するスロットで最も早く送受信が実行できる2スロットを、スロット情報伝送用スロットに用いるようにスロット情報記憶部110のスロットテーブルを書き換える。本実施形態では、まず、フレーム番号1のスロット番号4と7から9、及びフレーム番号2のスロット番号1などのスロットが抽出される。そして、その中から、最も早く送受信をすることが可能となる2スロットを選択する。この場合、フレーム番号1のスロット番号4及びフレーム番号1のスロット番号7のスロットが選択される。そこで選択されたスロットを、スロット情報伝送用スロットに書き換える。書き換え後のスロットテーブルを図12に示す。
子局A20の送信停止局判断部213もまた図7に示す判断処理を行うが、時刻T22と同様に送信局が不明であるため、何もせずに判断処理のフローを終了する。子局B30と子局C40の送信停止局判断部213及びスロット情報書き換え部214も、親局10と同様の動作を行い、スロット情報記憶部209が保持するスロットテーブルを図12の内容に書き換える。
次に時刻T24(フレーム番号1、スロット番号4)及び時刻T25(フレーム番号1、スロット番号7)における各端局の動作について説明する。親局10の送受信制御部113は、スロット情報記憶部110が保持するスロットテーブルに基づいて、セレクタ105、送信部106、受信部108の制御を行う。このとき、スロットテーブルには、上述したように図12のスロット情報が書き込まれているため、時刻T24ではスロット情報1を、時刻T25では、スロット情報2の送信が行われる。なおここで送信するスロット情報は時刻T20、T21で送信したスロット情報(図9A)と同様のものである。
子局A20は、図5Cに示されるスロット情報に基づいて受信制御が行われているため、親局10が送信したスロット情報を受信することができる。そして、受信部207は、上述した識別子に基づいて、受信した信号がスロット情報1及びスロット情報2であることを確認する。受信部207は、スロット情報を受信したことを確認すると、スロット情報1及びスロット情報2を結合し、結合後のスロット情報及び誤り検出結果をスロット情報設定部210へ出力する。ここで、スロット情報の取得が正常に行われると、スロット情報記憶部209のスロットテーブルに、図9Aのスロット情報が書き込まれる。これにより、子局A20は時刻T26以降のスロットでは正常な送受信制御を行うことができるようになる。
以上のように、本実施形態では、ランダムアクセス用スロットもスロット情報再送用スロットとして使用するため、スロット情報のスロット数が多い場合でも、スロット情報の取得を正常に行えなかった子局を迅速にネットワークへ復帰させることができる。本実施形態はランダムアクセス用スロットが多ければ多いほど有効である。
なお上記実施形態1及び実施形態2では、親局と子局との間の通信について説明を行ったが、これに限定されるものではなく、子局同士の通信を行うスロットを含んでもよい。また、この場合、あるスロットにおいて、受信を行う子局が、送信を行う子局からの信号を受信しなかった場合、受信を行う子局は自らがスロットテーブルとして保持するスロット情報を、相手方の子局(送信を行う子局)へ送信してもよい。また、親局と子局のような従属関係は必ずしも必要なく、エンドエフェクタの交換時などに、全ての端局のうちのいずれか1つの端局における第1の通信手段がスロット情報を生成して他の端局における第2の通信手段へ送信するようにしてもよい。例えば、図1の例を用いると、上述の第1の通信手段は、エンドエフェクタに直接接続される子局B30の通信手段であり、上述の第2の通信手段は、親局10、子局A20、子局C40の通信手段であってもよい。エンドエフェクタにより近い位置にある端局の通信手段をスロット情報を送信する第1の通信手段とすることで、エンドエフェクタの交換の検知からスロット情報の送信までの時間を極力短縮することができる。また、例えば、縦列接続のネットワークでは、当該縦列接続の中間位置にある端局の通信手段を第1の通信手段としてもよい。これにより、特にネットワーク規模がある程度大きい場合に、ネットワーク全体へスロット情報を伝達するための時間を短縮することが可能となる。さらに、第1の通信手段が、複数の第2の通信手段と直接接続する並列接続型ネットワークをロボットシステムに用いてもよい。
また上記実施形態1及び実施形態2では、スロット情報を取得した次のスロットからそのスロット情報で示されるスロット割当が適用されるが、これに限定されるものではない。例えばスロット割当を適用するまでに時間を有する場合は、スロット情報を取得したM個先のスロットから、そのスロット情報に記したスロット割当を適用するという方法を用いてもよい。
また上記実施形態1及び実施形態2では、スロット情報生成部が生成したスロット情報を保持するスロット情報記憶部と、送信停止局検出信号に応じてスロット情報を書き換えるスロット情報書き換え部を備えるが、これに限定されるものではない。例えばROMに予め全てのスロット情報を記憶しておき、送信停止局検出信号に応じて複数の記憶しておいたスロット情報の中から所定のスロット情報を選択し、送受信制御部は選択されたスロット情報に基づいて制御を行ってもよい。
また上記実施形態1及び実施形態2では、エンドエフェクタの交換によりスロット割当の変更が生じるロボットシステムを用いて説明を行ったが、これに限定されるものではない。本発明は、例えば把持/加工機能など複数の機能を有し、作業内容に応じて切り替るエンドエフェクタを備えるロボットシステムなど、随時スロット割当の変更を行う産業用自動制御装置に適用することができる。
<<その他の実施形態>>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。