(57)【特許請求の範囲】
【請求項１】
全身に分布された複数の触覚センサエレメントが接続された複数のノードを含む触覚センサおよびホストコンピュータを備えるコミュニケーションロボットであって、
前記複数のノードのそれぞれは、
触覚インタラクション時の前記触覚センサの時系列データを用いて算出された前記複数の触覚センサエレメント間の相互相関を表す特徴ベクトルから部分空間法によって構成されかつ各触覚インタラクションの種類を識別するための識別関数を示す識別関数データ、および認識対象の触覚インタラクションについて前記識別関数の出力の計算のための各触覚センサエレメントの時系列データの転送経路を示す転送経路データを記憶する記憶手段、
所属する各触覚センサエレメントの時系列データを検出する検出手段、
前記転送経路データに基づいて、前記検出手段で検出した前記時系列データを他のノードに送信する第１送信手段、
他のノードの前記各触覚センサエレメントの時系列データを受信する受信手段、
前記検出手段で検出した前記時系列データ、前記受信手段で受信した前記時系列データおよび前記識別関数データに基づいて、認識対象の触覚インタラクションの識別関数の出力を算出する算出手段、および
前記算出手段によって算出された識別関数の出力を前記ホストコンピュータに送信する第２送信手段を備え、
前記ホストコンピュータは、各ノードから受信した前記識別関数の出力に基づいて、触覚インタラクションの識別を行う識別手段を備える、コミュニケーションロボット。
【請求項２】
前記記憶手段は、前記各触覚センサエレメントの時系列データの転送量を示す転送量データをさらに記憶し、
前記第１送信手段は、前記時系列データを前記転送量データの転送量で送信する、請求項１記載のコミュニケーションロボット。
【請求項３】
請求項１記載のコミュニケーションロボットのための前記識別関数の作成方法であって、
（ａ）触覚インタラクション時の前記触覚センサの時系列データを蓄積し、
（ｂ）前記触覚センサの時系列データを用いて算出された前記複数の触覚センサエレメント間の相互相関を表す特徴ベクトルを算出し、そして
（ｃ）前記特徴ベクトルから部分空間法により各触覚インタラクションの識別関数を構成する、触覚インタラクションの識別関数の作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はコミュニケーションロボットに関し、特にたとえば、全身に分布された複数の触覚センサエレメントを備えるコミュニケーションロボットに関する。また、この発明は、そのようなコミュニケーションロボットのための触覚インタラクションの識別関数の作成方法に関する。
【背景技術】
【０００２】
人とのコミュニケーションを目指すロボットにとって、全身を柔らかい素材で構成された皮膚と敏感な触覚で覆うことは、接触によって危害を加える危険性を減少させるという点で重要な要素の１つとなるだけでなく、ロボットと人間とが円滑にコミュニケーションを行うためには、全身分布型の高感度超柔軟性触覚センサに基づく触行動認識が必要不可欠になる。
【０００３】
これまでのロボットの触覚に関する研究は、物体の把持や操りに関するものが多く、全身に高密度で柔軟な触覚センサエレメントが分布することで引き起こされる技術的な困難さはあまり考慮されてこなかった。触覚センサエレメントの配線や実装に起因する問題だけではなく、第１に高密度化に伴うシステムの故障率の増加、第２にセンサエレメントの高密度化に伴う情報量の増加、第３にセンサエレメントの管理が困難になるという、３つの課題が生まれてくる。
【０００４】
本出願人は、コミュニケーションロボットの全身触覚の実現を目指し、第１の課題の断線やノードの故障に柔軟に対応できる自己組織化可能なセンサネットワークを提案した（たとえば特許文献１参照）。ネットワークのノードは複数の触覚センサエレメントとセンサ値読み取り装置および演算装置から構成され、それらを相互接続することで、触覚情報に対して継ぎ目のない分散処理が可能であり、これにより第２の課題を解決できる。
【特許文献１】特開２００６−２８７５２０号公報[H04L 12/56, G06F 13/36]
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような分散処理を行うには、人間が実際に起こる触覚インタラクションを予見して、その情報を分散処理できるようなプログラムを各ノードに記述する必要がある。その記述自体が困難であるばかりか、自由度をもつロボットの体表面相対位置は変化するため、どのセンサの組み合わせで分散処理を行えばよいかを決定することはできない。したがって、第３の課題としての大量の触覚センサエレメントの管理方法が、ロボットの全身分布触覚には特有の問題となる。
【０００６】
それゆえに、この発明の主たる目的は、新規な、コミュニケーションロボット、および触覚インタラクションの識別関数の作成方法を提供することである。
【０００７】
この発明の他の目的は、触覚情報の分散処理を実現できる、コミュニケーションロボット、およびそのようなコミュニケーションロボットのための触覚インタラクションの識別関数の作成方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
第１の発明は、全身に分布された複数の触覚センサエレメントが接続された複数のノードを含む触覚センサおよびホストコンピュータを備えるコミュニケーションロボットであって、複数のノードのそれぞれは、触覚インタラクション時の触覚センサの時系列データを用いて算出された複数の触覚センサエレメント間の相互相関を表す特徴ベクトルから部分空間法によって構成されかつ各触覚インタラクションの種類を識別するための識別関数を示す識別関数データ、および認識対象の触覚インタラクションについて識別関数の出力の計算のための各触覚センサエレメントの時系列データの転送経路を示す転送経路データを記憶する記憶手段、所属する各触覚センサエレメントの時系列データを検出する検出手段、転送経路データに基づいて、検出手段で検出した時系列データを他のノードに送信する第１送信手段、他のノードの各触覚センサエレメントの時系列データを受信する受信手段、検出手段で検出した時系列データ、受信手段で受信した時系列データおよび識別関数データに基づいて、認識対象の触覚インタラクションの識別関数の出力を算出する算出手段、および算出手段によって算出された識別関数の出力をホストコンピュータに送信する第２送信手段を備え、ホストコンピュータは、各ノードから受信した識別関数の出力に基づいて、触覚インタラクションの識別を行う識別手段を備える、コミュニケーションロボットである。
【００１０】
第１の発明では、コミュニケーションロボット（１０）は、全身分布型の触覚センサ（７６）およびホストコンピュータ（６０）を含む。触覚センサは、複数の触覚センサエレメント（５８）が接続される複数のノード（８０）を含み、つまり、センサネットワークを構成している。各ノードは、記憶手段（プロセッサユニット８６の内蔵メモリ）を備えており、この記憶手段には、少なくとも識別関数データおよび転送経路データが記憶される。識別関数データは、各触覚インタラクションの識別関数を示すデータであり、実施例の近似識別関数テーブルＤＦ＊または識別関数テーブルＤＦに対応する。各触覚インタラクションの識別関数は、触覚インタラクション時の触覚センサの時系列データを用いて算出された複数の触覚センサエレメント間の特徴ベクトルから部分空間法によって構成される。また、転送経路データは、認識対象の触覚インタラクションについて識別関数の出力の計算のための各触覚センサエレメントの時系列データの転送経路を示す。つまり、この転送経路データでは、各触覚センサエレメントの時系列データをどの経路で通信してどのノードに集めるかが示されている。各ノードでは、検出手段（８６、８８、９０、Ｓ４０７）により、当該ノードに所属する各触覚センサエレメントの時系列データを検出する。そして、第１送信手段（８６、Ｓ４０９、Ｓ５０３）により、転送経路データに基づいて、各触覚センサエレメントの時系列データを他のノードに送信する。これに応じて、各ノードでは、受信手段（８６、Ｓ４０９、Ｓ５０７）により、他のノードの触覚センサエレメントの時系列データを受信できる。したがって、各ノードでは、算出手段（８６、Ｓ４１５、Ｓ４１７）により、検出手段で検出した当該ノードに所属する触覚センサエレメントの時系列データ、受信手段で受信した他のノードに所属する触覚センサエレメントの時系列データ、および識別関数データに基づいて、認識対象の触覚インタラクションの識別関数の出力を算出することができる。算出された識別関数の出力は、第２送信手段（８６、Ｓ４１９）により、ホストコンピュータに送信される。したがって、ホストコンピュータは、各ノードからの識別関数の出力を受信して、識別手段（６０、Ｓ３１９−Ｓ３２５）により、触覚インタラクションの識別を行うことができ、具体的には、認識対象の触覚インタラクションが行われたのか、あるいは予期しない入力があったのか等を認識することができる。
【００１１】
第１の発明によれば、各ノードに識別関数データおよび転送経路データを記憶しているので、転送経路データに基づいて触覚センサエレメントの時系列データをノード間で送受信することによって、各ノードで触覚インタラクションの識別関数の出力を算出することができる。そして、ホストコンピュータで、各ノードからの識別関数の出力に基づいて、触覚インタラクションの識別を行うことができる。このように、各ノードにおいて触覚情報の分散処理を実行して、触覚インタラクションの識別を行うことができる。
【００１２】
第２の発明は、第１の発明に従属するコミュニケーションロボットであって、記憶手段は、各触覚センサエレメントの時系列データの転送量を示す転送量データをさらに記憶し、第１送信手段は、時系列データを転送量データの転送量で送信する。
【００１３】
第２の発明では、記憶手段には、転送量データがさらに記憶されている。転送量データは、各触覚センサエレメントの時系列データの転送量を示し、これはネットワーク帯域の許容範囲内に収められている。第１送信手段により、転送量データに示された転送量を有する時系列データが他のノードに送信される。したがって、各ノードでの識別関数の出力の計算に必要な触覚センサエレメントの時系列データのノード間の通信を、許容範囲内の転送量で実行することができ、分散処理を実行する際の通信負荷を適切に抑制することができる。
【００１４】
第３の発明は、第１発明のコミュニケーションロボットのための前記識別関数の作成方法であって、（ａ）触覚インタラクション時の触覚センサの時系列データを蓄積し、（ｂ）前記触覚センサの時系列データを用いて算出された前記複数の触覚センサエレメント間の相互相関を表す特徴ベクトルを算出し、そして（ｃ）前記特徴ベクトルから部分空間法により各触覚インタラクションの識別関数を構成する、触覚インタラクションの識別関数の作成方法。である。
【００１５】
第３の発明によれば、触覚センサエレメントの時系列データから触覚インタラクションを識別可能にする識別関数を作成することができる。
【発明の効果】
【００１６】
この発明によれば、人間との触覚インタラクション時の触覚センサの時系列データから部分空間法により構成された各触覚インタラクションの識別関数が各ノードに記憶されるので、各ノードで識別関数の出力を算出することができ、そして、ホストコンピュータで触覚インタラクションの識別を行うことができる。したがって、複数の触覚センサエレメントで全身を覆われたコミュニケーションロボットにおいて、触覚情報の分散処理を実現することができる。
【００１７】
また、部分空間法により触覚インタラクション時の触覚センサの時系列データから触覚インタラクションの識別関数を構成することができるので、触覚情報の分散処理を行えるコミュニケーションロボットを実現できる。
【００１８】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１９】
図１は、この発明の実施例のコミュニケーションロボット（以下、単に「ロボット」ともいう。）１０を示す。ロボット１０は台車１２を含み、この台車１２の側面には、このロボット１０を自律移動させる車輪１４が設けられる。この車輪１４は、車輪モータ（図３において参照番号「１６」で示す。）によって駆動され、台車１２すなわちロボット１０を前後左右任意の方向に動かすことができる。なお、図示しないが、この台車１２の前面には、衝突センサが取り付けられ、この衝突センサは、台車１２への人間や他の障害物の接触を検知する。
【００２０】
台車１２の上には、多角形柱状のセンサ取付パネル１８が設けられ、このセンサ取付パネル１８の各面には、超音波距離センサ２０が取り付けられる。この実施例ではたとえば２４個の超音波距離センサ２０が周囲３６０度にわたるように設けられる。この超音波距離センサ２０は、センサ取付パネル１８すなわちロボット１０の周囲の主として人間との距離を計測するものである。具体的には、超音波距離センサ２０は超音波を発射し、その超音波が人から反射されて超音波距離センサ２０に入射されたタイミングを測定して、人との間の距離情報を出力する。
【００２１】
台車１２の上には、人体状部２２が直立するように取り付けられる。このロボット本体としての人体状部２２の全身は、後に詳しく説明するように、柔軟素材からなる皮膚２４によって覆われる。人体状部２２は、たとえば鉄板のような筐体（図示せず）を含み、その筐体にコンピュータやその他必要なコンポーネントを収容している。そして、皮膚２４は、その筐体上に被せられる。皮膚２４の下の筐体の上部ほぼ中央にはマイク２６が設けられる。このマイク２６は、周囲の音声、特に人間の声を収集するためものである。
【００２２】
人体状部２２は、右腕２８Ｒおよび左腕２８Ｌを含み、右腕２８Ｒおよび左腕２８Ｌすなわち上腕３０Ｒおよび３０Ｌは、それぞれ、肩関節３２Ｒおよび３２Ｌによって、胴体部分に変位自在に取り付けられる。この肩関節３２Ｒおよび３２Ｌは、３軸の自由度を有する。上腕３０Ｒおよび３０Ｌには、１軸の肘関節３４Ｒおよび３４Ｌによって、前腕３６Ｒおよび３６Ｌが取り付けられ、この前腕３６Ｒおよび３６Ｌには、手３８Ｒおよび３８Ｌが取り付けられる。これら右腕２８Ｒおよび左腕２８Ｌの各関節における各軸はここでは図示しないモータによってそれぞれ制御される。すなわち、右腕２８Ｒおよび左腕２８Ｌのそれぞれ４個のモータが、図３において、それぞれ右腕モータ４０および左腕モータ４２として表される。
【００２３】
人体状部２２の上部には首関節４４を介して頭部４６が、人間の頭と同様に俯仰・回転可能に取付けられる。この３軸の首関節４４は、図３に示す頭部モータ４８によって制御される。頭部４６の前面の「目」に相当する位置には２つの眼カメラ５０が設けられ、この眼カメラ５０は、ロボット１０に接近した人間の顔や他の部分を撮影してその映像信号を取り込む。頭部４６の前面の目カメラ５０の下方にはスピーカ５２が設けられる。このスピーカ５２は、ロボット１０がそれの周囲の人間に対して音声によってコミュニケーションを図るために用いられる。
【００２４】
上で説明した人体状部２２の胴体や頭部４６および腕は上記したようにすべて柔軟な素材からなる皮膚２４に覆われる。この皮膚２４は、図２に示すように、下層のウレタンフォーム５４と、その上に積層される比較的肉厚のシリコーンゴム層５６ａおよび比較的肉薄のシリコーンゴム層５６ｂとを含む。そして、２つのシリコーンゴム層５６ａおよび５６ｂの間に、ピエゾセンサシート５８が埋め込まれる。このピエゾセンサシート５８は、圧電フィルム（たとえばＰＶＤＦ（ポリビニリデンフルオロイド））の両面に金属薄膜が形成された構造、つまり、圧電体が導体で挟まれた構造を有する圧電センサである。ピエゾフィルムは、圧力等で変形されると、両面金属薄膜間にピエゾ電気を発生し、すなわち、そのひずみ速度に応じた電圧を発生する。ピエゾフィルムは、たとえば、３０×３０ｍｍ程度の大きさにカットされ、約５ｍｍの間隔で皮膚２４中に配置される。
【００２５】
皮膚２４では、上述のように、発泡ウレタンとシリコーンゴムとを使って柔らかさを得るようにしている。シリコーンゴムだけである程度の厚みと柔らかさとを得ようとすると、重くなりすぎてエネルギ消費量が大きくなるだけでなく、裂傷に弱くなるので、大まかな形と厚みをウレタンフォームで作り、その表面を約２０ｍｍのシリコーンゴムで覆う形が採用されている。そして、シリコーンゴム層を２つにし、それらのシリコーンゴム層５６ａおよび５６ｂの間に、上述のピエゾセンサシート５８が埋め込まれる。さらに、内側のシリコーンゴム層５６ａが厚く（約１５ｍｍ）され、表面側のシリコーンゴム層５６ｂが薄く（約５ｍｍ）される。これによって、ロボット１０の振動や人間が表面を押したときに生じる高周波の振動をカットでき、なおかつフィルムが変形し易くなるので、圧力の計測が容易になる。つまり、シリコーンゴム層の厚みはロボット１０の構造やパワーによるが、なるべく薄く、しかし変形が伝わり易く、雑音となる振動が伝わり難いものが必要となる。また、この柔らかい皮膚を介して、人との間で触行動によるコミュニケーションを行うことができるので、人に対して安心感を与えて親和性を高めることができるし、触れたりぶつかったりした場合の人の怪我を防止して安全性も高めることができる。
【００２６】
なお、皮膚２４の素材は軟性素材であればよく、上述のものに限定されずたとえば他のゴム素材等でもよい。ただし、ピエゾセンサシートの表面金属薄膜が腐食しない材質である必要がある。また、上述の皮膚２４の厚み（各層の厚み）は一例であり、素材等によって適宜変更され得る。また、皮膚２４の積層構造も適宜変更可能である。
【００２７】
このように、人体状部２２の全身にわたって多数のピエゾセンサシート（触覚センサエレメント）５８が埋め込まれており、全身分布型の高密度で超柔軟の触覚センサ（図３において参照符号「７６」で示す。）が構築されている。後述するように、触覚センサ７６は、複数のノード８０（図４参照）を含むセンサネットワークで構成されており、各ノード８０は、複数の触覚センサエレメント５８、センサ値読取装置および演算装置等を備えている。この触覚センサ７６によって、ロボット１０の全身において人間や物の接触によって皮膚２４に加えられた圧力を圧覚（触覚）情報として検知することができる。
【００２８】
図１に示すロボット１０の電気的構成の一例が図３のブロック図に示される。図３に示すように、このロボット１０は、全体の制御のためにマイクロコンピュータまたはＣＰＵ６０を含み、このＣＰＵ６０には、バス６２を通して、メモリ６４，モータ制御ボード６６，センサ入力／出力ボード６８およびサウンド入力／出力ボード７０が接続される。
【００２９】
メモリ６４は、図示しないが、ＲＯＭやＨＤＤ、ＲＡＭ等を含む。ＲＯＭやＨＤＤ等にはこのロボット１０の制御プログラムが予め書き込まれている。制御プログラムはたとえばコミュニケーション行動を実行するためのプログラム、外部のコンピュータと通信するためのプログラム等を含む。メモリ６４にはまた、コミュニケーション行動を実行するためのデータが記憶され、そのデータは、たとえば、個々の行動を実行する際に、スピーカ５２から発生すべき音声または声の音声データ（音声合成データ）、および所定の身振りを提示するための各関節軸の角度制御データ等を含む。ＲＡＭは、一時記憶メモリおよびワーキングメモリとして利用される。
【００３０】
モータ制御ボード６６は、たとえばＤＳＰ(Digital Signal Processor)で構成され、各腕や頭部などの各軸モータを制御する。すなわち、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、右肩関節３２Ｒの３軸のそれぞれの角度を制御する３つのモータと右肘関節３４Ｒの１軸の角度を制御する１つのモータとの計４つのモータ（図３ではまとめて、「右腕モータ」として示す。）４０の回転角度を調節する。また、モータ制御ボード６６は、左肩関節３２Ｌの３軸と左肘関節３４Ｌの１軸、計４つのモータ（図３ではまとめて、「左腕モータ」として示す。）４２の回転角度を調節する。モータ制御ボード６６は、また、頭部４６を変位させる首関節４４の３軸のモータ（図３ではまとめて、「頭部モータ」として示す。）４８の回転角度を調節する。そして、モータ制御ボード６６は、車輪１４を駆動する２つのモータ（図３ではまとめて、「車輪モータ」として示す。）１６を制御する。
【００３１】
なお、この実施例の上述のモータは、車輪モータ１６を除いて、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、車輪モータ１６と同様に、直流モータであってよい。
【００３２】
センサ入力／出力ボード６８も、同様に、ＤＳＰで構成され、各センサやカメラからの信号を取り込んでＣＰＵ６０に与える。すなわち、図示しない衝突センサの各々からの接触に関するデータがこのセンサ入力／出力ボード６８を通して、ＣＰＵ６０に入力される。また、眼カメラ５０からの映像信号が、必要に応じてこのセンサ入力／出力ボード６８で所定の処理が施された後、ＣＰＵ６０に入力される。
【００３３】
また、触覚センサ７６が、このセンサ入力／出力ボード６８に接続されており、ＣＰＵ６０と触覚センサ７６はセンサ入力／出力ボード６８を介してデータを送受信する。
【００３４】
サウンド入力／出力ボード７０には、スピーカ５２およびマイク２６が接続される。スピーカ５２にはサウンド入力／出力ボード７０を介して、ＣＰＵ６０から、合成音声データが与えられ、それに応じて、スピーカ５２からはそのデータに従った音声または声が出力される。また、マイク２６からの音声入力が、サウンド入力／出力ボード７０を介して、ＣＰＵ６０に取り込まれる。
【００３５】
また、ＣＰＵ６０には、バス６２を介して通信ＬＡＮボード７２および無線通信装置７４が接続される。この通信ＬＡＮボード７２および無線通信装置７４によって、ロボット１０は外部のコンピュータ等と無線通信を行うことができる。具体的には、通信ＬＡＮボード７２は、ＤＳＰで構成され、ＣＰＵ６０からの送信データを無線通信装置７４に与え、無線通信装置７４から送信データを、図示は省略するが、たとえば無線ＬＡＮまたはインタネットのようなネットワークを介して、外部のコンピュータに送信させる。また、通信ＬＡＮボード７２は、無線通信装置７４を介して外部のコンピュータからのデータを受信し、受信したデータをＣＰＵ６０に与える。
【００３６】
さらに、ＣＰＵ６０には、バス６２を介して触覚インタラクションデータベース７８が接続される。この触覚インタラクションデータベース７８には、ロボット１０と人間との間で行われた触覚インタラクションの際に触覚センサ７６によって検出されたセンサ時系列データ等が記憶されている。触覚インタラクションデータベース７８のデータを元に、触覚インタラクションの識別器や分散処理のための情報が作成される。触覚インタラクションデータベース７８は、後述のように実験により構築される。
【００３７】
触覚センサ７６の電気的構成の一例が図４のブロック図に示される。触覚センサ７６は複数のノード８０を含み、各ノード８０は複数の触覚センサエレメント５８を備えている。複数のノード８０はバス８２を介して相互に接続される。バス８２はたとえばＲＳ４２２シリアルバスであり、センサ入力／出力ボード６８に設けられるシリアル通信ポートに接続されている。このように、複数のノード８０およびＣＰＵ６０がセンサネットワークを構成しており、接続された経路を介して通信を行う。
【００３８】
なお、触覚センサ７６のネットワーク構造は適宜変更可能であり、たとえば、本出願人による上述の特開２００６−２８７５２０号公報に開示されるような相互接続型のセンサネットワークが構築されてもよい。
【００３９】
各ノード８０は基板８４を含み、この基板８４に当該ノード８０に所属する複数の触覚センサエレメント５８が接続される。また、基板８４には、センサ値読取装置としてのＡ／Ｄ変換器８８および増幅器９０、ならびに演算装置としてのプロセッサユニット８６が設けられている。各触覚センサエレメント５８からの配線は増幅器９０に接続されている。
【００４０】
なお、基板８４と所属する各触覚センサエレメント５８との配線長を短くするために、各ノード８０の基板８４は、所属する各触覚センサエレメント５８のなるべく近傍になるように筐体内において配置される。たとえば、２００−３００枚程度の触覚センサエレメント５８がロボット１０の全身の皮膚２４中に分布されており、また、十数枚程度の基板８４が設けられる。各基板８４には数十枚程度の触覚センサエレメント５８が割り当てられる。
【００４１】
各触覚センサエレメント５８の出力信号は、増幅器９０で電流増幅された後、Ａ／Ｄ変換器８８によってディジタルデータに変換される。このＡ／Ｄ変換器８８は、たとえば１６ｂｉｔ、１００Ｈｚの時空間分解能でサンプリングを行う。Ａ／Ｄ変換器８８でサンプリングされたデータはプロセッサユニット８６に与えられる。
【００４２】
プロセッサユニット８６は、ノードプロセッサであり、つまり、当該ノード８０の制御および通信制御を行うマイクロコンピュータである。プロセッサユニット８６は、ＲＯＭおよびＲＡＭなどのメモリを内蔵している。内蔵メモリのＲＯＭにはノード８０の動作を制御するためのプログラムおよびデータが予め記憶される。Ａ／Ｄ変換器８８で読み取られた各触覚センサエレメント５８のセンサ出力データ（時系列データ）は、内蔵メモリのＲＡＭに記憶される。このプロセッサユニット８６により、センサ時系列データの処理を各ノード８０において行うことができる。また、このプロセッサユニット８６が上述のバス８２に接続されており、他のノード８０のプロセッサユニット８６およびＣＰＵ６０との間で通信を行う。
【００４３】
このような全身分布型触覚センサ７６を有するロボット１０における大量の触覚センサエレメント５８の管理という課題に対し、本発明者らは、認識に必要なセンサに注目するための手法を発明した。本手法では、ロボット１０と人間とのコミュニケーションのうち、人間の触行動を伴う触覚インタラクションの際の触覚センサ７６の時系列データを記録し、全センサ間の時系列出力から相関値を算出し、これらを特徴空間とした触覚インタラクションの識別器を構成する。この識別器の出力に有用な部分空間を取り出すことで、各触覚インタラクション識別に有用なセンサの組み合わせを決定することができる。これを、触覚インタラクションに基づく触覚センサエレメントの自己組織化と呼ぶ。
【００４４】
識別器の構成には、部分空間法の１つであるＣＬＡＦＩＣ法(CLAss-Featuring Information Compression)を用いる。ＣＬＡＦＩＣ法は、各クラスの特徴データのＫＬ展開よりクラスごとの部分空間を作成し、その各部分空間に特徴ベクトルを写像し、写像後のノルムが最大になる部分空間を構成するクラスを識別結果として出力する手法である。もともとこの手法は、１９６０年代にWatanabeらが、多数の特徴ベクトルを多次元の特徴空間の中にプロットすると、多くの場合小さな部分空間の中に偏って分布することに着目した［渡辺慧，“認識とパタン”，（岩波新書），岩波書店，1986(絶版)］ことに始まる。相互相関マトリクスの上三角部分より構成する特徴空間は、触覚センサエレメント数をＮとするとＯ(Ｎ２)の超多次元の特徴空間となるため、この場合も特徴ベクトルが小さな部分空間の中に偏って分布することが予想できる。つまり、その小さな部分空間に注目して識別器を構成することによってデータの次元圧縮が期待できる。
【００４５】
本手法ではさらに、選択した正規直交ベクトルと特徴空間の基底ベクトルとの内積が大きいもののみを選択することによりさらなる次元圧縮を試みる。最終的に次元圧縮された空間は、もとの特徴ベクトルを張る基底ベクトルの一部の線形結合和で表せる部分空間となる。その部分空間で構成される識別器の出力は、絶対値の大きい各成分の行と列にあたるセンサエレメント出力のみから近似的に計算可能となる。その組み合わせから分散処理におけるセンサエレメントの境界を決定することができる。
【００４６】
識別器の特徴空間は、相互相関マトリクスの上三角行列部分をベクトル化したものを用いる。つまり、特徴ベクトルａは、Ｎ個ある触覚センサエレメントのうち(ｉ，ｊ)間の相互相関係数Ｒｉｊ（ｉ＜ｊ，対称成分を除く上三角行列部分）より次の数１のように定義される。
【００４７】
【数１】
0005103589.tif 000002
【００４８】
なお、Ｐ個のセンサエレメントが、ある等間隔の離散時間でサンプリングされ、ｉ番目の離散時系列データベクトルとしてＳｉ(ｉ＝１，…，Ｐ)が得られたとする。このとき、ｉ番目とｊ番目のセンサの相互相関係数Ｒｉｊは共分散をＣｉｊ（Ｓｉ，Ｓｊ）とすると次の数２で求められる。
【００４９】
【数２】
0005103589.tif 000003
【００５０】
特徴ベクトルａに触覚インタラクションのクラス（種類）ｃ（これをωＣと表す）を関連づけ、それを列成分として並べたデータセットをＸＣとして準備する。部分空間法より構成される任意のクラスの識別関数は、データセットＸを次の数３のように特異値分解した結果を用いることができる。
【００５１】
【数３】
0005103589.tif 000004
【００５２】
ここで、Ｕは正規直交ベクトルｕ1,ｕ2,…,ｕrを並べた行列であり、左特異ベクトルと呼ばれ、ＫＬ展開で求まる各固有値に対応する固有ベクトルに相当する。Ｖは右特異ベクトル、Ｄλは特異値λ1,…,λrを対角要素にもつ対角行列である。
【００５３】
これより未知ベクトルｘに対する各クラスの識別関数出力ＤＦｉ（ｘ）は、正規直交ベクトルｕｉｊを特異値の大きいものから順にd１,d２,…,dｉまで採用し、次の数４のように表すことができる。
【００５４】
【数４】
0005103589.tif 000005
【００５５】
ここで、dｉは累積寄与率に関する閾値Ｃ１をもとに決定する。つまり、閾値Ｃ１により、部分空間を構成するベクトルの上位何番目までを採用するかが決められる。
【００５６】
本手法では、さらにリジェクト領域を導入する方法としてWatanabeらのいう忠実度τを用いた基準を多クラス問題に拡張して導入し、次の数５の関係式が成り立たない場合には、どのクラスにも属さないリジェクトと判定する。つまり、各クラスの識別関数出力のうちクラスｌが最大であるとき、
【００５７】
【数５】
0005103589.tif 000006
【００５８】
上述のように導出した識別関数から特徴空間を構成する基底のうち、出力に有用な部分空間を決定する。これは、識別関数により基底の重みが表されている点に注目した、Ishiguroら［Hiroshi Ishiguro, Masatoshi Kamiharako and Toru Ishida,“State Space Construction by Attention Control”, International Joint Conference on Artificial Intelligence (IJCAI-99), pp. 1131-1137, 1999.］のいうアテンションコントロールと共通している。
【００５９】
ｕｉｊのｐ番目の成分（ｕｉｊ）ｐがほぼ０である場合に、（ｕｉｊ）ｐ＝０とした新たなベクトル~ｕｉｊを作る。すなわち、０に十分近い適当な閾値Ｃ２を決め、絶対値がＣ２より小さいｕｉｊの成分を０とした新たなベクトルｕ＊ｉｊを作る。ただし、次の数６の関係が成立する。この閾値Ｃ２により、どの触覚センサエレメントの組に注目するかが決められる。
【００６０】
【数６】
0005103589.tif 000007
【００６１】
このｕ＊ｉｊに対して、ｕ＊ｉｊの正規直交性（数７）を近似的に仮定する。
【００６２】
【数７】
0005103589.tif 000008
【００６３】
識別関数ＤＦ＊ｉ(ｘ)は最終的に次の数８で表される。
【００６４】
【数８】
0005103589.tif 000009
【００６５】
最終的な識別関数であるＤＦ＊ｉ(ｘ)は、数８より、未知のベクトルｘとｕ＊ｉｊの内積の形をしている。そのため、この内積を求めるにはｘの成分のうち、ｕ＊ｉｊの０以外の成分に対応するｘｐ，｛ｐ｜（ｕ＊ｉｊ）ｐ≠０｝を知ることができればよい。未知パターンｘを特徴ベクトルで表したときのベクトルの成分は、数１で定義したように相互相関マトリクスの上三角部分の（Ｎ−１）Ｎ／２個をならべた特徴ベクトルａの定義より、次の数９のＲ(rq,sq)に対応する。
【００６６】
【数９】
0005103589.tif 000010
【００６７】
その相互相関マトリクスの成分がＲ(rq,sq)であるので、そのときの行と列の番号の組（rq,sq）を順番に並べていくと、相互相関を求めるために必要になるセンサエレメント出力の組となる。
【００６８】
このＮｉ組のセンサエレメント出力（Ｓrq,Ｓsq）の相互相関係数が実際に識別関数ＤＦ＊ｉ(ｘ)の出力に関係する成分であり、この成分が計算できるようなＮｉ個の相互相関マトリクスの成分を計算するだけでよいことになる。ただし、ｉは各クラスω１,ω２,…,ωｉ,…,ωＣに対応しており、Ｎｉ≦Ｄ＝（Ｎ−１）Ｎ／２，ｒ＝（ｒ０,ｒ１,…,ｒＮｉ），ｓ＝（ｓ０,ｓ１,…,ｓＮｉ)である。
【００６９】
この組み合わせに入っていないセンサエレメントと入っているセンサエレメントの間で、識別に使うかどうかの境界が引ける。以上の定式化を実際のセンサエレメント出力に適用することによって、識別に必要なセンサエレメントを決定することができる。
【００７０】
本手法を適用する触覚インタラクションデータベース７８は、ロボット１０と人間との間のコミュニケーション実験により構築される。実験では、人間の触行動を伴う様々なコミュニケーションを人間とロボット１０との間で行わせ、そのような触覚インタラクションごとの触覚センサ７６のセンサ時系列データを記録する。
【００７１】
具体的には、この実施例のような全身の体表が柔軟な皮膚２４で覆われており人間が安全に触ることのできるロボット１０に対しては、人間は様々な触行動を行う。このロボット１０を大阪市立科学館に展示し来館者にロボット１０と自由に遊んでもらう実験では、頭をなでる、抱っこする、ロボット１０を触るというような触行動を伴う触覚インタラクションが観察された。この実験で観察されたインタラクションを元に、統制実験のためのシナリオを準備した。シナリオの各ステップではロボット１０が対面する相手に触行動を促すための働き掛けを行い、被験者の触行動が終わった段階で次のステップに進むというルールから成っている。このルールをもとにロボット１０をＷＯＺ（Wizard of OZ）法によって制御する。つまり、オペレータがロボット１０の行動の遷移を遠隔制御する。具体的には、シナリオおよびルールに従ってオペレータが外部コンピュータを操作することによって、外部コンピュータがロボット１０に各ステップの行動（働き掛け）の実行コマンドを送信する。当該コマンドの受信に応じて、ロボット１０が当該コマンドに対応する行動を行うためのプログラムを実行する。これによって、ロボット１０が音声および身振りの少なくとも一方を用いて当該行動を実行し、それに応じた人間のロボット１０に対する行動が期待されるので、そのような触覚インタラクションを触覚センサ７６によって計測する。
【００７２】
シナリオの一例が図５に示されている。この図５のシナリオをもとにロボット１０と人間をインタラクションさせることにより、１５種類の働き掛けに対応する触覚コミュニケーションが時系列順にクラス１からクラス１５として観察されることが期待できる。
【００７３】
図５のシナリオを簡単に説明すると、まず、ステップＳ１で、ロボット１０は振り向く行動を実行し、人間に顔を向ける。次に、ステップＳ３で、「こんにちは」行動を実行し、つまり、「こんにちは」と発話する。この働き掛けに対する触覚インタラクションがクラス１であり、触覚センサ７６のセンサ時系列データがクラス１に対応付けて触覚インタラクションデータベース７８に記憶される。
【００７４】
続いて、ステップＳ５で、「握手してね」行動を実行し、つまり、「握手してね」と発話し右手を前に差し出す。これに対しては、人間の触行動すなわち握手が期待できる。この「握手してね」に対応する触覚インタラクションがクラス２である。人間が握手してくれない場合には、オペレータは、ステップＳ７で“ＮＯ”と判断する。したがって、ステップＳ９の「どうしてしてくれないの？」の発話を実行してから、再びステップＳ５の「握手してね」行動を実行する。人間が握手してくれるまでこれを繰返す。人間が握手してくれた場合には、その触行動のセンサ時系列データがクラス２に対応付けて記憶される。
【００７５】
続いて、ステップＳ１１で「よろしくね」行動を実行し、つまり、「よろしくね」と発話する。これに対する触覚インタラクションがクラス３であり、触覚センサ７６のセンサ時系列データがクラス３に対応付けて記憶される。続くステップＳ１３で「あなたの名前は」行動を実行し、つまり、「あなたの名前は」と発話する。これに対する触覚インタラクションがクラス４である。人間が名前を答えてくれない場合には、オペレータはステップＳ１５で“ＮＯ”と判断し、答えがあるまでステップＳ１３の「あなたの名前は」行動を繰返す。人間が名前を答えてくれた場合には、そのときの触覚センサ７６のセンサ時系列データがクラス４に対応付けて記憶される。
【００７６】
続いて、ステップＳ１７で「どこから来たの」行動を実行し、つまり、「どこから来たの」と発話する。これに対する触覚センサ７６のセンサ時系列データがクラス５に対応付けて記憶される。
【００７７】
続くステップＳ１９では、「遊ぼうよ」行動を実行し、つまり、「遊ぼうよ」と発話する。これに対する触覚インタラクションがクラス６である。この「遊ぼうよ」に対して、たとえば「遊ぼうね」などの肯定的な反応を人間がしない場合には、オペレータは、ステップＳ２１で“ＮＯ”と判断する。したがって、ステップＳ２３の「どうして」の発話を実行してから、ステップＳ１９の「遊ぼうよ」を実行する。人間が肯定的な反応を返すまでこれを繰返す。人間が肯定的な反応をしてくれた場合、そのときのセンサ時系列データがクラス６に対応付けて記憶される。
【００７８】
続いて、ステップＳ２５で「かわいいかなぁ」行動を実行し、つまり、「かわいいかなぁ」と発話する。これに対する触覚インタラクションがクラス７であり、人間が「かわいいよ」などの肯定的な反応をしてくれた場合には、そのときのセンサ時系列データがクラス７に対応付けて記憶される。
【００７９】
そして、オペレータはステップＳ２７で“ＹＥＳ”と判断する。したがって、ステップＳ２９で「よしよししてほしいな」行動を実行し、つまり、「よしよししてほしいな」と発話する。これに対しては、典型的には人間がロボット１０の頭部４６を撫でるような触行動が期待できる。この触覚インタラクションがクラス８であり、そのセンサ時系列データがクラス８に対応付けて記憶される。
【００８０】
ステップＳ２９で人間が触行動をしてくれた場合、オペレータはステップＳ３１で“ＹＥＳ”と判断する。したがって、ステップＳ３３で「わーいわーい」行動を実行し、つまり、「わーいわーい」と発話して喜びを表現する。これに対する触覚インタラクションがクラス９であり、そのセンサ時系列データがクラス９に対応付けて記憶される。
【００８１】
なお、ステップＳ２５の「かわいいかなぁ」行動に対して「かわいくない」などの否定的な発話や叩くなどの行動があったりした場合には、オペレータはステップＳ２７で“ＮＯ”と判断し、ステップＳ３５の「どうして」の発話を実行する。そして、ステップＳ３７の「えーんえーん」の発話（泣く振り）を実行する。また、ステップＳ２９の「よしよししてほしいな」行動に対する触行動が行われず、ステップＳ３１で“ＮＯ”と判断される場合にも、ステップＳ３７の「えーんえーん」と泣き声を発して悲しみを表現する。
【００８２】
続いて、ステップＳ３９で「もっと遊びたいなぁ」行動を実行し、つまり、「もっと遊びたいなぁ」と発話する。これに対する触覚インタラクションがクラス１０であり、そのセンサ時系列データがクラス１０に対応付けて記憶される。
【００８３】
続くステップＳ４１では、「こちょこちょしてほしいな」行動を実行し、つまり、「こちょこちょしてほしいな」と発話するとともに、両腕を動かして脇を開ける。これに対しては、典型的には人間がロボット１０の脇などをくすぐるような触行動が期待できる。この触覚インタラクションがクラス１１であり、そのセンサ時系列データがクラス１１に対応付けて記憶される。
【００８４】
なお、人間がロボット１０に対して「こちょこちょ」に対応する触行動をしてくれない場合には、オペレータはステップＳ４３で“ＮＯ”と判断する。したがって、ステップＳ４５で「どうしてくれないの」の発話を実行してから、ステップＳ４１の「こちょこちょしてほしいな」を再び実行する。人間が触行動を返すまでこれを繰返す。
【００８５】
人間が対応する触行動をしてくれた場合には、オペレータはステップＳ４３で“ＹＥＳ”と判断する。そして、続くステップＳ４７で、「くすぐったい」行動を実行し、つまり、「くすぐったい」と発話する。これに対する人間の触覚インタラクションがクラス１２であり、そのセンサ時系列データがクラス１２に対応付けて記憶される。
【００８６】
続いて、ステップＳ４９で、「ありがとうね」行動を実行し、つまり、「ありがとうね」と発話する。これに対する触覚インタラクションで検出されたセンサ時系列データがクラス１３として記憶される。
【００８７】
ステップＳ５１では、「だっこしてね」行動を実行し、つまり、「だっこしてね」と発話するとともに、両腕を開いた状態で前に出す。これに対しては、典型的には人間がロボット１０を両腕の中に抱くような触行動が期待できる。この触覚インタラクションがクラス１４であり、そのセンサ時系列データがクラス１４に対応付けて記憶される。
【００８８】
そして、ステップＳ５３で「ばいばい」行動を実行し、つまり、腕を振りながら「ばいばい」と発話する。これに対する触覚インタラクションのセンサ時系列データがクラス１５として記憶される。ステップＳ５３を終了すると、このシナリオに基づく一連のコミュニケーションが終了する。
【００８９】
このように、触覚インタラクションのシナリオには、ロボット１０の働き掛けに対して人間が触行動を返してくれることが期待できるものと、必ずしも触行動が期待できないものとが含まれているが、いずれの触覚インタラクションにおいても触覚センサ７６で検出されるセンサ時系列データが各クラス番号に対応付けて記憶される。また、このような予め決めておいたシナリオに基づいて一連のコミュニケーションを実行する場合には、センサ時系列データに自動的にクラス番号を関連付けてデータベースに記憶することが可能であり、オペレータが触覚インタラクションのクラス番号を入力しなくてよい。
【００９０】
図５のシナリオを用いて実際に発明者等が行った実験と、その実験で構築された触覚インタラクションデータベースに本手法を適用した結果について説明する。この実験においては、ロボット１０の正面を０度として、右斜め４５度、正面０度、左斜め４５度の３方向にロボットから約２ｍ離れた位置を触覚インタラクションシナリオのスタート位置とした。被験者はそれぞれ１回ずつ各スタート位置から始まるロボット１０との触覚インタラクションを実施し、一人の計３回を１０分間の休憩を挟んで行った。実験の１回あたりの実施時間は約５分である。被験者は大学生の男女４８人を対象に行い、各被験者には基本的にはロボット１０と自由に遊んでもらうように指示したあと、実験条件として、（１）ロボット１０の全身は自由に触ってもよいこと、（２）ロボット１０の言っている事をよく聞いて遊んでもらうこと、（３）実験が始まったらスタート位置よりロボット１０に近づき、触れて、呼びかけること、の３点を説明した。ロボット１０や構築システムの故障などデータベースが構築できなかった場合を除き、シナリオに沿って制御されたロボット１０と人間との触覚インタラクションデータベースを、延べ約１２０ケースについて構築した。
【００９１】
図６には、上述の図５のシナリオに基づく１５クラスの触覚インタラクションの認識率が示され、図７にはそれらの誤認識率が示される。図６および図７ともに、横軸に各クラス１〜１５が対応する。また、図６および図７ともに、識別関数を構成する正規直交ベクトルの数を決める閾値Ｃ１と、正規直交ベクトルの成分のうち０とする成分数を決定する閾値Ｃ２とを組み合わせた６つの条件での結果が示されている。識別器の性能評価は、認識率および誤認識率ともに１点除外法による交差検証により行った。なお、忠実度τ（数５）は、認識率が下がりすぎず誤認識率が低くなるように実験的に０．９５を採用した。
【００９２】
今回構成した識別器は、性能評価の結果を示す図６および図７より、人間からの触行動が期待できる触覚インタラクションにおいては高い識別率を示している。つまり、本手法は触覚インタラクションの識別に有効な手法であると言うことができる。
【００９３】
Ｃ１＝１．００の条件では、ケース数に相当する基底ベクトルから構成される約１２０次元の全特徴空間を用いた識別器となる。一方、Ｃ１＝０．１５の条件では、各クラスの基底ベクトル数は３−７の範囲内であった。つまり、Ｃ１＝０．１５の条件では、３〜７次元の特徴空間の部分空間を用いた識別器となる。したがって、図６および図７から分かるように、基底ベクトルの数が少ない条件（Ｃ１＝０．１５）の方が識別器の性能が良くなっている。これにより、大きな特異値に対応する基底ベクトルが張る部分空間に各インタラクションの特徴が現れていることが予想できる。
【００９４】
実際、最も大きな特異値に対応する正規直交ベクトルｕｉ１より作成した、図８に示す体性感覚マップにその特徴が現れている。図８（Ａ）は、クラス８の「よしよししてほしいな」の場合の最大特異値に対応するｕ（８）１から作成された体性感覚マップを示し、図８（Ｂ）は、クラス１１の「こちょこちょしてほしいな」の場合の最大特異値に対応するｕ（１１）１から作成された体性感覚マップを示す。
【００９５】
この体性感覚マップは、識別器の出力に有用な触覚センサエレメントを決定するために特徴空間の部分空間を取り出し、その空間を構成する基底ベクトルを用いて作成されたマップであり、つまり、次の数１０から作成される。
【００９６】
【数１０】
0005103589.tif 000011
【００９７】
なお、これは、センサ間の相互相関関係を２次元平面に可視化するマップ作成手法を用いている。このマップ作成手法では、相互相関に注目してセンサ間の非類似度を定義し、相関が強いセンサが近くに配置されるようにしたマップが作成される。具体的には、相互相関マトリクスの各相関係数Ｒｉｊから非類似度ｄｉｊへの変換を次の数１１のように定義する。
【００９８】
【数１１】
0005103589.tif 000012
【００９９】
自分自身のセンサとの相関係数は１であるので、ｄｉｉ＝０となる。この定義した量を距離と読み替えると、相関係数の絶対値が大きいセンサの組の非類似度が小さく、つまり、相関係数の絶対値が大きいセンサの組の距離が近くなるような定義になっている。
【０１００】
図８（Ａ）の体性感覚マップでは、頭の触覚センサエレメントが他から分離している。図８（Ｂ）の体性感覚マップでは、胴体前面の触覚センサエレメント、胴体側面（左または右)の触覚センサエレメント、および胴体上面の触覚センサエレメントが、他から分離してクラスタを形成していることが分かる。このマップ上でクラスタを形成するセンサ間の距離が近いことは、識別関数ＤＦ＊ｉ（ｘ）の出力に影響する触覚センサエレメントの組み合わせであることを意味する。これが触覚センサエレメントが自己組織化した結果となる。
【０１０１】
図６および図７におけるＣ２≠０の２条件（Ｃ２＝１，Ｃ２＝２）には、次元削減された基底ベクトルが張る特徴空間で構成された識別器の性能が示してある。Ｃ２＝１の条件では、未知ベクトルｘの成分のうち１５％〜２０％のみから識別関数の出力が得られる。それにも関わらず、識別器の性能はほとんど変化していない。このことから、今回定義した特徴空間上にかなり偏ってデータが分布していることが予想され、部分空間法を適用することの妥当性を考察することができる。Ｃ２＝２の条件では、ｘの成分のうち４％〜６％のみから識別関数の出力が得られ、ここではかなり識別器の性能は低下している。しかし、ごく限られた特徴空間のみを用いているにも関わらず、クラス８の「よしよししてほしいな」やクラス１１の「こちょこちょしてほしいな」のクラスの認識率は依然高い値を示している。したがって、これらクラスの特徴ベクトルは特徴空間の中での局所性が高く、他のクラスに比べて特徴的な触覚インタラクションであるといえる。
【０１０２】
この実施例では、ロボット１０のＣＰＵ６０が触覚インタラクションデータベース７８のデータから上述のような触覚インタラクションの識別器を作成し、触覚センサ７６の各ノード８０に転送する。したがって、各ノード８０では、識別に有用なセンサエレメントが分かるので、この有用なセンサエレメントの組み合わせで分散処理を行うことが可能になる。
【０１０３】
図９および図１０には、分散処理のための各種テーブルを作成する処理の動作の一例が示される。この実施例では、触覚センサ７６（センサネットワーク）のホストコンピュータないしホストＣＰＵであるＣＰＵ６０によって、この分散処理テーブル作成処理が実行される。
【０１０４】
なお、分散処理テーブルの作成は、ロボット１０と通信可能な外部のコンピュータ、たとえば上述の触覚インタラクションデータベース７８の構築実験を行うシステムにおける外部コンピュータ等によって実行し、作成したテーブルをロボット１０に送信するようにしてもよい。
【０１０５】
作成されるテーブルは、識別関数テーブルＤＦ、近似識別関数テーブルＤＦ＊、転送経路テーブルＴＤ、および転送量テーブルＴＲ等を含む。
【０１０６】
識別関数テーブルＤＦは、近似識別関数テーブルＤＦ＊を作成するために作成される。識別関数は、Ｎ個の触覚センサエレメントのうち２つのセンサ（ｉ，ｊ）（ｉ，ｊ＝１，２，・・・，Ｎ）の時系列データの組み合わせから計算される特徴量（相互相関係数）を入力とする識別器であり、上述の数４のように表される。ここで作成される識別関数テーブルＤＦは、数４における正規直交ベクトルｕｉｊに相当する。
【０１０７】
近似識別関数は、閾値Ｃ２より小さい基底の成分を０とすることによって近似された識別器であり、上述の数８のように表される。ここで作成される近似識別関数テーブルＤＦ＊は、数８におけるベクトルｕ＊ｉｊに相当する。
【０１０８】
転送経路テーブルＴＤは、各触覚センサエレメント５８のセンサ時系列データをどの経路で通信し、どのノード８０にセンサ時系列データを集めて、特徴量を計算するかを決定するためのテーブルである。センサの組（ｉ，ｊ）に対応する各要素には、（ｉ，ｊ）の２つのセンサ時系列データを、或る１つのノード８０に収集するためのデータ通信経路が記録される。
【０１０９】
転送量テーブルＴＲは、各センサ時系列データのノード間での転送量を決定するテーブルである。センサの組（ｉ，ｊ）に対応する各要素には、転送経路テーブルＴＤの各要素に対応した転送量が記録される。
【０１１０】
また、転送量が許容範囲内であるかどうかを確認するために、転送負荷テーブルＴＲＳが作成される。ノードの組（ｎ，ｍ）に対応する各要素は、転送経路テーブルＴＤおよび転送量テーブルＴＲに基づいて計算され、各ノード（ｎ，ｍ）間での総通信量を表す。送信と受信が別であるとすると、たとえばノード（Ａ，Ｂ）間において、ＡからＢへの経路の総通信量はＴＲＳ（Ａ，Ｂ）で、ＢからＡへの経路の総通信量はＴＲＳ（Ｂ，Ａ）で表される。
【０１１１】
分散処理テーブル作成処理を開始すると、まず、ステップＳ１０１で、触覚インタラクションデータから部分空間法によってクラスごとに識別器を作成する。ここでは、上述の数３に示した特異値分解の結果として得られる正規直交ベクトルｕ1,ｕ2,…,ｕrをクラスｉごとに算出する。
【０１１２】
次に、ステップＳ１０３で、パラメータＣ１によって識別器を簡単化し、クラスごとの識別関数テーブルＤＦを作成する。パラメータＣ１は、累積寄与率に関する閾値であって、識別関数を構成する正規直交ベクトルの数ｄｉを決める。これによって、クラスｉごとに、正規直交ベクトルｕｉｊが特異値の大きいものから順にｄ１からｄｉまで採用される。したがって、上述の数４におけるｕｉｊが得られ、このｕｉｊによってクラスごとの識別関数テーブルＤＦを作成する。
【０１１３】
なお、パラメータＣ１には、所定値が初期値として与えられる。作成した識別器の性能評価によって適切な認識率・誤認識率が得られるように、パラメータＣ１の値は、たとえば一定値ずつ加減すること等によって適宜変更される。
【０１１４】
さらに、ステップＳ１０５で、パラメータＣ２によってテーブルＤＦを簡単化し、クラスごとの近似識別関数テーブルＤＦ＊を作成する。パラメータＣ２は、正規直交ベクトルの成分のうち０とする成分数を決定する閾値である。したがって、クラスｉごとに、上述の数８におけるｕ＊ｉｊを算出し、このｕ＊ｉｊによってクラスごとの近似識別関数テーブルＤＦ＊を作成する。
【０１１５】
なお、パラメータＣ２には、所定値が初期値として与えられる。パラメータＣ１の場合と同様に、作成した識別器の性能評価によって適切な認識率・誤認識率が得られるように、パラメータＣ２の値は、たとえば一定値ずつ加減すること等によって適宜変更される。
【０１１６】
このクラス別の近似識別関数テーブルＤＦ＊を用いて、計測されたセンサ時系列データに基づいて、数８の識別関数出力ＤＦ＊ｉ（ｘ）を計算することが可能になり、したがって、触覚インタラクションのクラスを識別することが可能になる。
【０１１７】
続いて、ステップＳ１０７で、認識対象のクラスセットごとに転送経路テーブルＴＤおよび転送量テーブルＴＲを作成するために、各クラスの近似識別関数テーブルＤＦ＊を包括するテーブルを作成する。
【０１１８】
ここで、認識対象のクラスセットは、認識対象とする複数のクラスの組み合わせである。つまり、この実施例では、ロボット１０が人間とコミュニケーションしているときに、触覚インタラクションデータベース７８に登録された全クラスを認識の対象とはせず、限定された数のクラスを認識の対象とするようにしている。人間とロボット１０のコミュニケーションが成立する場合には、状況に応じたインタラクションが発生するものと期待できるからである。たとえば、ロボット１０が「握手してね」行動を行っているときには、ロボット１０の手３８や腕２８および３０を触るような触覚インタラクションは起こり得ると予期されるが、「よしよししてほしいな」や「こちょこちょしてほしいな」等に対応する触覚インタラクションは、通常は起こらないものと予期される。したがって、ロボット１０が認識対象とすべき触覚インタラクションのクラスを、状況に応じて限定することができる。そこで、この実施例では、ロボット１０の実行しているコミュニケーション行動もしくは働き掛けのような種々の状況ごとにクラスセットを予め決めておいて、これら複数のクラスセットをそれぞれの状況に対応付けて予め記憶しておく。そして、触覚センサ７６の各ノード８０では、状況に対応するクラスセットに規定された複数のクラスを識別の対象として分散処理を行うようにする。
【０１１９】
なお、他の実施例では、１つの触覚インタラクションのクラスのみを識別対象としてもよく、その場合、当該クラスの近似識別関数テーブルＤＦ＊に基づいて、当該クラスの転送経路テーブルＴＤおよび転送量テーブルＴＲが作成される。
【０１２０】
また、各ノード８０において、上述のような識別関数に基づく処理を行うためには、入力ベクトルｘの特徴量算出のために、ノード８０間で必要なセンサ時系列データを通信し、或る１つのノード８０に収集する必要がある。クラスごとに有用なセンサの組み合わせは異なり、クラスごとの近似識別関数テーブルＤＦ＊を用いてクラスごとの算出が行われるので、必要なセンサ時系列データのための通信経路は本来クラスごとに異なるものである。しかし、この実施例では、クラスセットに含まれる複数のクラスが認識対象であるので、複数のクラスのそれぞれの近似識別関数に基づく処理を行うために必要なすべてのセンサ時系列データを通信しなければならない。
【０１２１】
そこで、この実施例では、このステップＳ１０７で、認識対象クラスセットごとに転送経路テーブルＴＤおよび転送量テーブルＴＲを作成するために、当該クラスセットに含まれる各クラスの近似識別関数テーブルＤＦ＊を包括するテーブル、つまり、クラスセットの複数のクラスで必要なセンサ時系列データ通信のすべてを網羅するテーブルを作成する。
【０１２２】
たとえば、クラスセットの複数のクラスのいずれかの近似識別関数テーブルＤＦ＊において、要素（センサ組み合わせ）の値に０以外が記録されていれば、当該要素の値にたとえば１を設定することによって、包括するテーブルを作成するようにしてよい。または、各クラスのテーブルＤＦ＊における各要素のうち絶対値が最大であるものを当該要素の値として採用することによって、包括するテーブルを作成してよいし、あるいは、各要素の値の平均値を当該要素の値に設定することによって作成してもよい。
【０１２３】
続いて、ステップＳ１０９で、クラスセットに対応する転送経路テーブルＴＤを生成する。同一ノードに所属するセンサ同士には、通信が不要であるから、このステップＳ１０９では、当該センサ同士の各要素には、たとえば当該所属ノードから所属ノードへの経路を示すデータを記憶しておく。
【０１２４】
なお、ロボット１０のメモリ６４には、各ノード８０の識別情報に対応付けた各ノード８０に所属する触覚センサエレメント５８の識別情報を示すデータ、各ノード８０の接続構造（隣接するノード８０の識別情報など）を示すデータなどが記憶されている。
【０１２５】
続くステップＳ１１１からステップＳ１１７の処理で、当該転送経路テーブルＴＤにおいて、異ノードに所属するセンサの組み合わせの各要素のための経路を選択して記憶する。
【０１２６】
具体的には、ステップＳ１１１では、当該クラスセットの各クラスのＤＦ＊を包括するテーブルにおいて、転送のホップ数が最も少ない要素のうち絶対値が最大の要素を選択する。なお、各ノード間のホップ数は、ノード８０の接続構造を示すデータから把握される。
【０１２７】
次に、ステップＳ１１３で、当該要素のセンサの所属ノード間について、最短経路でノード間の通信量が最も少ない経路を選択し、当該経路を示すデータを、転送経路テーブルＴＤの要素に追加（記録）する。
【０１２８】
続くステップＳ１１５で、追加したセンサ時系列データ通信を利用できる転送経路テーブルＴＤの要素にも、当該選択した経路を示すデータを追加する。つまり、ステップＳ１１３で追加した経路で通信されたセンサ時系列データを利用できる要素がある場合には、当該要素にも同じ経路を書込んでおく。
【０１２９】
そして、ステップＳ１１７で、すべての要素の経路が決まったか否かを判断する。ステップＳ１１７で“ＹＥＳ”と判断されるまで、ステップＳ１１１−Ｓ１１５の処理を繰り返して、当該クラスセットに対応する転送経路テーブルＴＤのすべての要素についてホップ数分の経路を決定し、この転送経路テーブルＴＤを完成させる。
【０１３０】
ステップＳ１１７で“ＹＥＳ”の場合には、図１０のステップＳ１１９で、当該クラスセットの転送経路テーブルＴＤに基づいて、転送量テーブルＴＲを作成する。具体的には、転送量テーブルＴＲの各要素に、転送経路テーブルＴＤにおける各要素の経路に対応した転送量が記録される。
【０１３１】
続くステップＳ１２１で、当該クラスセットの転送経路テーブルＴＤおよび転送量テーブルＴＲに基づいて、転送負荷テーブルＴＲＳを計算する。具体的には、全ノード数をＭとし、２つのノードの組み合わせを（ｎ，ｍ）（ｎ，ｍ＝１，…，Ｍ）で表すと、ノード（ｎ，ｍ）間における、ノードｎからノードｍへの経路の総通信量と、ノードｍからノードｎへの経路の総通信量が計算される。
【０１３２】
そして、ステップＳ１２３で、ネットワーク帯域に余裕があるか否かを転送負荷テーブルＴＲＳに基づいて判断する。具体的には、各ノード間の通信量が所定の最大値以内におさまっているかどうかを判断する。
【０１３３】
ステップＳ１２３で“ＮＯ”の場合、ステップＳ１２５で、ＴＲＳの通信量が許容範囲内におさまるように調整した転送量テーブルＴＲ＊を作成する。具体的には、転送負荷テーブルＴＲＳにおける最大値を超えたノード間の総通信量が最大値以内におさまるように、転送量テーブルＴＲにおいて対応する経路の転送量を低減させる。ホップ数の大きい経路ほど、転送量をより減少させるようにしてよく、一例として、新たな転送量は、元の転送量をホップ数の関数で割ることによって算出されてよい。続くステップＳ１２７で、調整した転送量テーブルＴＲ＊と転送経路テーブルＴＤに基づいて、調整後の転送負荷テーブルＴＲＳ＊を計算して、各ノード間の通信量が許容範囲内であることを確認する。
【０１３４】
一方、ステップＳ１２３で“ＹＥＳ”の場合、つまり、通信負荷がネットワーク帯域の許容範囲内におさまっている場合には、ステップＳ１２９で、全クラスセットの計算が終わったか否かを判断する。ステップＳ１２９で“ＮＯ”の場合、図９のステップＳ１０９に戻り、残りのクラスセットのためのテーブル作成を行う。
【０１３５】
ステップＳ１２９で“ＹＥＳ”の場合、作成した分散処理テーブル、すなわち、クラス別の近似識別関数テーブルＤＦ＊、クラスセット別の転送経路テーブルＴＤおよび転送量テーブルＴＲをネットワークノード８０へ転送する。なお、調整した転送量テーブルＴＲ＊を作成した場合には、テーブルＴＲではなく、当該テーブルＴＲ＊を送信する。
【０１３６】
なお、この実施例では、転送量テーブルＴＲ（またはＴＲ＊）を作成するようにしているが、すべての転送量を予め一定値（転送負荷が許容範囲内に十分におさまるような値）に決めておく場合には、ＴＲの作成は必要ない。
【０１３７】
以上のような分散処理テーブルの具体的な作成例を、簡略化したセンサネットワークを対象にして説明する。図１１に、この説明のためのモデルとしての触覚センサ７６を示す。９枚の触覚センサエレメント５８と３つのノード８０が設けられている。各ノード８０には３枚ずつ触覚センサエレメント５８が所属している。具体的には、ノードＡにはセンサ番号１−３の触覚センサエレメントが所属し、ノードＢにはセンサ番号４−６が所属し、ノードＣにはセンサ番号７−９が所属している。また、ノード同士は相互にＡ―Ｂ間と、Ｂ−Ｃ間とで接続されている。
【０１３８】
図１２（Ａ）は、識別関数テーブルＤＦの一例を示す。なお、この作成例では、簡単のため、特徴空間を構成する基底ベクトルのうち、寄与率の最も高い１つの基底ベクトルのみを採用した場合を示している。図１２（Ｂ）は、簡単化した（近似）識別関数テーブルＤＦ＊の一例を示す。ここで採用されている閾値は、一例として０．２７であり、これは、成分の標準偏差０．２７とパラメータＣ２＝１との積により得られる。近似識別関数テーブルＤＦ＊は、識別関数テーブルＤＦにおいて０．２７より小さい絶対値の成分を０とすることによって作成されている。
【０１３９】
続いて、認識対象のクラスセットの各クラスの近似識別関数テーブルＤＦ＊を包括するテーブルを作成し、当該クラスセットに対応する転送経路テーブルＴＤを作成する。図１３は、近似識別関数テーブルＤＦ＊から作成された転送経路テーブルＴＤの一例を示す。なお、この作成例では、便宜上、図１２（Ｂ）に示すテーブルが認識対象のクラスセットの各クラスを包括するテーブルであるものとして、図１３の転送経路テーブルＴＤを作成している。
【０１４０】
まず、同一ノード８０に所属する触覚センサエレメント５８同士の計算には他のノードとの通信が不要である。したがって、転送経路としては、ＡＡ，ＢＢ，ＣＣのように当該ノード同士を結ぶ経路が記録される。たとえば、ノードＡに所属するセンサ番号１とセンサ番号３の計算は、ノードＡ内の処理のみで完了するので、センサ番号１の行とセンサ番号３の列をと結ぶ欄には、ＡＡが記載されている。
【０１４１】
そして、図９のステップＳ１１１の処理によって、転送ホップ数が最小であり、かつ、絶対値が最大の要素を選択し、この選択した要素から順に転送経路を決めていく。ホップ数が１である組み合わせは、隣のノード８０に相手の触覚センサエレメント５８が存在する組み合わせであり、この作成例では、ノードＡＢ間の組み合わせとノードＢＣ間の組み合わせである。それらのうち絶対値が最大の要素は、絶対値０．９の要素であり、つまり、センサ番号の組が（３，４）、（６，７）である。このうち、まず、たとえばセンサ番号の小さい方の（３，４）を選択する。
【０１４２】
続いて、図９のステップＳ１１３の処理によって、選択した要素のために、最短経路で、ノード間の通信量が最も少ない経路を選択する。今回の（３，４）にはノードＡＢ間の通信が必要であるから、ノードＡからノードＢへの通信を選択し、テーブルの（３，４）の要素に「ＡＢ１」を追加（記憶）する。この選択は、ＡからＢへの通信の最初の選択であるから、「ＡＢ」に「１」が付与されている。つまり、「ＡＢ１」は、ＡからＢへの通信であり、かつ、その１回目であることを意味する。
【０１４３】
さらに、図９のステップＳ１１５の処理によって、この追加したデータ通信を利用できる要素に、当該経路を追加する。今回のセンサ番号３の時系列データのＡからＢへの通信により、ノードＢにおいてセンサ番号３のデータを、（３，５）および（３，６）の組の計算でも使用できるので、テーブルの（３，５）および（３，６）の要素にも、「ＡＢ１」を追加する。
【０１４４】
このように、（３，４）の選択から始まった処理によって、（３，４）、（３，５）および（３，６）の経路が決められる。絶対値が０．９である（６，７）についても、同様にして、経路が決められ、（６，７）、（６，８）および（６．９）に「ＢＣ１」が追加される。
他の組についても、同様な処理を繰返して経路を決めていく。
【０１４５】
たとえば、絶対値が０．７である（２，４）の組については、ノードＡＢ間の通信として既にノードＡからノードＢへの「ＡＢ１」が選択されているので、同方向の通信を増やすのではなく、逆方向のノードＢからノードＡへの通信を選択し、テーブルの（２，４）の要素に「ＢＡ１」を追加する。このセンサ番号４の時系列データのＢからＡの通信によって、ノードＡにおいてセンサ番号４のデータを（１，４）の組でも利用できるので、テーブルの（１，４）にも、「ＢＡ１」を追加する。
【０１４６】
また、ホップ数が２の要素については、まず、絶対値が０．５である（３，７）の組を選択する。センサ番号３の時系列データは、ＡＢ１によってノードＢにあるので、センサ番号７の時系列データをノードＢに送ればよい。したがって、「ＣＢ３」を選択する。なお、この（３，７）の計算には、「ＡＢ１」も必要であるから、テーブルの（３，７）には「ＣＢ３／ＡＢ１」と記憶する。
【０１４７】
さらに、センサ番号７の時系列データのＣからＢへの通信「ＣＢ３」を、（１，７）の組で利用できる。センサ番号１の時系列データは、ノードＢにはない。また、ＡＢ間の通信は、ＡＢ１、ＢＡ１およびＡＢ２まで選択されている。したがって、センサ番号７の時系列データをＢからＡへ送信する「ＢＡ２」を選択する。テーブルの（１，７）には「ＣＢ３／ＢＡ２」を追加する。
【０１４８】
このようにして、転送経路テーブルＴＤを作成でき、このテーブルＴＤによって、各センサの時系列データの転送経路、ノード間の通信回数、センサ間の特徴量を計算するノード等を把握することができる。
【０１４９】
続いて、転送量テーブルＴＲが作成される。転送量テーブルＴＲおよび転送負荷テーブルＴＲＳの一例が図１４に示される。この例では、１ホップの通信量を「１００」とする。したがって、図１４（Ａ）の転送量テーブルＴＲの各経路には「１００」が記載される。また、同一ノード間の組には通信が不要であるから「０」が記憶される。
【０１５０】
転送経路テーブルＴＤと転送量テーブルＴＲに基づいて図１４（Ｂ）の転送負荷テーブルＴＲＳが作成される。転送負荷テーブルＴＲＳは、ノード間の通信量を示している。ノードＡＢ、ＢＡ、ＢＣ間には、それぞれ転送量１００の２回の通信が必要であるから、テーブルＴＲＳの（Ａ，Ｂ）、（Ｂ，Ａ）および（Ｂ，Ｃ）には、「２」が記載される。ノードＣＢ間には３回の通信が必要であるからテーブルＴＲＳの（Ｃ，Ｂ）には「３」が記載される。
【０１５１】
この転送負荷テーブルＴＲＳに基づいて帯域に余裕があるかどうかが判断される。ここで、たとえば転送負荷量が最大値３よりも小さいことが必要とされる場合には、通信ＣＢが許容範囲を超えるので、転送量の調整を行う。調整した転送量テーブルＴＲ＊および調整後の転送負荷テーブルＴＲＳ＊の一例が図１５に示される。ここでは、ホップ数の大きい要素の通信量を減らす。つまり、（１，７）および（３，７）の「ＣＢ３」の通信量を５０に減らす。たとえば元の転送量をホップ数で割ることによって調整後の転送量を算出する。この通信を利用する（１，７）の「ＢＡ２」も５０になる。なお、（３，７）の「ＡＢ１」は、（３，４）の通信の利用であるから、通信量は１００のままである。この図１５（Ａ）のテーブルＴＲ＊と図１３のテーブルＴＤに基づいて、図１５（Ｂ）のテーブルＴＲＳ＊を作成し、転送負荷が許容範囲内におさまったことを確認することができる。「ＣＢ３」と「ＡＢ２」の通信量がそれぞれ半減されたので、（Ｃ，Ｂ）の転送負荷が２．５になり、（Ｂ，Ａ）の転送負荷が１．５になり、最大値３よりも小さい値に抑えられている。
【０１５２】
このようにして作成された分散処理テーブルは、上述のように図１０のステップＳ１３１でＣＰＵ６０から各ノード８０に送信されて、各ノード８０で保持される。図１６に各ノード８０のテーブル更新処理の動作が示される。各ノード８０のプロセッサユニット８６は、一定時間ごとにこのテーブル更新処理を実行する。
【０１５３】
具体的には、ステップＳ２０１では、ホストＣＰＵ６０からバス８２を介してテーブルを受信した否かを判断する。ステップＳ２０１で“ＮＯ”の場合には、そのままこの更新処理を終了する。一方、ステップＳ２０１で“ＹＥＳ”の場合には、ステップＳ２０３で、受信した分散処理テーブルを、プロセッサユニット８６に内蔵されるメモリに保存（記憶）する。分散処理テーブルは、上述のように、クラスごとの近似識別関数テーブルＤＦ＊、クラスセットごとの転送経路テーブルＴＤおよび転送量テーブルＴＲ（またはＴＲ＊）を含む。なお、この分散処理テーブルの保存メモリとしてフラッシュメモリのような不揮発性メモリを適用した場合には、ロボット１０の電源を切っても各ノード８０が分散処理テーブルを保持できるので、ロボット１０の電源をオンするたびにＣＰＵ６０からの分散処理テーブルの送信処理を行わなくてもよく、当該分散処理テーブルの送信処理は、分散処理テーブルが再構成されて更新されたときにだけ行うようにすればよい。
【０１５４】
なお、上述の正規直交ベクトルＵｉｊの成分を０にするための閾値Ｃ２を考慮しない場合、つまり、閾値Ｃ２が０の場合、近似識別関数テーブルＤＦ＊は、識別関数テーブルＤＦであり、これが分散処理テーブルとして送信されて、各ノード８０のプロセッサユニット８６に記憶される。
【０１５５】
続いて、ロボット１０が人間とコミュニケーションをしている場合に実行される触覚インタラクションの識別段階の処理について説明する。ロボット１０では、人間に提示しようとしている行動（身振りおよび／または発話）に対して、人間が行うであろうと予期できる複数の触行動（触覚インタラクション）が認識対象クラスセットとして予め記憶されている。各行動を提示するための処理とともに、対応するクラスセットを認識対象として識別処理を実行することによって、予期できる複数の触覚インタラクションのクラスのうち、どのクラスが実行されたのか、または、認識対象のクラスセットのクラス以外の予期しない触覚インタラクションが実行されたのかを識別することができる。
【０１５６】
図１７および図１８にＣＰＵ６０（触覚センサ７６のホスト）によって実行される識別処理の動作の一例が示される。識別処理を開始すると、ステップＳ３０１で、認識対象のクラスセットをネットワークノード８０にブロードキャストする。送信されるクラスセットのデータは、各クラスの識別番号を含んでおり、これによって、触覚センサ７６の各ノード８０に認識対象の複数のクラスを知らせて、使用する分散処理テーブルを知らせることができる。
【０１５７】
続いて、ステップＳ３０３で、センサ時系列データのＩｎ点をネットワークノード８０にブロードキャストする。時系列データのＩｎ点は、各触覚センサエレメント５８により検出された時系列データの記録の開始点を指示するためのデータであり、たとえば開始時刻が指定されてよいし、または開始命令であってよい。
【０１５８】
これによって、各ノード８０では、サンプリングされたセンサ時系列データの記録（蓄積）が開始される。また、各ノード８０では、転送経路テーブルＴＤと転送量テーブルＴＲに基づくデータ交換が開始される。さらに、この実施例のように、識別器のメンテナンスのためのデータ収集として、各ノード８０はセンサ時系列データをホストＣＰＵ６０に送信してもよい。
【０１５９】
そして、ステップＳ３０５で、センサ時系列データを受信したかどうかを判断し、“ＹＥＳ”の場合、ステップＳ３０７で、センサ時系列データをメモリ６４に記憶する。なお、センサ時系列データは、一定時間分の検出データのほかに、当該ノード８０の識別情報、当該触覚センサエレメント５８の識別情報およびタイムスタンプ（検出時刻情報）を含んでいる。ステップＳ３０７を終了すると処理はステップＳ３０５へ戻る。
【０１６０】
一方、ステップＳ３０５で“ＮＯ”の場合、ステップＳ３０９で現在の時刻がＯｕｔ点になったか否かを判断する。Ｏｕｔ点は、認識対象の複数のクラスの識別に必要な時間分のセンサ時系列データの計測が行えるように決められる。たとえば、クラスセットごとにＩｎ点からの必要な時間が予め記憶される。つまり、このステップＳ３０９では、Ｉｎ点の送信から所定時間が経過したかどうかが判断される。
【０１６１】
ステップＳ３０９で“ＮＯ”の場合、つまり、計測がまだ必要である場合には、処理はステップＳ３０５に戻る。したがって、受信待機、および受信データの記録が繰返されて、Ｉｎ点からＯｕｔ点までのセンサ時系列データが取得される。
【０１６２】
なお、識別器のメンテナンス、つまり、学習による識別器の再構成を行わない場合には、センサ時系列データのノード８０からの収集は行わなくてよい。各ノード８０での分散処理によって、触覚インタラクションのクラスの識別ための処理（類似度の算出）が行われており、ホストであるＣＰＵ６０がセンサ時系列データを受信しなくてもクラス識別を行うことができるからである。
【０１６３】
一方、ステップＳ３０９で“ＹＥＳ”の場合、ステップＳ３１１で、センサ時系列データのＯｕｔ点をネットワークノード８０にブロードキャストする。このＯｕｔ点は、センサ時系列データの記録の終了点を指示するデータであり、たとえば終了時刻が指定されてよいし、または終了命令であってよい。これによって、各ノード８０では、センサ時系列データの記録が終了される。そして、記録したセンサ時系列データと識別関数テーブルに基づいて、クラス識別のための類似度算出処理が開始されることとなる。
【０１６４】
なお、この実施例では、ＣＰＵ６０でＯｕｔ点になったと判断されるときにＯｕｔ点を各ノード８０に送信するようにしているが、他の実施例では、Ｉｎ点と同時に、またはＩｎ点送信のすぐ後に、Ｏｕｔ点を予め送信するようにしてもよく、その場合、Ｏｕｔ点は、たとえば記録終了の予定時刻または記録の継続時間であってよい。
【０１６５】
続くステップＳ３１３では、識別対象クラスの類似度を受信したかどうかを判断する。Ｏｕｔ点の送信後、各ノード８０からは、当該ノード８０において算出可能な部分特徴空間の各クラスの類似度が送信されてくるので、その受信を行う。ステップＳ３１３で“ＮＯ”の場合、一定時間受信を待機して、再びステップＳ３１３の処理を行う。一方、ステップＳ３１３で“ＹＥＳ”の場合、ステップＳ３１５で、受信した識別対象クラスの類似度をメモリ６４に記憶する。そして、ステップＳ３１７で、全ノード８０から類似度を受信したか否かを判断する。ステップＳ３１７で“ＮＯ”の場合、つまり、受信すべき類似度が残っている場合には、処理はステップＳ３１３に戻る。一方、ステップＳ３１７で“ＹＥＳ”の場合には、処理は図１８のステップＳ３１９へ進む。
【０１６６】
図１８のステップＳ３１９では、各ノード８０が持つ部分特徴空間での類似度を識別対象クラスごとに合計する。具体的には、上述の数８の右辺における合計が行われる。したがって、クラスごとの識別関数出力を算出することができる。続くステップＳ３２１で、クラスごとの合計値を比較して最大のクラスを検出する。認識対象のクラスセットのうち、この最大値を示したクラスの触覚インタラクションが行われたことが推定されるが、この段階では、未だ仮の推定であり、次のステップＳ３２３でリジェクト判定を行う。つまり、上述の数５の判定を行う。最大値を示すクラスｌの識別関数出力と、それ以外のクラスの識別関数出力のうちの最大値とが、数５の関係式を満たさない場合には、リジェクトである、つまり、認識対象のクラスセットのクラス以外の触覚インタラクションが行われたことが判定される。
【０１６７】
そして、ステップＳ３２５で識別結果の出力を行う。つまり、ステップＳ３２３のリジェクト判定で数５の関係式が成立した場合には、最大値を示したクラスの触覚インタラクションが行われことが識別されたので、当該クラスを示すデータを結果として出力する。一方、リジェクトの場合は、予期しない触覚インタラクションが行われたことが識別されたので、当該リジェクトを示すデータを結果として出力する。
【０１６８】
したがって、ロボット１０の制御コンピュータとしてのＣＰＵ６０は、センサ時系列データを自分で処理しなくても、複数のノード８０において分散処理した結果を用いて触覚インタラクションを識別することができる。なお、ロボット１０は、この識別結果と実行した行動に応じて、人間とのコミュニケーションの状況を把握することができ、したがって、当該状況に応じた、次に実行すべき行動を適切に選択することができる。
【０１６９】
続くステップＳ３２７からステップＳ３３５の処理は、識別器のメンテナンス用の処理であり、識別器の検証、学習、再構成などのメンテナンスを行う場合に実行すればよい。具体的には、ステップＳ３２７で、部分特徴空間の成分を受信したか否かを判断する。各ノード８０からは、類似度の送信後、この成分が送られてくる。このステップＳ３２７で“ＮＯ”の場合、一定時間受信を待機する。一方、ステップＳ３２７で“ＹＥＳ”の場合には、ステップＳ３２９で、受信した部分特徴空間の各成分をメモリ６４に記憶する。この部分特徴空間の各成分は、数９の特徴ベクトルのうち、各ノード８０が計算可能な成分である。そして、ステップＳ３３１で全ノード８０から部分特徴空間の成分を受信したか否かを判断する。ステップＳ３３１で“ＮＯ”の場合には、処理はステップＳ３２７に戻り、残りのノード８０からの受信処理を繰返す。
【０１７０】
一方、ステップＳ３３１で“ＹＥＳ”の場合には、ステップＳ３３３で、メモリ６４に記憶したセンサ時系列データおよび特徴空間を触覚インタラクションデータベース７８に記録する。ステップＳ３２５で出力された識別結果も対応付けて記録する。
【０１７１】
そして、ステップＳ３３５で、正解の触覚インタラクションが与えられる場合に、識別器の再構成を行う。正解の触覚インタラクションが与えられるのは、たとえば上述のデータベース構築実験のように所定のシナリオに沿ったコミュニケーションを人間との間で実行している場合であり、この場合、ＣＰＵ６０は、シナリオの進行に応じて自動的に正解の触覚インタラクションのクラスを特定することができる。したがって、図９に示した分散処理テーブルの作成処理と同様にして、識別器を再構成し、分散処理のための各種テーブルを再作成することができる。また、正解のクラスと識別結果に基づいて認識率・誤認識率などを算出することができるので、パラメータＣ１およびパラメータＣ２も適宜な値に再設定して、識別器の再構成を行うこともできる。ステップＳ３３５を終了すると、この識別処理を終了する。
【０１７２】
図１９には、ノード８０のプロセッサユニット８６によって実行されるノード分散処理の動作の一例が示される。この分散処理はたとえば一定時間ごとに実行される。
【０１７３】
なお、各ノード８０のプロセッサユニット８６の内蔵メモリには、自身のノード識別情報を示すデータ、所属する触覚センサエレメントの識別情報を示すデータ、隣接するノード８０の識別情報を示すデータなどが記憶されている。
【０１７４】
まず、ステップＳ４０１で、認識対象のクラスセットをホストＣＰＵ６０から受信したか否かを判断する。上述のように、識別処理では認識対象のクラスセットがホスト６０から送信されてくる。ステップＳ４０１で“ＮＯ”の場合、この分散処理を終了する。
【０１７５】
一方、ステップＳ４０１で“ＹＥＳ”の場合、ステップＳ４０３で、受信した認識対象のクラスセットを内蔵メモリに記憶する。認識対象のクラスセットは、識別しようとする複数のクラスを含んでいる。このクラスセットの受信によって、内蔵メモリに既に記憶されている分散処理テーブルのうち、使用するテーブルを特定することができる。具体的には、近似識別関数テーブルＴＤ＊の場合、クラスセットに含まれる各クラスに対応するテーブルが参照され、転送経路テーブルＴＤおよび転送量テーブルＴＲの場合、クラスセットに対応するテーブルがそれぞれ参照されることとなる。
【０１７６】
続くステップＳ４０５では、Ｉｎ点をホスト６０から受信したか否かを判断する。上述のように、センサ時系列データの記録の開始を指示するＩｎ点がホスト６０から送信されてくるので、その受信を待機する。
【０１７７】
ステップＳ４０５で“ＹＥＳ”の場合には、ステップＳ４０７で、センサ時系列データの蓄積を開始する。この蓄積処理は図１９の処理等と並列的に実行される。各触覚センサエレメント５８の出力は、Ａ／Ｄ変換器８８によって所定周期でサンプリングされて、その出力データはプロセッサユニット８６のバッファに記憶されている。したがって、蓄積処理では、一定時間ごとに、各触覚センサエレメント５８のサンプリングデータをバッファから読み出して、内蔵メモリの所定領域に蓄積する。また、センサ時系列データには、サンプリングされたデータに、当該ノード８０の識別情報、当該触覚センサエレメント５８の識別情報、およびタイムスタンプ等の情報が付加される。
【０１７８】
また、ステップＳ４０９で、データ交換処理を開始する。このデータ交換処理は、図１９の処理等と並列的に実行され、これによって、転送経路テーブルＴＤおよび転送量テーブルＴＲに基づいて、近隣のノード８０との間でセンサ時系列データの送受信が行われる。このデータ交換処理の動作の一例が図２０に詳細に示される。
【０１７９】
図２０のステップＳ５０１では、送信タイミングになったか否かを判断する。データの送信は、たとえば一定時間ごとに実行される。ステップＳ５０１で“ＹＥＳ”の場合には、ステップＳ５０３で、クラスセットに対応する転送経路テーブルおよび転送量テーブルＴＲに基づいて、他のノード８０にセンサ時系列データを送信する。各ノード８０は、通信経路テーブルＴＤを参照して、通信経路の順に、所属する触覚センサエレメント５８のセンサ時系列データを送信する。各触覚センサエレメント５８のセンサ時系列データの転送量は、転送量テーブルＴＲに記録された転送量に決定される。なお、センサ時系列データには、所属ノードの識別情報、触覚センサエレメントの識別情報、およびタイムスタンプ等が付加されている。
【０１８０】
ステップＳ５０３を終了し、またはステップＳ５０１で“ＮＯ”の場合、ステップＳ５０５で、センサ時系列データを他のノード８０から受信したか否かを判断する。ステップＳ５０５で“ＹＥＳ”の場合には、ステップＳ５０７で、受信したセンサ時系列データを内蔵メモリに記憶する。なお、受信したセンサ時系列データに付加されているノードの識別情報および触覚センサエレメントの識別情報と、転送経路テーブルＴＤとを参照することによって、必要とするセンサ時系列データを受信できたかどうかを判定することが可能である。
【０１８１】
ステップＳ５０７を終了し、またはステップＳ５０５で“ＮＯ”の場合には、ステップＳ５０９で、交換終了か否かを判断する。たとえば、ホスト６０からセンサ時系列データの記録の終了を指示するＯｕｔ点を受信したかどうかを判断する。ステップＳ５０９で“ＮＯ”の場合、処理はステップＳ５０１に戻り、データ交換を続ける。一方、ステップＳ５０９で“ＹＥＳ”の場合、このデータ交換処理を終了する。
【０１８２】
このようなデータ交換処理が、図１９のステップＳ４０９で開始される。したがって、各ノード８０には、当該ノード８０で算出すべき特徴量のために必要な他のノード８０の触覚センサエレメント５８のセンサ時系列データが収集されることとなる。
【０１８３】
続いて、ステップＳ４１１で、蓄積された一定時間分のセンサ時系列データをホスト６０に転送する。ここで送信するセンサ時系列データは、所属する触覚センサエレメント５８のデータである。また、このセンサ時系列データは、識別器のメンテナンス用であり、メンテナンスを行わない場合には、このホスト６０への転送は行われない。なお、全体のノード８０がホスト６０へ送信できるように、転送量をステップＳ４０９のデータ交換処理における転送量よりも減少させるようにしてよい。
【０１８４】
そして、ステップＳ４１３で、Ｏｕｔ点をホスト６０から受信したか否かを判断する。Ｏｕｔ点は、上述のように、センサ時系列データの記録の終了を指示するものである。ステップＳ４１３で“ＮＯ”の場合、処理はステップＳ４１１に戻る。したがって、センサ時系列データの蓄積、データ交換処理、およびホスト６０への転送が続けられる。
【０１８５】
一方、ステップＳ４１３で“ＹＥＳ”の場合には、つまり、センサ時系列データの記録の終了が指示された場合には、ステップＳ４１５で、Ｉｎ点からＯｕｔ点までの蓄積されたセンサ時系列データから特徴量を算出する。具体的には、このノード８０に転送経路テーブルＴＤに基づいてセンサ時系列データが収集された触覚センサエレメント５８の組み合わせについて、上述の数９に示したような特徴ベクトルの成分をセンサ時系列データから算出する。なお、特徴量は、最大限の高い時間分解能で算出されるのが望ましい。
【０１８６】
続くステップＳ４１７で、クラス別の近似識別関数テーブルＤＦ＊に基づいて、部分特徴空間での各クラスの類似度を算出する。ここでいう部分特徴空間は、このノード８０で計算できる触覚センサエレメント５８の組み合わせについての特徴ベクトル、つまり、ステップＳ４１５で算出された特徴ベクトルを意味する。したがって、このステップＳ４１７では、認識対象の各クラスについて、近似識別関数テーブルＴＤ＊と特徴ベクトルに基づいて、このノード８０で計算できる触覚センサエレメント５８の組み合わせの要素についての上述の数８の計算が行われて、このノード８０の有する部分特徴空間での各クラスの類似度が算出される。このように、触覚センサ７６では、分散処理テーブルに基づいて、触覚インタラクションの識別のための分散処理を各ノード８０で実行することができる。
【０１８７】
そして、ステップＳ４１９で、算出された各クラスの類似度をホスト６０に送信する。これによって、ホスト６０は、上述のように、各ノード８０における各クラスの類似度を取得してそれらを合計することによって、数８の識別関数出力を認識対象のクラスごとに算出することができる。
【０１８８】
また、ステップＳ４２１では、部分特徴空間の各成分、つまり、ステップＳ４１５で算出した特徴ベクトルの各成分をホスト６０に送信する。これは、上述のように、識別器の検証やメンテナンス等のために行われる。ステップＳ４２１を終了すると、このノード分散処理を終了する。
【０１８９】
この実施例によれば、人間とのコミュニケーション時のロボット１０の触覚情報を触覚インタラクションデータベース７８に蓄積し、これを部分空間法で解析することによって、触覚インタラクションの識別器を構成し、コミュニケーション時の触覚注目点を求めるとともに、触覚情報の分散処理を行うためのセンサ群の切れ目を求めるようにした。したがって、多数の触覚センサエレメント５８で全身を覆われたロボット１０において、触覚情報の分散処理を実現することができる。これにより、触覚センサ７６の各ノード８０からは、各触覚センサエレメント５８の時系列データをホストＣＰＵ６０に送信する必要がなく、分散処理で情報量の少ないデータを生成することができるので、ホストＣＰＵ６０に送信する情報量を減らすことができる。また、ホストＣＰＵ６０で膨大な触覚情報を処理する必要がないので、ホストＣＰＵ６０として能力の低いものを使用することができ、つまり、低コストに抑えることができる。さらに、識別器によって予期される触覚インタラクションを識別することができるだけではなく、予想外の触行動（触覚センサ７６への予想外の入力）が行われたことも把握することができる。
【図面の簡単な説明】
【０１９０】
【図１】この発明の一実施例のコミュニケーションロボットを示す図解図である。
【図２】図１実施例のコミュニケーションロボットに用いる皮膚とその中に埋め込まれる触覚センサエレメントを示す図解図である。
【図３】図１実施例のコミュニケーションロボットの電気的構成の一例を示すブロック図である。
【図４】触覚センサの電気的構成の一例を示すブロック図である。
【図５】触覚インタラクションデータベース構築実験で用いられたシナリオを示す図解図である。
【図６】図５の実験にこの発明の識別手法を適用した結果として１５のインタラクションのクラスの認識率を示す図解図である。
【図７】図５の実験にこの発明の識別手法を適用した結果として１５のインタラクションのクラスの誤認識率を示す図解図である。
【図８】図５の実験から最大特異値に対応する正規直交ベクトルより作成した体性感覚マップを示す図解図であり、図８（Ａ）はクラス８の「よしよしして」の場合を示し、図８（Ｂ）はクラス１１の「こちょこちょして」の場合を示す。
【図９】分散処理テーブルの作成処理の動作の一例の一部を示すフロー図である。
【図１０】図９の続きを示すフロー図である。
【図１１】分散処理テーブルの作成例の説明のための簡略化した触覚センサを示す図解図である。
【図１２】図１１の触覚センサのための或るクラスの識別関数テーブルの一例を示す図解図であり、図１２（Ａ）は識別関数テーブルＤＦを示し、図１２（Ｂ）は近似識別関数テーブルＤＦ＊を示す。
【図１３】図１１の触覚センサのための或るクラスセットの転送経路テーブルＴＤの一例を示す図解図である。
【図１４】図１３の転送経路テーブルＴＤから作成された転送量に関するテーブルの一例を示す図解図であり、図１４（Ａ）は転送量テーブルＴＲを示し、図１４（Ｂ）は転送負荷テーブルＴＲＳを示す。
【図１５】図１４から調整した転送量に関するテーブルの一例を示す図解図であり、図１５（Ａ）は調整した転送量テーブルＴＲ＊を示し、図１５（Ｂ）は調整後の転送負荷テーブルＴＲＳ＊を示す。
【図１６】ノードのテーブル更新処理の動作の一例を示すフロー図である。
【図１７】ホストＣＰＵによって実行される触覚インタラクションの識別処理の動作の一例の一部を示すフロー図である。
【図１８】図１７の続きを示すフロー図である。
【図１９】ノードの分散処理の動作の一例を示すフロー図である。
【図２０】ノードのデータ交換処理の動作の一例を示すフロー図である。
【符号の説明】
【０１９１】
１０  …コミュニケーションロボット
２４  …皮膚
５８  …触覚センサエレメント
６０  …ＣＰＵ
６４  …メモリ
６８  …センサ入力／出力ボード
７６  …触覚センサ
７８  …触覚インタラクションデータベース
８０  …ノード
８６  …プロセッサユニット
【図１】
0005103589.tif 000013
【図２】
0005103589.tif 000014
【図３】
0005103589.tif 000015
【図４】
0005103589.tif 000016
【図５】
0005103589.tif 000017
【図６】
0005103589.tif 000018
【図７】
0005103589.tif 000019
【図８】
0005103589.tif 000020
【図９】
0005103589.tif 000021
【図１０】
0005103589.tif 000022
【図１２】
0005103589.tif 000023
【図１３】
0005103589.tif 000024
【図１４】
0005103589.tif 000025
【図１５】
0005103589.tif 000026
【図１６】
0005103589.tif 000027
【図１７】
0005103589.tif 000028
【図１８】
0005103589.tif 000029
【図１９】
0005103589.tif 000030
【図２０】
0005103589.tif 000031
【図１１】
0005103589.tif 000032