(57)【要約】【課題】複数のノードから情報を短時間で取得する。【解決手段】  ホストコントローラ２３１は、複数のノードＮ1乃至Ｎnから情報を取得する場合、情報を要求するパケットであるリードリクエストパケットをブロードキャストする。リードリクエストパケットを受信した複数のノードＮ1乃至Ｎnそれぞれは、リードリクエストに応答するアンサパケットを作成し、自分のアンサパケットを所定の順番でホストコントローラ２３１へ送信する。本発明は、例えば、１対多の通信を行なう通信システムに適用できる。【選択図】図９
2005123744.tif 000002
【特許請求の範囲】
【請求項１】
ホストコントローラと複数のノードとが、パケットによる通信を行なう通信システムにおいて、
前記ホストコントローラは、前記ノードに対して情報を要求するパケットであるリードリクエストパケットをブロードキャストするブロードキャスト手段を備え、
前記複数のノードそれぞれは、
前記リードリクエストパケットを受信する受信手段と、
前記リードリクエストパケットに応答するアンサパケットを作成する作成手段と、
前記作成手段が作成したアンサパケットを所定の順番で送信する送信手段と
を備える
ことを特徴とする通信システム。
【請求項２】
ホストコントローラとの間で、パケットによる通信を行なう複数の通信装置のうちの１つの通信装置において、
前記ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットを受信する受信手段と、
前記リードリクエストパケットに応答するアンサパケットを作成する作成手段と、
前記作成手段が作成したアンサパケットを所定の順番で送信する送信手段と
を備える
ことを特徴とする通信装置。
【請求項３】
前記アンサパケットを送信する順番を記憶する記憶手段をさらに備え、
前記送信手段は、前記アンサパケットを、前記記憶手段に記憶された順番で送信する
ことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記受信手段は、他の通信装置が送信したアンサパケットをさらに受信し、
前記送信手段は、自身のアンサパケットを送信すべき順番の１つ前に送信されるべき順番のアンサパケットが前記受信手段において受信された後、前記自身のアンサパケットを送信する
ことを特徴とする請求項２に記載の通信装置。
【請求項５】
前記ホストコントローラに対して前記複数の通信装置が直列に接続されており、
前記送信手段は、前記ホストコントローラに対して、自身の直後に接続されている他の通信装置がアンサパケットを送信した後、自身のアンサパケットを送信する
ことを特徴とする請求項２に記載の通信装置。
【請求項６】
前記ホストコントローラに対して前記複数の通信装置が直列に接続されており、
前記ホストコントローラから前記複数の通信装置への方向を下り方向とするとともに、前記複数の通信装置から前記ホストコントローラの方向を上り方向として、
前記受信手段は、前記下り方向のパケットを受信した後、前記上り方向のパケットを受信する状態に切り替わり、
前記送信手段は、前記下り方向にパケットを送信した後、前記上り方向にパケットを送信する状態に切り替わる
ことを特徴とする請求項２に記載の通信装置。
【請求項７】
前記ホストコントローラに対して前記複数の通信装置が直列に接続されており、
前記ホストコントローラから前記複数の通信装置への方向を下り方向とするとともに、前記複数の通信装置から前記ホストコントローラの方向を上り方向として、
前記受信手段は、前記上り方向と下り方向のパケットを受信し、
前記送信手段は、前記上り方向と下り方向にパケットを送信する
ことを特徴とする請求項２に記載の通信装置。
【請求項８】
前記ホストコントローラと前記複数の通信装置とが、１つの通信路を介して、直列に接続している
ことを特徴とする請求項２に記載の通信装置。
【請求項９】
ホストコントローラとの間で、パケットによる通信を行なう複数の通信装置のうちの１つの通信装置における通信方法であって、
前記ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットを受信する受信ステップと、
前記リードリクエストパケットに応答するアンサパケットを作成する作成ステップと、
前記作成ステップが作成したアンサパケットを所定の順番で送信する送信ステップと
を含む
ことを特徴とする通信方法。
【請求項１０】
ホストコントローラとの間で、パケットによる通信を行なう複数の通信装置のうちの１つの通信装置の通信処理をコンピュータに行なわせるプログラムであって、
前記ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットを受信させる受信ステップと、
前記リードリクエストパケットに応答するアンサパケットを作成させる作成ステップと、
前記作成ステップが作成したアンサパケットを所定の順番で送信させる送信ステップと
を含む
ことを特徴とするプログラム。
【請求項１１】
ホストコントローラとの間で、パケットによる通信を行なう複数の通信装置のうちの１つの通信装置の通信処理をコンピュータに行なわせるプログラムが記録されているプログラム記録媒体であって、
前記ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットを受信させる受信ステップと、
前記リードリクエストパケットに応答するアンサパケットを作成させる作成ステップと、
前記作成ステップが作成したアンサパケットを所定の順番で送信させる送信ステップと
を含む
ことを特徴とするプログラムが記録されているプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体に関し、特に、ブロードキャストにより、複数ノードから情報を短時間で取得することができるようにする通信システム、通信装置および通信方法、並びにプログラムおよびプログラム記録媒体に関する。
【背景技術】
【０００２】
例えば、ロボットにおいては、その内蔵するホストコントローラが、各部のアクチュエータに指令を送信することにより、アクチュエータが駆動する。これにより、ロボットは、各種の行動を起こす。このようなロボットにおいて、ホストコントローラは、アクチュエータに設けられた制御回路との間で、指令その他を送受信する通信を行なう。従って、ロボットにおいては、ホストコントローラと多数の制御回路とによって、通信システムが構成されている。いま、ホストコントローラと通信する通信相手である制御回路をノードと呼ぶこととすると、ホストコントローラとノードとの間では、例えば、図１に示すようにして通信が行なわれる。
【０００３】
図１は、従来のロボットの内部に構成されている通信システムにおいて、ホストコントローラが、すべてのノードＰ1乃至Ｐnから情報を取得する処理の流れを示している。ここで、ノードＰ1乃至Ｐnは、インテリジェントな機能を備えており、例えば、パケットの受信、パケットに格納されたデータの解析、パケットの作成、および作成したパケットの送信が可能である。さらに、ノードＰ1乃至Ｐnは、アクチュエータの状態の情報であるデータ＃０乃至＃ｎを保持しているものとする。
【０００４】
ホストコントローラが、すべてのノードＰ1乃至ＰnからノードＰi（ｉ＝１，２，・・・，ｎ）それぞれが保持しているアクチュエータの状態の情報としてのデータ＃１乃至＃ｎを取得する場合、例えば、次のような処理を行なう。まず最初に、ステップＳ１１において、ホストコントローラは、ノードＰ1へ、情報を要求するパケットであるリードリクエストパケットを送信する。ステップＳ１１の後、ステップＳ１２において、ノードＰ1は、ホストコントローラが送信したリードリクエストパケットを受信し、そのリードリクエストパケットに格納されている要求の内容を解析する。さらに、ノードＰ1は、ホストコントローラからの要求に応答するパケットである、ノードＰ1が保持しているデータ＃１を格納したアンサパケットを作成し、ステップＳ１２からステップＳ１３に進む。ステップＳ１３において、ノードＰ1は、ステップＳ１２で作成したアンサパケットを、ホストコントローラへ送信する。これにより、ホストコントローラは、ノードＰ1が保持していた情報、即ち、ここでは、データ＃１を取得する。
【０００５】
さらに、ホストコントローラは、ノードＰ2乃至ＰnにおいてもノードＰ1と同様な処理を行う。即ち、ステップＳ１３からステップＳ１４に進み、ホストコントローラは、ノードＰ2へリードリクエストパケットを送信する。ノードＰ2は、ステップＳ１５において、ホストコントローラが送信したリードリクエストパケットを受信し、そのリードリクエストパケットに格納されている要求の内容を解析して、自身が保持しているデータ＃２を格納したアンサパケットを作成する。ノードＰ2は、ステップＳ１６において、ステップＳ１５で作成したアンサパケットをホストコントローラへ送信する。これにより、ホストコントローラは、ノードＰ2が保持していたデータ＃２を取得する。以下同様に処理を行い、ホストコントローラは、ステップＳ１７で、最後のノードであるノードＰnへリードリクエストパケットを送信する。そして、ステップＳ１７からステップＳ１８に進み、ノードＰnは、ホストコントローラからのリードリクエストパケットを受信し、そのリードリクエストパケットに格納されている要求の内容を解析して、自身が保持しているデータ＃ｎを格納したアンサパケットを作成する。ノードＰnは、ステップＳ１９において、ステップＳ１８で作成したアンサパケットをホストコントローラへ送信する。これにより、ホストコントローラは、ノードＰnが保持していたデータ＃ｎを取得する。
【０００６】
このように、ホストコントローラは、情報を取得するノードをひとつずつ指定し、指定したノード宛にリードリクエストパケットを送信し、そのノードからアンサパケットを受信する処理を繰り返すことにより、すべてのノードから情報を取得する。（非特許文献１参照）
【０００７】
【非特許文献１】データ通信のすべて  小泉  修、日本実業出版社p.96付近
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の通信システムでは、ノードＰ1乃至Ｐnから情報を取得する場合、ホストコントローラは、ｎ個のノードＰ1乃至Ｐnに対して、ｎ個のリードリクエストパケットを送信する。そして、ノードＰ1乃至Ｐnは、ホストコントローラが送信したリードリクエストパケットをそれぞれ解析する。そのため、特に、多数のノードから情報を取得するまでに多くの時間がかかった。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、ホストコントローラが、複数のノードから情報を短時間で取得することを目的としている。
【課題を解決するための手段】
【００１０】
本発明の通信システムのホストコントローラは、ノードに対して情報を要求するパケットであるリードリクエストパケットをブロードキャストするブロードキャスト手段を備え、複数のノードそれぞれは、リードリクエストパケットを受信する受信手段と、リードリクエストパケットに応答するアンサパケットを作成する作成手段と、作成手段が作成したアンサパケットを所定の順番で送信する送信手段とを備えることを特徴とする。
【００１１】
本発明の通信装置は、ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットを受信する受信手段と、リードリクエストパケットに応答するアンサパケットを作成する作成手段と、作成手段が作成したアンサパケットを所定の順番で送信する送信手段とを備えることを特徴とする。
【００１２】
本発明の通信装置は、アンサパケットを送信する順番を記憶する記憶手段をさらに設け、送信手段には、アンサパケットを、記憶手段に記憶された順番で送信させるようにすることができる。
【００１３】
受信手段には、他の通信装置が送信したアンサパケットをさらに受信させ、送信手段には、自身のアンサパケットを送信すべき順番の１つ前に送信されるべき順番のアンサパケットが受信手段において受信された後、自身のアンサパケットを送信させるようにすることができる。
【００１４】
送信手段には、ホストコントローラに対して、自身の直後に接続されている他の通信装置がアンサパケットを送信した後、自身のアンサパケットを送信させるようにすることができる。
【００１５】
ホストコントローラから複数の通信装置への方向を下り方向とするとともに、複数の通信装置からホストコントローラの方向を上り方向として、受信手段には、下り方向のパケットを受信した後、上り方向のパケットを受信する状態に切り替えさせ、送信手段には、下り方向にパケットを送信した後、上り方向にパケットを送信する状態に切り替えさせることができる。
【００１６】
ホストコントローラから複数の通信装置への方向を下り方向とするとともに、複数の通信装置からホストコントローラの方向を上り方向として、受信手段には、上り方向と下り方向のパケットを受信させ、送信手段には、上り方向と下り方向にパケットを送信させることができる。
【００１７】
本発明の通信方法は、ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットを受信する受信ステップと、リードリクエストパケットに応答するアンサパケットを作成する作成ステップと、作成ステップが作成したアンサパケットを所定の順番で送信する送信ステップとを含むことを特徴とする。
【００１８】
本発明のプログラムは、ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットを受信させる受信ステップと、リードリクエストパケットに応答するアンサパケットを作成させる作成ステップと、作成ステップが作成したアンサパケットを所定の順番で送信させる送信ステップとをコンピュータに実行させる。
【００１９】
本発明の記録媒体のプログラムは、ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットを受信させる受信ステップと、リードリクエストパケットに応答するアンサパケットを作成させる作成ステップと、作成ステップが作成したアンサパケットを所定の順番で送信させる送信ステップとを含むことを特徴とする。
【００２０】
本発明の通信システム、通信装置、通信方法、プログラム、およびプログラム記録媒体に記録されているプログラムにおいては、ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットが受信され、リードリクエストパケットに応答するアンサパケットが作成され、作成されたアンサパケットが所定の順番で送信される。
【発明の効果】
【００２１】
本発明によれば、複数の通信装置から情報を短時間で取得することができる。
【発明を実施するための最良の形態】
【００２２】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の構成要件と、本発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、特許請求の範囲に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２３】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、特許請求の範囲にすべて記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の特許請求の範囲には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
【００２４】
請求項１に記載の通信システムは、
ホストコントローラと複数のノードとが、パケットによる通信を行なう通信システムであって、
前記ホストコントローラは、前記ノードに対して情報を要求するパケットであるリードリクエストパケットをブロードキャストするブロードキャスト手段（例えば、図１４のステップＳ６１の処理）を備え、
前記複数のノードそれぞれは、
前記リードリクエストパケットを受信する受信手段（例えば、図１５のステップＳ７１の処理）と、
前記リードリクエストパケットに応答するアンサパケットを作成する作成手段（例えば、図１５のステップＳ７２の処理）と、
前記作成手段が作成したアンサパケットを所定の順番で送信する送信手段（例えば、図１５のステップＳ７６の処理）と
を備える
ことを特徴とする。
【００２５】
請求項２に記載の通信装置は、
ホストコントローラとの間で、パケットによる通信を行なう複数の通信装置のうちの１つの通信装置であって、
前記ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットを受信する受信手段（例えば、図１５のステップＳ７１の処理）と、
前記リードリクエストパケットに応答するアンサパケットを作成する作成手段（例えば、図１５のステップＳ７２の処理）と、
前記作成手段が作成したアンサパケットを所定の順番で送信する送信手段（例えば、図１５のステップＳ７６の処理）と
を備える
ことを特徴とする。
【００２６】
請求項３に記載の通信装置は、
前記アンサパケットを送信する順番を記憶する記憶手段（例えば、図１２の記憶部２７４）をさらに備え、
前記送信手段は、前記アンサパケットを、前記記憶手段に記憶された順番で送信する
ことを特徴とする。
【００２７】
請求項9に記載の通信方法は、
ホストコントローラとの間で、パケットによる通信を行なう複数の通信装置のうちの１つの通信装置における通信方法であって、
前記ホストコントローラによってブロードキャストされる、情報を要求するパケットであるリードリクエストパケットを受信する受信ステップ（例えば、図１５のステップＳ７１の処理）と、
前記リードリクエストパケットに応答するアンサパケットを作成する作成ステップ（例えば、図１５のステップＳ７２の処理）と、
前記作成ステップが作成したアンサパケットを所定の順番で送信する送信ステップ（例えば、図１５のステップＳ７６の処理）と
を含む
ことを特徴とする。
【００２８】
請求項１０に記載のプログラムの各ステップおよび請求項１１に記載のプログラム記録媒体に記録されているプログラムの各ステップと、発明の実施の形態との対応関係は、請求項９に記載の通信装置と同様である。
【００２９】
図２は、本発明を適用したロボット５の利用例を示している。
【００３０】
ユーザからの指令や周囲の環境に応じて自主的に行動を決定する人間型のロボット５は、ＩＥＥＥ（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乃至Ａ14と接続されている。また、ノードＮ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それぞれは、ホストコントローラ２３１が送信したリードリクエストパケットを受信した場合、そのリードリクエストパケットに対する応答であるアンサパケットを作成し、所定の順番で、自分のアンサパケットを送信する。即ち、ノードＮiは、データＤi［０：ｋ］を保持しており、リードリクエストパケットによって、データＤi［０：ｋ］が要求された場合には、データＤi［０：ｋ］をアンサパケットに配置して送信する。なお、データＤi［０：ｋ］は、例えば、データ長がｋ＋１ビットのデータを表す。
【００８６】
メイン通信路２４１は、ホストコントローラ２３１とノードＮiとを接続する通信路である。なお、メイン通信路２４１を介してやりとりする信号は、例えば、電気による信号でも光による信号でもよい。さらに、メイン通信路２４１を介した通信としては、シリアル通信でも、パラレル通信でも可能である。
【００８７】
図１０は、ホストコントローラ２３１が、すべてのノードＮ1乃至ＮnからデータＤ1［０：ｋ］乃至Ｄn［０：ｋ］を取得するときの処理を説明するフローチャートを示している。
【００８８】
まず最初に、ホストコントローラ２３１は、ステップＳ４１において、情報の読み出しを要求するリードリクエストパケットを、ブロードキャストで送信して、ステップＳ４２に進む。ステップＳ４２において、ノードＮ1乃至Ｎnそれぞれは、ホストコントローラ２３１から送信されたリードリクエストパケットを受信し、そのリードリクエストパケットを解析する。さらに、すべてのノードＮ1乃至Ｎnは、リードリクエストパケットに格納されたデータに対する応答としてのアンサパケットを作成して、ステップＳ４３に進む。
【００８９】
ステップＳ４３において、ノードＮnは、ホストコントローラ２３１へデータＤn［０：ｋ］を格納したアンサパケットを送信する。ステップＳ４３からステップＳ４４に進み、ノードＮn-1は、ステップＳ４３でノードＮnが送信したアンサパケットを受信することにより、ホストコントローラ２３１に対して自分より１つ前のノードＮnがアンサパケットを送信したことを確認し、その後、ホストコントローラ２３１へデータＤn-1［０：ｋ］を格納した自分のアンサパケットを送信する。以下同様に、各ノードＮiがノード番号ｉの降順にアンサパケットを送信し、ステップＳ４５において、ノード番号が１のノードＮ1が、ホストコントローラ２３１へデータＤ1［０：ｋ］を格納したアンサパケットを送信する。これにより、ホストコントローラ２３１は、すべてのノードＮ1乃至ＮnからデータＤ1［０：ｋ］乃至Ｄn［０：ｋ］を取得する。
【００９０】
このように、ホストコントローラ２３１とノードＮ1乃至Ｎnとがバス型のメイン通信路２４１で接続されている通信システムにおいて、ホストコントローラ２３１がブロードキャストによりリードリクエストを送信する場合、すべてのノードＮ1乃至Ｎnは、そのリードリクエストパケットの受信と、アンサパケットの作成を、ほぼ同時に行なうことができる。そのため、図９の通信システムでは、ｎ個のノードＮ1乃至Ｎnがリードリクエストパケットを受信してからアンサパケットを作成するまでの時間は、前述した図１の場合と比較すると、理論的にはｎ分の１に短縮できる。また、図９の通信システムでは、各ノードＮiが所定の順番で、即ち、ノード番号の降順にアンサパケットを送信することにより、ノードＮ1乃至Ｎnが送信したアンサパケットがホストコントローラ２３１に集中するのを避けることができる。即ち、アンサパケット同士の衝突などによる、パケットの再送をなくすことができる。
【００９１】
図１１は、図９のホストコントローラ２３１の機能的構成例を示すブロック図である。ホストコントローラ２３１は、通信部２６２と制御部２６１とから構成されている。さらに、通信部２６２は、メイン通信路２４１と接続している。
【００９２】
通信部２６２は、メイン通信路２４１を介して、ノードＮiとの間でパケットの送信と受信を行なう。即ち、通信部２６２は、制御部２６１から供給されたパケットを、ノードＮiへ送信する。また、通信部２６２は、ノードiが送信したホストコントローラ２３１宛のパケットを受信し、制御部２６１へ供給する。
【００９３】
制御部２６１は、制御機構部２０５からノードＮiを制御する制御信号を受信し、ノードＮiに制御信号などを伝えるためのパケットを作成して、通信部２６２へ供給する。例えば、制御部２６１は、制御機構部２０５から、ノードＮiが所持しているアクチュエータＡiの情報を取得したい旨の制御信号が供給された場合、リードリクエストパケットを作成して、通信部２６２へ送信する。また、制御部２６１は、通信部２６２が受信したノードＮiが送信したパケットを取得し解析して、パケットに格納された、例えば、アクチュエータＡiの情報を制御機構部２０５へ供給する。
【００９４】
図１２は、図９のノードＮiの機能的構成例を示すブロック図である。ノードＮiは、通信部２７１、解析部２７２、作成部２７３、記憶部２７４から構成されている。
【００９５】
通信部２７１は、メイン通信路２４１に接続されている。通信部２７１は、ホストコントローラ２３１や他のノードＮjが送信したメイン通信２４１上のパケットを受信し、そのパケットの種類（Type部）とパケットの宛先（ADDR部）とを解析する。即ち、例えば、受信したパケットが、ホストコントローラ２３１が送信した自分宛て（ノードＮi宛て）のパケットである場合、通信部２７１は、そのパケットを解析部２７２へ供給する。また、通信部２７１は、受信したパケットが、他のノードＮjが送信したアンサパケットである場合、そのパケットの送信元を解析する。
【００９６】
また、通信部２７１は、作成部２７３が作成した、ブロードキャストによるリードリクエストパケットに対する応答としてのアンサパケットを、所定の順番でメイン通信路２４１を介してホストコントローラ２３１へ送信する。即ち、例えば、通信部２７１は、他のノードＮjが送信したアンサパケットの送信元と、記憶部２７４の記憶内容とを適宜比較し、自分がアンサパケットを送信する順番であるかどうかを判定する。そして、通信部２７１は、自分がアンサパケットを送信する順番であると判定したとき、自分のアンサパケットをホストコントローラ２３１へ送信する。
【００９７】
解析部２７２は、通信部２７１からパケットを受信し、そのパケットを解析する。さらに、解析部２７２は、パケットの解析結果に基づいて所定の処理を行なう。即ち、例えば、解析部２７１は、受信したパケットが、ホストコントローラ２３１が送信したリードリクエストパケットの場合、ノードＮiが制御するアクチュエータＡiの情報が要求されたことを認識する。この場合、解析部２７２は、アクチュエータＡiの情報を取得して、作成部２７３へ供給する。
【００９８】
作成部２７３は、ホストコントローラ２３１へ送信するアンサパケットを作成する。さらに、作成部２７３は、解析部２７２から供給された情報をアンサパケットに格納する。また、作成部２７３は、通信部２７１へ作成したパケットを供給する。即ち、例えば、解析部２７２からアクチュエータＡiの情報を受信した場合、作成部２７３は、アクチュエータＡiの情報を格納した、ホストコントローラ２３１宛のアンサパケットを作成する。さらに、作成部２７３は、作成したアンサパケットを通信部２７１へ供給する。
【００９９】
記憶部２７４は、例えば、半導体メモリなどで構成され、自分のノード番号であるｉを、アンサパケットの送信順として記憶している。通信部２７１は、他のノードＮjが送信したアンサパケットを受信して、アンサパケットの送信元であるノードＮjのノード番号ｊを認識するとともに、記憶部２７４が記憶している自分のノード番号ｉを読み取る。そして、通信部２７１は、受信したアンサパケットの送信元のノード番号ｊが自分のノード番号ｉの１つ後の番号であるとき、即ち、ｊ＝ｉ＋１のとき、自分のアンサパケットをホストコントローラ２３１へ送信する。
【０１００】
図１３は、ホストコントローラ２３１とノードとの間で送受信するパケットのフォーマットを示している。
【０１０１】
図１３の上図は、コンテンツ付のパケットのフォーマットを示している。例えば、ホストコントローラ２３１の制御部２６１は、ノードＮiにデータの書き込みを要求する場合、コンテンツ付のパケットのフォーマットを使用して、書き込ませるデータを配置したライトリクエストパケットを作成する。また、例えば、ノードＮiの作成部２７３は、ホストコントローラ２３１の要求に応じてデータを送信する場合、コンテンツ付のパケットのフォーマットを使用して、要求されたデータを配置したアンサパケットを作成する。
【０１０２】
図１３の中図は、パケットのCTRL部を示している。
【０１０３】
図１３の下図は、コンテンツ無しのパケットのフォーマットを示している。例えば、ホストコントローラ２３１の制御部２６１は、ノードＮiのデータを要求する場合、コンテンツ無しのパケットのフォーマットを使用して、リードリクエストパケットを作成する。また、例えば、ホストコントローラ２３１の制御部２６１は、ノードＮiにUSER'S BITの書き込み等を要求する場合、コンテンツ無しのパケットのフォーマットを使用して、ライトリクエストパケットを送信する。さらに、例えば、ノードＮiの作成部２７３は、ホストコントローラ２３１の要求に応じる送信すべきデータがない場合、コンテンツ無しのパケットフォーマットを使用して、アンサパケットを送信する。
【０１０４】
コンテンツ無しのパケットのフォーマットは、コンテンツ付のパケットのフォーマットからユーザデータＤ1乃至Ｄn、およびCRC部を省いたパケットのフォーマットであり、その他の各部の構成については同一である。従って、以下の各部の説明においては、コンテンツ付のパケットのフォーマットについて記述する。
【０１０５】
パケットは、その先頭から、８ビットの同期信号が配置されるSYNC（Synchronization word)部、パケットの種類やアドレスを格納するCTRL（Control）部、CTRL部のビット列をビット反転したビットが配置されるnCTRL部、ユーザデータ（ペイロード）を格納するコンテンツ部、およびデータのエラーを検出するコードが配置されるCRC部が順次配置されて構成される。
【０１０６】
CTRL部には、CTRLが格納される。CTRLは、例えば、８ビットで、パケットの種類を表す２ビットのType（タイプ）部、ユーザがアプリケーションで自由に使用する２ビットのUser's  Bit（ユーザビット）部、および、パケットの宛先もしくはパケットの送信元を表す４ビットのADDR（アドレス）部で構成されている。
【０１０７】
Type部には、パケットの種類を表すタイプが格納される。即ち、例えば、ホストコントローラ２３１の制御部２６１は、ノードＮiから情報を取得するリードリクエストパケットを作成する場合、Type部にリードリクエスト信号としての２ビットを格納する。一方、ノードＮiの作成部２７３は、リードリクエストに応答するアンサパケットを作成する場合、Type部にアンサ信号としての２ビットを格納する。また、ホストコントローラ２３１の制御部２６１は、ノードＮiに制御信号等の情報を書き込むライトリクエストパケットを作成する場合、Type部にライトリクエスト信号としての２ビットを格納する。
【０１０８】
ADDR（Address）部には、パケットの宛先もしくは送信元のアドレスが格納される。即ち、例えば、ホストコントローラ２３１の制御部２６１は、ノードＮiへパケットを送信する場合、宛先であるノードＮiを表す情報としての、例えば、ノード番号ｉをADDR部に格納する。また、制御部２６１は、すべてのノードＮ1乃至Ｎnへパケットを送信する場合、ブロードキャスト信号としての４ビットをADDR部に格納する。一方、ノードＮiの作成部２７３は、アンサパケットをホストコントローラ２３１へ送信する場合、送信元である自分を表す情報としての、例えば、ノード番号ｉをADDR部に格納する。
【０１０９】
従って、例えば、ノードＮiの通信部２７１は、受信したパケットのType部を解析することにより、受信したパケットがリードリクエストパケットであるか、またはアンサパケットであるかを認識することができる。さらに、例えば、ノードＮiの通信部２７１は、受信したパケットがリードリクエストパケットである場合、ADDR部に自分のノード番号ｉもしくは、ブロードキャスト信号が格納されているとき、自分宛てのパケットと認識してパケットを受信し、解析部２７２へ供給する。一方、ノードＮiの通信部２７１は、ADDR部に他のノード番号ｊが格納されているとき、パケットを無視（破棄）する。また、ノードＮiの通信部２７１は、受信したパケットがアンサパケットである場合、ADDR部を解析して、送信元のノード番号を認識する。
【０１１０】
nCTRL部には、CTRL部に配置したビット列をビット反転したビット列であるnCTRLが格納される。従って、nCTRLをビット反転したものと、CTRLとが一致していない場合、CTRLにエラーが生じている可能性がある。
【０１１１】
以上のSYNC部、CTRL部、およびnCTRL部がパケットのヘッダを構成している。パケットのヘッダの後には、送信するユーザデータが配置される。
【０１１２】
コンテンツ部には、ユーザデータＤ1乃至Ｄmが格納される。ユーザデータＤ1乃至Ｄnは、パケットの送信先へ送信するデータである。例えば、ノードＮiの作成部２７３は、ホストコントローラ２３１が送信したリードリクエストパケットを受信した場合、アクチュエータＡiの状態のデータＤi［０：ｍ］（ｍ≦ｋ＋１）をコンテンツ部に格納したアンサパケットを作成する。
【０１１３】
CRC（Cyclic Redundancy Check）部には、伝送によってパケットのユーザデータＤ1乃至Ｄnにエラーが発生していないかどうかを検出するコードである、CRCコードが格納される。例えば、ホストコントローラ２３１の制御部２６１は、送信するパケットのユーザデータＤ1乃至ＤnからCRCコードを算出して、CRC部に格納する。一方、パケットを受信したノードＮiの解析部２７２は、ホストコントローラ２３１の制御部２６１と同一の算出方法によりCRCコードを算出する。そして、ノードＮiの解析部２７２は、CRC部に格納されたCRCコードと算出したCRCコードとを比較して、ユーザデータＤ1乃至Ｄnにエラーが発生しているかどうかを検出する。ユーザデータＤ1乃至Ｄnにエラーが発生していると検出された場合、ノードＮiの解析部２７２は、例えば、通信部２７１およびメイン通信路２４１を介して、ホストコントローラ２３１へパケットの再送を要求する。CRC部に配置されるCRCコードは、ノードＮiからホストコントローラ２３１にパケットが送信される場合にも、同様に処理される。
【０１１４】
図１４のフローチャートを参照して、図９のホストコントローラ２３１が、すべてのノードＮ1乃至Ｎnから情報を取得するときの処理について説明する。
【０１１５】
まず最初に、ステップＳ６１において、ホストコントローラ２３１の制御部２６１は、制御機構部２０５からアクチュエータＡ1乃至Ａnのデータを取得する要求を受けた場合、リードリクエストパケットを作成し、通信部２６２へ供給する。さらに、ステップＳ６１では、ホストコントローラ２３１の通信部２６２は、制御部２６１が作成したリードリクエストパケットを、メイン通信路２４１へ送信し、ステップＳ６２に進む。即ち、制御部２６１は、コンテンツ無しのパケットのフォーマットを使用して、Type部にリードリクエスト信号を配置し、ADDR部にブロードキャスト信号を配置したパケットを作成し通信部２６２へ供給する。通信部２６２は、制御部２６１が供給したパケットを受取り、メイン通信路２４１を介して送信する。これにより、リードリクエストパケットがブロードキャストされる。
【０１１６】
ステップＳ６２では、ホストコントローラ２３１の制御部２６１は、すべてのノードＮ1乃至Ｎnからアンサパケットを受信したか否かを判定する。ステップＳ６２において、制御部２６１は、すべてのノードＮ1乃至Ｎnのアンサパケットを受信していないと判定した場合、ステップＳ６２に戻り、同様の処理を繰り返す。一方、ステップＳ６２において、制御部２６１は、すべてのノードＮ1乃至Ｎnからのアンサパケットを受信したと判定した場合、処理を終了する。これにより、ホストコントローラ２３１は、すべてのアクチュエータの状態を表すデータＤ1［０：ｍ］乃至Ｄn［０：ｍ］を取得する。
【０１１７】
図１５のフローチャートを参照して、ホストコントローラ２３１からブロードキャストによるリードリクエストパケットが送信されたときの、図９のノードＮiの処理について説明する。
【０１１８】
まず最初に、ステップＳ７１において、ノードＮiの通信部２７１は、ホストコントローラ２３１が送信したリードリクエストパケットを受信する。通信部２７１は、受信したパケットのTypeおよびADDRを解析し、ADDRがブロードキャスト信号であり、Typeがリードリクエスト信号である場合、ホストコントローラ２３１が送信したブロードキャストによるリードリクエストパケットであると認識する。通信部２７１は、リードリクエストパケットを受信した旨の情報を解析部２７２へ供給し、解析部２７２は、供給されたリードリクエストパケットを受信した旨の情報に基づいて、ノードＮiが制御するアクチュエータＡiの状態を表すデータＤi［０：ｍ］を作成部２７３へ供給する。そして、ステップＳ７１からステップＳ７２に進む。
【０１１９】
ステップＳ７２において、作成部２７３は、解析部２７２から供給されたデータＤi[０：ｍ]をコンテンツ部に配置したアンサパケットを作成し、作成したアンサパケットを通信部２７１へ供給する。即ち、作成部２７３は、コンテンツ付のパケットのフォーマットを使用し、Type部にアンサ信号を配置し、ADDR部に自分を表す信号であるノード番号ｉを配置するとともに、ユーザデータ部にデータＤi[０：ｍ]を格納したパケットを作成する。
【０１２０】
ステップＳ７２からＳ７３に進み、通信部２７１は、ノードＮi+1がアンサパケットを送信したか否かを判定する。即ち、通信部２７１は、メイン通信路２４１を介して送信される他のノードＮjが送信したパケットを受信し、受信したパケットのType部にアンサ信号が配置されていない、もしくは、ADDR部にノード番号ｉ＋１が配置されていないと判定した場合、ステップＳ７３に戻る。一方、通信部２７１は、受信したパケットのType部にアンサ信号が配置されており、且つ、ADDR部にノード番号ｉ＋１が配置されていると判定した場合、即ち、ノードＮi+1がアンサパケットを送信したと認識した場合、次に自分のアンサパケットを送信する順番であると認識して、ステップＳ７４に進む。
【０１２１】
ステップＳ７４において、通信部２７１は、ステップＳ７３でノードＮi+1のアンサパケットを受信したことを確認した後、自分のアンサパケットをホストコントローラ２３１へ送信し、処理を終了する。
【０１２２】
なお、ここでは、ノード番号が最大のノードＮnが、ブロードキャストによるリードリクエストパケットに対するアンサパケットを最初に送信すべきノードであるが、この、アンサパケットを最初に送信すべきノードであるノードＮnは、ステップＳ７３の処理をスキップする。即ち、ノードＮnは、ステップＳ７２でアンサパケットを作成した後、ステップＳ７４において、即座に、そのアンサパケットを送信する。
【０１２３】
図１６は、ホストコントローラ２３１と、ロボット５の各構成ユニット（胴体部ユニット１１、頭部ユニット１２、腕部ユニット１３、脚部ユニット１４）に配設されたノードＮ1乃至Ｎnとで構成される通信システムの第２の構成例を示している。
【０１２４】
図１６において、ホストコントローラ２３１は、メイン通信路２４２を介して、ノードＮ1と接続している。そして、ノードＮ1は、メイン通信路２４２を介して、ノードＮ2とも接続している。以下、同様にして、最終的には、ノードＮn-1は、メイン通信路２４２を介して、ノードＮnと接続している。即ち、ホストコントローラ２３１とノードＮ1乃至Ｎnは、メイン通信路２４２を介して直列に接続されたデイジーチェーンの構造の通信システムを構成している。
【０１２５】
さらに、図１６のデイジーチェーンの構造の通信システムにおいて、ホストコントローラ２３１からノードＮiの方向を下り方向と、ノードＮiからホストコントローラ２３１の方向を上り方向と、それぞれいうものとすると、メイン通信路２４２は、上り方向と下り方向の両方向の通信路を有している。
【０１２６】
ここで、図１６のホストコントローラ２３１は、図１１を参照して説明した通信部２６２と制御部２６１とで構成される。また、ホストコントローラ２３１とノードＮ1乃至Ｎnとで受け渡しをするパケットは、図１３を参照して説明したパケットフォーマットのパケットである。
【０１２７】
図１７は、図１６のノードＮiの機能的構成例を示すブロック図である。ノードＮiは、通信部２８１、解析部２７２、作成部２７３、および記憶部２７４から構成されている。
【０１２８】
ノードＮiの通信部２８１は、下流側にあるメイン通信路２４２と上流側にあるメイン通信路２４２とを中継するようにして、メイン通信路２４２に接続している。従って、通信部２８１は、メイン通信路２４２を介して送信される、ホストコントローラ２３１が送信した下り方向のパケットを、上流側のメイン通信路２４２から受信する。また、通信部２８１は、メイン通信路２４２を介して送信される、下流側の他のノードＮjが送信した上り方向のアンサパケットのすべてを、下流側のメイン通信路２４２から受信する。
【０１２９】
また、通信部２８１は、受信した全てのパケットを同一方向へ転送する。また、通信部２８１は、受信したパケットのADDR部を解析する。通信部２８１は、受信したパケットが自分宛であると認識した場合、即ち、ADDR部に自分のノード番号ｉが格納されている場合、もしくは、ブロードキャスト信号が格納されている場合、受信したリードリクエストパケットを解析部２７２へ供給する。また、通信部２８１は、受信したリードリクエストパケットが他のノード宛である場合、即ち、ADDR部に他のノード番号ｊが格納されている場合、受信したリードリクエストパケットを無視（破棄）する。
【０１３０】
図１７のノードＮiの解析部２７２、作成部２７３、および記憶部２７４は、図１２で示したバス型の通信システムにおけるノードＮiの各部と同様の機能を有するので、説明は省略する。
【０１３１】
図１８は、ホストコントローラ２３１と、ロボット５の各構成ユニット（胴体部ユニット１１、頭部ユニット１２、腕部ユニット１３、脚部ユニット１４）に配設されたノードＮ1乃至Ｎnとで構成される通信システムの第３の構成例を示している。
【０１３２】
図１８の通信システムにおいては、図１６における場合と同様に、ホストコントローラ２３１とノードＮ1乃至Ｎnとが、メイン通信路２４３を介して直列に接続され、これにより、デイジーチェーン構造の通信システムが構成されている。但し、メイン通信路２４３を介した通信は、上り方向と下り方向の両方向について同時に行うことができず、いずれか一方向のみに行なうことが可能となっている。このため、ノードＮiは、メイン通信路２４３の通信方向を切り替えながらパケットの送受信を行なう。
【０１３３】
即ち、ノードＮiは、例えば、上流側からの下り方向のパケットを受信し、下流側にパケットを送信する状態となっている。例えば、ホストコントローラ２３１がブロードキャストによりリードリクエストパケットを送信した場合、このリードリクエストパケットは、下流側に転送（送信）される。また、ノードＮiは、受信したリードリクエストパケットのADDR部を解析し、受信したリードリクエストパケットが下流側の他のノードＮj宛（ブロードキャストリードリクエストを含む）である場合、メイン通信路２４３の通信方向を切り替え、下流側からの上り方向のパケットを受信し、上流側にパケットを送信する状態となる。さらに、ノードＮiは、自分のアンサパケットを上流側へ送信した後、再び、メイン通信路２４３の通信方向を切り替え、上流側からの下り方向のパケットを受信する状態となる。
【０１３４】
図１９は、図１８のノードＮiの機能的構成例を示すブロック図である。ノードＮiは、通信部２９１、通信部２９１に設置された通信切り替え部２９２、解析部２７２、作成部２７３、および記憶部２７４から構成されている。
【０１３５】
ノードＮiの通信部２９１は、下流側にあるメイン通信路２４３と上流側にあるメイン通信路２４３とを中継するようにして、メイン通信路２４３と接続している。従って、通信部２９１は、メイン通信路２４３を介して送信されるホストコントローラ２３１が送信した下り方向のリードリクエストパケットと、下流側の他のノードＮjが送信した上り方向のアンサパケットとのすべてを受信する。
【０１３６】
通信方向切り替え部２９２は、通信部２９１からメイン通信路２４３の通信方向を切り替える情報を受取ったとき、メイン通信路２４３の通信方向を、上り方向もしくは下り方向に切り替える。
【０１３７】
通信部２９１は、例えば、ホストコントローラ２３１がブロードキャストで送信した下り方向のリードリクエストパケットを受信した場合、受信したリードリクエストパケットを下流側へ転送する。さらに、通信部２９１は、その受信したリードリクエストパケットが自分より下流側の他のノードＮj宛（ブロードキャストを含む）と認識した場合、通信方向切り替え部２９２によって、メイン通信路２４３の通信方向を下り方向から上り方向へ切り替えさせる。また、例えば、通信部２９１は、下流側の他のノードＮi+1のアンサパケットを受信し上流側へ転送した後、自分のアンサパケットを上流側へ送信する。さらに、自分のアンサパケットを上流側へ送信した後、通信方向切り替え部２９２によって、メイン通信路２４３の通信方向を上り方向から下り方向へ切り替えさせる。
【０１３８】
図１９のノードＮiの解析部２７２、作成部２７３、および記憶部２７４は、図１２で示したバス型の通信システムにおけるノードＮiの各部と同様の機能を有するのでその説明は省略する。
【０１３９】
このように、通信方向の切り替えが必要なメイン通信路２４３で接続されたデイジーチェーン構造の通信システムにおいても、ノードＮiは、通信方向を切り替えながら、下流側のノードから順番に（ノード番号の降順で）アンサパケットを送信することができる。よって、ホストコントローラ２３１は、短時間ですべてのノードＮ1乃至Ｎnから情報を取得することができる。
【０１４０】
なお、図９、図１６、および図１９に示した通信システムにおいて、ノードＮiの記憶部２７４には、自分のノード番号ｉに加えて、自分が何番目にアンサパケットを送信するかの情報を記憶させておくことができる。この場合、ノードＮiの通信部２７１、通信部２８１、並びに通信部２９１は、既に受信したアンサパケットの数をカウントすることにより、自身の送信する順番であることを認識することができる。ただし、図１６及び図１９の通信システムでは、ノードＮiは、自分より下流側にあるノードが送信したアンサパケットしか受信できないので、即ち、自分より上流側にあるノードが送信したアンサパケットは受信することができないので、アンサパケットを送信する順番は、最も下流側にあるノードＮnを1番目とし、ノード番号の降順とすることが望しい。
【０１４１】
また、図９および図１６の通信システムにおいて、ノードＮiの記憶部２７４には、他のノードＮjのノード番号ｊを記憶させることができる。この場合、ノードＮiの通信部２７１または通信部２８１は、受信したアンサパケットのノード番号が、記憶部２７４に記憶している他のノード番号ｊと一致したとき、次に自分のアンサパケットを送信する順番であることを認識することができる。
【０１４２】
さらに、図９、図１６、および図１９の通信システムにおいて、ノードＮiの記憶部２７４には、所定の時間を記憶させておくことができる。この場合、ノードＮiにおいて、あるトリガから所定の時間が経過したときに自身のアンサパケットを送信させることにより、すべてのノードＮ1乃至Ｎnが所定の順番にアンサパケットを送信することができる。即ち、例えば、ノードＮiの通信部２７１、通信部２８１、並びに通信部２９１は、ブロードキャストによるリードリクエストパケットを受信したことをトリガに、所定の時間が経過したときに、自分のアンサパケットを送信することができる。但し、この場合、所定の時間は、ノードＮ1乃至Ｎnそれぞれが、ブロードキャストによるリードリクエストパケットを受信するタイミングのタイムラグを考慮して設定する必要がある。
【０１４３】
また、アンサパケットを最初に送信するノードＮiは、記憶部２７４に、自身が最初に送信する旨を記憶しておくことができる。即ち、ノードＮiは、その記憶部２７４に、自分のアンサパケットを一番に送信することを記憶している場合、ブロードキャストによるリードリクエストパケットを受信すると、即座にアンサパケットを送信する。
【０１４４】
さらに、ホストコントローラ２３１には、アンサパケットを送信する所定の順番を格納したパケットを送信させることができる。この場合、ノードＮiは、ホストコントローラ２３１が送信した、アンサパケットを送信する所定の順番を格納したパケットを受信し、記憶部２７４に記憶している情報を更新することができる。
【０１４５】
図２０は、ホストコントローラ２３１と、ロボット５の各構成ユニット（胴体部ユニット１１、頭部ユニット１２、腕部ユニット１３、脚部ユニット１４）に配設されたノードＮ1乃至Ｎnとで構成される通信システムの第４の構成例を示している。
【０１４６】
図２０では、ホストコントローラ２３１とノードＮ1乃至Ｎnとは、メイン通信路２４１を介して接続しており、これにより、図９における場合と同様の通信システムを構成している。さらに、図２０では、ノードＮiと、ノードＮ1-1乃至Ｎ1-mとが、メイン通信路２４４を介して接続されている。
【０１４７】
即ち、ノードＮ1は、メイン通信路２４１または他のノードＮ2乃至Ｎnからパケットを受信すると、そのパケットを、メイン通信路２４４を介して、ノードＮ1-1乃至Ｎ1-mに転送し、さらに、ノードＮ1は、ノードＮ1-1乃至Ｎ1-mからメイン通信路２４４を介して、パケットを受信すると、そのパケットを、メイン通信路２４１を介して、ホストコントローラ２３１と他のノードＮ2乃至Ｎnに転送する。これにより、ホストコントローラ２３１がブロードキャストにより送信したリードリクエストパケットに対して、ノードＮ1乃至Ｎnおよび、ノードＮ1-1乃至Ｎ1-mは、上述した場合と同様にして、アンサパケットを、所定の順番で送信する。
【０１４８】
上述した一連の処理は、専用のハードウェアによっても、またソフトウェアによっても実行することができる。一連の処理をソフトウェアによって行なう場合には、そのソフトウェアを構成するプログラムが、通信システムを構成するハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１４９】
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disk-Read Only Memory），DVD（Digital Versatile Disk）を含む）、光磁気ディスク（ＭＤ(Mini-Disk)（商標）を含む）、もしくは半導体メモリなどよりなるパッケージメディアとして提供することができる。例えば、図７においては、プログラムは、外部メモリ１０６に記録して提供し、メモリ１１２にインストールすることができる。
【０１５０】
また、本明細書において、フローチャートに記述したステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１５１】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１５２】
また、本実施の形態では、本発明をロボットに適用した場合について説明したが、本発明は、ロボット以外の１対多の通信を行なうシステムに適用可能である。
【図面の簡単な説明】
【０１５３】
【図１】従来の通信システムにおける処理の流れを表す図である。
【図２】本発明を適用したロボットシステムの利用例を示す図である。
【図３】図２のロボット５の外観構成を示す斜視図である。
【図４】図２のロボット５の外観構成を示す、背後側の斜視図である。
【図５】図２のロボット５について説明するための略線図である。
【図６】図２のロボット５の内部構成を示すブロック図である。
【図７】図２のロボット５の制御に関する部分を主に説明するためのブロック図である。
【図８】図７のメイン制御部６１の構成を示すブロック図である。
【図９】本発明を適用した通信システムの第１実施の形態の構成例を示すブロック図である。
【図１０】本発明の通信システムにおける処理の流れを表す図である。
【図１１】図９のホストコントローラ２３１の構成例を示すブロック図である。
【図１２】図９のノードＮiの構成例を示すブロック図である。
【図１３】パケットのフォーマットを示す図である。
【図１４】ホストコントローラ２３１の処理を説明するフローチャートである。
【図１５】ノードＮiの処理を説明するフローチャートである。
【図１６】本発明を適用した通信システムの第２実施の形態の構成例を示すブロック図である。
【図１７】図１６のノードＮiの構成例を示すブロック図である。
【図１８】本発明を適用した通信システムの第３実施の形態の構成例を示すブロック図である。
【図１９】図１８のノードＮiの構成例を示すブロック図である。
【図２０】本発明を適用した通信システムの第４実施の形態の構成例を示すブロック図である。
【符号の説明】
【０１５４】
５  ロボット，  １１  胴体ユニット，  １２  頭部ユニット，  １３  腕部ユニット，  １４  脚部ユニット，  ５２  制御ユニット，  ６１  メイン制御部，  １０６  外部メモリ，  １１２  メモリ，  ２０５  制御機構部，  ２３１  ホストコントローラ，  ２４１  メイン通信路，  ２４２  メイン通信路，  ２４３  メイン通信路，  ２４４  メイン通信路，  ２６１  通信部，  ２６２  制御部，  ２７１  通信部，  ２７２  解析部，  ２７３  作成部，  ２７４  記憶部，  ２８１  通信部，  ２９１  通信部，  ２９２  通信方向切り替え部，  Ａ1乃至Ａn  アクチュエータ，  Ｎ1乃至Ｎn  ノード
【図１】
2005123744.tif 000003
【図２】
2005123744.tif 000004
【図３】
2005123744.tif 000005
【図４】
2005123744.tif 000006
【図５】
2005123744.tif 000007
【図６】
2005123744.tif 000008
【図７】
2005123744.tif 000009
【図８】
2005123744.tif 000010
【図９】
2005123744.tif 000011
【図１０】
2005123744.tif 000012
【図１１】
2005123744.tif 000013
【図１２】
2005123744.tif 000014
【図１３】
2005123744.tif 000015
【図１４】
2005123744.tif 000016
【図１５】
2005123744.tif 000017
【図１６】
2005123744.tif 000018
【図１７】
2005123744.tif 000019
【図１８】
2005123744.tif 000020
【図１９】
2005123744.tif 000021
【図２０】
2005123744.tif 000022