JP2005123745A - 通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体 - Google Patents
通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体 Download PDFInfo
- Publication number
- JP2005123745A JP2005123745A JP2003354207A JP2003354207A JP2005123745A JP 2005123745 A JP2005123745 A JP 2005123745A JP 2003354207 A JP2003354207 A JP 2003354207A JP 2003354207 A JP2003354207 A JP 2003354207A JP 2005123745 A JP2005123745 A JP 2005123745A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- nodes
- data
- divided data
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】複数のノードが異なる制御データに対応する処理を同時刻に実行する。
【解決手段】 ホストコントローラ231は、複数のノードN1乃至Nnに異なる処理を同時刻に実行させる場合、ノードN1乃至Nn宛の異なる制御データを、1ビット単位に分割した分割データとし、ノードN1乃至Nn宛の同一ビット目の分割データを配置したインタリーブパケットを作成して、ブロードキャストする。一方、インタリーブパケットを受信した複数のノードN1乃至Nnは、インタリーブパケットの所定の位置から自身宛の1ビットの分割データを抽出して制御データを再構成し、制御データに基づいた処理を実行する。本発明は、例えば、1対多の通信を行なう通信システムに適用できる。
【選択図】図10
【解決手段】 ホストコントローラ231は、複数のノードN1乃至Nnに異なる処理を同時刻に実行させる場合、ノードN1乃至Nn宛の異なる制御データを、1ビット単位に分割した分割データとし、ノードN1乃至Nn宛の同一ビット目の分割データを配置したインタリーブパケットを作成して、ブロードキャストする。一方、インタリーブパケットを受信した複数のノードN1乃至Nnは、インタリーブパケットの所定の位置から自身宛の1ビットの分割データを抽出して制御データを再構成し、制御データに基づいた処理を実行する。本発明は、例えば、1対多の通信を行なう通信システムに適用できる。
【選択図】図10
Description
本発明は、通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体に関し、特に、複数のノードそれぞれが処理を(ほぼ)同時刻に実行することができるようにする通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体に関する。
例えば、ロボットにおいては、その内蔵するホストコントローラが、各部のアクチュエータに信号を送信することにより、アクチュエータそれぞれが駆動する。これにより、ロボットは、各種の行動を起こす。このようなロボットにおいて、ホストコントローラは、各部のアクチュエータに設けられた制御回路へ、アクチュエータそれぞれに処理を実行させる制御データを送信する。従って、ロボットにおいては、ホストコントローラと多数の制御回路とによって、通信システムが構成されている。いま、ホストコントローラと通信する通信相手である制御回路をノードP1乃至Pnと呼ぶこととする。
また、ホストコントローラは、制御データD1によってノードP1を制御し、制御データD2によってノードP2を制御し、以下、同様にして、制御データDnによってノードPnを制御することとする。例えば、ノードP1を制御する制御データD1は、1ビット目にデータD1,1が、2ビット目にデータD1,2が、以下、同様に、mビット目にデータD1,mがそれぞれ配置され、データD1,1乃至D1,mで構成されているとする。同様に、ノードP2を制御する制御データD2は、データD2,1乃至D2,mで構成され、以下、同様にして、ノードPnを制御する制御データDnは、データDn,1乃至Dn,mで構成されているとする。
なお、その制御データDiは、例えば、ノードPiに対するコマンドや必要なデータなどから構成される。
図1は、ホストコントローラが、制御データDiを各ノードPi(i=1,2,…,n)へ送信するときのパケットの内容を示している。ホストコントローラはノードPiに所定の処理を行わせる場合、ノードPi宛に、所定の処理を行なうことを指示する制御データDiを構成するデータDi,1乃至Di,mの書き込みを要求するパケット(ライトリクエストパケット)を送信する。即ち、制御データD1乃至Dnを、ノードP1乃至Pnそれぞれへ送信する場合においては、ホストコントローラは、ノードP1宛に制御データD1を構成するデータD1,1乃至D1,mの書き込みを要求するパケットを送信する。さらに、ホストコントローラは、ノードP2宛に制御データD2を構成するデータD2,1乃至D2,mの書き込みを要求するパケットを送信する。以下、同様にして、ノードPn宛に制御データDnを構成するデータDn,1乃至Dn,mの書き込みを要求するパケットを送信する。
図2は、従来のロボットの内部に構成されている通信システムにおいて、図1に示した各ノードP1乃至Pnを制御する制御データD1乃至Dnを、ホストコントローラが、ノードP1乃至Pnに送信する処理の流れを示している。ここで、ノードP1乃至Pnは、インテリジェントな機能を備えており、例えば、パケットの受信、パケットに格納されたデータの解析、および格納されたデータに基づいて、アクチュエータの制御などを行なう。
従来の通信システムにおいては、ホストコントローラが、すべてのノードP1乃至Pnに対して、それぞれのノードPiを制御する制御データDiを送信する場合、例えば、ホストコントローラは、各ノードPi宛にそのノードPiを制御する制御データDiを構成するデータDi,1乃至Di,mを配置した、その制御データDiの書き込みを要求するライトリクエストパケットを送信する。そして、各ノードPiは、自分宛のライトリクエストパケットを受信し、そのライトリクエストパケットに格納されたデータDi,1乃至Di,mから制御データDiを取得する。
即ち、ステップS11において、ホストコントローラは、ノードP1宛のライトリクエストパケットに制御データD1を構成するD1,1乃至D1,mを格納し、ノードP1へ送信する。ステップS11からステップS12に進み、ノードP1は、ホストコントローラが送信したデータD1,1乃至D1,mが格納されたライトリクエストパケットを受信する。そして、ノードP1は、受信したライトリクエストパケットからデータD1,1乃至D1,mを抽出することにより、制御データD1を取得する。ステップS12からステップS13に進み、ホストコントローラは、ノードP2宛のライトリクエストパケットに制御データD2を構成するD2,1乃至D2,mを格納し、ノードP2へ送信する。ステップS13からステップS14に進み、ノードP2は、データD2,1乃至D2,mが格納されたライトリクエストパケットを受信し、制御データD2を取得する。以下、同様の処理が行われ、ステップS15において、ホストコントローラは、最後のノードであるノードPnへ制御データDnを構成するDn,1乃至Dn,mを格納したライトリクエストパケットを送信する。ステップS15からステップS16に進み、ノードPnは、データDn,1乃至Dn,mが格納されたライトリクエストパケットを受信し、制御データDnを取得する。
このように、ホストコントローラは、それぞれのノードPiを制御する制御データDiを配置したライトリクエストパケットを作成し、各ノードPiに個別に送信する。ノードP1乃至Pnそれぞれは、自分宛のライトリクエストパケットを受信し、制御データDiを取得する。(非特許文献1参照)
データ通信のすべて 小泉 修、日本実業出版社p.96付近
従来の通信システムでは、前述にように、ホストコントローラが、ノードP1乃至Pnそれぞれに、各ノードPi宛のライトリクエストパケットを、順次送信する。このため、ホストコントローラが、最初にライトリクエストパケットを送信するノードP1と最後にライトリクエストパケットを送信するノードPnとでは、ライトリクエストパケットを受信し、制御データを取得する時刻にずれ(タイムラグ)が生じる。このずれは、ノードP1乃至Pnの数nや、制御データのサイズが大となると、大となる。いま、ノードPiが、制御データを取得後その制御データに対応する処理を実行すると、例えば、ノードP1とPnが処理を実行する時刻には、図2のステップS12でノードP1が制御データD1を受信した時刻と、ステップS16でノードPnが制御データDnを受信した時刻との差だけのずれが発生する。
上述のように、ホストコントローラが送信したライトリクエストパケットを、すべてのノードP1乃至Pnが受信するまでに時間がかかるという問題があった。
さらに、制御データの容量が大の場合、ノードP1乃至Pnそれぞれは、受信したライトリクエストパケットから制御データD1乃至Dnを取得し、その制御データDiに基づいて、アクチュエータを駆動する等の処理を実行するまでに時間がかかるという問題があった。
従って、ノードP1乃至Pnが制御するアクチュエータをほぼ同時に駆動しなければならないような行動をロボットにとらせることが困難なことがあった。
そこで、すべてのノードP1乃至Pnに同時刻に処理を実行させるために、ホストコントローラにおいて、制御データDiを格納したライトリクエストパケットをすべてのノードP1乃至Pnに個別に送信した後、処理を実行する合図を格納したライトリクエストパケットをすべてのノードP1乃至Pnにブロードキャストによって送信する方法がある。即ち、この方法では、ホストコントローラは、各ノードPiへ、制御データを受信してもすぐに処理を実行しない、という条件のもとに制御データDiを格納したライトリクエストパケットを送信する。その後、ホストコントローラは、すべてのノードP1乃至Pnが同一のパケットをほぼ同時刻に受信することができるブロードキャストにより、最も最近に受信した制御データに対応する処理を実行せよ、という合図を格納したライトリクエストパケットを送信する。これにより、すべてのノードP1乃至Pnは、2番目に受信したブロードキャストによるライトリクエストパケットを受信した時刻、即ち、ほぼ同時刻に、1番目に受信した制御データに基づく処理を実行することができる。
しかしながら、上述の方法では、ホストコントローラからノードP1乃至Pnそれぞれに対して、ライトリクエストパケットが2回送信されるので、ノードP1乃至Pnは、処理を実行するのに2つのライトリクエストパケットを処理しなければならない。ノードPiでは、パケットの受信等が、割り込み処理によって行われるため、1つ目のライトリクエストパケットを受信するのが遅いノード、例えば、ノードPnは、1つ目のパケットを受信してすぐに2つ目のパケットを受信しなければならず、その受信を確実に行なうための割り込み処理等の量が大きくなるという問題があった。
本発明はこのような状況に鑑みてなされたものであり、複数のノードが処理をほぼ同時刻に実行することができるようにすることを目的としている。
本発明の通信システムは、ホストコントローラが、複数のノード宛のデータそれぞれを分割し、分割データとする分割手段と、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成する作成手段と、インタリーブパケットをブロードキャストするブロードキャスト手段とを備え、複数のノードそれぞれが、インタリーブパケットを受信する受信手段と、インタリーブパケットから、自分宛の分割データを抽出する抽出手段と、抽出手段が抽出した分割データから、自分宛のデータを再構成する再構成手段とを備えることを特徴とする。
本発明の第1の通信装置は、複数のノード宛のデータそれぞれを分割し、分割データとする分割手段と、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成する作成手段と、インタリーブパケットをブロードキャストするブロードキャスト手段とを備えることを特徴とする。
分割手段には、データを、固定長の分割データに分割させ、作成手段には、複数のノードそれぞれ宛の分割データを、インタリーブパケットの、複数のノードそれぞれごとに固定の位置に配置させるようにすることができる。
分割手段には、データを、1ビット単位の分割データに分割させることができる。
本発明の第1の通信方法は、複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップと、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成する作成ステップと、インタリーブパケットをブロードキャストするブロードキャストステップとを含むことを特徴とする。
本発明の第1のプログラムは、複数のノード宛のデータそれぞれを分割させ、分割データとさせる分割ステップと、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成させる作成ステップと、インタリーブパケットをブロードキャストさせるブロードキャストステップとをコンピュータに実行させる。
本発明の第1の記録媒体のプログラムは、複数のノード宛のデータそれぞれを分割させ、分割データとさせる分割ステップと、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成させる作成ステップと、インタリーブパケットをブロードキャストさせるブロードキャストステップとを含むことを特徴とする。
本発明の第2の通信装置は、ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信手段と、インタリーブパケットから、自分宛の分割データを抽出する抽出手段と、抽出手段が抽出した自分宛の分割データから、自分宛のデータを再構成する再構成手段とを備えることを特徴とする。
抽出手段には、インタリーブパケットの固定の位置に配置された自分宛の分割データを抽出させるようにすることができる。
本発明の第2の通信方法は、ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップと、インタリーブパケットから、自分宛の分割データを抽出する抽出ステップと、抽出ステップが抽出した自分宛の分割データから、自分宛のデータを再構成する再構成ステップとを含むことを特徴とする。
本発明の第2のプログラムは、ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信させる受信ステップと、インタリーブパケットから、自分宛の分割データを抽出させる抽出ステップと、抽出ステップが抽出した自分宛の分割データから、自分宛のデータを再構成させる再構成ステップとをコンピュータに実行させることができる。
本発明の第2の記録媒体のプログラムは、ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信させる受信ステップと、インタリーブパケットから、自分宛の分割データを抽出させる抽出ステップと、抽出ステップが抽出した自分宛の分割データから、自分宛のデータを再構成させる再構成ステップとを含むことを特徴とする。
本発明の通信システムにおいては、複数のノード宛のデータそれぞれが分割され、分割データとされる。そして、複数のノードそれぞれ宛の分割データを配置したパケットであるインタリーブパケットが作成され、ブロードキャストされる。さらに、ブロードキャストされたインタリーブパケットが受信され、データが再構成される。
本発明の第1の通信装置、第1の通信方法、第1のプログラム、および第1のプログラム記録媒体においては、複数のノード宛のデータそれぞれが分割され、分割データとされる。そして、複数のノード宛の分割データを配置したパケットであるインタリーブパケットが作成され、ブロードキャストされる。
本発明の第2の通信装置、第2の通信方法、第2のプログラム、および第2のプログラム記録媒体においては、ホストコントローラによってブロードキャストされる、複数のノード宛のデータを分割したデータである分割データを配置したパケットである、インタリーブパケットが受信され、インタリーブパケットから、自分宛の分割データが抽出されて、自分宛のデータが再構成される。
本発明によれば、複数の通信装置が自分宛のデータの受信を完了する時刻のばらつきを小さくすることができる。
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の構成要件と、本発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、特許請求の範囲に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、特許請求の範囲にすべて記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の特許請求の範囲には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
請求項1に記載の通信システムは、
ホストコントローラと複数のノードとが通信を行なう通信システムにおいて、
前記ホストコントローラは、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割手段(例えば、図16のステップS72の処理)と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成手段(例えば、図16のステップS73の処理)と、
前記インタリーブパケットをブロードキャストするブロードキャスト手段(例えば、図16のステップS74の処理)と
を備え、
前記複数のノードそれぞれは、
前記インタリーブパケットを受信する受信手段(例えば、図17のステップS91の処理)と、
前記インタリーブパケットから、前記自分宛のデータの分割データを抽出する抽出手段(例えば、図17のステップS94の処理)と、
前記抽出手段が抽出した前記分割データから、自分宛のデータを再構成する再構成手段(例えば、図17のステップS96の処理)と
を備える
ことを特徴とする。
ホストコントローラと複数のノードとが通信を行なう通信システムにおいて、
前記ホストコントローラは、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割手段(例えば、図16のステップS72の処理)と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成手段(例えば、図16のステップS73の処理)と、
前記インタリーブパケットをブロードキャストするブロードキャスト手段(例えば、図16のステップS74の処理)と
を備え、
前記複数のノードそれぞれは、
前記インタリーブパケットを受信する受信手段(例えば、図17のステップS91の処理)と、
前記インタリーブパケットから、前記自分宛のデータの分割データを抽出する抽出手段(例えば、図17のステップS94の処理)と、
前記抽出手段が抽出した前記分割データから、自分宛のデータを再構成する再構成手段(例えば、図17のステップS96の処理)と
を備える
ことを特徴とする。
請求項2に記載の通信装置は、
複数のノードとの間で、通信を行なう通信装置において、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割手段(例えば、図16のステップS72の処理)と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成手段(例えば、図16のステップS73の処理)と、
前記インタリーブパケットをブロードキャストするブロードキャスト手段(例えば、図16のステップS74の処理)と
を備えることを特徴とする。
複数のノードとの間で、通信を行なう通信装置において、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割手段(例えば、図16のステップS72の処理)と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成手段(例えば、図16のステップS73の処理)と、
前記インタリーブパケットをブロードキャストするブロードキャスト手段(例えば、図16のステップS74の処理)と
を備えることを特徴とする。
請求項5に記載の通信方法は、
複数のノードとの間で、通信を行なう通信方法であって、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップ(例えば、図16のステップS72の処理)と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成ステップ(例えば、図16のステップS73の処理)と、
前記インタリーブパケットをブロードキャストするブロードキャストステップ(例えば、図16のステップS74の処理)と
を含むことを特徴とする。
複数のノードとの間で、通信を行なう通信方法であって、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップ(例えば、図16のステップS72の処理)と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成ステップ(例えば、図16のステップS73の処理)と、
前記インタリーブパケットをブロードキャストするブロードキャストステップ(例えば、図16のステップS74の処理)と
を含むことを特徴とする。
請求項6に記載のプログラム、および、請求項7に記載の記録媒体に記録されているプログラムにおいては、各ステップが対応する実施の形態(但し一例)は、請求項5に記載の通信方法と同様である。
請求項8に記載の通信装置は、
ホストコントローラとの間で、通信を行なう複数の通信装置のうちの1つの通信装置において、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信手段(例えば、図17のステップS91の処理)と、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出手段(例えば、図17のステップS94の処理)と、
前記抽出手段が抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成手段(例えば、図17のステップS96の処理)と
を備えることを特徴とする。
ホストコントローラとの間で、通信を行なう複数の通信装置のうちの1つの通信装置において、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信手段(例えば、図17のステップS91の処理)と、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出手段(例えば、図17のステップS94の処理)と、
前記抽出手段が抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成手段(例えば、図17のステップS96の処理)と
を備えることを特徴とする。
請求項10に記載の通信方法は、
ホストコントローラとの間で、通信を行なう複数の通信装置のうちの1つの通信装置における通信方法であって、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップ(例えば、図17のステップS91の処理)と、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出ステップ(例えば、図17のステップS94の処理)と、
前記抽出ステップが抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成ステップ(例えば、図17のステップS96の処理)と
を含むことを特徴とする。
ホストコントローラとの間で、通信を行なう複数の通信装置のうちの1つの通信装置における通信方法であって、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップ(例えば、図17のステップS91の処理)と、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出ステップ(例えば、図17のステップS94の処理)と、
前記抽出ステップが抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成ステップ(例えば、図17のステップS96の処理)と
を含むことを特徴とする。
請求項11に記載のプログラム、および、請求項12に記載の記録媒体に記録されているプログラムにおいては、各ステップが対応する実施の形態(但し一例)は、請求項10に記載の通信方法と同様である。
以下、図を参照して、本発明の実施の形態について説明する。
図3は、本発明を適用したロボット5の利用例を示している。
ユーザからの指令や周囲の環境に応じて自主的に行動を決定する人間型のロボット5は、IEEE(Institute of Electrical and Electronic Engineers)802.11b規格に準拠して、アクセスポイント2と通信し、例えば、ネットワーク3を介して、家電機器4−1を制御したり、パーソナルコンピュータ4−2からのコマンドを受信して所定の処理を行う。
図4は、本発明を適用した2足歩行型のロボット5の正面方向の斜視図であり、図5は、ロボット5の背面方向からの斜視図である。また、図6は、ロボット5の軸構成について説明するための図である。
ロボット5は、胴体部ユニット11、胴体部ユニット11の上部に配設された頭部ユニット12、胴体部ユニット11の上部左右の所定位置に取り付けられた腕部ユニット13Aおよび腕部ユニット13B、並びに胴体部ユニット11の下部左右の所定位置に取り付けられた脚部ユニット14Aおよび脚部ユニット14Bにより構成されている。
胴体部ユニット11は、体幹上部を形成するフレーム21および体幹下部を形成する腰ベース22が腰関節機構23を介して連結することにより構成されている。胴体部ユニット11は、体幹下部の腰ベース22に固定された腰関節機構23のアクチュエータA1、および、アクチュエータA2がそれぞれ駆動することによって、体幹上部を、図6に示す直交するロール軸24およびピッチ軸25の回りに、それぞれ独立に回転させることができるようになされている。
頭部ユニット12は、フレーム21の上端に固定された肩ベース26の上面中央部に首関節機構27を介して取り付けられており、首関節機構27のアクチュエータA3、およびアクチュエータA4がそれぞれ駆動することによって、図6に示す直交するピッチ軸28およびヨー軸29の回りに、それぞれ独立に回転させることができるようになされている。
腕部ユニット13A、および腕部ユニット13Bは、肩関節機構30を介して肩ベース26の左右にそれぞれ取り付けられており、対応する肩関節機構30のアクチュエータA5およびアクチュエータA6、並びに、アクチュエータA21およびアクチュエータA22がそれぞれ駆動することによって、図6に示す、直交するピッチ軸31およびロール軸32の回りに、それぞれを独立に回転させることができるようになされている。
この場合、腕部ユニット13A、および腕部ユニット13Bは、上腕部を形成するアクチュエータA7、およびアクチュエータA23の出力軸に、肘関節機構44を介して、前腕部を形成するアクチュエータA8、およびアクチュエータA24が連結され、前腕部の先端に手部34が取り付けられることにより構成されている。
そして腕部ユニット13A、および腕部ユニット13Bでは、アクチュエータA7、およびアクチュエータA23が駆動することによって、前腕部を図6に示すヨー軸35に対して回転させることができ、アクチュエータA8、およびアクチュエータA24が駆動することによって、前腕部を図6に示すピッチ軸36に対して回転させることができるようになされている。
脚部ユニット14A、および脚部ユニット14Bは、股関節機構37を介して、体幹下部の腰ベース22にそれぞれ取り付けられており、対応する股関節機構37のアクチュエータA9乃至A11、およびアクチュエータA15乃至A17がそれぞれ駆動することによって、図6に示す、互いに直交するヨー軸38、ロール軸39、およびピッチ軸40に対して、それぞれ独立に回転させることができるようになされている。
脚部ユニット14A、および、脚部ユニット14Bにおいては、大腿部を形成するフレーム41の下端が、膝関節機構42を介して、下腿部を形成するフレーム43に連結されるとともに、フレーム43の下端が、足首関節機構44を介して、足部45に連結されている。
これにより脚部ユニット14A、および脚部ユニット14Bにおいては、膝関節機構42を形成するアクチュエータA12、およびアクチュエータA18が駆動することによって、図6に示すピッチ軸46に対して、下腿部を回転させることができ、また足首関節機構44のアクチュエータA13およびアクチュエータA14、並びに、アクチュエータA19およびアクチュエータA20がそれぞれ駆動することによって、図6に示す直交するピッチ軸47およびロール軸48に対して、足部45をそれぞれ独立に回転させることができるようになされている。
脚部ユニット14A、および脚部ユニット14Bの、足部45の足底面(床と接する面)には、それぞれ足底センサ91(図9)が配設されており、足底センサ91のオン・オフに基づいて、足部45が床に接地しているか否かが判別される。
また、胴体部ユニット11の体幹下部を形成する腰ベース22の背面側には、後述するメイン制御部61(図8)などを内蔵したボックスである、制御ユニット52が配設されている。
図7は、ロボット5のアクチュエータとその制御系等について説明する図である。
胴体部ユニット11に設けた制御ユニット52には、ロボット5全体の動作制御をつかさどるメイン制御部61、並びに、後述するD/A変換部101、A/D変換部102、バッテリ103、バッテリセンサ131、加速度センサ132、通信部105、および外部メモリ106(いずれも図8)等を含む周辺回路62が収納されている。
そしてこの制御ユニット52は、各構成ユニット(胴体部ユニット11、頭部ユニット12、腕部ユニット13、脚部ユニット14)内にそれぞれ配設されたサブ制御部であるノードN1乃至N24と通信路を介して接続されており、ノードN1乃至N24に対して必要な電源電圧を供給したり、ノードN1乃至N24とパケット通信などを行う。
ここで、ノードN1乃至N24は、関節機構等であるアクチュエータA1乃至A24を制御するインテリジェントな機能を備えたサブ制御部であり、対応するアクチュエータA1乃至A24と接続されている。また、ノードN1乃至N24は、メイン制御部61から供給された各種信号に基づいて、対応するアクチュエータA1乃至A24を、指定された状態に個々に駆動させるように制御したり、ノードN1乃至N24それぞれが保持しているアクチュエータA1乃至A24のデータをメイン制御部61へ送信したりする。
図8は、ロボット5の内部構成を示すブロック図である。
頭部ユニット12には、このロボット5の「目」として機能するCCD(Charge Coupled Device )カメラ81、「耳」として機能するマイクロフォン82、頭部センサ51などからなる外部センサ部71、および、「口」として機能するスピーカ72となどがそれぞれ所定位置に配設され、制御ユニット52内には、バッテリセンサ131および加速度センサ132などからなる内部センサ部104が配設されている。また、脚部ユニット14A、および脚部ユニット14Bの足部45の足底面には、このロボット5の「体勢感覚」の1つとして機能する足底センサ91が配設されている。
そして、外部センサ部71のCCDカメラ81は、周囲の状況を撮像し、得られた画像信号を、A/D変換部102を介して、メイン制御部61に送出する。マイクロフォン82は、ユーザから音声入力として与えられる「歩け」、「とまれ」または「右手を挙げろ」等の各種処理音声を集音し、得られた音声信号を、A/D変換部102を介して、メイン制御部61に送出する。
また、頭部センサ51は、例えば、図4および図5に示されるように頭部ユニット12の上部に設けられており、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、検出結果としての圧力検出信号を、A/D変換部102を介して、メイン制御部61に送出する。
足底センサ91は、足部45の足底面に配設されており、足部45が床に接地している場合、接地信号を、A/D変換部102を介して、メイン制御部61に送出する。メイン制御部61は、接地信号に基づいて、足部45が床に接地しているか否かを判定する。足底センサ91は、脚部ユニット14A、および脚部ユニット14Bの両方の足部45に配設されているため、メイン制御部61は、接地信号に基づいて、ロボット5の両足が床に接地しているか、片足が床に接地しているか、両足とも床に接地していないかを判定することができる。
制御ユニット52は、メイン制御部61、D/A変換部101、A/D変換部102、バッテリ103、内部センサ部104、通信部105、および外部メモリ106等により構成される。
D/A(Digital/Analog)変換部101は、メイン制御部61から供給されるデジタル信号をD/A変換することによりアナログ信号とし、スピーカ72に供給する。A/D(Analog/ Digital)変換部102は、CCDカメラ81、マイクロフォン82、頭部センサ51、および足底センサ91が出力するアナログ信号をA/D変換することによりデジタル信号とし、メイン制御部61に供給する。
内部センサ部104のバッテリセンサ131は、バッテリ103のエネルギ残量を所定の周期で検出し、検出結果をバッテリ残量検出信号として、メイン制御部61に送出する。加速度センサ132は、ロボット5の移動について、3軸方向(x軸、y軸、およびz軸)の加速度を、所定の周期で検出し、検出結果を、加速度検出信号として、メイン制御部61に送出する。
メイン制御部61は、メイン制御部61全体の動作を制御するCPU(Central Processing Unit)111と、CPU111が各部を制御するために実行するOS(Operating System)121、アプリケーションプログラム122、その他の必要なデータ等が記憶されている内部メモリ112等を内蔵している。
メイン制御部61は、外部センサ部71のCCDカメラ81、マイクロフォン82および頭部センサ51からそれぞれ供給される、画像信号、音声信号および圧力検出信号、並びに足底センサ91から供給される接地信号(以下、これらをまとめて外部センサ信号S1と称する)と、内部センサ部104のバッテリセンサ131および加速度センサ132等からそれぞれ供給される、バッテリ残量検出信号および加速度検出信号(以下、これらをまとめて内部センサ信号S2と称する)に基づいて、ロボット5の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無などを判断する。
そして、メイン制御部61は、ロボット5の周囲および内部の状況や、ユーザからの指令、または、通信部105により受信されたパーソナルコンピュータ4−2からのコマンドと、内部メモリ112に予め配置されているアプリケーションプログラム122、あるいは、そのとき装填されている外部メモリ106に配置されている各種制御パラメータなどに基づいて、ロボット5の行動を決定し、決定結果に基づく制御データを生成して、対応する各構成ユニット(胴体部ユニット11、頭部ユニット12、腕部ユニット13、脚部ユニット14)に配設されたノードN1乃至N24へ送出する。ノードN1乃至N24は、供給された制御データに基づいて、アクチュエータA1乃至A24のうち、各ノードNi(i=1,2,…,n)に対応するものの駆動を制御する。これにより、ロボット5は、例えば、頭部ユニット12を上下左右に揺動させたり、腕部ユニット13A、あるいは、腕部ユニット13Bを上に挙げたり、脚部ユニット14Aおよび脚部ユニット14Bを交互に駆動させて、歩行するなどの機械的動作を行う。
また、メイン制御部61は、必要に応じて、所定の音声信号をスピーカ72に与えることにより、音声信号に基づく音声を外部に出力させる。
通信部105は、IEEE802.11b規格に準拠して、アクセスポイント2と無線で通信する。これにより、OS121やアプリケーションプログラム122がバージョンアップされたときに、通信部105を介して、そのバージョンアップされたOSやアプリケーションプログラムをダウンロードして、内部メモリ112に記憶させたり、また、所定のコマンドを、通信部105で受信し、CPU111に与えることができるようになっている。
外部メモリ106は、例えば、EEPROM(Electrically Erasable Programmable Read-only Memory)等で構成され、胴体部ユニット11に設けられた図示せぬスロットに対して、着脱可能になっている。外部メモリ106には、例えば、後述するような感情モデル等が記憶される。
図9は、図8のメイン制御部61の機能的構成例を示している。なお、図9に示す機能的構成は、メイン制御部61が、内部メモリ112に記憶されたOS121およびアプリケーションプログラム122を実行することで実現されるようになっている。また、図9では、D/A変換部101およびA/D変換部102の図示を省略してある。
メイン制御部61のセンサ入力処理部201は、頭部センサ51、足底センサ91、加速度センサ132、マイクロフォン82、CCDカメラ81、および通信部105からそれぞれ与えられる圧力検出信号、接地信号、加速度検出信号、音声信号、画像信号、および無線信号の通信品質信号等に基づいて、特定の外部状態や、ユーザからの特定の働きかけ、ユーザからの指示等を認識し、その認識結果を表す状態認識情報を、モデル記憶部202および行動決定機構部203に通知する。
すなわち、センサ入力処理部201は、圧力処理部221、加速度処理部222、音声認識部223、画像認識部224、および通信品質計測部225を有している。
圧力処理部221は、頭部センサ51から与えられる圧力検出信号を処理する。そして、圧力処理部221は、例えば、その処理の結果、所定の閾値以上で、かつ短時間の圧力を検出したときには、「叩かれた(しかられた)」と認識し、所定の閾値未満で、かつ長時間の圧力を検出しなときには、「なでられた(ほめられた)」と認識して、その認識結果を、状態認識情報として、モデル記憶部202および行動決定機構部203に通知する。
また、圧力処理部221は、足底センサ91から与えられる接地信号を処理する。そして、圧力処理部221は、例えば、その処理の結果、脚部ユニット14Aの足部45に配設された足底センサ91から接地信号が与えられている場合、脚部ユニット14Aの足部45が床(地面)に接地していると認識し、足底センサ91から接地信号が与えられていない場合、脚部ユニット14Aの足部45が床(地面)に接地していないと認識する。脚部ユニット14Bについても、同様にして、足底センサ91からの接地信号に基づいて、脚部ユニット14Bの足部45が床(地面)に接地しているか否かを認識する。そして、圧力処理部221は、その認識結果を、状態認識情報として、モデル記憶部202および行動決定機構部203に通知する。
加速度処理部222は、加速度センサ132から与えられる加速度検出信号に基づいて、胴体部ユニット11の加速度の方向および大きさを、状態認識情報として、モデル記憶部202および行動決定機構部203に通知する。
音声認識部223は、マイクロフォン82から与えられる音声信号を対象とした音声認識を行う。そして、音声認識部223は、その音声認識結果としての、例えば、「歩け」、「伏せ」、「ボールを追いかけろ」等の単語列を、状態認識情報として、モデル記憶部202および行動決定機構部203に通知する。
画像認識部224は、CCDカメラ81から与えられる画像信号を用いて、画像認識処理を行う。そして、画像認識部224は、その処理の結果、例えば、「赤い丸いもの」や、「地面に対して垂直なかつ所定高さ以上の平面」等を検出したときには、「ボールがある」や、「壁がある」等の画像認識結果を、状態認識情報として、モデル記憶部202および行動決定機構部203に通知する。
通信品質計測部225は、通信部105から得られるアクセスポイント2からの受信信号に基づいて、通信品質を計測し、その計測結果を、状態認識情報として、行動決定機構部203に通知する。通信品質とは、例えば、ノイズ強度などに対応した無線信号の強度や、エラーレート(スペクトル拡散で広がったバンドの中にバースト的に妨害電波が発生した場合、その通信パケットはエラーとなる)である。
モデル記憶部202は、ロボット5の感情、本能、成長の状態を表現する感情モデル、本能モデル、成長モデルをそれぞれ記憶し、管理している。
ここで、感情モデルは、例えば、「うれしさ」、「悲しさ」、「怒り」、「楽しさ」等の感情の状態(度合い)を、所定の範囲(例えば、−1.0乃至1.0等)の値によってそれぞれ表し、センサ入力処理部201からの状態認識情報や時間経過等に基づいて、その値を変化させる。
本能モデルは、例えば、「食欲」、「睡眠欲」、「運動欲」等の本能による欲求の状態(度合い)を、所定の範囲の値によってそれぞれ表し、センサ入力処理部201からの状態認識情報や時間経過等に基づいて、その値を変化させる。
成長モデルは、例えば、「幼年期」、「青年期」、「熟年期」、「老年期」等の成長の状態(度合い)を、所定の範囲の値によってそれぞれ表し、センサ入力処理部201からの状態認識情報や時間経過等に基づいて、その値を変化させる。
モデル記憶部202は、上述のようにして感情モデル、本能モデル、成長モデルの値で表される感情、本能、成長の状態を、状態情報として、行動決定機構部203に送出する。
なお、モデル記憶部202には、センサ入力処理部201から状態認識情報が供給される他に、行動決定機構部203から、ロボット5の現在または過去の行動、具体的には、例えば、「長時間歩いた」などの行動の内容を示す行動情報が供給されるようになっており、モデル記憶部202は、同一の状態認識情報が与えられても、行動情報が示すロボット5の行動に応じて、異なる状態情報を生成するようになっている。
例えば、ロボット5が、ユーザに挨拶をし、ユーザに頭を撫でられた場合には、ユーザに挨拶をしたという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部202に与えられ、この場合、モデル記憶部202では、「うれしさ」を表す感情モデルの値が増加される。
行動決定機構部203は、センサ入力処理部201からの状態認識情報やモデル記憶部202からの状態情報、後述する制御機構部205からのアクチュエータA1乃至A24の状態の情報、時間経過等に基づいて、次の行動を決定し、決定された行動の内容を、行動指令情報として、姿勢遷移機構部204に出力する。また、行動決定機構部203は、次の行動が発話である場合、音声合成部208へ発話指令情報を送信する。
姿勢遷移機構部204は、行動決定機構部203から供給される行動指令情報に基づいて、ロボット5の姿勢を、現在の姿勢から次の姿勢に遷移させるための姿勢遷移情報を生成し、これを制御機構部205に送出する。
制御機構部205は、姿勢遷移機構部204からの姿勢遷移情報にしたがって、アクチュエータA1乃至A24を駆動するための制御データを生成し、これを、アクチュエータA1乃至A24を制御するサブ制御部であり、各構成ユニット(胴体部ユニット11、頭部ユニット12、腕部ユニット13、脚部ユニット14)に配設されたノードN1乃至N 24へ送信する。制御データを受信したノードN1乃至N24は、その制御データに基づいて、各ノードに接続しているアクチュエータA1乃至A24を駆動し、ロボット5に種々の動作を実行させる。また、制御機構部205は、ノードN1乃至N24から、例えば、アクチュエータA1乃至A24の情報を取得し、ロボット5の各関節機構の状態を行動決定機構部203へ通知する。
即ち、制御機構部205は、ノードN1乃至N24と通信をするためのホストコントローラ231を有している。ホストコントローラ231は、例えば、制御機構部205が生成した制御データを、パケットに格納してノードN1乃至N24へ送信したり、また例えば、ノードN1乃至N24が、ホストコントローラ231へ送信したアクチュエータA1乃至A24の情報を含んだパケット受信して、制御機構部205に各関節機構の状態の情報を供給する。
音声合成部208は、行動決定機構部203から発話指令情報を受信し、その発話指令情報にしたがって、例えば、規則音声合成を行い、合成音をスピーカ72に供給して出力させる。
図10は、ホストコントローラ231と、ロボット5の各構成ユニット(胴体部ユニット11、頭部ユニット12、腕部ユニット13、脚部ユニット14)に配設されたノードN1乃至Nnとで構成される通信システムの構成例を示している。
図10の通信システムにおいて、ホストコントローラ231とノードN1乃至Nnそれぞれとは、バス型のメイン通信路241を介して通信を行なう。ノードN1乃至Nnは、メイン通信路241を介して並列に接続している。従って、ホストコントローラ231が送信したパケットは、すべてのノードN1乃至Nnへほぼ同時に送信される。また、あるノードNiが送信したパケットも、ホストコントローラ231と他のすべてのノードNj(j=1,2,・・・n、j≠i)とへ送信される。そして、ノードNiは、パケットを受信し、そのパケットの宛先が自分宛であるとき、パケットを処理し、パケットの宛先が自分宛ではないとき、パケットを無視する。
また、図10のホストコントローラ231は、例えば、ノードN1乃至Nnそれぞれに異なるデータを送信する場合、そのノードN1乃至Nn宛のデータそれぞれを分割し、その結果得られる、ノードN1乃至Nnそれぞれ宛の分割データを配置したパケットであるインタリーブパケットを作成する。さらに、ホストコントローラ231は、ブロードキャストにより、インタリーブパケットを送信する。即ち、ホストコントローラ231がパケットの宛先に、ブロードキャストである旨の信号(以下、適宜、ブロードキャスト信号という)を配置して送信する。ノードN1乃至Nnそれぞれは、ホストコントローラ231がブロードキャストによって送信したインタリーブパケットを受信し、宛先にブロードキャスト信号が格納されていることを確認することによって、インタリーブパケットが自分宛のパケットであると認識する。以上のように、ホストコントローラ231が、1つのインタリーブパケットをブロードキャストすることにより、各ノードN1乃至Nnが、インタリーブパケットを受信する。
さらに、ノードN1乃至Nnそれぞれは、ホストコントローラ231が送信したインタリーブパケットを受信した場合、そのインタリーブパケットから自分宛の分割データを抽出して取得する。ノードN1乃至Nnそれぞれは、すべてのインタリーブパケットを受信した後、取得した分割データからそのデータを再構成する。
メイン通信路241は、ホストコントローラ231とノードNiとを接続する通信路である。なお、メイン通信路241を介してやりとりする信号は、例えば、電気による信号でも光による信号でもよい。さらに、メイン通信路241を介した通信は、シリアル通信でも、パラレル通信でもよい。
図11は、図10の通信システムにおいて、ホストコントローラ231がノードN1乃至Nnに制御データを送信する場合の処理を説明するフローチャートである。
ホストコントローラ231がすべてのノードN1乃至Nnへ図1で説明したような制御データD1乃至Dnを送信する場合、まず最初に、ホストコントローラ231は、制御機構部205から供給される制御データD1乃至Dnを、例えば、1ビット単位に分割し、分割データとする。即ち、例えば、ホストコントローラ231は、ノードN1宛の制御データD1の1ビット目のデータを分割データD1,1、2ビット目のデータを分割データD1,2、以下同様に、mビット目のデータを分割データD1,mとして、制御データD1を分割データD1,1乃至D1,mとする。同様に、ホストコントローラ231は、ノードN2宛の制御データD2を分割データD2,1乃至D2,mとし、以下、同様にして、ノードNn宛の制御データDnを分割データDn,1乃至Dn,mとする。
次に、ホストコントローラ231は、1ビット単位に分割した分割データのうち、ノードN1乃至Nnそれぞれ宛の同一ビット目の分割データを1つのパケットに配置する。即ち、例えば、ホストコントローラ231は、ノードN1乃至Nnそれぞれ宛の1ビット目の分割データである、分割データD1,1、分割データD2,1、…、分割データDn,1を、所定の位置に配置したパケットを作成し、1番目のインタリーブパケットとする。同様に、ホストコントローラ231は、2ビット目の分割データD1,2、D2,2、…、Dn,2を所定の位置に配置した2番目のインタリーブパケットを作成する。以下、同様にして、ホストコントローラ231は、最後の分割データであるmビット目の分割データD1,m、D2,m、…、Dn,mを所定の位置に配置したm番目のインタリーブパケットを作成し、すべての分割データをパケットに配置する。
ここで、インタリーブパケットとは、例えば、上述のように、複数のノードそれぞれ宛の分割データを所定の位置に配置したパケットである。
ホストコントローラ231は、m個のインタリーブパケットを作成した後、図11のステップS41において、1ビット目の分割データを配置した1番目のインタリーブパケットを、ブロードキャストによりすべてのノードN1乃至Nnへ送信する。そして、ステップS41からS42に進み、ノードN1乃至Nnそれぞれは、1番目のインタリーブパケットを受信し、そのインタリーブパケットの、自分宛、即ち、ノードNi宛の分割データが配置されている所定の位置から1ビットの分割データDi,1を抽出することにより取得する。即ち、ステップS42において、ノードN1は、分割データD1,1を抽出し、ノードN2は、分割データD2,1を抽出する。以下、同様にして、ノードNnは、分割データDn,1を抽出する。なお、ホストコントローラ231は、インタリーブパケットをブロードキャストによりすべてのノードN1乃至Nnへ送信するため、各ノードNiがインタリーブパケットを受信する時刻は、ほぼ同時である。
その後、ステップS43において、ホストコントローラ231は、2ビット目の分割データを配置した2番目のインタリーブパケットを、ブロードキャストによりすべてのノードN1乃至Nnへ送信する。そして、ステップS43からS44に進み、ノードN1乃至Nnそれぞれは、2番目のインタリーブパケットを受信し、そのインタリーブパケットの、自分宛、即ち、ノードNi宛の分割データが配置されている所定の位置から1ビットの分割データDi,2を抽出することにより取得する。即ち、ステップS44において、ノードN1は、分割データD1,2を抽出し、ノードN2は、分割データD2,2を抽出する。以下、同様にして、ノードNnは、分割データDn,2を抽出する。
以下同様の処理が行われ、ステップS45において、ホストコントローラ231は、最後であるmビット目の分割データを配置したm番目のインタリーブパケットを、ブロードキャストによりすべてのノードN1乃至Nnへ送信する。そして、ステップS45からS46進み、ノードN1乃至Nnそれぞれは、m番目のインタリーブパケットを受信し、そのインタリーブパケットの、自分宛、即ち、ノードNi宛の分割データが配置されている所定の位置から1ビットの分割データDi,mを抽出することにより取得する。即ち、ステップS46において、ノードN1は、分割データD1,mを抽出し、ノードN2は、分割データD2,mを抽出する。以下、同様にして、ノードNnは、分割データDn,mを抽出する。ノードN1乃至Nnそれぞれは、最後のmビット目の分割データを取得した後、m個のインタリーブパケットから取得した自分宛(ノードNi宛)のmビットの分割データDi,1乃至Di,mから、制御データDiを再構成し、制御データDiに基づいた処理を実行する。
図10の通信システムによれば、ノードN1乃至Nnがそれぞれの制御データD1乃至Dnを取得する時刻のばらつきは、理論的には、ステップS46においてノードN1乃至Nnがmビット目の分割データを受信する時刻のばらつきに等しくなる。
即ち、図2で説明してのように、制御データD1乃至Dnを順次送信する場合には、ノードN1乃至Nnがそれぞれの制御データD1乃至Dnを受信する時刻のばらつきは、例えば、1番目に制御データを受信するノードN1と最後に制御データを受信するノードNnにおけるパケットの受信時刻の差だけ、具体的には、ノードの数n−1と、ノードがmビットの制御データが配置されたパケットを受信するのに要する時間との積に相当する時間だけ生じる。これに対して、図11で説明したように、制御データD1乃至Dnを分割データとして、インタリーブパケットによりブロードキャストする場合には、ノードN1乃至Nnがそれぞれの制御データD1乃至Dnを受信する時刻のばらつきは、ノードN1乃至Nnそれぞれが最後のインタリーブパケットを受信する時刻のばらつき、即ち、ノードN1がm番目のインタリーブパケットの自分宛の分割データD1,mを受信(取得)した時刻と、ノードNnがm番目のインタリーブパケットの自分宛の分割データDn,mを受信した時刻との差に等しくなる。また、各ノードNiが、制御データDiに対応する処理を実行する直前に取得する分割データDi,mは1ビットなので、その取得に要する処理は単純なものとなる。
従って、ノードN1乃至Nnでは、制御データD1乃至Dnそれぞれに基づく処理を、ほぼ同時刻に開始する(行う)ことが可能となる。
図12は、図10のホストコントローラ231の機能的構成例を示すブロック図である。ホストコントローラ231は、通信部261と作成部262とから構成されている。さらに、通信部261は、メイン通信路241と接続している。
通信部261は、メイン通信路241を介して、ノードNiとの間でパケットの送信と受信を行なう。即ち、通信部261は、作成部262から供給されたインタリーブパケットやその他のパケットを、ノードNiへ送信する。また、通信部261は、ノードN1乃至Nnそれぞれから送信されてくるホストコントローラ231宛のパケットを受信する。また、通信部261は、ノードNiからのパケットを解析し、例えば、そのパケットに格納されたアクチュエータAiの情報などを制御機構部205へ供給する。
作成部262は、制御機構部205からノードNiを制御する制御データDiを受信し、受信した制御データDiを配置したパケット(ライトリクエストパケットまたはリードリクエストパケット)を作成して、通信部261へ供給する。
さらに、作成部262は、制御機構部205から複数のノードN1乃至Nnが同時刻に行うべき処理を指示する制御データD1乃至Dnを受信した場合、インタリーブパケットを作成する。即ち、作成部262は、ノードN1乃至Nn宛の制御データD1乃至Dnを1ビット単位に分割して分割データD1,1乃至Dn,mを作成する。さらに、作成部262は、分割データD1,1乃至Dn,mのうち、ノードN1乃至Nnそれぞれ宛の同一ビット目の分割データD1,k乃至Dn,k(k=1,2,…,m)を配置したインタリーブパケットを作成する。そして、作成部262は、作成したインタリーブパケットを、順次、通信部261へ供給する。作成部262が作成するインタリーブパケットの詳細については、図15を用いて後述する。
図13は、図10のノードNiの機能的構成例を示すブロック図である。ノードNiは、通信部271と制御部272とから構成されている。
通信部271は、メイン通信路241に接続されている。通信部271は、ホストコントローラ231や他のノードNjが送信したメイン通信路241上のパケットを受信し、そのパケットの種類とパケットの宛先とを解析する。即ち、例えば、受信したパケットが、ホストコントローラ231が送信した自分宛(ノードNi宛)のパケットである場合、通信部271は、そのパケットを制御部272へ供給する。また、通信部271は、受信したパケットが、例えば、他のノードNjが送信したホストコントローラ231宛のパケットである場合、そのパケットを無視する。また、通信部271は、制御部272から供給された、ホストコントローラ231宛のパケットを、メイン通信路241を介してホストコントローラ231へ送信する。
制御部272は、通信部271から供給されたパケットを解析し、パケットに含まれているデータに基づいて、アクチュエータAiを駆動する処理を行なったり、アクチュエータAiの情報などを格納したパケットを作成し、ホストコントローラ231宛に送信したりする。
また、制御部272は、通信部271から供給されたパケットがインタリーブパケットである場合、そのインタリーブパケットの自分宛の分割データDi,kが配置されている所定の位置から自分宛の分割データDi,kを抽出して制御データDiを再構成する。即ち、制御部272は、例えば、インタリーブパケットの自分宛の分割データDi,kが配置されている位置を認識しており、受信したインタリーブパケットから自分宛の分割データDi,kを抽出し、抽出した分割データDi,kを抽出した順番に並べて記憶する。そして、制御部272は、最後の分割データ、即ち、mビット目の分割データDi,mを記憶することにより、mビットの分割データDi,1乃至Di,mからなる制御データDiを再構成する。ここで、制御部272が認識している自分宛の分割データDi,kの位置は、例えば、パケットの先頭からのビット数であり、制御部272は、インタリーブパケットのそのビット数の位置にある分割データDi,kを抽出する。
図14は、ホストコントローラ231とノードNiとの間で送受信するパケットのフォーマットを示している。
パケットは、その先頭から、8ビットの同期信号が配置されるSYNC(Synchronous)部、パケットの種類やアドレスを格納するCTRL(Control)部、CTRL部のビット列をビット反転したビットが配置されるnCTRL部、ユーザデータ(ペイロード)を格納するコンテンツ部、およびデータのエラーを検出するコードが配置されるCRC部が順次配置されて構成される。
CTRL部には、CTRLが格納される。CTRLは、例えば、8ビットで、パケットの種類を表す2ビットのType(タイプ)部、ユーザがアプリケーションで自由に使用する2ビットのUser's Bit(ユーザビット)部、および、パケットの宛先もしくはパケットの送信元を表す4ビットのADDR(アドレス)部で構成されている。
Type部には、パケットの種類を表すタイプが格納される。即ち、例えば、ホストコントローラ231の作成部262は、ノードN1乃至Nn宛の分割データD1,k乃至Dn,kを格納したインタリーブパケットを作成する場合、Type部に、パケットがインタリーブパケットである旨を表すインタリーブ信号としての2ビットを格納する。また、作成部262は、ノードNiから情報を取得するリードリクエストパケットを作成する場合、Type部に、パケットがリードリクエストパケットである旨を表すリードリクエスト信号としての2ビットを格納する。さらに、作成部262は、ノードNiに制御データ等の情報を書き込むライトリクエストパケットを作成する場合、Type部に、パケットがライトリクエストパケットである旨を表すライトリクエスト信号としての2ビットを格納する。一方、ノードNiの制御部272は、リードリクエストパケットに応答するアンサパケットを作成する場合、Type部に、アンサパケットである旨を表すアンサ信号としての2ビットを格納する。
ADDR(Address)部には、パケットの宛先もしくは送信元のアドレスが格納される。即ち、例えば、ホストコントローラ231の作成部262は、ノードNiへパケットを送信する場合、宛先であるノードNiのアドレスとしての、例えば、ノード番号iをADDR部に格納する。また、作成部262は、すべてのノードN1乃至Nnへパケットを送信する場合、ブロードキャスト信号としての4ビットをADDR部に格納する。
従って、ノードNiの通信部271は、受信したパケットのType部を解析することにより、受信したパケットが、例えば、インタリーブパケットであることを認識することができる。さらに、例えば、ノードNiの通信部271は、受信したパケットのADDR部に自分のノード番号iもしくは、ブロードキャスト信号が格納されているとき、自分宛のパケットと認識してパケットを取得して、制御部272へ供給する。一方、ノードNiの通信部271は、ADDR部に他のノード番号iが格納されているとき、パケットを無視する。
なお、ノードNiがホストコントローラ231に対してアンサパケットを送信する場合、そのアンサパケットのADDR部には、送信元であるノードNiのアドレスとしての、例えば、ノード番号iが格納される。
nCTRL部には、CTRL部に配置したビット列をビット反転したビット列であるnCTRLが格納される。従って、nCTRLをビット反転したものと、nCTRLとが一致していない場合、nCTRLにエラーが生じている可能性がある。
以上のSYNC部、CTRL部、およびnCTRL部がパケットのヘッダを構成している。パケットのヘッダの後には、コンテンツ部(パケットによって送信される実データ)が配置される。
コンテンツ部には、ユーザデータ(ペイロード)が格納される。なお、コンテンツ部は、固定長とすることもできるし、可変長とすることもできるが、ここでは、例えば、固定長とする。ホストコントローラ231の作成部262は、インタリーブパケットを作成する場合、コンテンツ部にノードN1乃至Nnそれぞれ宛の同一ビット目の分割データD1,k乃至Dn,kからなるnビットを格納する。コンテンツ部に格納する分割データD1,k乃至Dn,kの詳細については、図15にて後述する。
CRC(Cyclic Redundancy Check)部には、伝送によってパケットのユーザデータにエラーが発生していないかどうかを検出するコードであるCRCコードが格納される。例えば、ホストコントローラ231の作成部262は、送信するパケットのユーザデータからCRCコードを算出して、CRC部に格納する。一方、パケットを受信したノードNiの制御部272は、ホストコントローラ231の作成部262と同一の算出方法によりCRCコードを算出する。そして、ノードNiの制御部272は、CRC部に格納されたCRCコードと算出したCRCコードとを比較して、ユーザデータにエラーが発生しているかどうかを検出する。ユーザデータにエラーが発生していると検出された場合、ノードNiの制御部272は、例えば、通信部271およびメイン通信路241を介して、ホストコントローラ231へパケットの再送を要求する。CRC部に配置されるCRCコードは、ノードNiからホストコントローラ231にパケットが送信される場合にも、同様に処理される。
図15は、ホストコントローラ231の作成部262が作成するインタリーブパケットを模式的に示している。
ホストコントローラ231の作成部262は、mビットの制御データD1乃至Dnそれぞれを1ビット単位に分割する。そして、ホストコントローラ231の作成部262は、各ノードN1乃至Nn宛の制御データD1乃至Dnの1ビット目の分割データD1,1乃至Dn,1を、コンテンツ部に配置したインタリーブパケットを作成し、これを1番目のインタリーブパケットとする。同様に、作成部262は、各ノードN1乃至Nn宛の制御データD1乃至Dnの2ビット目の分割データD1,2乃至Dn,2を、コンテンツ部に配置したインタリーブパケットを作成し、これを2番目のインタリーブパケットとする。以下、同様にして、作成部262は、各ノードN1乃至Nn宛の制御データD1乃至Dnのmビット目の分割データD1,m乃至Dn,mを、コンテンツ部に配置したインタリーブパケットを作成し、これをm番目のインタリーブパケットとする。このように、ホストコントローラ231の作成部262は、同一ビット目の分割データD1,k乃至Dn,kをコンテンツ部に格納したインタリーブパケットを作成する。従って、インタリーブパケットのコンテンツ部の先頭からiビット目には、ノードNiが取得すべき分割データDi,kが配置されている。
そして、ホストコントローラ231の作成部262は、1番目のインタリーブパケットから順次、通信部261へ供給し、通信部261は、供給されたインタリーブパケットを、メイン通信路241を介して、ブロードキャストする。
図16は、ホストコントローラ231がインタリーブパケットを作成して送信する処理を説明するフローチャートである。
図16の処理は、例えば、制御機構部205から作成部262に対して、すべてのノードN1乃至Nnが同時刻に実行すべき処理を指示する制御データD1乃至Dnが供給されると開始される。なお、制御機構部205から作成部262に供給された制御データに対応する処理が、ノードN1乃至Nnにおいて同時刻に実行すべきものであるか否かの判定は、例えば、制御機構部205から作成部262に対して同時刻に実行すべき処理である旨の信号を供給し、この信号を作成部262が受信したかどうかや、制御機構部205から作成部262に対して供給された制御データが各ノードN1乃至Nn宛の制御データであるかどうか、あるいは、制御機構部205から作成部262に対して、ノードN1乃至Nn宛それぞれの制御データD1乃至Dnが所定の時間内に供給されたかどうかなどによって行なうことができる。
ステップS71において、作成部262は、制御機構部205からの制御データD1乃至Dnを受信し、ステップS72に進み、その制御データD1乃至Dnを、1ビット単位に分割して分割データとして、ステップS73に進む。
ステップS73において、作成部262は、パケットのType部にインタリーブ信号を配置し、ADDR部にブロードキャスト信号を配置する。さらに、作成部262は、コンテンツ部に、ステップS72において分割した分割データの各ノードN1乃至Nn宛の同一ビット目の分割データを配置する。これにより、作成部262は、制御データD1乃至Dnそれぞれがmビットからなる場合には、1番目からm番目のm個のインタリーブパケットを作成する。
なお、制御データD1乃至Dnそれぞれのビット長が異なる場合、作成部262は、制御データD1乃至Dnのうちの最大のビット長に一致する数のインタリーブパケットを作成する。この場合、コンテンツ部のあるビットに配置すべき分割データが存在しないインタリーブパケットが生じうるが、そのコンテンツ部のビットには、例えば、ダミーのデータ(スタッフィングビット)が配置される。
その後、ステップS73からステップS74に進み、作成部262は、ステップS73で作成したm個のインタリーブパケットを、1番目から順に、通信部261に供給する。そして、通信部261は、メイン通信路241を介して、通信部262からのインタリーブパケットを、ブロードキャストにより送信し、ステップS75に進む。
ステップS75において、通信部261は、作成部262からの1番目からm番目のインタリーブパケットをすべて送信したか否かを判定する。ステップS75において、通信部261は、1番目からm番目のインタリーブパケットのすべてを、まだ送信していないと判定した場合、ステップS74に戻り、次に送信すべきインタリーブパケットを送信する。一方、ステップS75において、通信部262が1番目からm番目のインタリーブパケットのすべてを送信したと判定した場合、即ち、通信部261が、作成部262からm個のインタリーブパケットを受信し、最後であるm番目のインタリーブパケットの送信を終了した場合、処理を終了する。
図17は、ノードNiがホストコントローラ231の通信部261が送信した、パケットを受信したときの処理を説明するフローチャートを示している。
まず最初に、ステップS91において、通信部271は、ホストコントローラ231の通信部261が送信したパケットを受信し、そのパケットのADDR部にブロードキャスト信号、もしくは自分のノード番号iが格納されている場合、ステップS92に進む。なお、受信したパケットのADDR部にブロードキャスト信号、もしくは自分のノード番号iが格納されていない場合、即ち、他のノード番号jが格納されている場合、そのパケットを無視してステップS91に戻る。
ステップS92において、通信部271は、ステップS91で受信したパケットのType部にインタリーブ信号が格納されているか否かを判定する。ステップS92において、パケットのType部にインタリーブ信号が格納されていないと判定した場合、即ち、Type部にライトリクエスト信号、もしくはリードリクエスト信号が配置されている場合、通信部271は、ステップS91で受信したパケットを制御部272へ供給し、ステップS93に進む。ステップS93において、制御部272は、通信部271からのパケットのコンテンツ部に格納されているすべてのユーザデータを取得し、ステップS97に進む。一方、ステップS92において、ステップS91で受信されたパケットのType部にインタリーブ信号が格納されていると判定した場合、通信部271は、ステップS91で受信したパケット、即ち、インタリーブパケットを制御部272へ供給し、ステップS94に進む。
ステップS94において、制御部272は、通信部271から供給されたインタリーブパケットに配置されているコンテンツ部のうち、あらかじめ認識している自分宛の分割データDi,kが配置されている所定の位置から、1ビットの分割データDi,kを抽出して記憶し、ステップS95に進む。
ステップS95において、制御部272は、最後の分割データDi,mを抽出したか否かを判定する。ステップS95において、制御部272は、最後の分割データDi,mを抽出していないと判定された場合、まだ、ステップS94でmビットの分割データDi,1乃至Di,mが記憶されていない場合、ステップS91に戻り、ステップS91乃至S95の処理を繰り返し行なう。一方、ステップS95において、最後の分割データDi,mを抽出したと判定された場合、即ち、ステップS94でmビットの分割データDi,1乃至Di,mが記憶された場合、制御部272は、ステップS96に進み、制御部272は、ステップS94で記憶した1ビット目からmビット目までの分割データDi,1乃至Di,mを読み出すことにより、そのmビットの分割データDi,1乃至Di,mからなる制御データDiの再構成を行なう。即ち、例えば、ノードNiの制御部272は、分割データDi,1、分割データDi,2、…、分割データDi,mを、その順番で並べて得られる制御データDiを再構成する。そして、ステップS96からステップS97に進む。
ステップS97において、制御部272は、ステップS93で取得したユーザデータ、もしくはステップS96で再構成した制御データDiに基づいて、処理を行い、処理を終了する。
なお、本実施の形態においては、ロボット5におけるホストコントローラ231と複数のノードN1乃至Nnとは、バス型の接続形態で接続するとしたが、ホストコントローラ231とノードN1乃至Nnとの接続形態は、このようなバス型に限られるものではない。即ち、ホストコントローラ231とノードN1乃至Nnとの接続形態は、例えば、デイジーチェーン型やスター型等であってもよい。
また、作成部262が分割する分割データは、1ビットとしたが、分割データの長さは、1ビットではなく、例えば、1バイトでも、その他の任意のビット数でもよい。
分割データのデータ量(ビット数)は、上述のように、任意の値とすることができるが、ノードN1乃至Nnにおける制御データD1乃至Dnの受信(取得)時刻のばらつきは、分割データのデータ量が小さいほど小とすることができる。即ち、ノードN1乃至Nnそれぞれは、図14に示したパケットフォーマットの先頭から順にパケットを受信してデータを取得する。例えば、コンテンツ部の最初に分割データD1,kが配置されるノードN1と、コンテンツ部の最後に分割データDn,kが配置されるノードNnとが、それぞれの分割データD1,kとDn,kとを取得する時刻の差は、D1,kからDn,kまでのデータ量が小であるとき小となる。従って、ノードN1乃至Nnにおける制御データD1乃至Dnの受信(取得)時刻のばらつきは、分割データを1ビットとしたとき最小となる。
さらに、上述の場合には、ホストコントローラ231の作成部262において、制御データD1乃至Dnそれぞれのあるkビット目の分割データだけをコンテンツ部に配置することとしたが、コンテンツ部には、制御データD1乃至Dnそれぞれのkビット目の分割データの他、他のk'ビット目の分割データを配置してもよい。即ち、例えば、ホストコントローラ231の作成部262では、コンテンツ部の先頭から、各ノードN1乃至Nn宛の制御データD1乃至Dnそれぞれの1ビット目の分割データD1,1乃至Dn,1を配置し、続いて、2ビット目の分割データD1,2乃至Dn,2を配置し、以下、同様に、mビット目の分割データD1,m乃至Dn,mを配置することができる。この場合、ホストコントローラ231の作成部262が作成するインタリーブパケットは、1つとなる。一方、ノードNiの制御部272は、このインタリーブパケットを受信し、コンテンツ部の複数(ここではm)の所定の位置それぞれから、複数の分割データを抽出する。さらに、ノードNiの制御部272は、自分宛のすべての分割データDi,1乃至Di,mの抽出後、制御データDiを再構成する。この場合も、ノードN1乃至Nnにおける制御データD1乃至Dnの受信(取得)時刻のばらつきを小さくすることができる。
さらに、ノードNiが、最後のインタリーブパケットを受信したか否かの判定は、例えば、あらかじめ決められた数のm個のインタリーブパケットを受信したかどうかや、ホストコントローラ231から報知された数のインタリーブパケットを受信したかどうかによって行なうことが可能である。ホストコントローラ231によるインタリーブパケットの数の報知は、インタリーブパケットの数を、ライトリクエストパケットに格納して、ブロードキャストにより送信することによって行なうことが可能である。この場合、ノードNiの制御部272は、このライトリクエストパケットからインタリーブパケットの数を認識し、その数のインタリーブパケットを受信したときに、最後のインタリーブパケットを受信したと判定する。さらに、例えば、作成部262は、最後のインタリーブパケットのUser's Bit部に最後である旨の信号を配置することができ、この場合、ノードNiの制御部272は、インタリーブパケットのUser’s Bit部に配置された信号から、そのインタリーブパケットが最後のインタリーブパケットであるかどうかを判定することができる。
さらに、ホストコントローラ231の通信部261は、制御データDiのkビット目の分割データDi,kが配置されたk番目のインタリーブパケットをk番目に送信し、ノードNiは、インタリーブパケットを受信した順番に、そのインタリーブパケットに配置された分割データDi,kを記憶することにより制御データDiの再構成を行なうとしたが、インタリーブパケットは、その他の、任意の順番で送信することが可能である。さらに、この場合、User’s Bit部には、何番目のインタリーブパケットであるかを表す信号を配置することができる。これにより、ノードNiの制御部272は、インタリーブパケットのUser’s Bit部に配置された信号に基づいて、そのインタリーブパケットが何番目のインタリーブパケットであるかを表す確認し、さらに、そのインタリーブパケットに配置された分割データを並べて制御データDiを再構成することができる。
また、本実施の形態においては、メイン通信路241を介して接続しているすべてのノードN1乃至Nnは、同時刻に処理を実行するとしたが、同時刻に処理を実行しないノードNiがある場合、例えば、ホストコントローラ231の作成部262は、コンテンツ部の、同時刻に処理を実行しないノード宛の分割データを配置する位置に、ダミーの信号を配置することができる。これにより、すべてではない複数のノードに同時刻に処理を実行させることができる。
また、図10の通信システムにおいては、例えば、各ノードNi宛の制御データDiのデータ量をmビットとするとともに、分割データのデータ量をaビットとした場合、すべてのノードN1乃至Nnが制御データD1乃至Dnの受信を完了する受信時刻のばらつきは、従来の通信システムと比べて、理論的には、a/mの時間となる。従って、図10の通信システムは、分割データのデータ量aを小さくするほど、および、各ノードNi宛の制御データDiのデータ量mが大きいほど、受信時刻のばらつきに相当する時間を小さくする効果が大きくなる。
上述した一連の処理は、専用のハードウェアによっても、またソフトウェアによっても実行することができる。一連の処理をソフトウェアによって行なう場合には、そのソフトウェアを構成するプログラムが、通信システムを構成するハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリなどよりなるパッケージメディアとして提供することができる。例えば、図8においては、プログラムは、外部メモリ106に記録して提供し、メモリ112にインストールすることができる。
また、本明細書において、フローチャートに記述したステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
また、本実施の形態では、本発明をロボットに適用した場合について説明したが、本発明は、ロボット以外の1対多の通信を行なうシステムに適用可能である。
5 ロボット, 11 胴体ユニット, 12 頭部ユニット, 13 腕部ユニット, 14 脚部ユニット, 52 制御ユニット, 61 メイン制御部, 106 外部メモリ, 112 メモリ, 205 制御機構部, 231 ホストコントローラ, 241 メイン通信路, 261 通信部, 262 作成部, 271 通信部, 272 制御部, A1乃至An アクチュエータ, N1乃至Nn ノード
Claims (12)
- ホストコントローラと複数のノードとが通信を行なう通信システムにおいて、
前記ホストコントローラは、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割手段と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成手段と、
前記インタリーブパケットをブロードキャストするブロードキャスト手段と
を備え、
前記複数のノードそれぞれは、
前記インタリーブパケットを受信する受信手段と、
前記インタリーブパケットから、前記自分宛のデータの分割データを抽出する抽出手段と、
前記抽出手段が抽出した前記分割データから、自分宛のデータを再構成する再構成手段と
を備える
ことを特徴とする通信システム。 - 複数のノードとの間で、通信を行なう通信装置において、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割手段と、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成手段と、
前記インタリーブパケットをブロードキャストするブロードキャスト手段と
を備えることを特徴とする通信装置。 - 前記分割手段は、前記データを、固定長の前記分割データに分割し、
前記作成手段は、前記複数のノードそれぞれ宛の前記分割データを、前記インタリーブパケットの、前記複数のノードそれぞれごとに固定の位置に配置する
ことを特徴とする請求項2に記載の通信装置。 - 前記分割手段は、前記データを、1ビット単位の分割データに分割する
ことを特徴とする請求項3に記載の通信装置。 - 複数のノードとの間で、通信を行なう通信方法であって、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップと、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成ステップと、
前記インタリーブパケットをブロードキャストするブロードキャストステップと
を含むことを特徴とする通信方法。 - 複数のノードとの間で、通信を行なう処理をコンピュータに行なわせるプログラムであって、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップと、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成ステップと、
前記インタリーブパケットをブロードキャストするブロードキャストステップと
を含むことを特徴とするプログラム。 - 複数のノードとの間で、通信を行なう処理をコンピュータに行なわせるプログラムが記録されているプログラム記録媒体であって、
前記複数のノード宛のデータそれぞれを分割し、分割データとする分割ステップと、
前記複数のノードそれぞれ宛の前記分割データを配置したパケットであるインタリーブパケットを作成する作成ステップと、
前記インタリーブパケットをブロードキャストするブロードキャストステップと
を含むことを特徴とするプログラムが記録されているプログラム記録媒体。 - ホストコントローラとの間で、通信を行なう複数の通信装置のうちの1つの通信装置において、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信手段と、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出手段と、
前記抽出手段が抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成手段と
を備えることを特徴とする通信装置。 - 前記抽出手段は、前記インタリーブパケットの固定の位置に配置された前記自分宛ての分割データを抽出する
ことを特徴とする請求項8に記載の通信装置。 - ホストコントローラとの間で、通信を行なう複数の通信装置のうちの1つの通信装置における通信方法であって、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップと、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出ステップと、
前記抽出ステップが抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成ステップと
を含むことを特徴とする通信方法。 - ホストコントローラとの間で、通信を行なう複数の通信装置のうちの1つの通信装置における通信処理をコンピュータに行なわせるプログラムであって、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップと、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出ステップと、
前記抽出ステップが抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成ステップと
を含むことを特徴とするプログラム。 - ホストコントローラとの間で、通信を行なう複数の通信装置のうちの1つの通信装置における通信処理をコンピュータに行なわせるプログラムが記録されているプログラム記録媒体であって、
前記ホストコントローラによってブロードキャストされる、複数のノード宛のデータそれぞれを分割したデータである分割データを配置したパケットである、インタリーブパケットを受信する受信ステップと、
前記インタリーブパケットから、前記自分宛の分割データを抽出する抽出ステップと、
前記抽出ステップが抽出した前記自分宛の分割データから、自分宛のデータを再構成する再構成ステップと
を含むことを特徴とするプログラムが記録されているプログラム記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003354207A JP2005123745A (ja) | 2003-10-14 | 2003-10-14 | 通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003354207A JP2005123745A (ja) | 2003-10-14 | 2003-10-14 | 通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2005123745A true JP2005123745A (ja) | 2005-05-12 |
Family
ID=34612250
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003354207A Withdrawn JP2005123745A (ja) | 2003-10-14 | 2003-10-14 | 通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2005123745A (ja) |
-
2003
- 2003-10-14 JP JP2003354207A patent/JP2005123745A/ja not_active Withdrawn
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8795022B2 (en) | Interacting toys | |
| JP4972218B1 (ja) | 動作体玩具 | |
| JP2004299033A (ja) | ロボット装置、情報処理方法、およびプログラム | |
| EP3198360B1 (en) | Apparatus and method for controlling wearable devices using wireless energy harvesting | |
| KR20010052699A (ko) | 로봇 장치, 로봇 장치의 제어방법 및 프로그램 기록 매체 | |
| US20230355138A1 (en) | Electronic device and system for assisting user motion | |
| CN106993243A (zh) | 一种基于耳机的智能设备控制方法、装置及系统 | |
| CN108113771A (zh) | 电动牙刷的控制方法、电动牙刷及存储介质 | |
| EP2341991A1 (en) | Interacting toys | |
| JP2002307350A (ja) | ロボット装置、ロボット装置の動作制御方法、ロボット装置の制御システム、プログラム及び記録媒体 | |
| CN107705539A (zh) | 智能遥控器和智能主设备、智能遥控方法及系统 | |
| US20200164519A1 (en) | Motion control apparatus of action robot and motion generation and control system including the same | |
| KR20200065499A (ko) | 음악과 춤의 상관관계를 학습하여 춤을 추는 로봇 | |
| US20230412759A1 (en) | Electronic device and control method for controlling speed of workout video | |
| JP2005123745A (ja) | 通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体 | |
| JP5491655B1 (ja) | 携帯端末機用スマートトイ駆動システム | |
| US12045088B2 (en) | Thin portable communication terminal, and control method and control program thereof | |
| JP2005123744A (ja) | 通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体 | |
| JP2004304714A (ja) | 情報処理システム、情報処理装置、情報処理方法、およびプログラム | |
| US12265662B2 (en) | Device for reproducing a heartbeat pattern to memorialize a loved one | |
| JP6754819B2 (ja) | 着ぐるみ演出支援装置、着ぐるみ演出支援システムおよび着ぐるみ演出支援方法 | |
| CN115357116A (zh) | 一种基于智能床垫的观影方法及相关产品 | |
| JP2020192387A (ja) | 着ぐるみ演出支援装置、着ぐるみ演出支援システムおよび着ぐるみ演出支援方法 | |
| CN108710325B (zh) | 微表情生成装置、方法 | |
| US12512127B2 (en) | Electronic device and operation method of electronic device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070109 |