(57)【要約】  【構成】皮膚センサネットワーク１０は、相互接続型ネットワークを形成するホストコンピュータ１２と複数のノード１４とを含み、各ノード１４は触覚センサ１６を備える。ホストコンピュータ１２からの経路要求に応じて、各ノード１４はホスト側経路を確保し他のノード１４に経路要求を送信する。末端のノード１４は自分の経路情報をホスト側経路に送信する。各ノード１４は自分の経路情報に受信した経路情報を結合してホスト側経路に送信する。ホストコンピュータ１２は受信した経路情報に応じて各ノード１４に対して識別情報を送信する。これに応じて各ノード１４は時空間方向で圧縮した触覚情報をホスト側経路に送信する。触覚情報を受信した各ノード１４はホスト側経路にこれを転送し、ホストコンピュータ１２は触覚情報を取得する。  【効果】自己組織化可能であり、転送データ量を低減しホストでの情報処理の負荷を軽減できる。【選択図】図１
2006287520.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの触覚センサをそれぞれが備えかつ少なくとも１つの他のノードと互いに接続された複数のノードと、少なくとも１つのノードと接続されたホストコンピュータとを含む皮膚センサネットワークであって、
前記ホストコンピュータは、
接続された前記ノードに経路要求を送信する第１経路要求送信手段、
前記経路要求に応じて送信される経路情報を前記接続されたノードから受信して第１記憶手段に記憶する経路情報取得手段、
前記経路情報に基づいて前記複数のノードのそれぞれに対する触覚情報要求を前記接続されたノードに送信する触覚情報要求送信手段、および
前記触覚情報要求に応じて送信される触覚情報を前記接続されたノードから受信して前記第１記憶手段に記憶する触覚情報取得手段を含み、
前記複数のノードのそれぞれは、
前記触覚センサの出力データを検出して第２記憶手段に記憶するセンサ出力検出手段、
前記経路要求を受信したとき経路確保するか否かを判定する経路確保判定手段、
前記経路確保判定手段によって経路確保すると判定されたとき当該経路要求を受信したポートをホスト側経路として前記第２記憶手段に記憶する経路記憶手段、
前記経路確保判定手段によって経路確保すると判定されたとき承諾応答を前記ホスト側経路に送信する応答送信手段、
前記承諾応答を受信したとき当該承諾応答を受信したポートに経路確保確認を送信する確認送信手段、
前記経路確保確認を受信したとき前記ホスト側経路以外に前記経路要求を送信する第２経路要求送信手段、
前記第２経路要求送信手段によって送信した前記経路要求に対する承諾応答がないと判定されるとき、自分の経路情報を前記ホスト側経路に送信する第１経路情報送信手段、
前記経路情報を受信したことに応じて、自分の経路情報に受信した経路情報を結合することによって生成した経路情報を前記ホスト側経路に送信する第２経路情報送信手段、
前記触覚情報要求を受信したことに応じて、前記センサ出力検出手段によって検出された前記出力データを触覚情報として前記ホスト側経路に送信する第１触覚情報送信手段、および
前記触覚情報を受信したとき当該触覚情報を前記ホスト側経路に送信する第２触覚情報送信手段を含む、皮膚センサネットワーク。
【請求項２】
前記各ノードは、前記センサ出力検出手段によって検出された前記出力データを圧縮する圧縮手段をさらに含み、
前記第１触覚情報送信手段は、前記触覚情報要求を受信したことに応じて、前記圧縮手段によって圧縮されたデータを前記触覚情報として前記ホスト側経路に送信する、請求項１記載の皮膚センサネットワーク。
【請求項３】
前記各ノードは、
前記センサ出力検出手段で検出した前記触覚センサの前記出力データを当該触覚センサの隣接センサの所属するノード宛に送信する隣接センサ出力送信手段、および
前記隣接センサの所属するノードからの当該隣接センサの出力データを受信して前記第２記憶手段に記憶する隣接センサ出力取得手段をさらに含み、
前記圧縮手段は、前記触覚センサの前記出力データをマスクするか否かを、前記センサ出力検出手段によって検出されたまたは前記隣接センサ出力取得手段によって記憶された当該触覚センサの隣接センサの出力データに基づいて判定する第１マスク判定手段を含み、
前記第１触覚情報送信手段は、前記第１マスク判定手段によってマスクしないと判定された前記触覚センサの前記出力データを、前記触覚情報として送信する、請求項２記載の皮膚センサネットワーク。
【請求項４】
前記第１マスク判定手段は、前記隣接センサの出力値の平均を中心とするかつ前記出力値の差に第１係数を掛けた値を幅とする第１マスク領域を算出するマスク領域算出手段を含み、前記触覚センサの出力値が前記第１マスク領域内にあるとき、当該触覚センサの出力データをマスクすると判定し、前記第１マスク領域内にないときは当該出力データをマスクしないと判定する、請求項３記載の皮膚センサネットワーク。
【請求項５】
前記第１マスク判定手段は、前記隣接センサの出力値に対する前記触覚センサの出力値の変化量が第１閾値よりも小さいとき、当該触覚センサの出力データをマスクすると判定する第１ノイズマスク判定手段をさらに含む、請求項４記載の皮膚センサネットワーク。
【請求項６】
前記圧縮手段は、前記触覚センサの前記出力データをマスクするか否かを、前記センサ出力検出手段によって検出された当該触覚センサの出力データの履歴に基づいて判定する第２マスク判定手段を含み、
前記第１触覚情報送信手段は、前記第２マスク判定手段によってマスクしないと判定された前記触覚センサの前記出力データを、前記触覚情報として送信する、請求項２ないし５のいずれかに記載の皮膚センサネットワーク。
【請求項７】
前記第２マスク判定手段は、前記触覚センサの過去の出力値からの変化量が第２閾値よりも小さいとき、当該触覚センサの出力データをマスクすると判定する第２ノイズマスク判定手段をさらに含む、請求項６記載の皮膚センサネットワーク。
【請求項８】
前記各ノードは、前記触覚情報を受信したとき送信データの優先順位を判定する優先順位判定手段をさらに含み、
前記第２触覚情報送信手段は、前記優先順位判定手段によって受信した前記触覚情報の優先順位が高いと判定されたとき、当該受信した触覚情報を優先的に送信する、請求項１ないし７のいずれかに記載の皮膚センサネットワーク。
【請求項９】
少なくとも１つの触覚センサをそれぞれが備えかつ少なくとも１つの他のノードと互いに接続された複数のノードと、少なくとも１つのノードと接続されたホストコンピュータとを含む皮膚センサネットワークであって、
前記ホストコンピュータは、
接続された前記ノードに経路要求を送信する第１経路要求送信手段、および
前記経路要求に応じて送信される触覚情報を含んだ経路情報を前記接続されたノードから受信して第１記憶手段に記憶する情報取得手段を含み、
前記複数のノードのそれぞれは、
前記触覚センサの出力データを検出して第２記憶手段に記憶するセンサ出力検出手段、
前記センサ出力検出手段によって検出された前記出力データを圧縮する圧縮手段、
前記経路要求を受信したとき経路確保するか否かを判定する経路確保判定手段、
前記経路確保判定手段によって経路確保すると判定されるとき当該経路要求を受信したポートをホスト側経路として前記第２記憶手段に記憶する経路記憶手段、
前記経路確保判定手段によって経路確保すると判定されるとき承諾応答を前記ホスト側経路に送信する応答送信手段、
前記承諾応答を受信したとき当該承諾応答を受信したポートに経路確保確認を送信する確認送信手段、
前記経路確保確認を受信したとき前記ホスト側経路以外に前記経路要求を送信する第２経路要求送信手段、
前記第２経路要求送信手段によって送信した前記経路要求に対する承諾応答がないと判定されるとき、前記圧縮手段による圧縮に基づく触覚情報を含んだ自分の経路情報を前記ホスト側経路に送信する第１情報送信手段、および
前記経路情報を受信したことに応じて、前記圧縮手段による圧縮に基づく触覚情報を含んだ自分の経路情報に受信した前記経路情報を結合することによって生成した、触覚情報を含んだ経路情報を前記ホスト側経路に送信する第２情報送信手段を含む、皮膚センサネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、皮膚センサネットワークに関し、特にたとえば、触覚センサエレメントを備える複数のノードとホストコンピュータとを含む皮膚センサネットワークに関する。
【背景技術】
【０００２】
人間と共存しコミュニケーションするロボットが近年開発されてきており、ロボットの活動範囲も人間の近くになりつつある。人間と日常生活環境で共存するロボットにとって、皮膚感覚、特に触覚は重要な感覚の１つとなる。動物においては感受性の主となるものが触覚であるといわれており、ロボットも全身分布型の触覚を通して触りまたは触られることができれば、ロボットと人間とのインタラクションがより豊富なものになることが期待される。
【０００３】
これまでロボットの触覚に関しては、マニピュレータやロボットハンドの把持・操りのためのタスクに関する研究は多いが、ロボットと人間のインタラクションに必要となってくる全身触覚に関する研究は比較的少ない。高密度の分布型触覚デバイスで様々な形状のロボットの体表を覆い、大量のセンサ情報をホストコンピュータに送信して処理する場合には、物理的な配線問題や通信経路・通信速度などのセンサ−ホスト間通信に関する様々な問題があるためであると考えられる。なお、このように通信機能をもつ多数のセンサを配置して環境の観測や設備の管理等に役立てるためのシステムは、センサネットワークと呼ばれる。
【０００４】
たとえばロボットの全身触覚に関しては、ロボットの体表に実装できる触覚デバイス（非特許文献１）や、触覚情報を送る手法（非特許文献２）などが研究されている。具体的には、非特許文献１の技術は、多値接触センサを読み取ってホストコンピュータに情報を送るノードがバス接続されたシステムである。また、非特許文献２の技術では、ＭＥＭＳ（Micro Electro Mechanical System）による小型接触センサと無線ユニットとを一体化した小型チップをロボット表面に分布させることで階層化された無線ネットワークの形成を可能にしている。
【非特許文献１】陰山竜介（外４名）、“ロボット表面多値接触センサの開発と応用”、ロボティクスメカトロニクス講演会´９８講演論文集（1CI1-2）
【非特許文献２】Hiroyuki Shinoda（外３名）、“Two-Dimensional Signal Transmission Technology for Robotics”, Proceedings of the 2003 IEEE International Conference on Robotics & Automation Taipei, Taiwan, September 14-19,2003
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上述の従来技術では、すべての触覚センサ情報がホストコンピュータに送られているので、触覚センサが高密度に分布されて高サンプリングレートで読み取られると、センサ情報が膨大になる。したがって、転送がボトルネックとなり、ホストコンピュータでの処理も膨大となってしまう。
【０００６】
それゆえに、この発明の主たる目的は、ホストコンピュータでの情報処理の負荷を軽減できる、皮膚センサネットワークを提供することである。
【０００７】
この発明の他の目的は、転送のボトルネックを回避できる、皮膚センサネットワークを提供することである。
【課題を解決するための手段】
【０００８】
請求項１の発明は、少なくとも１つの触覚センサをそれぞれが備えかつ少なくとも１つの他のノードと互いに接続された複数のノードと、少なくとも１つのノードと接続されたホストコンピュータとを含む皮膚センサネットワークである。ホストコンピュータは、接続されたノードに経路要求を送信する第１経路要求送信手段、経路要求に応じて送信される経路情報を接続されたノードから受信して第１記憶手段に記憶する経路情報取得手段、経路情報に基づいて複数のノードのそれぞれに対する触覚情報要求を接続されたノードに送信する触覚情報要求送信手段、および触覚情報要求に応じて送信される触覚情報を接続されたノードから受信して第１記憶手段に記憶する触覚情報取得手段を含む。複数のノードのそれぞれは、触覚センサの出力データを検出して第２記憶手段に記憶するセンサ出力検出手段、経路要求を受信したとき経路確保するか否かを判定する経路確保判定手段、経路確保判定手段によって経路確保すると判定されたとき当該経路要求を受信したポートをホスト側経路として第２記憶手段に記憶する経路記憶手段、経路確保判定手段によって経路確保すると判定されたとき承諾応答をホスト側経路に送信する応答送信手段、承諾応答を受信したとき当該承諾応答を受信したポートに経路確保確認を送信する確認送信手段、経路確保確認を受信したときホスト側経路以外に経路要求を送信する第２経路要求送信手段、第２経路要求送信手段によって送信した経路要求に対する承諾応答がないと判定されるとき、自分の経路情報をホスト側経路に送信する第１経路情報送信手段、経路情報を受信したことに応じて、自分の経路情報に受信した経路情報を結合することによって生成した経路情報をホスト側経路に送信する第２経路情報送信手段、触覚情報要求を受信したことに応じて、センサ出力検出手段によって検出された出力データを触覚情報としてホスト側経路に送信する第１触覚情報送信手段、および触覚情報を受信したとき当該触覚情報をホスト側経路に送信する第２触覚情報送信手段を含む。
【０００９】
請求項１の発明では、皮膚センサネットワークはホストコンピュータと複数のノードを含み、これらは相互接続型のネットワークを形成する。各ノードは少なくとも１つの触覚センサを備え、実施例では複数の触覚センサを備えることによって分布型高密度皮膚センサを構築する。各ノードはセンサ出力検出手段を備えており、検出された出力データを記憶する。触覚情報の検出を行うとき、ホストコンピュータの第１経路要求送信手段は、接続されたノードに経路要求を送信する。ノードの経路確保判定手段は、経路要求を受信したとき経路確保するか否かを判定する。経路記憶手段は、経路確保判定手段によって経路確保すると判定されたとき当該経路要求を受信したポートをホスト側経路として第２記憶手段に記憶する。たとえば、ホストコンピュータは経路要求の送信のたびに異なるネットワーク管理番号を送信する。ノードは経路確保するとき当該管理番号を記憶しておくので、受信した経路要求の管理番号が記憶していた値とは異なるとき、ノードは当該管理番号の経路要求を初めて受信したことになり、したがって、その受信ポートをホスト側経路として確保する。ノードの応答送信手段は、経路確保判定手段によって経路確保すると判定されたとき承諾応答をホスト側経路に送信する。また、ノードの確認送信手段は、承諾応答を受信したとき当該承諾応答を受信したポートに経路確保確認を送信する。このようにノードは、受信した経路要求に応じて承諾応答を返信し、その応答に対する確認をさらに受信する。したがって、ノード間が送受信可能なリンクで接続されていることを確認することができるので、当該リンクをホスト側経路として確保してよいことを把握できる。そして、ノードの第２経路要求送信手段は、経路確保確認を受信したとき、確保したホスト側経路以外に経路要求を送信する。このようにして、ホストコンピュータに端を発する経路要求が、順次ノードに送信されて、やがて全てのノードに送信されることとなる。ネットワークの末端に位置するノードは、経路要求を送信しても承諾応答を受信することができないので、承諾応答なしに基づいて自分がネットワークの末端であることを判定できる。この末端のノードからホスト側経路のノードに向けて経路情報の送信が開始される。つまり、ノードの第１経路情報送信手段は、第２経路要求送信手段によって送信した経路要求に対する承諾応答がないと判定されるとき、自分の経路情報をホスト側経路に送信する。自分の経路情報は、たとえば、確保経路としてホスト側ポート番号、ホストまでに介在するノード数情報（ホップ番号）等を含む。そして、ノードの第２経路情報送信手段は、経路情報を受信したことに応じて、自分の経路情報に受信した経路情報を結合することによって生成した経路情報をホスト側経路に送信する。これにより、末端に位置しないノードは、経路情報の受信に応じて、自分の経路情報と全ての末端側ノードからの経路情報を、経路情報としてホスト側経路に送信する。送信される経路情報は、たとえば送信しようとするノードを根とするツリー構造を示す。やがては、ホストコンピュータに接続されたノードが、経路情報をホスト側経路にすなわちホストコンピュータに送信する。ホストコンピュータの経路情報取得手段は、経路要求に応じて送信される経路情報を接続されたノードから受信して第１記憶手段に記憶する。このようにして、ホストコンピュータからの明示的な指定無しに、各ノードが協調してホスト側の経路を確保していくことによってデータ送信経路を確保することができる。つまり、この皮膚センサネットワークは自己組織化可能であり、経路要求の度に経路を確保することができ、断線しても経路を再構築することができる。したがって、ホストコンピュータでの情報処理の負荷を軽減できるとともに、頑健な情報伝達経路を簡単に構築することができる。続いて、ホストコンピュータの触覚情報要求送信手段は、経路情報に基づいて複数のノードのそれぞれに対する触覚情報要求を接続されたノードに送信する。実施例では、触覚情報要求として各ノードの識別情報が送信される。ホストコンピュータは、経路情報に基づいてネットワーク全体の経路を把握することができるので、各ノード宛に触覚情報要求を送信することができる。ノードの第１触覚情報送信手段は、触覚情報要求を受信したことに応じて、触覚センサの出力データを触覚情報としてホスト側経路に送信する。ノードの第２触覚情報送信手段は、触覚情報を受信したとき当該触覚情報をホスト側経路に送信する。これによって、各ノードからの触覚情報は、確保された経路上をホストコンピュータまで送信される。そして、ホストコンピュータの触覚情報取得手段は、触覚情報要求に応じて送信される触覚情報を接続されたノードから受信して第１記憶手段に記憶する。このようにして、ホストコンピュータは確保された経路を通して各ノードからの触覚情報を取得することができる。
【００１０】
請求項２の発明は、請求項１の発明に従属し、各ノードは、センサ出力検出手段によって検出された出力データを圧縮する圧縮手段をさらに含み、第１触覚情報送信手段は、触覚情報要求を受信したことに応じて、圧縮手段によって圧縮されたデータを触覚情報としてホスト側経路に送信する。
【００１１】
請求項２の発明では、各ノードは圧縮手段を備えており、検出された出力データを圧縮する。たとえば、触覚情報の局所性を利用して空間でのデータ圧縮が行われ、また時間方向でのデータ圧縮やノイズ除去による圧縮が行われてよい。ノードの第１触覚情報送信手段は、触覚情報要求を受信したことに応じて、圧縮手段によって圧縮されたデータを触覚情報としてホスト側経路に送信する。したがって、各ノードでの圧縮によってデータ量を減少させた触覚情報を送信できるので、転送のボトルネックを回避できるし、ホストコンピュータでの情報処理の負荷を軽減できる。
【００１２】
請求項３の発明は、請求項２の発明に従属し、各ノードは、センサ出力検出手段で検出した触覚センサの出力データを当該触覚センサの隣接センサの所属するノード宛に送信する隣接センサ出力送信手段、および隣接センサの所属するノードからの当該隣接センサの出力データを受信して第２記憶手段に記憶する隣接センサ出力取得手段をさらに含む。圧縮手段は、触覚センサの出力データをマスクするか否かを、センサ出力検出手段によって検出されたまたは隣接センサ出力取得手段によって記憶された当該触覚センサの隣接センサの出力データに基づいて判定する第１マスク判定手段を含む。第１触覚情報送信手段は、第１マスク判定手段によってマスクしないと判定された触覚センサの出力データを、触覚情報として送信する。
【００１３】
請求項３の発明では、隣接センサ出力送信手段と隣接センサ出力取得手段によって、各隣接センサの所属するノード間で隣接センサの出力データが交換される。実施例では、各ノードは隣接センサの所属するノードに関する位置情報を記憶しており、この位置情報に基づいて隣接センサのデータを送受信する。したがって、所属ノードによる境界を挟んで存在する隣接センサの出力データを取得することができる。圧縮手段の第１マスク判定手段は、各触覚センサの出力データをマスクするか否かを、当該触覚センサの隣接センサの出力データに基づいて判定する。たとえば触覚センサの出力値が隣接センサの出力値に基づいて予測可能な場合には、当該データをマスクする、すなわち、ホストへ送信しないと判定する。第１触覚情報送信手段は、マスクしないと判定された触覚情報を送信する。したがって、触覚情報の局所性を利用して、空間方向でデータを圧縮することができ、転送データ量を低減することができる。
【００１４】
請求項４の発明は、請求項３の発明に従属し、第１マスク判定手段は、隣接センサの出力値の平均を中心とするかつ出力値の差に第１係数を掛けた値を幅とする第１マスク領域を算出するマスク領域算出手段を含み、触覚センサの出力値が第１マスク領域内にあるとき、当該触覚センサの出力データをマスクすると判定し、第１マスク領域内にないときは当該出力データをマスクしないと判定する。
【００１５】
請求項４の発明では、第１マスク判定手段はマスク領域算出手段を含み、隣接センサの出力値の平均と中心とし、出力値の差に第１係数を掛けた値を幅とする第１マスク領域を算出する。そして、触覚センサの出力値が第１マスク領域内にあるとき、当該出力データをマスクすると判定し、第１マスク領域外のときはマスクしないと判定する。平均値付近にあるデータは他のデータから予測可能な冗長性を含むので、そのような内挿可能な出力データをマスクすることができる。また、第１係数の設定値を調整することによって、圧縮率や転送されない情報量を簡単に調整することができる。各ノードまたは各触覚センサで適宜に第１係数を設定することによって、たとえば、敏感な部分と鈍感な部分を皮膚センサに設けることができる。
【００１６】
請求項５の発明は、請求項４の発明に従属し、第１マスク判定手段は、隣接センサの出力値に対する触覚センサの出力値の変化量が第１閾値よりも小さいとき、当該触覚センサの出力データをマスクすると判定する第１ノイズマスク判定手段をさらに含む。
【００１７】
請求項５の発明では、第１ノイズマスク判定手段は、空間で隣接するセンサに対する変化量が第１閾値よりも小さいとき、出力データをマスクすると判定する。したがって、変化量がノイズレベルの触覚情報をマスクすることができ、ノイズによる無駄な情報転送を低減できる。また、第１閾値の設定値を調整することによって、上述の第１係数の場合と同様に、圧縮率やマスクする情報量を調整することが可能である。
【００１８】
請求項６の発明は、請求項２ないし５の発明のいずれかに従属し、圧縮手段は、触覚センサの出力データをマスクするか否かを、センサ出力検出手段によって検出された当該触覚センサの出力データの履歴に基づいて判定する第２マスク判定手段を含む。第１触覚情報送信手段は、第２マスク判定手段によってマスクしないと判定された触覚センサの出力データを、触覚情報として送信する。
【００１９】
請求項６の発明では、圧縮手段の第２マスク判定手段は、触覚センサの出力データをマスクするか否かを、当該触覚センサの出力データの履歴に基づいて判定する。たとえば触覚センサの出力値が当該センサの過去の出力値に基づいて外挿により予測可能な場合には、当該データをマスクする、すなわち、ホストへ送信しないと判定する。第１触覚情報送信手段は、マスクしないと判定された触覚情報を送信する。したがって、時間方向でデータを圧縮することができ、転送データ量を低減することができる。
【００２０】
請求項７の発明は、請求項６の発明に従属し、第２マスク判定手段は、触覚センサの過去の出力値からの変化量が第２閾値よりも小さいとき、当該触覚センサの出力データをマスクすると判定する第２ノイズマスク判定手段をさらに含む。
【００２１】
請求項７の発明では、第２ノイズマスク判定手段は、過去の履歴からの変化量が第２閾値よりも小さいとき、出力データをマスクすると判定する。したがって、過去からの変化がノイズレベルの触覚情報をマスクすることができ、無駄な情報転送を低減できる。また、上述の第１閾値の場合と同様に、第２閾値の設定値の調整によって、転送情報量を調整することができる。
【００２２】
請求項８の発明は、請求項１ないし７の発明のいずれかに従属し、各ノードは、触覚情報を受信したとき送信データの優先順位を判定する優先順位判定手段をさらに含む。第２触覚情報送信手段は、優先順位判定手段によって受信した触覚情報の優先順位が高いと判定されたとき、当該受信した触覚情報を優先的に送信する。
【００２３】
請求項８の発明では、各ノードは、触覚情報を受信したとき、優先度の高いものを優先的にホスト側経路に送信することができる。したがって、ホストコンピュータは優先度の高い触覚情報を先に取得できるので、たとえば緊急度の高い触覚情報に素早く対応することが可能になる。
【００２４】
請求項９の発明は、少なくとも１つの触覚センサをそれぞれが備えかつ少なくとも１つの他のノードと互いに接続された複数のノードと、少なくとも１つのノードと接続されたホストコンピュータとを含む皮膚センサネットワークである。ホストコンピュータは、接続されたノードに経路要求を送信する第１経路要求送信手段、および経路要求に応じて送信される触覚情報を含んだ経路情報を接続されたノードから受信して第１記憶手段に記憶する情報取得手段を含む。複数のノードのそれぞれは、触覚センサの出力データを検出して第２記憶手段に記憶するセンサ出力検出手段、センサ出力検出手段によって検出された出力データを圧縮する圧縮手段、経路要求を受信したとき経路確保するか否かを判定する経路確保判定手段、経路確保判定手段によって経路確保すると判定されるとき当該経路要求を受信したポートをホスト側経路として第２記憶手段に記憶する経路記憶手段、経路確保判定手段によって経路確保すると判定されるとき承諾応答をホスト側経路に送信する応答送信手段、承諾応答を受信したとき当該承諾応答を受信したポートに経路確保確認を送信する確認送信手段、経路確保確認を受信したときホスト側経路以外に経路要求を送信する第２経路要求送信手段、第２経路要求送信手段によって送信した経路要求に対する承諾応答がないと判定されるとき、圧縮手段による圧縮に基づく触覚情報を含んだ自分の経路情報をホスト側経路に送信する第１情報送信手段、および経路情報を受信したことに応じて、圧縮手段による圧縮に基づく触覚情報を含んだ自分の経路情報に受信した経路情報を結合することによって生成した、触覚情報を含んだ経路情報をホスト側経路に送信する第２情報送信手段を含む。
【００２５】
請求項９の発明では、上述の請求項２の発明とは、経路情報を送信する際に触覚情報を含めて送信する点が異なっている。具体的には、ノードの第１情報送信手段は、自分がネットワークの末端であることを判定したとき、圧縮手段による圧縮に基づく触覚情報を含んだ自分の経路情報をホスト側経路に送信する。ノードの第２情報送信手段は、経路情報を受信したことに応じて、圧縮手段による圧縮に基づく触覚情報を含んだ自分の経路情報に受信した経路情報を結合することによって生成した、触覚情報を含んだ経路情報をホスト側経路に送信する。これにより、末端に位置しないノードは、経路情報の受信に応じて、自分の経路情報（触覚情報を含む）と全ての末端側ノードからの経路情報（触覚情報を含む）を、触覚情報を含んだ経路情報としてホスト側経路に送信する。この送信データは、たとえば送信しようとするノードを根とするツリー構造を示す。したがって、ホストコンピュータの情報取得手段は、経路要求に応じて送信される触覚情報を含んだ経路情報を接続されたノードから受信して第１記憶手段に記憶する。したがって、上述の発明と同様に、自己組織化可能なセンサネットワークを形成でき、頑健な情報伝達経路を簡単に構築できる。さらに、各ノードでの圧縮によってデータ量を減少させた触覚情報を送信できるので、転送のボトルネックを回避できるし、ホストコンピュータでの情報処理の負荷を軽減できる。
【発明の効果】
【００２６】
この発明によれば、触覚センサをそれぞれが備える複数のノードとホストコンピュータとでセンサネットワークを構成し、各ノードが相互に接続された経路により通信を行うようにした。ノード間の相互接続による通信によって、自己組織化可能なセンサネットワークを形成することができる。したがって、ホストからの明示的な経路指示の必要がないのでホストコンピュータでの処理負担を軽減できるとともに、頑丈な情報伝達経路を簡単に構築することができる。
【００２７】
また、たとえば、隣接する触覚センサの出力をノード間で相互に通信することによって、各ノードにおいて触覚情報の局所性を利用した空間方向圧縮を行うことができるし、また、各ノードにおいて触覚情報の時間方向圧縮を行うことができる。このような各ノードでのデータ圧縮によって、転送する触覚情報のデータ量を減少させることができる。したがって、転送のボトルネックを回避することができ、ホストコンピュータでの情報処理の負荷を軽減することができる。
【００２８】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２９】
図１を参照して、この実施例の皮膚センサネットワーク１０は、ホストコンピュータ１２と複数のノード１４を含む。ホストコンピュータ１２および複数のノード１４は相互接続型のネットワークを形成している。各ノード１４は他の少なくとも１つのノード１４と相互に接続されている。この実施例では各ノード１４は４つの通信ポートを備えており、最大で４つのノードと接続され得る。各ノード１４はこの相互に接続された経路を介して通信を行う。ホストコンピュータ１２は、ネットワークを形成する複数のノード１４のうちの少なくとも１つのノード１４と接続されている。
【００３０】
この皮膚センサネットワーク１０は、たとえば人の腕や手（図１で破線で示される）等の物に触れられたときの触覚情報を検出するためのシステムである。
【００３１】
各ノード１４にはこの実施例では複数の触覚センサ１６が接続されている。各ノード１４は、接続されている複数の触覚センサ１６のそれぞれの出力を検出し、センサ出力データとして取得する。なお、ノード１４は少なくとも１つの触覚センサ１６を備えていればよい。
【００３２】
ホストコンピュータ１２は、ＰＣのようなコンピュータであり、図示しないＣＰＵ、ＲＯＭ、ＨＤＤおよびＲＡＭ等を備える。ＲＯＭまたはＨＤＤにはホストコンピュータ１２の動作を制御するためのプログラムおよびデータが予め記憶される。ＲＡＭはＣＰＵのワーキングメモリやバッファメモリとして使用される。ＣＰＵはプログラムに従ってデータをＲＡＭに生成しまたは取得しつつ処理を実行する。ホストコンピュータ１２は、この実施例では、そのシリアルポートに接続されたケーブルを介してノード１４に接続されており、当該接続されたノード１４との間でデータを送受信する。
【００３３】
なお、この皮膚センサネットワーク１０が日常生活環境で人間と共存しコミュニケートするコミュニケーションロボットに設けられる場合には、ホストコンピュータ１２のプロセサ（ＣＰＵ）は当該コミュニケーションロボットの全体的な制御を行うプロセサであってよい。
【００３４】
図２にはノード１４の電気的構成の一例が示される。ノード１４は基板１８（破線表示）を含み、基板１８にはこのノード１４の制御を行うＣＰＵ２０が設けられる。一例として、基板１８の大きさは７０×６０ｍｍ程度であり、ＣＰＵ２０にはたとえばルネサス製Ｈ８Ｓ２６３３が使用され得る。このプロセサはＣＩＳＣ構成の命令を６９種類実行可能であり、センサデータの処理をノード上で行える。ＣＰＵ２０はメモリ２２と接続され、メモリ２２はセンサデータバッファ２４および転送データバッファ２８と接続される。メモリ２２はＲＯＭおよびＲＡＭ等を含み、ＲＯＭにはノード１４の動作を制御するためのプログラムおよびデータが予め記憶されている。ＣＰＵ２０はメモリ２２のＲＯＭのプログラムに従ってデータをＲＡＭに生成しまたは取得しつつ処理を実行する。たとえば、メモリ２２は、内蔵ＲＯＭ２５６ｋＢｙｔｅ、ＲＡＭ１６ｋＢｙｔｅを含み、クロック１２．２８８ＭＨｚをもとに動作する。
【００３５】
センサデータバッファ２４にはＡ／Ｄ変換器２６が接続される。Ａ／Ｄ変換器２６としては、たとえば１５チャネル１０ビットのものが使用され得る。つまり、この実施例では、１つのＡ／Ｄ変換器２６には最大１５個の触覚センサ１６が接続され得る。Ａ／Ｄ変換器２６は、触覚センサ１６から出力された信号をディジタルデータに変換する。Ａ／Ｄ変換器２６は、センサ出力データを、この実施例では０を基準点として−５１２から５１２までの値で出力する。そのセンサ出力データはセンサデータバッファ２４に与えられ、センサ１６ごとに設けられた領域に格納される。ＣＰＵ２０はセンサデータバッファ２４からセンサ出力データを取得して、センサ出力データを、当該データを出力した触覚センサ１６の識別情報に関連付けてメモリ２２に格納する。センサ出力データはたとえばＣＰＵ２０の内部タイマに基づく検出時刻を付与されて記憶されてよい。センサ出力のサンプリングレートはたとえば１００Ｈｚなど適宜に設定される。
【００３６】
転送データバッファ２８には複数のシリアル通信のためのポート３０が接続される。この実施例では４つのポートが設けられる。各ポート３０で独立全二重通信が可能であり、通信速度はたとえば３８４００ｂｐｓとした。各ノード１４はポート３０およびケーブルを介して他のノード１４（もしくはホストコンピュータ１２）と接続される。ＣＰＵ２０は、送信すべきデータをメモリ２２から転送データバッファ２８の所定の領域に与えて、対応するポート３０から当該データを送信する。また、他のノード１４（もしくはホストコンピュータ１２）から送信されたデータは、ポート３０を介して転送データバッファ２８の所定の領域に格納される。ＣＰＵ２０は転送データバッファ２８から受信データを取得して、受信データを、たとえば当該データを受信したポート３０の識別情報に関連付けてメモリ２２に格納する。
【００３７】
触覚センサ１６としては、たとえばピエゾフィルム（圧電センサ）が用いられる。ピエゾフィルムはたとえば米国ＭＳＩ社製、株式会社東京センサ販売のものを使用してよい（http://www.t-sensor.co.jp/PIEZO/TOP/index.html）。このピエゾフィルムは、圧電フィルム（たとえばＰＶＤＦ（ポリビニリデンフルオロイド））の両面に金属薄膜が形成された構造、つまり、圧電体が導体で挟まれた構造を有する圧電センサである。ピエゾフィルムは、圧力等で変形されると、そのひずみ速度に応じた電圧を発生する。
【００３８】
この触覚センサ１６すなわちピエゾフィルムが、図３に示すように、柔軟な素材からなる皮膚３２に埋め込まれることによって、触覚センサデバイスが構成される。この実施例では、皮膚３２は、下層のウレタンスポンジ３４と、その上に積層されるシリコンゴムシート３６とを含む。これらウレタンスポンジ層３４とシリコンゴムシート層３６との間にピエゾフィルム１６が設けられる。一例として、ウレタンスポンジ層３４の厚みは１ｍｍ程度であり、シリコンゴムシート層３６の厚みも１ｍｍ程度である。また、ピエゾフィルム１６は、たとえば、３０×３０ｍｍ程度の大きさにカットされ、約５ｍｍの間隔で皮膚３２中に配置される。
【００３９】
なお、皮膚３２の構成は上述のものに限定されるものではなく適宜変更され得る。たとえば本件出願人による特開２００４−２８３９７５号に開示したように、シリコンゴムシート層を２層で形成し、ピエゾフィルムをシリコンゴムシートの比較的薄い上層と比較的厚い下層との間に配置するようにしてもよい。
【００４０】
この皮膚センサネットワーク１０のような相互接続型のネットワークでは、ホストコンピュータ１２までの経路を確保する必要がある。ホストコンピュータ１２が各ノード１４に経路をマクロキャリブレーションによって明示的に示す場合には、ホストコンピュータ１２に負担がかかる。そのため、この実施例では、各ノード１４が協調して経路確保を行う。このようにホストコンピュータ１２からの明示的な指定なしに各ノード１４がデータ送信経路を確保できるとき、そのセンサネットワークは自己組織化可能であると表現する。この皮膚センサネットワーク１０は、相互接続型の自己組織化可能なセンサネットワークに基づく分布型高密度皮膚センサを構成する。
【００４１】
自己組織化可能なセンサネットワークは、ホストコンピュータからは１つのデバイスのように使うことができ、ホストコンピュータはネットワークを意識しなくてもよい。発明者等は、アドホックネットワークのＤＳＲ(Dynamic Source Routing Protocol)と類似した手法を用いて、この自己組織化ネットワークのためのプロトコルを作成した。この作成したプロトコルによってホストコンピュータ１２まで転送する経路を明示的指示なしに確保できることを、発明者等はシミュレータで確認している。
【００４２】
概略を言えば、図４（Ａ）に示すように、まず、ホストコンピュータ１２が経路確保の命令（経路要求コマンドＲＲＥＱ）をブロードキャスト送信する。各ノード１４は、経路確保命令を受信すると、他のポート３０にそのコマンドのコピーを送信する。したがって、ホストコンピュータ１２からの経路確保命令は全てのノード１４に送信されることとなる。
【００４３】
各ノード１４は、ブロードキャストの信号（経路要求コマンド）が流れてきた方向に経路確保を行う。たとえば、各ノード１４のＣＰＵ２０は、最初に経路確保命令を受信したポート３０をホスト側経路として確保し、つまり、そのポート３０の識別情報（ポート番号）を、ホスト側の経路を示す経路確保データとしてメモリ２２に記憶する。ノード１４のＣＰＵ２０は、ホストコンピュータ１２宛にデータを転送する際には、メモリ２２に記憶した経路確保データを参照して、ホスト側のポート３０に向けてデータを送信する。このようにして、たとえば図４（Ｂ）に示すように、皮膚センサネットワーク１０では、ホストコンピュータ１２からの明示的な経路の指定なしに、通信の経路を確保することができる。このように、皮膚センサネットワーク１０は、相互接続型の自己組織化センサネットワークを構築する。
【００４４】
また、ネットワーク中でたとえば断線があった場合でも、上述のようにホストコンピュータ１２から経路確保の命令を送信することによって各ノード１４が経路確保を行うので、図４（Ｃ）に示すように、通信経路を簡単に再構築することができる。
【００４５】
この手法により、ホストコンピュータ１２はネットワークの構造を意識することなく、キャリブレーションの信号（経路確保要求）を送ってデータを受信するという２つのステップでセンサネットワークを使うことができる。
【００４６】
具体的には、各ノード１４は、上述のように、独立に通信できる複数の通信ポート３０を有し、受信データについて識別可能である。経路確保とデータ転送のために、次の（１）から（８）に示すようなコマンドを設ける。各ノード１４は、コマンド受信時には当該コマンドを解釈し、決められたルールに従って動作する。
【００４７】
（１）経路要求コマンドＲＲＥＱは、経路確保を要求するためのコマンドである。経路要求コマンドは初めにホストコンピュータ１２から送信される。また、各ノード１４は、ホスト側のノード１４と双方向通信が確認されたことに応じて、この経路要求コマンドをホスト側以外のポート３０に向けて送信する。経路要求コマンドは、引数として世代番号Ｇｎおよびホップ番号Ｈｎを含む。世代番号Ｇｎおよびホップ番号Ｈｎはメモリに記憶されている。
【００４８】
なお、世代番号Ｇｎはネットワーク世代番号であり、ルーティングのためのネットワーク管理番号であり、初期値は０である。ホストコンピュータ１２から経路確保要求するたびにその値が変更される。各コマンドは引数としてこの世代番号Ｇｎを必ず含んで送信され、各ノード１４ではこの世代番号Ｇｎが常にチェックされる。経路要求コマンドの場合には、この世代番号Ｇｎが異なるとき経路が再確保されることとなり、他のコマンドの場合にはこの世代番号Ｇｎはネットワークの識別に用いられる。
【００４９】
また、ホップ番号Ｈｎは、ホストコンピュータ１２からのホップ数を示し、初期値は０である。ホップ番号Ｈｎは、今の経路がこの番号分のノード１４を介してホストに経路を確保していることを示す。ホストコンピュータ１２のポートと直接接続されているノード１４のホップ番号Ｈｎは１になる。ホップ番号Ｈｎはたとえば経路データの結合時に使用される。
【００５０】
この経路要求コマンドを受信したとき、ノード１４は世代番号Ｇｎを確認する。その世代番号Ｇｎの含まれるコマンドをまだ受信していない場合には、ノード１４は当該経路要求コマンド受け取ったポート３０に向けて経路応答コマンドＲＲＥＰ＿ｌｏｃａｌ（承諾）を送信する。これによって、経路要求を承諾し、経路応答確認コマンドを待つ。一方、その世代番号Ｇｎの含まれるコマンドを既に受信している場合には、ノード１４は当該経路要求コマンドを受け取ったポート３０に向けて経路応答コマンドＲＲＥＰ＿ｌｏｃａｌ（拒否）を送信して、経路要求を拒否する。
【００５１】
（２）経路応答コマンドＲＲＥＰ＿ｌｏｃａｌは、ルート要求に対する承諾または拒否の応答をするためのコマンドである。経路応答コマンドは引数として世代番号Ｇｎおよびホップ番号Ｈｎを含む。経路応答コマンド（承諾）を受信したとき、ノード１４（またはホストコンピュータ１２）は、経路確保確認コマンドを受信ポート３０に向けて送信する。そして、ネットワーク経路応答コマンドを待つ。一方、経路応答コマンド（拒否）を受信したとき、ノード１４は当該ポート３０に向けた経路要求に対する拒否を記憶する。
【００５２】
（３）経路応答確認コマンドＣＯＮＦＩＲＭ＿ＲＲＥＰは、ルート確立の確認をするためのコマンドである。経路応答確認コマンドは引数として世代番号Ｇｎおよびホップ番号Ｈｎを含む。経路応答確認コマンドを受信したとき、ノード１４は経路要求コマンドを受信したポート３０以外の全てのポート３０に向けて経路要求コマンドを送信する。そして、経路応答コマンドを待つ。
【００５３】
なお、経路応答コマンド待ち処理で、タイムアウトになったとき、または全てのポート３０から経路応答コマンド（拒否）を受信したときには、当該ノード１４がネットワークの末端になる。したがって、当該末端のノード１４は、自分の経路データを生成して、ホスト側のポート３０に向けてネットワーク経路応答コマンドを送信する。
【００５４】
（４）ネットワーク経路応答コマンドＲＲＥＰ＿ｅｎｔｉｒｅは、ルート情報をホストに知らせるためのコマンドである。ネットワーク経路応答コマンドは引数としてデータ長Ｄｌｅｎ、世代番号ＧｎおよびデータＤａｔａを含む。ネットワーク経路応答コマンドを受信したとき、ノード１４は自分の経路情報を付加した経路データを生成する。末端側（葉側）の全てのポート３０からネットワーク経路応答コマンドを受信した場合には、ノードは生成した経路データを含むネットワーク経路応答コマンドをホスト側のポート３０へ向けて送信する。
【００５５】
（５）ホスト中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｈｏｓｔは、センサデータをホストコンピュータ１２に送るためのコマンドである。ホスト中継コマンドは引数としてデータ長Ｄｌｅｎ、世代番号ＧｎおよびデータＤａｔａを含む。ホスト中継コマンドを受信したとき、ノード１４は、確保した経路（ホスト側経路）のポート３０に向けて、当該受信したデータのコピーを送信する。
【００５６】
なお、この実施例のように、ホスト中継コマンドを受信したときには、データの優先順位を判定し、優先順位の高いデータを先に送信するようにしてもよい。この場合には、たとえば緊急に送信したいデータを先にホストコンピュータ１２に送信することができる。
【００５７】
（６）ノード中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｎｏｄｅは、任意のノードにコマンドまたはデータを送信するためのコマンドである。ノード中継コマンドは引数としてデータ長Ｄｌｅｎ、世代番号Ｇｎ、指定ポート番号ＰｎおよびデータＤａｔａを含む。このノード中継コマンドを受信したときには、受信したデータがコマンドであれば、ノード１４は、指定された番号のポートに向けて当該コマンドを送信する。一方、受信したデータがコマンドでなければ、当該データを指定番号のポート３０に向けてノード中継コマンドで送信する。また、指定ポート番号Ｐｎがｌｏｃａｌｈｏｓｔのストリームへのポート番号である場合には、ノード１４は自分自身に対して送信されたデータであると判断して、当該データを受信して記憶する。
【００５８】
このノード中継コマンドは、ホストと任意ノード間通信のため、および、任意ノード間（隣接ノードを含む）通信のために設けられている。ポート番号Ｐｎをたとえば１，２，…，ｎで割り振り、ｌｏｃａｌｈｏｓｔのストリームへのポート番号をたとえば０とする。たとえばノード１（ポート＿２）→ノード２という経路（ノード１はポート＿２を介してノード２と接続されている）の場合において、ノード１がＲＥＬＡＹ＿ｔｏ＿Ｎｏｄｅ（Ｄｌｅｎ，Ｇｎ，Ｐｎ＝０，Ｄａｔａ＝（センサ出力データ））をポート＿２へ送信したとき、ノード２は、指定ポート番号Ｐｎが０なので、受信した「Ｄａｔａ（センサ出力データ）」が自分自身へ送られたものであると判断できる。したがって、隣接ノード１４に対してセンサ出力データを送信することができる。また、たとえばノード１（ポート＿２）→ノード２（ポート＿１）→ノード３という経路の場合において、ノード１がＲＥＬＡＹ＿ｔｏ＿Ｎｏｄｅ（Ｄｌｅｎ，Ｇｎ，Ｐｎ＝１，Ｄａｔａ＝（“Ｐｎ＝０”＋（センサ出力データ）））をポート＿２に向けて送信すれば、ノード１は自身のセンサ出力データをノード３に対して送信することができる。
【００５９】
なお、上述では、ノード１４が自己に所属する触覚センサ１６のセンサ出力データを検出したとき、隣接センサ位置情報に基づいて相手のノード１４（隣接センサの所属するノード１４）にセンサ出力データを送信する場合を説明した。しかし、相手のノード１４からのリクエストに応じてセンサ出力データを送信するようにしてもよい。このように隣接ノードを超えて物理的に近い位置に存在するセンサ１６のセンサデータを交換するためには、ネットワークの経路情報は必要ではないが、当該センサの位置情報を記憶しておく必要がある。また、このコマンドを使って任意のノード間でデータを与える場合には、ホストが経路を指示する必要がある。
【００６０】
（７）識別番号割当コマンドＧＩＶＥ＿ＩＤ＿ＮＵＭＢＥＲは、識別番号を各ノード１４に割り振るためのコマンドである。識別番号割当コマンドは引数として世代番号Ｇｎ、ホップ番号ＨｎおよびデータＤａｔａを含む。この識別番号割当コマンドを受信したとき、ノード１４はデータに含まれる識別番号を記憶する。識別番号割当コマンドは、ホストコンピュータ１２から各ノード１４に向けて送信される。ホストコンピュータ１２は経路データを受信したとき、経路データに基づいて経路上の各ノード１４の識別番号を特定する。ホストコンピュータ１２のメモリには、たとえばノード配置情報が予め記憶されていて、各ノード１４の識別番号と各ノード１４が他のノード１４との接続に使用しているポート番号等が記憶されている。ホストコンピュータ１２はこのノード配置情報と取得した経路情報に基づいて、取得された経路上における各ノード１４の識別番号を特定することができる。そして、ホストコンピュータ１２は、自己に直接接続されたノード１４にはこの識別番号割当コマンドを用いて当該ノード１４の識別番号を送信し、他のノード１４には、ノード中継コマンドを用いてかつそのデータにこの識別番号割当コマンドを含めることによって、各ノード１４に当該ノード１４の識別番号を送信する。
【００６１】
たとえば、ノード１のポート２に接続されているノード２に対して識別番号を与える際には、ホストコンピュータ１２は、ＲＥＬＡＹ＿ｔｏ＿Ｎｏｄｅ（Ｄｌｅｎ，Ｇｎ，Ｐｎ＝２，Ｄａｔａ＝（ＧＩＶＥ＿ＩＤ＿ＮＵＭＢＥＲ（Ｈｎ，Ｇｎ，Ｄａｔａ＝（識別番号））））をノード１の接続されているポートに向けて送信する。これに応じてノード１は、Ｄａｔａがコマンドなので、指定された番号Ｐｎ（＝２）のポートへ向けて、当該識別番号割当コマンドを送信する。したがって、ノード２は識別番号割当コマンドを受信して、識別番号を記憶することができる。
【００６２】
また、この識別番号割当コマンドを受信したことに応じて、ノード１４はセンサデータ（触覚情報）をホストへ送信するための処理を開始する。すなわち、この識別番号割当コマンドはホストコンピュータ１２からのセンサデータ送信要求に相当する。
【００６３】
（８）エラーコマンドＥｒｒｏｒは、エラーをホストに知らせるためのコマンドである。エラーコマンドは引数として世代番号Ｇｎおよびエラー番号Ｅｎを含み、場合によってはデータＤａｔａを含んでよい。エラーコマンドを受信したとき、ノード１４はエラー番号を記憶し、当該エラー番号を既に送信したことがあるか否かを判定する。当該エラー番号をまだ受信したことがなかった場合には、ノード１４は他のポート３０に向けてエラーコマンドを送信し、一方、当該エラー番号を既に受信していた場合には当該エラーコマンドの送信は行わない。
【００６４】
また、この実施例では、触覚センサ１６を各ノード１４が管理しているため、センサ出力情報を取得できる範囲が限定され、触覚センサ１６間に境界が形成されることとなる。しかし、隣接する触覚センサ１６の接続されたノード１４と相互通信して情報を取得することによって、各ノード１４がその境界を越えてセンサ出力情報を取得することが可能になる。相互接続によるセンサネットワークはお互いのノード１４間の通信に有利であるため、高い時間分解能で隣接するノード１４から情報を取得することができ、しかも、このノード１４間相互通信がネットワーク全体の通信を妨げるようなことはない。したがって、各ノード１４は、１つの触覚センサ１６の情報を時間方向で圧縮するだけでなく、複数のセンサ１６の反応値に基づいて空間方向で情報を圧縮して、触覚情報を抽出することができる。
【００６５】
触覚情報の特徴を視覚情報と比較した場合、視覚は、全体的な状況を検出するものであり、また非接触である。これに対して、触覚は物理的な接触を局所的に検出するという特徴がある。つまり、触覚は局所的な情報の集合であり、したがって、この実施例では、この局所性を利用することで触覚情報を効率的に圧縮するようにしている。
【００６６】
図５には、空間における局所性を利用して、触覚情報の圧縮を行う方法の概要が示される。この方法では、たとえば、圧縮処理しようとするｉ番目のセンサに対して、空間でのデータの内挿が可能かどうかに注目し、データをマスクする（すなわちデータをホストコンピュータ１２に転送しない）値の範囲を適宜に設定する。この実施例では、マスクする値の範囲は、隣接するセンサ１６の反応値に基づいて設定される。マスク範囲ないし領域は、一例として、隣接センサ１６のセンサ値の平均値と差によって算出される。具体的には、平均値Ｓｉｍを中心として、かつ、隣接センサ値の差ΔＳｉに係数ｋを掛けることによって算出された値ｋΔＳｉを幅とした範囲を、データのマスク領域として設定する。
【００６７】
図５の例では、ｉ−１番目のセンサエレメントとｉ＋１番目のセンサエレメントの２つがｉ番目のセンサエレメントの隣接センサである場合が示されている。ｉ−１番目のセンサ値をＳｉ−１とし、ｉ＋１番目のセンサ値をＳｉ＋１とすると、差はΔＳｉ＝｛（Ｓｉ＋１）−（Ｓｉ−１）｝／２に従って算出され、平均値はＳｉｍ＝｛（Ｓｉ＋１）＋（Ｓｉ−１）｝／２に従って算出される。そして、処理しようとするｉ番目のセンサ値が上記マスク範囲に含まれる場合には、当該ｉ番目のセンサを管理するノード１４は、そのｉ番目のセンサのデータをホストコンピュータ１２宛に転送しない、すなわちマスクする。
【００６８】
なお、マスク領域パラメータｋの値は適宜に設定される。平均値付近にあるデータは他のデータから予測可能な冗長性を含むと考えられるので、たとえば係数ｋが大きいということはそのセンサの情報の冗長性を大きく見積もるということを意味する。
【００６９】
また、センサの隣接は１次元に限られるものではなく、２次元、および３次元の隣接であってもよい。さらにまた、マスク領域の値は、上述の隣接センサ値の差分やパラメータｋを使用する算出方法によって設定することに限られるものではなく、触られ方などの触覚情報の把握に支障のない適切なものであれば他の方法で設定されてよい。
【００７０】
また、上述のような空間方向の圧縮だけでなく、場合によっては、図６に示すように、１つのセンサエレメントのデータを時間軸方向で圧縮するようにしてよい。この圧縮は、これまでに取得したセンサ値の時間外挿に基づいて行われる。つまり、前回時刻ｔでのセンサ値Ｓｔと前々回の検出時刻ｔ−１でのセンサ値Ｓｔ−１に基づいて、たとえば１次線形外挿によって現時刻ｔ＋１での値が予測可能か否かに注目し、データをマスクする範囲を設定する。マスク範囲の算出の一例として、まず、センサ値Ｓｔとセンサ値Ｓｔ−１との差ΔＳｔに係数ｋｔを掛けることによって幅ｋｔΔＳｔを算出する。なお、差はΔＳｔ＝｛（Ｓｔ）−（Ｓｔ−１）｝／２に従って算出される。次に、時刻ｔにおけるセンサ値Ｓｔを中心としてｋｔΔＳｔを幅とした範囲を設定する。そして、時刻ｔ−１でのセンサ値Ｓｔ−１と設定範囲の下限値（Ｓｔ−ｋｔΔＳｔ）とに基づく外挿によって時刻ｔ＋１における下限予測値を算出する。また、時刻ｔ−１でのセンサ値Ｓｔ−１と設定範囲の上限値（Ｓｔ＋ｋｔΔＳｔ）とに基づく外挿によって時刻ｔ＋１における上限予測値を算出する。そして、算出された時刻ｔ＋１における下限予測値から上限予測値までの範囲を、時刻ｔ＋１におけるマスク領域として設定する。
【００７１】
したがって、今回の時刻ｔ＋１で検出したセンサ値Ｓｔ＋１が、設定されたマスク領域に含まれる場合には、そのセンサエレメントを管理するノード１４は、当該センサ値Ｓｔ＋１をホストコンピュータ１２宛に転送しない。この時間軸方向の圧縮によっても転送データ量を減少させることができるが、ノイズの低減に効果的である。
【００７２】
また、アナログのセンサデバイスを読み取りデジタル化する際には、量子化誤差だけでなく様々な要因によってＡ／Ｄ変換の結果にノイズなどの影響が誤差として出てくる。そのため、Ｓ／Ｎ比の小さいノイズレベルの変化を観測したときには、実際の触覚デバイスからのものであるのかあるいはノイズであるのかの判断は困難で、含まれる情報量も少ない。たとえば、図７に示すように、マスク領域と隣接センサエレメントの差ΔＳｉとの関係は、傾きｋの直線となる。そこにノイズレベルＮを設定する。すなわち、空間で隣接するセンサ１６に対して、変化量が閾値Ｎ以下の値となった場合には、ノイズとみなして、当該センサデータを無条件にマスクする。また、時間方向で過去の履歴から変化量がノイズレベル（閾値）Ｎｔ以下のセンサデータも、ノイズとみなしてマスクする。これによって、ノイズによって生じる無駄な情報転送を低減できる。
【００７３】
このようにして圧縮されてホストコンピュータ１２に転送されるセンサデータは、全体としては触覚出力の変化領域の輪郭を示している。つまり、ホストコンピュータ１２は、センサデータとして圧力値が転送される場合には、圧力の変化している部分の輪郭を把握することができる。
【００７４】
上述のような圧縮方法では、圧縮率とマスクされる（ホストコンピュータ１２に転送されない）情報量とは、マスク領域パラメータｋ（ｋｔ）の値と想定するノイズレベルＮ（Ｎｔ）の値で調整することができる。情報量をコントロールするにはこの２つのパラメータを適宜変更すればよい。たとえば、この皮膚センサネットワーク１０をコミュニケーションロボットに設ける場合には、ロボットで敏感にしたい部分では情報量が多くなるように各パラメータを設定し、鈍感でよい部分では情報量が少なくなるように各パラメータを設定する。このようなパラメータの設定によって、たとえばロボットの触行動認識におけるアテンションコントロールを比較的容易に行うことができる。
【００７５】
図８には、各ノード１４のメモリ２２のデータ記憶領域のメモリマップの一例が示される。ただし、図８に示されるデータは一部であり、メモリ２２のデータ記憶領域には、処理に必要な各種のデータが記憶されている。
【００７６】
世代番号記憶領域４２には世代番号Ｇｎが記憶される。初期値として０が記憶される。この記憶領域４２の世代番号Ｇｎは、ホスト側から経路要求コマンドＲＲＥＱを受信したときに参照される。経路要求コマンドで受信した世代番号と異なる番号が記憶されているときには、世代番号記憶領域４２には受信した世代番号Ｇｎが記憶される。
【００７７】
ホップ番号記憶領域４４にはホップ番号Ｈｎが記憶される。初期値として０が記憶される。ホップ番号Ｈｎは経路確保確認コマンドの受信に応じて更新される。また、ホップ番号記憶領域４４は経路データを生成するときに参照される。
【００７８】
経路確保情報記憶領域４６には、ホスト側のポート番号が記憶される。各ノード１４がホスト側ポート番号のみを記憶することによって、ネットワーク全体で情報伝達経路が記憶されることとなる。
【００７９】
識別番号記憶領域４８にはホストコンピュータ１２から送られてきた識別番号が記憶される。エラー番号履歴記憶領域５０には、受信した（送信した）エラー番号Ｅｎが記憶される。エラー番号Ｅｎとしてはエラーの種類や発生状況等に応じて異なる番号が設定されている。
【００８０】
隣接センサ位置情報記憶領域５２には、当該ノード１４に所属する触覚センサ１６と隣接する触覚センサ１６の位置を示す情報が記憶される。隣接センサ位置情報は予め記憶されている。たとえば、図９に示すように、センサＩＤ（識別情報）に対応付けて、隣接センサの所属するノードに関する情報、および隣接センサの所属ノードにおけるセンサＩＤが記憶される。隣接センサの所属するノードに関する情報は、たとえば当該隣接センサの所属するノード１４の接続されるポート番号が記憶される。隣接センサが自己のノード１４に所属している場合には、所属ノードに関する情報としては、所属ノードが同じであることを示すデータが記憶される。なお、隣接センサは基本的に物理的に近い位置に存在するので、自ノードまたは隣接するノードに所属する。しかし、隣接センサが隣接ノードに所属していない場合には、当該隣接センサの所属するノードまでに、隣接ノードもしくは介在ノードのどのポートを介して接続されているかが分かるように、当該隣接センサの所属するノードまでに介在するノードおよびポート番号に関する情報を、隣接センサの所属ノードに関する情報として予め記憶しておく。また、複数の隣接センサが存在する場合には、複数の隣接センサのそれぞれの位置情報が記憶される。
【００８１】
センサ出力履歴記憶領域５４には、自ノード１４に所属する触覚センサ１６の出力データの履歴が記憶される。センサＩＤに対応付けられて所定の検出回数分のセンサ出力データが記憶される。なお、センサ出力データにはさらにその検出時刻を付与して記憶するようにしてよい。
【００８２】
隣接センサ出力記憶領域５６には、他のノード１４から受信した隣接センサのセンサ出力データが記憶される。たとえば、隣接センサのセンサ位置情報（所属およびセンサＩＤ）に対応付けて、受信したセンサ出力データが記憶される。
【００８３】
優先度情報記憶領域５８には、データ転送の優先順位に関する情報が記憶される。優先度情報は予め記憶される。具体的には、優先的に転送すべきセンサデータを示す情報が記憶される。たとえば、痛い感覚を示すデータ、危ないことを示すデータ等のように、緊急を要するセンサデータが優先的に送信すべきデータとして設定される。また、たとえば撫でられていることを示すデータのように、所定の触られ方を示すデータを高優先度データとして設定してもよい。このようなセンサデータに対するラベリングは、センサの圧力値や設置場所等に基づいてなされる。たとえば、痛い感覚を示すデータは、センサ出力データがコミュニケーションロボットの通常のコミュニケーションではあり得ないような高いまたは異常な圧力値を示すデータであった場合にラベリングされてよい。また、危ないことを示すデータは、コミュニケーションロボットの関節の近くに配置されたセンサからの出力データに対してラベリングされてよい。この場合、各ノード１４は自己のセンサ１６がたとえばコミュニケーションロボットにおける関節部の近くのような危ない場所に設置されていることを示すデータをセンサＩＤに対応付けて予め記憶する。
【００８４】
また、優先度情報は、状況に応じて変更されてもよい。この場合、ホストコンピュータ１２が各ノード１４に対して、状況に応じた優先度情報を、ノード中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｎｏｄｅを用いて送信する。ホストコンピュータ１２がコミュニケーションロボットのＣＰＵである場合、ホストコンピュータ１２は、たとえばコミュニケーションロボットが今実行している行動や各種センサで観測される状況等に応じて、危険な場所にあるノード１４およびセンサＩＤをテーブルデータなどに基づいて特定し、該当するノード１４に対して、該当するセンサＩＤが今危ない場所になっていることを示すデータを送信してもよい。また、ホストコンピュータ１２は、コミュニケーションロボットが今実行している行動や観測される状況等に応じて、優先されるべき所定の触られ方を特定し、当該所定の触られ方を示すデータを優先度情報として各ノード１４に送信するようにしてもよい。
【００８５】
ノイズレベル情報記憶領域６０には、センサデータをマスクするためのノイズレベルに相当するセンサ出力値の変化量を示す情報が記憶される。具体的には、空間方向のマスクのためのノイズレベルＮと、時間方向のマスクのためのノイズレベルＮｔとが記憶される。
【００８６】
図１０には生成される経路データの内容の一例が示される。図１０（Ａ）には、ネットワークの末端のノード１４がホスト側へネットワーク経路応答を送信するとき、または、各ノード１４がネットワーク経路応答待ち処理を開始したときに生成される自分の経路データの内容が示されている。自分の経路データは、ホップ番号Ｈｎおよび経路として確保したホスト側のポート番号Ｐｎ＿ｈｏｓｔｓｉｄｅ等を含む。ホップ番号Ｈｎはメモリ２２のホップ番号記憶領域４４に記憶され、ホスト側ポート番号はメモリ２２の経路確保情報記憶領域４６に記憶されている。自分の経路データからは、当該ノード１４が幾つのノード１４を介してホストに経路を確保しているか、どのポート番号でホスト側経路につながっているかが把握される。なお、図１０（Ａ）でｓｅｐａｒａｔｏｒ２はデータの区切り目を示す文字列であり、ｓｅｐａｒａｔｏｒ１はデータの終わりを示す文字列である。また、ａｎｙｔｈｉｎｇは任意のデータである。つまり、ネットワーク経路応答コマンドを用いて、経路データとともに任意のデータを送信することが可能になっている。
【００８７】
図１０（Ｂ）には、ネットワーク経路応答コマンドを末端側（葉側）から受信したときに生成される経路データの内容の一例が示される。この経路データは、図１０（Ａ）に示した自分の経路データと受信した経路データとを結合することによって生成される。つまり、各ノード１４は、ネットワーク経路応答コマンドを葉側から受信したとき、この自分の経路データに、ホップ数に関する情報ＴＡＢ＊Ｈｎ、および当該コマンドを受信したポート番号Ｐｎ＿ｌｅａｆｓｉｄｅとともに、受信した経路データＤａｔａ＿ｌｅａｆｓｉｄｅを追加することによって、経路データを生成する。葉側ポート番号が含まれるので、葉側の経路データをどのポートから受信したかを把握できる。この追加は、葉側のポートからのネットワーク経路応答コマンドの受信ごとに行われる。
【００８８】
このようにして生成される経路データは、当該データを生成するノードを根とするツリー構造となる。つまり、経路データは、当該ノード１４を根とした葉側のネットワークの経路を示すネットワーク経路データともいえる。各ノード１４は、全ての葉側ポート３０からネットワーク経路応答コマンドを受信したとき、生成した経路データをホスト側のポート３０へ向けて送信する。したがって、ホストコンピュータ１２は、接続されているノード１４を根とするツリー構造でネットワーク全体の経路が示されたネットワーク経路データを受信することとなり、受信したネットワーク経路データによってネットワーク全体の経路を把握することができる。
【００８９】
図１１には、ホストコンピュータ１２の動作の一例が示される。ホストコンピュータ１２のＣＰＵは、ステップＳ１で、センサデータを取得するか否かを判定する。たとえば、一定時間ごとにセンサデータを検出するような場合には検出時刻になったか否かをＣＰＵの内部タイマに基づいて判断する。また、ホストコンピュータ１２がコミュニケーションロボットのＣＰＵであるような場合には、実行する行動や観測される状況等に応じたセンサデータの検出タイミングであるか否かを判断してもよい。
【００９０】
ステップＳ１で“ＹＥＳ”であれば、ステップＳ３で、世代番号Ｇｎの値を設定する。世代番号Ｇｎはネットワークの管理番号であり、その値は経路確保ごとに変えられ、異なる値に設定される。そして、ステップＳ５で、経路要求コマンドＲＲＥＱを、ノード１４の接続されているポートへ向けて送信する。なお、経路要求コマンドで引数として世代番号Ｇｎとともに送信されるホップ番号Ｈｎには初期値０が設定される。
【００９１】
続いて、ステップＳ７で、経路応答コマンドＲＲＥＰ＿ｌｏｃａｌ（承諾）をノード１４から受信したか否かを判断する。つまり、ステップＳ５で送信した経路要求コマンドに応じてノード１４から送信される経路応答コマンドの受信を待機する。なお、図示は省略されるが、経路応答コマンド（承諾）を受信できずにタイムアウトになった場合には、接続されているノード１４との間の通信リンクに問題があると考えられるので、たとえば当該タイムアウトをメモリに記憶してステップＳ１に戻る。
【００９２】
ステップＳ７で“ＹＥＳ”であれば、ステップＳ９で、経路確保確認コマンドＣＯＮＦＩＲＭ＿ＲＲＥＰをノード１４の接続されているポートへ向けて送信する。そして、ステップＳ１１で、ステップＳ９で送信したコマンドに応じてノード１４から送信されるネットワーク経路応答コマンドＲＲＥＰ＿ｅｎｔｉｒｅを受信したか否かを判断する。ステップＳ１１で“ＮＯ”であれば再びステップＳ１１を繰り返す。つまり、ネットワーク経路応答コマンドの受信を待機する。なお、図示は省略されるが、ネットワーク経路応答コマンドを受信できずにタイムアウトになった場合には、当該タイムアウトをメモリに記憶してステップＳ１に戻る。
【００９３】
ステップＳ１１で“ＹＥＳ”であれば、ステップＳ１３で、ネットワーク経路応答コマンドに含めて送信された経路情報（ネットワーク経路情報）を抽出してメモリに記憶する。この経路情報は、ホストコンピュータ１２に接続されるノード１４のデータを根とするツリー構造となっている。そして、ステップＳ１５で、取得した経路情報に基づいて、経路上の各ノード１４の識別番号を特定する。ホストコンピュータ１２のメモリには、たとえば、各ノード１４の識別番号、および各ノード１４が他のノード１４との接続に使用しているポート番号等に関する情報を含むノード配置情報が予め記憶されている。ホストコンピュータ１２はこのノード配置情報と取得した経路情報に基づいて、取得された経路上における各ノード１４の識別番号を特定する。
【００９４】
そして、ステップＳ１７で、各ノード１４にそれぞれの識別番号を送信する。この識別番号の各ノード１４への送信には、上述のように、ノード中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｎｏｄｅおよび識別番号割当コマンドＧＩＶＥ＿ＩＤ＿ＮＵＭＢＥＲを用いる。経路情報を取得したので、各ノード１４にその識別番号を送信することができる。この識別番号の送信は、各ノード１４に対する触覚情報送信要求に相当する。
【００９５】
続いて、ステップＳ１９では、ホスト中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｈｏｓｔを受信したか否かを判断する。ステップＳ１９で“ＮＯ”であれば再びステップＳ１９を繰り返す。つまり、ステップＳ１７の識別番号の送信に応じて各ノード１４から送信されるホスト中継コマンドの受信を待機する。ステップＳ１９で“ＹＥＳ”であれば、当該コマンドに含まれるセンサデータ（触覚情報）を抽出して、メモリに記憶する。センサデータは、たとえば当該コマンドで一緒に送信されてくるノード１４の識別番号および検出時刻に対応付けて記憶する。なお、検出時刻はホストコンピュータ１２で付与されてもよい。また、図示は省略されるが、このホスト中継コマンドの受信待ちおよびセンサデータの記憶は、たとえばステップＳ１７の処理から所定時間が経過するまで継続される。この所定時間は、たとえば全てのノード１４からセンサデータが送信された場合でも全センサデータを受信して記憶することが可能な値に設定されている。ステップＳ２１を終了するとステップＳ１に戻る。
【００９６】
なお、図１１では省略されるが、ホストコンピュータ１２のＣＰＵは、エラーコマンドＥｒｒｏｒを受信したときは、当該コマンドに含まれるエラー番号Ｅｎをたとえば世代番号Ｇｎとともにメモリに記憶してステップＳ１へ戻る。
【００９７】
図１２には各ノード１４の動作の一例が示される。ノード１４のＣＰＵ２０は、ステップＳ４１で、センサ出力を取得する時刻であるか否かを判断する。たとえば所定時間間隔でセンサ出力を検出する場合には、ＣＰＵ２０の内部タイマに基づいて一定時間が経過したか否かが判断される。ステップＳ４１で“ＹＥＳ”であれば、ステップＳ４３で、センサデータバッファ２４から各センサ１６のセンサ出力データを取得して、センサＩＤおよび検出時刻等のデータに関連付けてメモリ２２のセンサ出力履歴記憶領域５４に記憶する。
【００９８】
続いて、ステップＳ４５で、ノード中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｎｏｄｅを用いて、取得したセンサ出力データを隣接センサの所属するノード１４に送信する。隣接センサの所属するノード１４までに経由するポート番号等の情報は、隣接センサ位置情報記憶領域５２に記憶されているので、上述のようにしてノード中継コマンドでセンサ出力データを隣接センサのノード１４まで送信できる。また、センサ出力データを受信したときも、ノード１４は、隣接センサ位置情報とセンサ出力データに付与されたセンサＩＤに基づいて、隣接センサのセンサ出力データを特定できる。ステップＳ４５を終了し、またはステップＳ４１で“ＮＯ”であれば、ステップＳ４７へ進む。
【００９９】
ステップＳ４７では、転送データバッファ２８の受信バッファをチェックし、ステップＳ４９でコマンドが記憶されているか否かを判断する。ステップＳ４９で“ＹＥＳ”であれば、ステップＳ５１でコマンド処理を開始する。このコマンド処理の動作は後述する図１３から図２８に示される。ステップＳ５１でコマンド処理を開始し、またはステップＳ４９で“ＮＯ”であれば、ステップＳ５３で全ポート３０の受信バッファについて処理を済ませたか否かを判断する。ステップＳ５３で“ＮＯ”であれば、ステップＳ４７に戻って別のポート３０に対する処理を実行する。ステップＳ５３で“ＹＥＳ”であれば、ステップＳ４１に戻る。このように、常時各ポート３０の受信バッファがチェックされ、コマンドを受信しているときにはポート３０ごとのコマンド処理が実行される。図１２のステップＳ４１からステップＳ４５のセンサ出力の検出および隣接センサ出力データの送信、ならびに各コマンド処理は並列的に実行される。
【０１００】
図１３にはコマンド処理の動作の一例が示される。ノード１４のＣＰＵ２０は、ステップＳ７１で転送データバッファ２８の受信バッファからコマンドをメモリ２２のワークエリアに取得する。次に、ステップＳ７３で、受信コマンドが経路要求コマンドＲＲＥＱか否かを判断する。ステップＳ７３で“ＹＥＳ”であれば、ステップＳ７５で、コマンドから世代番号Ｇｎおよびホップ番号Ｈｎを取得ないし抽出する。
【０１０１】
続いて、ステップＳ７７で、取得した世代番号Ｇｎは、メモリ２２の世代番号記憶領域４２に記憶された世代番号Ｇｎと同じであるか否かを判断する。ステップＳ７７で“ＮＯ”であれば、つまり、今回設定された世代番号Ｇｎを有する経路要求コマンドを初めて受信した場合には、ステップＳ７９で、経路確保情報記憶領域４６に当該コマンドを受信したポート番号を記憶する。つまり、ホスト側の経路を示すポート番号が記憶される。また、ステップＳ８１で世代番号記憶領域４２に受信した世代番号Ｇｎを記憶する。
【０１０２】
さらに、ステップＳ８３で、受信ポートへ向けて経路応答コマンドＲＲＥＰ＿ｌｏｃａｌ（承諾）を送信する。そして、ステップＳ８５で、経路確保確認コマンドＣＯＮＦＩＲＭ＿ＲＲＥＰ待ち処理を開始する。この待ち処理は図１４に示され、コマンド処理等と並列的に実行される。
【０１０３】
経路確保確認コマンド待ち処理を開始すると、図１４のステップＳ１０１で、経路確保確認コマンド待ちタイマのカウントをスタートする。次に、ステップＳ１０３で、タイムアウトになったか否か、たとえばタイマが所定値になったか否かを判断し、“ＹＥＳ”であれば、ステップＳ１０５で、ステータスを初期化する。具体的には世代番号記憶領域４２および経路確保情報記憶領域４６をクリアする。経路確保確認コマンドを受信できれば、隣接ノード１４と送受信可能なリンクで繋がっているといえる。しかし、経路要求に応答したのに確認メッセージが来ないということは、送信ポートが使えず、片方向通信のみ可能なリンクであるので、他の経路を利用するべく、ステータスを初期化する。また、ステップＳ１０７で、全てのポート３０に向けてエラーコマンドＥｒｒｏｒを送信する。このエラーコマンドでは、たとえば経路確保確認に失敗したことを示すエラー番号Ｅｎが送信される。なお、図示は省略されるが、送信するエラー番号はエラー番号履歴記憶領域５０に記憶する。ステップＳ１０７を終了すると、この経路確保確認待ち処理を終了する。
【０１０４】
一方、ステップＳ１０３で“ＮＯ”であれば、ステップＳ１０９で、経路確保確認コマンドが受信されたか否かを判断する。たとえば、受信したコマンドが経路確保確認コマンドであったと判定されたとき、当該コマンドの当該ポートでの受信を示すフラグをオンに設定しておく。ステップＳ１０９では、この経路確保確認コマンド受信フラグに基づいて判定する。他の待ち処理でも同様に、各コマンドの各ポートにおける受信を示すフラグに基づいて判定が行われてよい。ステップＳ１０９で“ＮＯ”であれば、ステップＳ１０３へ戻り、この待ち処理を継続する。一方、ステップＳ１０９で“ＹＥＳ”であれば、この待ち処理を終了する。
【０１０５】
図１３に戻って、ステップＳ７７で“ＹＥＳ”であれば、つまり、今回設定された世代番号Ｇｎを有する経路要求コマンドを既に受信していた場合には、ステップＳ８７で、当該コマンドを受信したポート３０に向けて、経路応答コマンドＲＲＥＰ＿ｌｏｃａｌ（拒否）を送信する。ステップＳ８７を終了し、またはステップＳ８５で待ち処理を開始すると、このコマンド処理を終了する。なお、ステップＳ７３で“ＮＯ”であれば、処理は図１５のステップＳ１２１へ進む。
【０１０６】
図１５のステップＳ１２１では、受信したコマンドが経路応答コマンドＲＲＥＰ＿ｌｏｃａｌであるか否かを判断し、“ＹＥＳ”であれば、さらにステップＳ１２３で承諾か拒否かを判断する。ステップＳ１２３で“ＹＥＳ”であれば、経路要求が承諾されたので、ステップＳ１２５で、受信したポート３０に向けて、経路確保確認コマンドＣＯＮＦＩＲＭ＿ＲＲＥＰを送信する。そして、ステップＳ１２７で、ネットワーク経路応答コマンドＲＲＥＰ＿ｅｎｔｉｒｅ待ち処理を開始する。また、ステップＳ１２９で、自分の経路データ（図１０（Ａ））をメモリ２２に生成する。ステップＳ１２７で開始されるネットワーク経路応答待ち処理は図１６に示され、コマンド処理等と並列的に実行される。なお、このネットワーク経路応答待ち処理でのタイムアウトは通常は起こらない。つまり、承諾を示す経路応答を受信して経路確保確認を送信した全てのポート３０から、所定時間内にネットワーク経路応答コマンドを受信できる。
【０１０７】
ネットワーク経路応答コマンド待ち処理を開始すると、図１６のステップＳ１４１で、ネットワーク経路応答コマンド待ちタイマのカウントをスタートする。次に、ステップＳ１４３で、タイムアウトになったか否かを判断する。また、ステップＳ１４３で“ＮＯ”であれば、ステップＳ１４５で、全ての葉側ポート３０から経路応答コマンドＲＲＥＰ＿ｌｏｃａｌが受信されたか否かを判断する。葉側ポート３０は、経路応答コマンド（承諾）を受信したポート３０であり、つまり、経路確保確認コマンドを送信したポート３０である。
【０１０８】
ステップＳ１４３で“ＹＥＳ”であれば、またはステップＳ１４５で“ＹＥＳ”であれば、ステップＳ１４７で、ホスト側のポート３０に向けて、ネットワーク経路応答コマンドＲＲＥＰ＿ｅｎｔｉｒｅを送信する。この場合には、全ての葉側のポート３０からネットワーク経路応答コマンドを受信できていない。そこで、経路データとして、葉側のポート３０からネットワーク経路応答コマンドを１度も受信していない場合には自分の経路データのみを送信し、そうでない場合には、自分の経路データとそれまでに受信した葉側の経路データとで生成した経路データ（図１０（Ｂ））を送信する。そして、ステップＳ１４９で、全てのポート３０に向けて、ネットワーク経路応答待ちでのエラーを示すエラー番号Ｅｎを含むエラーコマンドＥｒｒｏｒを送信する。
【０１０９】
また、ステップＳ１４５で“ＮＯ”であれば、ステップＳ１５１で、全ての葉側のポート３０からネットワーク経路応答コマンドＲＲＥＰ＿ｅｎｔｉｒｅが受信されたか否かを判断する。ステップＳ１５１で“ＮＯ”であれば、ステップＳ１４３に戻り、この待ち処理を継続する。一方、ステップＳ１５１で“ＹＥＳ”であれば、またはステップＳ１４９を終了すると、このネットワーク経路応答コマンド待ち処理を終了する。
【０１１０】
図１５に戻って、ステップＳ１２３で“ＮＯ”であれば、つまり、経路応答が拒否であった場合には、ステップＳ１３１で、当該ポート番号から経路応答の拒否があったことをメモリ２２の所定領域に記憶する。ステップＳ１３１またはステップＳ１２９を終了すると、このコマンド処理を終了する。なお、ステップＳ１２１で“ＮＯ”であれば処理は図１７のステップＳ１６１へ進む。
【０１１１】
図１７のステップＳ１６１では、受信コマンドが経路確保確認コマンドＣＯＮＦＩＲＭ＿ＲＲＥＰであったか否かを判断し、“ＹＥＳ”であれば、ステップＳ１６３で、既に経路を確保しているか否かを判断する。具体的には、当該コマンドを受信したポート番号と異なるポート番号が経路確保情報記憶領域４６に既に記憶されているか否かを判断する。
【０１１２】
ステップＳ１６３で“ＮＯ”であれば、ステップＳ１６５でホップ番号Ｈｎに１を加算することによって、ホップ番号を更新してホップ番号記憶領域４４に記憶する。続いて、ステップＳ１６７で、当該経路確保確認コマンドの受信ポート３０を除く全てのポート３０へ向けて、経路要求コマンドＲＲＥＱを送信する。そして、ステップＳ１６９で、経路応答コマンド待ち処理を開始する。この待ち処理は図１８に示され、コマンド処理等と並列的に実行される。
【０１１３】
経路応答コマンド待ち処理を開始すると、図１８のステップＳ１８１で、経路応答コマンド待ちタイマのカウントをスタートする。次に、ステップＳ１８３でタイムアウトになったか否かを判断する。また、ステップＳ１８３で“ＮＯ”であれば、ステップＳ１８５で、経路要求コマンドＲＲＥＱを送信した全てのポート３０から経路応答コマンドＲＲＥＰ＿ｌｏｃａｌ（拒否）を受信したか否かを判断する。ステップＳ１８３で“ＹＥＳ”であれば、またはステップＳ１８５で“ＹＥＳ”であれば、ステップＳ１８７で、自分がネットワークの末端になることをメモリ２２の所定領域に記憶する。続いて、ステップＳ１８９で、自分の経路データ（図１０（Ａ））をメモリ２２の所定領域に生成する。そして、ステップＳ１９１で、経路確保したホスト側のポート３０に向けて、ネットワーク経路応答コマンドＲＲＥＰ＿ｅｎｔｉｒｅを送信する。この場合、ステップＳ１８９で生成した自分の経路データを送信する。
【０１１４】
一方、ステップＳ１８５で“ＮＯ”であれば、ステップＳ１９３で、経路応答コマンドＲＲＥＰ＿ｌｏｃａｌ（承諾）が受信されたか否かを判断する。ステップＳ１９３で“ＮＯ”であれば、ステップＳ１８３に戻ってこの待ち処理を継続する。また、ステップＳ１９３で“ＹＥＳ”であれば、またはステップＳ１９１を終了すると、この待ち処理を終了する。
【０１１５】
図１７に戻って、ステップＳ１６３で“ＹＥＳ”であれば、つまり、既に別の経路が確保されている場合には、そのままコマンド処理を終了する。また、ステップＳ１６９で待ち処理を開始するとこのコマンド処理を終了する。なお、ステップＳ１６１で“ＮＯ”であれば、処理は図１９のステップＳ２０１へ進む。
【０１１６】
図１９のステップＳ２０１では、受信コマンドがネットワーク経路応答コマンドＲＲＥＰ＿ｅｎｔｉｒｅであるか否かを判定する。ステップＳ２０１で“ＹＥＳ”であれば、ステップＳ２０３で、受信したコマンドに含まれる経路データに基づいて、経路データを生成する。つまり、図１０（Ｂ）に示したように、それまでに生成した経路データ（最初は自分の経路データ）に、ホップ数に関する情報、受信した葉側のポート番号、および受信した葉側の経路データを追加する。これによって、自ノードを根とするツリー構造を示すネットワーク経路データが生成される。
【０１１７】
続いて、ステップＳ２０５で、全ての葉側ポート３０からネットワーク経路応答コマンドＲＲＥＰ＿ｅｎｔｉｒｅを受信したか否かを判断する。葉側ポート３０は、経路応答コマンド（承諾）を受けたポート３０である。ステップＳ２０５で“ＮＯ”であれば、そのままこのコマンド処理を終了する。この場合、ネットワーク経路応答待ち処理が継続される。一方、ステップＳ２０５で“ＹＥＳ”であれば、ステップＳ２０７で、経路確保情報記憶領域４６に記憶されたホスト側のポート３０へ、ネットワーク経路応答コマンドＲＲＥＰ＿ｅｎｔｉｒｅを送信する。このネットワーク経路応答コマンドによって、メモリ２２に生成された経路データをホスト側のノード１４に送信する。ステップＳ２０７を終了するとこのコマンド処理を終了する。なお、ステップＳ２０１で“ＮＯ”であれば、処理は図２０のステップＳ２２１へ進む。
【０１１８】
図２０のステップＳ２２１では、受信したコマンドがエラーコマンドＥｒｒｏｒであるか否かを判断し、“ＹＥＳ”であれば、ステップＳ２２３で、受信データからエラー番号Ｅｎを抽出してエラー番号履歴記憶領域５０に記憶する。そして、ステップＳ２２５で、エラー番号履歴データに基づいて、送信したことのあるエラーメッセージ（エラー番号Ｅｎ）であるか否かを判断する。ステップＳ２２５で“ＹＥＳ”であれば、つまり、一度送信したことのあるエラーメッセージであれば、当該エラーコマンドを送信しない。これによってメッセージのループを防ぐ。一方、ステップＳ２２５で“ＮＯ”であれば、ステップＳ２２７で、残りのポート３０に向けて当該エラーコマンドを送信する。ステップＳ２２７を終了するとこのコマンド処理を終了する。なお、ステップＳ２２１で“ＮＯ”であれば、処理は図２１のステップＳ２４１へ進む。
【０１１９】
図２１のステップＳ２４１では、受信したコマンドが識別番号割当コマンドであるか否かを判断する。ステップＳ２４１で“ＹＥＳ”であれば、ステップＳ２４３で、その世代番号における識別番号を既に持っているか否かを判断する。ステップＳ２４３で“ＮＯ”であれば、ステップＳ２４５で、受信コマンドに含まれる識別番号をたとえば世代番号に関連付けて識別番号記憶領域４８に記憶する。そして、ステップＳ２４７で、センサデータの送信処理を開始する。センサデータの送信処理は、後述する図２４に示され、コマンド処理等と並列的に実行される。一方、ステップＳ２４３で“ＹＥＳ”であれば、ステップＳ２４９で全てのポート３０に向けて、識別番号割当におけるエラーを示すエラー番号Ｅｎを含むエラーコマンドＥｒｒｏｒを送信する。ステップＳ２４７でセンサデータ送信処理を開始し、またはステップＳ２４９を終了すると、このコマンド処理を終了する。なお、ステップＳ２４１で“ＮＯ”であれば、処理は図２２のステップＳ２６１へ進む。
【０１２０】
図２２のステップＳ２６１では、受信コマンドがノード中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｎｏｄｅであるか否かを判断する。ステップＳ２６１で“ＹＥＳ”であれば、ステップＳ２６３で、当該コマンドに含まれるデータＤａｔａがコマンドであるか否かを判断する。ステップＳ２６３で“ＹＥＳ”であれば、ステップＳ２６５で、指定されたポート番号のポート３０へ向けて、当該コマンドを送信する。
【０１２１】
一方、ステップＳ２６３で“ＮＯ”であれば、ステップＳ２６７で、指定ポート番号がローカルホストを示すか否かを判断し、“ＮＯ”であれば、ステップＳ２６９で、指定ポート番号のポート３０に向けて、当該データをノード中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｎｏｄｅで送信する。
【０１２２】
また、ステップＳ２６７で“ＹＥＳ”であれば、当該データはこのノード１４宛のデータであるので、ステップＳ２７１で、当該データをメモリ２２の所定領域に記憶する。このデータが隣接センサ出力データである場合には、隣接センサ出力記憶領域５４に記憶する。ステップＳ２６５、Ｓ２６９またはＳ２７１を終了すると、このコマンド処理を終了する。なお、ステップＳ２６１で“ＮＯ”であれば、処理は図２３のステップＳ２８１へ進む。
【０１２３】
図２３のステップＳ２８１では、受信コマンドがホスト中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｈｏｓｔであるか否かを判断する。ステップＳ２８１で“ＹＥＳ”であれば、ステップＳ２８３で優先順位判定処理を実行する。この処理によって、優先度の高いセンサデータが受信された場合には、当該データを優先的に送信できるようにバッファの空きを調整する。この優先順位判定処理の動作は後述する図２８に示される。そして、ステップＳ２８５では、ホスト側のポート３０に向けて、ホスト中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｈｏｓｔを用いてデータを送信する。これによって、優先度の高いデータから優先的に送信される。ステップＳ２８５を終了するとこのコマンド処理を終了する。
【０１２４】
また、ステップＳ２８１で“ＮＯ”であれば、つまり、受信したコマンドが未定義コマンドである場合には、ステップＳ２８７で、未定義コマンドの受信を示すエラー番号Ｅｎを含むエラーコマンドＥｒｒｏｒを全てのポート３０に向けて送信し、このコマンド処理を終了する。
【０１２５】
図２４には、図２１のステップＳ２４７で開始されるセンサデータの送信処理の動作の一例が示される。センサデータ送信処理を開始すると、ステップＳ３０１で、識別番号記憶領域４８のデータを参照して、識別番号を割り当てられているか否かを判断する。ステップＳ３０１で“ＹＥＳ”であれば、ステップＳ３０３で、センサ出力履歴記憶領域５４を参照して、今回のセンサ出力データを取得済みであるか否かを判断する。ステップＳ３０３で“ＮＯ”であれば、センサ出力が取得されるのを待つ。
【０１２６】
ステップＳ３０３で“ＹＥＳ”であれば、ステップＳ３０５でデータ圧縮処理を実行する。この実施例では、空間方向の圧縮、時間方向の圧縮、ノイズレベルの圧縮の３つの処理が実行される。空間方向のデータ圧縮処理は後述する図２５に示される。時間方向のデータ圧縮処理は後述する図２６に示される。また、ノイズレベルのデータ圧縮処理は後述する図２７に示される。
【０１２７】
続いて、ステップＳ３０７ではセンサデータの送信が必要であるか否かを判断する。具体的には、データ圧縮処理でマスクしない（つまり、送信が必要）と判断されたセンサデータが存在するか否かを判断する。ステップＳ３０７で“ＹＥＳ”であれば、ステップＳ３０９で、優先度情報に基づいて、送信データの優先度を設定する。たとえば、優先度情報として痛い感覚を示すデータや撫でられていることを示すデータ等のようにセンサ出力データの値によって決まるデータが設定される場合には、センサ出力データの値に基づいて、優先度が設定される。また、優先度情報として危ないことを示すデータ等のようなセンサ位置もしくはセンサＩＤによって決まるデータが設定される場合には、送信の必要なセンサ出力データのセンサ位置もしくはセンサＩＤに基づいて、優先度が設定される。送信するセンサデータには、センサＩＤだけでなくさらに優先度に関するラベルが付与される。たとえば、痛い感覚を示すラベル、撫でられていることを示すラベル、危ないことを示すラベル、あるいは高優先度を示すラベル等が付与される。
【０１２８】
そして、ステップＳ３１１で、ホスト側のポート３０に向けて、ホスト中継コマンドＲＥＬＡＹ＿ｔｏ＿Ｈｏｓｔによってセンサデータ（触覚情報）を送信する。このホスト中継コマンドで送信するデータにはさらに当該ノード１４の識別番号が付与される。ステップＳ３１１を終了するとこの送信処理を終了する。一方、ステップＳ３０７で“ＮＯ”であれば、つまり、このノード１４に所属する全てのセンサ１６のセンサデータをマスクする場合には、そのままこの送信処理を終了する。また、ステップＳ３０１で“ＮＯ”である場合もそのままこの送信処理を終了する。
【０１２９】
図２５には、図２４のステップＳ３０５の処理のうち空間方向のデータ圧縮処理の動作の一例が示される。まず、データを圧縮しようとする１つのセンサＩＤを決めて、当該センサデータに対して処理を実行する。ステップＳ３２１では、隣接センサ出力データを取得済みであるか否かを判断する。具体的には、隣接センサ位置情報に記憶される他のノード１４に所属する隣接センサのセンサ出力データが隣接センサ出力記憶領域５６に記憶されているか否かを判断する。ステップＳ３２１で“ＮＯ”であれば、隣接センサ出力データの取得を待つ。
【０１３０】
ステップＳ３２１で“ＹＥＳ”であれば、ステップＳ３２３で、隣接センサデータからマスク領域を算出する。マスク領域は、たとえば図５に示したように隣接センサデータの値と係数ｋ等に基づいて算出される。そして、ステップＳ３２５で、処理対象のセンサのデータの値がマスク領域内であるか否かを判定する。ステップＳ３２５で“ＹＥＳ”であれば、ステップＳ３２７で当該処理対象のセンサＩＤのセンサデータを送信しないすなわちマスクすることをメモリ２２に記憶する。一方、ステップＳ３２５で“ＮＯ”であれば、ステップＳ３２９で当該センサＩＤのセンサデータは送信が必要でありマスクしないことをメモリ２２に記憶する。メモリ２２にはセンサＩＤごとにマスクするかしなかを示すデータが記憶される。
【０１３１】
続いてステップＳ３３１で全てのセンサＩＤについて処理を完了したか否かを判断し、“ＮＯ”であれば、ステップＳ３２１へ戻って、次のセンサＩＤのセンサデータに対して処理を実行する。ステップＳ３３１で“ＹＥＳ”であれば、この空間方向のデータ圧縮処理を終了する。
【０１３２】
図２６には、図２４のステップＳ３０５の処理のうち時間方向のデータ圧縮処理の動作の一例が示される。空間方向の場合と同様に、まず、圧縮処理対象のセンサＩＤを決定し、当該センサデータに対して処理を実行する。ステップＳ３４１では、センサ出力履歴データからマスク領域を算出する。マスク領域は、たとえば図６に示したようにセンサ出力データの履歴と係数ｋｔとに基づいて算出される。そして、ステップＳ３４３で、処理対象のデータの値がマスク領域内であるか否かを判定する。ステップＳ３４３で“ＹＥＳ”であれば、ステップＳ３４５で当該処理対象のセンサＩＤのセンサデータを送信しないすなわちマスクすることをメモリ２２に記憶する。一方、ステップＳ３４３で“ＮＯ”であれば、ステップＳ３４７で当該センサＩＤのセンサデータは送信が必要でありマスクしないことをメモリ２２に記憶する。
【０１３３】
続いて、ステップＳ３４９で全てのセンサＩＤについて処理を実行したか否かを判断し、“ＮＯ”であれば、ステップＳ３４１に戻って、次のセンサＩＤのセンサデータに対して処理を実行する。ステップＳ３４９で“ＹＥＳ”であれば、この時間方向のデータ圧縮処理を終了する。
【０１３４】
図２７には、図２４のステップＳ３０５の処理のうちノイズレベルのデータ圧縮処理の動作の一例が示される。まず、ステップＳ３６１で、ノイズレベルＮ（Ｎｔ）が設定されているか否かをノイズレベル情報記憶領域６０に基づいて判断する。ステップＳ３６１で“ＮＯ”であれば、そのままこの圧縮処理を終了する。
【０１３５】
一方、ステップＳ３６１で“ＹＥＳ”であれば、圧縮処理対象のセンサＩＤを決定し、当該センサデータに対して処理を実行する。具体的には、ステップＳ３６３でセンサデータの変化量を算出する。たとえば、図７に示したように、隣接センサｉ＋１と隣接センサｉ−１の隣接センサ出力データに基づいて、隣接センサに対する当該センサの空間方向の変化量を算出する。また、センサ出力データの履歴から当該センサの時間方向の変化量を算出する。
【０１３６】
そして、ステップＳ３６５で、それぞれの変化量がそれぞれのノイズレベル以下であるか否かを判定する。ステップＳ３６５で“ＹＥＳ”であれば、つまり、空間および時間のいずれか一方で変化量がノイズレベル以下であれば、ステップＳ３６７で、当該センサＩＤのセンサデータを送信しない（マスクする）ことをメモリ２２に記憶する。一方、ステップＳ３６５で“ＮＯ”であれば、当該センサＩＤのセンサデータは送信が必要である（マスクされない）ことをメモリ２２に記憶する。
【０１３７】
続いて、ステップＳ３７１で、全てのセンサＩＤについて処理を実行したか否かを判断し、“ＮＯ”であれば、ステップＳ３６３に戻って、次のセンサＩＤのセンサデータに対して処理を実行する。ステップＳ３７１で“ＹＥＳ”であれば、このノイズレベルのデータ圧縮処理を終了する。
【０１３８】
図２８には、図２３のステップＳ２８３の優先順位判定処理の動作の一例が示される。ステップＳ３８１で、ホスト中継コマンドで受信したデータは、次に送るデータよりも優先度の高いデータであるか否かを判断する。具体的には、センサデータに高優先度のラベル（たとえば、痛い感覚、危ない等）が付与されているか否かを判断するとともに、次に送ろうとしているデータ、すなわち、ホスト側ポートの送信バッファのデータの優先度に高優先度のラベルが設定されていないかどうかを判断する。あるいは、センサデータを受信するたびに、当該受信したセンサデータの優先度を優先度情報に基づいて判定するようにしてもよい。ステップＳ３８１で“ＮＯ”であれば、そのままこの優先順位判定処理を終了し、図２３のステップＳ２８５へ進む。
【０１３９】
一方、ステップＳ３８１で“ＹＥＳ”であれば、ステップＳ３８３で、ホスト側ポート３０の転送データバッファ２８の送信バッファに、当該ホスト中継コマンドを送信する余裕（記憶領域）が存在するか否かを判断する。ステップＳ３８３で“ＮＯ”であれば、ステップＳ３８５で、既に書き込まれている低優先度のデータを送信バッファからメモリ２２へ戻す。また、ステップＳ３８３で“ＹＥＳ”であれば、そのままステップＳ３８７へ進む。そして、ステップＳ３８７で、ホスト側ポートの送信バッファを、当該高優先度のホスト中継コマンドの送信に必要なデータ分だけ空ける。ステップＳ３８７を終了すると、処理は図２３のステップＳ２８５へ進む。こうして、当該高優先度のセンサデータが先に送信されることとなる。したがって、ホストコンピュータ１２は、高優先度の触覚情報を先に受信することができ、たとえば緊急を要する触覚情報を逸早く認識して素早く対応することが可能になる。
【０１４０】
経路確保する際のノード１４間通信の処理の流れを図２９および図３０に示す。図２９には、たとえばノード１がノード２との経路確保に成功する場合のタイムチャートが示される。
【０１４１】
ノード１は、ステップＳ１６７で経路要求コマンドＲＲＥＱをノード２に送信し、ステップＳ１６９で経路応答待ち処理を開始する。
【０１４２】
ノード２は、ノード１からのコマンドを受信して、ステップＳ７３で経路要求コマンドＲＲＥＱを受信したと判断し、ステップＳ７５で世代番号Ｇｎおよびホップ番号Ｈｎを取得する。続くステップＳ７７で、ノード２は世代番号Ｇｎが同じでないことを確認し、ステップＳ７９でホスト側の経路確保を行い、ステップＳ８１で受信した世代番号Ｇｎを記憶する。つまり、ノード２は当該世代番号Ｇｎを含む経路要求コマンドＲＲＥＱを初めて受信したので、その送信元であるノード１にホスト側経路を確保する。そして、ステップＳ８３で、ノード２は経路応答コマンドＲＲＥＰ＿ｌｏｃａｌ（承諾）をノード１に送信し、ステップＳ８５で経路確保確認コマンドＣＯＮＦＩＲＭ＿ＲＲＥＰ待ち処理を開始する。
【０１４３】
ノード１は、ノード２からのコマンドを受信して、ステップＳ１２１で経路応答コマンドＲＲＥＰ＿ｌｏｃａｌを受信したと判断し、さらにステップＳ１２３で承諾を確認する。そして、ステップＳ１２５で経路確保確認コマンドＣＯＮＦＩＲＭ＿ＲＲＥＰをノード２に送信し、ステップＳ１２７でネットワーク経路応答待ち処理を開始する。
【０１４４】
ノード２は、ノード１からのコマンドを受信して、ステップＳ１６１で経路確保確認コマンドＣＯＮＦＩＲＭ＿ＲＲＥＰを受信したと判断し、ステップＳ１６３で未だ経路が確保されていないことを確認する。そして、ステップＳ１６５でホップ番号Ｈｎを更新し、ステップＳ１６７で経路要求コマンドＲＲＥＱをノード１の接続されたポートを除く全てのポート（図２９の例ではノード３に接続されるポートのみ）に送信し、ステップＳ１６９で経路応答待ち処理を開始する。以降のノード２とノード３との間の通信は、経路確保に成功する場合には、図２９のノード１とノード２との間の通信と同様に進むこととなる。
【０１４５】
一方、図３０には、たとえばノード１がノード２との経路確保に失敗する場合のタイムチャートが示される。ノード１は、ステップＳ１６７で経路要求コマンドＲＲＥＱをノード２に送信し、ステップＳ１６９で経路応答待ち処理を開始する。
【０１４６】
ノード２は、ノード１からのコマンドを受信して、ステップＳ７３で経路要求コマンドＲＲＥＱを受信したと判断し、ステップＳ７５で世代番号Ｇｎおよびホップ番号Ｈｎを取得する。続くステップＳ７７で、ノード２は世代番号Ｇｎが同じであることを確認する。つまり、ノード２は当該世代番号Ｇｎを含む経路要求コマンドＲＲＥＱを既に他のノードから受信しているので、ノード１の経路要求を拒否する。したがって、ノード２は、ステップＳ８７で、経路応答コマンドＲＲＥＰ＿ｌｏｃａｌ（拒否）をノード１に送信する。
【０１４７】
ノード１は、ノード２からのコマンドを受信して、ステップＳ１２１で経路応答コマンドＲＲＥＰ＿ｌｏｃａｌを受信したと判断する。さらにステップＳ１２３で拒否を確認して、ステップＳ１３１でノード２の接続されたポートから経路応答コマンド（拒否）を受信したことを記憶する。
【０１４８】
この後、ノード１が、経路応答コマンド（承諾）を受信することなくタイムアウトになった場合、あるいは経路要求を送信した全てのポート３０から経路応答コマンド（拒否）を受信した場合には、図１８に示したように、ノード１は、自分がネットワークの端末になると判定し、自分の経路データを生成して、ネットワーク経路応答コマンドをホスト側経路であるホスト側のポート３０に向けて送信する。したがって、このノード１の経路上のホスト側に位置するノードは、図１９に示したように、ネットワーク経路応答コマンドを受信して、受信した経路データと自分の経路データとを結合してネットワーク経路データを生成する。そして、当該ノードは、経路応答の承諾を受けた全てのポート３０からネットワーク経路応答コマンドを受け取ったと判定される場合には、生成したネットワーク経路データをホスト側のポート３０に向けて送信する。このようにして、ホストコンピュータ１２にネットワーク全体の経路を示す経路データが送信されることとなる。
【０１４９】
この実施例によれば、ノード１４間の相互接続による通信によって、自己組織化可能で頑丈かつ簡単な情報伝達経路を構築することができる。そして、ノード１４の境界で隣接する触覚センサ１６の出力をノード１４間で相互に通信し、各ノード１４において触覚センサ出力データの空間方向圧縮、時間方向圧縮、あるいはノイズレベル圧縮などを行うことができるので、ホストコンピュータ１２に転送するセンサデータ量を減少させることができる。したがって、転送のボトルネックが発生するのを回避することができるとともに、ホストコンピュータ１２での情報処理の負荷を軽減することができる。
【０１５０】
発明者等は上述の実施例のセンサネットワーク１０におけるデータ圧縮方法の有効性を検証した。その実験では、複数の触覚センサ１６は図３１に示すように配置された。各触覚センサエレメント（ＰＶＤＦ）１６は、３０ｍｍ×３０ｍｍの大きさを有し、約５ｍｍ間隔程度で１ｍｍのウレタンスポンジ上に並べられ、厚さ１ｍｍのシリコンシートで覆われている。センサデータはノードからＰＣに読み込まれた。サンプリングは１００Ｈｚで行い、測定レンジは−５１２から５１２であり０は基準点である。
【０１５１】
センサデバイスの中央を「手の平で１から２秒間隔で軽く押さえた」場合と、「腕で１から２秒間隔で軽く押さえた」場合の２つの触り方で得られたセンサデータについて、上述の空間方向の圧縮方法を適用した結果が図３２および図３３にそれぞれ示される。図３１のセンサ＿７のセンサデータについての結果を示していて、各図の（Ａ）は圧縮前の反応（生データ）であり、（Ｂ）は圧縮法の適応結果である。横軸は時間、縦軸はセンサ反応値である。マスク範囲を決めるパラメータｋの値は１に設定され、ノイズレベルＮの値は４に設定された。約１０秒間のデータで圧縮率（元のデータに対するマスクされたデータの割合）は、図３２に示す手の平の場合で９１．５％となり、図３３に示す腕の場合で８３．４％となった。このように、センサ出力の８〜９割が圧縮されるのは、周囲のセンサ１６が同等のセンサ値を出力しているからである。全体としてホストコンピュータ１２に送信される情報は、触覚出力の変化領域の輪郭ということになる。
【０１５２】
また、図示は省略するが、上述の時間方向の外挿による圧縮方法を同じデータに適応したところ、圧縮率は１０〜４０％となった。この１次線形外挿による圧縮はノイズ低減に効果的である。
【０１５３】
なお、上述の実施例では、ホストコンピュータ１２が各ノード１４に識別番号を送信したことに応じて各ノード１４は触覚情報をホスト中継コマンドを用いてホスト宛に送信するようにしていた。しかし、他の実施例では、ネットワーク経路応答コマンドを用いて、経路データとともにセンサデータを送信するようにしてもよい。つまり、図１０（Ａ）に示したように、自分の経路データは、任意のデータを登録できるａｎｙｔｈｉｎｇ領域を含むので、各ノード１４は、このａｎｙｔｈｉｎｇ領域に、マスクしない触覚情報を書き込んだ経路データを生成して、当該データをネットワーク経路応答コマンドで送信するようにしてよい。
【０１５４】
この他の実施例では、ホストコンピュータ１２の送信する経路確保確認コマンドが触覚情報送信要求を兼ねることとなり、ホストコンピュータ１２は、図１１のステップＳ１１でネットワーク経路応答コマンドを受信することによって、ステップＳ１３で経路データとともに触覚情報を取得することができる。
【０１５５】
また、各ノード１４は、たとえば図１５のステップＳ１２９または図１８のステップＳ１８９で自分の経路データを生成する際に、図２４のステップＳ３０３の判定、ステップＳ３０５のデータ圧縮処理およびステップＳ３０７の判定を実行して、マスクしない触覚情報を自分の経路データのａｎｙｔｈｉｎｇ領域に登録する。そして、図１８のステップＳ１９１または図１９のステップＳ２０７で、ネットワーク経路応答コマンドを用いて、触覚情報を含む経路データを送信する。
【０１５６】
また、上述の各実施例では、ホスト宛に送信される触覚情報はセンサ出力値であったが、センサ出力値に基づくラベルデータのみを触覚情報として送信してもよい。たとえば、各ノード１４は、上述の優先度の設定（ステップＳ３０９）と同様にして、メモリ２２に記憶されたセンサ出力値（またはセンサ出力値の経時変化）とラベルとを関連付けたテーブルデータに基づいて、センサ出力データに対して、痛い感覚を示すデータ、撫でられていることを示すデータ、あるいは叩かれていることを示すデータといったラベリングを行う。そして、ノード１４は触覚情報としてそのラベルデータのみを送信する。ホストコンピュータ１２は触覚情報をラベルデータで記憶する。
【図面の簡単な説明】
【０１５７】
【図１】この発明の一実施例の皮膚センサネットワークの概要を示す図解図である。
【図２】ノードの電気的構成の一例を示すブロック図である。
【図３】皮膚とその中に埋め込まれる触覚センサエレメントの一部を示す図解図である。
【図４】図１実施例の経路確保の概要を示す図解図であり、（Ａ）はホストコンピュータからの経路確保要求の伝達を示し、（Ｂ）は確立された経路の一例を示し、（Ｃ）は断線時に再構築された経路の一例を示す。
【図５】センサ情報の空間での圧縮方法の概要を示す図解図である。
【図６】センサ情報の時間軸方向の圧縮方法の概要を示す図解図である。
【図７】ノイズ除去の概要を示す図解図である。
【図８】ノードのメモリのメモリマップの一例の一部を示す図解図である。
【図９】隣接センサ位置情報の内容の一例を示す図解図である。
【図１０】ノードで生成される経路データの内容の一例を示す図解図であり、図１０（Ａ）は自分の経路データを示し、図１０（Ｂ）はホスト側へ送信する経路データを示す。
【図１１】図１実施例のホストコンピュータの動作の一例を示すフロー図である。
【図１２】図１実施例の各ノードの動作の一例を示すフロー図である。
【図１３】図１２のコマンド処理の動作の一例の一部を示すフロー図である。
【図１４】図１３の経路確保確認コマンド待ち処理の動作の一例を示すフロー図である。
【図１５】図１３の続きの一部を示すフロー図である。
【図１６】図１５のネットワーク経路応答コマンド待ち処理の動作の一例を示すフロー図である。
【図１７】図１５の続きの一部を示すフロー図である。
【図１８】図１７の経路要求応答待ち処理の動作の一例を示すフロー図である。
【図１９】図１７の続きの一部を示すフロー図である。
【図２０】図１９の続きの一部を示すフロー図である。
【図２１】図２０の続きの一部を示すフロー図である。
【図２２】図２１の続きの一部を示すフロー図である。
【図２３】図２２の続きの一部を示すフロー図である。
【図２４】図２１のセンサデータの送信処理の動作の一例を示すフロー図である。
【図２５】図２４のデータ圧縮処理（空間方向）の動作の一例を示すフロー図である。
【図２６】図２４のデータ圧縮処理（時間方向）の動作の一例を示すフロー図である。
【図２７】図２４のデータ圧縮処理（ノイズレベル）の動作の一例を示すフロー図である。
【図２８】図２３の優先順位判定処理の動作の一例を示すフロー図である。
【図２９】ルーティングのためのノード間通信によってノード１が経路確保する場合の動作の一例を示すタイムチャートである。
【図３０】ルーティングのためのノード間通信によってノード１が経路確保に失敗する場合の動作の一例を示すタイムチャートである。
【図３１】実験における触覚センサの配置を示す図解図である。
【図３２】実験において手の平で軽く押さえたときの７番のセンサのセンサデータの一例を示す図解図であり、（Ａ）は圧縮前のオリジナルデータを示し、（Ｂ）は圧縮後のデータを示す。
【図３３】実験において腕で軽く押さえたときの７番のセンサのセンサデータの一例を示す図解図であり、（Ａ）は圧縮前のオリジナルデータを示し、（Ｂ）は圧縮後のデータを示す。
【符号の説明】
【０１５８】
１０  …皮膚センサネットワーク
１２  …ホストコンピュータ
１４  …ノード
１６  …触覚センサ
２０  …ＣＰＵ
２２  …メモリ
２６  …Ａ／Ｄ変換器
３０  …通信ポート
【図１】
2006287520.tif 000003
【図２】
2006287520.tif 000004
【図３】
2006287520.tif 000005
【図４】
2006287520.tif 000006
【図５】
2006287520.tif 000007
【図６】
2006287520.tif 000008
【図７】
2006287520.tif 000009
【図８】
2006287520.tif 000010
【図９】
2006287520.tif 000011
【図１０】
2006287520.tif 000012
【図１１】
2006287520.tif 000013
【図１２】
2006287520.tif 000014
【図１３】
2006287520.tif 000015
【図１４】
2006287520.tif 000016
【図１５】
2006287520.tif 000017
【図１６】
2006287520.tif 000018
【図１７】
2006287520.tif 000019
【図１８】
2006287520.tif 000020
【図１９】
2006287520.tif 000021
【図２０】
2006287520.tif 000022
【図２１】
2006287520.tif 000023
【図２２】
2006287520.tif 000024
【図２３】
2006287520.tif 000025
【図２４】
2006287520.tif 000026
【図２５】
2006287520.tif 000027
【図２６】
2006287520.tif 000028
【図２７】
2006287520.tif 000029
【図２８】
2006287520.tif 000030
【図２９】
2006287520.tif 000031
【図３０】
2006287520.tif 000032
【図３１】
2006287520.tif 000033
【図３２】
2006287520.tif 000034
【図３３】
2006287520.tif 000035