(57)【要約】【課題】入力運動パターンに対応するロボットの運動パターンを生成するようにする。【解決手段】入力運動取得部７２は、画像認識部７１から所定の対象物の運動軌道を取得する。力学系モデル化処理部７４は、ロボット運動パターン記憶部７３に記憶されている複数のロボット運動パターンを力学系によりモデル化し、ロボット運動パターン力学系モデル記憶部７５に記憶させる。運動変換部７６は、ロボット運動パターン力学系モデル記憶部７５に記憶されている複数のロボット運動力学系モデルを線形変換して予測運動軌道に変換する。運動比較部７７は、運動取得部７２で取得された入力運動軌道と運動変換部７６で変換された予測運動軌道を比較する。その比較結果に基づいて、ロボット運動選択部７８は、最も類似性の高いロボット運動パターンをロボット運動パターン記憶部７５から選択する。本発明は、ロボット装置に適用することができる。【選択図】図３
2005115654.tif 000002
【特許請求の範囲】
【請求項１】
所定の対象物の運動パターンを取得する運動パターン取得手段と、
ロボット制御装置で実行可能なロボット運動パターンを再生成可能な力学系によりモデル化するモデリング手段と、
前記モデリング手段によりモデル化された複数のロボット運動パターンを記憶する記憶手段と、
前記記憶手段に記憶されている力学系によりモデル化された複数のロボット運動パターンと前記運動パターン取得手段により取得された運動パターンを比較する比較手段と、
前記比較手段による比較結果に基づいて、生成するロボット運動パターンを選択する選択手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記記憶手段に記憶されている力学系によりモデル化されたロボット運動パターンから前記運動パターン取得手段により取得された前記運動パターンへの線形変換を、前記ロボット運動パターンと前記運動パターンの誤差に基づいて算出する誤差算出手段をさらに備え、
前記比較手段は、前記誤差算出手段による算出結果に基づいて比較する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項３】
前記モデリング手段、前記記憶手段、および前記比較手段は、リカレント型ニューラルネットワークである
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
所定の対象物の運動パターンを取得する運動パターン取得ステップと、
ロボット制御装置で実行可能なロボット運動パターンを再生成可能な力学系によりモデル化するモデリングステップと、
前記モデリングステップの処理によりモデル化された複数のロボット運動パターンを記憶する記憶ステップと、
前記記憶ステップの処理により記憶されている力学系によりモデル化された複数のロボット運動パターンと前記運動パターン取得ステップの処理により取得された運動パターンを比較する比較ステップと、
前記比較ステップの処理による比較結果に基づいて、生成するロボット運動パターンを選択する選択ステップと
を含むことを特徴とする情報処理方法。
【請求項５】
所定の対象物の運動パターンを取得する運動パターン取得ステップと、
ロボット制御装置で実行可能なロボット運動パターンを再生成可能な力学系によりモデル化するモデリングステップと、
前記モデリングステップの処理によりモデル化された複数のロボット運動パターンを記憶する記憶ステップと、
前記記憶ステップの処理により記憶されている力学系によりモデル化された複数のロボット運動パターンと前記運動パターン取得ステップの処理により取得された運動パターンを比較する比較ステップと、
前記比較ステップの処理による比較結果に基づいて、生成するロボット運動パターンを選択する選択ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが格納されているプログラム格納媒体。
【請求項６】
所定の対象物の運動パターンを取得する運動パターン取得ステップと、
ロボット制御装置で実行可能なロボット運動パターンを再生成可能な力学系によりモデル化するモデリングステップと、
前記モデリングステップの処理によりモデル化された複数のロボット運動パターンを記憶する記憶ステップと、
前記記憶ステップの処理により記憶されている力学系によりモデル化された複数のロボット運動パターンと前記運動パターン取得ステップの処理により取得された運動パターンを比較する比較ステップと、
前記比較ステップの処理による比較結果に基づいて、生成するロボット運動パターンを選択する選択ステップと
を含む処理をコンピュータに実行させること特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、プログラム格納媒体、並びにプログラムに関し、特に、例えば、入力された運動パターンに対応するロボットの運動パターンを生成することができるようにした情報処理装置および方法、プログラム格納媒体、並びにプログラムに関する。
【背景技術】
【０００２】
従来より、人間や動物の脳に関する１つのモデルとして、ニューラルネットワークが研究されている。ニューラルネットワークにおいては、所定の運動パターンを予め学習しておくことにより、入力されたデータが、予め学習した運動パターンに対応するか否かを識別することができる。
【０００３】
このようなニューラルネットワークを利用した技術がいくつか提案されている。例えば、カメラで撮像した対象物の運動パターンに基づいてロボット自身の運動パターンを生成するロボットにおいて、予め、２つの運動パターンの対応付けをニューラルネットワークにより記憶しておくことにより、後に、入力された運動パターンに対して、記憶されているロボット用の運動パターンの中から最も類似する運動パターンを生成する方法が提案されている（例えば、非特許文献１参照）。
【０００４】
【非特許文献１】萬泰明，國吉康夫，「視覚・運動融合に基づく腕動作の原始模倣モデル」，日本ロボット学会，学術講演会講演論文集2001
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１に示される方法では、予め、入力運動パターンとロボット用の運動パターンの対応付けを行う必要があった。
【０００６】
また、入力運動パターンに対する認識の汎化性能が、対応付けを記憶する学習モデルの汎化性能に依存するという課題があった。
【０００７】
さらに、入力運動パターンに対応して生成されるロボット用の運動パターンが、ロボット運動制御の幾何的もしくは物理的拘束を必ずしも満たさないという課題があった。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、入力運動パターンとロボット用の運動パターンの対応付けを行うことなく、入力運動パターンに対応するロボット用の運動パターンを容易に生成することができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、所定の対象物の運動パターンを取得する運動パターン取得手段と、ロボット制御装置で実行可能なロボット運動パターンを再生成可能な力学系によりモデル化するモデリング手段と、モデリング手段によりモデル化された複数のロボット運動パターンを記憶する記憶手段と、記憶手段に記憶されている力学系によりモデル化されたロボット運動パターンと運動パターン取得手段により取得された運動パターンを比較する比較手段と、比較手段による比較結果に基づいて、生成するロボット運動パターンを選択する選択手段とを備えることを特徴とする。
【００１０】
前記記憶手段に記憶されている力学系によりモデル化されたロボット運動パターンから運動パターン取得手段により取得された運動パターンへの線形変換を、ロボット運動パターンと運動パターンの誤差に基づいて算出する誤差算出手段をさらに設けるようにすることができ、比較手段は、誤差算出手段による算出結果に基づいて比較するようにすることができる。
【００１１】
前記モデリング手段、記憶手段、および比較手段は、リカレント型ニューラルネットワークであるようにすることができる。
【００１２】
本発明の情報処理方法は、所定の対象物の運動パターンを取得する運動パターン取得ステップと、ロボット制御装置で実行可能なロボット運動パターンを再生成可能な力学系によりモデル化するモデリングステップと、モデリングステップの処理によりモデル化された複数のロボット運動パターンを記憶する記憶ステップと、記憶ステップの処理により記憶されている力学系によりモデル化された複数のロボット運動パターンと運動パターン取得ステップの処理により取得された運動パターンを比較する比較ステップと、比較ステップの処理による比較結果に基づいて、生成するロボット運動パターンを選択する選択ステップとを含むことを特徴とする。
【００１３】
本発明のプログラム格納媒体に格納されているプログラムは、所定の対象物の運動パターンを取得する運動パターン取得ステップと、ロボット制御装置で実行可能なロボット運動パターンを再生成可能な力学系によりモデル化するモデリングステップと、モデリングステップの処理によりモデル化された複数のロボット運動パターンを記憶する記憶ステップと、記憶ステップの処理により記憶されている力学系によりモデル化された複数のロボット運動パターンと運動パターン取得ステップの処理により取得された運動パターンを比較する比較ステップと、比較ステップの処理による比較結果に基づいて、生成するロボット運動パターンを選択する選択ステップとを含む処理をコンピュータに行わせる。
【００１４】
本発明のプログラムは、所定の対象物の運動パターンを取得する運動パターン取得ステップと、ロボット制御装置で実行可能なロボット運動パターンを再生成可能な力学系によりモデル化するモデリングステップと、モデリングステップの処理によりモデル化された複数のロボット運動パターンを記憶する記憶ステップと、記憶ステップの処理により記憶されている力学系によりモデル化された複数のロボット運動パターンと運動パターン取得ステップの処理により取得された運動パターンを比較する比較ステップと、比較ステップの処理による比較結果に基づいて、生成するロボット運動パターンを選択する選択ステップとを含む処理をコンピュータに行わせる。
【００１５】
本発明においては、所定の対象物の運動パターンが取得され、ロボット制御装置で実行可能な複数のロボット運動パターンがモデル化されて記憶され、記憶されている複数のロボット運動パターンと取得された所定の対象物の運動パターンが比較され、比較結果に基づいて、生成するロボット運動パターンが選択される。
【発明の効果】
【００１６】
本発明によれば、入力された運動パターンに対応するロボットの運動パターンを生成することができる。特に、入力運動パターンとロボットの運動パターンの対応付けを行うことなく、入力運動パターンと予め記憶されたロボットの運動パターンを比較することで、生成する運動パターンを選択することが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下に本発明を実施するための最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。本明細書には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００１８】
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
【００１９】
本発明は、所定の対象物の運動パターンを取得する運動パターン取得手段（例えば、図３の運動取得部７２）と、ロボット制御装置で実行可能なロボット運動パターンを再生成可能な力学系によりモデル化するモデリング手段（例えば、図３の力学系モデル化処理部７４）と、モデリング手段によりモデル化された複数のロボット運動パターンを記憶する記憶手段（例えば、図３のロボット運動パターン力学系モデル記憶部７５）と、記憶手段に記憶されている力学系によりモデル化されたロボット運動パターンと運動パターン取得手段により取得された運動パターンを比較する比較手段（例えば、図３の運動比較部７７）と、比較手段による比較結果に基づいて、生成するロボット運動パターンを選択する選択手段（例えば、図３のロボット運動選択部７８）とを備える情報処理装置を提供する。
【００２０】
この情報処理装置は、記憶手段に記憶されている力学系によりモデル化されたロボット運動パターンから運動パターン取得手段により取得された運動パターンへの線形変換を、ロボット運動パターンと運動パターンの誤差に基づいて算出する誤差算出手段（例えば、図３の運動変換部７６）をさらに設けるようにすることができ、比較手段は、誤差算出手段による算出結果に基づいて比較するようにすることができる。
【００２１】
前記モデリング手段、記憶手段、および比較手段は、リカレント型ニューラルネットワーク（例えば、図４に示すRNN９１）により構成することができる。
【００２２】
また、本発明は、所定の対象物の運動パターンを取得する運動パターン取得ステップ（図９のステップＳ２３）と、ロボット制御装置で実行可能なロボット運動パターン（例えば、図５の学習処理により学習されたロボット運動パターン）を再生成可能な力学系によりモデル化するモデリングステップ（例えば、図５のステップＳ４）と、モデリングステップの処理によりモデル化された複数のロボット運動パターンを記憶する記憶ステップ（例えば、図５のステップＳ５）と、記憶ステップの処理により記憶されている力学系によりモデル化された複数のロボット運動パターンと運動パターン取得ステップの処理により取得された運動パターンを比較する比較ステップ（例えば、図９のステップＳ２４）と、比較ステップの処理による比較結果に基づいて、生成するロボット運動パターンを選択する選択ステップ（例えば、図１０のステップＳ３２）とを含む情報処理方法を提供する。
【００２３】
また、本発明は、所定の対象物の運動パターンを取得する運動パターン取得ステップ（図９のステップＳ２３）と、ロボット制御装置で実行可能なロボット運動パターン（例えば、図５の学習処理により学習されたロボット運動パターン）を再生成可能な力学系によりモデル化するモデリングステップ（例えば、図５のステップＳ４）と、モデリングステップの処理によりモデル化された複数のロボット運動パターンを記憶する記憶ステップ（例えば、図５のステップＳ５）と、記憶ステップの処理により記憶されている力学系によりモデル化された複数のロボット運動パターンと運動パターン取得ステップの処理により取得された運動パターンを比較する比較ステップ（例えば、図９のステップＳ２４）と、比較ステップの処理による比較結果に基づいて、生成するロボット運動パターンを選択する選択ステップ（例えば、図１０のステップＳ３２）とを含む処理をコンピュータに行わせるプログラムを提供する。
【００２４】
このプログラムは、プログラム格納媒体に格納することができる。
【００２５】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２６】
図１は、本発明を適用した２足歩行タイプのロボット１の一実施の形態の構成例を示す外観斜視図である。ロボット１は、住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットであり、内部状態（怒り、悲しみ、喜び、楽しみ等）に応じて行動できるほか、人間が行う基本的な動作を表出することができる。
【００２７】
ロボット１は、胴体部ユニット２の上部に頭部ユニット３が配設されるとともに、胴体部ユニット２の上部左右に、同様の構成を有する腕部ユニット４Ｒおよび４Ｌが所定位置にそれぞれ取り付けられ、かつ、胴体部ユニット２の下部左右に、同様の構成を有する脚部ユニット５Ｒおよび５Ｌが所定位置にそれぞれ取り付けられることにより構成されている。頭部ユニット３には、タッチセンサ１１および表示部１２が設けられている。
【００２８】
図２は、ロボット１の電気的な内部構成例を示すブロック図である。
【００２９】
頭部ユニット３には、ロボット１の「目」として機能するCCD（Charge Coupled Device）カメラ３１Ｌおよび３１Ｒ、「耳」として機能するマイクロホン３２−１乃至３２−Ｎ、並びにタッチセンサ１１などからなる外部センサ部２１、「口」として機能するスピーカ２２、および、ロボット１の状態やユーザからの応答を表示する表示部１２などがそれぞれ所定位置に配設されている。胴体部ユニット２には、ロボット１全体の動作制御をつかさどるメイン制御部５１、バッテリセンサ６１および加速度センサ６２などからなる内部センサ部５２、バッテリ５３、並びに外部メモリ５４などが配設されている。また、胴体部ユニット２には、この他に、電源回路および通信回路などの周辺回路(図示せず)が配設されている。
【００３０】
そして、胴体部ユニット２は、各構成ユニット（胴体部ユニット２、頭部ユニット３、腕部ユニット４Ｌおよび４Ｒ、並びに、脚部ユニット５Ｌおよび５Ｒ）内にそれぞれ配設されたサブ制御部４１Ａ乃至４１Ｆと接続されており、サブ制御部４１Ａ乃至４１Ｆに対して必要な電源電圧を供給したり、サブ制御部４１Ａ乃至４１Ｆと通信を行う。
【００３１】
また、サブ制御部４１Ａ乃至４１Ｆは、対応する構成ユニット内のアクチュエータ４２Ａ乃至４２Ｆと、それぞれ接続されており、メイン制御部５１から供給された各種制御コマンドに基づいて、構成ユニット内のアクチュエータ４２Ａ乃至４２Ｆを、指定された状態に駆動させるように制御する。
【００３２】
そして、外部センサ部２１のCCDカメラ３１Ｌおよび３１Ｒは、周囲の状況を撮像し、得られた画像信号Ｓ１Ａを、メイン制御部５１に送出する。マイクロホン３２−１乃至３２−Ｎ（以下、Ｎ個のマイクロホン３２−１乃至３２−Ｎを個々に区別する必要がない場合、単にマイクロホン３２と称する）は、ユーザから音声入力として与えられる「歩け」、「とまれ」または「右手を挙げろ」等の各種命令音声（音声コマンド）を集音し、得られた音声信号Ｓ１Ｂを、メイン制御部５１にそれぞれ送出する。
【００３３】
また、タッチセンサ１１は、例えば、図１に示されるように頭部ユニット３の上部に設けられており、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、その検出結果を、圧力検出信号Ｓ１Ｃとしてメイン制御部５１に送出する。
【００３４】
内部センサ部５２のバッテリセンサ６１は、バッテリ５３のエネルギ残量を所定の周期で検出し、検出結果をバッテリ残量検出信号Ｓ２Ａとして、メイン制御部５１に送出する。加速度センサ６２は、ロボット１の移動について、３軸方向（ｘ軸、ｙ軸およびｚ軸）の加速度を、所定の周期で検出し、その検出結果を、加速度検出信号Ｓ２Ｂとして、メイン制御部５１に送出する。
【００３５】
外部メモリ５４は、プログラムやデータ、および制御パラメータなどを記憶しており、そのプログラムやデータを必要に応じてメイン制御部５１に内蔵されるメモリ５１Ａに供給する。また、外部メモリ５４は、データ等をメモリ５１Ａから受け取り、記憶する。なお、外部メモリ５４は、ロボット１から着脱可能になされている。
【００３６】
メイン制御部５１は、メモリ５１Ａを内蔵している。メモリ５１Ａは、プログラムやデータを記憶しており、メイン制御部５１は、メモリ５１Ａに記憶されたプログラムを実行することで、各種の処理を行う。即ち、メイン制御部５１は、外部センサ部２１のCCDカメラ３１Ｌおよび３１Ｒ、マイクロホン３２、およびタッチセンサ１１からそれぞれ供給される、画像信号Ｓ１Ａ、音声信号Ｓ１Ｂ、および圧力検出信号Ｓ１Ｃと、内部センサ部５２のバッテリセンサ６１および加速度センサ等からそれぞれ供給される、バッテリ残量検出信号Ｓ２Ａおよび加速度検出信号Ｓ２Ｂに基づいて、ロボット１の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無などを判断する。
【００３７】
そして、メイン制御部５１は、ロボット１の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無の判断結果と、内部メモリ５１Ａに予め格納されている制御プログラム、あるいは、そのとき装填されている外部メモリ５４に格納されている各種制御パラメータなどに基づいて、ロボット１の行動を決定し、その決定結果に基づく制御コマンドを生成して、対応するサブ制御部４１Ａ乃至４１Ｆに送出する。サブ制御部４１Ａ乃至４１Ｆは、メイン制御部５１から供給された制御コマンドに基づいて、アクチュエータ４２Ａ乃至４２Ｆの駆動を制御する。これにより、ロボット１は、例えば、頭部ユニット３を上下左右に揺り動かしたり、腕部ユニット４Ｒ、あるいは、腕部ユニット４Ｌを上に挙げたり、脚部ユニット５Ｒと５Ｌを交互に駆動させて、歩行するなどの行動を行う。
【００３８】
また、メイン制御部５１は、必要に応じて、所定の音声信号Ｓ３をスピーカ２２に与えることにより、音声信号Ｓ３に基づく音声を外部に出力させると共に、例えば、音声を検出したときに、表示信号Ｓ４に基づいて「だーれ」などのユーザへの応答を表示部１２に表示する。更に、メイン制御部５１は、外見上の「目」として機能する、頭部ユニット３の所定位置に設けられた、図示せぬLEDに対して駆動信号を出力することにより、LEDを点滅させて、表示部１２として機能させる。
【００３９】
このようにして、ロボット１は、周囲および内部の状況（状態）や、ユーザからの指令および働きかけの有無などに基づいて、自律的に行動する。
【００４０】
図３は、図２のメイン制御部５１の機能的構成例を示す図である。ここでは、画像認識により、ロボット１の行動を決定する機能についてのみ図示するが、音声認識によりロボット１の行動を決定する機能を設けることも勿論可能である。なお、図３に示す機能的構成は、メイン制御部５１が、メモリ５１Ａに記憶された制御プログラムを実行することで実現されるようになっている。
【００４１】
画像認識部７１は、CCDカメラ３１Ｌおよび３１Ｒから与えられる画像信号を用いて、画像認識処理を行い、その画像認識結果を運動取得部７２に供給する。ここで、ユーザは、一般に、ロボット１の正面方向から話しかけることが多いと予想されるため、周囲の状況を撮像するCCDカメラ３１Ｌおよび３１Ｒは、その撮像方向が、ロボット１の正面方向になるように、頭部ユニット３（図１）に設置されているものとする。
【００４２】
運動取得部７２は、画像認識部７１から供給された画像認識結果である、所定の対象物の運動軌道を取得し、それを運動比較部７７に供給する。ロボット運動パターン記憶部７３は、ロボット１が実行可能な複数のロボット運動パターンを記憶する。力学系モデル化処理部７４は、ロボット運動パターン記憶部７３に記憶されている複数のロボット運動パターンを順次読み出し、再生成可能な力学系モデルとして表現する処理を行う。
【００４３】
ロボット運動パターン力学系モデル記憶部７５は、力学系モデル化処理部７４によって、再生成可能な力学系モデルとして表現された複数のロボット運動パターンを記憶する。運動変換部７６は、ロボット運動パターン力学系モデル記憶部７５から、複数の力学系モデルとして表現されたロボット運動パターンを読み出し、線形変換して予測運動軌道に変換する。
【００４４】
運動比較部７７は、運動取得部７２から供給された所定の対象物の入力運動軌道と、運動変換部７６から供給された予測運動軌道を比較し、その２つの類似性を、軌道間の距離で得られる予測誤差により算出する。このとき、運動変換部７６は、予測誤差を最小にするように線形変換を算出し、ロボット運動パターン力学系モデル記憶部７５は、軌道間の距離の差を最小にするように力学系モデルから生成される運動軌道の位相を調整する。運動比較部７７は、この比較処理を１つの入力運動軌道と複数の予測運動軌道の全ての組み合わせに対して行い、全ての組合せの比較結果をロボット運動選択部７８に供給する。
【００４５】
ロボット運動選択部７８は、運動比較部７７から供給された比較結果に基づいて、最も類似性の高いロボット運動力学系モデルに対応したロボット運動パターンをロボット運動パターン記憶部７５から選択し、それをロボット運動制御部７９に供給する。
【００４６】
ロボット運動制御部７９は、ロボット運動選択部７８によって選択されたロボット運動パターンに基づいて、ロボット１のアクチュエータ４２Ａ乃至４２Ｆを、指定された状態に駆動させるように制御する。
【００４７】
ところで、力学系モデル化処理部７４、ロボット運動パターン力学系モデル記憶部７５、運動変換部７６、および運動比較部７７からなる運動パターンを学習する機能は、リカレント型ニューラルネットワーク（RNN）により実現することができる。
【００４８】
図４は、RNN９１の構成例を表している。このRNN９１は、入力層１０１、中間層（隠れ層）１０２、出力層１０３、およびコンテキスト層１０４により構成されている。これらの入力層１０１、中間層１０２、出力層１０３、およびコンテキスト層１０４は、それぞれ任意の数のニューロンにより構成されている。
【００４９】
入力層１０１のニューロンには、時系列パターンに関するデータｘtがロボット運動パターン記憶部７４から入力される。具体的には例えば、ロボット運動パターンが各関節角度軌道ｘｔとして表現される場合、時刻ｔにおける関節角軌道ｘｔが入力される。
【００５０】
中間層１０２のニューロンは、入力されたデータに対して重み付け加算処理を行い、順次後段に出力する処理を実行する。すなわち、データｘt，Ｃｔに対して所定の重み付け係数に対する演算処理（非線形関数に基づく演算処理）を行った後、出力層１０３に出力する。本実施の形態では例えば、データｘt，Ｃｔの所定の重み付け和の入力に対して、シグモイド関数等の非線形出力特性を有する関数に基づく演算処理を行った後、出力層１０３に出力する。
【００５１】
出力層１０３を構成する一部のニューロン１０３−１は、入力データに対応するデータｘ*t+1を出力する。出力層１０３を構成する一部のニューロン１０３−３は、入力データに対応するデータｙ*t+1を出力する。
【００５２】
コンテキスト層１０４には、出力層１０３の一部のニューロン１０３−２より出力されたデータが、RNN９１の内部の状態を表すコンテキストＣｔとしてフィードバックされている。コンテキストＣｔは、リカレント型ニューラルネットワークに関する一般的用語であり、例えば、参考文献（Elman, J.L. (1990). Finding structure in time. Cognitive Science, 14, 179-211）等に説明が記載されている。
【００５３】
また、RNN９１は、バックプロパゲーションによる学習のため、誤差演算部１１１および１１２を有している。演算部１１３は、RNN９１に対する重み付け係数の設定処理を行う。
【００５４】
次に、図５のフローチャートを参照して、RNN９１が実行するロボット運動パターンの学習処理について説明する。この学習処理は、学習させるロボット運動パターン毎に実行される。換言すれば、学習するロボット運動パターンの数だけ仮想的なRNNが用意され、各仮想RNN毎に図５の学習処理が実行される。
【００５５】
仮想的なRNN毎に図５のフローチャートに示される処理が実行され、仮想RNN毎に運動パターンが学習された後、実際のRNN９１に対して、係数を設定する処理が実行される。ただし、以下の説明では、仮想的なRNNも、実際のRNN９１として説明する。
【００５６】
最初に、ステップＳ１において、RNN９１の入力層１０１は、所定の時刻ｔのロボット運動パターンである入力（各関節角度軌道）ｘtを取り込む。ステップＳ２において、RNN９１の中間層１０２は、入力ｘｔに対して、重み付け係数に対応する演算処理を行い、出力層１０３のニューロン１０３−１から、入力されたロボット運動パターンにおける時刻ｔ＋１の値の予測値ｘ*t+1を出力する。
【００５７】
ステップＳ３において、誤差演算部１１１は、次の時刻ｔ＋１のロボット運動パターンである入力ｘｔ+1を教師信号として取り込む。ステップＳ４において、誤差演算部１１１は、ステップＳ３の処理で取り込んだ教師入力ｘt+1と、ステップＳ２の処理で演算して得た予測値ｘ*t+1の誤差を演算する。
【００５８】
ステップＳ５において、RNN９１は、ステップＳ４の処理で演算して得た誤差を出力層１０３のニューロン１０３−１から入力し、中間層１０２、さらに入力層１０１の順に伝搬（バックプロパゲーション）することで、学習処理を行い、演算結果（重み付け係数）を得る。
【００５９】
ステップＳ６において、RNN９１は、ロボット運動パターンの学習処理を終了するか否かを判定し、まだ学習処理を終了しない、すなわち、規定の学習ステップに到達していないか、もしくは、学習誤差が既定の値より大きいと判定した場合、ステップＳ１に戻り、それ以降の処理を繰り返し実行する。そして、ステップＳ６において、ロボット運動パターンの学習処理を終了すると判定された場合、図５の学習処理が終了される。
【００６０】
図６乃至図８は、以上の学習処理によって学習されたロボット運動パターンの例を示している。
【００６１】
図６は、ロボット１が、腕部ユニット４Ｌおよび４Ｒを、円を描くように駆動させた場合において学習されたロボット運動パターン１０１を示している。
【００６２】
図７は、ロボット１が、腕部ユニット４Ｌおよび４Ｒを、数字の８を描くように駆動させた場合において学習されたロボット運動パターン１１１を示している。
【００６３】
図８は、ロボット１が、腕部ユニット４Ｌおよび４Ｒを、三角形を描くように駆動させた場合において学習されたロボット運動パターン１２１を示している。
【００６４】
以上のように、予め、複数のロボット運動パターンが学習され、ロボット運動パターンの数だけRNN９１が用意される。すなわち、例えば、３通りのロボット運動パターンが学習された場合、３個のRNN９１が用意される。そして、１つの入力運動パターンに対して、全てのRNNが、それぞれ、このパターンの認識処理を行う。
【００６５】
次に、図９のフローチャートを参照して、RNN９１が実行する入力運動パターンの認識処理について説明する。この認識処理は、認識させる１つの入力運動パターンに対して、各RNN毎に実行される。
【００６６】
ステップＳ２１において、RNN９１のコンテキスト層１０４は、コンテキストＣｔに初期値Ｃｉをセットする。ステップＳ２２において、RNN９１の中間層１０２は、入力ｘｔに１ステップ前の時刻の予測値ｙ*ｔ+1を入力としてセットする。ここで、中間層１０２は、次式（１）に従って、線形変換Ｏｉを算出することにより、ロボット運動力学系モデルから入力運動軌道の予測値ｙ*t+1を得る。そして、得られた予測値ｙ*t+1は、出力層１０３のニューロン１０３−３から出力される。
Ｏｉ＝ΣＷｉｊ・Ｈｊ                                      ・・・（１）
【００６７】
上記式（１）において、ｉは、入力層１０１、中間層１０２、出力層１０３、およびコンテキスト層１０４をそれぞれ識別するための値である。Ｗｉｊは、出力層１０３の値をｉ、中間層１０２の値をｊとした場合の、中間層１０２から出力層１０３への重み付け係数を表わしている。Ｈｊは、入力層１０１とコンテキスト層１０４の出力の重み付け係数の和を表わしている。従って、Ｏｉは、中間層１０２の値（ベクトル）を線形変換した値（重み付け係数の和）を表わすことになる。
【００６８】
ステップＳ２３において、誤差演算部１１２は、現在の時刻ｔ＋１の入力運動パターンであるｙｔ+1を教師信号として取り込む。ステップＳ２４において、誤差演算部１１２は、ステップＳ２３の処理で取り込んだ教師入力ｙt+1と、ステップＳ２２の処理で得られた予測値ｙ*t+1の誤差を演算する。
【００６９】
ステップＳ２５において、RNN９１は、ステップＳ２４の処理で演算して得た誤差を出力層１０３のニューロン１０３−３から入力し、中間層１０２、さらに入力層１０１の順に伝搬（バックプロパゲーション）して重み付け係数Ｗｉｊを修正することで、入力運動軌道の予測誤差を最小にするような線形変換Ｏｉを得る。
【００７０】
ステップＳ２６において、RNN９１は、出力層１０３のニューロン１０３−２、中間層１０２、および入力層１０１の順に伝搬（バックプロパゲーション）してコンテキスト層１０４の初期値Ｃｉを修正することで、入力運動軌道の予測誤差を最小にするように、力学系モデルから生成させるロボット運動軌道の位相を調整する。
【００７１】
ステップＳ２７において、RNN９１は、入力運動パターンである入力ｙｔの時間ステップの分だけ処理が行われたか否かを判定し、まだ時間ステップの分だけ処理が行われていないと判定した場合、ステップＳ２２に戻り、上述した処理を繰り返し実行する。そして、ステップＳ２７において、入力運動パターンである入力ｙｔの時間ステップの分だけ処理が行われたと判定された場合、ステップＳ２８に進む。
【００７２】
ステップＳ２８において、RNN９１は、入力運動パターンの認識処理を終了するか否かを判定し、まだ認識処理を終了しない、すなわち、規定の繰り返し回数に到達していないと判定した場合、ステップＳ２２に戻り、それ以降の処理を繰り返し実行する。そして、ステップＳ２８において、入力運動パターンの認識処理を終了すると判定された場合、図９の認識処理が終了される。
【００７３】
以上のような認識処理を行うことで、各RNNにおいて入力運動パターンがそれぞれ認識される。そして、１つの入力運動パターンに対して、各RNNでそれぞれ認識処理が行われた後、その認識処理により得られた複数のRNN間の認識結果（認識誤差）を比較し、類似性の高いロボット運動パターンを選択する処理が行われる。図１０は、この場合の処理を表わしている。
【００７４】
ステップＳ３１において、ロボット運動選択部７８は、各RNN毎に図９のフローチャートに示される認識処理を実行し、その結果得られたRNN間の認識結果を、所定の評価基準に基づいて比較する。
【００７５】
ここで、所定の評価基準とは、例えば、予め決められた規定学習回数における学習誤差、もしくは予め決められた学習誤差に至る学習回数を意味するものである。一般に、RNNの学習は、教師パターンと出力パターンの誤差を、繰り返し計算することにより最小化する処理である。従って、複数のRNNの学習性能を比較するにあたり、学習処理の終了を学習回数（すなわち、繰り返し計算の回数）により規定した場合、学習誤差の大きさ（繰り返し計算の結果である最終の誤差）が学習性能の評価基準とされる。一方、学習処理の終了を予め決められた学習誤差の大きさに到達することにより規定した場合、学習回数が学習性能の評価基準とされる。
【００７６】
ステップＳ３２において、ロボット運動選択部７８は、ステップＳ３１の処理による比較結果に基づいて、最も類似性の高いロボット運動力学系モデルに対応したロボット運動パターンをロボット運動パターン記憶部７５から選択する。ステップＳ３３において、ロボット運動選択部７８は、ステップＳ３２の処理で選択したロボット運動パターンをロボット運動制御部７９に出力する。そして、ロボット運動制御部７９は、ロボット運動選択部７８から出力されたロボット運動パターンに基づいて、ロボット１のアクチュエータ４２Ａ乃至４２Ｆを、指定された状態に駆動させるように制御する。
【００７７】
このように、入力運動パターン（ユーザの行動）のイメージを表現するロボット１のロボット運動パターンが生成される。
【００７８】
図１１は、入力運動パターンとロボット運動パターンの比較処理を模式的に示している。図１１の状態においては、図６乃至図８に示されるロボット運動パターン１０１，１１１，１２１が既に学習され、ロボット運動パターン記憶部７５に記憶されている。
【００７９】
例えば、ロボット１の前方で、ユーザが腕を数字の８を描くように行動した場合、CCDカメラ３１Ｌ，３１Ｒにより、その行動が撮像され、入力運動パターン１３１がRNN９１に入力される。RNN９１は、入力運動パターン１３１とロボット運動パターン記憶部７５に記憶されている各ロボット運動パターン１０１，１１１，１２１との比較処理を行い、それぞれ類似性（認識誤差）を算出する。ロボット運動選択部７８は、その算出結果に基づいて、入力運動パターン１３１に最も類似するロボット運動パターンとして、ロボット運動パターン１１１を選択する。ロボット運動制御部７９は、ロボット運動選択部７８により選択されたロボット運動パターン１１１に基づいて、ロボット１のアクチュエータ４２Ａ乃至４２Ｆを制御する。これにより、数字の８を描くようなロボット運動パターンがロボット１の動作として生成される。
【００８０】
以上のように、予め、ロボット１に対して、入力運動パターンとロボット運動パターンの対応付けを行うことなく、入力運動パターンのイメージを表現するロボット１の運動パターンを生成することができる。
【００８１】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図１２に示されるようなパーソナルコンピュータ２００が用いられる。
【００８２】
図１２において、CPU（Central Processing Unit）２０１は、ROM（Read Only Memory）２０２に記憶されているプログラム、または記憶部２０８からRAM（Random Access Memory）２０３にロードされたプログラムに従って各種の処理を実行する。RAM２０３にはまた、CPU２０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００８３】
CPU２０１、ROM２０２、およびRAM２０３は、バス２０４を介して相互に接続されている。このバス２０４にはまた、入出力インタフェース２０５も接続されている。
【００８４】
入出力インタフェース２０５には、キーボード、マウスなどよりなる入力部２０６、CRT（Cathode Ray Tube），LCD（Liquid Crystal Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部２０７、ハードディスクなどより構成される記憶部２０８、モデム、ターミナルアダプタなどより構成される通信部２０９が接続されている。通信部２０９は、ネットワークを介しての通信処理を行う。
【００８５】
入出力インタフェース２０５にはまた、必要に応じてドライブ２１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブルメディア２１１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部２０８にインストールされる。
【００８６】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、パーソナルコンピュータ２００に、ネットワークや記録媒体からインストールされる。
【００８７】
この記録媒体は、図１２に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア２１１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM２０２や、記憶部２０８に含まれるハードディスクなどで構成される。
【００８８】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【００８９】
【図１】本発明を適用したロボットの構成例を示す外観斜視図である。
【図２】ロボットの電気的な内部構成例を示すブロック図である。
【図３】図２のメイン制御部の機能的構成例を示す図である。
【図４】RNNの構成例を示す図である。
【図５】ロボット運動パターンの学習処理を説明するフローチャートである。
【図６】学習されたロボット運動パターンの例を示す図である。
【図７】学習されたロボット運動パターンの他の例を示す図である。
【図８】学習されたロボット運動パターンの他の例を示す図である。
【図９】入力運動パターンの認識処理を説明するフローチャートである。
【図１０】選択処理を説明するフローチャートである。
【図１１】入力運動パターンとロボット運動パターンの比較処理を模式的に示す図である。
【図１２】本発明を適用したパーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【００９０】
１  ロボット，  ４Ｒ，４Ｌ  腕部ユニット，  ３１Ｒ，３１Ｌ  CCDカメラ，  ４１Ａ乃至４１Ｆ  サブ制御部，  ４２Ａ乃至４２Ｆ  アクチュエータ，  ５１  メイン制御部，  ７１  画像認識部，  ７２  運動取得部，  ７３  ロボット運動パターン記憶部，  ７４  力学系モデル化処理部，  ７５  ロボット運動パターン力学系モデル記憶部，  ７６  運動変換部，  ７７  運動比較部，  ７８  ロボット運動選択部，  ７９  ロボット運動制御部，  ９１  RNN，  １０１  入力層，  １０２  中間層，  １０３  出力層，  １０４  コンテキスト層，  １１１，１１２  誤差演算部，  １１３  演算部
【図１】
2005115654.tif 000003
【図２】
2005115654.tif 000004
【図３】
2005115654.tif 000005
【図４】
2005115654.tif 000006
【図５】
2005115654.tif 000007
【図６】
2005115654.tif 000008
【図７】
2005115654.tif 000009
【図８】
2005115654.tif 000010
【図９】
2005115654.tif 000011
【図１０】
2005115654.tif 000012
【図１１】
2005115654.tif 000013
【図１２】
2005115654.tif 000014