(57)【要約】【課題】複数のノードが異なる制御データに対応する処理を同時刻に実行する。【解決手段】  ホストコントローラ２３１は、複数のノードＮ1乃至Ｎnに異なる処理を同時刻に実行させる場合、ノードＮ1乃至Ｎn宛の異なる制御データを、１ビット単位に分割した分割データとし、ノードＮ1乃至Ｎn宛の同一ビット目の分割データを配置したインタリーブパケットを作成して、ブロードキャストする。一方、インタリーブパケットを受信した複数のノードＮ1乃至Ｎnは、インタリーブパケットの所定の位置から自身宛の１ビットの分割データを抽出して制御データを再構成し、制御データに基づいた処理を実行する。本発明は、例えば、１対多の通信を行なう通信システムに適用できる。【選択図】図１０
2005123745.tif 000002
【特許請求の範囲】
【請求項１】
ホストコントローラと複数のノードとが通信を行なう通信システムにおいて、
前記ホストコントローラは、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割手段と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成手段と、
前記インタリーブパケットをブロードキャストするブロードキャスト手段と
を備え、
前記複数のノードそれぞれは、
前記インタリーブパケットを受信する受信手段と、
前記インタリーブパケットから、前記自分宛のデータの分割データを抽出する抽出手段と、
前記抽出手段が抽出した前記分割データから、自分宛のデータを再構成する再構成手段と
を備える
ことを特徴とする通信システム。
【請求項２】
複数のノードとの間で、通信を行なう通信装置において、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割手段と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成手段と、
前記インタリーブパケットをブロードキャストするブロードキャスト手段と
を備えることを特徴とする通信装置。
【請求項３】
前記分割手段は、前記データを、固定長の前記分割データに分割し、
前記作成手段は、前記複数のノードそれぞれ宛の前記分割データを、前記インタリーブパケットの、前記複数のノードそれぞれごとに固定の位置に配置する
ことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記分割手段は、前記データを、１ビット単位の分割データに分割する
ことを特徴とする請求項３に記載の通信装置。
【請求項５】
複数のノードとの間で、通信を行なう通信方法であって、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップと、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成ステップと、
前記インタリーブパケットをブロードキャストするブロードキャストステップと
を含むことを特徴とする通信方法。
【請求項６】
複数のノードとの間で、通信を行なう処理をコンピュータに行なわせるプログラムであって、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップと、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成ステップと、
前記インタリーブパケットをブロードキャストするブロードキャストステップと
を含むことを特徴とするプログラム。
【請求項７】
複数のノードとの間で、通信を行なう処理をコンピュータに行なわせるプログラムが記録されているプログラム記録媒体であって、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップと、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成ステップと、
前記インタリーブパケットをブロードキャストするブロードキャストステップと
を含むことを特徴とするプログラムが記録されているプログラム記録媒体。
【請求項８】
ホストコントローラとの間で、通信を行なう複数の通信装置のうちの１つの通信装置において、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信手段と、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出手段と、
前記抽出手段が抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成手段と
を備えることを特徴とする通信装置。
【請求項９】
前記抽出手段は、前記インタリーブパケットの固定の位置に配置された前記自分宛ての分割データを抽出する
ことを特徴とする請求項８に記載の通信装置。
【請求項１０】
ホストコントローラとの間で、通信を行なう複数の通信装置のうちの１つの通信装置における通信方法であって、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップと、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出ステップと、
前記抽出ステップが抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成ステップと
を含むことを特徴とする通信方法。
【請求項１１】
ホストコントローラとの間で、通信を行なう複数の通信装置のうちの１つの通信装置における通信処理をコンピュータに行なわせるプログラムであって、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップと、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出ステップと、
前記抽出ステップが抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成ステップと
を含むことを特徴とするプログラム。
【請求項１２】
ホストコントローラとの間で、通信を行なう複数の通信装置のうちの１つの通信装置における通信処理をコンピュータに行なわせるプログラムが記録されているプログラム記録媒体であって、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップと、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出ステップと、
前記抽出ステップが抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成ステップと
を含むことを特徴とするプログラムが記録されているプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体に関し、特に、複数のノードそれぞれが処理を（ほぼ）同時刻に実行することができるようにする通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体に関する。
【背景技術】
【０００２】
例えば、ロボットにおいては、その内蔵するホストコントローラが、各部のアクチュエータに信号を送信することにより、アクチュエータそれぞれが駆動する。これにより、ロボットは、各種の行動を起こす。このようなロボットにおいて、ホストコントローラは、各部のアクチュエータに設けられた制御回路へ、アクチュエータそれぞれに処理を実行させる制御データを送信する。従って、ロボットにおいては、ホストコントローラと多数の制御回路とによって、通信システムが構成されている。いま、ホストコントローラと通信する通信相手である制御回路をノードＰ1乃至Ｐnと呼ぶこととする。
【０００３】
また、ホストコントローラは、制御データＤ1によってノードＰ1を制御し、制御データＤ2によってノードＰ2を制御し、以下、同様にして、制御データＤnによってノードＰnを制御することとする。例えば、ノードＰ1を制御する制御データＤ1は、１ビット目にデータＤ1,1が、２ビット目にデータＤ1,2が、以下、同様に、ｍビット目にデータＤ1,mがそれぞれ配置され、データＤ1,1乃至Ｄ1,mで構成されているとする。同様に、ノードＰ2を制御する制御データＤ2は、データＤ2,1乃至Ｄ2,mで構成され、以下、同様にして、ノードＰnを制御する制御データＤnは、データＤn,1乃至Ｄn,mで構成されているとする。
【０００４】
なお、その制御データＤiは、例えば、ノードＰiに対するコマンドや必要なデータなどから構成される。
【０００５】
図１は、ホストコントローラが、制御データＤiを各ノードＰi（i＝１，２，…，n）へ送信するときのパケットの内容を示している。ホストコントローラはノードＰiに所定の処理を行わせる場合、ノードＰi宛に、所定の処理を行なうことを指示する制御データＤiを構成するデータＤi,1乃至Ｄi,mの書き込みを要求するパケット（ライトリクエストパケット）を送信する。即ち、制御データＤ1乃至Ｄnを、ノードＰ1乃至Ｐnそれぞれへ送信する場合においては、ホストコントローラは、ノードＰ1宛に制御データＤ1を構成するデータＤ1,1乃至Ｄ1,mの書き込みを要求するパケットを送信する。さらに、ホストコントローラは、ノードＰ2宛に制御データＤ2を構成するデータＤ2,1乃至Ｄ2,mの書き込みを要求するパケットを送信する。以下、同様にして、ノードＰn宛に制御データＤnを構成するデータＤn,1乃至Ｄn,mの書き込みを要求するパケットを送信する。
【０００６】
図２は、従来のロボットの内部に構成されている通信システムにおいて、図１に示した各ノードＰ1乃至Ｐnを制御する制御データＤ1乃至Ｄnを、ホストコントローラが、ノードＰ1乃至Ｐnに送信する処理の流れを示している。ここで、ノードＰ1乃至Ｐnは、インテリジェントな機能を備えており、例えば、パケットの受信、パケットに格納されたデータの解析、および格納されたデータに基づいて、アクチュエータの制御などを行なう。
【０００７】
従来の通信システムにおいては、ホストコントローラが、すべてのノードＰ1乃至Ｐnに対して、それぞれのノードＰiを制御する制御データＤiを送信する場合、例えば、ホストコントローラは、各ノードＰi宛にそのノードＰiを制御する制御データＤiを構成するデータＤi,1乃至Ｄi,mを配置した、その制御データＤiの書き込みを要求するライトリクエストパケットを送信する。そして、各ノードＰiは、自分宛のライトリクエストパケットを受信し、そのライトリクエストパケットに格納されたデータＤi,1乃至Ｄi,mから制御データＤiを取得する。
【０００８】
即ち、ステップＳ１１において、ホストコントローラは、ノードＰ1宛のライトリクエストパケットに制御データＤ1を構成するＤ1,1乃至Ｄ1,mを格納し、ノードＰ1へ送信する。ステップＳ１１からステップＳ１２に進み、ノードＰ1は、ホストコントローラが送信したデータＤ1,1乃至Ｄ1,mが格納されたライトリクエストパケットを受信する。そして、ノードＰ1は、受信したライトリクエストパケットからデータＤ1,1乃至Ｄ1,mを抽出することにより、制御データＤ1を取得する。ステップＳ１２からステップＳ１３に進み、ホストコントローラは、ノードＰ2宛のライトリクエストパケットに制御データＤ2を構成するＤ2,1乃至Ｄ2,mを格納し、ノードＰ2へ送信する。ステップＳ１３からステップＳ１４に進み、ノードＰ2は、データＤ2,1乃至Ｄ2,mが格納されたライトリクエストパケットを受信し、制御データＤ2を取得する。以下、同様の処理が行われ、ステップＳ１５において、ホストコントローラは、最後のノードであるノードＰnへ制御データＤnを構成するＤn,1乃至Ｄn,mを格納したライトリクエストパケットを送信する。ステップＳ１５からステップＳ１６に進み、ノードＰnは、データＤn,1乃至Ｄn,mが格納されたライトリクエストパケットを受信し、制御データＤnを取得する。
【０００９】
このように、ホストコントローラは、それぞれのノードＰiを制御する制御データＤiを配置したライトリクエストパケットを作成し、各ノードＰiに個別に送信する。ノードＰ1乃至Ｐnそれぞれは、自分宛のライトリクエストパケットを受信し、制御データＤiを取得する。（非特許文献１参照）
【００１０】
【非特許文献１】データ通信のすべて  小泉  修、日本実業出版社p.96付近
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来の通信システムでは、前述にように、ホストコントローラが、ノードＰ1乃至Ｐnそれぞれに、各ノードＰi宛のライトリクエストパケットを、順次送信する。このため、ホストコントローラが、最初にライトリクエストパケットを送信するノードＰ1と最後にライトリクエストパケットを送信するノードＰnとでは、ライトリクエストパケットを受信し、制御データを取得する時刻にずれ（タイムラグ）が生じる。このずれは、ノードＰ1乃至Ｐnの数ｎや、制御データのサイズが大となると、大となる。いま、ノードＰiが、制御データを取得後その制御データに対応する処理を実行すると、例えば、ノードＰ1とＰnが処理を実行する時刻には、図２のステップＳ１２でノードＰ1が制御データＤ1を受信した時刻と、ステップＳ１６でノードＰnが制御データＤnを受信した時刻との差だけのずれが発生する。
【００１２】
上述のように、ホストコントローラが送信したライトリクエストパケットを、すべてのノードＰ1乃至Ｐnが受信するまでに時間がかかるという問題があった。
【００１３】
さらに、制御データの容量が大の場合、ノードＰ1乃至Ｐnそれぞれは、受信したライトリクエストパケットから制御データＤ1乃至Ｄnを取得し、その制御データＤiに基づいて、アクチュエータを駆動する等の処理を実行するまでに時間がかかるという問題があった。
【００１４】
従って、ノードＰ1乃至Ｐnが制御するアクチュエータをほぼ同時に駆動しなければならないような行動をロボットにとらせることが困難なことがあった。
【００１５】
そこで、すべてのノードＰ1乃至Ｐnに同時刻に処理を実行させるために、ホストコントローラにおいて、制御データＤiを格納したライトリクエストパケットをすべてのノードＰ1乃至Ｐnに個別に送信した後、処理を実行する合図を格納したライトリクエストパケットをすべてのノードＰ1乃至Ｐnにブロードキャストによって送信する方法がある。即ち、この方法では、ホストコントローラは、各ノードＰiへ、制御データを受信してもすぐに処理を実行しない、という条件のもとに制御データＤiを格納したライトリクエストパケットを送信する。その後、ホストコントローラは、すべてのノードＰ1乃至Ｐnが同一のパケットをほぼ同時刻に受信することができるブロードキャストにより、最も最近に受信した制御データに対応する処理を実行せよ、という合図を格納したライトリクエストパケットを送信する。これにより、すべてのノードＰ1乃至Ｐnは、２番目に受信したブロードキャストによるライトリクエストパケットを受信した時刻、即ち、ほぼ同時刻に、１番目に受信した制御データに基づく処理を実行することができる。
【００１６】
しかしながら、上述の方法では、ホストコントローラからノードＰ1乃至Ｐnそれぞれに対して、ライトリクエストパケットが２回送信されるので、ノードＰ1乃至Ｐnは、処理を実行するのに２つのライトリクエストパケットを処理しなければならない。ノードＰiでは、パケットの受信等が、割り込み処理によって行われるため、１つ目のライトリクエストパケットを受信するのが遅いノード、例えば、ノードＰnは、１つ目のパケットを受信してすぐに２つ目のパケットを受信しなければならず、その受信を確実に行なうための割り込み処理等の量が大きくなるという問題があった。
【００１７】
本発明はこのような状況に鑑みてなされたものであり、複数のノードが処理をほぼ同時刻に実行することができるようにすることを目的としている。
【課題を解決するための手段】
【００１８】
本発明の通信システムは、ホストコントローラが、複数のノード宛のデータそれぞれを分割し、分割データとする分割手段と、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成する作成手段と、インタリーブパケットをブロードキャストするブロードキャスト手段とを備え、複数のノードそれぞれが、インタリーブパケットを受信する受信手段と、インタリーブパケットから、自分宛の分割データを抽出する抽出手段と、抽出手段が抽出した分割データから、自分宛のデータを再構成する再構成手段とを備えることを特徴とする。
【００１９】
本発明の第１の通信装置は、複数のノード宛のデータそれぞれを分割し、分割データとする分割手段と、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成する作成手段と、インタリーブパケットをブロードキャストするブロードキャスト手段とを備えることを特徴とする。
【００２０】
分割手段には、データを、固定長の分割データに分割させ、作成手段には、複数のノードそれぞれ宛の分割データを、インタリーブパケットの、複数のノードそれぞれごとに固定の位置に配置させるようにすることができる。
【００２１】
分割手段には、データを、１ビット単位の分割データに分割させることができる。
【００２２】
本発明の第１の通信方法は、複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップと、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成する作成ステップと、インタリーブパケットをブロードキャストするブロードキャストステップとを含むことを特徴とする。
【００２３】
本発明の第１のプログラムは、複数のノード宛のデータそれぞれを分割させ、分割データとさせる分割ステップと、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成させる作成ステップと、インタリーブパケットをブロードキャストさせるブロードキャストステップとをコンピュータに実行させる。
【００２４】
本発明の第１の記録媒体のプログラムは、複数のノード宛のデータそれぞれを分割させ、分割データとさせる分割ステップと、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成させる作成ステップと、インタリーブパケットをブロードキャストさせるブロードキャストステップとを含むことを特徴とする。
【００２５】
本発明の第２の通信装置は、ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信手段と、インタリーブパケットから、自分宛の分割データを抽出する抽出手段と、抽出手段が抽出した自分宛の分割データから、自分宛のデータを再構成する再構成手段とを備えることを特徴とする。
【００２６】
抽出手段には、インタリーブパケットの固定の位置に配置された自分宛の分割データを抽出させるようにすることができる。
【００２７】
本発明の第２の通信方法は、ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップと、インタリーブパケットから、自分宛の分割データを抽出する抽出ステップと、抽出ステップが抽出した自分宛の分割データから、自分宛のデータを再構成する再構成ステップとを含むことを特徴とする。
【００２８】
本発明の第２のプログラムは、ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信させる受信ステップと、インタリーブパケットから、自分宛の分割データを抽出させる抽出ステップと、抽出ステップが抽出した自分宛の分割データから、自分宛のデータを再構成させる再構成ステップとをコンピュータに実行させることができる。
【００２９】
本発明の第２の記録媒体のプログラムは、ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信させる受信ステップと、インタリーブパケットから、自分宛の分割データを抽出させる抽出ステップと、抽出ステップが抽出した自分宛の分割データから、自分宛のデータを再構成させる再構成ステップとを含むことを特徴とする。
【００３０】
本発明の通信システムにおいては、複数のノード宛のデータそれぞれが分割され、分割データとされる。そして、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットが作成され、ブロードキャストされる。さらに、ブロードキャストされたインタリーブパケットが受信され、データが再構成される。
【００３１】
本発明の第１の通信装置、第１の通信方法、第１のプログラム、および第１のプログラム記録媒体においては、複数のノード宛のデータそれぞれが分割され、分割データとされる。そして、複数のノード宛の分割データを配置したパケットであるインタリーブパケットが作成され、ブロードキャストされる。
【００３２】
本発明の第２の通信装置、第２の通信方法、第２のプログラム、および第２のプログラム記録媒体においては、ホストコントローラによってブロードキャストされる、複数のノード宛のデータを分割したデータである分割データを配置したパケットである、インタリーブパケットが受信され、インタリーブパケットから、自分宛の分割データが抽出されて、自分宛のデータが再構成される。
【発明の効果】
【００３３】
本発明によれば、複数の通信装置が自分宛のデータの受信を完了する時刻のばらつきを小さくすることができる。
【発明を実施するための最良の形態】
【００３４】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の構成要件と、本発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、特許請求の範囲に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３５】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、特許請求の範囲にすべて記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の特許請求の範囲には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
【００３６】
請求項１に記載の通信システムは、
ホストコントローラと複数のノードとが通信を行なう通信システムにおいて、
前記ホストコントローラは、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割手段（例えば、図１６のステップＳ７２の処理）と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成手段（例えば、図１６のステップＳ７３の処理）と、
前記インタリーブパケットをブロードキャストするブロードキャスト手段（例えば、図１６のステップＳ７４の処理）と
を備え、
前記複数のノードそれぞれは、
前記インタリーブパケットを受信する受信手段（例えば、図１７のステップＳ９１の処理）と、
前記インタリーブパケットから、前記自分宛のデータの分割データを抽出する抽出手段（例えば、図１７のステップＳ９４の処理）と、
前記抽出手段が抽出した前記分割データから、自分宛のデータを再構成する再構成手段（例えば、図１７のステップＳ９６の処理）と
を備える
ことを特徴とする。
【００３７】
請求項２に記載の通信装置は、
複数のノードとの間で、通信を行なう通信装置において、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割手段（例えば、図１６のステップＳ７２の処理）と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成手段（例えば、図１６のステップＳ７３の処理）と、
前記インタリーブパケットをブロードキャストするブロードキャスト手段（例えば、図１６のステップＳ７４の処理）と
を備えることを特徴とする。
【００３８】
請求項５に記載の通信方法は、
複数のノードとの間で、通信を行なう通信方法であって、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップ（例えば、図１６のステップＳ７２の処理）と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成ステップ（例えば、図１６のステップＳ７３の処理）と、
前記インタリーブパケットをブロードキャストするブロードキャストステップ（例えば、図１６のステップＳ７４の処理）と
を含むことを特徴とする。
【００３９】
請求項６に記載のプログラム、および、請求項７に記載の記録媒体に記録されているプログラムにおいては、各ステップが対応する実施の形態（但し一例）は、請求項５に記載の通信方法と同様である。
【００４０】
請求項８に記載の通信装置は、
ホストコントローラとの間で、通信を行なう複数の通信装置のうちの１つの通信装置において、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信手段（例えば、図１７のステップＳ９１の処理）と、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出手段（例えば、図１７のステップＳ９４の処理）と、
前記抽出手段が抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成手段（例えば、図１７のステップＳ９６の処理）と
を備えることを特徴とする。
【００４１】
請求項１０に記載の通信方法は、
ホストコントローラとの間で、通信を行なう複数の通信装置のうちの１つの通信装置における通信方法であって、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップ（例えば、図１７のステップＳ９１の処理）と、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出ステップ（例えば、図１７のステップＳ９４の処理）と、
前記抽出ステップが抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成ステップ（例えば、図１７のステップＳ９６の処理）と
を含むことを特徴とする。
【００４２】
請求項１１に記載のプログラム、および、請求項１２に記載の記録媒体に記録されているプログラムにおいては、各ステップが対応する実施の形態（但し一例）は、請求項１０に記載の通信方法と同様である。
【００４３】
以下、図を参照して、本発明の実施の形態について説明する。
【００４４】
図３は、本発明を適用したロボット５の利用例を示している。
【００４５】
ユーザからの指令や周囲の環境に応じて自主的に行動を決定する人間型のロボット５は、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）８０２．１１ｂ規格に準拠して、アクセスポイント２と通信し、例えば、ネットワーク３を介して、家電機器４−１を制御したり、パーソナルコンピュータ４−２からのコマンドを受信して所定の処理を行う。
【００４６】
図４は、本発明を適用した２足歩行型のロボット５の正面方向の斜視図であり、図５は、ロボット５の背面方向からの斜視図である。また、図６は、ロボット５の軸構成について説明するための図である。
【００４７】
ロボット５は、胴体部ユニット１１、胴体部ユニット１１の上部に配設された頭部ユニット１２、胴体部ユニット１１の上部左右の所定位置に取り付けられた腕部ユニット１３Ａおよび腕部ユニット１３Ｂ、並びに胴体部ユニット１１の下部左右の所定位置に取り付けられた脚部ユニット１４Ａおよび脚部ユニット１４Ｂにより構成されている。
【００４８】
胴体部ユニット１１は、体幹上部を形成するフレーム２１および体幹下部を形成する腰ベース２２が腰関節機構２３を介して連結することにより構成されている。胴体部ユニット１１は、体幹下部の腰ベース２２に固定された腰関節機構２３のアクチュエータＡ1、および、アクチュエータＡ2がそれぞれ駆動することによって、体幹上部を、図６に示す直交するロール軸２４およびピッチ軸２５の回りに、それぞれ独立に回転させることができるようになされている。
【００４９】
頭部ユニット１２は、フレーム２１の上端に固定された肩ベース２６の上面中央部に首関節機構２７を介して取り付けられており、首関節機構２７のアクチュエータＡ3、およびアクチュエータＡ4がそれぞれ駆動することによって、図６に示す直交するピッチ軸２８およびヨー軸２９の回りに、それぞれ独立に回転させることができるようになされている。
【００５０】
腕部ユニット１３Ａ、および腕部ユニット１３Ｂは、肩関節機構３０を介して肩ベース２６の左右にそれぞれ取り付けられており、対応する肩関節機構３０のアクチュエータＡ5およびアクチュエータＡ6、並びに、アクチュエータＡ21およびアクチュエータＡ22がそれぞれ駆動することによって、図６に示す、直交するピッチ軸３１およびロール軸３２の回りに、それぞれを独立に回転させることができるようになされている。
【００５１】
この場合、腕部ユニット１３Ａ、および腕部ユニット１３Ｂは、上腕部を形成するアクチュエータＡ7、およびアクチュエータＡ23の出力軸に、肘関節機構４４を介して、前腕部を形成するアクチュエータＡ8、およびアクチュエータＡ24が連結され、前腕部の先端に手部３４が取り付けられることにより構成されている。
【００５２】
そして腕部ユニット１３Ａ、および腕部ユニット１３Ｂでは、アクチュエータＡ7、およびアクチュエータＡ23が駆動することによって、前腕部を図６に示すヨー軸３５に対して回転させることができ、アクチュエータＡ8、およびアクチュエータＡ24が駆動することによって、前腕部を図６に示すピッチ軸３６に対して回転させることができるようになされている。
【００５３】
脚部ユニット１４Ａ、および脚部ユニット１４Ｂは、股関節機構３７を介して、体幹下部の腰ベース２２にそれぞれ取り付けられており、対応する股関節機構３７のアクチュエータＡ9乃至Ａ11、およびアクチュエータＡ15乃至Ａ17がそれぞれ駆動することによって、図６に示す、互いに直交するヨー軸３８、ロール軸３９、およびピッチ軸４０に対して、それぞれ独立に回転させることができるようになされている。
【００５４】
脚部ユニット１４Ａ、および、脚部ユニット１４Ｂにおいては、大腿部を形成するフレーム４１の下端が、膝関節機構４２を介して、下腿部を形成するフレーム４３に連結されるとともに、フレーム４３の下端が、足首関節機構４４を介して、足部４５に連結されている。
【００５５】
これにより脚部ユニット１４Ａ、および脚部ユニット１４Ｂにおいては、膝関節機構４２を形成するアクチュエータＡ12、およびアクチュエータＡ18が駆動することによって、図６に示すピッチ軸４６に対して、下腿部を回転させることができ、また足首関節機構４４のアクチュエータＡ13およびアクチュエータＡ14、並びに、アクチュエータＡ19およびアクチュエータＡ20がそれぞれ駆動することによって、図６に示す直交するピッチ軸４７およびロール軸４８に対して、足部４５をそれぞれ独立に回転させることができるようになされている。
【００５６】
脚部ユニット１４Ａ、および脚部ユニット１４Ｂの、足部４５の足底面（床と接する面）には、それぞれ足底センサ９１（図９）が配設されており、足底センサ９１のオン・オフに基づいて、足部４５が床に接地しているか否かが判別される。
【００５７】
また、胴体部ユニット１１の体幹下部を形成する腰ベース２２の背面側には、後述するメイン制御部６１（図８）などを内蔵したボックスである、制御ユニット５２が配設されている。
【００５８】
図７は、ロボット５のアクチュエータとその制御系等について説明する図である。
【００５９】
胴体部ユニット１１に設けた制御ユニット５２には、ロボット５全体の動作制御をつかさどるメイン制御部６１、並びに、後述するD/A変換部１０１、A/D変換部１０２、バッテリ１０３、バッテリセンサ１３１、加速度センサ１３２、通信部１０５、および外部メモリ１０６（いずれも図８）等を含む周辺回路６２が収納されている。
【００６０】
そしてこの制御ユニット５２は、各構成ユニット（胴体部ユニット１１、頭部ユニット１２、腕部ユニット１３、脚部ユニット１４）内にそれぞれ配設されたサブ制御部であるノードＮ1乃至Ｎ24と通信路を介して接続されており、ノードＮ1乃至Ｎ24に対して必要な電源電圧を供給したり、ノードＮ1乃至Ｎ24とパケット通信などを行う。
【００６１】
ここで、ノードＮ1乃至Ｎ24は、関節機構等であるアクチュエータＡ1乃至Ａ24を制御するインテリジェントな機能を備えたサブ制御部であり、対応するアクチュエータＡ1乃至Ａ24と接続されている。また、ノードＮ1乃至Ｎ24は、メイン制御部６１から供給された各種信号に基づいて、対応するアクチュエータＡ1乃至Ａ24を、指定された状態に個々に駆動させるように制御したり、ノードＮ1乃至Ｎ24それぞれが保持しているアクチュエータＡ1乃至Ａ24のデータをメイン制御部６１へ送信したりする。
【００６２】
図８は、ロボット５の内部構成を示すブロック図である。
【００６３】
頭部ユニット１２には、このロボット５の「目」として機能するCCD（Charge Coupled Device ）カメラ８１、「耳」として機能するマイクロフォン８２、頭部センサ５１などからなる外部センサ部７１、および、「口」として機能するスピーカ７２となどがそれぞれ所定位置に配設され、制御ユニット５２内には、バッテリセンサ１３１および加速度センサ１３２などからなる内部センサ部１０４が配設されている。また、脚部ユニット１４Ａ、および脚部ユニット１４Ｂの足部４５の足底面には、このロボット５の「体勢感覚」の１つとして機能する足底センサ９１が配設されている。
【００６４】
そして、外部センサ部７１のCCDカメラ８１は、周囲の状況を撮像し、得られた画像信号を、A/D変換部１０２を介して、メイン制御部６１に送出する。マイクロフォン８２は、ユーザから音声入力として与えられる「歩け」、「とまれ」または「右手を挙げろ」等の各種処理音声を集音し、得られた音声信号を、A/D変換部１０２を介して、メイン制御部６１に送出する。
【００６５】
また、頭部センサ５１は、例えば、図４および図５に示されるように頭部ユニット１２の上部に設けられており、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、検出結果としての圧力検出信号を、A/D変換部１０２を介して、メイン制御部６１に送出する。
【００６６】
足底センサ９１は、足部４５の足底面に配設されており、足部４５が床に接地している場合、接地信号を、A/D変換部１０２を介して、メイン制御部６１に送出する。メイン制御部６１は、接地信号に基づいて、足部４５が床に接地しているか否かを判定する。足底センサ９１は、脚部ユニット１４Ａ、および脚部ユニット１４Ｂの両方の足部４５に配設されているため、メイン制御部６１は、接地信号に基づいて、ロボット５の両足が床に接地しているか、片足が床に接地しているか、両足とも床に接地していないかを判定することができる。
【００６７】
制御ユニット５２は、メイン制御部６１、D/A変換部１０１、A/D変換部１０２、バッテリ１０３、内部センサ部１０４、通信部１０５、および外部メモリ１０６等により構成される。
【００６８】
D/A(Digital/Analog)変換部１０１は、メイン制御部６１から供給されるデジタル信号をD/A変換することによりアナログ信号とし、スピーカ７２に供給する。A/D(Analog/ Digital)変換部１０２は、CCDカメラ８１、マイクロフォン８２、頭部センサ５１、および足底センサ９１が出力するアナログ信号をA/D変換することによりデジタル信号とし、メイン制御部６１に供給する。
【００６９】
内部センサ部１０４のバッテリセンサ１３１は、バッテリ１０３のエネルギ残量を所定の周期で検出し、検出結果をバッテリ残量検出信号として、メイン制御部６１に送出する。加速度センサ１３２は、ロボット５の移動について、３軸方向（ｘ軸、ｙ軸、およびｚ軸）の加速度を、所定の周期で検出し、検出結果を、加速度検出信号として、メイン制御部６１に送出する。
【００７０】
メイン制御部６１は、メイン制御部６１全体の動作を制御するCPU（Central Processing Unit）１１１と、CPU１１１が各部を制御するために実行するOS(Operating System)１２１、アプリケーションプログラム１２２、その他の必要なデータ等が記憶されている内部メモリ１１２等を内蔵している。
【００７１】
メイン制御部６１は、外部センサ部７１のCCDカメラ８１、マイクロフォン８２および頭部センサ５１からそれぞれ供給される、画像信号、音声信号および圧力検出信号、並びに足底センサ９１から供給される接地信号（以下、これらをまとめて外部センサ信号Ｓ１と称する）と、内部センサ部１０４のバッテリセンサ１３１および加速度センサ１３２等からそれぞれ供給される、バッテリ残量検出信号および加速度検出信号（以下、これらをまとめて内部センサ信号Ｓ２と称する）に基づいて、ロボット５の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無などを判断する。
【００７２】
そして、メイン制御部６１は、ロボット５の周囲および内部の状況や、ユーザからの指令、または、通信部１０５により受信されたパーソナルコンピュータ４−２からのコマンドと、内部メモリ１１２に予め配置されているアプリケーションプログラム１２２、あるいは、そのとき装填されている外部メモリ１０６に配置されている各種制御パラメータなどに基づいて、ロボット５の行動を決定し、決定結果に基づく制御データを生成して、対応する各構成ユニット（胴体部ユニット１１、頭部ユニット１２、腕部ユニット１３、脚部ユニット１４）に配設されたノードＮ1乃至Ｎ24へ送出する。ノードＮ1乃至Ｎ24は、供給された制御データに基づいて、アクチュエータＡ1乃至Ａ24のうち、各ノードＮi（ｉ＝１，２，…，ｎ）に対応するものの駆動を制御する。これにより、ロボット５は、例えば、頭部ユニット１２を上下左右に揺動させたり、腕部ユニット１３Ａ、あるいは、腕部ユニット１３Ｂを上に挙げたり、脚部ユニット１４Ａおよび脚部ユニット１４Ｂを交互に駆動させて、歩行するなどの機械的動作を行う。
【００７３】
また、メイン制御部６１は、必要に応じて、所定の音声信号をスピーカ７２に与えることにより、音声信号に基づく音声を外部に出力させる。
【００７４】
通信部１０５は、ＩＥＥＥ８０２．１１ｂ規格に準拠して、アクセスポイント２と無線で通信する。これにより、OS１２１やアプリケーションプログラム１２２がバージョンアップされたときに、通信部１０５を介して、そのバージョンアップされたOSやアプリケーションプログラムをダウンロードして、内部メモリ１１２に記憶させたり、また、所定のコマンドを、通信部１０５で受信し、CPU１１１に与えることができるようになっている。
【００７５】
外部メモリ１０６は、例えば、EEPROM(Electrically Erasable Programmable Read-only Memory)等で構成され、胴体部ユニット１１に設けられた図示せぬスロットに対して、着脱可能になっている。外部メモリ１０６には、例えば、後述するような感情モデル等が記憶される。
【００７６】
図９は、図８のメイン制御部６１の機能的構成例を示している。なお、図９に示す機能的構成は、メイン制御部６１が、内部メモリ１１２に記憶されたOS１２１およびアプリケーションプログラム１２２を実行することで実現されるようになっている。また、図９では、D/A変換部１０１およびA/D変換部１０２の図示を省略してある。
【００７７】
メイン制御部６１のセンサ入力処理部２０１は、頭部センサ５１、足底センサ９１、加速度センサ１３２、マイクロフォン８２、CCDカメラ８１、および通信部１０５からそれぞれ与えられる圧力検出信号、接地信号、加速度検出信号、音声信号、画像信号、および無線信号の通信品質信号等に基づいて、特定の外部状態や、ユーザからの特定の働きかけ、ユーザからの指示等を認識し、その認識結果を表す状態認識情報を、モデル記憶部２０２および行動決定機構部２０３に通知する。
【００７８】
すなわち、センサ入力処理部２０１は、圧力処理部２２１、加速度処理部２２２、音声認識部２２３、画像認識部２２４、および通信品質計測部２２５を有している。
【００７９】
圧力処理部２２１は、頭部センサ５１から与えられる圧力検出信号を処理する。そして、圧力処理部２２１は、例えば、その処理の結果、所定の閾値以上で、かつ短時間の圧力を検出したときには、「叩かれた（しかられた）」と認識し、所定の閾値未満で、かつ長時間の圧力を検出しなときには、「なでられた（ほめられた）」と認識して、その認識結果を、状態認識情報として、モデル記憶部２０２および行動決定機構部２０３に通知する。
【００８０】
また、圧力処理部２２１は、足底センサ９１から与えられる接地信号を処理する。そして、圧力処理部２２１は、例えば、その処理の結果、脚部ユニット１４Ａの足部４５に配設された足底センサ９１から接地信号が与えられている場合、脚部ユニット１４Ａの足部４５が床（地面）に接地していると認識し、足底センサ９１から接地信号が与えられていない場合、脚部ユニット１４Ａの足部４５が床（地面）に接地していないと認識する。脚部ユニット１４Ｂについても、同様にして、足底センサ９１からの接地信号に基づいて、脚部ユニット１４Ｂの足部４５が床（地面）に接地しているか否かを認識する。そして、圧力処理部２２１は、その認識結果を、状態認識情報として、モデル記憶部２０２および行動決定機構部２０３に通知する。
【００８１】
加速度処理部２２２は、加速度センサ１３２から与えられる加速度検出信号に基づいて、胴体部ユニット１１の加速度の方向および大きさを、状態認識情報として、モデル記憶部２０２および行動決定機構部２０３に通知する。
【００８２】
音声認識部２２３は、マイクロフォン８２から与えられる音声信号を対象とした音声認識を行う。そして、音声認識部２２３は、その音声認識結果としての、例えば、「歩け」、「伏せ」、「ボールを追いかけろ」等の単語列を、状態認識情報として、モデル記憶部２０２および行動決定機構部２０３に通知する。
【００８３】
画像認識部２２４は、CCDカメラ８１から与えられる画像信号を用いて、画像認識処理を行う。そして、画像認識部２２４は、その処理の結果、例えば、「赤い丸いもの」や、「地面に対して垂直なかつ所定高さ以上の平面」等を検出したときには、「ボールがある」や、「壁がある」等の画像認識結果を、状態認識情報として、モデル記憶部２０２および行動決定機構部２０３に通知する。
【００８４】
通信品質計測部２２５は、通信部１０５から得られるアクセスポイント２からの受信信号に基づいて、通信品質を計測し、その計測結果を、状態認識情報として、行動決定機構部２０３に通知する。通信品質とは、例えば、ノイズ強度などに対応した無線信号の強度や、エラーレート（スペクトル拡散で広がったバンドの中にバースト的に妨害電波が発生した場合、その通信パケットはエラーとなる）である。
【００８５】
モデル記憶部２０２は、ロボット５の感情、本能、成長の状態を表現する感情モデル、本能モデル、成長モデルをそれぞれ記憶し、管理している。
【００８６】
ここで、感情モデルは、例えば、「うれしさ」、「悲しさ」、「怒り」、「楽しさ」等の感情の状態（度合い）を、所定の範囲（例えば、−１．０乃至１．０等）の値によってそれぞれ表し、センサ入力処理部２０１からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【００８７】
本能モデルは、例えば、「食欲」、「睡眠欲」、「運動欲」等の本能による欲求の状態（度合い）を、所定の範囲の値によってそれぞれ表し、センサ入力処理部２０１からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【００８８】
成長モデルは、例えば、「幼年期」、「青年期」、「熟年期」、「老年期」等の成長の状態（度合い）を、所定の範囲の値によってそれぞれ表し、センサ入力処理部２０１からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【００８９】
モデル記憶部２０２は、上述のようにして感情モデル、本能モデル、成長モデルの値で表される感情、本能、成長の状態を、状態情報として、行動決定機構部２０３に送出する。
【００９０】
なお、モデル記憶部２０２には、センサ入力処理部２０１から状態認識情報が供給される他に、行動決定機構部２０３から、ロボット５の現在または過去の行動、具体的には、例えば、「長時間歩いた」などの行動の内容を示す行動情報が供給されるようになっており、モデル記憶部２０２は、同一の状態認識情報が与えられても、行動情報が示すロボット５の行動に応じて、異なる状態情報を生成するようになっている。
【００９１】
例えば、ロボット５が、ユーザに挨拶をし、ユーザに頭を撫でられた場合には、ユーザに挨拶をしたという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部２０２に与えられ、この場合、モデル記憶部２０２では、「うれしさ」を表す感情モデルの値が増加される。
【００９２】
行動決定機構部２０３は、センサ入力処理部２０１からの状態認識情報やモデル記憶部２０２からの状態情報、後述する制御機構部２０５からのアクチュエータＡ1乃至Ａ24の状態の情報、時間経過等に基づいて、次の行動を決定し、決定された行動の内容を、行動指令情報として、姿勢遷移機構部２０４に出力する。また、行動決定機構部２０３は、次の行動が発話である場合、音声合成部２０８へ発話指令情報を送信する。
【００９３】
姿勢遷移機構部２０４は、行動決定機構部２０３から供給される行動指令情報に基づいて、ロボット５の姿勢を、現在の姿勢から次の姿勢に遷移させるための姿勢遷移情報を生成し、これを制御機構部２０５に送出する。
【００９４】
制御機構部２０５は、姿勢遷移機構部２０４からの姿勢遷移情報にしたがって、アクチュエータＡ1乃至Ａ24を駆動するための制御データを生成し、これを、アクチュエータＡ1乃至Ａ24を制御するサブ制御部であり、各構成ユニット（胴体部ユニット１１、頭部ユニット１２、腕部ユニット１３、脚部ユニット１４）に配設されたノードＮ1乃至Ｎ    24へ送信する。制御データを受信したノードＮ1乃至Ｎ24は、その制御データに基づいて、各ノードに接続しているアクチュエータＡ1乃至Ａ24を駆動し、ロボット５に種々の動作を実行させる。また、制御機構部２０５は、ノードＮ1乃至Ｎ24から、例えば、アクチュエータＡ1乃至Ａ24の情報を取得し、ロボット５の各関節機構の状態を行動決定機構部２０３へ通知する。
【００９５】
即ち、制御機構部２０５は、ノードＮ1乃至Ｎ24と通信をするためのホストコントローラ２３１を有している。ホストコントローラ２３１は、例えば、制御機構部２０５が生成した制御データを、パケットに格納してノードＮ1乃至Ｎ24へ送信したり、また例えば、ノードＮ1乃至Ｎ24が、ホストコントローラ２３１へ送信したアクチュエータＡ1乃至Ａ24の情報を含んだパケット受信して、制御機構部２０５に各関節機構の状態の情報を供給する。
【００９６】
音声合成部２０８は、行動決定機構部２０３から発話指令情報を受信し、その発話指令情報にしたがって、例えば、規則音声合成を行い、合成音をスピーカ７２に供給して出力させる。
【００９７】
図１０は、ホストコントローラ２３１と、ロボット５の各構成ユニット（胴体部ユニット１１、頭部ユニット１２、腕部ユニット１３、脚部ユニット１４）に配設されたノードＮ1乃至Ｎnとで構成される通信システムの構成例を示している。
【００９８】
図１０の通信システムにおいて、ホストコントローラ２３１とノードＮ1乃至Ｎnそれぞれとは、バス型のメイン通信路２４１を介して通信を行なう。ノードＮ1乃至Ｎnは、メイン通信路２４１を介して並列に接続している。従って、ホストコントローラ２３１が送信したパケットは、すべてのノードＮ1乃至Ｎnへほぼ同時に送信される。また、あるノードＮiが送信したパケットも、ホストコントローラ２３１と他のすべてのノードＮj（ｊ＝１，２，・・・ｎ、ｊ≠ｉ）とへ送信される。そして、ノードＮiは、パケットを受信し、そのパケットの宛先が自分宛であるとき、パケットを処理し、パケットの宛先が自分宛ではないとき、パケットを無視する。
【００９９】
また、図１０のホストコントローラ２３１は、例えば、ノードＮ1乃至Ｎnそれぞれに異なるデータを送信する場合、そのノードＮ1乃至Ｎn宛のデータそれぞれを分割し、その結果得られる、ノードＮ1乃至Ｎnそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成する。さらに、ホストコントローラ２３１は、ブロードキャストにより、インタリーブパケットを送信する。即ち、ホストコントローラ２３１がパケットの宛先に、ブロードキャストである旨の信号（以下、適宜、ブロードキャスト信号という）を配置して送信する。ノードＮ1乃至Ｎnそれぞれは、ホストコントローラ２３１がブロードキャストによって送信したインタリーブパケットを受信し、宛先にブロードキャスト信号が格納されていることを確認することによって、インタリーブパケットが自分宛のパケットであると認識する。以上のように、ホストコントローラ２３１が、１つのインタリーブパケットをブロードキャストすることにより、各ノードＮ1乃至Ｎnが、インタリーブパケットを受信する。
【０１００】
さらに、ノードＮ1乃至Ｎnそれぞれは、ホストコントローラ２３１が送信したインタリーブパケットを受信した場合、そのインタリーブパケットから自分宛の分割データを抽出して取得する。ノードＮ1乃至Ｎnそれぞれは、すべてのインタリーブパケットを受信した後、取得した分割データからそのデータを再構成する。
【０１０１】
メイン通信路２４１は、ホストコントローラ２３１とノードＮiとを接続する通信路である。なお、メイン通信路２４１を介してやりとりする信号は、例えば、電気による信号でも光による信号でもよい。さらに、メイン通信路２４１を介した通信は、シリアル通信でも、パラレル通信でもよい。
【０１０２】
図１１は、図１０の通信システムにおいて、ホストコントローラ２３１がノードＮ1乃至Ｎnに制御データを送信する場合の処理を説明するフローチャートである。
【０１０３】
ホストコントローラ２３１がすべてのノードＮ1乃至Ｎnへ図１で説明したような制御データＤ1乃至Ｄnを送信する場合、まず最初に、ホストコントローラ２３１は、制御機構部２０５から供給される制御データＤ1乃至Ｄnを、例えば、１ビット単位に分割し、分割データとする。即ち、例えば、ホストコントローラ２３１は、ノードＮ1宛の制御データＤ1の１ビット目のデータを分割データＤ1,1、２ビット目のデータを分割データＤ1,2、以下同様に、ｍビット目のデータを分割データＤ1,mとして、制御データＤ1を分割データＤ1,1乃至Ｄ1,mとする。同様に、ホストコントローラ２３１は、ノードＮ2宛の制御データＤ2を分割データＤ2,1乃至Ｄ2,mとし、以下、同様にして、ノードＮn宛の制御データＤnを分割データＤn,1乃至Ｄn,mとする。
【０１０４】
次に、ホストコントローラ２３１は、１ビット単位に分割した分割データのうち、ノードＮ1乃至Ｎnそれぞれ宛の同一ビット目の分割データを１つのパケットに配置する。即ち、例えば、ホストコントローラ２３１は、ノードＮ1乃至Ｎnそれぞれ宛の１ビット目の分割データである、分割データＤ1,1、分割データＤ2,1、…、分割データＤn,1を、所定の位置に配置したパケットを作成し、１番目のインタリーブパケットとする。同様に、ホストコントローラ２３１は、２ビット目の分割データＤ1,2、Ｄ2,2、…、Ｄn,2を所定の位置に配置した２番目のインタリーブパケットを作成する。以下、同様にして、ホストコントローラ２３１は、最後の分割データであるｍビット目の分割データＤ1,m、Ｄ2,m、…、Ｄn,mを所定の位置に配置したｍ番目のインタリーブパケットを作成し、すべての分割データをパケットに配置する。
【０１０５】
ここで、インタリーブパケットとは、例えば、上述のように、複数のノードそれぞれ宛の分割データを所定の位置に配置したパケットである。
【０１０６】
ホストコントローラ２３１は、ｍ個のインタリーブパケットを作成した後、図１１のステップＳ４１において、１ビット目の分割データを配置した１番目のインタリーブパケットを、ブロードキャストによりすべてのノードＮ1乃至Ｎnへ送信する。そして、ステップＳ４１からＳ４２に進み、ノードＮ1乃至Ｎnそれぞれは、１番目のインタリーブパケットを受信し、そのインタリーブパケットの、自分宛、即ち、ノードＮi宛の分割データが配置されている所定の位置から１ビットの分割データＤi,1を抽出することにより取得する。即ち、ステップＳ４２において、ノードＮ1は、分割データＤ1,1を抽出し、ノードＮ2は、分割データＤ2,1を抽出する。以下、同様にして、ノードＮnは、分割データＤn,1を抽出する。なお、ホストコントローラ２３１は、インタリーブパケットをブロードキャストによりすべてのノードＮ1乃至Ｎnへ送信するため、各ノードＮiがインタリーブパケットを受信する時刻は、ほぼ同時である。
【０１０７】
その後、ステップＳ４３において、ホストコントローラ２３１は、２ビット目の分割データを配置した２番目のインタリーブパケットを、ブロードキャストによりすべてのノードＮ1乃至Ｎnへ送信する。そして、ステップＳ４３からＳ４４に進み、ノードＮ1乃至Ｎnそれぞれは、２番目のインタリーブパケットを受信し、そのインタリーブパケットの、自分宛、即ち、ノードＮi宛の分割データが配置されている所定の位置から１ビットの分割データＤi,2を抽出することにより取得する。即ち、ステップＳ４４において、ノードＮ1は、分割データＤ1,2を抽出し、ノードＮ2は、分割データＤ2,2を抽出する。以下、同様にして、ノードＮnは、分割データＤn,2を抽出する。
【０１０８】
以下同様の処理が行われ、ステップＳ４５において、ホストコントローラ２３１は、最後であるｍビット目の分割データを配置したｍ番目のインタリーブパケットを、ブロードキャストによりすべてのノードＮ1乃至Ｎnへ送信する。そして、ステップＳ４５からＳ４６進み、ノードＮ1乃至Ｎnそれぞれは、ｍ番目のインタリーブパケットを受信し、そのインタリーブパケットの、自分宛、即ち、ノードＮi宛の分割データが配置されている所定の位置から１ビットの分割データＤi,mを抽出することにより取得する。即ち、ステップＳ４６において、ノードＮ1は、分割データＤ1,mを抽出し、ノードＮ2は、分割データＤ2,mを抽出する。以下、同様にして、ノードＮnは、分割データＤn,mを抽出する。ノードＮ1乃至Ｎnそれぞれは、最後のｍビット目の分割データを取得した後、ｍ個のインタリーブパケットから取得した自分宛（ノードＮi宛）のｍビットの分割データＤi,1乃至Ｄi,mから、制御データＤiを再構成し、制御データＤiに基づいた処理を実行する。
【０１０９】
図１０の通信システムによれば、ノードＮ1乃至Ｎnがそれぞれの制御データＤ1乃至Ｄnを取得する時刻のばらつきは、理論的には、ステップＳ４６においてノードＮ1乃至Ｎnがｍビット目の分割データを受信する時刻のばらつきに等しくなる。
【０１１０】
即ち、図２で説明してのように、制御データＤ1乃至Ｄnを順次送信する場合には、ノードＮ1乃至Ｎnがそれぞれの制御データＤ1乃至Ｄnを受信する時刻のばらつきは、例えば、１番目に制御データを受信するノードＮ1と最後に制御データを受信するノードＮnにおけるパケットの受信時刻の差だけ、具体的には、ノードの数ｎ−１と、ノードがｍビットの制御データが配置されたパケットを受信するのに要する時間との積に相当する時間だけ生じる。これに対して、図１１で説明したように、制御データＤ1乃至Ｄnを分割データとして、インタリーブパケットによりブロードキャストする場合には、ノードＮ1乃至Ｎnがそれぞれの制御データＤ1乃至Ｄnを受信する時刻のばらつきは、ノードＮ1乃至Ｎnそれぞれが最後のインタリーブパケットを受信する時刻のばらつき、即ち、ノードＮ1がｍ番目のインタリーブパケットの自分宛の分割データＤ1,mを受信（取得）した時刻と、ノードＮnがｍ番目のインタリーブパケットの自分宛の分割データＤn,mを受信した時刻との差に等しくなる。また、各ノードＮiが、制御データＤiに対応する処理を実行する直前に取得する分割データＤi,mは１ビットなので、その取得に要する処理は単純なものとなる。
【０１１１】
従って、ノードＮ1乃至Ｎnでは、制御データＤ1乃至Ｄnそれぞれに基づく処理を、ほぼ同時刻に開始する（行う）ことが可能となる。
【０１１２】
図１２は、図１０のホストコントローラ２３１の機能的構成例を示すブロック図である。ホストコントローラ２３１は、通信部２６１と作成部２６２とから構成されている。さらに、通信部２６１は、メイン通信路２４１と接続している。
【０１１３】
通信部２６１は、メイン通信路２４１を介して、ノードＮiとの間でパケットの送信と受信を行なう。即ち、通信部２６１は、作成部２６２から供給されたインタリーブパケットやその他のパケットを、ノードＮiへ送信する。また、通信部２６１は、ノードＮ1乃至Ｎnそれぞれから送信されてくるホストコントローラ２３１宛のパケットを受信する。また、通信部２６１は、ノードＮiからのパケットを解析し、例えば、そのパケットに格納されたアクチュエータＡiの情報などを制御機構部２０５へ供給する。
【０１１４】
作成部２６２は、制御機構部２０５からノードＮiを制御する制御データＤiを受信し、受信した制御データＤiを配置したパケット（ライトリクエストパケットまたはリードリクエストパケット）を作成して、通信部２６１へ供給する。
【０１１５】
さらに、作成部２６２は、制御機構部２０５から複数のノードＮ1乃至Ｎnが同時刻に行うべき処理を指示する制御データＤ1乃至Ｄnを受信した場合、インタリーブパケットを作成する。即ち、作成部２６２は、ノードＮ1乃至Ｎn宛の制御データＤ1乃至Ｄnを１ビット単位に分割して分割データＤ1,1乃至Ｄn,mを作成する。さらに、作成部２６２は、分割データＤ1,1乃至Ｄn,mのうち、ノードＮ1乃至Ｎnそれぞれ宛の同一ビット目の分割データＤ1,k乃至Ｄn,k（ｋ＝１，２，…，ｍ）を配置したインタリーブパケットを作成する。そして、作成部２６２は、作成したインタリーブパケットを、順次、通信部２６１へ供給する。作成部２６２が作成するインタリーブパケットの詳細については、図１５を用いて後述する。
【０１１６】
図１３は、図１０のノードＮiの機能的構成例を示すブロック図である。ノードＮiは、通信部２７１と制御部２７２とから構成されている。
【０１１７】
通信部２７１は、メイン通信路２４１に接続されている。通信部２７１は、ホストコントローラ２３１や他のノードＮjが送信したメイン通信路２４１上のパケットを受信し、そのパケットの種類とパケットの宛先とを解析する。即ち、例えば、受信したパケットが、ホストコントローラ２３１が送信した自分宛（ノードＮi宛）のパケットである場合、通信部２７１は、そのパケットを制御部２７２へ供給する。また、通信部２７１は、受信したパケットが、例えば、他のノードＮjが送信したホストコントローラ２３１宛のパケットである場合、そのパケットを無視する。また、通信部２７１は、制御部２７２から供給された、ホストコントローラ２３１宛のパケットを、メイン通信路２４１を介してホストコントローラ２３１へ送信する。
【０１１８】
制御部２７２は、通信部２７１から供給されたパケットを解析し、パケットに含まれているデータに基づいて、アクチュエータＡiを駆動する処理を行なったり、アクチュエータＡiの情報などを格納したパケットを作成し、ホストコントローラ２３１宛に送信したりする。
【０１１９】
また、制御部２７２は、通信部２７１から供給されたパケットがインタリーブパケットである場合、そのインタリーブパケットの自分宛の分割データＤi,kが配置されている所定の位置から自分宛の分割データＤi,kを抽出して制御データＤiを再構成する。即ち、制御部２７２は、例えば、インタリーブパケットの自分宛の分割データＤi,kが配置されている位置を認識しており、受信したインタリーブパケットから自分宛の分割データＤi,kを抽出し、抽出した分割データＤi,kを抽出した順番に並べて記憶する。そして、制御部２７２は、最後の分割データ、即ち、ｍビット目の分割データＤi,mを記憶することにより、ｍビットの分割データＤi,1乃至Ｄi,mからなる制御データＤiを再構成する。ここで、制御部２７２が認識している自分宛の分割データＤi,kの位置は、例えば、パケットの先頭からのビット数であり、制御部２７２は、インタリーブパケットのそのビット数の位置にある分割データＤi,kを抽出する。
【０１２０】
図１４は、ホストコントローラ２３１とノードＮiとの間で送受信するパケットのフォーマットを示している。
【０１２１】
パケットは、その先頭から、８ビットの同期信号が配置されるSYNC（Synchronous）部、パケットの種類やアドレスを格納するCTRL（Control）部、CTRL部のビット列をビット反転したビットが配置されるnCTRL部、ユーザデータ（ペイロード）を格納するコンテンツ部、およびデータのエラーを検出するコードが配置されるCRC部が順次配置されて構成される。
【０１２２】
CTRL部には、CTRLが格納される。CTRLは、例えば、８ビットで、パケットの種類を表す２ビットのType（タイプ）部、ユーザがアプリケーションで自由に使用する２ビットのUser's Bit（ユーザビット）部、および、パケットの宛先もしくはパケットの送信元を表す４ビットのADDR（アドレス）部で構成されている。
【０１２３】
Type部には、パケットの種類を表すタイプが格納される。即ち、例えば、ホストコントローラ２３１の作成部２６２は、ノードＮ1乃至Ｎn宛の分割データＤ1,k乃至Ｄn,kを格納したインタリーブパケットを作成する場合、Type部に、パケットがインタリーブパケットである旨を表すインタリーブ信号としての２ビットを格納する。また、作成部２６２は、ノードＮiから情報を取得するリードリクエストパケットを作成する場合、Type部に、パケットがリードリクエストパケットである旨を表すリードリクエスト信号としての２ビットを格納する。さらに、作成部２６２は、ノードＮiに制御データ等の情報を書き込むライトリクエストパケットを作成する場合、Type部に、パケットがライトリクエストパケットである旨を表すライトリクエスト信号としての２ビットを格納する。一方、ノードＮiの制御部２７２は、リードリクエストパケットに応答するアンサパケットを作成する場合、Type部に、アンサパケットである旨を表すアンサ信号としての２ビットを格納する。
【０１２４】
ADDR（Address）部には、パケットの宛先もしくは送信元のアドレスが格納される。即ち、例えば、ホストコントローラ２３１の作成部２６２は、ノードＮiへパケットを送信する場合、宛先であるノードＮiのアドレスとしての、例えば、ノード番号ｉをADDR部に格納する。また、作成部２６２は、すべてのノードＮ1乃至Ｎnへパケットを送信する場合、ブロードキャスト信号としての４ビットをADDR部に格納する。
【０１２５】
従って、ノードＮiの通信部２７１は、受信したパケットのType部を解析することにより、受信したパケットが、例えば、インタリーブパケットであることを認識することができる。さらに、例えば、ノードＮiの通信部２７１は、受信したパケットのADDR部に自分のノード番号ｉもしくは、ブロードキャスト信号が格納されているとき、自分宛のパケットと認識してパケットを取得して、制御部２７２へ供給する。一方、ノードＮiの通信部２７１は、ADDR部に他のノード番号ｉが格納されているとき、パケットを無視する。
【０１２６】
なお、ノードＮiがホストコントローラ２３１に対してアンサパケットを送信する場合、そのアンサパケットのADDR部には、送信元であるノードＮiのアドレスとしての、例えば、ノード番号ｉが格納される。
【０１２７】
nCTRL部には、CTRL部に配置したビット列をビット反転したビット列であるnCTRLが格納される。従って、nCTRLをビット反転したものと、nCTRLとが一致していない場合、nCTRLにエラーが生じている可能性がある。
【０１２８】
以上のSYNC部、CTRL部、およびnCTRL部がパケットのヘッダを構成している。パケットのヘッダの後には、コンテンツ部（パケットによって送信される実データ）が配置される。
【０１２９】
コンテンツ部には、ユーザデータ（ペイロード）が格納される。なお、コンテンツ部は、固定長とすることもできるし、可変長とすることもできるが、ここでは、例えば、固定長とする。ホストコントローラ２３１の作成部２６２は、インタリーブパケットを作成する場合、コンテンツ部にノードＮ1乃至Ｎnそれぞれ宛の同一ビット目の分割データＤ1,k乃至Ｄn,kからなるｎビットを格納する。コンテンツ部に格納する分割データＤ1,k乃至Ｄn,kの詳細については、図１５にて後述する。
【０１３０】
CRC（Cyclic Redundancy Check）部には、伝送によってパケットのユーザデータにエラーが発生していないかどうかを検出するコードであるCRCコードが格納される。例えば、ホストコントローラ２３１の作成部２６２は、送信するパケットのユーザデータからCRCコードを算出して、CRC部に格納する。一方、パケットを受信したノードＮiの制御部２７２は、ホストコントローラ２３１の作成部２６２と同一の算出方法によりCRCコードを算出する。そして、ノードＮiの制御部２７２は、CRC部に格納されたCRCコードと算出したCRCコードとを比較して、ユーザデータにエラーが発生しているかどうかを検出する。ユーザデータにエラーが発生していると検出された場合、ノードＮiの制御部２７２は、例えば、通信部２７１およびメイン通信路２４１を介して、ホストコントローラ２３１へパケットの再送を要求する。CRC部に配置されるCRCコードは、ノードＮiからホストコントローラ２３１にパケットが送信される場合にも、同様に処理される。
【０１３１】
図１５は、ホストコントローラ２３１の作成部２６２が作成するインタリーブパケットを模式的に示している。
【０１３２】
ホストコントローラ２３１の作成部２６２は、ｍビットの制御データＤ1乃至Ｄnそれぞれを１ビット単位に分割する。そして、ホストコントローラ２３１の作成部２６２は、各ノードＮ1乃至Ｎn宛の制御データＤ1乃至Ｄnの１ビット目の分割データＤ1,1乃至Ｄn,1を、コンテンツ部に配置したインタリーブパケットを作成し、これを１番目のインタリーブパケットとする。同様に、作成部２６２は、各ノードＮ1乃至Ｎn宛の制御データＤ1乃至Ｄnの２ビット目の分割データＤ1,2乃至Ｄn,2を、コンテンツ部に配置したインタリーブパケットを作成し、これを２番目のインタリーブパケットとする。以下、同様にして、作成部２６２は、各ノードＮ1乃至Ｎn宛の制御データＤ1乃至Ｄnのｍビット目の分割データＤ1,m乃至Ｄn,mを、コンテンツ部に配置したインタリーブパケットを作成し、これをｍ番目のインタリーブパケットとする。このように、ホストコントローラ２３１の作成部２６２は、同一ビット目の分割データＤ1,k乃至Ｄn,kをコンテンツ部に格納したインタリーブパケットを作成する。従って、インタリーブパケットのコンテンツ部の先頭からｉビット目には、ノードＮiが取得すべき分割データＤi,kが配置されている。
【０１３３】
そして、ホストコントローラ２３１の作成部２６２は、１番目のインタリーブパケットから順次、通信部２６１へ供給し、通信部２６１は、供給されたインタリーブパケットを、メイン通信路２４１を介して、ブロードキャストする。
【０１３４】
図１６は、ホストコントローラ２３１がインタリーブパケットを作成して送信する処理を説明するフローチャートである。
【０１３５】
図１６の処理は、例えば、制御機構部２０５から作成部２６２に対して、すべてのノードＮ1乃至Ｎnが同時刻に実行すべき処理を指示する制御データＤ1乃至Ｄnが供給されると開始される。なお、制御機構部２０５から作成部２６２に供給された制御データに対応する処理が、ノードＮ1乃至Ｎnにおいて同時刻に実行すべきものであるか否かの判定は、例えば、制御機構部２０５から作成部２６２に対して同時刻に実行すべき処理である旨の信号を供給し、この信号を作成部２６２が受信したかどうかや、制御機構部２０５から作成部２６２に対して供給された制御データが各ノードＮ1乃至Ｎn宛の制御データであるかどうか、あるいは、制御機構部２０５から作成部２６２に対して、ノードＮ1乃至Ｎn宛それぞれの制御データＤ1乃至Ｄnが所定の時間内に供給されたかどうかなどによって行なうことができる。
【０１３６】
ステップＳ７１において、作成部２６２は、制御機構部２０５からの制御データＤ1乃至Ｄnを受信し、ステップＳ７２に進み、その制御データＤ1乃至Ｄnを、１ビット単位に分割して分割データとして、ステップＳ７３に進む。
【０１３７】
ステップＳ７３において、作成部２６２は、パケットのType部にインタリーブ信号を配置し、ADDR部にブロードキャスト信号を配置する。さらに、作成部２６２は、コンテンツ部に、ステップＳ７２において分割した分割データの各ノードＮ1乃至Ｎn宛の同一ビット目の分割データを配置する。これにより、作成部２６２は、制御データＤ1乃至Ｄnそれぞれがｍビットからなる場合には、１番目からｍ番目のｍ個のインタリーブパケットを作成する。
【０１３８】
なお、制御データＤ1乃至Ｄnそれぞれのビット長が異なる場合、作成部２６２は、制御データＤ1乃至Ｄnのうちの最大のビット長に一致する数のインタリーブパケットを作成する。この場合、コンテンツ部のあるビットに配置すべき分割データが存在しないインタリーブパケットが生じうるが、そのコンテンツ部のビットには、例えば、ダミーのデータ（スタッフィングビット）が配置される。
【０１３９】
その後、ステップＳ７３からステップＳ７４に進み、作成部２６２は、ステップＳ７３で作成したｍ個のインタリーブパケットを、１番目から順に、通信部２６１に供給する。そして、通信部２６１は、メイン通信路２４１を介して、通信部２６２からのインタリーブパケットを、ブロードキャストにより送信し、ステップＳ７５に進む。
【０１４０】
ステップＳ７５において、通信部２６１は、作成部２６２からの１番目からｍ番目のインタリーブパケットをすべて送信したか否かを判定する。ステップＳ７５において、通信部２６１は、１番目からｍ番目のインタリーブパケットのすべてを、まだ送信していないと判定した場合、ステップＳ７４に戻り、次に送信すべきインタリーブパケットを送信する。一方、ステップＳ７５において、通信部２６２が１番目からｍ番目のインタリーブパケットのすべてを送信したと判定した場合、即ち、通信部２６１が、作成部２６２からｍ個のインタリーブパケットを受信し、最後であるｍ番目のインタリーブパケットの送信を終了した場合、処理を終了する。
【０１４１】
図１７は、ノードＮiがホストコントローラ２３１の通信部２６１が送信した、パケットを受信したときの処理を説明するフローチャートを示している。
【０１４２】
まず最初に、ステップＳ９１において、通信部２７１は、ホストコントローラ２３１の通信部２６１が送信したパケットを受信し、そのパケットのADDR部にブロードキャスト信号、もしくは自分のノード番号ｉが格納されている場合、ステップＳ９２に進む。なお、受信したパケットのADDR部にブロードキャスト信号、もしくは自分のノード番号iが格納されていない場合、即ち、他のノード番号jが格納されている場合、そのパケットを無視してステップＳ９１に戻る。
【０１４３】
ステップＳ９２において、通信部２７１は、ステップＳ９１で受信したパケットのType部にインタリーブ信号が格納されているか否かを判定する。ステップＳ９２において、パケットのType部にインタリーブ信号が格納されていないと判定した場合、即ち、Type部にライトリクエスト信号、もしくはリードリクエスト信号が配置されている場合、通信部２７１は、ステップＳ９１で受信したパケットを制御部２７２へ供給し、ステップＳ９３に進む。ステップＳ９３において、制御部２７２は、通信部２７１からのパケットのコンテンツ部に格納されているすべてのユーザデータを取得し、ステップＳ９７に進む。一方、ステップＳ９２において、ステップＳ９１で受信されたパケットのType部にインタリーブ信号が格納されていると判定した場合、通信部２７１は、ステップＳ９１で受信したパケット、即ち、インタリーブパケットを制御部２７２へ供給し、ステップＳ９４に進む。
【０１４４】
ステップＳ９４において、制御部２７２は、通信部２７１から供給されたインタリーブパケットに配置されているコンテンツ部のうち、あらかじめ認識している自分宛の分割データＤi,kが配置されている所定の位置から、１ビットの分割データＤi,kを抽出して記憶し、ステップＳ９５に進む。
【０１４５】
ステップＳ９５において、制御部２７２は、最後の分割データＤi,mを抽出したか否かを判定する。ステップＳ９５において、制御部２７２は、最後の分割データＤi,mを抽出していないと判定された場合、まだ、ステップＳ９４でｍビットの分割データＤi,1乃至Ｄi,mが記憶されていない場合、ステップＳ９１に戻り、ステップＳ９１乃至Ｓ９５の処理を繰り返し行なう。一方、ステップＳ９５において、最後の分割データＤi,mを抽出したと判定された場合、即ち、ステップＳ９４でｍビットの分割データＤi,1乃至Ｄi,mが記憶された場合、制御部２７２は、ステップＳ９６に進み、制御部２７２は、ステップＳ９４で記憶した１ビット目からｍビット目までの分割データＤi,1乃至Ｄi,mを読み出すことにより、そのｍビットの分割データＤi,1乃至Ｄi,mからなる制御データＤiの再構成を行なう。即ち、例えば、ノードＮiの制御部２７２は、分割データＤi,1、分割データＤi,2、…、分割データＤi,mを、その順番で並べて得られる制御データＤiを再構成する。そして、ステップＳ９６からステップＳ９７に進む。
【０１４６】
ステップＳ９７において、制御部２７２は、ステップＳ９３で取得したユーザデータ、もしくはステップＳ９６で再構成した制御データＤiに基づいて、処理を行い、処理を終了する。
【０１４７】
なお、本実施の形態においては、ロボット５におけるホストコントローラ２３１と複数のノードＮ1乃至Ｎnとは、バス型の接続形態で接続するとしたが、ホストコントローラ２３１とノードＮ1乃至Ｎnとの接続形態は、このようなバス型に限られるものではない。即ち、ホストコントローラ２３１とノードＮ1乃至Ｎnとの接続形態は、例えば、デイジーチェーン型やスター型等であってもよい。
【０１４８】
また、作成部２６２が分割する分割データは、１ビットとしたが、分割データの長さは、１ビットではなく、例えば、１バイトでも、その他の任意のビット数でもよい。
【０１４９】
分割データのデータ量（ビット数）は、上述のように、任意の値とすることができるが、ノードＮ1乃至Ｎnにおける制御データＤ1乃至Ｄnの受信（取得）時刻のばらつきは、分割データのデータ量が小さいほど小とすることができる。即ち、ノードＮ1乃至Ｎnそれぞれは、図１４に示したパケットフォーマットの先頭から順にパケットを受信してデータを取得する。例えば、コンテンツ部の最初に分割データＤ1,kが配置されるノードＮ1と、コンテンツ部の最後に分割データＤn,kが配置されるノードＮnとが、それぞれの分割データＤ1,kとＤn,kとを取得する時刻の差は、Ｄ1,kからＤn,kまでのデータ量が小であるとき小となる。従って、ノードＮ1乃至Ｎnにおける制御データＤ1乃至Ｄnの受信（取得）時刻のばらつきは、分割データを１ビットとしたとき最小となる。
【０１５０】
さらに、上述の場合には、ホストコントローラ２３１の作成部２６２において、制御データＤ1乃至Ｄnそれぞれのあるｋビット目の分割データだけをコンテンツ部に配置することとしたが、コンテンツ部には、制御データＤ1乃至Ｄnそれぞれのｋビット目の分割データの他、他のｋ'ビット目の分割データを配置してもよい。即ち、例えば、ホストコントローラ２３１の作成部２６２では、コンテンツ部の先頭から、各ノードＮ1乃至Ｎn宛の制御データＤ1乃至Ｄnそれぞれの１ビット目の分割データＤ1,1乃至Ｄn,1を配置し、続いて、２ビット目の分割データＤ1,2乃至Ｄn,2を配置し、以下、同様に、ｍビット目の分割データＤ1,m乃至Ｄn,mを配置することができる。この場合、ホストコントローラ２３１の作成部２６２が作成するインタリーブパケットは、１つとなる。一方、ノードＮiの制御部２７２は、このインタリーブパケットを受信し、コンテンツ部の複数（ここではｍ）の所定の位置それぞれから、複数の分割データを抽出する。さらに、ノードＮiの制御部２７２は、自分宛のすべての分割データＤi,1乃至Ｄi,mの抽出後、制御データＤiを再構成する。この場合も、ノードＮ1乃至Ｎnにおける制御データＤ1乃至Ｄnの受信（取得）時刻のばらつきを小さくすることができる。
【０１５１】
さらに、ノードＮiが、最後のインタリーブパケットを受信したか否かの判定は、例えば、あらかじめ決められた数のｍ個のインタリーブパケットを受信したかどうかや、ホストコントローラ２３１から報知された数のインタリーブパケットを受信したかどうかによって行なうことが可能である。ホストコントローラ２３１によるインタリーブパケットの数の報知は、インタリーブパケットの数を、ライトリクエストパケットに格納して、ブロードキャストにより送信することによって行なうことが可能である。この場合、ノードＮiの制御部２７２は、このライトリクエストパケットからインタリーブパケットの数を認識し、その数のインタリーブパケットを受信したときに、最後のインタリーブパケットを受信したと判定する。さらに、例えば、作成部２６２は、最後のインタリーブパケットのUser's Bit部に最後である旨の信号を配置することができ、この場合、ノードＮiの制御部２７２は、インタリーブパケットのUser’s Bit部に配置された信号から、そのインタリーブパケットが最後のインタリーブパケットであるかどうかを判定することができる。
【０１５２】
さらに、ホストコントローラ２３１の通信部２６１は、制御データＤiのｋビット目の分割データＤi,kが配置されたｋ番目のインタリーブパケットをｋ番目に送信し、ノードＮiは、インタリーブパケットを受信した順番に、そのインタリーブパケットに配置された分割データＤi,kを記憶することにより制御データＤiの再構成を行なうとしたが、インタリーブパケットは、その他の、任意の順番で送信することが可能である。さらに、この場合、User’s Bit部には、何番目のインタリーブパケットであるかを表す信号を配置することができる。これにより、ノードＮiの制御部２７２は、インタリーブパケットのUser’s Bit部に配置された信号に基づいて、そのインタリーブパケットが何番目のインタリーブパケットであるかを表す確認し、さらに、そのインタリーブパケットに配置された分割データを並べて制御データＤiを再構成することができる。
【０１５３】
また、本実施の形態においては、メイン通信路２４１を介して接続しているすべてのノードＮ1乃至Ｎnは、同時刻に処理を実行するとしたが、同時刻に処理を実行しないノードＮiがある場合、例えば、ホストコントローラ２３１の作成部２６２は、コンテンツ部の、同時刻に処理を実行しないノード宛の分割データを配置する位置に、ダミーの信号を配置することができる。これにより、すべてではない複数のノードに同時刻に処理を実行させることができる。
【０１５４】
また、図１０の通信システムにおいては、例えば、各ノードＮi宛の制御データＤiのデータ量をｍビットとするとともに、分割データのデータ量をａビットとした場合、すべてのノードＮ1乃至Ｎnが制御データＤ1乃至Ｄnの受信を完了する受信時刻のばらつきは、従来の通信システムと比べて、理論的には、ａ/ｍの時間となる。従って、図１０の通信システムは、分割データのデータ量ａを小さくするほど、および、各ノードＮi宛の制御データＤiのデータ量ｍが大きいほど、受信時刻のばらつきに相当する時間を小さくする効果が大きくなる。
【０１５５】
上述した一連の処理は、専用のハードウェアによっても、またソフトウェアによっても実行することができる。一連の処理をソフトウェアによって行なう場合には、そのソフトウェアを構成するプログラムが、通信システムを構成するハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１５６】
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disk-Read Only Memory），DVD（Digital Versatile Disk）を含む）、光磁気ディスク（ＭＤ(Mini-Disk)（商標）を含む）、もしくは半導体メモリなどよりなるパッケージメディアとして提供することができる。例えば、図８においては、プログラムは、外部メモリ１０６に記録して提供し、メモリ１１２にインストールすることができる。
【０１５７】
また、本明細書において、フローチャートに記述したステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１５８】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１５９】
また、本実施の形態では、本発明をロボットに適用した場合について説明したが、本発明は、ロボット以外の１対多の通信を行なうシステムに適用可能である。
【図面の簡単な説明】
【０１６０】
【図１】ホストコントローラが複数のノードへ送信するデータを表す図である。
【図２】従来の通信システムにおける処理の流れを表す図である。
【図３】本発明を適用したロボットシステムの利用例を表す図である。
【図４】図３のロボット５の外観構成を示す斜視図である。
【図５】図３のロボット５の外観構成を示す、背後側の斜視図である。
【図６】図３のロボット５について説明するための略線図である。
【図７】図３のロボット５の内部構成を示すブロック図である。
【図８】図３のロボット５の制御に関する部分を主に説明するためのブロック図である。
【図９】図８のメイン制御部６１の構成を示すブロック図である。
【図１０】本発明を適用した通信システムの構成例を示すブロック図である。
【図１１】本発明の通信システムにおける処理を説明するフローチャートである。
【図１２】図１０のホストコントローラ２３１の構成例を示すブロック図である。
【図１３】図１０のノードＮiの構成例を示すブロック図である。
【図１４】パケットのフォーマットを示す図である。
【図１５】インタリーブパケットを説明する模式図である。
【図１６】ホストコントローラ２３１の処理を説明するフローチャートである。
【図１７】ノードＮiの処理を説明するフローチャートである。
【符号の説明】
【０１６１】
５  ロボット，  １１  胴体ユニット，  １２  頭部ユニット，  １３  腕部ユニット，  １４  脚部ユニット，  ５２  制御ユニット，  ６１  メイン制御部，  １０６  外部メモリ，  １１２  メモリ，  ２０５  制御機構部，  ２３１  ホストコントローラ，  ２４１  メイン通信路，  ２６１  通信部，  ２６２  作成部，  ２７１  通信部，  ２７２  制御部，  Ａ1乃至Ａn  アクチュエータ，  Ｎ1乃至Ｎn  ノード
【図１】
2005123745.tif 000003
【図２】
2005123745.tif 000004
【図３】
2005123745.tif 000005
【図４】
2005123745.tif 000006
【図５】
2005123745.tif 000007
【図６】
2005123745.tif 000008
【図７】
2005123745.tif 000009
【図８】
2005123745.tif 000010
【図９】
2005123745.tif 000011
【図１０】
2005123745.tif 000012
【図１１】
2005123745.tif 000013
【図１２】
2005123745.tif 000014
【図１３】
2005123745.tif 000015
【図１４】
2005123745.tif 000016
【図１５】
2005123745.tif 000017
【図１６】
2005123745.tif 000018
【図１７】
2005123745.tif 000019