(57)【要約】【課題】  言葉によらないノンバーバルコミュニケーションのインタラクション自体をスムーズに行うことを実現可能とする。【解決手段】  行動記述モジュールを自己の内部状態及び外部刺激に応じて選択して選択された行動記述モジュールに記述されたコマンドを出力する行動制御部１００ａと、行動制御部１００ａからのコマンドに応じた行動を発現させるハードウェア依存行動制御部１０４と、行動制御部１００ａとハードウェア依存行動制御部１０４との間に配置されたオーバーレイ制御部１２０とを有する。オーバーレイ制御部１２０のオーバーレイ部（ＮＶＣオブジェクト）１２１は、行動制御部１００ａからのコマンドに対して、関係性及び態度モデル部１２２からの関係性データ及び態度データと、自己の内部状態及び外部刺激とに応じて、動作又は姿勢を含む出力形態の一部又は全部を変更する行動オーバーレイを行ってハードウェア依存行動制御部１０４のモーション制御部１０５に送る。【選択図】  図１２
2007125629.tif 000002
【特許請求の範囲】
【請求項１】
自己の内部状態及び外部刺激に応じて自律的に行動可能な自律ロボット装置において、
人との関係性を記憶する関係性記憶手段を有し、
上記関係性記憶手段からの関係性と、自己の内部状態及び外部刺激とに応じて、動作又は姿勢を含む出力形態の一部又は全部を変更する行動オーバーレイを行うこと
を特徴とするロボット装置。
【請求項２】
それぞれ所定の行動が記述された行動記述モジュールを自己の内部状態及び外部刺激に応じて選択して選択された行動記述モジュールに記述されたコマンドを出力する行動制御部と、
上記行動制御部からのコマンドに応じた行動を発現させるハードウェア依存行動制御部と、
上記行動制御部と上記ハードウェア依存行動制御部との間に配置され、上記行動制御部からのコマンドに対して上記行動オーバーレイを行って上記ハードウェア依存行動制御部に送るオーバーレイ制御部と
を有することを特徴とする請求項１記載のロボット装置。
【請求項３】
上記行動制御部は、上記行動オーバーレイに応じた空行動記述モジュールを有し、
上記オーバーレイ制御部は、上記行動制御部からの上記空行動記述モジュールからの空コマンドに基づき、上記関係性記憶手段からの関係性と、自己の内部状態及び外部刺激とに応じて上記行動オーバーレイを行って上記ハードウェア依存行動制御部に送る
ことを特徴とする請求項２記載のロボット装置。
【請求項４】
上記行動制御部は、上記行動オーバーレイに使用される行動記述モジュールを、システム起動時に上記オーバーレイ制御部に登録し、
上記オーバーレイ制御部は、上記登録された行動記述モジュールを用いて上記行動オーバーレイを行う
ことを特徴とする請求項２記載のロボット装置。
【請求項５】
上記関係性記憶手段は、ロボット装置が知っている各個人毎の関係性データを記憶する個人データベースと、上記関係性とロボット装置の内部状態とに基づく現在状態を管理するための態度データを有する現在状態管理部とを有し、これらの関係性データと態度データとを用いて、上記行動オーバーレイを行う
ことを特徴とする請求項１記載のロボット装置。
【請求項６】
自己の内部状態及び外部刺激に応じて自律的に行動可能な自律ロボット装置の行動制御方法において、
人との関係性を記憶する関係性記憶手段からの関係性と、自己の内部状態及び外部刺激とに応じて、動作又は姿勢を含む出力形態の一部又は全部を変更する行動オーバーレイを行うこと
を特徴とする行動制御方法。
【請求項７】
それぞれ所定の行動が記述された行動記述モジュールを自己の内部状態及び外部刺激に応じて選択して選択された行動記述モジュールに記述されたコマンドを出力する行動制御工程と、
上記行動制御工程からのコマンドに対して上記行動オーバーレイを行って出力するオーバーレイ制御工程と、
上記オーバーレイ制御工程からのコマンドに応じた行動を発現させるハードウェア依存行動制御工程と
を有することを特徴とする請求項６記載の行動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部刺激や自己の内部状態に応じて自律的に行動可能なロボット装置及びその行動制御方法に関する。
【背景技術】
【０００２】
電気的又は磁気的な作用を用いて人間（生物）の動作に似た運動を行う機械装置を「ロボット」という。我が国においてロボットが普及し始めたのは、１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータや搬送ロボット等の産業用ロボット（Industrial Robot）であった。
【０００３】
最近では、人間のパートナーとして生活を支援する、すなわち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬、猫のように４足歩行の動物の身体メカニズムやその動作を模した「ペット型」ロボット、或いは、２足直立歩行を行う人間等の身体メカニズムや動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット（Humanoid Robot）等のロボット装置は、既に実用化されつつある。
【０００４】
これらのロボット装置は、産業用ロボットと比較して、エンターテインメント性を重視した様々な動作を行うことができるため、エンターテインメントロボットと称される場合もある。また、そのようなロボット装置には、外部刺激や自己の内部状態に応じて自律的に行動可能なものがある。
【０００５】
また近年では、本能や感情といった情動をモデル化した情動モデルを有するロボット装置が提案されている。これらのロボット装置は、人間を含む環境とのインタラクションからその情動を変化させ、その情動を表出することができるため、よりエンターテインメント性の高いものとなっている。
【０００６】
ところで、このような情動モデルを有するロボット装置の情動をユーザが認識するためには、ロボット装置がどのように情動を表出するかが重要となる。従来、ロボット装置がユーザに対して情動を表出する方法としては、以下のようなものが提案されている。
【０００７】
（１）情動表出専用の身体リソース（デバイス）を持つ。
（１−１）ＬＥＤ（Light Emission Diode）の色で情動表出を行う。
例えば「赤」により「怒り」の情動を表し、「青」により「悲しみ」の情動を表す。
（１−２）犬や猫などを模した「尻尾」により情動を表す。
例えば「尻尾を上げる」ことにより「怒り」の情動を表し、「尻尾を下げる」ことにより「悲しみ」の情動を表す。
（１−３）人の顔を模した「眉毛」により情動を表す。
例えば「眉尻を上げる」ことにより「怒り」の情動を表し、「眉尻を下げる」ことにより「悲しみ」の情動を表す。
（２）情動により音声にモジュレーションをかける。
例えば「音声の高さ、速さ、大きさを大きくする」ことにより「怒り」の情動を表し、「音声の高さ、速さ、大きさを小さくする」ことにより「悲しみ」の情動を表す。
【０００８】
これらの情動表出方法は、情動表出に用いる身体リソースがその他の身体リソース（生物を模したロボット装置の場合には手、足、頭、腰など）と切り離されているため、全体的に制御が容易であるという利点がある反面、情動表出に用いることができる身体リソースが限られてしまうため、情動表現力に欠けるという欠点がある。
【０００９】
ここで、上述した情動表出方法に代えて、或いは上述した情動表出方法に加えて、身体リソースを使ったモーションによる情動表出が可能になれば、さらに豊かな情動表出が可能となり、ロボット装置のエンターテインメント性をより高めることができると考えられる。従来、身体リソースを使ったモーションにより情動を表出する方法としては、以下のようなものが提案されている。なお、（３−２）の方法は、下記特許文献１に記載されている。
【００１０】
（３）情動表出に身体リソースを使ったモーションを使う。
（３−１）各情動に対応したモーションを作成する。
例えば「お辞儀をする」、「キックする」といったモーションに対し、情動を付加したバリエーションを作成する。
（３−２）モーションを実行する際に、情動に応じたモジュレーションをかける。
例えば「お辞儀をする」、「キックする」といったモーションを再生する際に、適当な身体リソースに適当な周波数を重ね合わせることで、情動を付加したモーションをリアルタイムに生成する。
【００１１】
また、特許文献２には、現在の感情の状態に応じて行動のパラメータを変化させ、変化させたパラメータに基づいてロボット装置に行動を発現させるようにしたロボット装置及びその制御方法が記載されている。
【００１２】
【特許文献１】特開２００３−８９０８５号公報
【特許文献２】特開２００３−１９１１８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、これまで、人とロボット装置のインタラクションにおいては、そのやりとりの中身が重視されてきたが、言葉によらないノンバーバルコミュニケーションをインタラクション自体をスムーズに行うために用いる研究は少なかった。数少ない研究例として、対話の際にうなずきをいれる技術や、表情をとりいれるというものはあったが、それらは自分の状態を実際に動きまわることができるロボット装置と人との間の言葉によらないノンバーバルコミュニケーションを実現するものではなく、それを保つために積極的に自らのジェスチャなどを利用するというものではない。
【００１４】
本発明は、このような従来の実情に鑑みて提案されたものであり、言葉によらないノンバーバルコミュニケーションのインタラクション自体をスムーズに行うことを実現可能とするロボット装置及びその行動制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した目的を達成するために、本発明は、自己の内部状態及び外部刺激に応じて自律的に行動可能な自律ロボット装置において、人との関係性を記憶する関係性記憶手段を有し、上記関係性記憶手段からの関係性と、自己の内部状態及び外部刺激とに応じて、動作又は姿勢を含む出力形態の一部又は全部を変更する行動オーバーレイを行うことを特徴とする。
【００１６】
上記特徴を有するロボット装置は、それぞれ所定の行動が記述された行動記述モジュールを自己の内部状態及び外部刺激に応じて選択して選択された行動記述モジュールに記述されたコマンドを出力する行動制御部と、上記行動制御部からのコマンドに応じた行動を発現させるハードウェア依存行動制御部と、上記行動制御部と上記ハードウェア依存行動制御部との間に配置され、上記行動制御部からのコマンドに対して上記行動オーバーレイを行って上記ハードウェア依存行動制御部に送るオーバーレイ制御部とを有することが好ましい。
【００１７】
上記行動制御部は、上記行動オーバーレイに応じた空行動記述モジュールを有し、上記オーバーレイ制御部は、上記行動制御部からの上記空行動記述モジュールからの空コマンドに基づき、上記関係性記憶手段からの関係性と、自己の内部状態及び外部刺激とに応じて上記行動オーバーレイを行って上記ハードウェア依存行動制御部に送ることが挙げられる。また、上記行動制御部は、上記行動オーバーレイに使用される行動記述モジュールを、システム起動時に上記オーバーレイ制御部に登録し、上記オーバーレイ制御部は、上記登録された行動記述モジュールを用いて上記行動オーバーレイを行うことが挙げられる。
【発明の効果】
【００１８】
本発明に係るロボット装置及びその行動制御方法によれば、言葉によらないノンバーバルコミュニケーションを行動オーバーレイにより実現することにより、行動オーバーレイは、行動スキーマ（行動記述モジュール）にとってあたかも存在していないかのようにふるまい、かつ、主要行動を邪魔しないで遂行でき、簡単な構造により、新しい行動を足したり学習したりすることが容易に行える。また、一貫性をもって、ノンバーバルコミュニケーションを重ねる（オーバーレイする）ことができ、人にとって理解や推測がしやすい形で表出することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００２０】
本発明の実施の形態は、自律ロボットにおいて、言葉によらないノンバーバルコミュニケーションを円滑に行うために、人との関係性を記憶する部分と、自分の内部状態・感情を管理する部分を持ち、それらと環境からの情報によって、動作や姿勢を一括してオーバーレイする（一部または全部変更する）ような機構を有するものである。この実施の形態となるロボット装置のソフトウェア構成としては、自律行動ロボットが、行動生成部（後述する状況依存行動階層や反射行動部等）を持ち、コマンドを運動生成部（後述するハードウェア依存行動制御部）に送っており、内部状態エンジンとセンサ情報をプールする短期記憶を有するものであって、上記行動生成部と、運動生成部の間に、新たに行動オーバーレイ部をつくり、接続している。行動オーバーレイ部は、内部状態エンジンと短期記憶とも接続され、これらの情報と後述の内部に持つデータベースを用いて、行動をどのように変更するかを決定する。行動オーバーレイ部は、実際のオーバーレイの内容、例えば個人間距離や姿勢あるいはジェスチャ等を決めるために、個人データベースと現在状態管理部を持ち、これらの情報を使って、相手との個人間距離や姿勢あるいはジェスチャ等のオーバーレイの内容を決める。
【００２１】
このような本発明の実施の形態におけるノンバーバル（言葉によらない）コミュニケーションについての具体的な説明に先立って、本発明の実施の形態が適用されるロボット装置の構成について説明し、次にロボット装置の行動制御システムについて説明し、最後にロボット装置のノンバーバルコミュニケーションのための構成や行動制御に関する具体的な例について説明する。以下の本発明の実施の形態においては、主として人間を模した外観形状とされ外部刺激や自己の内部状態に応じて自律的に行動可能なロボット装置、いわゆる人型ロボットの例について説明するが、本発明は、人型ロボットのみに限定されるものではなく、ペット型ロボット等の種々のロボット装置に適用可能である。
【００２２】
（１）ロボット装置の構成
先ず、本実施の形態におけるロボット装置の外観構成を図１に示す。図１に示すように、ロボット装置１は、体幹部ユニット２の所定の位置に頭部ユニット３が連結されると共に、左右２つの腕部ユニット４Ｒ／Ｌと、左右２つの脚部ユニット５Ｒ／Ｌとが連結されて構成されている。但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。
【００２３】
このロボット装置１の機能構成を図２に模式的に示す。図２に示すように、ロボット装置１は、全体の動作の統括的制御及びその他のデータ処理を行う制御ユニット２０と、入出力部４０と、駆動部５０と、電源部６０とで構成される。
【００２４】
入出力部４０は、入力部として、人間の「目」に相当し外部の状況を撮影するＣＣＤ（Charge Coupled Device）カメラ４１、人間の「耳」に相当するマイクロフォン４２や、頭部や背中等の部位に配設され、所定の押圧を受けるとこれを電気的に検出することでユーザの接触を感知するタッチセンサ４４、前方に位置する物体までの距離を測定するための距離センサ、五感に相当するその他の各種センサを装備している。また、入出力部４０は、出力部として、頭部ユニット３に備えられ、人間の「口」に相当するスピーカ４３、人間の目の位置に設けられ、視覚認識状態等を表現するＬＥＤ（Light Emission Diode）４５等を装備している。これらの出力部は、音声やＬＥＤ４５の点滅など、腕部ユニット４Ｒ／Ｌや脚部ユニット５Ｒ／Ｌ等を用いたモーション以外の形式によっても、ロボット装置１からのユーザ・フィードバックを実現することができる。
【００２５】
例えば、頭部ユニット３の頭頂部の所定箇所に複数のタッチセンサ４４を設け、各タッチセンサ４４における接触検出を複合的に活用することで、例えばロボット装置１の頭部を「撫でる」、「叩く」、「軽く叩く」等のユーザからの働きかけを検出することができる。具体的には、例えばタッチセンサ４４のうちの幾つかが所定時間をおいて順次接触したことを検出した場合、これを「撫でられた」と判別し、短時間のうちに接触を検出した場合、これを「叩かれた」と判別するなど場合分けすることができる。ロボット装置１は、この検出結果に応じて内部状態を変化させ、この内部状態の変化を上述の出力部等により表現することができる。
【００２６】
駆動部５０は、制御ユニット２０が指令する所定の運動パターンに従ってロボット装置１の機体動作を実現する機能ブロックであり、行動制御による制御対象である。駆動部５０は、ロボット装置１の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール軸、ピッチ軸、ヨー軸等の各軸毎に設けられた複数の駆動ユニット５４１〜５４ｎで構成される。各駆動ユニット５４１〜５４ｎは、所定軸回りの回転動作を行うモータ５１１〜５１ｎと、モータ５１１〜５１ｎの回転位置を検出するエンコーダ５２１〜５２ｎと、エンコーダ５２１〜５２ｎの出力に基づいてモータ５１１〜５１ｎの回転位置や回転速度を適応的に制御するドライバ５３１〜５３ｎとの組み合わせで構成される。
【００２７】
電源部６０は、その字義通り、ロボット装置１内の各電気回路等に対して給電を行う機能モジュールである。本実施の形態におけるロボット装置１は、バッテリを用いた自律駆動式であり、電源部６０は、充電バッテリ６１と、充電バッテリ６１の充放電状態を管理する充放電制御部６２とで構成される。
【００２８】
充電バッテリ６１は、例えば、複数本のリチウムイオン２次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【００２９】
また、充放電制御部６２は、充電バッテリ６１の端子電圧や充電／放電電流量、充電バッテリ６１の周囲温度等を測定することで充電バッテリ６１の残存容量を把握し、充電の開始時期や終了時期等を決定する。充放電制御部６２が決定する充電の開始及び終了時期は制御ユニット２０に通知され、ロボット装置１が充電オペレーションを開始及び終了するためのトリガとなる。
【００３０】
制御ユニット２０は、人間の「頭脳」に相当し、例えばロボット装置１の頭部ユニット３或いは体幹部ユニット２に搭載されている。
【００３１】
この制御ユニット２０の内部構成を図３に示す。図３に示すように、制御ユニット２０は、メイン・コントローラとしてのＣＰＵ（Central Processing Unit）２１が、メモリ及びその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。バス２８は、データ・バス、アドレス・バス、コントロール・バス等を含む共通信号伝送路である。バス２８上の各装置にはそれぞれに固有のアドレス（メモリ・アドレス又はＩ／Ｏアドレス）が割り当てられている。ＣＰＵ２１は、アドレスを指定することによってバス２８上の特定の装置と通信することができる。
【００３２】
ＲＡＭ（Random Access Memory）２２は、ＤＲＡＭ（Dynamic RAM）等の揮発性メモリで構成された書き込み可能なメモリであり、ＣＰＵ２１が実行するプログラム・コードをロードしたり、実行プログラムによる作業データの一時的に保存したりするために使用される。
【００３３】
ＲＯＭ（Read Only Memory）２３は、プログラムやデータを恒久的に格納する読み出し専用メモリである。ＲＯＭ２３に格納されるプログラム・コードとしては、ロボット装置１の電源投入時に実行する自己診断テスト・プログラムや、ロボット装置１の動作を規定する動作制御プログラム等が挙げられる。なお、ロボット装置１の制御プログラムには、ＣＣＤカメラ４１やマイクロフォン４２等のセンサ入力を処理してシンボルとして認識する「センサ入力・認識処理プログラム」、短期記憶や長期記憶等の記憶動作（後述）を司りながらセンサ入力と所定の行動制御モデルとに基づいてロボット装置１の行動を制御する「行動制御プログラム」、行動制御モデルに従って各関節モータの駆動やスピーカ４３の音声出力等を制御する「駆動制御プログラム」等が含まれる。
【００３４】
不揮発性メモリ２４は、例えばＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）のように電気的に消去再書き込みが可能なメモリ素子で構成され、逐次更新すべきデータを不揮発的に保持するために使用される。逐次更新すべきデータとしては、暗号鍵やその他のセキュリティ情報、出荷後にインストールすべき装置制御プログラム等が挙げられる。
【００３５】
インターフェース２５は、制御ユニット２０の外部の機器と相互接続し、データ交換を可能にするための装置である。インターフェース２５は、例えば、ＣＣＤカメラ４１、マイクロフォン４２、又はスピーカ４３等との間でデータ入出力を行う。また、インターフェース２５は、駆動部５０内の各ドライバ５３１〜５３ｎとの間でデータやコマンドの入出力を行う。
【００３６】
また、インターフェース２５は、ＲＳ（Recommended Standard）−２３２Ｃ等のシリアル・インターフェース、ＩＥＥＥ（Institute of Electrical and electronics Engineers）１２８４等のパラレル・インターフェース、ＵＳＢ（Universal Serial Bus）インターフェース、ｉ−Ｌｉｎｋ（ＩＥＥＥ１３９４）インターフェース、ＳＣＳＩ（Small Computer System Interface）インターフェース、ＰＣカードやメモリカードを受容するメモリカード・インターフェース（カード・スロット）等のような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続された外部機器との間でプログラムやデータの移動を行うようにしてもよい。
【００３７】
また、インターフェース２５の他の例として、赤外線通信（ＩｒＤＡ）インターフェースを備え、外部機器と無線通信を行うようにしてもよい。
【００３８】
さらに、制御ユニット２０は、無線通信インターフェース２６やネットワーク・インターフェース・カード（ＮＩＣ）２７等を含み、Ｂｌｕｅｔｏｏｔｈ（登録商標）のような近接無線データ通信や、ＩＥＥＥ  ８０２．１１ｂのような無線ネットワーク、或いはインターネット等の広域ネットワークを経由して、外部の様々なホスト・コンピュータとデータ通信を行うことができる。
【００３９】
このようなロボット装置１とホスト・コンピュータとの間におけるデータ通信により、遠隔のコンピュータ資源を用いて、ロボット装置１の複雑な動作制御を演算したり、遠隔操作したりすることも可能とされる。
【００４０】
（２）ロボット装置の行動制御システム
次に、上述したロボット装置１の行動制御システム（ＥＧＯアーキテクチャともいう）について詳細に説明する。ここで、上述したロボット装置１は、自己及び周囲の状況や、ユーザからの指示及び働きかけに応じて自律的に行動し得るようになされている。すなわち、ロボット装置１は、外部刺激及び内部状態に応じて自律的に行動を発現することができる。詳細は後述するが、ロボット装置１は、自身の各要素行動が記述された行動記述モジュール（スキーマ）毎に実行優先度を表す行動価値（Activation Level；ＡＬ）を外部刺激及び内部状態に基づいて計算し、その行動価値の大きさに基づいて一又は複数のスキーマを選択して行動を発現する。
【００４１】
ロボット装置１の行動制御システム１０の機能構成を図４に模式的に示す。この行動制御システム１０は、ＥＧＯアーキテクチャとも称され、オブジェクト指向プログラミングを採り入れて実装することができる。この場合、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとＩｎｖｏｋｅとを行うことができる。
【００４２】
行動制御システム１０は、外部環境７０を認識するために、視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３等からなる機能モジュールである外部刺激認識部８０を備えている。
【００４３】
視覚認識機能部８１は、例えば図２のＣＣＤカメラ４１のような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識等の画像認識処理や特徴抽出を行う。
【００４４】
また、聴覚認識機能部８２は、図２のマイクロフォン４２等の音声入力装置を介して入力される音声データを音声認識して、特徴抽出したり、単語セット（テキスト）認識を行ったりする。
【００４５】
さらに、接触認識機能部８３は、例えば図１の機体の頭部ユニット３等に内蔵された図２のタッチセンサ４４によるセンサ信号を認識して、「撫でられた」とか「叩かれた」という外部刺激を認識する。
【００４６】
内部状態管理部９１は、本能や感情といった数種類の情動を数式モデル化して管理する感情・本能モデルを有しており、上述の視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３によって認識された外部刺激に応じてロボット装置１の本能や感情といった内部状態を管理する。この感情・本能モデルは、それぞれ認識結果と行動履歴とを入力に持ち、それぞれ感情値と本能値とを管理している。行動モデルは、これらの感情値や本能値を参照することができる。
【００４７】
情動管理部９２は、内部状態に基づいてロボット装置１の情動を例えば、喜び（JOY）、悲しみ（SADNESS）、怒り（ANGER）、驚き（SURPRISE）、嫌悪（DISGUST）、恐れ（FEAR）、中立（NEUTRAL）等に分類し、管理する。
【００４８】
また、行動制御システム１０は、外部刺激の認識結果や内部状態の変化に応じて行動制御を行うために、時間経過に従って失われる短期的な記憶を行う短期記憶部９３と、情報を比較的長期間保持するための長期記憶部９４とを備えている。短期記憶及び長期記憶という記憶メカニズムの分類は神経心理学に依拠する。
【００４９】
短期記憶部９３は、上述の視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。例えば、図２に示すＣＣＤカメラ４１からの入力画像を約１５秒程度の短い期間だけ記憶する。
【００５０】
長期記憶部９４は、物の名前など学習により得られた情報を長期間保持するために使用される。長期記憶部９４は、例えばあるスキーマにおいて外部刺激から内部状態の変化を連想記憶することができる。
【００５１】
また、ロボット装置１の行動制御は、反射行動部１０３によって実現される「反射行動」と、状況依存行動階層１０２によって実現される「状況依存行動」と、熟考行動階層１０１によって実現される「熟考行動」とに大別される。
【００５２】
反射行動部１０３は、上述の視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。反射行動とは、基本的に、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動を直接決定する行動のことである。例えば、人間の顔を追いかけたり、頷いたりといった振る舞いは反射行動として実装することが好ましい。
【００５３】
状況依存行動階層１０２は、上述の短期記憶部９３及び長期記憶部９４の記憶内容や、内部状態管理部９１によって管理されるロボット装置１の内部状態を基に、ロボット装置１が現在置かれている状況に即応した行動を制御する。
【００５４】
この状況依存行動階層１０２は、要素行動毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。また、状況依存行動階層１０２は、内部状態をある範囲に保つためのホメオスタシス行動も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出現し易くなるようにその行動を活性化させる（実際には、内部状態と外部環境の両方を考慮した形で行動が選択される）。状況依存行動は、反射行動に比し、反応時間が遅い。
【００５５】
熟考行動階層１０１は、上述の短期記憶部９３及び長期記憶部９４の記憶内容に基づいて、ロボット装置１の比較的長期に亘る行動計画等を行う。熟考行動とは、与えられた状況或いは人間からの命令により、推論やそれを実現するための計画を立てて行われる行動のことである。例えば、ロボット装置１の現在位置と目標位置とから経路を探索することは熟考行動に相当する。このような推論や計画は、ロボット装置１がインタラクションを保つための反応時間よりも処理時間や計算負荷を要する（すなわち処理時間がかかる）可能性があるため、上述の反射行動部１０３や状況依存行動階層１０２がリアルタイムで反応を返しながら、熟考行動階層１０１は推論や計画を行う。
【００５６】
熟考行動階層１０１、状況依存行動階層１０２、及び反射行動部１０３は、ロボット装置１のハードウェア構成に非依存の上位のアプリケーション・プログラムとして記述することができる。これに対し、ハードウェア依存行動制御部１０４は、これら上位アプリケーションからの命令に応じて、関節アクチュエータの駆動等の機体のハードウェア（外部環境）を直接操作する。このような構成により、ロボット装置１は、制御プログラムに基づいて自己及び周囲の状況を判断し、ユーザからの指示及び働きかけに応じて自律的に行動できる。
【００５７】
以下、行動制御システム（ＥＧＯアーキテクチャ）１０についてさらに説明する。図５は、行動制御システム１０のオブジェクト構成を示す模式図である。
【００５８】
図５に示すように、視覚認識機能部８１は、Face Detector１１４、Multi Color Tracker１１３、Face Identify１１５という３つのオブジェクトで構成される。
【００５９】
Face Detector１１４は、画像フレーム中から顔領域を検出するオブジェクトであり、検出結果をFace Identify１１５に出力する。Multi Color Tracker１１３は、色認識を行うオブジェクトであり、認識結果をFace Identify１１５及びShort Term Memory（ＳＴＭ）９３に出力する。また、Face Identify１１５は、検出された顔画像を手持ちの人物辞書で検索する等して人物の識別を行い、顔画像領域の位置、大きさ情報と共に人物のＩＤ情報をShort Term Memory９３に出力する。また、Face Identify１１５は、人物識別の確信度を情動を管理するEmotion Manager９２に出力する。
【００６０】
聴覚認識機能部８２は、Audio Recog１１１とSpeech Recog１１２という２つのオブジェクトで構成される。Audio Recog１１１は、マイクロフォン１６等の音声入力装置からの音声データを受け取って、特徴抽出と音声区間検出を行うオブジェクトであり、音声区間の音声データの特徴量及び音源方向をSpeech Recog１１２やShort Term Memory９３に出力する。Speech Recog１１２は、Audio Recog１１１から受け取った音声特徴量と音声辞書及び構文辞書を使って音声認識を行うオブジェクトであり、認識された単語のセットをShort Term Memory９３に出力する。また、Speech Recog１１２は、音声認識の確信度をEmotion Manager９２に出力する。
【００６１】
触覚認識記憶部８３は、タッチセンサ１８からのセンサ入力を認識するTactile Sensor１１９というオブジェクトで構成され、認識結果はShort Term Memory９３や内部状態を管理するオブジェクトであるInternal Status Manager（ＩＳＭ）９１に出力する。
【００６２】
Short Term Memory９３は、短期記憶部を構成するオブジェクトであり、上述の認識系の各オブジェクトによって外部環境から認識されたターゲットやイベントを短期間保持（例えばＣＣＤカメラ１５からの入力画像を約１５秒程度の短い期間だけ記憶する）する機能モジュールであり、Short Term Memory９３のクライアント（ＳＴＭクライアント）であるSituated Behaviors Layer（ＳＢＬ）１０２に対して外部刺激の通知（Notify）を定期的に行う。
【００６３】
Long Term Memory（ＬＴＭ）９４は、長期記憶部を構成するオブジェクトであり、物の名前など学習により得られた情報を長期間保持するために使用される。Long Term Memory９４は、例えばある行動記述モジュール（スキーマ）において外部刺激から内部状態の変化を連想記憶することができる。
【００６４】
Internal Status Manager９１は、内部状態管理部を構成するオブジェクトであり、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の認識系の各オブジェクトによって認識された外部刺激（ＥＳ：External Stimula）に応じてロボット装置１の本能や感情といった内部状態を管理する。
【００６５】
Emotion Manager９２は、情動管理部を構成するオブジェクトであり、Internal Status Manager９１によって管理されている内部状態や上述の認識系の各オブジェクトによって認識された外部刺激等に基づいて、ロボット装置１の情動を管理する。
【００６６】
Situated Behaviors Layer１０２は、状況依存行動階層を構成するオブジェクトである。Situated Behaviors Layer１０２は、ＳＴＭクライアントとなるオブジェクトであり、Short Term Memory９３からは定期的に外部刺激（ターゲットやイベント）に関する情報の通知を受け取ると、スキーマすなわち実行すべき行動記述モジュールを決定する（後述）。
【００６７】
ReflexiveＳＢＬ１０３は、反射行動部を構成するオブジェクトであり、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する。例えば、人間の顔を追いかけたり、頷く、障害物の検出により咄嗟に避けるといった振る舞いを行う。
【００６８】
Situated Behaviors Layer１０２は、外部刺激や内部状態の変化等の状況に応じた動作を選択する。これに対し、ReflexiveＳＢＬ１０３は、外部刺激に応じて反射的な動作を選択する。これら２つのオブジェクトによる行動選択は独立して行われるため、互いに選択された行動記述モジュール（スキーマ）を機体上で実行する場合に、ロボット装置１のハードウェア・リソースが競合して実現不可能なこともある。Resource Manager（ＲＭ）１１６というオブジェクトは、Situated Behaviors Layer１０２とReflexiveＳＢＬ１０３とによる行動選択時のハードウェアの競合を調停する。そして、調停結果に基づいて機体動作を実現する各オブジェクトに通知することにより機体が駆動する。
【００６９】
Sound Performer１７２、Motion Controller１７３、ＬＥＤ Controller１７４は、機体動作を実現するオブジェクトである。Sound Performer１７２は、音声出力を行うためのオブジェクトであり、Resource Manager１１６経由でSituated Behaviors Layer１０２から与えられたテキスト・コマンドに応じて音声合成を行い、ロボット装置１の機体上のスピーカ１７から音声出力を行う。また、Motion Controller１７３は、機体上の各関節アクチュエータの動作を行うためのオブジェクトであり、Resource Manager１１６経由でSituated Behaviors Layer１０２から手や脚等を動かすコマンドを受けたことに応答して、該当する関節角を計算する。また、ＬＥＤ Controller１７４は、ＬＥＤ１９の点滅動作を行うためのオブジェクトであり、Resource Manager１１６経由でSituated Behaviors Layer１０２からコマンドを受けたことに応答してＬＥＤ１９の点滅駆動を行う。
【００７０】
以上、行動制御システム１０の機能構成及びオブジェクト構成について説明したが、以下では、先ず現在置かれている状況に即応した行動を行う状況依存行動について説明し、次にあるプランに基づいた行動を行う熟考行動と、熟考行動により繰り返し発現した一連の行動をルーチンワークとして獲得する方法とについて説明する。
【００７１】
（２−１）状況依存行動
次に、上記行動価値ＡＬを算出し、発現する行動を選択する状況依存行動について、さらに詳細に説明する。図６には、上記状況依存行動階層（通常状況依存行動階層：ＮＳＢＬ）１０２及び反射行動部（反射状況依存行動階層：ＲＳＢＬ）１０３を含む行動制御部１００ａによる行動制御の形態を模式的に示している。
【００７２】
視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３からなる外部刺激認識部８０における外部環境７０の認識結果（センサ情報）１８２は、外部刺激１８３として行動制御部１００ａ（内の反射行動部）に与えられる。また、外部刺激認識部８０による外部環境７０の認識結果に応じた内部状態の変化１８４も行動制御部１００ａ（内の状況依存行動階層）に与えられる。そして、行動制御部１００ａでは、外部刺激１８３や内部状態の変化１８４に応じて状況を判断して、行動選択を実現することができる。行動制御部１００ａでは、外部刺激１８３や内部状態の変化１８４によって、要素行動１３１が記述された行動記述モジュール（スキーマ）の行動価値ＡＬを算出して、行動価値ＡＬの大きさに応じてスキーマを選択して行動（動作）を実行する。行動価値ＡＬの算出には、例えばライブラリを利用することにより、全てのスキーマについて統一的な計算処理を行うことができる。ライブラリには、内部状態ベクトルから欲求値ベクトルを算出する関数、内部状態ベクトルから満足度ベクトルを算出する関数、及び外部刺激から予想内部状態変化ベクトルを予想するための行動評価データベース等が保存されている。
【００７３】
（２−２）スキーマ
図７には、状況依存行動階層１０２及び反射行動部１０３が、複数のスキーマ（要素行動）１３１，１３２によって構成されている様子を模式的に示している。状況依存行動階層１０２及び反射行動部１０３は、上述した要素行動１３１として、行動記述モジュールを有し、各行動記述モジュール毎にステートマシンを用意しており、それ以前の行動（動作）や状況に依存して、センサ入力された外部情報の認識結果を分類し、動作を機体上で発現する。要素行動１３１となる行動記述モジュールは、外部刺激や内部状態に応じた状況判断を行うＭｏｎｉｔｏｒ機能と、行動実行に伴う状態遷移（ステートマシン）を実現するＡｃｔｉｏｎ機能とを備えたスキーマとして記述される。
【００７４】
状況依存行動階層１０２は、複数のスキーマ１３１，１３２が階層的に連結されたツリー構造として構成され、外部刺激や内部状態の変化に応じてより最適なスキーマ１３１，１３２を統合的に判断して行動制御を行うようになっている。このツリー１３３は、例えば動物行動学的（Ethological）な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリー等、複数のサブツリー（又は枝）を含んでいる。
【００７５】
図８には、状況依存行動階層１０２におけるスキーマのツリー構造を模式的に示している。この図８に示すように、状況依存行動階層１０２は、短期記憶部９３からの外部刺激の通知を受けるルート・スキーマ２０１１を先頭に、抽象的な行動カテゴリから具体的な行動カテゴリに向かうように、各階層毎にスキーマが配設されている。例えば、ルート・スキーマ２０１１の直近下位の階層では、「サッカーをする（Soccer）」、「会話をする（Dialogue）」というスキーマ２０２２，２０３２が配設される。そして、スキーマ２０２２「サッカーをする（Soccer）」の下位には、「Soccer Search」、「Soccer Approach」、「Shot」という具体的なサッカーに関連する行動を記述した複数のスキーマ２０２３が配設されている。さらに、スキーマ２０２３「Shot」の下位には、「Left Kick」、「Right Kick」というより具体的なボールを蹴る行動に関連する行動を記述した複数のスキーマ２０２４が配設されている。同様に、スキーマ２０３２「会話をする（Dialogue）」の下位には、「Dialogue Search」、「Dialogue Approach」、「Chat」というより具体的な会話に関連する行動を記述した複数のスキーマ２０３３が配設されている。
【００７６】
これらの各スキーマは、上述した要素行動１３１に対応するものであり、外部刺激や内部状態に応じた状況判断を行うＭｏｎｉｔｏｒ機能と、行動実行に伴う状態遷移（ステートマシン）を実現するＡｃｔｉｏｎ機能とを備えている。
【００７７】
ここで、Ｍｏｎｉｔｏｒ関数とは、外部刺激と内部状態とに応じて当該スキーマの行動価値ＡＬを算出する関数であり、各スキーマは、このような行動価値算出手段としてのＭｏｎｉｔｏｒ機能を有する。図８に示すようなツリー構造を構成する場合、上位（親）のスキーマは外部刺激及び内部状態を引数として下位（子供）のスキーマのＭｏｎｉｔｏｒ関数をコールすることができ、子供のスキーマは行動価値ＡＬを返り値とする。また、スキーマは自分の行動価値ＡＬを算出するために、さらに子供のスキーマのＭｏｎｉｔｏｒ関数をコールすることができる。そして、ルート・スキーマには各サブツリーからの行動価値ＡＬが返されるので、外部刺激及び内部状態の変化に応じた最適なスキーマ、すなわち行動を統合的に判断することができる。ここで、ルート・スキーマを上述の行動選択部１３０とし、これにより、スキーマを選択するようにしてもよい。なお、例えば後述するリソース・マネージャＲＭ１１６や、別に設けた行動選択部により、各スキーマの行動価値ＡＬを観察し、各行動価値ＡＬの値に基づき行動を選択してもよいことは勿論である。
【００７８】
行動選択部１３０では、上述したように、例えば行動価値ＡＬが最も高いスキーマを選択したり、行動価値ＡＬが所定の閾値を越えた２以上のスキーマを選択して並列的に行動実行するようにしてもよい。但し、並列実行するときは各スキーマ同士でハードウェア・リソースの競合がないことを前提とする。
【００７９】
また、Ａｃｔｉｏｎ関数は、スキーマ自身が持つ行動を記述したステートマシンを備えている。図８に示すようなツリー構造を構成する場合、親スキーマは、Ａｃｔｉｏｎ関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。本具体例では、ＡｃｔｉｏｎのステートマシンはＲｅａｄｙにならないと初期化されない。言い換えれば、中断しても状態はリセットされず、スキーマが実行中の作業データを保存することから、中断再実行が可能である。
【００８０】
（３）ノンバーバルコミュニケーションのための行動オーバーレイ
ところで、これまで、人とロボットのインタラクションにおいては、そのやりとりの中身が重視されてきたが、インタラクション自体をスムーズに行うためには、言葉によらないノンバーバルコミュニケーションも重要であると考えられる。このノンバーバル（言葉によらない）コミュニケーションは、相手との関係やその場の状況によってインタラクションを促進したり、逆にとめたりするために使われるもので、このコミュニケーションチャンネルが、スムーズなインタラクションを続けるためには不可欠なものとなっている。具体的には、自律的に行動可能なロボットにおいて、個人間距離というものに着目し、さらに、それを保つために積極的に自らのジェスチャなどを利用することが考えられるが、そのような行動を出すためには、例えば各部がモジュールに分かれた構造を有するものの場合、各モジュールごとに設計して実装していることが多く、モジュール間で一貫性を出すのが難しかった。本発明の実施の形態は、このようなノンバーバルコミュニケーションを容易に実現可能なロボット装置及びその制御方法を提供するものである。なお、この場合のロボット装置としては、人型（人間型あるいは人間形）ロボットに限定されず、ペット型ロボット等の種々のロボット装置にも適用されるものである。
【００８１】
（３−１）行動オーバーレイの概要
本発明の実施の形態においては、ロボット装置の行動について、動作や姿勢の一部又は全部を変更するような行動オーバーレイという手法を用いて、ノンバーバルコミュニケーションを実現している。
【００８２】
ロボットの行動のオーバーレイのコンセプトは、ある出力形態（動き、姿勢、あるいはその組み合わせとして）の見え方を部分的に変更するモータレベルの変更として説明できる。このノンバーバルコミュニケーションの場合、ロボットの主要行動を変更しないように注意してモータシステムを変更しながら、情報を並列して提供することを意図している。ロボットの行動レパートリーを形成している行動スキーマ（行動記述モジュール）はお互いの存在や処理の仕方を知る必要がないので、行動オーバーレイは、行動スキーマにとってあたかも存在していないかのようにふるまい、かつ、主要行動を邪魔しないで遂行できるようにしなくてはならない。このような独立性を保つことは、新しい行動を足したり学習したりしやすくする。
【００８３】
簡単な例として、シンプルな２自由度の出力をもつシステムを考える。例えば、水平方向と垂直方向の２つの自由度もつような、犬型ロボットの尻尾を考える。犬は尻尾をノンバーバルコミュニケーションのために使い、特に尻尾の振り方についてバリエーションを利用している。
【００８４】
ここで、本実施の形態の犬型ロボットのモータプリミティブデザインから、尻尾を使ったコミュニケーションの例として、次の４つを挙げる。
ａ．友好的に尻尾を振る：尻尾の振り幅は大きく、尻尾の高さは低く、振るスピードは基本的にはゆっくりだが感情の強さに依存する。
ｂ．尻尾を防御するように振る：振り幅は小さく、尻尾の高さは高く、振るスピードは基本的には速いが、感情の強さに依存する。
ｃ．従順な姿勢：もしロボット側が優勢ではなく従順の場合、尻尾の高さはとても弱く足の間に垂れ下がり、尻尾を振ったりしない。
ｄ．威張った歩き：もしロボット側が支配権をにぎり従順性が低い場合、歩くのと同時に起こる。尻尾の振りは小さいが、尻尾の位置は高く、振りの速さは速い。
【００８５】
このようなコミュニケーションのモードを実装する１つの方法は、これらの行動についての行動スキーマ（行動記述モジュール）をそれぞれ設計することであり、直接関係する情動や内部状態モデルに対応づけて複雑度を増すように設計してそれぞれの行動スキーマに入れることである。もう１つの方法としては、上述したような行動オーバーレイが挙げられ、この行動オーバーレイは、表出される行動を作りだすために外部で変更をかけるため、根底にある行動を簡単にすることができる。
【００８６】
ここで、犬型ロボットの場合の、尻尾のモータの状態を表す式ＭＴ(t)について説明する。ｂ０を情動にはよらない基本的な歩く行動とする。自然に左右にふっているときに、犬が尻尾をφ０の高さ、歩くときのデフォルトの値から±θ０の振幅にω０の周期であるとする。尻尾のモータの状態ＭＴは、このような条件によって、次の式（数１）のように決まる。
【００８７】
【数１】
2007125629.tif 000003
【００８８】
次に、尻尾の行動オーバーレイのベクトルｏ０を考える。以下の数２式に示すオーバーレイされた尻尾のモータ状態ＭＴ＋を作り出すための複数次元のオーバーレイ関数ΩＴに従って計算される。
【００８９】
【数２】
2007125629.tif 000004
【００９０】
行動オーバーレイのベクトルｏ０を正しく作るために、オーバーレイシステムは、もともとの基本的な歩く行動を書き換えることなく、威張った歩きや、特別に予め用意していない他のコミュニケーション情報を含んだ歩き方も生成できる。さらに、基本的な行動のパラメータを内部状態に従って連続的に変更することができる。
【００９１】
しかし、犬型ロボットの例では、今のところ、オーバーレイシステムは、すでにある行動（この場合は歩き）に対して尻尾を使った犬とのコミュニケーションを実現しているに過ぎない。モータ入力に対してオーバーレイシステムを使い続けるための特別なタイプの行動を足す必要がある。このタイプの行動は２つの特長で区別できる。普通の行動とは異なる起動のされ方をし、違うものとして扱われる。このような行動の行動記述モジュールを「空スキーマ（idle schema）」と称する。
【００９２】
この場合、空スキーマによる次の数３式に示す行動ｂ１が、オーバーレイシステムに尻尾を振る入力を供給する。すなわち、尻尾というリソースを使うことを供給する。
【００９３】
【数３】
2007125629.tif 000005
【００９４】
この行動は普通の環境に基づく行動と、行動選択で競合し、アクティブになるとΩＴによってオーバーレイされる。ある非常に基本的な行動を追加したオーバーレイシステムは、先ほどあげた４つの尻尾によるコミュニケーション情報の呈示を行うことができるようになる。それには、角度や組み合わせに関してバリエーションをもち、内部状態に基づいてオーバーレイコンポーネントが正しく選択される。アクティブな行動をＢｉ、オーバーレイをｏｊとすると、オーバーレイされた尻尾のモータ状態ＭＴ＋の行動は、次の数４式のように表される。
【００９５】
【数４】
2007125629.tif 000006
【００９６】
しかし、特別な「空スキーマ」行動によって、ロボットの表出行動に、さらにバリエーションを増す機会が与えられる。これらの行動はオーバーレイシステムがうまく利用できるように作られている。例えば、象徴的なジェスチャを起こすトリガを送ることができるようになっていたりする。もしロボットの普通の行動が刺激ベクトル［Ｓ］によって起こるとすると、空スキーマ行動はそれを拡張したベクトル［Ｓ，ψ］で活性化する。ψはオーバーレイシステムからくる刺激である。例えば、オーバーレイシステムからの刺激によって活性化した犬型ロボットの尻尾の空スキーマ行動は、事前に定義された形Ｐを再生する行動を中断する可能性がある。
【００９７】
【数５】
2007125629.tif 000007
【００９８】
一般的に、アクティブな環境に依存する行動群をＢ、空スキーマ行動をＩ、オーバーレイベクトルをＯ、オーバーレイされた後のモータ状態をＭ＋とすると、Ｍ＋は、次の数６式のようになる。
【００９９】
【数６】
2007125629.tif 000008
【０１００】
このような行動オーバーレイのモデルを図９に示す。この図９において、アクティブな環境に依存する行動ｂ１,...,ｂｎを含む行動群Ｂの行動は刺激ベクトルＳによって起こり、空スキーマ行動ｉ１,...,ｉｍを含む行動群Ｉの行動は刺激ベクトルＳとオーバーレイ関数Ωのシステムからの刺激ψとによって起こる。オーバーレイ関数Ωのシステムには、オーバーレイベクトルＯが与えられ、オーバーレイされた出力（モータ状態）Ｍ＋が得られる。
【０１０１】
理想的なモジュール化された状態で、環境によって起こる行動は、行動オーバーレイシステムと通信することもなく、その存在を知る必要もない。ただし、実用的な問題として、環境依存行動からオーバーレイシステムへのあるレベルの影響は必要とされている。その理由は、事前にどの行動には影響を与えてよくて、どれには与えてはいけないかを決定しておくことはできないからである。このレベルの影響は、この例のモデルで考慮されており、ＢとＩのΩに対する入力に対してモータコマンド自体に必要なやりとりが組み込まれている。
【０１０２】
今回実装したオーバーレイシステムは、行動モジュールがモジュレーションを受けないようにするための機能や、潜在的なオーバーレイの範囲を設定することでオーバーレイシステムを助けるような機能が入っている。例えば、インタラクションを行う際の典型的な距離の情報等である。しかしながら、一般的に、オーバーレイシステムに関する情報やオーバーレイシステムとの通信を行わなくても行動を起こすことができる。
【０１０３】
（３−２）関係性（Relationship）と態度（Attitude）
ロボット装置、例えば人型ロボットが知っているそれぞれの人は、それぞれの関係性モデルのデータで表されている。この変数群は一般的に実際に、ノンバーバルコミュニケーション（ＮＶＣ）において使いやすいものが選ばれている。
【０１０４】
このような人とロボット装置との間の関係性（Relationship）モデルの一例を図１０に示す。この図１０の関係性モデルは、ロボット装置が知っている各個人毎の個人データベースとしてロボット装置内部に保持されている。
【０１０５】
この図１０において、離散的な値を持つ「タイプ(TYPE)」の項目は、人型ロボットと相手の関係性の基本となる性質を表している。それが全体的なコンテキストを表し、他の変数群が局所的に変化する。このモデルデータは、個人間距離を決めるのに主に使われる。この「タイプ」の項目において、「親密(INTIMATE)」な関係は、本当に極めて親しいか家族のようなつながりをもつ相手である。「個人的(PERSONAL)」な関係は、ほとんどの友人である。「社会的(SOCIAL)」な関係は、知っていて社会的につながりがある相手（職場の同僚など）を表している。「公共的(PUBLIC)」な関係は、人型ロボットが知ってはいるが特に社会的なつながりをもたない相手である。この関係性タイプは頻繁には変わらないが、時間をかけて学んだり変化したりする。例えば、公共的な関係が、何度か会合をもつことにより、社会的な関係に発展したりする。
【０１０６】
他の（上記タイプ以外の）関係性の変数は、連続的な値をとっている。それぞれの性質に結び付けられていて、正規化されており、必要なときには負の値をとることもできる。「親密さ(Closeness)」は、情動的な距離の近さを表しており、親しさの度合いや信頼の一種である。「魅力(Attraction)」は、人型ロボットが相手に対してどれぐらい親しくなりたいかの欲求を表している。「愛情(Attachment)」は、直接距離の近さを決める変数で、人型ロボットがその人にどれぐらい愛情をもっているかを表す。「地位(Status)」は、人型ロボットと相手の相対的な上下関係を表している。この値で、礼儀正しい階層的な関係なのか、打ち解けた友人関係なのかも示している。「確信度(confidence)」は、上に挙げたデータがどれぐらい実際の関係に沿っているのかを表す値である。この値によって、人型ロボットが相手をよく知れば知るほど、反応を出す量を変化させていくことができる。
【０１０７】
次に、ロボット装置の個人的な特性や個性に関連した内容を表す「態度(Attitude)」の例について、図１１を参照しながら説明する。
【０１０８】
人型ロボットの個人的なノンバーバル行動を出すために、人型ロボットの内部状態を解釈したりフィルタリングをするシステムが必要である。今のところ、この実施の形態のシステムでは、個人間距離とボディランゲージオーバーレイに関係するものを特にとりあげており、個性全てをカバーするものではない。この個人的な特性を表す構造体のことを「態度(Attitude)」と呼び、一例を図１１に示す。この図１１に示す「態度」構造体は、人との関係性等に基づく現在状態を管理する現在状態管理部でもある。
【０１０９】
それぞれの人型ロボットは各々、１つの「態度」構造体を持つ。長期〜中期的な効果を持ち、最初からデータがセットされて変わらないのではなく、長期的なインタラクションによって少しずつ変化するようにしている。態度や関係性が時間的に変わっていくことによって、行動が少しずつ変わっていったりするので、人型ロボットのエンタテイメント性が「行動する」という点で高くなる。
【０１１０】
図１１に示す「態度」構造体の一例においては、３種類の対になる値を持っている。それぞれの値は正規化されている。この対になる値は、片方の値からもう一方の値を直接計算することができる。計算上は３つの変数があれば十分であることになるが、プログラマや行動デザイナーにとってこの６つの値があることが直感的に分かりやすいことから、６つの値を持っている。
【０１１１】
「社交的(Extroversion)」と「内向的(Introversion)」については、人の性格を表すモデルの一つであるファイブファクターモデル（McCrae, R.R. and Costa, P.T.  Toward a newgeneration of personality theories: Theoreticalcontexts for the five-factor model. In Wiggins, J.S., editor, Five-Factor Model of Personality, pages 51-87. Guilford, New York, 1996）の外向性次元を使っている。犬型ロボットの実験でも用いられ成功しているモデルである。人型ロボットの場合、これらの値は、ボディランゲージでどれぐらい表現したいかに作用し、内部状態の欲求から計算される。「社交的」が高い値をとると、よりボディランゲージを使うようになる。もし「内向的」が高くなるとあまり身体を使った表現は出さなくなる。「社交的」な場合、ＩＳＭ（内部状態管理部）のINTERACTIONの値を上げ、とINFORMATIONの値を下げる。「内向的」な場合は、ＩＳＭのINTERACTIONの値を上げ、とINFORMATIONの値を下げる。
【０１１２】
「攻撃的(Aggressiveness)」か「臆病(Timidity)」かは上記ファイブファクターモデルの快さと気付きをあわせたようなものと一緒というところからヒントを得て、ノンバーバルコミュニケーションに合う形で適用した。「攻撃的」は情動モデルのANGERの値を増やし、FEARの値を減らす。一方で、「臆病」はANGERを減らしFEARを増やす。「臆病」の値が高いと従属的な姿勢をとりやすくなり、攻撃性が高いと威圧的な姿勢をとりやすくなる。これらの値は、関係性の中の「地位」に影響される。
【０１１３】
最後の「愛着(Attachment)」と「独立性(Independence)」は、上記ファイブファクターモデルではなくボウルビィの理論（Bowlby, J. Attachment & Loss Volume 1: Attachment. Basic Books, 1969）に基づいている。この値によって相手との(物理的な）距離が変化し、関係性の「愛情」の値から計算される。人はみな、ロボットに対する愛情を示すことができるが、ロボットはそれとは違う方法でそういう関係に答えることを期待されている。「愛情」という関係性はロボットが離れたいと思っている人との間の距離を縮めようとする。ロボット自身の「独立性」や「愛着」によってこの（近付いたり離れたりの）レンジの最大値を変化させたり、愛情を抱く対象から離れる行動を変化させたりする。
【０１１４】
（３−３）行動オーバーレイシステムのアーキテクチャと実装
ノンバーバル（言葉によらない）コミュニケーションのための行動オーバーレイは、全ての行動モジュールに適用されなくてはならないと共に、行動モジュール同士は最小限のデータしか共有しないようにする（独立性を保つため）ため、行動制御部（上記図４の状況依存行動階層１０２及び反射行動部１０３）そのものに実装するのは好ましくない。そこで、行動オーバーレイオブジェクト、この場合の例ではノンバーバルコミュニケーション（ＮＶＣ）オブジェクトを、独立したオブジェクトとして、上記図４に示す行動制御システム（ＥＧＯアーキテクチャ）１０に加えた。この行動オーバーレイオブジェクト（ＮＶＣオブジェクト）に対応するオーバーレイ制御部を含めた行動制御システムの構成例を図１２に示す。なお、本発明の実施の形態のオーバーレイ制御部を含めた行動制御システムについても、上記図４に示した行動制御システム１０と同様に、オブジェクト指向プログラミングを採り入れて実装しており、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。
【０１１５】
この図１２において、行動オーバーレイオブジェクト（ＮＶＣオブジェクト）に対応するオーバーレイ制御部１２０は、複数の他の上記行動制御システム（ＥＧＯアーキテクチャ）のオブジェクトと接続し、データのやりとりを行っている。すなわち、この図１２に示す行動制御システム（ＥＧＯアーキテクチャ）は、上記図４に示す行動制御システム１０と同様に、外部環境７０を認識するための視覚認識機能部８１、聴覚認識機能部８２及び接触認識機能部８３等からなる機能モジュールである外部刺激認識部８０と、内部状態管理部（ＩＳＭ）９１及び情動管理部（ＥＭ）９２を有する内部モデル部（ＩＭ）９０ａと、短期記憶部（ＳＴＭ）９３及び長期記憶部（ＬＴＭ）９４を有する記憶部９０ｂと、状況依存行動階層（ＮＳＢＬ）１０２及び反射行動部（ＲＳＢＬ）１０３を有する行動制御部（ＳＢＬ）１００ａと、ハードウェア依存行動制御部１０４とを備えると共に、本発明の実施の形態の要部となる、ノンバーバルコミュニケーション（ＮＶＣ）のためのオーバーレイ制御部１２０を備えて構成され、このオーバーレイ制御部１２０は、行動制御部（ＳＢＬ）１００ａと、ハードウェア依存行動制御部１０４との間に挿入されている。
【０１１６】
なお、この図１２の行動制御システム（ＥＧＯアーキテクチャ）における、オーバーレイ制御部１２０以外の部分は、上記図４の行動制御システム１０の各部と同様であるため説明を省略するが、ハードウェア依存行動制御部１０４内には、ロボット装置の各部モータ等を駆動制御するためのモーション制御（ＭＣ）部１０５が設けられている。
【０１１７】
オーバーレイ制御部１２０は、オーバーレイ部（ＮＶＣモジュール）１２１と、関係性及び態度モデル部１２２とを有している。状況依存行動階層（ＮＳＢＬ）１０２及び反射行動部（ＲＳＢＬ）１０３を有する行動制御部（ＳＢＬ）１００ａからの出力は、オーバーレイ制御部１２０に供給され、オーバーレイ制御部１２０からの出力が、モーション制御（ＭＣ）部１０５を有するハードウェア依存行動制御部１０４に送られる。オーバーレイ制御部１２０には、内部状態管理部（ＩＳＭ）９１及び情動管理部（ＥＭ）９２を有する内部モデル部（ＩＭ）９０ａからの出力と、短期記憶部（ＳＴＭ）９３及び長期記憶部（ＬＴＭ）９４を有する記憶部９０ｂからの出力が供給されている。また、オーバーレイ部（ＮＶＣモジュール）１２１からの出力は、行動制御部（ＳＢＬ）１００ａ内の状況依存行動階層（ＮＳＢＬ）１０２及び反射行動部（ＲＳＢＬ）１０３に送られている。
【０１１８】
このオーバーレイ制御部１２０のオーバーレイ部（ＮＶＣモジュール）１２１のオブジェクト（行動オーバーレイオブジェクト、以下ＮＶＣオブジェクトともいう。）の一例を図１３に示す。この図１３に示すオーバーレイ部１２１のオブジェクト（ＮＶＣオブジェクト）において、一番中心となっているのは、上記状況依存行動階層（ＮＳＢＬ）１０２及び反射行動部（ＲＳＢＬ）１０３を有する行動制御部（ＳＢＬ）１００ａからのモータコマンド（モーション制御コマンド）を途中で変更し、モーション制御（ＭＣ）オブジェクト（ハードウェア依存行動制御部１０４内のモーション制御（ＭＣ）部１０５のオブジェクト）に送るという機能である。さらに、ＮＶＣオブジェクトは複数のＳＢＬオブジェクト（行動制御部（ＳＢＬ）１００ａのオブジェクト）からの出力を受け取り、モーション制御（ＭＣ）オブジェクトへ送りなおしている。このような機能は、主としてオーバーレイ処理部１２３及びオーバーレイ管理部１２４により実現される。モーション制御（ＭＣ）オブジェクトからの返答はＮＶＣオブジェクトを通してＳＢＬオブジェクトに戻している。モータ出力コネクションに加えて、ＮＶＣオブジェクトは上記内部モデル（ＩＭ）からの出力及びＳＴＭ（短期記憶部９３）からのターゲット更新情報を、外部環境情報を知るために、受け取っている（オーバーレイ管理部１２４及びオーバーレイ計算部１２６）。また、ＮＳＢＬ（状態依存行動制御階層１０２）とＲＳＢＬ（反射行動制御部１０３）との間にもメッセージをやりとりする通信を行っている（スキーマ管理部１２５）。この通信を使って、インタラクションの情報を得たり、ジェスチャや姿勢に関するトリガを送ったりしている。オーバーレイ管理部１２４は、オーバーレイ処理部１２３、スキーマ管理部１２５、オーバーレイ計算部１２６、及び後述するジェスチャ選択のためのジェスチャ選択部１２７と接続され、オーバーレイ処理部１２３とスキーマ管理部１２５との間も接続されている。オーバーレイ計算部１２６及びジェスチャ選択部１２７には、上記関係性及び態度モデル部１２２からの関係性データ１２８ａ及び態度データ１２８ｂや、これらのデータに基づく近接学（proxemics：人間と文化的空間の関係を研究する学問）モデル１２８ｃからのデータが送られている。
【０１１９】
（３−４）行動オーバーレイのリソース及びタイミング
行動オーバーレイを行うためのデータ形式は、非常に基本的だがフレキシブルであり、主要なリソースである、頭、腕、腰、足等に分かれている。それぞれの関節（あるいは、足の場合の歩くときのパラメータの値）毎に、行動オーバーレイは値とフラグを調節している。絶対的な値（ある姿勢をとるため）での変更や相対的なゲイン（モーションをより正確にしたりゆるくしたりするため）などによって計算されている。さらに、それぞれのオーバーレイカテゴリーは、バイアスやゲインとしてフラグ管理されている、そのリソースのモーションのスピードを変更するための時間パラメータをもっている。また、足部のオーバーレイは、自分中心の座標系での位置パラメータも持っており、ロボットの歩く方向を変更するために使われる。
【０１２０】
オーバーレイ部（ＮＶＣモジュール）１２１のオブジェクトであるＮＶＣオブジェクト（行動オーバーレイオブジェクト）を経由するモーションコマンド（モータコマンド）は、２つの部分にわかれている。コマンド本体とオプションパラメータセットである。パラメータを持つモーションはＮＶＣオブジェクトが持つ現在のオーバーレイの値に従ってＮＶＣオブジェクトで直接的に変更される。そのようなタイプのモーションには、頭の位置を直接決めるものや、腰や腕の関節角度を直接指定するようなコマンドがある。共通のモーションは再利用されることを考えられてデザインされている。例えば、うなずき動作のようなものである。（パラメータはうなずきの深さである）また、トラッキングのように、視覚と動きの間で早いフィードバックが必要なコマンドもある。残念ながら、パラメータ化されていないコマンドは、ＭＣ（モーション制御）システムに到達するまで細かいパラメータを変更することはできないが、無視したり、同じリソースを使う他のパラメータ化されたコマンドやパラメータ化されてないコマンドに置き換えることができる。
【０１２１】
図１２の行動制御システム（ＥＧＯアーキテクチャ）におけるリソース管理は、疎で固定されて（coarse grained and fixed）いる。モーションコマンド（モータコマンド）のリソース競合を使って、ＳＢＬ（行動制御部１００ａ）の中での行動モジュールの活性化を管理するのに使われている。リソースのカテゴリーは、頭、腰、右腕、左腕、そして足である。腰の友好的、あるいは拒絶をしている姿勢の軸を調整するのに使うボディランゲージモーションコマンドは、一つの軸を使えば十分なのだが、腰全体を使わざるを得なくなっている。そのために他の行動をブロックしてしまう可能性がある。コマンドをうまく変更できるように、ＮＶＣオブジェクト（行動オーバーレイオブジェクト）では、リソースを各ジョイントごとに管理しているかのようにもっと細かくリソースを管理するように実装した。
【０１２２】
しかし、これだけでは、ボディランゲージのオーバーレイをかけたいときに、環境による行動がコマンドを送るまでの間に時間的なギャップが生まれてしまう。このような状況はよくある。ＮＶＣオブジェクト（行動オーバーレイオブジェクト）は、すぐに動くことができる空スキーマ（idle schema）をＮＳＢＬ（状況依存行動階層１０２）の中に置くことで解決した。それぞれの空スキーマは、１つのＭＣリソースを持っている。毎ステップごとに、もし、メインの行動を起こすスキーマがそのリソースを必要としなかったら、対応する空スキーマがＮＶＣオブジェクトにオーバーレイを起こさせるために空コマンドを送る。もし、オーバーレイが必要だった場合、その空コマンドは、中身のあるアクションに変更され、ＭＣに送られる。そうでなければ、捨てられる。空か他の特別なオーバーレイと関係するスキーマから送られたコマンドはＮＶＣオブジェクトの中では他のコマンドとは違う方法で扱われるため、ＮＶＣオブジェクトは、どのスキーマが関係があって、どれがそうではないのかを追い続けなくてはならない。これは、起動時に起こるハンドシェイク処理で解決しており、その一例を図１４に示す。起動時以外の通常時の処理については、図１５にその一例を示している。
【０１２３】
行動制御システム（ＥＧＯアーキテクチャ）の中で実際的に考えると、ノンバーバルコミュニケーションに含まれるアクションは、２つの軸によって、４つのカテゴリーに分かれる。１つめの軸は、アクションのタイミングである。いくつかのアクション、例えば姿勢の変化は正確にタイミングで実行される必要はなく、ＮＳＢＬ（状況依存行動階層１０２）の２Ｈｚという更新速度で十分である。しかし、例えば会話中のうなずきのように同時性が大事なものはＲＳＢＬ（反射行動部１０３）のように反射的に早く反応できるレイヤにいるべきである。２つめの軸は、アクションに使われるリソースである。明らかな姿勢などのいくつかのアクションはリソースの部分的な制御だけが必要だが、他のアクションでは全体的に制御する必要があるものもある。部分的なリソースの管理はすでに述べたが、ＲＳＢＬ（反射行動部１０３）で作られたり、同時に発生したりしたコマンドについても同様である。一方で、全てのリソースを使うようなノンバーバルコミュニケーション行動、例えば象徴的なジェスチャなどもあり、それらは特別にトリガを受け取るスキーマとして実装されている。ＮＳＢＬ（状況依存行動階層１０２）のレベルではこれらのスキーマはジェスチャスキーマ（gesture schema）と称され、ＲＳＢＬ（反射行動部１０３）レベルでは対話反射スキーマ（dialog reflex schema）と称されている。
【０１２４】
図１４の例において、行動オーバーレイのための特別なスキーマが上記オーバーレイ部１２１のオブジェクトであるＮＶＣオブジェクト（行動オーバーレイオブジェクト）にハンドシェイク方式で登録される。ＳＢＬ（行動制御部１００ａ）はＮＶＣオブジェクトがいつメッセージを受け取り可能となるかを知らないため、ＮＶＣからの承認（acknowledgement）が必要とされる。そこで、各スキーマは登録が成功するまで登録コマンドを送る。ＮＳＢＬ（状況依存行動階層１０２）の中では、空スキーマ（idle schema）とジェスチャスキーマ（gesture schema）とがＮＶＣ（オーバーレイ部１２１）に登録される。ＲＳＢＬ（反射行動部１０３）の中ではサブツリーの親スキーマが個々のスキーマのかわりに登録を行っている。これはもともとの対話での反射行動をうまく活かすためである。この登録に関しては、いつでも変更することができ、実際に起動が終わって動いている最中でも変更が可能である。
【０１２５】
図１５は、反射行動やジェスチャが動いていない状態での、普通の空スキーマ（idle schema）が動いている様子の例を示している。ＮＳＢＬ（状況依存行動階層１０２）の空スキーマ（idle schema）やジェスチャスキーマ（gesture schema）は、リソースさえ空いていればアクティブになることができる。アクティブになっている空スキーマはＮＶＣ（オーバーレイ部１２１）に毎回、空コマンドを送る。対話の反射行動のサブツリーの親スキーマはいつもアクティブだが、その下のレベルの子スキーマはアクティブではない。
【０１２６】
次に、ジェスチャのトリガについて、図１６を参照しながら説明する。
【０１２７】
図１６に示すように、ジェスチャスキーマ（gesture schema）はＮＳＢＬ（状況依存行動階層１０２）の中で空スキーマ（idle schema）と同じサブツリーに存在している。しかし、空スキーマと違って、主要な行動が出ていないときには、アクティブになろうとはしない。そのかわり、ジェスチャスキーマは、ジェスチャトリガメッセージがオーバーレイ部１２１のオブジェクトであるＮＶＣオブジェクト（行動オーバーレイオブジェクト）から来るのを待つ。ＮＶＣ（オーバーレイ部１２１）オブジェクトは直接モーションコマンドを作り出すことはなく、あくまでも出てきたコマンドを変更するだけなので、このようにジェスチャスキーマに対してトリガを送ることで、コマンドを作り出している。そのようなメッセージを受け取るとジェスチャスキーマは要求されたジェスチャを実行することを決める。その場合、ジェスチャスキーマはアクティベーションレベルＡＬを増加させ、モーションコマンド（モータコマンド）を送り、アクティベーションレベルＡＬを下げる。予めセットされているパラメータ化されていないモーションのジェスチャがＭＣ（モーション制御）オブジェクトによって普通のコマンドと同じように実行される。
【０１２８】
すなわち、図１６の例において、ジェスチャのトリガは、ＮＶＣ（オーバーレイ部１２１）がトリガメッセージを登録されたＮＳＢＬ（状況依存行動階層１０２）のスキーマに送ることで起こる。空スキーマも姿勢の変更のようなジェスチャと同様な反応を返すことがあることから、空スキーマとジェスチャスキーマも同じように送られる。それぞれのアクティブなスキーマはトリガメッセージを解読し、モータコマンド（モーションコマンド）を送るべきかどうかを判断する。この図１６の例では、１つのジェスチャスキーマ（図中の太線）がコマンドを送る場面を示している。
【０１２９】
対話反射スキーマも同じように扱われるが、少し違う方法になっている。既に、ある人型ロボットでの研究において、対話を行うインタラクションでの反射行動が、会話中のうなずきや相槌をいれることでうまく機能している。もちろん、ＮＶＣシステムは既存のシステムの利用できるところがあれば利用するほうが望ましい。そのシステムは、ＲＳＢＬ（反射行動部１０３）の中にある対話反射行動のアクティベーションレベル（ＡＬ）をいいタイミングで変更するために「インテンション」メカニズムを使っている。ＮＶＣ（オーバーレイ部１２１）オブジェクトもこれらの反射を同じ方法でコントロールする。その一例を図１７に示す。
【０１３０】
対話反射行動は、リソースを持たずにいつでもアクティブになれる親スキーマの下にまとまってつながっている。ＮＶＣオブジェクトからコントロールするメッセージを受け取ると、親スキーマは子供のモニター関数を動かし、アクティベーションレベルＡＬの値を上げさせ、反射行動を起こし、再びアクティベーションレベルＡＬを下げる。もともとあったメカニズムとの実際の違いは、全てをトリガするのではなく、反射行動スキーマが自分たちでアクティベーションレベルＡＬの値をコントロールしているところである。さらに、既にあるうなずき（Nod）反射行動に、さらに２つめの対話反射スキーマを新たに足した。それは、図１７の例に示すような、上体姿勢調整（Lean）スキーマであり、話している人に対する上半身の向きをコントロールするものである。
【０１３１】
図１７の例について説明すると、対話反射のトリガがＮＶＣ（オーバーレイ部１２１）から反射行動ツリーの親に送られてきて、子スキーマ群の評価関数がアクティブになる。子スキーマは自分たちでアクティブになると判断すると、自分たちのアクティベーションレベルを大きくし、必要ならば、モータコマンド（モーションコマンド）を送る。対話反射行動システムは、ＮＶＣオブジェクトから抑制のメッセージが送られるまでアクティブなまま、時々、自己評価を行い、同期性や反応が高まる。
【０１３２】
（３−５）行動オーバーレイの実行フロー
オーバーレイ部１２１のオブジェクトであるＮＶＣオブジェクト（行動オーバーレイオブジェクト）の行動オーバーレイシステムの実行フローの一例を図１８に示す。
【０１３３】
この図１８において、システムが起動するとき（Ｓ１）、空スキーマとジェスチャスキーマはＮＶＣオブジェクトに登録し（Ｓ２）、リソースの分配と通信を行えるようにする。これらのスキーマは自分たちのアクティベーションレベルＡＬを高くセットし、必ずこのメッセージが送れるようにする。ＮＶＣ（オーバーレイ部１２１）から返答を受け取ったら、メインの行動の邪魔にならないようにアクティベーションレベルＡＬを下げる。これは、上記図１４にも示している。また、図１４にも示すように、システムが起動するとき、対話反射スキーマの親スキーマがＮＶＣオブジェクトに登録し、この対話に関する反射行動のトリガをどこに送ればいいのかを知らせる。
【０１３４】
ＮＳＢＬ（状況依存行動階層１０２）のスキーマがＮＶＣオブジェクトに適用すべきインタラクションが始まったことを知らせ、距離に関する行動や、ボディランゲージの行動を起こす。これを受け取るまで、ＮＶＣ（オーバーレイ部１２１）は全てのメイン行動のコマンドを変更することなくＭＣ（モーション制御部１０５）に通し、空スキーマからのコマンドを破棄あるいは無視する（Ｓ３）。ＮＳＢＬ（状況依存行動階層１０２）の対話行動は相手のＩＤも渡し、ＮＶＣ（オーバーレイ部１２１）はそれを使って関係性を調べる。
【０１３５】
ＮＶＣオブジェクトは、ロボットの内部状態や相手への「態度」やインタラクションにおける距離のヒントを使ってオーバーレイする値を計算する（Ｓ４）。このオーバーレイ生成フェイズはロボットの理想的な距離も作り出し、必要ならば歩くコマンドをオーバーレイする。
【０１３６】
空コマンドがオーバーレイの値に従って変更される（Ｓ５）。このコマンドは、中断されなければ、１度だけ実行され、ＮＶＣオブジェクトは２段になっているリソース管理部を使って管理される。この空コマンドは行動コマンドが終わるまでリソースを確保し続け、行動コマンドが終わったらすぐにリソースを解放する。
【０１３７】
ロボットをもっと生きているように柔軟に見せるために、内部状態モデル（ＩＳＭ：内部状態管理部９１）の更新を上半身のオーバーレイの再評価のトリガとした。もし、再評価が起こったら、空コマンドによって確保されているリソースは解放され、次にくる空コマンドが新しいオーバーレイをするのに使われる。
【０１３８】
ＳＴＭ（短期記憶部９３）の更新は相手が動くことで起こる距離の変化を調べるために使われ、必要ならば更新された状況に合うように反応を再生成する。これは、ロボットが自分で歩いて距離を調整するよりも、距離が変わったときに人を動かすためのロボットの象徴的なジェスチャを起こす機会にもなっている。確率関数がロボットの内部モデル（ＩＭ）や態度、そのジェスチャに対する反応などに応じて実行され、結果に応じて、自然でせきたてるようなジェスチャ（例えば、こっちに来いと腕を動かしたり、あっちに行けと手を振ったりするようなジェスチャ）が起こされる。トリガメッセージが全ての登録された空スキーマおよびジェスチャスキーマに送られそれぞれが発火すべきかどうかを判定する（図１６）。
【０１３９】
対話の印（マーカ）があるか、あるいは一般的な反射行動が必要とされていると分かると、ＮＶＣオブジェクトからアクティベーションメッセージが、対話反射行動スキーマに送られる（図１７）。
【０１４０】
（３−６）行動オーバーレイのボディランゲージ
本発明の実施の形態において用意されているボディランゲージとしては、
ａ．歩くスピードも含めた、相手との距離の調節、
ｂ．上記ａを助けるための手や腕のジェスチャ、
ｃ．対話をしたいかどうかを示すための、対話中の上半身の向きの変化あるいは回転（例えば、まっすぐ向いているときは対話したい状態、斜めをむいているときはそうではない状態）、
ｄ．腕の姿勢（手を腰にあてる、腕を身を守るように上げる、上腕の向きなど）と離散的な姿勢（腕組み）、
ｅ．アイコンタクトのための頭の向き、
ｆ．うなずきや体の傾きなど、状態を表すジェスチャ、
が挙げられる。
【０１４１】
本発明の実施の形態においては、上に挙げたボディランゲージの表現は全て実装している。このオーバーレイシステムがあるかないかによって、人型ロボットのインタラクションがどのように変わるかを説明する。
【０１４２】
人型ロボットが、部屋に人がいることに気が付いて、その人と会話をしようとするという社会的なインタラクションを考えてみる。もともとの人型ロボットは、基本的な情動や欲求の内部状態モデルをもち、人の顔をトラッキングするような行動スキーマツリーがあると同時に会話を増やすためのうなずき動作や姿勢を変えることを行う能力があり、会話そのものを行うことができる。行動オーバーレイができる人型ロボットは、これらと同じものに加えて、上述したようなオーバーレイシステムを用いている。
【０１４３】
もともとの人型ロボットが人に焦点を当てているときに、インタラクションによる十分な内部欲求をもてば会話行動を始める。その場合、人型ロボットは人の顔をトラッキングし始めて人の頭の動きに反応し、頭を動かしてうまくアイコンタクト（視線を合わせること。目で相手の目を見ること。）しようとする。人が話をしたら、人型ロボットはうなずくような反射行動を行い、人は人型ロボットがものわかりがよく反応しやすいとわかる。しかし、ロボットと人との距離は人が選ぶことになる。もし、人が部屋の反対側からロボットに近付いてきたら、あるいは、相手の顔が人型ロボットに近付いてきたとしても、人型ロボットは同じように会話を続ける。同じように、人は、インタラクションに対する人型ロボットの欲求が高くなってるから会話をしている、ということはわからない。また自分たちとの関係性に対する人型ロボットの知識に関する情報は会話に出てこない限りまったくない。
【０１４４】
このシナリオを、行動オーバーレイ機能をもつ人型ロボットの場合と比べてみる。この人型ロボットが人を発見して、会話行動が始まると、人型ロボットはすぐに自分の内部状態と相手と共有している相手との関係性についての情報を表に出し始める。人型ロボットはインタラクション欲求と相手との相対的な地位とからある姿勢をとる。いくつかの姿勢については図１９に示している。もし、人が近すぎたり遠すぎたりしたら、人型ロボットは歩いて距離を保とうとする。あるいは、人型ロボットは人が近くにやってくるようにあるいは遠くにいくように合図することもある。そして、人型ロボットが自分で動くよりも前に、相手が動くチャンスを作る。このようなことはインタラクション最中にいつでも起こりうる。例えば、近くにきすぎた場合、人型ロボットは後ろにあとずさり、不快感をジェスチャーで示すこともある。人型ロボットのジェスチャが無視され続けると、相手に対する信頼度が減る。
【０１４５】
図１９の例では、（Ａ）普通の立ち姿勢、（Ｂ）話をしたくない姿勢、（Ｃ）腕を前にもってきた防御姿勢、（Ｄ）従属的な立ち姿勢、（Ｅ）開放的で社交的な姿勢、（Ｆ）腕をあげた攻撃的な姿勢、をそれぞれ示している。
【０１４６】
行動オーバーレイ人型ロボットは、人のスピーチに対してうなずきなどの反応をするだけでなく、人型ロボットの動きはもっとコミュニケーションがとりやすくなっている。もしこの人型ロボットがインタラクションを望んでいて、相手とは良い関係だとしたら、うなずき方や体の姿勢はもっとはっきりとしたものになる。逆に、相手に興味がなかったり、離れたかったりしているときは、このような行動は控えめになったり、抑えられてしまう。頭のトラッキングのパラメータを調節することで、オーバーレイシステムは人型ロボットのアイコンタクトの反応性をもっとよくする。動きのスピードも変更される。怒っていたりこわがっている人型ロボットはもっと早く動くし、インタラクションへの興味がうすい人型ロボットはもっとゆっくり動く。ここにあげてきた全ての内部情報が人型ロボットの相手に対する態度、例えば社交的か内向的か、によって変更される。人は、そのようなシグナルになれているので、人型ロボットや人型ロボットと自分の関係に対する自分のメンタルモデルを更新することができる。
【０１４７】
このように、行動オーバーレイ人型ロボットのインタラクションの方が、豊かでバリエーションが多いことは明らかである。
【０１４８】
ほとんどの場所で、この実装で作り出されるオーバーレイは、内部状態の値から関係性を表す情報への連続的な値のマッピング機能を使うことできるようになっている。例えば、連続的な要素、例えば、腰の向きなどはインタラクション欲求でから簡単にマッピングすることができる。しかし、人型ロボットのモーションアーキテクチャは離散的な状態出力を選ぶようになっている。いくつかの姿勢、例えば腕を組んで守っている姿勢は離散的である。これらの場合、確率を用いた離散的な決定機能が使われていて、連続的な姿勢のオーバーレイを引き起こし、直接値をオーバーレイしたりする。さらに、運動制御部の性質から、離散的な腕の姿勢について、代表的な姿勢をあらかじめモーションエディタなどで作成しておく必要がある。作られたジェスチャは距離を保つ行動をサポートするものである。例えば、片腕または両腕、指などの組み合わせで作られている。同じような確率を用い離散的な決定機能がどのジェスチャを選んで連続的なポジションオーバーレイに上書きするかを決めるのに使われている。
【０１４９】
（３−７）行動オーバーレイの具体例
次に、ロボット装置（例えば人型ロボット）の行動オーバーレイの具体例として、相手が親しい友人だった場合（ケース１）、自分の機嫌が悪いとき（ケース２）、相手がとても偉い人だった場合（ケース３）、の３種類についてどのような行動になるかについて説明する。いずれの場合も話しの内容自体は全部同じであるが、話している最中の人型ロボットの行動が変化する。
【０１５０】
先ずケース１の場合：相手をみつけると近付き、親密な距離まで近付く。姿勢はまっすぐで、手を開き気味の開放的で社交的な姿勢をとり、相手の話に対してうなずいたり、アイコンタクトをとったりする。相手が近くによりすぎるとちょっと後ろにさがったり、離れると前に近付いたりする。
【０１５１】
ケース２の場合：相手との距離は同じであるが、アイコンタクトをとらない（トラッキングがオーバーレイされる）ようにして、そっぽを向いたり、斜めの姿勢をとったり、腕を前で組んでいやがるジェスチャをしたりする。
【０１５２】
ケース３の場合：従属的な立ち姿勢（腰を落とした姿勢）で非常に大きな距離をとる。自分の気分に関係なく、まっすぐとした姿勢を保つ。
【０１５３】
以上説明したような本発明の実施の形態は、図１２に示すように、自律ロボット装置において、人との関係性を記憶する部分としての関係性及び態度モデル部１２２と、自分の内部状態・感情を管理する部分としての内部状態管理部９１及び情動管理部９２を有し、それらと外部環境７０からの情報によって、動作や姿勢を一括して一部または全部変更する行動オーバーレイを行うためのオーバーレイ部（ＮＶＣモジュール）１２１を有している。すなわち、行動記述モジュールを自己の内部状態及び外部刺激に応じて選択して選択された行動記述モジュールに記述されたコマンドを出力する行動制御部１００ａと、行動制御部１００ａからのコマンドに応じた行動を発現させるハードウェア依存行動制御部１０４と、行動制御部１００ａとハードウェア依存行動制御部１０４との間に配置されたオーバーレイ制御部１２０とを有し、オーバーレイ制御部１２０のオーバーレイ部（ＮＶＣオブジェクト）１２１は、行動制御部１００ａからのコマンドに対して、関係性及び態度モデル部１２２からの関係性データ及び態度データと、自己の内部状態及び外部刺激とに応じて、動作又は姿勢を含む出力形態の一部又は全部を変更する行動オーバーレイを行ってハードウェア依存行動制御部１０４のモーション制御部１０５に送る。
【０１５４】
このような構成を有して人とインタラクションを行うロボット装置において、人との関係性や現在の自分の状態から適切な個人間距離を算出し、それをインタラクションをスムーズに行うために使うことができる。上記距離を調節するために、自分で歩くことで距離を調節でき、また、相手に対して適切なジェスチャを出すことができる。さらに、このような人とインタラクションを行うロボット装置において、人との関係性や現在の自分の状態から自分の上半身の姿勢を変更することができる。
【０１５５】
従って、本発明の実施の形態によれば、人にもわかりやすい形での表出により、ロボット装置がどのような状態にあるか人もわかり、インタラクションを進めるのかやめるのかを決めるのに役に立つ。また、ロボットが動くだけでなく、ロボット装置がジェスチャを出すことによって、人の方も距離に関するフィードバックをすることができる。そのフィードバックによって個人間距離がちょうどよくなると同時に、人側もロボットの状態をわかることができる。さらに、姿勢によっても、ロボット装置の状態を知ることができ、人が適切にインタラクションをするべきかどうかを見分けることができる。さらに、一括したオブジェクトで姿勢に関するモジュレーションを行うために、一貫性をもって、ノンバーバルコミュニケーションを重ねる（オーバーレイする）ことができる。これにより、人にとって理解や推測がしやすい形で表出することができる。さらに、そのような重ねあわせをする、しない、どこにしてもいいか、ということに関しても、リソースやモジュールなども考慮した重ね合わせを行うことができる。
【０１５６】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【０１５７】
【図１】本発明の実施の形態におけるロボット装置の外観構成を示す図である。
【図２】上記ロボット装置の機能構成を示す図である。
【図３】上記ロボット装置の制御ユニットの構成を示す図である。
【図４】上記ロボット装置の行動制御システムの機能構成を示す図である。
【図５】上記行動制御システムのオブジェクト構成を示す図である。
【図６】上記行動制御システムの状況依存行動階層による状況依存行動制御の形態を示す図である。
【図７】上記状況依存行動階層が複数のスキーマによって構成されている様子を示す図である。
【図８】上記状況依存行動階層におけるスキーマのツリー構造の一例を示す図である。
【図９】行動オーバーレイのモデルを示す図である。
【図１０】人とロボット装置の関係性モデルの一例を示す図である。
【図１１】ロボット装置の現在状態を管理するための態度構造体の一例を示す図である。
【図１２】行動オーバーレイオブジェクトを含む行動制御システムの構成例を示す図である。
【図１３】行動オーバーレイオブジェクトの内部構造の一例を示す図である。
【図１４】システム起動時の行動オーバーレイのためのスキーマの登録を示す図である。
【図１５】通常時の行動オーバーレイのための空スキーマの動作状態の一例を示す図である。
【図１６】行動オーバーレイのためのジェスチャスキーマの動作状態の一例を示す図である。
【図１７】行動オーバーレイのための対話反射スキーマの動作状態の一例を示す図である。
【図１８】行動オーバーレイ実行時の全体的な動作の一例を示す図である。
【図１９】行動オーバーレイ機能を有する人型ロボットの具体的な姿勢の例を示す図である。
【符号の説明】
【０１５８】
１  ロボット装置、  １０  行動制御システム、  ２０  制御部、  ４０  入出力部、  ５０  駆動部、  ８０  外部刺激認識部、  ９０ａ  内部モデル部（ＩＭ）、  ９１  内部状態管理部（ＩＳＭ）、  ９２  情動管理部（ＥＭ）、  ９３  短期記憶部（ＳＴＭ）、  ９４  長期記憶部（ＬＴＭ）、  １００ａ  行動制御部（ＳＢＬ）、  １０２  状況依存行動階層（ＮＳＢＬ）、  １０３  反射行動部（ＲＳＢＬ）、  １０４  ハードウェア依存行動制御部、  １０５  モーション制御部、  １２０  オーバーレイ制御部、  １２１  オーバーレイ部（ＮＶＣ）、  １２２  関連性及び態度モデル部
【図１】
2007125629.tif 000009
【図２】
2007125629.tif 000010
【図３】
2007125629.tif 000011
【図４】
2007125629.tif 000012
【図５】
2007125629.tif 000013
【図６】
2007125629.tif 000014
【図７】
2007125629.tif 000015
【図８】
2007125629.tif 000016
【図９】
2007125629.tif 000017
【図１０】
2007125629.tif 000018
【図１１】
2007125629.tif 000019
【図１２】
2007125629.tif 000020
【図１３】
2007125629.tif 000021
【図１４】
2007125629.tif 000022
【図１５】
2007125629.tif 000023
【図１６】
2007125629.tif 000024
【図１７】
2007125629.tif 000025
【図１８】
2007125629.tif 000026
【図１９】
2007125629.tif 000027