(57)【特許請求の範囲】
【請求項１】
ＴＤＭＡ通信方式で通信を行う複数のノードに、所定のフレーム期間を有する通信フレームを単位としてスロット割り当てを行う通信制御装置であって、
同じ送信元ノードの１以上のスロットを隙間のないように配置した、複数のスロット群を生成する生成手段と、
前記生成された複数のスロット群を時系列で並べたとき、隣接する２つのスロット群のうち先行するスロット群の末尾スロットの送信先ノードと、後続するスロット群の先頭スロットの送信元ノードとが一致する組み合わせの個数が最小となるように、前記複数のスロット群を通信フレームに配置する順序を決定する決定手段と、
前記決定された順序に従って前記複数のスロット群を前記通信フレームに配置し、該配置された複数のスロット群の間にガード期間を挿入する配置手段と
を備えることを特徴とする通信制御装置。
【請求項２】
前記隣接する２つのスロット群のうち先行するスロット群の末尾スロットの送信先ノードと、後続するスロット群の先頭スロットの送信元ノードとが一致しない場合に、前記配置手段は、前記隣接するスロット群の境界に、第１ガード期間を挿入し、
前記隣接する２つのスロット群のうち先行するスロット群の末尾スロットの送信先ノードと、後続するスロット群の先頭スロットの送信元ノードとが一致する場合に、前記配置手段は、前記隣接するスロット群の境界に、第１ガード期間よりも長い第２ガード期間を挿入することを特徴とする請求項１に記載の通信制御装置。
【請求項３】
前記隣接する２つのスロット群のうち先行または後続するスロット群のスロットの配置順序を入れ替えることにより、該隣接するスロット群のうち先行するスロット群の末尾スロットの送信先ノードと後続するスロット群の先頭スロットの送信元ノードとが一致する組み合わせを最小にする交換手段を、更に備えることを特徴とする請求項１に記載の通信制御装置。
【請求項４】
前記生成手段は、フレーム毎に送信元の異なるノードが送信する共用スロット群を生成し、前記配置手段が、該共用スロットを前記通信フレームに並べるとき、該共用スロットに先行する前記スロット群の末尾スロットの送信先ノードが、該共用スロット群の先頭スロットの送信元ノードと一致する組み合わせが最小の個数となるように、前記フレームに該共用スロットを配置することを特徴とする請求項１に記載の通信制御装置。
【請求項５】
前記生成手段は、フレーム毎に送信元の異なるノードが送信する共用スロット群を生成し、前記配置手段が、該共用スロットを前記通信フレームに並べるとき、該共用スロットに後続する前記スロット群の先頭スロットの送信元ノードが、該共用スロット群の末尾スロットの送信先ノードと一致する組み合わせが最小の個数となるように、前記フレームに該共用スロットを配置することを特徴とする請求項１に記載の通信制御装置。
【請求項６】
前記生成手段は、前記複数のノードの１以上のノードからの送信要求に基づいて前記複数のスロット群を生成することを特徴とする請求項１に記載の通信制御装置。
【請求項７】
前記送信要求は、送信データの宛先と該データを送信する為に必要なデータ量に対応したスロットの個数を含めて要求を行うことを特徴とする請求項６に記載の通信制御装置。
【請求項８】
ＴＤＭＡ通信方式で通信を行う複数のノードと、前記複数のノードに、所定のフレーム期間を有する通信フレームを単位としてスロット割り当てを行う通信制御装置とを有するシステムであって、
前記通信制御装置は、
同じ送信元ノードの１以上のスロットを隙間のないように配置した、複数のスロット群を生成する生成手段と、
前記生成された複数のスロット群を時系列で並べたとき、隣接する２つのスロット群のうち先行するスロット群の末尾スロットの送信先ノードと、後続するスロット群の先頭スロットの送信元ノードとが一致する組み合わせの個数が最小となるように、前記複数のスロット群を通信フレームに配置する順序を決定する決定手段と、
前記決定された順序に従って前記複数のスロット群を前記通信フレームに配置し、該配置された複数のスロット群の間にガード期間を挿入する配置手段と、
を有し、
前記複数のノードは、
前記配置手段により前記複数のスロット群が配置された前記通信フレームを用いて通信する通信手段を有することを特徴とするシステム。
【請求項９】
ＴＤＭＡ通信方式で通信を行う複数のノードに、所定のフレーム期間を有する通信フレームを単位としてスロット割り当てを行う通信制御の方法であって、
生成手段が、同じ送信元ノードの１以上のスロットを隙間のないように配置した、複数のスロット群を生成する生成工程と、
決定手段が、前記生成された複数のスロット群を時系列で並べたとき、隣接する２つのスロット群のうち先行するスロット群の末尾スロットの送信先ノードと、後続するスロット群の先頭スロットの送信元ノードとが一致する組み合わせの個数が最小となるように、前記複数のスロット群を通信フレームに配置する順序を決定する決定工程と、
配置手段が、前記決定された順序に従って前記複数のスロット群を前記通信フレームに配置し、該配置された複数のスロット群の間にガード期間を挿入する配置工程と
を備えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＤＭＡ通信方式で通信を行う通信装置およびネットワークシステムに関する。
【背景技術】
【０００２】
一つの伝送路で接続された複数のノード間で通信する場合に有効な通信方式として、時分割多元（ＴＤＭＡ）通信方式が知られている。ＴＤＭＡ通信方式は、予め各ノードに送信時間を割り当て、各ノードは自分に割り当てられた時刻にデータを送信する通信方式である。割り当てが一巡する周期をフレーム、割り当てられる時間の区切りはスロットと呼ばれる。
【０００３】
ＴＤＭＡ通信方式は、送信データの衝突が無く遅延時間が保証されるというメリットがある。しかし一方で、この方式は、送信ノードが変化するたびに送信禁止期間（ガード期間）を挿入する必要がある。ガード期間は、伝送路における信号の伝播遅延によってデータが相互干渉することを防止する為に必要な期間である。一般にガード期間の長さは、最も遠い２つのノード間における伝播遅延時間に基づいて決定される。
【０００４】
ガード期間においては、いずれのノードもデータを送信することができないため、ガード期間が増大すると伝送効率が低下する。そこで、特許文献１では、同じノードの送信スロットが連続するようにスロット割り当てを行うことで送信ノードが変化する頻度を低減し、１フレームあたりのガード期間長の総和を短縮する技術が提案されている。
【０００５】
ＴＤＭＡ通信方式は、遅延時間が保証されることに加え、バス型トポロジを採用できる。従って、従来の中央制御装置から個別にスター状に配線する方式に比べて省配線化も可能である為、近年、産業用ロボット制御でも用いられるようになっている。一般に産業用ロボットは、多数の関節を持つアームの各関節に通信ノードを配置し、中央制御装置およびノード間で通信を行いながらアーム全体として協調動作を行うように制御される。
【０００６】
また特許文献２にあるように、直交周波数分割多重（ＯＦＤＭ）変復調回路において、一つのモジュールに対して高速フーリエ変換（ＦＦＴ）演算を行うか、それとも逆高速フーリエ変換（ＩＦＦＴ）演算を行うか切り替えて使用する場合を考える。このとき、受信したデータのＦＦＴ演算の実行中は、これから送信するデータのＩＦＦＴ演算を開始することはできないことになる。
【０００７】
このような状況では、同じノードの送信スロットが連続することだけを考慮してスロット割り当てを行うと、同じノードの受信スロットと送信スロットが連続する配置となる個所が生じる。このため、送信処理と受信処理の一部を共通ハードウェアで処理する通信ノードを用いる場合には、伝送路での遅延時間に加え、通信ノードで受信から送信処理に切り替わるのに必要な時間を加算した長いガード期間を挿入する必要があった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００１−３２０３９４号公報
【特許文献２】特開２００７−０８８７７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以上のように、共通ハードウェアで処理するため送信処理と受信処理の一部を並行して処理できない構造をもつ通信ノードを含むネットワークでは、通信フレームのスロット間のガード期間によるオーバーヘッドが生じ、伝送効率が下がるという問題があった。
【００１０】
本発明は、係る課題に鑑み、通信フレームのスロット間のガード期間によるオーバーヘッドを低減し伝送効率を高める技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述の課題を解決するために、ＴＤＭＡ通信方式で通信を行う複数のノードに、所定のフレーム期間を有する通信フレームを単位としてスロット割り当てを行う通信制御装置は、同じ送信元ノードの１以上のスロットを隙間のないように配置した、複数のスロット群を生成する生成手段と、前記生成された複数のスロット群を時系列で並べたとき、隣接する２つのスロット群のうち先行するスロット群の末尾スロットの送信先ノードと、後続するスロット群の先頭スロットの送信元ノードとが一致する組み合わせの個数が最小となるように、前記複数のスロット群を通信フレームに配置する順序を決定する決定手段と、前記決定された順序に従って前記複数のスロット群を前記通信フレームに配置し、該配置された複数のスロット群の間にガード期間を挿入する配置手段とを備えることを特徴とする。
【発明の効果】
【００１２】
通信フレームのスロット間のガード期間によるオーバーヘッドを低減し伝送効率を高めることができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態１のシステムの構成を示す図である。
【図２】実施形態１の親ノードと子ノードの内部構成を示す図である。
【図３】通信部の構成を示す図である。
【図４】実施形態１のスロット割り当てを示す図である。
【図５】実施形態１のスロット群生成部の処理を説明する図である。
【図６】スロット群配置部の処理の流れを示す図である。
【図７】実施形態１のガード期間挿入部の処理を説明する図である。
【図８】実施形態２のガード期間挿入部の処理を説明する図である。
【図９】実施形態２のスロット割り当てを示す図である。
【図１０】実施形態２のスロット群生成部の処理を説明する図である。
【図１１】実施形態３の親ノードの内部構成を示す図である。
【図１２】実施形態３のスロット割り当てを示す図である。
【図１３】実施形態４の親ノードの内部構成を示す図である。
【図１４】実施形態４のスロット割り当てを示す図である。
【図１５】実施形態４の共用スロット配置部の処理を説明する図である。
【図１６】実施形態４のシステム構成を示す図である。
【発明を実施するための形態】
【００１４】
＜実施形態１＞
図１は、実施形態１におけるロボットアーム制御システムの通信制御を行うシステム構成を表す図である。
【００１５】
図に示されるように、ネットワークにより、親ノード１００と１以上の子ノード１〜３を一本のバスで接続し、本ネットワークを介してロボットのアーム１０１を制御する。
【００１６】
アーム１０１は、３個の関節を持ち、それぞれの関節は、親ノード１００の指示に基づいて子ノード１〜３により制御する。図に示すように、子ノード１〜３は、各関節のモーター１１１〜１１３、角度センサ１２１〜１２３および力覚センサ１３１〜１３３にそれぞれ接続されている。
【００１７】
例えば、子ノード１はアームのひじの関節を、子ノード２は手首の関節を、子ノード３は指の関節をそれぞれ制御する。そして、モーター１１１〜１１３は、各関節を曲げる動力を供給する。
【００１８】
また、角度センサ１２１〜１２３は、各関節の曲げ角度を検出する。力覚センサ１３１〜１３３は、各関節に加わる力やトルクを検出する。指の関節部の力覚センサ１３３は、指先に加わる圧力を検出するセンサも備えているが、ここでは、まとめて力覚センサ１３３として表記する。
【００１９】
親ノード１００は、子ノード１に対してひじの関節の制御のためにモーター制御情報を送信する。モーター制御情報は、例えばモーター１１１に加える電圧の値を含む。子ノード１は、親ノード１００からモーター制御情報を受信し、その制御情報に基づいてモーター１１１を動作させる。また子ノード１は、角度センサ１２１から現在の関節の曲げ角度を取得し、その取得した角度を角度情報として親ノード１００に送信する。親ノード１００は、子ノード１から受信した角度情報に基づいて、モーターのための次の制御情報を生成する。親ノード１００と子ノード２、３の間、すなわち手首の関節制御および指の関節制御にたいしても、上述の親ノード１００と子ノード１との間と同様の通信および制御が行われる。
【００２０】
親ノード１００と子ノード１〜３は、以上の通信を繰り返すことで、アームの各関節のフィードバック制御を行う。
【００２１】
また子ノード１〜３は、親ノード１００との通信と平行して、子ノード間において力覚情報を送受信する。子ノード１は、自身のノードの力覚センサ１３１から取得した力覚情報を子ノード２に送信する。同様に子ノード２は、自身のノードの力覚情報を子ノード３に送信する。更に、子ノード３は、自身のノードの力覚情報を子ノード１に送信する。各子ノードは、受信した力覚情報に基づいてモーター１１１〜１１３に加える電圧の微調整を行う。例えば、親ノード１００だけの制御だと一つの関節に大きな力が加わるが、このような子ノード間通信によりこのようなことを防止できる。すなわち、子ノード間通信により自律制御が行なわれる。また、子ノード１〜３は、親ノード１００からモーター制御情報を一つ受信するたびに、親ノードへ力覚情報を一つ送信するものとする。
【００２２】
以上の通信は、一本のバスで行われる為、通信方式としてＴＤＭＡ通信方式を用いる。各ノードの送受信スロットの割り当ては、親ノード１００で行い、子ノード１〜３は、この割り当てに従う。スロット割り当て情報は、初期化処理の中で、予め親ノード１００から子ノード１〜３に送信され、共有されるものとする。
【００２３】
なお、初期化処理の中で必要な通信を行う為のスロット割り当て情報は、親ノード１００のタイミング制御部２０５と子ノード１〜３のタイミング制御部２１５とに初期値として予め設定されているものとする。
【００２４】
図２は、親ノード１００と子ノード１の内部構成を表す図である。尚、子ノード２と子ノード３は、子ノード１と同じ構成である。
【００２５】
モーター制御情報生成部２０１は、図示しないユーザによる操作情報、および子ノード１〜３から受信した角度情報に基づいて各子ノードのモーター制御情報を生成し、送信データとして通信部３００Ａに出力する。ユーザによる操作情報には、アームの先端を到達させる位置や、アームが所定の繰り返し動作を行う場合はその動作の開始または停止といった情報が含まれる。
【００２６】
モーター制御部２１１は、親ノード１００から受信するモーター制御情報、および他の子ノードから受信する力覚情報に基づいてモーター１１１を制御する。モーター制御部２１１のデータの受信は、通信部３００Ｂを経由して行われる。
【００２７】
角度情報生成部２１２は、角度センサ１２１から現在の関節の曲げ角度を取得して角度情報を生成し、親ノード１００への送信データとして通信部３００Ｂに出力する。角度情報生成部２１２は、モーター制御部２１１がモーター制御情報を１つ受信するたびに１つの角度情報を出力する。
【００２８】
力覚情報生成部２１３は、力覚センサ１３１から関節に加わる力やトルクの大きさを取得して力覚情報を生成し、所定の子ノードへの送信データとして通信部３００Ｂに出力する。力覚情報生成部２１３は、モーター制御部２１１がモーター制御情報を１つ受信するたびに１つの力覚情報を出力する。
【００２９】
モーター制御情報生成部２０１と、モーター制御部２１１、角度情報生成部２１２および力覚情報生成部２１３との間のデータの送受信は、全て通信部３００Ａ、３００Ｂを介して行われる。
【００３０】
通信部は、直交周波数分割多重（ＯＦＤＭ）変調方式でデータを変復調し、他ノードとの送受信を行う。親ノード１００および子ノード１〜３の通信部３００Ｂは、全て通信部３００Ａと同じ構成である。
【００３１】
図３は、通信部３００Ａ，３００Ｂの構成を示す図である。送信バッファ３０１は、外部から書き込まれた送信データを一時保持する。符号化部３０２は、タイミング制御部２０５またはタイミング制御部２１５から送信タイミング指示を受けると、送信バッファから１スロット分のデータを取得し、これを符号化してＦＦＴ／ＩＦＦＴ部３０３に出力する。
【００３２】
ＦＦＴ／ＩＦＦＴ部３０３は、入出力を切り替えることで逆演算が可能な構成となっており、フーリエ変換と逆フーリエ変換を同一の回路で実行することができる。ＦＦＴ／ＩＦＦＴ部３０３は、符号化部３０２から送信データを入力された場合は、そのデータを逆フーリエ変換した上で、その結果を送信部３０４に出力する。またＦＦＴ／ＩＦＦＴ部３０３は、受信部３０５から受信データを入力された場合は、そのデータをフーリエ変換した上で、結果を復号部３０６に出力する。演算を実行している期間、ＦＦＴ／ＩＦＦＴ部３０３は、入力を受け付けない。
【００３３】
送信部３０４は、ＦＦＴ／ＩＦＦＴ部３０３から送信データを入力されると、これをアナログ信号に変換して伝送路に送信する。
【００３４】
受信部３０５は、タイミング制御部２０５またはタイミング制御部２１５から受信タイミング指示を受けると、１スロット分の期間に受信した伝送路の信号をデジタル信号に変換し、ＦＦＴ／ＩＦＦＴ部３０３に出力する。
【００３５】
復号部３０６は、ＦＦＴ／ＩＦＦＴ部３０３から入力されたデータを復号し、受信バッファ３０７に出力する。また、受信バッファ３０７は、受信データを外部から読み出されるまでの期間、一時保持する。
【００３６】
ＴＤＭＡのスロット割り当て情報は、親ノード１００のスロット群生成部２０２、通信スロット割り当てを行うスロット群配置部２０３、およびガード期間挿入部２０４によって決定され、タイミング制御部２０５に保持される。スロット割り当て情報が決定される過程は、後述する。
【００３７】
親ノード１００のタイミング制御部２０５は、スロット群生成部２０２、スロット群配置部２０３、およびガード期間挿入部２０４によって決定される通信フレームに対するスロット割り当てに従って、通信部３００Ａの送受信タイミングを制御する。またタイミング制御部２０５は、フレームの同期をとるための信号、フレーム長、変調方式などを含んだフレーム情報を１フレームに１回、全子ノードへ同報送信する。更にタイミング制御部２０５は、初期通信において、子ノード１〜３に対してスロット割り当て情報が送信されるように通信部３００を制御する。
【００３８】
親ノード１００で生成され、初期化処理において親ノード１００から受信したスロット割り当て情報を、タイミング記憶部２１４は、記憶する。
【００３９】
子ノード１のタイミング制御部２１５は、親ノード１００から送信されるフレーム情報を受信して、タイミング記憶部２１４で保持しているスロット割り当て情報に従って送受信が行われるように、通信部３００Ｂを制御する。
【００４０】
図４は、親ノード１００のスロット群生成部２０２、スロット群配置部２０３、およびガード期間挿入部２０４によって決定されるスロット割り当てを示す図である。以下に、通信フレーム生成のためのスロット割り当てが図４のように決定される過程を説明する。まず、スロット群生成部２０２は、所定フレーム期間を有する通信フレームを単位として割り当てる必要があるスロットの中から、同じ送信元ノードのスロットを隙間なく時系列で配置したスロット群を生成する。
【００４１】
図５は、スロット群生成部２０２の処理を表す図である。図５（Ａ）は、１フレームに割り当てる必要があるスロットの一覧を、図５（Ｂ）は、スロット群生成部２０２が生成するスロット群の内容を、それぞれ示す。
【００４２】
図５（Ａ）に示すように、１通信フレームに割り当てる必要があるスロットの一覧は、ユーザが予めスロット群生成部２０２に設定し、スロット群生成部２０２は、これを保持しておく。あるいは、子ノードからの送信要求に基づき、親ノードでスロットの一覧を生成し、これを保持しても良い。（実施形態５参照）
図５（Ａ）において、子ノード１の送信スロットは、親ノードへ角度情報を送信するスロットと、子ノード２へ力覚情報を送信するスロットとがある。スロット群生成部２０２は、これらの送信スロットをまとめて子ノード１のスロット群６５１を生成する。スロット群生成部２０２は、同様に親ノード１００のスロット群６５０、子ノード２のスロット群６５２、子ノード３のスロット群６５３を生成する。なお、スロット群生成部２０２がスロット群を生成する際のスロット群内部における順番は、任意とする。例えば、受信アドレスが若い順に並べても良い。このように、スロット群生成部２０２は、送信ノードが同じスロットをまとめて、スロット群を生成する。
【００４３】
スロット群配置部２０３は、スロット群生成部２０２によって生成されたスロット群を、スロット群の個数に合わせて、通信フレームを区切り、その区切られた通信フレームにどの順番で配置するかを決定する。
【００４４】
図６は、スロット群配置部２０３がスロット群を配置する順番を決定するアルゴリズムを示す図である。以下に、図６のアルゴリズムにしたがってスロット群配置部２０３の動作を説明する。
【００４５】
Ｓ１０１において、スロット群６５０をフレーム先頭に配置する。Ｓ１０２において、スロット群６５０の末尾の送信先ノード、すなわち子ノード３をノードＸとして記憶する。Ｓ１０３において、スロット群６５１およびスロット群６５２がこれに該当する為、Ｓ１０４へ進む。Ｓ１０４において、スロット群６５１を選択する。ここで、スロット群６５１を選択するか、スロット群６５２を選択するかは任意であるが、例えばそのスロット群の送信ノードのアドレスが若い順としても良い。
【００４６】
Ｓ１０６において、Ｓ１０４で選択したスロット群６５１をスロット群６５０の次に配置する。Ｓ１０７において、スロット群６５２とスロット群６５３が未配置であるためＳ１０２に戻る。
【００４７】
Ｓ１０２において、スロット群６５１の末尾のスロットの送信先ノード、すなわち子ノード２をノードＸとして記憶する。Ｓ１０３において、スロット群６５３がこれに該当する為、Ｓ１０４へ進む。Ｓ１０４〜Ｓ１０７において、スロット群６５３をスロット群６５１の次の順序で配置する順序決定を行い、Ｓ１０２に戻る。
【００４８】
Ｓ１０２〜Ｓ１０７において、スロット群６５２をスロット群６５３の次に配置し、処理を終了する。
【００４９】
以上の処理により、スロット群配置部２０３は、スロット群６５０、スロット群６５１、スロット群６５３、スロット群６５２の順番で通信フレームに配置する。
【００５０】
ガード期間挿入部２０４は、スロット群生成部２０２とスロット群配置部２０３によって決定されたスロットの順番に基づいて、各スロットの間にガード期間を挿入するように、タイミング制御部に指示する。
【００５１】
図７は、ガード期間挿入部２０４の動作を説明する図である。図７（Ａ）において、スロット５０１とスロット５０２は、共にノードＡの送信スロットである。ガード期間挿入部２０４は、このように隣接する２つのスロットの送信元ノードが同じである場合には、これら２つのスロットの間にガード期間を挿入しない。
【００５２】
図７（Ｂ）において、スロット５０３は、ノードＡが送信するスロット、スロット５０４は、ノードＣが送信するスロットである。ガード期間挿入部２０４は、このように隣接する２つのスロットの送信元ノードが異なる場合には、これら２つのスロット間にガード期間５１０を挿入する。ここでは、ガード期間５１０の長さは、ネットワーク内で最も遠い２つのノード間での信号の伝播時間とし、第１ガード期間とも呼ぶこととする。
【００５３】
以下に、ガード期間挿入部２０４が行う処理を説明する。
【００５４】
図４にガード期間とスロット割り当てとの関係を示す。ここで、通信フレームは、親ノード１００および子ノード１〜３における通信に必要な期間６６０と、残りの期間６４０から構成される。この期間６４０は、ノード数が増えた場合に備えて予約しておいても良いし、削除してフレーム長を短くしても良い。
【００５５】
スロット６００とスロット６０１は同じノードが送信するスロットであるため、ガード期間挿入部２０４は、これらのスロットの間にはガード期間を挿入しない。同様に、ガード期間挿入部２０４は、同じスロット群に所属するその他のスロットの間にはガード期間を挿入しない。
【００５６】
スロット群６５１の末尾のスロット６１２と、スロット群６５３の先頭のスロット６３０に注目すると、この２つのスロットは送信元ノードが異なる、このため、ガード期間挿入部２０４は、この２つのスロットの間にはガード期間５１０を挿入する。同様に、ガード期間挿入部２０４は、スロット群６５０とスロット群６５１の境界、およびスロット群６５２とスロット群６５３の境界にもガード期間５１０を挿入する。
【００５７】
このスロット割り当てには、隣り合うスロット間で送信先ノードと送信元ノードが一致している個所がない。本システムの通信部３００は、送信処理と受信処理とでＦＦＴ／ＩＦＦＴ部３０３を共有している。このため、隣合うスロット間で送信先ノードと送信元ノードが一致する場合には、信号の伝播時間に、通信部３００が受信から送信に切り替わる時間も含めた長いガード期間が必要であるが、図４のようなスロット割り当てであればこの長いガード期間をとる必要がなくなる。
【００５８】
このように、本実施形態では、隣接する２つのスロット群のうち先行するスロット群の末尾スロットの送信先ノードと、後続するスロット群の先頭スロットの送信元ノードとが一致する組み合わせの個数が最小となるように、スロット群を通信フレームに配置する。この実施形態の例では、組み合わせの個数の値がゼロとなる場合を説明した。
【００５９】
以上のように、本実施形態によれば、送信処理と受信処理の一部を共通のハードウェアで処理する構造をもつ通信ノードで構成されるネットワークで、一回のガード期間を長くする必要がなくなる。また、送信ノードが変化する頻度を低減してガード期間の出現回数を少なくし、オーバーヘッドを低減することができる。
【００６０】
本実施形態によれば、期間６６０におけるガード期間の長さの総和を短縮することができるため、期間６６０全体が短くなる。すなわち、期間６４０の長さが長くなる。
【００６１】
例えばモーター１１１と角度センサ１２１をより高精度のものに置き換え、より詳細なモーター制御情報と角度情報を使って精度の高いフィードバック制御を行うことを考える。この場合、親局１００と子局１との間で送受信するモーター情報と角度情報のビット数を増やす必要があるが、本実施形態により期間６４０に余裕を生じさせることで、これを容易に行うことができる。すなわち、制御周期を変えずにモーター制御を高精度化することが可能となる。
【００６２】
同様に、期間６４０が長くできれば、制御周期を長くすることなく関節を制御する子ノードの個数も増やせるので、例えば、指の本数を増やして物体を掴む際の安定度を増すことも可能である。
【００６３】
さらに、期間６４０を削除することにより、制御周期を短くしてより応答速度の高いフィードバック制御を行うこともできる。
【００６４】
ここではロボットアーム制御システムを実施例として説明したが、本発明はＴＤＭＡ通信方式で通信を行うその他のシステムにも適用可能である。
【００６５】
また、本実施形態では、親ノード１００がスロット割り当てを決定した。しかし、ネットワークの任意の１ノードが、スロット群生成部２０２とスロット群配置部２０３とを持ってスロット割り当てを決定することも可能であることは言うまでもない。
【００６６】
＜実施形態２＞
第２実施形態のシステム構成も、実施形態１と同じく図１の構成となっている。
【００６７】
ただし、本実施形態では、アーム１０１における子ノード３の指関節は固定し、子ノード１と２のひじの関節と手首の関節だけでより高速な制御を行うものとする。このため、子ノード３に対しては通信を行わず、モーター１１３、角度センサ１２３、力覚センサ１３３は動作させないものとする。
【００６８】
子ノード１、２は、親ノード１００の指示に基づいてこの２つの関節を制御する。子ノード１は、自身のノードの力覚センサ１３１から取得した力覚情報を子ノード２に送信する。同様に子ノード２は、自身のノードの力覚情報を子ノード１に送信する。その他の通信の内容は実施形態１の場合と同じである。
【００６９】
また、親ノード１００と子ノード１、子ノード２の内部構成は、実施形態１で説明した図２の場合と同一である。
【００７０】
ここで、本実施形態においては、隣り合うスロットの送信先（受信）ノードと送信元ノードが一致する個所にのみ長いガード期間を挿入するために、ガード期間挿入部２０４の動作を以下のように置き換える。
【００７１】
図８は、本実施形態におけるガード期間挿入部２０４の動作を説明する図である。
【００７２】
実施形態１と同様に、ガード期間挿入部２０４は、図８（Ａ）のように送信元ノードが同じであるスロットが隣接している場合には、これらスロットの間にガード期間を挿入しない。
【００７３】
一方、ガード期間挿入部２０４は、図８（Ｂ）および図８（Ｃ）のように送信元ノードが異なるスロットが隣接する場合には、実施形態１と異なる処理を行う。以下にその詳細を説明する。
【００７４】
図８（Ｂ）において、スロット５０３は、ノードＡが送信してノードＢが受信するスロット、スロット５０４は、ノードＣが送信してノードＤが受信するスロットである。ガード期間挿入部２０４は、隣接する２つのスロットの送信ノードが異なり、かつ先行するスロット５０３の受信ノードが後続のスロット５０４の送信ノードと異なる場合には、これら２つのスロットの間にガード期間５１０を挿入する。ガード期間５１０の長さは、ネットワーク内で最も遠い２つのノード間での信号の伝播時間とする。
【００７５】
図８（Ｃ）において、スロット５０５は、送信元であるノードＡが送信して、送信先ノードであるノードＢが受信するスロット、スロット５０６は、送信元ノードであるノードＢが送信して、送信先ノードであるノードＣが受信するスロットである。ガード期間挿入部２０４は、隣接する２つのスロットの送信元ノードが異なり、かつ先行するスロット５０５の送信先ノードが後続のスロット５０６の送信元ノードと一致する場合には、これら２つのスロットの間にガード期間５１１を挿入する。ガード期間５１１の長さは、ガード期間５１０の長さに、通信部３００が、受信から送信に切り替わるまでに必要な時間を加えた長さとする。この長さは、ＦＦＴ／ＩＦＦＴ部３０３における処理時間と、送信部３０４における処理時間と、受信部３０５における処理時間の合計に等しい。このガード期間５１１をここでは、第２ガード期間とも呼ぶこととする。
【００７６】
図９は、実施形態２において、親ノード１００のスロット群生成部２０２、スロット群配置部２０３、およびガード期間挿入部２０４によって決定されるスロット割り当てを示す図である。
【００７７】
以下に、スロット割り当てが決定される過程を詳細に説明する。図１０は、スロット群生成部２０２の処理を表す図である。
【００７８】
図１０（Ａ）は、割り当てが必要なスロットの一覧を、図１０（Ｂ）は、スロット群生成部２０２が生成するスロット群の内容を、それぞれ表している。まず、スロット群生成部２０２は、第一の実施例と同様の手順で、親ノード１００のスロット群８５０、子ノード１のスロット群８５１、子ノード２のスロット群８５２を生成する。
【００７９】
以下に、図６のアルゴリズムに従ってスロット群配置部２０３の動作を説明する。Ｓ１０１において、スロット群８５０をフレーム先頭に配置する。Ｓ１０２において、スロット群８５０の末尾スロットの送信先ノード、すなわち子ノード２をノードＸとして記憶する。Ｓ１０３において、スロット群８５１がこれに該当する為、Ｓ１０４へ進む。
【００８０】
Ｓ１０４において、スロット群８５１を選択する。Ｓ１０６において、選択したスロット群８５１をスロット群８５０の次に配置する。Ｓ１０７において、スロット群８５２が未配置であるためＳ１０２に戻る。
【００８１】
Ｓ１０２において、スロット群８５０の末尾スロットの送信先（受信）ノード、すなわち子ノード２をノードＸとして記憶する。Ｓ１０３において、該当するスロット群がない為、Ｓ１０５へ進む。
【００８２】
Ｓ１０６において、選択したスロット群８５２をスロット群８５１の次に配置する。Ｓ１０７において、未配置のスロット群は残っていない為、処理を終了する。以上の処理により、スロット群配置部２０３は、スロット群８５０、スロット群８５１、スロット群８５２の順で通信フレームに配置する。
【００８３】
次に、図９を使って、スロットとガード期間挿入部２０４に関する動作を説明する。スロット８００とスロット８０１は、親である同じノードが送信するスロットであるため、ガード期間挿入部２０４は、これら２つのスロット間にはガード期間を挿入しない。同様に、ガード期間挿入部２０４は、同じスロット群に所属するその他のスロットの間にはガード期間を挿入しない。
【００８４】
スロット群８５０の末尾スロット８０２における送信先ノード（子２）と、スロット群８５１の先頭のスロット８１０における送信元ノード（子１）は一致しない。このため、ガード期間挿入部２０４は、スロット群８５０とスロット群８５１の間に短いガード期間５１０を挿入する。
【００８５】
一方、スロット群８５１の末尾スロット８１２における送信先ノード(子２)と、スロット群８５２の先頭のスロット８２０における送信ノード(子２)が一致する。このため、ガード期間挿入部２０４は、スロット群８５１とスロット群８５２との間に長いガード期間５１１を挿入する。
【００８６】
図９のスロット割り当てを見ると、スロット８１２とスロット８２０において送信先ノード(子２）と送信元ノード（子２）が連続している。また、この２つのスロットの間にのみ、通信部３００Ｂにおいて受信から送信に切り替わる為に十分な時間のガード期間が挿入されている。
【００８７】
また、例えば、スロット８０１の送信先ノード（子１）とスロット８０２の送信元ノード（親）のように、送信先（受信）ノードと送信元ノードが一致しないスロットの間には受信から送信処理への切替え時間に相当するガード期間が挿入されていない。すなわち、無駄な長さのガード期間が挿入されていないことがわかる。
【００８８】
以上で説明したように、本実施形態によれば、同じ送信元ノードのスロットが連続するように配置すると、隣り合うスロット間で送信先ノードと送信先ノードが一致する個所が必ず生じるような場合にも、その個所以外には長いガード期間を挿入する必要がなくなる。したがって、ガード期間によるオーバーヘッドを低減して伝送効率を高めることが可能となることがわかる。
【００８９】
＜実施形態３＞
実施形態３におけるシステム構成も、図１に示す構成と同じである。図１１は、実施形態３における親ノード１００の構成を示す。この図においても、親ノード１００にスロット交換部２０６を新たに追加する以外は、実施形態１と同じ構成である。また、子ノード１、２の内部構成も、図２に示す実施形態１の場合と同一である。ここでは、これまで説明しなかった構成部のみ説明する。
【００９０】
スロット交換部２０６は、スロット群の境界において、同じノードの送信スロットと受信スロットが発生することを抑制するために追加するものである。以下にその詳細を説明する。
【００９１】
スロット群配置部２０３が、図６の処理ステップＳ１０３において、隣り合うスロット間で送信先ノードと送信元ノードを一致させないという条件が成立しないことを検出する。その検出をトリガにして、スロット群配置部２０３が最後に配置したスロット群の中で任意の２スロットの配置順序を入れ替える。また、スロット交換部２０６は、スロット順序を入れ替えた後に、スロット群配置部２０３に対して、処理を最初からやり直す指示を出す。
【００９２】
スロット群配置部２０３は、実施形態２の場合と同様の手順で、親ノード１００のスロット群８５０、子ノード１のスロット群８５１を配置する。その後、図６の処理ステップＳ１０３において、該当するスロット群がないので、Ｓ１０５へ進む。
【００９３】
スロット交換部２０６は、これを検出し、その時点で最後に配置したスロット群８５１の内部でスロットの順番を入れ替えた上で、スロット群配置部２０３に対して処理を最初からやり直すように制御する。
【００９４】
図１２は、実施形態３におけるスロット割り当てとガード期間挿入に関する動作を示す図である。図１２では、親ノード１００がスロット群配置部２０３を持つ場合とスロット交換部を持つ場合のスロット割り当てを比較して示している。
【００９５】
実施形態２においては、スロット群生成部２０２、スロット群配置部２０３、およびガード期間挿入部２０４によって決定されるスロット割り当ては、図１２の（Ａ）のようになっていた。
【００９６】
一方、本実施形態のようにスロット交換部２０６を導入した場合、スロット群生成部２０２、スロット群配置部２０３、ガード期間挿入部２０４、およびスロット交換部２０６によって決定されるスロット割り当ては、図１２の（Ｂ）のようになる。
【００９７】
スロット群８５１の内部のスロット配置の順番が入れ替わることにより、スロット群８５１の末尾のスロット８１０における受信ノード（送信先ノード）は、スロット群８５２の先頭スロット８２０における送信元ノードと一致しなくなる。したがってスロット群８５１とスロット群８５２の間には、短いガード期間５１０を挿入することで、長いガード期間５１１がなくても問題なく通信することができる。
【００９８】
以上で説明したように、本実施形態によれば、同じスロット群におけるスロットの配置順序を交換することで、更にオーバーヘッドを低減して伝送効率を高めることが出来る。
【００９９】
＜実施形態４＞
実施形態４におけるシステム構成も、図１に示す構成と同じである。ここでは、新しい要素として、共用スロットを導入する。この共用スロットは、送信元の異なるノードの各々を通信フレーム毎に順番に送信するためのスロットである。ここでは、送信元の異なる子ノード１から子ノード３について考える。この場合、子ノード２と子ノード３は、角度情報を親ノード１００に送信しないものとする。また、子ノード１〜３は、力覚情報を３フレームに１回送信するものとする。すなわち、力覚情報に関しては、最初のフレームで子ノード１から子ノード２へ、次のフレームで子ノード２から子ノード３へ、その次のフレームで子ノード３から子ノード１へ送信することを繰り返すものとする。
【０１００】
図１３は、実施形態４における親ノード１００の構成を示す。親ノード１００の内部構成は、親ノード１００に共用スロット配置部２０７を新たに追加する他は、実施形態１と同じ構成である。また、子ノード１〜３の内部構成は、力覚情報生成部２１３が、上記のように３フレームに一回だけ力覚情報を出力するようになる他は、実施形態１と同じ構成である。
【０１０１】
本実施形態では、一部の関節に急激に大きな力が加わる可能性が小さいと判断できると仮定し、モーター制御の応答速度を高めることを目的とし、その結果、力覚情報の通信頻度を下げている。
【０１０２】
共用スロット配置部２０７は、通信フレームによって異なるノードが送信するような共用スロットを含む場合にも、隣り合うスロット間で送信先ノードと送信元ノードが一致しないように配置することを目的に追加するものである。以下に、その詳細を説明する。
【０１０３】
共用スロット配置部２０７は、フレームによって送信元ノードが変化するような共用スロットがある場合に、スロット群生成部２０２に対して、共用スロットを独立したスロット群として生成するように制御する。また、共用スロット配置部２０７は、共用スロット群において送信する機会のあるノードのリストを作成する。
【０１０４】
さらに、共用スロット配置部２０７は、スロット群配置部２０３が図６のステップＳ１０４において共用スロット群を選択した場合に、その共用スロット群で送信する機会のあるノードのリストを参照する。このリストの中に、スロット群配置部２０３が、図６のステップＳ１０２で設定したノードＸが含まれる場合は、スロット群配置部２０３に対してＳ１０３に戻って別のスロット群を探すように制御する。
【０１０５】
図１４は、本実施形態において、親ノード１００のスロット群生成部２０２、スロット群配置部２０３、ガード期間挿入部２０４および共用スロット配置部２０７によって決定されるスロット割り当てを示す図である。
【０１０６】
以下に、スロット割り当てが決定される過程を詳細に説明する。
【０１０７】
図１５は、共用スロット配置部２０７の動作を説明する図である。図１５（Ａ）は、割り当てが必要なスロットの一覧を、図１５（Ｂ）は、共用スロット配置部２０７がスロット群生成部２０２を制御して生成するスロット群の内容を、それぞれ示している。また、図１５（Ｃ）は、共用スロット配置部２０７が生成する、共用スロット群１２５２において送信する機会のあるノードのリストを示す。
【０１０８】
図１５（Ａ）の力覚情報は、共用スロットで送信される。このため、共用スロット配置部２０７は、スロット群配置部２０３に対して、力覚情報を送信する共用スロットを独立したスロット群として生成するように制御する。この結果、生成されるスロット群は、図１５（Ｂ）のようになる。
【０１０９】
ここで、スロット群配置部２０３は、図１５（Ｂ）の共用スロット群１２５２の送信ノードのリストを作成する。力覚情報は子ノード１〜３が送信するので、共用スロット群１２５２の送信元ノードのリストは図１５（Ｃ）のようになる。
【０１１０】
次に、スロット群配置部２０３が共用スロット配置部２０７に制御されながらスロット群を配置する様子を説明する。スロット群配置部２０３は、図６のＳ１０１において、スロット群１２５０をフレーム先頭に配置する。
【０１１１】
Ｓ１０２において、スロット群１２５０の末尾スロットの送信先（受信）ノード、すなわち子ノード３をノードＸとして記憶する。Ｓ１０３において、スロット群１２５１と共用スロット群１２５２がこれに該当するため、Ｓ１０４へ進む。
【０１１２】
Ｓ１０４において候補が複数ある場合には任意のスロット群を選択する為、ここでは共用スロット群１２５２を選択するものとする。ここで、共用スロット配置部２０７は、スロット群配置部２０３が、Ｓ１０４で共用スロット群を選択したことを検出する。さらに、共用スロット配置部２０７は、図１５（Ｃ）のリストの中に、Ｓ１０２でノードＸとして記憶された子ノード３が含まれることを検出する。したがって、共用スロット配置部２０７は、スロット群配置部２０３に対して、Ｓ１０３に戻って別のスロット群を探すように制御する。
【０１１３】
スロット群配置部２０３は、Ｓ１０３に戻り、Ｓ１０４においてスロット群１２５１を選択し、Ｓ１０６でスロット群１２５１をスロット群１２５０の次の位置に配置する。Ｓ１０７において、未配置のスロット群が残っている為、Ｓ１０２に戻る。Ｓ１０２において、スロット群１２５１の末尾スロットの受信ノード、すなわち親ノード１００をノードＸとして記憶する。
【０１１４】
Ｓ１０３において、共用スロット群１２５２が該当する為、Ｓ１０４へ進む。Ｓ１０４において、共用スロット群１２５２を選択する。ここで再び、共用スロット配置部２０７は、スロット群配置部２０３が、Ｓ１０４で共用スロット群を選択したことを検出する。さらに、共用スロット配置部２０７は、図１５（Ｃ）のリストの中に、Ｓ１０２でノードＸとして記憶された親ノード１００が含まれないことを検出する。
【０１１５】
したがって、共用スロット配置部２０７は、スロット群配置部２０３に対して、Ｓ１０３に戻らずにＳ１０６へ進むように制御する。スロット群配置部２０３は、Ｓ１０６において、選択した共用スロット群１２５２をスロット群１２５１の次に配置する。Ｓ１０７において、未配置のスロット群は残っていない為、処理を終了する。
【０１１６】
以上の処理により、図１４に示すスロット割り当てが生成される。ここで、スロット１２１０の受信ノードは、親ノード１００である。一方、共用スロット１２７０で送信ノードと成り得るのは、子ノード１〜３である。すなわち、スロット１２１０の送信先（受信）ノードと、共用スロット１２７０の送信元ノードは常に異なる。
【０１１７】
したがって、このスロット割り当てには、隣り合うスロット間で送信先ノードと送信元ノードが一致している個所がない。本システムの通信部３００は、送信処理と受信処理でＦＦＴ／ＩＦＦＴ部３０３を共有している。このため、同じノードの受信スロットと送信スロットが連続すると長いガード期間５１１が必要になるが、図１４のようなスロット割り当てであれば、長いガード期間は必要ない。
【０１１８】
以上で説明したように、本実施形態によれば、フレームによって送信元ノードが変化するスロットのために共用スロットを用意することで、ガード期間によるオーバーヘッドを低減して伝送効率を高められることがわかる。
【０１１９】
＜実施形態５＞
実施形態５におけるシステム構成も、図１に示す構成と同じである。図１６は、親ノード１００と子ノード１の内部構成を示す図である。子ノード２と子ノード３は、子ノード１と同じ構成である。
【０１２０】
図１６において、実施形態１と異なる点は、親ノード１００および子ノード１〜３にスロット要求部２１６が追加され、スロット群生成部２０２は、各ノードのスロット要求部２１６による要求に基づいてスロット群を生成する点である。
【０１２１】
スロット要求部２１６は、この場合、各子ノードに備えられる。そして、通信フレームに割り当てる必要があるスロットの一覧をユーザが設定しなくとも、スロット要求部２１６が子ノードから親ノードへ送信要求することで、親ノード内でスロットの一覧を生成する。以下にその詳細を述べる。
【０１２２】
子ノード１のスロット要求部２１６は、初期化処理において、子ノード１の自身のスロット要求情報を生成し、通信部３００を介して親ノード１００に送信する。スロット要求情報には、１フレームの中で子ノード１が自身で送信予定のデータの宛先と、そのデータを送信する為に必要なデータ量に対応したスロットの個数が含まれる。
【０１２３】
例えば実施形態１と同じ通信を行う場合は、子ノード１のスロット要求部２１６が生成するスロット要求情報の内容には、親ノード１００宛てに１スロット、子ノード２宛てに１スロット、という情報が含まれる。同様に、子ノード２のスロット要求部２１６が生成するスロット要求情報の内容には、親ノード１００宛てに１スロット、子ノード３宛てに１スロット、という情報が含まれる。更に、子ノード３のスロット要求部２１６が生成するスロット要求情報の内容には、親ノード１００宛てに１スロット、子ノード１宛てに１スロット、という情報が含まれる。
【０１２４】
また、親ノード１００のスロット要求部２１６が生成するスロット要求情報の内容には、全子ノードへの同報送信に１スロット、子ノード１宛てに１スロット、子ノード２宛てに１スロット、子ノード３宛てに１スロット、という情報が含まれる。
【０１２５】
親ノード１００のスロット群生成部２０２は、各ノードのスロット要求部２１６から受信したスロット要求情報をあわせて、図５（Ａ）に示すような、１フレームに割り当てる必要があるスロットの一覧として保持する。
【０１２６】
スロット群生成部２０２は、各ノードのスロット要求部２１６にスロット要求情報を送信する時間を与える為に、所定の時間だけ待った後にスロット群の生成を開始する。スロット群の生成は、実施形態１で説明したのと同様の手順で行われ、図５（Ｂ）に示すようなスロット群を生成する。
【０１２７】
すなわち、１フレームに割り当てる必要があるスロットの一覧は、ユーザが設定することなく、親ノード１００と子ノード１〜３の間で自動的に生成されることになる。例えば、子ノード１の角度センサを高精度のものに置き換える場合を考える。角度センサを高精度にすると、より精密なフィードバック制御が可能であるが、角度情報として送信するデータが増大する。スロット要求部２１６は、親ノード１００宛ての送信スロット数を、増大したデータを伝送する為に十分なスロット数としてスロット要求情報に含めて親ノード１００に送信する。これにより、親ノード１００のスロット群生成部２０２は、増大した角度情報用のスロットを確保した上でスロット群を生成することができる。
【０１２８】
したがって、ユーザが１フレームに割り当てるべきスロットの一覧を設定しなくても、精度や関節の本数が異なる指先を付け替えて動作させることができるため、システム拡張をさらに容易に行うことができる。
【０１２９】
以上で説明したように、本実施形態によれば、ネットワークシステムの構成の変化によって通信に必要なスロット数が変化するような場合にも、自動的にその変化に対応し、ガード期間によるオーバーヘッドを低減して伝送効率を高めることが出来る。
【図１】
0005400577.tif 000002
【図２】
0005400577.tif 000003
【図３】
0005400577.tif 000004
【図４】
0005400577.tif 000005
【図５】
0005400577.tif 000006
【図６】
0005400577.tif 000007
【図７】
0005400577.tif 000008
【図８】
0005400577.tif 000009
【図９】
0005400577.tif 000010
【図１０】
0005400577.tif 000011
【図１１】
0005400577.tif 000012
【図１２】
0005400577.tif 000013
【図１３】
0005400577.tif 000014
【図１４】
0005400577.tif 000015
【図１５】
0005400577.tif 000016
【図１６】
0005400577.tif 000017