(57)【要約】【課題】リトライの発生を低減し、既存のノードに対する変更コストを抑えつつ、所定時間で応答を返すようなバス型ネットワークの伝送路の一部を無線で中継する。【解決手段】バス型ネットワークに接続された第１の端末と、他のバス型ネットワークのに接続された第２の端末と、第１の端末と第２の端末との通信を中継する中継装置とを備える通信システムであって、第１の端末は、送信すべきデータにダミーデータを付加するダミーデータ付加部と、中継装置を介して送信するデータにダミーデータを付加するようにダミーデータ付加部を制御するダミーデータ付加制御部と、を備え、第２の端末は、第１の端末からデータを受信してから所定時間で応答する応答部を備え、中継装置は、第１の端末から第２の端末へ送信されるデータに含まれるダミーデータを除去して中継を行うダミーデータ除去部を備える。【選択図】  図１０
2013232847.tif 000002
【特許請求の範囲】
【請求項１】
バス型ネットワークに接続された第１の端末と、他のバス型ネットワークに接続された第２の端末と、前記第１の端末と前記第２の端末との通信を中継する中継装置とを備える通信システムであって、
前記第１の端末は、
送信すべきデータにダミーデータを付加するダミーデータ付加手段と、
前記中継装置を介して送信するデータに前記ダミーデータを付加するように前記ダミーデータ付加手段を制御するダミーデータ付加制御手段と、を備え、
前記第２の端末は、
前記第１の端末からデータを受信してから所定時間で応答する応答手段を備え、
前記中継装置は、
前記第１の端末から前記第２の端末へ送信されるデータに付加されている前記ダミーデータを除去して中継を行うダミーデータ除去手段を備えることを特徴とする通信システム。
【請求項２】
前記ダミーデータ付加手段は、前記中継装置がデータを中継するために要する中継遅延時間に基づいて前記ダミーデータの長さを決定して、当該ダミーデータを付加することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記応答手段は、正しくデータを受信したか否かを送信元に通知するための送達確認情報を応答することを特徴とする請求項１または２に記載の通信システム。
【請求項４】
前記ダミーデータ付加手段は、前記送信すべきデータに、ダミーデータ付加の有無を示す情報を付加することを特徴とする請求項１乃至３の何れか１項に記載の通信システム。
【請求項５】
前記中継装置は、前記ダミーデータが付加されていないデータを中継しないことを特徴とする請求項４に記載の通信システム。
【請求項６】
バス型ネットワークに接続された通信装置であって、
送信すべきデータにダミーデータを付加するダミーデータ付加手段と、
他のバス型ネットワークに接続された他の通信装置へ、中継装置を介して送信するデータに前記ダミーデータを付加するように前記ダミーデータ付加手段を制御するダミーデータ付加制御手段と、
を備えることを特徴とする通信装置。
【請求項７】
バス型ネットワークに接続された第１の端末から、他のバス型ネットワークに接続された第２の端末へ送信されるデータを中継する中継装置であって、
前記第１の端末により前記データに付加されたダミーデータを除去して中継を行うダミーデータ除去手段を備えることを特徴とする中継装置。
【請求項８】
バス型ネットワークに接続された通信装置の制御方法であって、
送信すべきデータにダミーデータを付加するダミーデータ付加工程と、
他のバス型ネットワークに接続された他の通信装置へ、中継装置を介して送信するデータに前記ダミーデータを付加するように制御するダミーデータ付加制御工程と、
を有することを特徴とする通信装置の制御方法。
【請求項９】
バス型ネットワークに接続された第１の端末から、他のバス型ネットワークに接続された第２の端末へ送信されるデータを中継する中継装置の制御方法であって、
前記第１の端末により前記データに付加されたダミーデータを除去して中継を行うダミーデータ除去工程を有することを特徴とする中継装置の制御方法。
【請求項１０】
請求項８に記載の通信装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１１】
請求項９に記載の中継装置の制御方法の工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス型ネットワークの伝送路の一部を中継するための通信システム、通信装置、中継装置、通信装置の制御方法、中継装置の制御方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、産業用機器や情報機器の分野において、機器の配線を減らすため有線通信から無線通信に置き換えることが行われている。一方、無線通信に必要な部品コストは有線の場合よりも高くなる傾向があるため、全てを無線で置き換えずに、必要な個所だけを無線で中継する技術が求められている。例えば、有線の伝送路のうち可動部には耐久性の低下やねじれ等の問題があるので、可動部だけは多少コストがかかっても無線中継したいといったニーズがある。
【０００３】
ところで、多くの標準的な通信プロトコルでは、送達確認のため、データを受信したノードは正しくデータを受信したことを示すＡＣＫ応答を所定時間で伝送路に出力することが規定されている。このような通信プロトコルが適用される有線の通信を無線で中継する場合、中継のための遅延時間が加算されるため、そのまま中継すると応答を所定時間で出力することができない場合がある。
【０００４】
そこで、特許文献１では、初回のデータ送信に対しては応答を出力せずに、リトライに対して正しいタイミングで応答を出力する技術が提案されている。
【０００５】
また、特許文献２では、本来送信すべきデータの末尾にダミーデータを付加して応答のための時間を確保する技術が提案されている。
【０００６】
一方、産業用機器の分野ではバス型ネットワークが広く用いられている。バス型ネットワークは、一つの有線の伝送路を複数のノードで共有して通信する方式のネットワークである。このようなネットワークの例として、非特許文献１では、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が開示されている。ＣＡＮにおいても受信ノードは所定時間でＡＣＫ応答を出力することが規定されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１０９７１１号公報
【特許文献２】特開２００６−１９７０４５号公報
【非特許文献】
【０００８】
【非特許文献１】ＣＡＮ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ２．０（Ｒｏｂｅｒｔ  Ｂｏｓｃｈ  ＧｍｂＨ）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来の技術を用いて、所定時間で応答を返すようなバス型ネットワークの伝送路の一部を無線通信で中継する場合、次のような問題がある。まず、リトライに対して応答を出力する方式では、毎回リトライが発生してしまうためにバスの占有時間が増大し、同じバスに接続された他のノードがこの間にデータを送信することができない。また、ダミーデータを付加する方式では、同じバス上の全てのノードにダミーデータを除去する機能を追加する必要があり、大きな変更コストを要する。
【００１０】
上記の課題に鑑み、本発明は、リトライの発生を低減し、既存のノードに対する変更コストを抑えつつ、所定時間で応答を返すようなバス型ネットワークの伝送路の一部を中継する技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成する本発明に係る通信システムは、
バス型ネットワークに接続された第１の端末と、他のバス型ネットワークに接続された第２の端末と、前記第１の端末と前記第２の端末との通信を中継する中継装置とを備える通信システムであって、
前記第１の端末は、
送信すべきデータにダミーデータを付加するダミーデータ付加手段と、
前記中継装置を介して送信するデータに前記ダミーデータを付加するように前記ダミーデータ付加手段を制御するダミーデータ付加制御手段と、を備え、
前記第２の端末は、
前記第１の端末からデータを受信してから所定時間で応答する応答手段を備え、
前記中継装置は、
前記第１の端末から前記第２の端末へ送信されるデータに付加されている前記ダミーデータを除去して中継を行うダミーデータ除去手段を備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、リトライの発生を低減し、既存のノードに対する変更コストを抑えつつ、所定時間で応答を返すようなバス型ネットワークの伝送路の一部を中継することができる。
【図面の簡単な説明】
【００１３】
【図１】ロボット制御システムの全体構成を表す図。
【図２】ロボット制御システムの内部構成を表す図。
【図３】ノード間でやり取りされるデータの構造を表す図。
【図４】メッセージと応答の関係を表す図。
【図５】全体制御部１０１の内部構成を表す図。
【図６】無線中継したときのロボット制御システムの内部構成を表す図。
【図７】無線中継したときの全体制御部６０１の内部構成を表す図。
【図８】ダミーデータ付加部７０１の動作を説明する図。
【図９】無線中継装置６００の内部構成を表す図。
【図１０】メッセージが無線中継装置によって中継される様子を表す図。
【図１１】各ノード間で発生する通信の内容をまとめた図。
【図１２】ダミーデータ付加制御部７０２が保持する情報を表す図。
【図１３】ダミーデータ除去部９０２の動作の詳細を表す図。
【図１４】第二の実施形態における無線中継装置６００の内部構成を表す図。
【図１５】接続情報保持部１４０１が保持する接続情報を表す図。
【発明を実施するための形態】
【００１４】
（第１実施形態）
まず図１を参照して、本発明を適用可能な通信システムとしてのロボット制御システムの全体構成を説明する。全体制御部１０１は、アーム１００と、その末端に取り付けられたハンド１１０とを制御して、加工対象物１２０に対して所定の加工を行う。アーム１００は、関節１０２、関節１０３のような関節を複数有する。アーム１００の根元にある関節１０２は、アーム１００全体の傾きを調節するための関節であり、関節１０３は、ハンド１１０を回転させるための関節である。ハンド１１０は、ハンド制御部１１１と、指関節１１２のような複数の指関節を持つ指とを有する。ハンド制御部１１１については後述する。指関節１１２は、指の曲げ角度を調節するための関節である。
【００１５】
次に図２を参照して、本発明を適用可能なロボット制御システムの内部構成を説明する。関節１０２は、関節制御部２０２と、モータ２２１と、エンコーダ２２２とを備える。モータ２２１は、関節１０２を曲げる力を発生させる。エンコーダ２２２は、関節１０２の現在の曲げ角度を検出する。
【００１６】
関節制御部２０２は、エンコーダ２２２から関節１０２の現在の曲げ角度を繰り返し取得しながら、モータ２２１を制御して指示された角度まで関節１０２を曲げるための力を発生させる。関節制御部２０２は、エンコーダ２２２から取得した角度が所定の角度に一致したらモータ２２１を停止して、関節１０２をその角度で固定する。関節１０３と指関節１１２もそれぞれモータおよびエンコーダを有しており、関節制御部２０２と同様の制御を行う。
【００１７】
ここで、加工対象物１２０を把持して別の位置に移動させることを例として、ロボット制御システムの動作を説明する。
【００１８】
全体制御部１０１は、関節制御部２０２に対して関節１０２の目標角度を通知することにより、その角度まで関節１０２を曲げるよう指示する。関節制御部２０２は、関節１０２が目標角度に達したら全体制御部１０１に動作完了を通知する。全体制御部１０１は、関節制御部２０２から動作完了を通知されたら、関節制御部２０２に対して次の目標角度を通知する。全体制御部１０１は、このような通信を関節１０２や関節１０３との間で繰り返すことによりアーム１００を動作させて、ハンド１１０が加工対象物１２０を把持できる位置と角度になるように制御する。目標角度の情報は予め全体制御部１０１内部のＲＯＭ等に設定されている。
【００１９】
ハンド制御部１１１は、指関節制御部２１２との間で、全体制御部１０１と関節制御部２０２との間と同様の通信を行う。これによりハンド１１０の指を制御して加工対象物１２０を把持する制御を行う。
【００２０】
全体制御部１０１は、ハンド１１０が加工対象物１２０に近接したら、ハンド制御部１１１に対して「把持せよ」という指示を出す。これを受けてハンド制御部１１１は、指関節１１２の指関節制御部２１２や他の指関節を制御して加工対象物１２０を把持する動作を実行する。把持する動作が完了したら、ハンド制御部１１１は、全体制御部１０１に対して動作完了を通知する。この後、全体制御部１０１は、アーム１００の各関節を制御して、ハンド１１０を所定の位置まで移動させ、ハンド制御部１１１に対して「解放せよ」という指示を出す。これを受けてハンド制御部１１１は、指関節制御部２１２や他の指関節を制御して加工対象物１２０を解放する動作を実行する。
【００２１】
以上のような制御により、加工対象物１２０を把持して別の位置に移動させることができる。ここで、制御に必要な指示や応答は有線の伝送路２００を介して行われる。全体制御部１０１、関節制御部２０２、関節制御部２０３、ハンド制御部１１１、指関節制御部２１２は、伝送路２００に接続されるノードである。これらのノードと伝送路２００とは、一つのバス型ネットワークを構成している。
【００２２】
図１１を参照して、これらのノード間で発生する通信内容を示す表１１００について説明する。表１１００において、各行は送信ノードを表し、各列は受信ノードを表す。例えば欄１１０１は、送信ノードである全体制御部１０１から受信ノードである関節制御部２０２に対して目標角度の指示が送信されることを示している。また、空欄は該当するノード間で通信が発生しないことを表す。例えば欄１１０２は、関節制御部２０２からハンド制御部１１１へのデータ送信が発生しないことを示している。図１１の例では、全体制御部１０１は、関節制御部２０２および関節制御部２０３へ目標角度の指示を送信し、ハンド制御部１１１へ把持／解放指示を送信する。関節制御部２０２および関節制御部２０３は、全体制御部１０１へ動作完了通知を送信する。ハンド制御部１１１は、全体制御部１０１へ動作完了通知を送信し、指関節制御部２１２へ目標角度指示を送信する。指関節制御部２１２は、ハンド制御部１１１へ動作完了通知を送信する。
【００２３】
図３（ａ）は、伝送路２００に接続されるノード間でやり取りされるデータ構造を示す。各ノード間の通信プロトコルは、機器制御の分野で広く用いられているＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のプロトコルに準ずるものとする。図３（ａ）において、データフレーム３００は、各ノード間で行われる通信の単位となるフレームである。データフレーム３００は、送信ノードが出力するメッセージ３０１と、受信ノードが出力する応答３０２と、その間のＣＲＣデリミタとを有する。
【００２４】
メッセージ３０１は、ヘッダと、ペイロードと、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）とを有する。ヘッダには、少なくともデータフレームの先頭を表すＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）、データの種別を表すＩＤ、ペイロードのバイト数を表すデータ長が含まれる。ＩＤは１１ビットの固定長であり、本実施形態では１１ビットのうち８ビットを宛先アドレスとして使用するものとする。
【００２５】
宛先アドレスは、データフレーム３００がどのノード宛てのものであるかを表す情報である。伝送路２００に接続された各ノードは、同じバス上で他のノードと重複しない固有の数値で表されるアドレスを持つ。例えば全体制御部１０１のアドレスは、図２に示されるように「１０１」であり、関節制御部２０２のアドレスは「２０２」である。例えば、関節制御部２０２は、受信したメッセージフレームの宛先アドレスが「２０２」である場合に、そのメッセージフレームが自分宛であると判断し受信データの処理を行う。なお、１１ビットのＩＤのうち、８ビットを宛先アドレスとして使用するが、残りの３ビットは未使用である。未使用ビットは０とする。
【００２６】
ペイロードには、送信ノードから受信ノードに通知する内容を示すデータが格納される。例えば全体制御部１０１から関節制御部２０２へ関節１０２の目標角度が通知されるが、このときペイロードには、このペイロードの内容は角度情報であることを表す識別子と、角度の数値とが格納される。ペイロードの長さは可変である。
【００２７】
ＣＲＣは、誤り検出のための情報である。ＣＲＣにはヘッダとペイロードの各ビットから計算される１５ビットの値が格納される。受信ノードは、受信したメッセージのヘッダとペイロードからＣＲＣの値を計算し、その値が受信したメッセージに含まれるＣＲＣと一致すれば正しく受信できたと判断する。
【００２８】
応答３０２は、受信ノードが出力する応答であり、１ビットのＡＣＫスロットと、１ビットのＡＣＫデリミタと、７ビットのＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｒａｍｅ）との計９ビットの情報を有する。受信ノードは、受信したデータフレームのＣＲＣが正しい場合すなわちＡＣＫの場合には、ＡＣＫスロットを０、ＥＯＦを全て１として送信する。受信ノードは、受信したデータフレームのＣＲＣが異なる場合すなわちＮＡＣＫの場合には、ＡＣＫスロットを１、ＥＯＦの上位６ビットを０として送信する。ＡＣＫデリミタは常に１で固定である。図３（ｂ）は、これらをまとめた表３１０を示す。表３１０は、受信ノードが出力する９ビットの応答の値を２進数で表した表である。すなわち、応答３０２は送信元への送達確認情報として使用可能である。
【００２９】
送信ノードが出力するメッセージ３０１と、受信ノードが出力する応答３０２との間には、１ビットの空き時間がある。この区間はＣＲＣデリミタと呼ばれる。図４は、データフレームにおけるメッセージと応答との関係を表す。受信ノードは、送信ノードからメッセージ３０１を受信したら、その末尾から時間Ｔ１後に応答３０２の送信を開始しなければならない。Ｔ１はＣＲＣデリミタの分、すなわち１ビットに相当する時間である。例えばビットレートが１メガビット毎秒である場合、Ｔ１は１マイクロ秒である。
【００３０】
図５は、全体制御部１０１の内部構成を表す。全体制御部１０１は、受信部５０１と、誤り検出部５０２と、受信データ処理部５０３と、送信データ生成部５０４と、送信部５０５とを備える。
【００３１】
受信部５０１は、伝送路２００上のデータフレームを検出する。誤り検出部５０２は、受信部５０１が検出したメッセージのＣＲＣの値を確認してＡＣＫまたはＮＡＣＫの判定を行い、図４に示されるタイミングで応答を出力するように送信部５０５に指示する。ただし自局がメッセージを出力したデータフレームに対しては応答を出力しない。受信データ処理部５０３は、受信部５０１が受信したメッセージのヘッダの宛先アドレスが自局アドレスと一致する場合に、ペイロードの内容を解析して処理を行う。例えば、関節制御部２０２から目標角度に到達したというペイロードを持つメッセージを受信部５０１が受信したら、受信データ処理部５０３は、関節制御部２０２に対して次の目標位置を送信するように送信データ生成部５０４を制御する。送信データ生成部５０４は、受信データ処理部５０３の指示に基づいて図３の形式でメッセージ３０１を生成して送信部５０５へ出力する。送信部５０５は、誤り検出部５０２から指示された応答や、送信データ生成部５０４から出力されたメッセージを、伝送路２００へ出力する。
【００３２】
なお、関節制御部２０２、関節制御部２０３、ハンド制御部１１１、指関節制御部２１２の内部構成は、受信データ処理部５０３および送信データ生成部５０４の処理内容が異なる他は、全体制御部１０１と同一の構成である。例えば、関節制御部２０２の受信データ処理部５０３は、目標角度情報を抽出して図２のモータ２２１を制御する。送信データ生成部５０４は、図２のエンコーダ２２２から現在の角度情報を取得し、最後に受信した目標角度情報と一致したら、目標に到達したという情報をペイロードに格納したメッセージを生成する。
【００３３】
次に、以上説明したロボット制御システムにおいて、図１のアーム１００とハンド１１０との間を無線中継する場合の構成を説明する。
【００３４】
図６は、アーム１００とハンド１１０との間を無線中継したときのロボット制御システムの内部構成を表す。無線中継しない場合の図２との違いは、有線の伝送路２００の途中に無線中継装置６００と無線中継装置６１０とを設けた点と、全体制御部１０１とハンド制御部１１１とを、それぞれ全体制御部６０１とハンド制御部６１１とに置き換えた点である。無線中継装置６００と無線中継装置６１０とは、アーム１００およびハンド１１０の間において、伝送路２００を流れるデータを無線通信により中継伝送する。
【００３５】
また、無線中継装置６００および無線中継装置６１０によって分断されたバス型ネットワークについて、無線中継装置６００が所属する側をクラスタＣ０、無線中継装置６１０が所属する側をクラスタＣ１と定義する。
【００３６】
なお、以下の説明において全体制御部６０１およびハンド制御部６１１のアドレスについて言及する箇所がある。全体制御部６０１は全体制御部１０１と同じアドレス「１０１」を持ち、ハンド制御部６１１はハンド制御部１１１と同じアドレス「１１１」を持つものとする。
【００３７】
図７は、全体制御部６０１の内部構成を示す。図５において説明した全体制御部１０１との違いは、全体制御部６０１は、ダミーデータ付加部７０１と、ダミーデータ付加制御部７０２とをさらに備える点である。図８を参照して、ダミーデータ付加部７０１の動作を説明する。ダミーデータ付加部７０１は、送信データ生成部５０４が生成するメッセージ３０１に、ヘッダ８０２とダミーデータ８０３とＣＲＣ８０４とを付加してメッセージ８０１を生成する。ヘッダ８０２では、メッセージ３０１のヘッダ８１０においては未使用で常に０であった３ビットがダミーデータ付加の有無を示すダミーデータ識別子となっている。ダミーデータ識別子の値は全て１である。またヘッダ８０２に格納されるデータ長には、メッセージ８０１におけるペイロード、すなわちメッセージ３０１全体のバイト数が設定される。ヘッダ８０２のその他の構成はメッセージ３０１のヘッダ８１０と同一である。
【００３８】
ダミーデータ８０３は、ダミーデータ付加制御部７０２によって指定される長さのビット列である。ダミーデータ８０３の各ビットの値は任意であり、例えば全て０とする。ＣＲＣ８０４は、ヘッダ８０２とメッセージ３０１とダミーデータ８０３とから計算される１５ビットのＣＲＣである。
【００３９】
ダミーデータ付加制御部７０２は、送信データ生成部５０４が生成するメッセージを監視し、後述の条件を満たす時にのみダミーデータを付加するようにダミーデータ付加部７０１を制御する。ここで、ダミーデータ８０３の長さは、無線中継装置６００と無線中継装置６１０との間で生じる中継遅延時間に基づいて決定する。その方法については後に図１０を参照して説明する。
【００４０】
次に、ダミーデータを付加する条件について説明する。全体制御部６０１のダミーデータ付加制御部７０２は、自ノードと異なるクラスタに属するノードにメッセージを送信する場合にのみダミーデータを付加するようにダミーデータ付加部７０１を制御する。この制御を実行するために、ダミーデータ付加制御部７０２は、図１２の表１２００のような情報を内部に予め保持している。表１２００は、各ノードがどのクラスタに属するかを表す。例えば、全体制御部６０１はアドレス「１０１」を有するので、欄１２０１に示されるようにクラスタＣ０に所属している。ダミーデータ付加制御部７０２は、送信データ生成部５０４が生成するメッセージの宛先アドレスを監視し、表１２００においてその宛先アドレスに対応するクラスタが自ノードと同一か否か確認する。もし異なる場合には、ダミーデータ付加部７０１に対して、そのメッセージにダミーデータを付加するように制御する。反対に、同一の場合はダミーデータを付加させないように制御する。
【００４１】
図９は、無線中継装置６００の内部構成を表す。無線中継装置６００は、有線受信部９０１と、ダミーデータ除去部９０２と、無線送信部９０３と、無線受信部９０４と、有線送信部９０５と、応答中継制御部９０６と、応答遅延制御部９０７とを備える。
【００４２】
有線受信部９０１は、伝送路２００上のデータを１ビットずつサンプリングしてダミーデータ除去部９０２および応答中継制御部９０６へ出力する。
【００４３】
ダミーデータ除去部９０２は、有線受信部９０１から取得したデータから図８のメッセージ８０１を検出し、さらにそのメッセージからダミーデータを削除したデータを、所定のサイズに区切って無線送信部９０３へ出力する。また、ダミーデータ除去部９０２は、ダミーデータを含まないメッセージについては破棄する。
【００４４】
ここで図１３のフローチャートを参照して、ダミーデータ除去部９０２の動作の詳細を説明する。
【００４５】
Ｓ１３０１において、ダミーデータ除去部９０２は、伝送路２００を流れるメッセージのヘッダのＳＯＦを検出したか否かを判定する。ＳＯＦを検出したと判定された場合（Ｓ１３０１；ＹＥＳ）、Ｓ１３０２へ進む。一方、ＳＯＦを検出していないと判定された場合（Ｓ１３０１；ＮＯ）、検出するまで待機する。
【００４６】
Ｓ１３０２において、ダミーデータ除去部９０２は、ヘッダの末尾まで受信するまで待機する。
【００４７】
Ｓ１３０３において、ダミーデータ除去部９０２は、ヘッダのダミーデータ識別子を参照して、現在のメッセージがダミーデータを含むか否かを判定する。ダミーデータ有りと判定された場合（Ｓ１３０３；ＹＥＳ）、Ｓ１３０４へ進む。一方、ダミーデータ無しと判定された場合（Ｓ１３０３；ＮＯ）、処理を終了する。なおダミーデータを含む場合、メッセージは図８のメッセージ８０１の構造を持つ。
【００４８】
Ｓ１３０４において、ダミーデータ除去部９０２は、図８のヘッダ８０２のデータ長の値を参照してメッセージ８０１におけるペイロード、すなわちメッセージ３０１の末尾まで受信したか否かを判定する。メッセージ３０１の末尾まで受信したと判定された場合（Ｓ１３０４；ＹＥＳ）、Ｓ１３０８へ進む。一方、まだメッセージ３０１の末尾まで受信していないと判定された場合（Ｓ１３０４；ＮＯ）、Ｓ１３０５へ進む。
【００４９】
Ｓ１３０５において、ダミーデータ除去部９０２は、有線受信部９０１から受信したビットの値をバッファに保持する。このバッファは、ダミーデータ除去部９０２の内部に存在し、所定のサイズを持つ。
【００５０】
Ｓ１３０６において、ダミーデータ除去部９０２は、バッファが満杯になったか否かを判定する。バッファが満杯になったと判定された場合（Ｓ１３０６；ＹＥＳ）、Ｓ１３０７へ進む。一方、バッファが満杯になっていないと判定された場合（Ｓ１３０６；ＮＯ）、Ｓ１３０４に戻る。
【００５１】
Ｓ１３０７において、ダミーデータ除去部９０２は、バッファの内容を無線送信部９０３へ出力した上でバッファをクリアする。その後、Ｓ１３０４に戻る。
【００５２】
Ｓ１３０８において、ダミーデータ除去部９０２は、バッファの内容を無線送信部９０３へ出力するとともにバッファの内容をクリアして終了する。
【００５３】
無線送信部９０３は、ダミーデータ除去部９０２および応答中継制御部９０６から入力されたデータを無線で送信する。送信する相手は、無線中継装置６００の相手側、すなわち無線中継装置６１０である。この際、他の無線通信と混信しないように必要に応じて無線通信用のヘッダを付加し、変調処理などを行う。
【００５４】
無線受信部９０４は、無線中継装置６１０から無線通信で受信した信号を復調し、有線送信部９０５に出力する。有線送信部９０５は、無線受信部９０４から受信したデータを伝送路２００に出力する。
【００５５】
応答中継制御部９０６は、有線送信部９０５がメッセージを出力した直後に１ビットのＣＲＣデリミタを挟んで出現する９ビットを有線受信部９０１から取得し、無線送信部９０３に出力する。この９ビットは、有線送信部９０５が出力したメッセージに対する応答である。
【００５６】
応答遅延制御部９０７は、有線受信部９０１が受信するメッセージの次のＣＲＣデリミタを検出する。ここで、有線送信部９０５が、ＣＲＣデリミタよりも早いタイミングで無線受信部９０４から応答を受信している場合は、ＣＲＣデリミタの直後に応答を出力するように有線送信部９０５を制御する。このようなケースは、ダミーデータ付加制御部７０２によって決定されるダミーデータ長が、無線中継装置６００と６１０における中継遅延時間よりも長い場合に発生する。
【００５７】
図１０を参照して、ダミーデータを含むメッセージが無線中継装置によって中継される様子を説明する。送信ノード（第１の端末）が生成したメッセージ８０１は、送信側の無線中継装置６００のダミーデータ除去部９０２によって一部除去され、メッセージ３０１が受信ノード（第２の端末）に届く。また、受信ノードが出力した応答は、送信側および受信側の各無線中継装置によって中継されて送信ノードに届く。図１０において、ヘッダ１００１は、無線中継装置６００の無線送信部９０３が付加する無線通信用のヘッダである。ペイロード１００２は、無線通信のペイロードであり、その中身は、ダミーデータ除去部９０２によってバッファされた送信データ一回分の内容が変調されたものである。
【００５８】
ここでＴ２は、メッセージ３０１が無線中継されることによって生じる遅延時間である。Ｔ３は、応答が無線中継されることによって生じる遅延時間である。Ｔ４は、ダミーデータとＣＲＣを送信ノードが出力するのに要する時間である。ここで、Ｔ４＝Ｔ２＋Ｔ３が成り立つ場合には、メッセージ８０１の末尾と、応答の先頭との間の時間Ｔ１はＣＲＣデリミタ１ビットの長さと一致する。このため、送信ノードのダミーデータ付加制御部７０２は、Ｔ４＝Ｔ２＋Ｔ３が成り立つようにダミーデータの長さを決定する。例えば、Ｔ２が３０マイクロ秒、Ｔ３が１０マイクロ秒で、通信のビットレートが１メガビット毎秒であるとする。ＣＲＣは１５ビット固定であるため、Ｔ４＝３０＋１０＝４０マイクロ秒とするためには、ダミーデータ長を２５ビットとする。
【００５９】
ここで、Ｔ２とＴ３は物理的な伝送遅延に基づく時間であるのに対し、Ｔ４はビット長の整数倍でしか設定できない。したがって、端数が出てＴ４＝Ｔ２＋Ｔ３とすることができない場合には、ダミーデータ付加制御部７０２はＴ４＞Ｔ２＋Ｔ３となるようなＴ４を選択する。Ｔ４＞Ｔ２＋Ｔ３の場合であっても、送信側の無線中継装置６００の応答遅延制御部９０７が応答出力のタイミングを遅延させることでＴ１を１ビット分の長さに調節することができる。
【００６０】
無線中継装置６１０は、無線中継装置６００と同一の構成である。ただし無線中継装置６１０の無線通信の相手は無線中継装置６００である。
【００６１】
ハンド制御部６１１とハンド制御部１１１との差異は、全体制御部６０１と全体制御部１０１との差異と同一である。すなわち、ハンド制御部６１１は、ハンド制御部１１１にダミーデータ付加部７０１とダミーデータ付加制御部７０２を追加したものである。
【００６２】
以上のような構成により、全体制御部６０１から無線中継装置６００および無線中継装置６１０を超えてハンド制御部６１１にメッセージを送信する場合にも、ハンド制御部６１１の応答をプロトコルで規定された時間Ｔ１後に返すことができる。ハンド制御部６１１から無線中継装置６００および無線中継装置６１０を超えて全体制御部６０１にメッセージを送信する場合も同様である。
【００６３】
ところで、関節制御部２０２は、ハンド制御部１１１と指関節制御部２１２にメッセージを送信する場合には無線中継装置６００、無線中継装置６１０を経由する必要がある。しかしながら、図１１の表１１００にあるように、関節制御部２０２は、ハンド制御部１１１と指関節制御部２１２にはメッセージを送信する機会がない。このようなノードにはダミーデータ付加部７０１とダミーデータ付加制御部７０２を備える必要がなく、図５の構成のままで良い。関節制御部２０３と指関節制御部２１２についても同様に、図５の構成のままで良い。
【００６４】
ここで、全体制御部６０１からハンド制御部６１１に宛てたメッセージ８０１は、同じ伝送路２００に接続されている関節制御部２０２、関節制御部２０３でも受信される。メッセージ８０１も図３のメッセージ３０１と同様にプロトコルとして正しい形式であるため、関節制御部２０２の動作に通信ができなくなる等の影響を与えることはない。すなわち、無線中継装置６００、無線中継装置６１０を超えてメッセージを送信する必要のない関節制御部２０２は、無線中継装置６００、６１０を追加した場合に一切の変更を加えなくても、従来通り動作する。関節制御部２０３と指関節制御部２１２についても同様である。
【００６５】
したがって、本実施形態によれば、図２の構成で動作していたロボット制御システムは、全体制御部とハンド制御部にダミーデータ付加機能を追加するのみで、図６の構成でも動作させることができる。このような小さな変更のみでアームとハンドの間の通信を無線通信で中継できるため、以下のような無線中継による効果を低コストで得ることができる。まず配線のたわみや重量による制御の誤差が軽減されるため、動作精度を向上させることができる。さらに、可動部に配線を通さないことで配線の寿命を向上させ、メンテナンスのためのコストを低減することができる。また、可動部の配線のねじれに起因する動作制限がなくなり、作業のスループットを向上させることも可能となる。
【００６６】
なお、本実施形態では、伝送路２００に接続された各ノードがＣＡＮの通信プロトコルに準じて通信を行う構成について説明したが、ＣＡＮ以外の通信プロトコルである場合にも本発明が適用可能である。例えば、応答遅延制御部９０７においてＣＲＣデリミタを検出する代わりに、メッセージの末尾を検出する。このようにすると、伝送路２００に接続された各ノードが、受信メッセージに対して所定時間以内に応答を返すような通信プロトコルで通信する場合にも本発明を適用可能である。さらに、受信ノードが返す応答は、送達確認以外の情報であってもよい。例えば、関節制御部２０２は、目標角度指示のメッセージを受信したら、その応答として現在の関節の曲げ角度情報を所定時間で返すような構成であっても本発明を適用可能である。
【００６７】
（第２実施形態）
第２実施形態は、無線中継装置６００および無線中継装置６１０の内部構成が第１実施形態と異なる点と、全体制御部６０１およびハンド制御部６１１のダミーデータ付加制御部７０２の動作が異なる点を除いて、第１実施形態と同一である。以下、相違点のみ説明する。
【００６８】
図１４は、無線中継装置６００の内部構成を表す。なお無線中継装置６１０の内部構成は無線中継装置６００と同一である。接続情報保持部１４０１は、自局と同一のクラスタに所属するノードのアドレスを接続情報として保持する。無線中継装置６００の接続情報保持部１４０１が保持する接続情報を、図１５の表１５０１に示す。図６において、無線中継装置６００と同一クラスタに所属するノードは、アドレス「１０１」と「２０２」と「２０３」のノードである。また、無線中継装置６００のクラスタをクラスタＣ０として定義している。表１５０１は、このような接続情報を表すものである。同様に、無線中継装置６１０の接続情報保持部１４０１は、表１５０２のような接続情報を持つ。
【００６９】
これら接続情報は、伝送路２００において、無線中継装置６００と無線中継装置６１０をどこに接続するか決定した後にユーザが接続情報保持部１４０１に設定しても良いし、初期通信時に通信で自動的に生成しても良い。例えば、接続情報保持部１４０１は、初期通信時に宛先アドレス「０」「１」「２」と順番にペイロードが空の接続確認メッセージを送信するよう有線送信部９０５を制御し、その応答の有無を確認する。応答があったときの宛先アドレスを持つノードが自ノードと同一のクラスタに存在することとなる。このようにして接続情報保持部１４０１は、表１５０１または表１５０２のような接続情報を得ることも可能である。
【００７０】
無線中継装置６００と無線中継装置６１０は、それぞれの接続情報保持部１４０１が持つ情報を無線通信にて交換し、表１５０３のような情報を得る。表１５０３は、表１５０１と表１５０２をマージしたものである。
【００７１】
中継時間記憶部１４０２は、無線中継装置６００と無線中継装置６１０の間でデータを中継する際の中継遅延時間の情報を保持する。具体的には、この時間は図１０のＴ２とＴ３の和であり、既知の値であるとする。ダミーデータ付加条件生成部１４０３は、接続情報保持部１４０１が持つ表１５０３の情報と、中継時間記憶部１４０２が保持する中継遅延時間とを合わせて、ダミーデータ付加条件とする。さらにダミーデータ付加条件生成部１４０３は、生成したダミーデータ付加条件を含んだメッセージを生成し、自局と同一のクラスタに所属するノードアドレスを宛先として送信するように有線送信部９０５を制御する。送信先を決定するにあたって、無線中継装置６００のダミーデータ付加条件生成部１４０３は表１５０１の情報を使用する。同様に無線中継装置６１０のダミーデータ付加条件生成部１４０３は表１５０２の情報を用いてダミーデータ付加条件を含むメッセージの送信先を決定する。
【００７２】
ここで、全体制御部６０１およびハンド制御部６１１のダミーデータ付加制御部７０２は、第２実施形態においては表１２００の情報に代えて表１５１０の情報を初期値として保持している。ダミーデータ付加制御部７０２は、ダミーデータ付加条件を含んだメッセージを受信した場合は、内部に持つ表１５１０の情報を、メッセージに含まれる条件に書き換える。図６の構成では表１５０３の情報が送信されるので、表１５１０は表１５０３の内容で書き換えられる。ダミーデータ付加制御部７０２は、ダミーデータ付加条件を含んだメッセージに含まれる中継遅延時間Ｔ２＋Ｔ３から、第１実施形態と同様の手順でダミーデータの長さを決定する。
【００７３】
なお、関節制御部２０２、関節制御部２０３、指関節制御部２１２はダミーデータ付加制御部７０２を持たない。したがってダミーデータ付加条件を含んだメッセージを受信しても特に処理は行わない。
【００７４】
ここで、無線中継装置６００、無線中継装置６１０を取り去って、一本の伝送路２００に全てのノードを接続する構成に戻す場合を考える。このとき、ダミーデータ付加制御部７０２は、表１５１０の情報に基づいてダミーデータを付加するか否かを決定することになる。表１５１０では全てのノードが同一クラスタに所属するため、ダミーデータが付加されることはない。一方、無線中継装置６００、無線中継装置６１０で中継する場合には、ダミーデータ付加制御部７０２は、表１５０３の情報に基づいてダミーデータを付加するか否かを決定することになる。この場合、例えば全体制御部６０１からハンド制御部６１１にメッセージ送信するときにはダミーデータが付加される。
【００７５】
すなわち、第２実施形態によれば、無線中継装置６００、無線中継装置６１０を使用する場合と使用しない場合とで、同一の全体制御部６０１が使用可能となる。さらに、無線中継装置６００、無線中継装置６１０が挿入される位置が変更されたり、ノードが増減する等してクラスタ構成が変化した場合にも、そのクラスタ構成に合わせて表１５０３が設定される。このため、無線中継の有無やクラスタ構成によらずに、同一の全体制御部６０１が使用可能である。ハンド制御部６１１についても同じことが言える。したがって、無線中継の有無やクラスタ構成が変化するたびに、伝送路２００に接続されているノードの処理を変更する必要がなく、無線中継対応のための作業コストを低減することができる。
【００７６】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013232847.tif 000003
【図２】
2013232847.tif 000004
【図３】
2013232847.tif 000005
【図４】
2013232847.tif 000006
【図５】
2013232847.tif 000007
【図６】
2013232847.tif 000008
【図７】
2013232847.tif 000009
【図８】
2013232847.tif 000010
【図９】
2013232847.tif 000011
【図１０】
2013232847.tif 000012
【図１１】
2013232847.tif 000013
【図１２】
2013232847.tif 000014
【図１３】
2013232847.tif 000015
【図１４】
2013232847.tif 000016
【図１５】
2013232847.tif 000017