(57)【特許請求の範囲】
【請求項１】
複数の触覚センサを有するロボットであって、
前記複数の触覚センサで検出された複数の触覚データの独立成分分析によって算出された復元行列と、前記独立成分分析によって抽出された複数の独立成分のうち自分の動作に起因する成分を示す情報とを記憶する記憶手段、
前記複数の触覚センサで検出された複数の触覚データを取得する触覚データ取得手段、
前記触覚データ取得手段によって取得された前記複数の触覚データと前記記憶手段に記憶された前記復元行列とに基づいて、複数の独立成分を算出する算出手段、および
前記記憶手段に記憶された前記自分の動作に起因する成分を示す情報に基づいて、前記算出手段によって算出された前記複数の独立成分から自分の動作に起因する成分を除去する分離手段を備える、ロボット。
【請求項２】
前記触覚データ取得手段によって取得された前記複数の触覚データが検出されたときの自分の動作情報を取得する動作情報取得手段、
前記触覚データ取得手段によって取得された前記複数の触覚データに対して独立成分分析を実行する分析手段、および
前記分析手段による前記独立成分分析で抽出された複数の独立成分と前記動作情報取得手段によって取得された前記自分の動作情報との相関をとることによって、前記複数の独立成分のうち自分の動作に起因する成分を判別する判別手段をさらに備え、
前記記憶手段は、前記分析手段による前記独立成分分析によって算出された前記復元行列と、前記判別手段によって判別された前記自分の動作に起因する成分を示す情報とを記憶する、請求項１記載のロボット。
【請求項３】
前記動作情報取得手段は、前記自分の動作情報として、各関節軸の角度センサで検出された角度データを取得する、請求項２記載のロボット。
【請求項４】
前記動作情報取得手段は、前記自分の動作情報として、各関節軸の角度制御のためのコマンドデータを取得する、請求項２記載のロボット。
【請求項５】
複数の触覚センサを有するロボットの触覚情報のうち動作に起因する成分を判別するための方法であって、
前記複数の触覚センサで検出された複数の触覚データを取得し、
前記複数の触覚データが検出されたときの前記ロボットの動作情報を取得し、
前記複数の触覚データの独立成分分析を実行し、そして、
前記独立成分分析で抽出された複数の独立成分と前記ロボットの動作情報との相関をとることにより、前記複数の独立成分のうち前記ロボットの動作に起因する成分を判別する、判別方法。
【請求項６】
複数の触覚センサを有するロボットにおいて触覚情報のうち動作に起因する成分を分離するための方法であって、
前記複数の触覚センサで検出された複数の触覚データの独立成分分析によって算出された復元行列と、前記独立成分分析によって抽出された複数の独立成分のうち自分の動作に起因する成分を示す情報とを記憶しておき、
前記複数の触覚センサで検出された複数の触覚データを取得し、
取得された前記複数の触覚データと前記復元行列とに基づいて、複数の独立成分を算出し、そして、
前記自分の動作に起因する成分を示す情報に基づいて、算出された前記複数の独立成分から自分の動作に起因する成分を除去する、分離方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は触覚センサを有するロボットに関し、特にたとえば、人間と触覚コミュニケーションを行うコミュニケーションロボットのような全身に分布された複数の触覚センサを有するロボットに関する。
【背景技術】
【０００２】
たとえば特許文献１に示されるように、本件出願人は全身分布型触覚センサを備えるコミュニケーションロボットを提案してきた。このコミュニケーションロボットの全身は柔軟な皮膚で覆われており、当該皮膚中に複数の触覚センサが埋め込まれている。人とのコミュニケーションを目指すロボットにとって、全身を柔らかい素材で構成された皮膚と敏感な触覚で覆うことが、接触によって危害を加える危険性を減少させるという点で重要な要素の１つとなるだけでなく、ロボットと人間とが円滑にコミュニケーションを行うためには、全身分布型の高感度超柔軟性触覚センサに基づく触行動認識が必要不可欠になる。
【特許文献１】特開２００４−２８３９７５号公報[B25J 13/08, B25J 19/02]
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のロボットでは、触覚情報の検出精度を向上させるために触覚センサを鋭敏化すると、触覚センサはロボット自身の動作に反応してしまい、当該動作に起因するノイズが多くなってしまうという問題がある。検出される触覚情報の源を分離できないと、敏感なロボットの実現が困難になる。これを解決するために、ロボットが動いているときに触覚センサをオフにし、動きが止まったときに触覚センサをオンにする手法が容易に考えられるが、この手法では、ロボットが動作しているときの触覚情報を取得できなくなり、ロボットが動いているときの接触や危険などを検知して対応するということができない。
【０００４】
それゆえに、この発明の主たる目的は、新規な、触覚センサを有するロボットを提供することである。
【０００５】
この発明の他の目的は、触覚を敏感にしても自己の動作に起因する反応を分離できる、触覚センサを有するロボット、ならびに、動作起因成分の判別方法および分離方法を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００７】
第１の発明は、複数の触覚センサを有するロボットであって、複数の触覚センサで検出された複数の触覚データの独立成分分析によって算出された復元行列と、独立成分分析によって抽出された複数の独立成分のうち自分の動作に起因する成分を示す情報とを記憶する記憶手段、複数の触覚センサで検出された複数の触覚データを取得する触覚データ取得手段、触覚データ取得手段によって取得された複数の触覚データと記憶手段に記憶された復元行列とに基づいて、複数の独立成分を算出する算出手段、および記憶手段に記憶された自分の動作に起因する成分を示す情報に基づいて、算出手段によって算出された複数の独立成分から自分の動作に起因する成分を除去する分離手段を備える、ロボットである。
【０００８】
第１の発明では、ロボット（１０）は、複数の触覚センサ（５８）を有する。記憶手段（６４）には、複数の触覚データの独立成分分析によって算出された復元行列と、自分の動作に起因する成分を示す情報とが記憶されている。この記憶手段の情報を得るために、予めロボットと人とのインタラクションが実施され、複数の触覚センサで検出された複数の触覚データが取得される。復元行列は、複数の触覚データの独立成分分析によって抽出された複数の独立成分の復元行列である。また、自分の動作に起因する成分は、独立成分分析によって抽出された複数の独立成分と触覚データが検出されたときの自己の動作情報との相関をとることによって判別される。このロボットがたとえば人とインタラクションを行う際には、触覚データ取得手段（６０、Ｓ３、Ｓ２３）が、複数の触覚センサで検出された複数の触覚データを取得する。算出手段（６０、Ｓ２５）は、取得された複数の触覚データと復元行列に基づいて、複数の独立成分を算出する。分離手段（６０、Ｓ２７）は、自分の動作に起因する成分を示す情報に基づいて、複数の独立成分から自分の動作に起因する成分を除去する。
【０００９】
第１の発明によれば、記憶手段に復元行列と自分の動作に起因する成分を示す情報を記憶するようにしたので、復元行列と複数の触覚データから複数の独立成分を算出し、当該複数の独立成分から自分の動作に起因する成分を除去することができる。したがって、触覚情報源を分離することができ、敏感な触覚センサであっても、動作に起因する反応を触覚情報から分離することができる。
【００１０】
第２の発明は、第１の発明に従属するロボットであり、触覚データ取得手段によって取得された複数の触覚データが検出されたときの自分の動作情報を取得する動作情報取得手段、触覚データ取得手段によって取得された複数の触覚データに対して独立成分分析を実行する分析手段、および分析手段による独立成分分析で抽出された複数の独立成分と動作情報取得手段によって取得された自分の動作情報との相関をとることによって、複数の独立成分のうち自分の動作に起因する成分を判別する判別手段をさらに備え、記憶手段は、分析手段による独立成分分析によって算出された復元行列と、判別手段によって判別された自分の動作に起因する成分を示す情報とを記憶する。
【００１１】
第２の発明では、動作情報取得手段（６０、Ｓ５）は、独立成分分析が施される複数の触覚データが検出されたときの自分の動作情報を取得する。分析手段（６０、Ｓ９）は、複数の触覚データに対して独立成分分析を実行する。この独立成分分析によって、複数の独立成分と復元行列とが算出される。判別手段（６０、Ｓ１１）は、複数の独立成分と自分の動作情報との相関をとることによって、複数の独立成分のうち自分の動作に起因する成分を判別する。記憶手段には、分析手段による独立成分分析で算出された復元行列と、判別手段によって判別された自分の動作に起因する成分を示す情報とが記憶される。
【００１２】
第２の発明によれば、独立成分分析を実行することができ、復元行列を算出して記憶しておくことができる。また、自分の動作情報を取得して、自分の動作に起因する成分を判別することができ、当該自分の動作に起因する成分を示す情報を記憶しておくことができる。
【００１３】
第３の発明は、第２の発明に従属するロボットであり、動作情報取得手段は、自分の動作情報として、各関節軸の角度センサで検出された角度データを取得する。
【００１４】
第３の発明では、各関節軸の角度センサ（７８）で検出された角度データが自分の動作情報として取得される。したがって、各独立成分と角度データとの相関をとることによって、動作に起因する成分を判別することができる。
【００１５】
第４の発明は、第２の発明に従属するロボットであり、動作情報取得手段は、自分の動作情報として、各関節軸の角度制御のためのコマンドデータを取得する。
【００１６】
第４の発明では、各関節軸の角度制御のためのコマンドデータが自分の動作情報として取得される。したがって、各独立成分とコマンドデータとの相関をとることによって、動作に起因する成分を判別することができる。
【００１７】
第５の発明は、複数の触覚センサを有するロボットの触覚情報のうち動作に起因する成分を判別するための方法であって、複数の触覚センサで検出された複数の触覚データを取得し、複数の触覚データが検出されたときのロボットの動作情報を取得し、複数の触覚データの独立成分分析を実行し、そして、独立成分分析で抽出された複数の独立成分とロボットの動作情報との相関をとることにより、複数の独立成分のうちロボットの動作に起因する成分を判別する、判別方法である。
【００１８】
第５の発明によれば、外界からの接触による触覚情報と自己動作による触覚情報とを区別することができるので、触覚を敏感にしても自分の動作に起因する反応を分離できるロボットを実現することができる。
【００１９】
第６の発明は、複数の触覚センサを有するロボットにおいて触覚情報のうち動作に起因する成分を分離するための方法であって、複数の触覚センサで検出された複数の触覚データの独立成分分析によって算出された復元行列と、独立成分分析によって抽出された複数の独立成分のうち自分の動作に起因する成分を示す情報とを記憶しておき、複数の触覚センサで検出された複数の触覚データを取得し、取得された複数の触覚データと復元行列とに基づいて、複数の独立成分を算出し、そして、自分の動作に起因する成分を示す情報に基づいて、算出された複数の独立成分から自分の動作に起因する成分を除去する、分離方法である。
【００２０】
第６の発明によれば、触覚情報から自分の動作に起因する成分を除去することができるので、触覚を敏感にしても自分の動作に起因する反応を分離できるロボットを実現することができる。
【発明の効果】
【００２１】
この発明によれば、複数の触覚データの独立成分分析によって算出された復元行列と自分の動作に起因する成分を示す情報とを記憶しておくようにしたので、取得された複数の触覚データと復元行列に基づいて複数の独立成分を算出し、自分の動作に起因する成分を示す情報に基づいて当該複数の独立成分から自分の動作に起因する成分を除去することができる。したがって、触覚センサを鋭敏化しても、外界の接触による触覚情報と自己の動作による触覚情報とを分離することができる。
【００２２】
また、複数の触覚データと自分の動作情報を取得し、複数の触覚データの独立成分分析によって抽出した複数の独立成分と自分の動作情報との相関をとるようにしたので、自己の動作による触覚情報を判別することができる。
【００２３】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２４】
図１は、この発明の実施例のコミュニケーションロボット（以下、単に「ロボット」ともいう。）１０を示す。ロボット１０は台車１２を含み、この台車１２の側面には、このロボット１０を自律移動させる車輪１４が設けられる。この車輪１４は、車輪モータ（図３において参照番号「１６」で示す。）によって駆動され、台車１２すなわちロボット１０を前後左右任意の方向に動かすことができる。なお、図示しないが、この台車１２の前面には、衝突センサが取り付けられ、この衝突センサは、台車１２への人間や他の障害物の接触を検知する。
【００２５】
台車１２の上には、多角形柱状のセンサ取付パネル１８が設けられ、このセンサ取付パネル１８の各面には、超音波距離センサ２０が取り付けられる。この実施例ではたとえば２４個の超音波距離センサ２０が周囲３６０度にわたるように設けられる。この超音波距離センサ２０は、センサ取付パネル１８すなわちロボット１０の周囲の主として人間との距離を計測するものである。具体的には、超音波距離センサ２０は超音波を発射し、その超音波が人から反射されて超音波距離センサ２０に入射されたタイミングを測定して、人との間の距離情報を出力する。
【００２６】
台車１２の上には、人体状部２２が直立するように取り付けられる。このロボット本体としての人体状部２２の全身は、後に詳しく説明するように、柔軟素材からなる皮膚２４によって覆われる。人体状部２２は、たとえば鉄板のような筐体（図示せず）を含み、その筐体にコンピュータやその他必要なコンポーネントを収容している。そして、皮膚２４は、その筐体上に被せられる。皮膚２４の下の筐体の上部ほぼ中央にはマイク２６が設けられる。このマイク２６は、周囲の音声、特に人間の声を収集するためものである。
【００２７】
人体状部２２は、身体動作を実行可能な身体部位を備えている。具体的には、人体状部２２は、可動部として右腕２８Ｒおよび左腕２８Ｌを含む。右腕２８Ｒおよび左腕２８Ｌすなわち上腕３０Ｒおよび３０Ｌは、それぞれ、肩関節３２Ｒおよび３２Ｌによって、胴体部分に変位自在に取り付けられる。この肩関節３２Ｒおよび３２Ｌは、３軸の自由度を有する。上腕３０Ｒおよび３０Ｌには、１軸の肘関節３４Ｒおよび３４Ｌによって、前腕３６Ｒおよび３６Ｌが取り付けられ、この前腕３６Ｒおよび３６Ｌには、手３８Ｒおよび３８Ｌが取り付けられる。これら右腕２８Ｒおよび左腕２８Ｌの各関節における各軸はここでは図示しないモータによってそれぞれ制御される。すなわち、右腕２８Ｒおよび左腕２８Ｌのそれぞれ４個のモータが、図３において、それぞれ右腕モータ４０および左腕モータ４２として表される。
【００２８】
さらに、人体状部２２の上部には可動部として頭部４６が設けられる。頭部４６は、首関節４４を介して人間の頭と同様に俯仰・回転可能に取付けられる。この３軸（パン、チルトおよびロール軸）の首関節４４は、図３に示す頭部モータ４８によって制御される。頭部４６の前面の「目」に相当する位置には２つの眼カメラ５０が設けられ、この眼カメラ５０は、ロボット１０に接近した人間の顔や他の部分を撮影してその映像信号を取り込む。頭部４６の前面の目カメラ５０の下方にはスピーカ５２が設けられる。このスピーカ５２は、ロボット１０がそれの周囲の人間に対して音声によってコミュニケーションを図るために用いられる。
【００２９】
上で説明した人体状部２２の胴体や頭部４６および腕は上記したようにすべて柔軟な素材からなる皮膚２４に覆われる。この皮膚２４は、図２に示すように、下層のウレタンフォーム５４と、その上に積層される比較的肉厚のシリコーンゴム層５６ａおよび比較的肉薄のシリコーンゴム層５６ｂとを含む。そして、２つのシリコーンゴム層５６ａおよび５６ｂの間に、ピエゾセンサシート５８が埋め込まれる。このピエゾセンサシート５８は、圧電フィルム（たとえばＰＶＤＦ（ポリビニリデンフルオロイド））の両面に金属薄膜が形成された構造、つまり、圧電体が導体で挟まれた構造を有する圧電センサである。ピエゾフィルムは、圧力等で変形されると、両面金属薄膜間にピエゾ電気を発生し、すなわち、そのひずみ速度に応じた電圧を発生する。ピエゾフィルムは、たとえば、３０×３０ｍｍ程度の大きさにカットされ、約５ｍｍの間隔で皮膚２４中に配置される。
【００３０】
皮膚２４では、上述のように、発泡ウレタンとシリコーンゴムとを使って柔らかさを得るようにしている。シリコーンゴムだけである程度の厚みと柔らかさとを得ようとすると、重くなりすぎてエネルギ消費量が大きくなるだけでなく、裂傷に弱くなるので、大まかな形と厚みをウレタンフォームで作り、その表面を約２０ｍｍのシリコーンゴムで覆う形が採用されている。そして、シリコーンゴム層を２つにし、それらのシリコーンゴム層５６ａおよび５６ｂの間に、上述のピエゾセンサシート５８が埋め込まれる。さらに、内側のシリコーンゴム層５６ａが厚く（約１５ｍｍ）され、表面側のシリコーンゴム層５６ｂが薄く（約５ｍｍ）される。これによって、ロボット１０の振動や人間が表面を押したときに生じる高周波の振動をカットでき、なおかつフィルムが変形し易くなるので、圧力の計測が容易になる。つまり、シリコーンゴム層の厚みはロボット１０の構造やパワーによるが、なるべく薄く、しかし変形が伝わり易く、雑音となる振動が伝わり難いものが必要となる。また、この柔らかい皮膚を介して、人との間で触行動によるコミュニケーションを行うことができるので、人に対して安心感を与えて親和性を高めることができるし、触れたりぶつかったりした場合の人の怪我を防止して安全性も高めることができる。
【００３１】
なお、皮膚２４の素材は軟性素材であればよく、上述のものに限定されずたとえば他のゴム素材等でもよい。ただし、ピエゾセンサシートの表面金属薄膜が腐食しない材質である必要がある。また、上述の皮膚２４の厚み（各層の厚み）は一例であり、素材等によって適宜変更され得る。また、皮膚２４の積層構造も適宜変更可能である。
【００３２】
このように、人体状部２２の全身にわたって多数のピエゾセンサシート（触覚センサエレメント）５８が埋め込まれており、全身分布型の高密度で超柔軟の触覚センサ（図３において参照符号「７６」で示す。）が構築されている。後述するように、触覚センサ７６は、複数のノード８０（図４参照）を含むセンサネットワークで構成されており、各ノード８０は、複数の触覚センサエレメント５８、センサ値読取装置および演算装置等を備えている。この触覚センサ７６によって、ロボット１０の全身において人間や物の接触によって皮膚２４に加えられた圧力を圧覚（触覚）情報として検知することができる。
【００３３】
図１に示すロボット１０の電気的構成の一例が図３のブロック図に示される。図３に示すように、このロボット１０は、全体の制御のためにマイクロコンピュータまたはＣＰＵ６０を含み、このＣＰＵ６０には、バス６２を通して、メモリ６４，モータ制御ボード６６，センサ入力／出力ボード６８およびサウンド入力／出力ボード７０が接続される。
【００３４】
メモリ６４は、図示しないが、ＲＯＭやＨＤＤ、ＲＡＭ等を含む。ＲＯＭやＨＤＤ等にはこのロボット１０の制御プログラムが予め書き込まれている。制御プログラムはたとえばコミュニケーション行動を実行するためのプログラム、外部のコンピュータと通信するためのプログラム等を含む。メモリ６４にはまた、コミュニケーション行動を実行するためのデータが記憶され、そのデータは、たとえば、個々の行動を実行する際に、スピーカ５２から発生すべき音声または声の音声データ（音声合成データ）、および所定の身振りを提示するための各関節軸の角度制御データ（コマンドデータ）等を含む。ＲＡＭは、一時記憶メモリおよびワーキングメモリとして利用される。
【００３５】
モータ制御ボード６６は、たとえばＤＳＰ(Digital Signal Processor)で構成され、上述の各腕や頭部などの各モータ１６、４０、４２、４８を制御する。各モータ１６、４０、４２、４８はそれぞれポテンショメータまたはロータリエンコーダ等の角度センサ７８を備えている。各角度センサ７８は各関節軸の回転角度（関節角度）を検出し、当該回転角度を示す信号をモータ制御ボード６６に与える。モータ制御ボード６６は、角度センサ７８からの信号を用いて各モータ１６、４０、４２、４８をフィードバック制御する。
【００３６】
具体的には、モータ制御ボード６６は、ＣＰＵ６０からのコマンドデータを受けて、右肩関節３２Ｒの３軸のそれぞれの角度を制御する３つのモータと右肘関節３４Ｒの１軸の角度を制御する１つのモータとの計４つのモータ（図３ではまとめて、「右腕モータ」として示す。）４０の回転角度を、各軸の角度センサ７８の回転角度データ（関節角度データ）を用いて調節する。また、モータ制御ボード６６は、左肩関節３２Ｌの３軸と左肘関節３４Ｌの１軸、計４つのモータ（図３ではまとめて、「左腕モータ」として示す。）４２の回転角度を、各軸の角度センサ７８の回転角度データを用いて調節する。モータ制御ボード６６は、また、頭部４６を変位させる首関節４４の３軸のモータ（図３ではまとめて、「頭部モータ」として示す。）４８の回転角度を、各軸の角度センサ７８の回転角度データを用いて調節する。さらに、モータ制御ボード６６は、車輪１４を駆動する２つのモータ（図３ではまとめて、「車輪モータ」として示す。）１６を、各軸の角度センサ７８からの回転角度データを用いて制御する。
【００３７】
なお、この実施例の各モータ１６、４０、４２、４８は、直流モータ（サーボモータ）であるが、他の実施例では、車輪モータ１６を除いて、それぞれステッピングモータまたはパルスモータであってよい。
【００３８】
センサ入力／出力ボード６８も、同様に、ＤＳＰで構成され、各センサやカメラからの信号を取り込んでＣＰＵ６０に与える。すなわち、図示しない衝突センサの各々からの接触に関するデータがこのセンサ入力／出力ボード６８を通してＣＰＵ６０に入力される。また、眼カメラ５０からの映像信号が、必要に応じてこのセンサ入力／出力ボード６８で所定の処理が施された後、ＣＰＵ６０に入力される。
【００３９】
また、触覚センサ７６が、このセンサ入力／出力ボード６８に接続されており、ＣＰＵ６０と触覚センサ７６はセンサ入力／出力ボード６８を介してデータを送受信する。
【００４０】
サウンド入力／出力ボード７０には、スピーカ５２およびマイク２６が接続される。スピーカ５２にはサウンド入力／出力ボード７０を介して、ＣＰＵ６０から、合成音声データが与えられ、それに応じて、スピーカ５２からはそのデータに従った音声または声が出力される。また、マイク２６からの音声入力が、サウンド入力／出力ボード７０を介して、ＣＰＵ６０に取り込まれる。
【００４１】
また、ＣＰＵ６０には、バス６２を介して通信ＬＡＮボード７２および無線通信装置７４が接続される。この通信ＬＡＮボード７２および無線通信装置７４によって、ロボット１０は外部のコンピュータ等と無線通信を行うことができる。具体的には、通信ＬＡＮボード７２は、ＤＳＰで構成され、ＣＰＵ６０からの送信データを無線通信装置７４に与え、無線通信装置７４から送信データを、図示は省略するが、たとえば無線ＬＡＮまたはインタネットのようなネットワークを介して、外部のコンピュータに送信させる。また、通信ＬＡＮボード７２は、無線通信装置７４を介して外部のコンピュータからのデータを受信し、受信したデータをＣＰＵ６０に与える。
【００４２】
触覚センサ７６の電気的構成の一例が図４のブロック図に示される。触覚センサ７６は複数のノード８０を含み、各ノード８０は複数の触覚センサエレメント５８を備えている。複数のノード８０はバス８２を介して相互に接続される。バス８２はたとえばＲＳ４２２シリアルバスであり、センサ入力／出力ボード６８に設けられるシリアル通信ポートに接続されている。このように、複数のノード８０およびＣＰＵ６０がセンサネットワークを構成しており、接続された経路を介して通信を行う。
【００４３】
なお、触覚センサ７６のネットワーク構造は適宜変更可能であり、たとえば、本件出願人による特開２００６−２８７５２０号公報に開示されるような相互接続型のセンサネットワークが構築されてもよい。
【００４４】
各ノード８０は基板８４を含み、この基板８４に当該ノード８０に所属する複数の触覚センサエレメント５８が接続される。また、基板８４には、センサ値読取装置としてのＡ／Ｄ変換器８８および増幅器９０、ならびに演算装置としてのプロセッサユニット８６が設けられている。各触覚センサエレメント５８からの配線は増幅器９０に接続されている。
【００４５】
なお、基板８４と所属する各触覚センサエレメント５８との配線長を短くするために、各ノード８０の基板８４は、所属する各触覚センサエレメント５８のなるべく近傍になるように筐体内において配置される。たとえば、２００−３００枚程度の触覚センサエレメント５８がロボット１０の全身の皮膚２４中に分布されており、また、十数枚程度の基板８４が設けられる。各基板８４には数十枚程度の触覚センサエレメント５８が割り当てられる。
【００４６】
各触覚センサエレメント５８の出力信号は、増幅器９０で電流増幅された後、Ａ／Ｄ変換器８８によってディジタルデータに変換される。このＡ／Ｄ変換器８８は、たとえば１６ｂｉｔ、１００Ｈｚの時空間分解能でサンプリングを行う。Ａ／Ｄ変換器８８でサンプリングされたデータはプロセッサユニット８６に与えられる。
【００４７】
プロセッサユニット８６は、ノードプロセッサであり、つまり、当該ノード８０の制御および通信制御を行うマイクロコンピュータである。プロセッサユニット８６は、ＲＯＭおよびＲＡＭなどのメモリを内蔵している。内蔵メモリのＲＯＭにはノード８０の動作を制御するためのプログラムおよびデータが予め記憶される。Ａ／Ｄ変換器８８で読み取られた各触覚センサエレメント５８のセンサ出力データ（時系列データ）は、内蔵メモリのＲＡＭに記憶される。このプロセッサユニット８６により、センサ出力の時系列データの処理を各ノード８０において行うことができる。また、このプロセッサユニット８６が上述のバス８２に接続されており、バス８２を介して他のノード８０のプロセッサユニット８６およびＣＰＵ６０との間で通信を行うことができるので、ＣＰＵ６０は各ノード８０で検出された触覚データを取得することができる。
【００４８】
このロボット１０では、触覚センサ７６は、人と接触したとき以外にも、つまり、自分が動作したときや環境と接触したときにも反応する。これらの源の異なる触覚情報は、ロボット１０の全身に配置した各触覚センサエレメント５８の反応の分布が異なる。例えば、人が手でロボット１０を軽く触れたときは、触れた部分のみが反応し、一方、ロボット１０が腕を動かしたときには、腕全体の触覚センサエレメント５８が反応する。このような特徴を利用することにより触覚データに含まれる情報源分離を行う。具体的には、全身に複数配置された触覚センサエレメント５８で検出されたデータを独立成分分析（Independent Component Analysis）にかけ、当該触覚データに含まれる独立成分を抽出することで情報源分離を行う。
【００４９】
図５は、ロボット１０のＣＰＵ６０によって実行される触覚データの独立成分を抽出するための処理の一例を示す。独立成分分析のためのデータを取得して独立成分分析を行う。
【００５０】
具体的には、ステップＳ１で、人とロボット１０とのインタラクションを実施する。この人とロボット１０の対話において、ロボット１０は、所定の身振りおよび音声発話の少なくとも一方を用いて所定の行動を提示する。そして、各種センサを用いて人の行動や反応を認識し、当該認識結果に応じて所定の行動を実行する。このステップＳ１のデータ取得のためのインタラクションが繰り返し実行されて、ロボット１０の実行可能な様々な身体動作を伴った様々な行動が実行されるのが望ましく、さらに人の触行動を伴うような触覚コミュニケーションが行われるのが望ましい。
【００５１】
なお、ロボット１０の実行する個々の行動は、メモリ６４に予め記憶されたプログラムおよびデータに従って実行される。また、行動の選択もプログラムに従って行われる。あるいは、行動の選択は、全部または部分的にロボット１０の遠隔制御システムのオペレータによって実行されてもよく、その場合、ロボット本体１０のＣＰＵ６０は、通信ＬＡＮボード７２および無線通信装置７４等を介して遠隔制御用コンピュータ（図示しない）と通信し、たとえば、各種センサのデータを送信したり、遠隔制御コマンドを受信したりする。
【００５２】
このインタラクションの間の触覚データを計測するとともにロボット１０の動作情報を取得する。すなわち、ステップＳ３で、触覚センサ７６で検出された触覚データを取得する。具体的には、ＣＰＵ６０は、触覚センサ７６の各ノード８０に定期的に触覚データを要求し、各ノード８０から触覚データを受信する。上述のように、各ノード８０では、所定の周期で各触覚センサエレメント５８の出力データが検出されており、各ノード８０は、ＣＰＵ６０の要求に応じて、各触覚センサエレメント５８の出力の時系列データをＣＰＵ６０に送信する。これによって、この実施例では、インタラクションを実行しているときに検出されたすべての触覚センサエレメント５８の出力の時系列データ（触覚データ）がメモリ６４の所定領域に取得される。触覚データは、時刻、触覚センサエレメント５８の識別情報および触覚情報を含む。人がロボット１０に対して触行動をしている場合には、人の触行動に起因する触覚成分を含む触覚データが取得され、また、ロボット１０が頭部４６や左右の腕など身体部位を動かしている場合には、ロボット１０自身の動作に起因する触覚成分を含む触覚データが取得される。
【００５３】
続くステップＳ５で、触覚データを検出したときのロボット１０自身の動作情報として、角度センサ７８で検出された関節角度データを取得する。具体的には、ＣＰＵ６０は、モータ制御ボード６６に定期的に関節角度データを要求し、モータ制御ボード６６から各角度センサ７８で検出された各関節軸の角度データ（関節角度データ）を受信する。モータ制御ボード６６は、各角度センサ７８の出力データを所定周期で検出しており、ＣＰＵ６０の要求に応じて、各角度センサ７８の出力の時系列データをＣＰＵ６０に送信する。これによって、インタラクションを実行しているときに角度センサ７８で検出された各関節軸の角度データがメモリ６４の所定領域に取得される。関節角度データは、時刻、関節軸の識別情報および関節角度を含む。
【００５４】
そして、ステップＳ７で、インタラクションが終了したか否かを判断する。たとえば、メモリ６４に記憶されたプログラムに従ってロボット１０と人とのインタラクションが終了したか否かが判断され、あるいは、オペレータの遠隔制御によって終了が選択されたか否かが判断される。ステップＳ７で“ＮＯ”の場合、処理はステップＳ１に戻る。したがって、インタラクションが終了するまで、触覚データと関節角度データの取得とメモリ６４への記録が続けられる。
【００５５】
一方、ステップＳ７で“ＹＥＳ”の場合、つまり、データ取得を終了した場合には、続くステップＳ９で、取得した触覚データの独立成分分析によって独立成分を抽出する。この独立成分分析によって、復元行列が算出される。
【００５６】
ここで、復元行列は、各独立成分を表す係数行列である。独立成分は、各触覚センサ出力の線形結合で表され、そのときの係数をまとめたものを復元行列と呼ぶ。たとえば、独立成分をａｍ、各触覚センサ出力をｓｉ、係数をｋｍｉとすると、独立成分ａｍは次の数１で表される。
【００５７】
【数１】
0005229701.tif 000002
【００５８】
ここで、ｎは触覚センサエレメント５８の数である。ｍは独立成分の番号を示す。各独立成分の番号は、寄与率に従って決められる。
【００５９】
このとき、独立成分ａｍに対応する復元行列Ａｍは、次の数２で表される。
【００６０】
【数２】
0005229701.tif 000003
【００６１】
算出された復元行列は、特異なものであり、ロボット１０の個性を表す。復元行列はメモリ６４に記憶される。後述するように、人とのインタラクションの際には、この復元行列を用いて、検出された触覚データから各独立成分を算出することができる。
【００６２】
さらに、ステップＳ１１で、抽出された複数の独立成分のうち動作に起因する成分を判別する。具体的には、各独立成分と自己の動作情報（この実施例では関節角度データ）との相関をとることによって、複数の独立成分のうちの動作に起因する成分を判別する。つまり、独立成分の波形（時間変化）と関節角度の波形（時間変化）との相関がとられ、相関度の高いすなわち所定値以上の成分が、動作に起因する成分であると判断される。そして、当該動作に起因する成分を示す情報がメモリ６４に記憶される。たとえば、各独立成分に割り当てられている番号ｍのうち動作に起因する成分の番号が特定されて記憶される。後述するように、人とのインタラクションの際には、この動作起因成分を示す情報に基づいて、復元行列を用いて算出された各独立成分のうち動作に起因する成分を特定することができる。ステップＳ１１を終了すると、この図５の処理を終了する。
【００６３】
なお、この実施例では、図５の処理は、ロボット１０のＣＰＵ６０によって実行されたが、他の実施例では、ステップＳ９およびＳ１１の独立成分分析の処理は、ロボット１０の外部に設けた処理用コンピュータで実行するようにしてもよい。その場合、ロボット本体１０のＣＰＵ６０は、メモリ６４に記録した触覚データと関節角度データとを、通信ＬＡＮボード７２および無線通信装置７４等を介して処理用コンピュータ（図示しない）に所定のタイミングで送信する。処理用コンピュータは、触覚データと関節角度データとを受信してＨＤＤ等に記憶し、分析を行う。分析の結果として得られた復元行列と動作に起因する成分を示す情報とは、処理用コンピュータからロボット本体１０に送信されてメモリ６４に記憶される。
【００６４】
検出された触覚データおよび抽出された独立成分の一例が図６および図７にそれぞれ示される。図６は、ロボット１０の前腕２８Ｌに配置された触覚センサエレメント５８の出力を示す。この例では、ロボット１０の前腕２８Ｌには１２個の触覚センサエレメント５８が配置されており、したがって、図６では、触覚センサエレメント５８の番号ｉが１から１２までの触覚データの波形が示されている。このデータ取得の際には、ロボット１０が前腕２８Ｌの関節すなわち肘関節３４Ｌを繰り返し曲げ伸ばしさせており、そのときに人が軽く当該腕に触れるという状況であった。たとえば、図６に示す触覚データにおいて、Ｔｉｍｅ＝６０００［１／１００ｓｅｃ]付近やＴｉｍｅ＝１００００［１／１００ｓｅｃ］付近に見られる繰り返し波形は、自己動作に起因するものである。また、センサ番号ｉ＝１，５〜８の触覚データにおいて、Ｔｉｍｅ＝３０００［１／１００ｓｅｃ］付近やＴｉｍｅ＝１１０００［１／１００ｓｅｃ］付近に見られる波形は、外界からの接触に起因するもの、つまり、この場合、人が触ったことに起因するものである。
【００６５】
また、図７は、図６に示す波形の独立成分分析によって求めた独立成分を示す。１２個の独立成分が抽出されているので、独立成分の番号ｍが１から１２までの独立成分が示されている。寄与率の小さい成分ほど、変数ｍに小さい番号が割り当てられている。図６および図７の時間軸は対応している。
【００６６】
図７に示す独立成分と自己の動作情報（図示しない）との相関をとることにより、動作に起因する成分が判別される。ここでは、下から１つ目および２つ目の成分、つまり、番号ｍ＝１１および１２の成分が動作に起因する成分であった。これらｍ＝１１および１２の成分では、Ｔｉｍｅ＝６０００［１／１００ｓｅｃ]付近やＴｉｍｅ＝１００００［１／１００ｓｅｃ］付近に繰り返し波形が明確に現れており、ロボット１０が肘関節３４Ｌを繰り返し曲げ伸ばしさせたことに起因する反応であることがよく分かる。
【００６７】
このように、各独立成分と自己動作情報との相関をとることにより、動作起因成分を特定することができる。したがって、ロボット１０に復元行列と動作起因成分を示す情報とを記憶しておけば、検出された触覚データから独立成分を算出し、当該独立成分から動作起因成分を取り除くことが可能になる。これにより、外界からの接触に起因する成分だけを含む触覚情報を得て、コミュニケーション行動を制御することが可能になる。
【００６８】
ロボット１０のＣＰＵ６０によって実行される行動制御処理の一例を図８に示す。ステップＳ２１で、人とロボット１０のインタラクションを実施する。この処理は、図５のステップＳ１の処理と同様であり、これによって、ロボット１０は身体動作および音声発話の少なくとも一方を用いて所定の行動を実行する。
【００６９】
ステップＳ２３では、触覚データを取得する。上述のように、触覚センサ７６の各ノード８０では、各触覚センサエレメント５８の触覚データが所定周期で検出されている。ＣＰＵ６０は、触覚センサ７６の各ノード８０に定期的に触覚データを要求して各ノード８０から触覚データを受信し、メモリ６４に記憶する。これにより、ステップＳ２１でインタラクションを開始してからの触覚データを計測し記録する。なお、触覚データの計測時間は、ステップＳ２１で実行される行動に従って決められる。
【００７０】
触覚データの取得を終了すると、ステップＳ２５で、復元行列を用いて各独立成分を算出する。上述の数１に示すように、独立成分は、各触覚センサ出力の線形結合で表され、そのときの係数が復元行列である。したがって、数１に従って、メモリ６４に記憶されている復元行列と取得された触覚データとに基づいて各独立成分を算出する。
【００７１】
ステップＳ２７では、動作に起因する成分を除去する。具体的には、メモリ６４に記憶されている動作に起因する成分を示す情報に基づいて、算出された複数の独立成分のうち、動作に起因する成分の番号ｍに対応する成分を取り除く。
【００７２】
続くステップＳ２９で、触覚コミュニケーション動作を実施する。たとえば、ロボット１０が触られたかどうかの情報のみを必要とする場合には、動作に起因する成分を除去した独立成分に基づいて、人の触行動を判別し、当該人の触行動に応じた行動を実行する。また、ロボット１０がどこをどのように触られたかといった情報が必要な場合には、動作に起因する成分を除去した独立成分を、逆変換（復元行列の逆行列によって変換）することにより、動作に起因する成分を除いたクリアな触覚情報を算出することができ、当該クリアな触覚情報に基づいて人の触行動を判別し、当該人の触行動に応じた行動を実行することができる。
【００７３】
そして、ステップＳ３１でインタラクションが終了であるか否かを判断する。たとえば、人間とのインタラクションを終了するか否かを、メモリ６４に記憶されたプログラムまたはオペレータの遠隔制御コマンドに従って判断する。ステップＳ３１で“ＮＯ”の場合、処理はステップＳ２１に戻り、人とのインタラクションを継続する。一方、ステップＳ３１で“ＹＥＳ”の場合、この図８の処理を終了する。
【００７４】
このように、触覚データの独立成分分析によって算出された復元行列、および複数の独立成分と関節角度データとの相関をとることによって判別された動作に起因する成分を示す情報を記憶しておけば、触覚情報源を分離して動作起因成分を除去することができる。したがって、当該自己動作起因成分を除去したクリアな触覚情報を得ることができるとともに、当該クリアな触覚情報に基づいて行動を制御することができる。
【００７５】
なお、上述の実施例では、動作に起因する成分を判別するために、自分の動作情報として角度センサ７８で検出される関節角度データを取得するようにしていた。しかし、他の実施例では、ロボット１０に所定の身体動作を実行させるためのコマンドデータを取得するようにしてもよい。
【００７６】
この実施例のコマンドデータは、各関節軸の角度制御のためのデータであり、ロボット１０の実行する身体動作ごとのコマンドデータが予めメモリ６４に記憶されている。コマンドデータは、各関節軸の開始角度、終了角度および動作時間に関する情報を含んでいる。身体動作を実行する際には、ＣＰＵ６０は当該身体動作に応じたコマンドデータをモータ制御ボード６６に与え、モータ制御ボード６６は、動作時間が経過する間に各関節軸が開始角度から終了角度になるように各モータを制御する。より詳しくは、所定の身体動作の実行にかかる全体の時間が複数の区間に分割され、当該分割された区間のそれぞれが動作時間として設定されている。つまり、コマンドデータでは、所定の身体動作の全体を実行するために、複数の動作時間のそれぞれにおける各関節軸の開始角度および終了角度が指示される。
【００７７】
したがって、この実施例では、図５のステップＳ５で、実行する身体動作のコマンドデータを読み出して、当該コマンドデータから各関節軸の角度の時系列データを生成して、これを自己の動作情報として取得する。なお、時系列データを生成する際には、さらに各動作時間内の角度を補間するようにしてよい。図５のステップＳ１１では、生成した各関節軸の角度制御の時系列データと各独立成分との相関をとることによって、自己の動作に起因する成分を判別することができる。ただし、角度センサ７８で検出される関節角度データは、ロボット１０の実際の動作を示しているので、上述の図５の実施例のように当該検出された関節角度データを用いた方がより正確な自己動作情報を得ることができ、より適切な相関を計算することが可能である。
【００７８】
また、上述の各実施例では、触覚センサ７６の備えるすべての触覚センサエレメント５８で検出された触覚データに対して、独立成分分析を行うようにしていた。しかしながら、他の実施例では、動作した部位ごとに独立成分分析を行うようにしてもよい。
【００７９】
具体的には、図５の独立成分のための処理におけるステップＳ９では、動作した部位ごとに、当該部位に配置された触覚センサエレメント５８の触覚データの独立成分分析を行って、部位ごとに復元行列を算出し、ステップＳ１１では、部位ごとの独立成分のうち動作起因成分を判別する。また、図８の行動制御処理におけるステップＳ２５では、部位ごとの復元行列と動作した部位の触覚データとに基づいて、部位ごとの独立成分を算出し、ステップＳ２７では、部位ごとに、独立成分から動作起因成分を除去する。この実施例のロボット１０では、首関節４４の３軸のいずれかが動作している場合、頭部４６の触覚データに対して各処理を実行し、肘関節３４Ｌまたは３４Ｒが動作している場合、前腕２８Ｌまたは２８Ｒと手３８Ｌまたは３８Ｒの触覚データに対して各処理を実行し、肩関節３２Ｌまたは３２Ｒが動作している場合、上腕３０Ｌまたは３０Ｒと前腕２８Ｌまたは２８Ｒと手３８Ｌまたは３８Ｒの触覚データに対して各処理を実行する。
【００８０】
このようにすれば、触覚センサデータの次元を減らし、計算量を抑えることができる。なお、各関節軸が動作しているかどうかは、角度センサ７８で検出された関節角度データまたは当該身体動作を実行するためのコマンドデータによって判別することができる。また、ロボット１０の各関節も触覚センサ７６を有する皮膚２４で覆われ、かつ、当該皮膚２４が隣接する部位の皮膚２４と繋がって形成される場合には、動作した部位には、隣接する部位を含めるようにする。
【００８１】
また、他の実施例では、図８の行動制御処理で実行されたインタラクションにおいて取得された触覚データとロボット１０の動作情報とを、ロボット１０の内部または外部に設けた記憶装置に蓄積するようにしてもよく、その場合には、学習が可能であり、図５の処理によって復元行列と動作に起因する成分を示す情報とを更新することができる。
【図面の簡単な説明】
【００８２】
【図１】この発明の一実施例のコミュニケーションロボットを示す図解図である。
【図２】図１実施例のコミュニケーションロボットに用いる皮膚とその中に埋め込まれる触覚センサエレメントを示す図解図である。
【図３】図１実施例のコミュニケーションロボットの電気的構成の一例を示すブロック図である。
【図４】触覚センサの電気的構成の一例を示すブロック図である。
【図５】触覚データを取得して独立成分を抽出するための処理の動作の一例を示すフロー図である。
【図６】触覚データの一例を示す図解図である。
【図７】図６の触覚データの独立成分分析により抽出された独立成分を示す図解図である。
【図８】復元行列を利用した行動制御処理の動作の一例を示すフロー図である。
【符号の説明】
【００８３】
１０  …コミュニケーションロボット
５８  …触覚センサエレメント
６０  …ＣＰＵ
６４  …メモリ
６８  …センサ入力／出力ボード
７６  …触覚センサ
７８  …角度センサ
８０  …ノード
８６  …プロセッサユニット
【図１】
0005229701.tif 000004
【図２】
0005229701.tif 000005
【図３】
0005229701.tif 000006
【図４】
0005229701.tif 000007
【図５】
0005229701.tif 000008
【図６】
0005229701.tif 000009
【図７】
0005229701.tif 000010
【図８】
0005229701.tif 000011