説明

触覚センサを有するロボット

【構成】ロボット10は、たとえば、触覚インタラクションのために触覚センサ(58,76)を備えるコミュニケーションロボットである。ロボット10は、複数の姿勢領域のそれぞれに対応付けられた、動作データと触覚センサ出力データの関係を示す線形モデルを記憶している。ロボット10が運動する際には、ロボット10は動作データすなわち関節角度データを取得し、現在の姿勢領域に対応する線形モデルを選択し、当該線形モデルを用いて触覚センサ出力データを推定する。そして、ロボット10は、実際に取得された触覚センサ出力データから推定値を差し引くことによって、自己動作に起因するノイズを除去する。
【効果】自己動作に起因する触覚ノイズを除去することができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は触覚センサを有するロボットに関し、特にたとえば、人間と触覚コミュニケーションを行うコミュニケーションロボットのような全身に分布された複数の触覚センサを有するロボットに関する。
【背景技術】
【0002】
近年、日常生活で行動することを目的としたロボットが盛んに開発されている。このようなロボットは人と触れ合う機会が多いため、人との身体接触を伴ったインタラクション(触覚インタラクション)を行う能力が必須となると考えられる。人間は、握手といった触覚インタラクションを日常的に行っており、「なでる」や「たたく」などに代表されるインタラクションは、触り手の意図を伝えるための重要なコミュニケーション手段となっている。ロボットがこのような触覚インタラクションを行う能力を身につけることにより、人とのコミュニケーションがより円滑に遂行されると考えられる。
【0003】
たとえば特許文献1に示されるように、本件出願人は全身分布型触覚センサを備えるコミュニケーションロボットを提案してきた。このコミュニケーションロボットの全身は柔軟な皮膚で覆われており、当該皮膚中に複数の触覚センサ(圧電素子)が埋め込まれている。
【特許文献1】特開2004−283975号公報[B25J 13/08, B25J 19/02]
【発明の開示】
【発明が解決しようとする課題】
【0004】
ロボットが何らかのタスクを遂行するためには、当然ながら運動する必要があるが、触覚センサとしてひずみゲージや圧電素子など物理的な変形を計測するセンサを用いた場合、ロボット自身の動作によっても反応する。ロボットの触覚は、人との接触を検出するために敏感であることが望ましいが、敏感であればあるほどロボット自身の動作による影響は大きくなるため、ロボットの動作に起因する触覚センサの反応により接触を誤検出する可能性が高くなってしまう。
【0005】
それゆえに、この発明の主たる目的は、新規な、触覚センサを有するロボットを提供することである。
【0006】
この発明の他の目的は、ロボットのアクチュエーションによる触覚ノイズを除去することができる、触覚センサを有するロボット、除去方法および動作触覚関係モデル作成方法を提供することである。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0008】
第1の発明は、触覚センサを有するロボットであって、当該ロボットの動作データと触覚センサ出力データに基づいて作成された線形モデルであって、動作データで表される姿勢空間を分割した複数の姿勢領域のそれぞれに対応付けられた、動作データと触覚センサ出力データとの関係を示す線形モデルを記憶するモデル記憶手段、触覚センサ出力データを取得する触覚取得手段、動作データを取得する動作取得手段、動作取得手段によって取得された動作データに基づいて、現在の姿勢領域を判別する姿勢判別手段、姿勢判別手段によって判別された姿勢領域に対応する線形モデルおよび動作取得手段によって取得された動作データに基づいて、触覚センサ出力データの推定値を算出する推定値算出手段、および触覚取得手段によって取得された触覚センサ出力データから推定値算出手段によって算出された推定値を差し引くことによって、自己動作に起因する触覚ノイズの除去を行うノイズ除去手段を備える、ロボットである。
【0009】
第1の発明では、ロボット(10)は、たとえばコミュニケーションロボットであり、人との触覚インタラクションのために、触覚センサ(58,76)を備えている。モデル記憶手段(64)には、ロボットの動作データと触覚センサ出力データに基づいて作成された線形モデルが記憶されている。ロボットは、身体動作のためにたとえば首、肩、肘などの関節軸を備えており、したがって動作データは関節角度データを含む。この線形モデルは、動作データで表される姿勢空間を分割した複数の姿勢領域のそれぞれに対応付けられており、当該姿勢領域における動作データと触覚センサ出力データの関係を示している。線形モデルは、入力を動作データとし、出力を触覚センサ出力とした離散時間状態空間モデルである。ロボットが動作しているときの触覚センサ出力データは、触覚取得手段(58,60,68,76,86,88,90,S61)によって取得され、動作データは動作取得手段(78,60,68,86,88,90,S61)によって取得される。姿勢判別手段(60,S63)は、取得した動作データに基づいて、ロボットの現在の姿勢領域を判別する。推定値算出手段(60,S65)は、現在の姿勢領域に対応する線形モデルを用いて、取得した動作データに基づいて、触覚センサ出力データの推定値を算出する。ノイズ除去手段(60,S67)は、取得された触覚センサ出力データから推定値を差し引くことによって、自己動作に起因する触覚ノイズを除去する。
【0010】
第1の発明によれば、ロボットの姿勢に対応付けられた動作触覚関係モデルを用いて、現在のロボットの姿勢に応じた触覚センサ出力を推定することができるので、ロボットの自己動作に起因する触覚センサ出力を除去することができる。
【0011】
第2の発明は、触覚センサを有するロボットにおいて自己動作に起因する触覚ノイズを除去するための方法であって、ロボットの動作データと触覚センサ出力データに基づいて作成された線形モデルであって、動作データで表される姿勢空間を分割した複数の姿勢領域のそれぞれに対応付けられた、動作データと触覚センサ出力データとの関係を示す線形モデルを記憶しておき、触覚センサ出力データを取得し、動作データを取得し、取得された動作データに基づいて、現在の姿勢領域を判別し、判別された姿勢領域に対応する線形モデルおよび動作データに基づいて、触覚センサ出力データの推定値を算出し、取得された触覚センサ出力データから推定値を差し引くことによって、自己動作に起因する触覚ノイズの除去を行う、除去方法である。
【0012】
第2の発明は、上述の第1の発明のロボットにおいて適用される触覚ノイズの除去方法であり、第1の発明と同様の効果を奏する。
【0013】
第3の発明は、触覚センサを有するロボットの自己動作に起因する触覚ノイズを除去するために用いられる動作触覚関係モデルを作成する方法であって、ロボットが動作している際の動作データと触覚センサ出力データを取得する取得ステップ(S1)、動作データで表される姿勢領域に含まれる触覚センサ出力データのノイズレベルが第1閾値より大きいとき、姿勢領域における動作データを入力とし触覚センサ出力データを出力とした線形モデルを推定する推定ステップ(S21,S23,S27)、推定した線形モデルについてノイズレベル減少率が第2閾値より大きいとき、線形モデルを姿勢領域に対応付けて記憶する記憶ステップ(S33,S35,S37)、推定した線形モデルについてノイズレベル減少率が第2閾値より大きくないとき、姿勢領域を2つに分割する分割ステップ(S33,S35,S39,S41)、および分割された姿勢領域のそれぞれに対して、推定ステップを再帰的に実行する実行ステップ(S43,S45)を含む、モデル作成方法である。
【0014】
第3の発明では、ロボットの動作データで表される姿勢空間を複数の姿勢領域に分割して、複数の姿勢領域のそれぞれに対応付けられた動作データと触覚センサ出力データとの関係を示す線形モデルを作成することができる。作成した線形モデルを用いて上述の第1の発明および第2の発明を実現することができる。
【発明の効果】
【0015】
この発明によれば、ロボットの姿勢に応じた動作触覚関係モデルを作成することができる。また、当該モデルを用いてロボット自身の動作に起因するノイズを推定することができるので、実際の触覚センサ出力から推定値を差し引くことによって、ロボット自身の動作に起因する触覚ノイズを除去することができる。
【0016】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0017】
図1は、この発明の実施例のコミュニケーションロボット(以下、単に「ロボット」ともいう。)10を示す。ロボット10は台車12を含み、この台車12の側面には、このロボット10を自律移動させる車輪14が設けられる。この車輪14は、車輪モータ(図3において参照番号「16」で示す。)によって駆動され、台車12すなわちロボット10を前後左右任意の方向に動かすことができる。なお、図示しないが、この台車12の前面には、衝突センサが取り付けられ、この衝突センサは、台車12への人間や他の障害物の接触を検知する。
【0018】
台車12の上には、多角形柱状のセンサ取付パネル18が設けられ、このセンサ取付パネル18の各面には、超音波距離センサ20が取り付けられる。この実施例ではたとえば24個の超音波距離センサ20が周囲360度にわたるように設けられる。この超音波距離センサ20は、センサ取付パネル18すなわちロボット10の周囲の主として人間との距離を計測するものである。具体的には、超音波距離センサ20は超音波を発射し、その超音波が人から反射されて超音波距離センサ20に入射されたタイミングを測定して、人との間の距離情報を出力する。
【0019】
台車12の上には、人体状部22が直立するように取り付けられる。このロボット本体としての人体状部22の全身は、後に詳しく説明するように、柔軟素材からなる皮膚24によって覆われる。人体状部22は、たとえば鉄板のような筐体(図示せず)を含み、その筐体にコンピュータやその他必要なコンポーネントを収容している。そして、皮膚24は、その筐体上に被せられる。皮膚24の下の筐体の上部ほぼ中央にはマイク26が設けられる。このマイク26は、周囲の音声、特に人間の声を収集するためものである。
【0020】
人体状部22は、身体動作を実行可能な身体部位を備えている。具体的には、人体状部22は、可動部として右腕28Rおよび左腕28Lを含む。右腕28Rおよび左腕28Lすなわち上腕30Rおよび30Lは、それぞれ、肩関節32Rおよび32Lによって、胴体部分に変位自在に取り付けられる。この肩関節32Rおよび32Lは、3軸の自由度を有する。上腕30Rおよび30Lには、1軸の肘関節34Rおよび34Lによって、前腕36Rおよび36Lが取り付けられ、この前腕36Rおよび36Lには、手38Rおよび38Lが取り付けられる。これら右腕28Rおよび左腕28Lの各関節における各軸はここでは図示しないモータによってそれぞれ制御される。すなわち、右腕28Rおよび左腕28Lのそれぞれ4個のモータが、図3において、それぞれ右腕モータ40および左腕モータ42として表される。
【0021】
さらに、人体状部22の上部には可動部として頭部46が設けられる。頭部46は、首関節44を介して人間の頭と同様に俯仰・回転可能に取付けられる。この3軸(パン、チルトおよびロール軸)の首関節44は、図3に示す頭部モータ48によって制御される。頭部46の前面の「目」に相当する位置には2つの眼カメラ50が設けられ、この眼カメラ50は、ロボット10に接近した人間の顔や他の部分を撮影してその映像信号を取り込む。頭部46の前面の目カメラ50の下方にはスピーカ52が設けられる。このスピーカ52は、ロボット10がそれの周囲の人間に対して音声によってコミュニケーションを図るために用いられる。
【0022】
上で説明した人体状部22の胴体や頭部46および腕は上記したようにすべて柔軟な素材からなる皮膚24に覆われる。この皮膚24は、図2に示すように、下層のウレタンフォーム54と、その上に積層される比較的肉厚のシリコーンゴム層56aおよび比較的肉薄のシリコーンゴム層56bとを含む。そして、2つのシリコーンゴム層56aおよび56bの間に、ピエゾセンサシート58が埋め込まれる。このピエゾセンサシート58は、圧電フィルム(たとえばPVDF(ポリビニリデンフルオロイド))の両面に金属薄膜が形成された構造、つまり、圧電体が導体で挟まれた構造を有する圧電センサである。ピエゾフィルムは、圧力等で変形されると、両面金属薄膜間にピエゾ電気を発生し、すなわち、そのひずみ速度に応じた電圧を出力する。ピエゾフィルムは、たとえば、30×30mm程度の大きさにカットされ、約5mmの間隔で皮膚24中に配置される。
【0023】
皮膚24では、上述のように、発泡ウレタンとシリコーンゴムとを使って柔らかさを得るようにしている。シリコーンゴムだけである程度の厚みと柔らかさとを得ようとすると、重くなりすぎてエネルギ消費量が大きくなるだけでなく、裂傷に弱くなるので、大まかな形と厚みをウレタンフォームで作り、その表面を約20mmのシリコーンゴムで覆う形が採用されている。そして、シリコーンゴム層を2つにし、それらのシリコーンゴム層56aおよび56bの間に、上述のピエゾセンサシート58が埋め込まれる。さらに、内側のシリコーンゴム層56aが厚く(約15mm)され、表面側のシリコーンゴム層56bが薄く(約5mm)される。これによって、ロボット10の振動や人間が表面を押したときに生じる高周波の振動をカットでき、なおかつフィルムが変形し易くなるので、圧力の計測が容易になる。つまり、シリコーンゴム層の厚みはロボット10の構造やパワーによるが、なるべく薄く、しかし変形が伝わり易く、雑音となる振動が伝わり難いものが必要となる。また、この柔らかい皮膚を介して、人との間で触行動によるコミュニケーションを行うことができるので、人に対して安心感を与えて親和性を高めることができるし、触れたりぶつかったりした場合の人の怪我を防止して安全性も高めることができる。
【0024】
なお、皮膚24の素材は軟性素材であればよく、上述のものに限定されずたとえば他のゴム素材等でもよい。ただし、ピエゾセンサシートの表面金属薄膜が腐食しない材質である必要がある。また、上述の皮膚24の厚み(各層の厚み)は一例であり、素材等によって適宜変更され得る。また、皮膚24の積層構造も適宜変更可能である。
【0025】
このように、人体状部22の全身にわたって多数のピエゾセンサシート(触覚センサエレメント)58が埋め込まれており、全身分布型の高密度で超柔軟の触覚センサ(図3において参照符号「76」で示す。)が構築されている。後述するように、触覚センサ76は、複数のノード80(図4参照)を含むセンサネットワークで構成されており、各ノード80は、複数の触覚センサエレメント58、センサ値読取装置および演算装置等を備えている。この触覚センサ76によって、ロボット10の全身において人間や物の接触によって皮膚24に加えられた圧力を圧覚(触覚)情報として検知することができる。
【0026】
図1に示すロボット10の電気的構成の一例が図3のブロック図に示される。図3に示すように、このロボット10は、全体の制御のためにマイクロコンピュータまたはCPU60を含み、このCPU60には、バス62を通して、メモリ64,モータ制御ボード66,センサ入力/出力ボード68およびサウンド入力/出力ボード70が接続される。
【0027】
メモリ64は、図示しないが、ROMやHDD、RAM等を含む。ROMやHDD等にはこのロボット10の制御プログラムが予め書き込まれている。制御プログラムはたとえばコミュニケーション行動を実行するためのプログラム、外部のコンピュータと通信するためのプログラム等を含む。メモリ64にはまた、コミュニケーション行動を実行するためのデータが記憶され、そのデータは、たとえば、個々の行動を実行する際に、スピーカ52から発生すべき音声または声の音声データ(音声合成データ)、および所定の身振りを提示するための各関節軸の角度制御データ(コマンドデータ)等を含む。RAMは、一時記憶メモリおよびワーキングメモリとして利用される。
【0028】
モータ制御ボード66は、たとえばDSP(Digital Signal Processor)で構成され、上述の各腕や頭部などの各モータ16、40、42、48を制御する。この実施例では、アクチュエータにはすべてDCモータが用いられる。各モータの出力軸には、角度センサ78としてポテンショメータが装着されている。
【0029】
ロボット10の動作データとして、この実施例では各関節軸(左右の腕部にそれぞれ4軸、首部に3軸の計11軸)の角度センサ78の出力が用いられる。各角度センサ78の出力電圧は、後述する触覚センサエレメント58と同じ読取回路により、たとえば100Hzで読み取られ、−32767〜32768の整数値に変換される。つまり、各角度センサ78で検出される各関節軸の回転角度(関節角度)を示す信号は、センサ入力/出力ボード68に与えられ、関節角度データとして読み取られる。関節角度データは、モータ制御ボード66に与えられ、モータ制御ボード66は、各角度センサ78からのデータを用いて各モータ40、42、48をフィードバック制御する。
【0030】
具体的には、モータ制御ボード66は、CPU60からのコマンドデータを受けて、右肩関節32Rの3軸のそれぞれの角度を制御する3つのモータと右肘関節34Rの1軸の角度を制御する1つのモータとの計4つのモータ(図3ではまとめて、「右腕モータ」として示す。)40の回転角度を、各軸の角度センサ78の回転角度データ(関節角度データ)を用いて調節する。また、モータ制御ボード66は、左肩関節32Lの3軸と左肘関節34Lの1軸、計4つのモータ(図3ではまとめて、「左腕モータ」として示す。)42の回転角度を、各軸の角度センサ78の回転角度データを用いて調節する。モータ制御ボード66は、また、頭部46を変位させる首関節44の3軸のモータ(図3ではまとめて、「頭部モータ」として示す。)48の回転角度を、各軸の角度センサ78の回転角度データを用いて調節する。
【0031】
また、車輪モータ16の制御も同様である。モータ制御ボード66は、車輪14を駆動する2つのモータ(図3ではまとめて、「車輪モータ」として示す。)16を、各軸の角度センサ78からの回転角度データを用いて制御する。
【0032】
なお、この実施例の各モータ16、40、42、48は、直流モータ(サーボモータ)であるが、他の実施例では、車輪モータ16を除いて、それぞれステッピングモータまたはパルスモータであってよい。
【0033】
センサ入力/出力ボード68も、同様に、DSPで構成され、各センサやカメラからの信号を取り込んでCPU60に与える。すなわち、図示しない衝突センサの各々からの接触に関するデータがこのセンサ入力/出力ボード68を通してCPU60に入力される。また、眼カメラ50からの映像信号が、必要に応じてこのセンサ入力/出力ボード68で所定の処理が施された後、CPU60に入力される。
【0034】
また、触覚センサ76が、このセンサ入力/出力ボード68に接続されており、CPU60と触覚センサ76はセンサ入力/出力ボード68を介してデータを送受信する。
【0035】
サウンド入力/出力ボード70には、スピーカ52およびマイク26が接続される。スピーカ52にはサウンド入力/出力ボード70を介して、CPU60から、合成音声データが与えられ、それに応じて、スピーカ52からはそのデータに従った音声または声が出力される。また、マイク26からの音声入力が、サウンド入力/出力ボード70を介して、CPU60に取り込まれる。
【0036】
また、CPU60には、バス62を介して通信LANボード72および無線通信装置74が接続される。この通信LANボード72および無線通信装置74によって、ロボット10は外部のコンピュータ等と無線通信を行うことができる。具体的には、通信LANボード72は、DSPで構成され、CPU60からの送信データを無線通信装置74に与え、無線通信装置74から送信データを、図示は省略するが、たとえば無線LANまたはインタネットのようなネットワークを介して、外部のコンピュータに送信させる。また、通信LANボード72は、無線通信装置74を介して外部のコンピュータからのデータを受信し、受信したデータをCPU60に与える。
【0037】
触覚センサ76の電気的構成の一例が図4のブロック図に示される。触覚センサ76は複数のノード80を含み、各ノード80は複数の触覚センサエレメント58を備えている。複数のノード80はバス82を介して相互に接続される。バス82はたとえばRS422シリアルバスであり、センサ入力/出力ボード68に設けられるシリアル通信ポートに接続されている。このように、複数のノード80およびCPU60がセンサネットワークを構成しており、接続された経路を介して通信を行う。
【0038】
なお、触覚センサ76のネットワーク構造は適宜変更可能であり、たとえば、本件出願人による特開2006−287520号公報に開示されるような相互接続型のセンサネットワークが構築されてもよい。
【0039】
各ノード80は基板84を含み、この基板84に当該ノード80に所属する複数の触覚センサエレメント58が接続される。また、基板84には、センサ値読取装置(読取回路)としてのA/D変換器88および増幅器90、ならびに演算装置としてのプロセッサユニット86が設けられている。各触覚センサエレメント58からの配線は増幅器90に接続されている。
【0040】
各触覚センサエレメント58の出力信号は、増幅器90で電流増幅された後、A/D変換器88によってディジタルデータに変換される。このA/D変換器88は、たとえば16bit、100Hzの時空間分解能でサンプリングを行う。A/D変換器88でサンプリングされたデータはプロセッサユニット86に与えられる。
【0041】
なお、基板84と所属する各触覚センサエレメント58との配線長を短くするために、各ノード80の基板84は、所属する各触覚センサエレメント58のなるべく近傍になるように筐体内において配置される。たとえば、200−300枚程度の触覚センサエレメント58がロボット10の全身の皮膚24中に分布されており、20数個の基板84が設けられ、各基板84には、16個のA/D変換器88が搭載されており、16個の触覚センサエレメント58の出力電圧が同時に読み取られ、それぞれ−32767〜32768の整数値に変換される。
【0042】
プロセッサユニット86は、ノードプロセッサであり、つまり、当該ノード80の制御および通信制御を行うマイクロコンピュータである。プロセッサユニット86は、ROMおよびRAMなどのメモリを内蔵している。内蔵メモリのROMにはノード80の動作を制御するためのプログラムおよびデータが予め記憶される。A/D変換器88で読み取られた各触覚センサエレメント58のセンサ出力データ(時系列データ)は、内蔵メモリのRAMに記憶される。このプロセッサユニット86により、センサ出力の時系列データの処理を各ノード80において行うことができる。また、このプロセッサユニット86が上述のバス82に接続されており、バス82を介して他のノード80のプロセッサユニット86およびCPU60との間で通信を行うことができるので、CPU60は各ノード80で検出された触覚データを取得することができる。また、各角度センサ78も各触覚センサ58と同様にノード80の読取回路に接続されるので、各角度センサ78のセンサ出力データ(時系列データ)もプロセッサユニット86に取得され、さらにCPU60やモータ制御ボード66に与えられる。
【0043】
この実施例では、自己動作に起因する触覚センサ出力(すなわちノイズ)を除去するために、まず、ロボット10の動作と触覚センサ出力との関係を表すモデル(以下、動作触覚関係モデルという。)を構築する。そして、ロボット10は、現時刻の動作データを、得られた動作触覚関係モデルに入力することにより現時刻の触覚センサ出力を推定し、実際の触覚センサ出力と推定値との差分を計算することによって自己動作に起因する触覚センサ出力を除去する。
【0044】
動作触覚関係モデルを構築する上で、考慮するべき点が2つある。1つ目は、ロボット10の動作と触覚センサ出力の関係には非線形性が存在することである。たとえば、ロボット10が肘関節34Rまたは34Lを曲げた状態と伸ばした状態では、肩関節32Rまたは32Lを同じように回転させた場合でも手先38Rまたは38Lに加わる力が変化するため、触覚センサ出力が変化する。そのため、ロボット10の姿勢に応じて異なるモデルを構築する必要がある。2つ目は、動作に対応する触覚センサ出力が時間遅れを伴うことである。皮膚24の表面の振動によって触覚センサ76が反応するといったことが起こり得る。
【0045】
このような関係をモデル化するために、ロボット10の各関節の角度で表される姿勢空間D(この実施例では11次元の空間)をいくつかの領域に分割し、それぞれの領域で線形モデルを推定する。各領域における線形モデルは、ロボット10の持つ全関節の角度と1つの触覚センサ出力との関係を、多入力1出力(入力:関節角,出力:触覚センサ出力)の状態空間モデルで表す。その他の触覚センサ出力についても同様にモデル化を行う。
【0046】
まず、線形モデルの推定について説明する。この実施例では、触覚センサ出力と動作の関係を、入力を動作、出力を触覚センサ出力とした離散時間状態空間モデルを用いて表現する。一般的に、p入力q出力の状態空間モデルは、次の数1および数2のように記述される。
【0047】
【数1】

【0048】
【数2】

【0049】
ここで、u(t)∈Rはモデルの入力、y(t)∈Rはモデルの出力、x(t)∈Rは状態変数である。また、ω(t),ν(t)はシステムに加わる白色雑音を表している。A,B,Cはそれぞれn×n,n×p,q×nの定数行列であり、モデル推定によって決定される。この実施例では、複数の触覚センサ出力はお互いに無相関であると仮定し、1出力モデルを推定する。したがって、入力ベクトルu(t)をp個の関節角度からなるp次元ベクトル、出力ベクトルy(t)を1個の触覚センサ出力からなる1次元ベクトルとする。また、状態空間モデルの推定には、システム同定の手法であるN4SID法[P.VanOverschee and B. De Moor. Subspace Identification for Linear Systems. Kluwer Academic Press,1996.]が利用される。
【0050】
各領域で推定された線形モデルは、次の数3で示されるノイズレベルの減少率Fを利用して評価する。
【0051】
【数3】

【0052】
ここで、N,Nはそれぞれ次の数4,数5である。
【0053】
【数4】

【0054】
【数5】

【0055】
また、u(t)およびu^(t)は、それぞれk番目の触覚センサの時刻tにおける出力および推定値である。Tはデータ数である。このノイズレベルの減少率Fの値が大きいほど、よりノイズが除去されたことを意味する。
【0056】
次に、姿勢空間(姿勢領域)の分割について説明する。この実施例では、姿勢領域を分割するために、多次元非線形写像を求める手法であるPaLM−tree[中村恭之,加藤丈和,和田俊和.非線形写像学習のためのpalm-treeの提案.日本ロボット学会誌,Vol.23,No.6,pp.732-742,2005.][特開2006−338123号公報]を用いる。ここで、ロボット10の姿勢は、各関節の角度の時間変化u(t)=(u(t),u(t),…,u(t))によって表すことができる。また、ロボット10の触覚センサ出力は、y(t)=(y(t),y(t),…,y(t))と表す。ここで、tは時刻、pは関節数、qは触覚センサ数である。
【0057】
姿勢空間の分割は、これから述べるように全データを含んだ姿勢空間の分割をはじめとして再帰的に行われるため、全データを含むノードを頂点とした決定木の形で表すことができる。姿勢空間を分割し、それを表現する決定木を構築する方法をフロー図を用いて説明する。
【0058】
図5は、動作触覚関係モデルの作成処理の動作の一例を示す。この実施例では、動作触覚関係モデルの作成処理は、ロボット10のCPU60によって実行されるが、他の実施例では、ロボット10の動作データと触覚センサ出力データを取得した外部のコンピュータによって実行されてもよい。
【0059】
まず、ステップS1で、ロボット10に様々な身体動作を実行させて、そのときの触覚センサ出力y(t)と各関節角度u(t)を記録する。ロボット10には、人とコミュニケーションする際に行う様々な動作のためのプログラムが記憶されており、それらの動作を実行し、その際の角度センサ78の出力データ(関節角度データ)と触覚センサ76の出力データ(触覚センサ出力データ)とを対応付けてメモリ64に記録する。
【0060】
ステップS3では、全データの組を含む姿勢領域Dを設定する。まず全データの組についてモデルを作るために、この時点での姿勢空間Dは、全データの組を含む姿勢領域である。なお、姿勢領域Dには、姿勢領域の識別番号が設定される。
【0061】
そして、ステップS5で、姿勢領域(D)の分割処理を実行する。この分割処理は、設定された姿勢領域Dについてのサブルーチンとして実行される。図6に姿勢領域(D)の分割処理の動作の一例が示される。
【0062】
図6のステップS21で、はじめに、姿勢領域Dに含まれる触覚センサ出力のノイズレベルNを数5により計算する。そして、ステップS23で、ノイズレベルNが所定の閾値Tより小さいか否かを判断する。
【0063】
ステップS23で“YES”の場合には、その姿勢領域Dではモデルを作る必要がないとみなし、ステップS25で、当該姿勢領域Dを第2種の姿勢領域と定義する。具体的には、当該姿勢領域Dに識別番号を設定し、識別番号に対応付けて姿勢領域に含まれるデータと種類(第2種)をメモリ64に記憶する。ステップS25を終了すると、分割処理を終了する。
【0064】
一方、ステップS23で“NO”の場合、つまり、ノイズレベルNが閾値Tより大きい場合には、ステップS27で、姿勢領域Dに含まれるデータの組を用いて線形モデルを推定する(数1および数2)。そして、ステップS29で、線形モデルを推定できたか否かを判断する。
【0065】
ステップS29で“NO”の場合、つまり、モデルが推定できなかった場合(姿勢領域に含まれるデータの組の数が少ない場合)には、ステップS31で、その姿勢領域Dを第3種の姿勢領域と定義する。具体的には、当該姿勢領域Dに識別番号を設定し、識別番号に対応付けて姿勢領域に含まれるデータと種類(第3種)をメモリ64に記憶する。ステップS31を終了すると、分割処理を終了する。
【0066】
一方、ステップS29で“YES”の場合、つまり、線形モデルが推定されたときには、ステップS33で、線形モデルの評価を行い、ノイズレベルの減少率F(数3)を算出する。
【0067】
続くステップS35で、ノイズレベルの減少率Fが所定の閾値Tより大きいか否かを判断する。ステップS35で“YES”の場合、つまり、ノイズレベルの減少率Fが閾値Tより大きいときには、ノイズが十分に除去されたとみなし、ステップS37で、当該姿勢領域Dを第1種の姿勢領域と定義する。具体的には、当該姿勢領域Dに識別番号を設定し、識別番号に対応付けて姿勢領域に含まれるデータと種類(第1種)をメモリ64に記憶する。また、推定された線形モデルも、姿勢領域の識別番号に対応付けてメモリ64に記憶する。ステップS37を終了すると、分割処理を終了する。
【0068】
一方、ステップS35で“NO”の場合、つまり、推定した線形モデルではノイズが十分に除去されない場合には、当該姿勢領域Dの分割を行う。具体的には、まず、ステップS39で、分割条件として、分割する軸Rおよび位置Tを算出する。
【0069】
図7に、姿勢領域Dの分割を説明するための図解図を示す。分割軸Rは、数6および数7によって算出される。
【0070】
【数6】

【0071】
【数7】

【0072】
各次元jについてのデータの分布の幅Bjを調べて、分布の幅Bjが最長の次元Rを分割する軸Rとして選択する。つまり、Rは、関節角の最大値と最小値の差Bjが最も大きい関節の番号jを表している。図7のグラフでは、横軸がR軸であり、R番目の関節の角度を示す。縦軸はk番目の関節の角度を示す。なお、この実施例では、関節角度u(t)は上述のように11次元ベクトルであり、図7のグラフは、説明のため2つの次元R,kでデータをプロットしている。
【0073】
また、Tは、分割の閾値であり、つまり、分割軸Rにおける分割位置である。このTは、分割される2つの姿勢領域D1,D2に含まれるそれぞれのデータの組の数ができるだけ等しくなるように設定される。つまり、分割によってデータ数の偏りができるだけ起きないようにしている。
【0074】
そして、ステップS41で、分割条件に従って、姿勢領域Dを2つの姿勢領域D1およびD2に分割する。図7の下部に示されるように、姿勢領域Dは、u(t)<Tの領域D1と、u(t)≧Tの領域D2に分割される。
【0075】
その後、姿勢領域D1,D2についても再帰的に分割を行う。つまり、ステップS43で、姿勢領域D1についての分割処理のサブルーチンを実行し、ステップS45で、姿勢領域D2についての分割処理のサブルーチンを実行する。
【0076】
このようにして、全姿勢空間内の全ての領域が第1種から第3種のいずれかに属するまで再帰的に分割が行われる。
【0077】
分割処理を終了すると、処理は図5のステップS7に進み、決定木をメモリ64に記憶する。姿勢領域に対応付けられた動作触覚関係モデルは、決定木のデータ構造を有しており、つまり、作成した動作触覚関係モデルを記憶する。記憶されるデータは、分割条件(軸Rおよび閾値T)、姿勢領域の識別番号および第1種の姿勢領域の線形モデルなどに関する情報を含む。決定木では、全データの組を含む姿勢領域が頂点のノードであり、分割条件に従って2つのノード(内部ノード)に分かれる。最下層は終端ノードとなり、第1種から第3種のいずれかの姿勢領域となる。内部ノードには、分割条件および当該分割条件によって結合される2つのノードの識別情報などが記憶される。終端ノードには、姿勢領域の識別番号および種類などが記憶され、さらに、第1種の姿勢領域に対応する終端ノードには、推定された線形モデルに関する情報が記憶される。このようにして、姿勢領域に対応付けられた動作触覚関係モデルがメモリ64に記憶(取得)される。
【0078】
図8は、動作触覚関係モデルを利用する際のロボット10のCPU60の動作の一例が示される。まず、ステップS61で、ロボット10が動いているときの各関節角度と触覚センサ出力を計測する。これにより、検出時刻における関節角度データと触覚センサ出力データを取得する。
【0079】
次に、ステップS63で、決定木を用いて、現時刻のロボット10の姿勢が属する領域を調べる。具体的には、分割条件に基づいて、現在の関節角度がどの姿勢領域に属するかを判別する。
【0080】
ステップS65では、当該姿勢領域における線形モデルに関節角を入力して、現在の触覚センサ出力を推定する。具体的には、当該姿勢領域が第1種である場合、当該姿勢領域における線形モデルを利用して、触覚センサ出力の推定値を算出する。なお、姿勢領域が第2種の場合、ノイズレベルが小さいので、推定値を算出する必要がない。つまり、取得した触覚センサ出力をそのまま触覚情報として使用できる。また、姿勢領域が第3種の場合、線形モデルが推定できないので、この実施例では、推定値は算出されない。
【0081】
ステップS67では、触覚センサ出力の推定値を、実際の触覚センサ出力から差し引く。このように、差分をとることにより、ロボット10の自己動作に起因する触覚センサ出力すなわち触覚ノイズを除去する。
【0082】
そして、ステップS69では、ノイズの除去された触覚センサ出力を触覚情報としてメモリ64に記憶する。続くステップS71で、所定のタイミングか否かを判断し、“NO”であれば、処理はステップS61に戻る。ステップS71で“YES”と判断されるまで、ノイズの除去された触覚情報の取得を継続する。
【0083】
さらに、ステップS73で、ノイズの除去された触覚情報に基づいて触覚コミュニケーション動作を実行し、人間の触行動や接触などに応じたコミュニケーションを行う。
【0084】
この実施例によれば、ロボット10の姿勢を複数に分類して、姿勢ごとに、動作(関節角)と触覚センサ出力との関係を示す線形モデルを作成するようにしたので、当該モデルを用いてロボット自身の動作に起因する触覚ノイズを推定することができる。したがって、ロボット10のアクチュエーションに起因する触覚ノイズを除去することができる。
【0085】
発明者等は、動作触覚関係モデルの有効性を検証するために実験を行った。実験では、ロボット10の備える、握手、挨拶、自己紹介といった人とのコミュニケーションで実行される様々な動作モジュールから15個の動作を選択し、それらをランダムな順番で実行することによってロボット10を動かし、そのときの触覚センサ出力データおよび各関節の角度データを取得した。この実験を約6分間にわたって行い、38499フレームの触覚センサ出力データと関節角度データを取得した。
【0086】
以下には、或る触覚センサ(左上腕30Lに配置された複数の触覚センサエレメント58のうちの1つ)の出力と全11関節軸の角度を用いて構築した動作触覚関係モデルについての実験結果を述べる。
【0087】
実験データを用いて構築した決定木の一部を図9に示す。この図9において、丸印で描かれたノードは各姿勢領域を表している。太枠の丸印で描かれたノードは、第1種の姿勢領域であり、分割が終了したため、終端ノードになっている。また、姿勢領域に含まれるデータの組の数N,姿勢領域に含まれる触覚センサ出力のノイズレベルNL,ノイズレベルの減少率Fがノードごとに示されている。ここで、姿勢空間を分割し決定木を構築する際の、ノイズレベルの閾値Tは5、ノイズレベルの減少率の閾値Tは0.5とした。
【0088】
一般的に、ロボット10の動作に対する触覚データの再現性が大きい姿勢周辺では、分割の早い段階から線形モデルのノイズレベルの減少率Fが大きくなり、分割が早く終了する(第1種)。一方、それ以外の姿勢領域では、分割を繰返しても良い線形モデルが作られない。そのため、最終的に姿勢領域が含まれるデータ数が少なくなり、線形モデルの推定が不可能になることで分割が終了する(第3種)。なお、図9の下部には、構築した動作触覚関係モデルにおける第1種〜第3種の各姿勢領域の数が示される。データ数は、各種類の全ての姿勢領域に含まれるデータの組の数を全て足し合わせたものである。
【0089】
ノイズレベルの減少率Fが閾値Tを上回る線形モデルが推定できた姿勢領域における実際の触覚センサ出力と、モデルによる推定値との比較を図10に示す。図10の(A)および(B)のいずれにおいても、線形モデルによって、実際の出力との誤差の小さい推定値を算出できることが分かる。
【0090】
また、ロボット10が複数の姿勢領域をまたがって運動した際のノイズ除去の例を図11に示す。図11において中央のグラフは、実際の触覚センサ出力と推定値を表しており、上のグラフはそれらの差分を表している。また、下のグラフは姿勢領域の遷移を示している。0.5[sec]から1.62[sec]の期間Aの姿勢領域は、ノイズレベルの減少率Fが閾値Tを上回る精度の良い線形モデルが推定できた領域であり、上のグラフで示されるように、期間Aでは、ノイズが良く除去されていることが分かる。一方、2.1[sec]から3.0[sec]の期間Bの姿勢領域は全て線形モデルが推定できなかった領域であるため、期間Bでは、ノイズの除去が行われていない(差分は推定値0として算出されている)。
【0091】
また、精度の良い線形モデルが推定できた姿勢領域について、触覚センサ出力のノイズレベルと、ノイズ除去後のノイズレベルとを、それぞれ数5および数4に基づいて計算した結果、それぞれ24.5と12.7となった。その比は0.518であり、これは、自己動作に起因する触覚ノイズをほぼ半分に抑えることができたことを示している。
【図面の簡単な説明】
【0092】
【図1】この発明の一実施例のコミュニケーションロボットを示す図解図である。
【図2】図1実施例のコミュニケーションロボットに用いる皮膚とその中に埋め込まれる触覚センサエレメントを示す図解図である。
【図3】図1実施例のコミュニケーションロボットの電気的構成の一例を示すブロック図である。
【図4】触覚センサの電気的構成の一例を示すブロック図である。
【図5】動作触覚関係モデルの作成処理の動作の一例を示すフロー図である。
【図6】姿勢領域の分割処理の動作の一例を示す図解図である。
【図7】姿勢領域の分割を説明するための図解図である。
【図8】動作触覚関係モデルを利用する際の動作の一例を示すフロー図である。
【図9】実験データを用いて構築した決定木の一部と種類ごとの姿勢領域数を示す図解図である。
【図10】実際の触覚センサ出力と線形モデルによる推定値とを比較するための図解図である。
【図11】ロボットが複数の姿勢領域をまたがって運動した際のノイズ除去の一例を示す図解図である。
【符号の説明】
【0093】
10 …コミュニケーションロボット
32L …左肩関節
32R …右肩関節
34L …左肘関節
34R …右肘関節
40 …右腕モータ
42 …左腕モータ
44 …首関節
48 …頭部モータ
58 …触覚センサエレメント
60 …CPU
64 …メモリ
66 …モータ制御ボード
68 …センサ入力/出力ボード
76 …触覚センサ
78 …角度センサ
80 …ノード
86 …プロセッサユニット

【特許請求の範囲】
【請求項1】
触覚センサを有するロボットであって、
当該ロボットの動作データと触覚センサ出力データに基づいて作成された線形モデルであって、前記動作データで表される姿勢空間を分割した複数の姿勢領域のそれぞれに対応付けられた、前記動作データと触覚センサ出力データとの関係を示す前記線形モデルを記憶するモデル記憶手段、
触覚センサ出力データを取得する触覚取得手段、
動作データを取得する動作取得手段、
前記動作取得手段によって取得された前記動作データに基づいて、現在の姿勢領域を判別する姿勢判別手段、
前記姿勢判別手段によって判別された前記姿勢領域に対応する前記線形モデルおよび前記動作取得手段によって取得された前記動作データに基づいて、前記触覚センサ出力データの推定値を算出する推定値算出手段、および
前記触覚取得手段によって取得された前記触覚センサ出力データから前記推定値算出手段によって算出された前記推定値を差し引くことによって、自己動作に起因する触覚ノイズの除去を行うノイズ除去手段を備える、ロボット。
【請求項2】
触覚センサを有するロボットにおいて自己動作に起因する触覚ノイズを除去するための方法であって、
前記ロボットの動作データと触覚センサ出力データに基づいて作成された線形モデルであって、前記動作データで表される姿勢空間を分割した複数の姿勢領域のそれぞれに対応付けられた、前記動作データと触覚センサ出力データとの関係を示す前記線形モデルを記憶しておき、
触覚センサ出力データを取得し、
動作データを取得し、
取得された前記動作データに基づいて、現在の姿勢領域を判別し、
判別された前記姿勢領域に対応する前記線形モデルおよび前記動作データに基づいて、前記触覚センサ出力データの推定値を算出し、
取得された前記触覚センサ出力データから前記推定値を差し引くことによって、自己動作に起因する触覚ノイズの除去を行う、除去方法。
【請求項3】
触覚センサを有するロボットの自己動作に起因する触覚ノイズを除去するために用いられる動作触覚関係モデルを作成する方法であって、
前記ロボットが動作している際の動作データと触覚センサ出力データを取得する取得ステップ、
前記動作データで表される姿勢領域に含まれる前記触覚センサ出力データのノイズレベルが第1閾値より大きいとき、前記姿勢領域における前記動作データを入力とし前記触覚センサ出力データを出力とした線形モデルを推定する推定ステップ、
推定した前記線形モデルについてノイズレベル減少率が第2閾値より大きいとき、前記線形モデルを前記姿勢領域に対応付けて記憶する記憶ステップ、
推定した前記線形モデルについて前記ノイズレベル減少率が前記第2閾値より大きくないとき、前記姿勢領域を2つに分割する分割ステップ、および
分割された姿勢領域のそれぞれに対して、前記推定ステップを再帰的に実行する実行ステップを含む、モデル作成方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2010−17768(P2010−17768A)
【公開日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願番号】特願2008−177680(P2008−177680)
【出願日】平成20年7月8日(2008.7.8)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 社団法人日本機械学会 「ロボティクス・メカトロニクス講演会2008講演概要集」「ロボティクス・メカトロニクス講演会’08講演論文集」2008年6月5日発行
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成20年4月2日付け、支出負担行為担当官 総務省大臣官房会計課企画官、研究テーマ「ネットワーク・ヒューマン・インターフェースの総合的な研究開発(ネットワークロボットの技術)」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】