(57)【要約】【課題】レイヤ間の依存関係を軽減することが可能なロボット装置及びその行動制御方法を提供する。【解決手段】要素行動Ａ、Ｂ、Ｃからなる一連の行動を繰り返し実行すると、スキーマＢはスキーマＡをトリガスキーマとして学習し、スキーマＣはスキーマＢをトリガスキーマとして学習し、一連の行動がルーチンワークとして獲得される。その後、スキーマＡの行動開始時にスキーマＡの行動価値に対してインテンショナルバイアスを与えてスキーマＡを実行すると、スキーマＢは自身の行動価値にルーチンバイアスRSEを加える。スキーマＡが終了すると、その時点ではルーチンバイアスRSEの加えられたスキーマＢの行動価値が最も大きいため、スキーマＡの次にはスキーマＢが実行される。同様にして、スキーマＢの次にはスキーマＣが実行される。【選択図】図１９
2007125631.tif 000002
【特許請求の範囲】
【請求項１】
外部刺激及び／又は内部状態に応じて自律的に行動可能なロボット装置において、
それぞれ所定の要素行動が記述され、外部刺激及び／又は内部状態に応じて自身の要素行動の実行優先度を表す行動価値を算出する複数の行動記述モジュールと、
各行動記述モジュールの実行優先度の大きさに基づいて一又は複数の行動記述モジュールを選択し、選択した行動記述モジュールに記述された要素行動を発現させる行動選択手段と、
所定の計画に基づく一又は複数の行動記述モジュールに含まれる各行動記述モジュールの行動価値に対して、各行動記述モジュールに記述された要素行動の開始時から終了時までの間、第１のバイアス値を加える行動制御手段とを備え、
上記行動制御手段は、複数の行動記述モジュールからなる行動計画が学習されている場合、最初の行動記述モジュールに記述された要素行動の開始時のみ、当該最初の行動記述モジュールの行動価値に対して上記第１のバイアス値を加える
ことを特徴とするロボット装置。
【請求項２】
上記行動計画に含まれる各行動記述モジュールは、自身の直前の要素行動が発現されると、自身の行動価値に第２のバイアス値を加える
ことを特徴とする請求項１記載のロボット装置。
【請求項３】
各行動記述モジュールは、自身に記述された要素行動が発現されると、自身の行動価値に第３のバイアス値を加える
ことを特徴とする請求項１記載のロボット装置。
【請求項４】
上記行動制御手段は、上記複数の行動記述モジュールの行動価値の総和と所定のパラメータとに基づいて上記第１のバイアス値を算出する
ことを特徴とする請求項１記載のロボット装置。
【請求項５】
外部刺激及び／又は内部状態に応じて自律的に行動可能なロボット装置の行動制御方法において、
それぞれ所定の要素行動が記述された複数の行動記述モジュールが、外部刺激及び／又は内部状態に応じて自身の要素行動の実行優先度を表す行動価値を算出する行動価値算出工程と、
所定の計画に基づく一又は複数の行動記述モジュールに含まれる各行動記述モジュールの行動価値に対して、各行動記述モジュールに記述された要素行動の開始時から終了時までの間、第１のバイアス値を加える行動価値制御工程と、
上記複数の行動記述モジュールから、行動価値の大きさに基づいて一又は複数の行動記述モジュールを選択する行動選択工程と、
上記行動選択工程にて選択された行動記述モジュールに記述された要素行動を発現する行動発現工程とを有し、
上記行動価値制御工程では、複数の行動記述モジュールからなる行動計画が学習されている場合、最初の行動記述モジュールに記述された要素行動の開始時のみ、当該最初の行動記述モジュールの行動価値に対して上記第１のバイアス値を加える
ことを特徴とするロボット装置の行動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部刺激や自己の内部状態に応じて自律的に行動可能なロボット装置及びその行動制御方法に関する。
【背景技術】
【０００２】
電気的又は磁気的な作用を用いて人間（生物）の動作に似た運動を行う機械装置を「ロボット」という。我が国においてロボットが普及し始めたのは、１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータや搬送ロボット等の産業用ロボット（Industrial Robot）であった。
【０００３】
最近では、人間のパートナーとして生活を支援する、すなわち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬、猫のように４足歩行の動物の身体メカニズムやその動作を模した「ペット型」ロボット、或いは、２足直立歩行を行う人間等の身体メカニズムや動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット（Humanoid Robot）等のロボット装置は、既に実用化されつつある。
【０００４】
これらのロボット装置は、産業用ロボットと比較して、エンターテインメント性を重視した様々な動作を行うことができるため、エンターテインメントロボットと称される場合もある。また、そのようなロボット装置には、外部刺激や自己の内部状態に応じて自律的に行動可能なものがある。
【０００５】
例えば、特許文献１に記載されたロボット装置は、視覚や聴覚などのセンサ入力を外部刺激の情報とすると共に、本能や感情などの内部状態モデルから得られる情報を内部状態の情報とし、これらの情報に応じて自律的に行動選択を行っている。
【０００６】
この特許文献１のように、ロボット装置の内部にある価値基準によって内外の状況判断を行い、自律的に行動選択を行うと、その行動形態は創発的なものとなり、より複雑な行動を発現することが可能となる。その反面、状況判断基準がロボット装置内部で閉じているため、ロボット装置がどのような計画に基づいて一連の行動を発現しているのかが、第三者的な立場にあるユーザからは分かりづらくなる場合がある。
【０００７】
そこで、特許文献２には、下位レイヤ内において各要素行動が記述された行動記述モジュール（スキーマ）毎に実行優先度を表す行動価値を外部刺激及び／又は内部状態に基づいて計算し、その行動価値の大きさに基づいて一又は複数の行動記述モジュールを選択して行動を発現するようなロボット装置において、上位レイヤが一連の行動記述モジュールの行動価値を各行動記述モジュールに記述された要素行動の開始時から終了時まで強制的に引き上げ、一連の行動を発現させる技術が提案されている。この特許文献２記載の技術によれば、ロボット装置がある計画に基づいて、すなわちある意図に基づいて行動しているように見せることができる。
【０００８】
【特許文献１】特開２００２−２１０６８１号公報
【特許文献２】特開２００４−２３７３９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した特許文献２に記載の技術では、繰り返し発現した一連の行動であっても、一連の行動の開始時から終了時まで上位レイヤが下位レイヤにおける一連の行動記述モジュールの行動価値を制御する必要があったため、レイヤ間の依存関係が必要以上に増大してしまうという問題があった。
【００１０】
本発明は、このような従来の実情に鑑みて提案されたものであり、レイヤ間の依存関係を軽減することが可能なロボット装置及びその行動制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した目的を達成するために、本発明に係るロボット装置は、外部刺激及び／又は内部状態に応じて自律的に行動可能なロボット装置において、それぞれ所定の要素行動が記述され、外部刺激及び／又は内部状態に応じて自身の要素行動の実行優先度を表す行動価値を算出する複数の行動記述モジュールと、各行動記述モジュールの実行優先度の大きさに基づいて一又は複数の行動記述モジュールを選択し、選択した行動記述モジュールに記述された要素行動を発現させる行動選択手段と、所定の計画に基づく一又は複数の行動記述モジュールに含まれる各行動記述モジュールの行動価値に対して、各行動記述モジュールに記述された要素行動の開始時から終了時までの間、第１のバイアス値を加える行動制御手段とを備え、上記行動制御手段は、複数の行動記述モジュールからなる行動計画が学習されている場合、最初の行動記述モジュールに記述された要素行動の開始時のみ、当該最初の行動記述モジュールの行動価値に対して上記第１のバイアス値を加えることを特徴とする。
【００１２】
また、上述した目的を達成するために、本発明に係るロボット装置の制御方法は、外部刺激及び／又は内部状態に応じて自律的に行動可能なロボット装置の行動制御方法において、それぞれ所定の要素行動が記述された複数の行動記述モジュールが、外部刺激及び／又は内部状態に応じて自身の要素行動の実行優先度を表す行動価値を算出する行動価値算出工程と、所定の計画に基づく一又は複数の行動記述モジュールに含まれる各行動記述モジュールの行動価値に対して、各行動記述モジュールに記述された要素行動の開始時から終了時までの間、第１のバイアス値を加える行動価値制御工程と、上記複数の行動記述モジュールから、行動価値の大きさに基づいて一又は複数の行動記述モジュールを選択する行動選択工程と、上記行動選択工程にて選択された行動記述モジュールに記述された要素行動を発現する行動発現工程とを有し、上記行動価値制御工程では、複数の行動記述モジュールからなる行動計画が学習されている場合、最初の行動記述モジュールに記述された要素行動の開始時のみ、当該最初の行動記述モジュールの行動価値に対して上記第１のバイアス値を加えることを特徴とする。
【発明の効果】
【００１３】
本発明に係るロボット装置及びその行動制御方法によれば、所定の計画に基づく一又は複数の行動記述モジュールを実行させたい場合には、各行動記述モジュールの行動価値に対して、各行動記述モジュールに記述された要素行動の開始時から終了時までの間、第１のバイアス値を加えるが、複数の行動記述モジュールからなる行動計画が学習されている場合には、最初の行動記述モジュールに記述された要素行動の開始時のみ、当該最初の行動記述モジュールの行動価値に対して第１のバイアス値を加えればよいため、行動記述モジュールに対する干渉を軽減することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、人間を模した外観形状とされ、外部刺激や自己の内部状態に応じて自律的に行動可能なロボット装置に適用したものである。以下では、先ずロボット装置の構成について説明し、次にロボット装置の行動制御システムについて説明し、最後にロボット装置の行動制御に関する具体的な実験例について説明する。
【００１５】
（１）ロボット装置の構成
先ず、本実施の形態におけるロボット装置の外観構成を図１に示す。図１に示すように、ロボット装置１は、体幹部ユニット２の所定の位置に頭部ユニット３が連結されると共に、左右２つの腕部ユニット４Ｒ／Ｌと、左右２つの脚部ユニット５Ｒ／Ｌとが連結されて構成されている。但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。
【００１６】
このロボット装置１の機能構成を図２に模式的に示す。図２に示すように、ロボット装置１は、全体の動作の統括的制御及びその他のデータ処理を行う制御ユニット２０と、入出力部４０と、駆動部５０と、電源部６０とで構成される。
【００１７】
入出力部４０は、入力部として、人間の「目」に相当し外部の状況を撮影するＣＣＤ（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；ＡＬ）を外部刺激及び内部状態に基づいて単位時間毎に計算し、ロボット装置１は、その行動価値の大きさに基づいて一又は複数のスキーマを選択して行動を発現する。
【００３４】
ロボット装置１の行動制御システム１０の機能構成を図４に模式的に示す。この行動制御システム１０は、オブジェクト指向プログラミングを採り入れて実装することができる。この場合、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとＩｎｖｏｋｅとを行うことができる。
【００３５】
行動制御システム１０は、外部環境７０を認識するために、視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３等からなる機能モジュールである外部刺激認識部８０を備えている。
【００３６】
視覚認識機能部８１は、例えばＣＣＤカメラ４１のような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識等の画像認識処理や特徴抽出を行う。
【００３７】
また、聴覚認識機能部８２は、マイクロフォン４２等の音声入力装置を介して入力される音声データを音声認識して、特徴抽出を行ったり、単語セット（テキスト）を認識したりする。
【００３８】
さらに、接触認識機能部８３は、例えば機体の頭部ユニット３等に内蔵されたタッチセンサ４４によるセンサ信号を認識して、「撫でられた」とか「叩かれた」という外部刺激を認識する。
【００３９】
内部状態管理部９１は、本能や感情といった数種類の情動を数式モデル化して管理する感情・本能モデルを有しており、上述の視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３によって認識された外部刺激に応じてロボット装置１の本能や感情といった内部状態を管理する。この感情・本能モデルは、それぞれ認識結果と行動履歴とを入力に持ち、それぞれ感情値と本能値とを管理している。行動モデルは、これらの感情値や本能値を参照することができる。
【００４０】
また、行動制御システム１０は、外部刺激の認識結果や内部状態の変化に応じて行動制御を行うために、時間経過に従って失われる短期的な記憶を行う短期記憶部９２と、情報を比較的長期間保持するための長期記憶部９３とを備えている。短期記憶及び長期記憶という記憶メカニズムの分類は神経心理学に依拠する。
【００４１】
短期記憶部９２は、上述の視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。例えば、図２に示すＣＣＤカメラ４１からの入力画像を約１５秒程度の短い期間だけ記憶する。
【００４２】
長期記憶部９３は、物の名前など学習により得られた情報を長期間保持するために使用される。長期記憶部９３は、例えばあるスキーマにおいて外部刺激から内部状態の変化を連想記憶することができる。
【００４３】
また、ロボット装置１の行動制御は、反射行動部１０３によって実現される「反射行動」と、状況依存行動階層１０２によって実現される「状況依存行動」と、熟考行動階層１０１によって実現される「熟考行動」とに大別される。
【００４４】
反射行動部１０３は、上述の視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。反射行動とは、基本的に、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動を直接決定する行動のことである。例えば、人間の顔を追いかけたり、頷いたりといった振る舞いは反射行動として実装することが好ましい。
【００４５】
状況依存行動階層１０２は、上述の短期記憶部９２及び長期記憶部９３の記憶内容や、内部状態管理部９１によって管理されるロボット装置１の内部状態を基に、ロボット装置１が現在置かれている状況に即応した行動を制御する。
【００４６】
この状況依存行動階層１０２は、要素行動毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。また、状況依存行動階層１０２は、内部状態をある範囲に保つためのホメオスタシス行動も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出現し易くなるようにその行動を活性化させる（実際には、内部状態と外部環境の両方を考慮した形で行動が選択される）。状況依存行動は、反射行動に比し、反応時間が遅い。
【００４７】
熟考行動階層１０１は、上述の短期記憶部９２及び長期記憶部９３の記憶内容に基づいて、ロボット装置１の比較的長期に亘る行動計画等を行う。熟考行動とは、与えられた状況或いは人間からの命令により、推論やそれを実現するための計画を立てて行われる行動のことである。例えば、ロボット装置１の現在位置と目標位置とから経路を探索することは熟考行動に相当する。このような推論や計画は、ロボット装置１がインタラクションを保つための反応時間よりも処理時間や計算負荷を要する（すなわち処理時間がかかる）可能性があるため、上述の反射行動部１０３や状況依存行動階層１０２がリアルタイムで反応を返しながら、熟考行動階層１０１は推論や計画を行う。また、熟考行動階層１０１は、状況依存行動階層１０２から通知される情報に基づいて、要素行動毎の実行状況等を管理する。
【００４８】
熟考行動階層１０１、状況依存行動階層１０２、及び反射行動部１０３は、ロボット装置１のハードウェア構成に非依存の上位のアプリケーション・プログラムとして記述することができる。これに対し、ハードウェア依存行動制御部１０４は、これら上位アプリケーションからの命令に応じて、関節アクチュエータの駆動等の機体のハードウェア（外部環境）を直接操作する。このような構成により、ロボット装置１は、制御プログラムに基づいて自己及び周囲の状況を判断し、ユーザからの指示及び働きかけに応じて自律的に行動できる。
【００４９】
以下、行動制御システム１０についてさらに説明する。図５は、行動制御システム１０のオブジェクト構成を示す模式図である。
【００５０】
図５に示すように、視覚認識機能部８１は、Face Detector１１１、Multi Color Tracker１１２、Face Identify１１３という３つのオブジェクトで構成される。Face Detector１１１は、画像フレーム中から顔領域を検出するオブジェクトであり、検出結果をFace Identify１１３に出力する。Multi Color Tracker１１２は、色認識を行うオブジェクトであり、認識結果をFace Identify１１３及びShort Term Memory９２に出力する。また、Face Identify１１３は、検出された顔画像を手持ちの人物辞書で検索する等して人物の識別を行い、顔画像領域の位置、大きさ情報と共に人物のＩＤ情報をShort Term Memory９２に出力する。
【００５１】
聴覚認識機能部８２は、Audio Recog１１４とSpeech Recog１１５という２つのオブジェクトで構成される。Audio Recog１１４は、マイクロフォン４２等の音声入力装置からの音声データを受け取って、特徴抽出及び音声区間検出を行うオブジェクトであり、音声区間の音声データの特徴量及び音源方向をSpeech Recog１１５やShort Term Memory９２に出力する。Speech Recog１１５は、Audio Recog１１４から受け取った音声特徴量と音声辞書及び構文辞書とを使って音声認識を行うオブジェクトであり、認識された単語セットをShort Term Memory９２に出力する。
【００５２】
触覚認識記憶部８３は、タッチセンサ４４からのセンサ入力を認識するTactile Sensor１１６というオブジェクトで構成され、認識結果はShort Term Memory９２や内部状態を管理するオブジェクトであるInternal Status Manager９１に出力する。
【００５３】
Internal Status Manager９１は、内部状態管理部を構成するオブジェクトであり、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の認識系の各オブジェクトによって認識された外部刺激に応じてロボット装置１の本能や感情といった内部状態を管理する。
【００５４】
Short Term Memory９２は、短期記憶部を構成するオブジェクトであり、上述の認識系の各オブジェクトによって外部環境から認識されたターゲットやイベントを短期間保持（例えばＣＣＤカメラ４１からの入力画像を約１５秒程度の短い期間だけ記憶）する機能モジュールであり、Short Term Memory９２のクライアント（ＳＴＭクライアント）であるNormalＳＢＬ（Situated Behavior Layer）１０２に対して外部刺激の通知（Notify）を定期的に行う。
【００５５】
Long Term Memory９３は、長期記憶部を構成するオブジェクトであり、物の名前など学習により得られた情報を長期間保持するために使用される。Long Term Memory９３は、例えばあるスキーマにおいて外部刺激から内部状態の変化を連想記憶することができる。
【００５６】
NormalＳＢＬ１０２は、状況依存行動階層を構成するオブジェクトである。NormalＳＢＬ１０２は、ＳＴＭクライアントとなるオブジェクトであり、Short Term Memory９２から定期的に外部刺激（ターゲットやイベント）に関する情報の通知を受け取ると、実行すべきスキーマを決定する（後述）。
【００５７】
ReflexiveＳＢＬ１０３は、反射行動部を構成するオブジェクトであり、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する。例えば、人間の顔を追いかける、頷く、障害物の検出により咄嗟に避けるといった振る舞いを行う。
【００５８】
NormalＳＢＬ１０２は、外部刺激や内部状態の変化等の状況に応じた動作を選択する。これに対し、ReflexiveＳＢＬ１０３は、外部刺激に応じて反射的な動作を選択する。これら２つのオブジェクトによる行動選択は独立して行われるため、互いに選択されたスキーマを機体上で実行する場合に、ロボット装置１のハードウェア・リソースが競合して実現不可能なこともある。Resource Manager１２１というオブジェクトは、NormalＳＢＬ１０２とReflexiveＳＢＬ１０３とによる行動選択時のハードウェアの競合を調停する。そして、調停結果に基づいて機体動作を実現する各オブジェクトに通知することにより機体が駆動する。
【００５９】
Sound Performer１２２、Motion Controller１２３、ＬＥＤ Controller１２４は、機体動作を実現するオブジェクトである。Sound Performer１２２は、音声出力を行うためのオブジェクトであり、Resource Manager１２１経由でNormalＳＢＬ１０２から与えられたテキスト・コマンドに応じて音声合成を行い、ロボット装置１の機体上のスピーカ４３から音声出力を行う。また、Motion Controller１２３は、機体上の各関節アクチュエータの動作を行うためのオブジェクトであり、Resource Manager１２１経由でNormalＳＢＬ１０２から手や脚等を動かすコマンドを受けたことに応答して、該当する関節角を計算する。また、ＬＥＤ Controller１２４は、ＬＥＤ４４の点滅動作を行うためのオブジェクトであり、Resource Manager１２１経由でNormalＳＢＬ１０２からコマンドを受けたことに応答してＬＥＤ４４の点滅駆動を行う。
【００６０】
以上、行動制御システム１０の機能構成及びオブジェクト構成について説明したが、以下では、この行動制御システム１０の要部について説明する。
【００６１】
（２−１）状況依存行動
先ず、ロボット装置１の状況依存行動について説明する。状況依存行動は、上述のように状況依存行動階層１０２によって制御される。状況依存行動階層１０２による状況依存行動制御の形態を図６に模式的に示す。
【００６２】
視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３からなる外部刺激認識部８０における外部環境７０の認識結果（センサ情報）１３１は、外部刺激１３２として状況依存行動階層（NormalＳＢＬ）１０２に与えられる。また、外部刺激認識部８０による外部環境７０の認識結果に応じた内部状態の変化１３３も状況依存行動階層１０２に与えられる。そして、状況依存行動階層１０２では、外部刺激１３２や内部状態の変化１３３に応じて状況を判断して、行動選択を実現することができる。状況依存行動階層１０２では、外部刺激１３２や内部状態の変化１３３によって、各要素行動が記述されたスキーマの行動価値を算出し、行動価値の大きさに基づいて選択されたスキーマの要素行動を実行する。行動価値の算出には、例えばライブラリを利用することにより、全てのスキーマについて統一的な計算処理を行うことができる。
【００６３】
（２−１−１）スキーマ
図７には、状況依存行動階層１０２が複数のスキーマ（要素行動）１４１によって構成されている様子を模式的に示している。状況依存行動階層１０２は、要素行動として行動記述モジュールを有し、行動記述モジュール毎にステートマシンを用意しており、それ以前の行動（動作）や状況に依存して、センサ入力された外部情報の認識結果を分類し、動作を機体上で発現する。要素行動となる行動記述モジュールは、外部刺激や内部状態に応じた状況判断を行うＭｏｎｉｔｏｒ機能と、行動実行に伴う状態遷移（ステートマシン）を実現するＡｃｔｉｏｎ機能とを備えたスキーマとして記述される。
【００６４】
状況依存行動階層１０２（より厳密には、状況依存行動階層１０２のうち、通常の状況依存行動を制御する階層）は、複数のスキーマ１４１が階層的に連結されたツリー構造として構成され、外部刺激や内部状態の変化に応じてより最適なスキーマ１４１を統合的に判断して行動制御を行うようになっている。このツリー１４２は、例えば動物行動学的（Ethological）な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリー等、複数のサブツリー（又は枝）を含んでいる。
【００６５】
状況依存行動階層１０２におけるスキーマのツリー構造の一例を図８に模式的に示す。図８に示すように、状況依存行動階層１０２は、短期記憶部９２から外部刺激の通知（Notify）を受けるルートスキーマ１５１１、１５２１、１５３１を先頭に、抽象的な行動カテゴリから具体的な行動カテゴリに向かうように、各階層毎にスキーマが配設されている。例えば、ルートスキーマの直近下位の階層には、「探索する（Investigate）」、「食べる（Ingestive）」、「遊ぶ（Play）」というスキーマ１５１２、１５２２、１５３２が配設されている。そして、スキーマ１５１２「探索する（Investigate）」の下位には、「InvestigativeLocomotion」、「HeadinAirSniffing」、「InvestigativeSniffing」等の、より具体的な探索行動を記述した複数のスキーマ１５１３が配設されている。同様に、スキーマ１５２２「食べる（Ingestive）」の下位には、「Eat」、「Drink」等の、より具体的な飲食行動を記述した複数のスキーマ１５２３が配設され、スキーマ１５３２「遊ぶ（Play）」の下位には、「PlayBowing」、「PlayGreeting」、「PlayPawing」等の、より具体的な遊ぶ行動を記述した複数のスキーマ１５３３が配設されている。
【００６６】
図示の通り、各スキーマは外部刺激１３２と内部状態（の変化）１３３を入力としている。また、各スキーマは、少なくともＭｏｎｉｔｏｒ関数とＡｃｔｉｏｎ関数とを備えている。
【００６７】
Ｍｏｎｉｔｏｒ関数とは、外部刺激と内部状態とに応じて当該スキーマの行動価値を算出する関数であり、各スキーマは、このような行動価値算出手段としてのＭｏｎｉｔｏｒ機能を有する。図８に示すようなツリー構造を構成する場合、上位（親）のスキーマは外部刺激及び内部状態を引数として下位（子供）のスキーマのＭｏｎｉｔｏｒ関数をコールすることができ、子スキーマは行動価値を返値とする。また、スキーマは自分の行動価値を算出するために、さらに下位のスキーマのＭｏｎｉｔｏｒ関数をコールすることができる。そして、最上位のルートスキーマには各サブツリーからの行動価値が返されるので、外部刺激及び内部状態の変化に応じた最適なスキーマ、すなわち行動を統合的に判断することができる。この際、ルートスキーマは、行動価値が最も高いスキーマを選択してもよく、行動価値が所定の閾値を超えた２以上のスキーマを選択して並列的に実行させるようにしてもよい。但し、並列実行させる場合には各スキーマ同士でハードウェア・リソースの競合がないことを前提とする。
【００６８】
一方、Ａｃｔｉｏｎ関数は、スキーマ自身が持つ行動を記述したステートマシンを備えている。図８に示すようなツリー構造を構成する場合、親スキーマは、Ａｃｔｉｏｎ関数をコールして、子スキーマの実行を開始したり中断させたりすることができる。但し、ＡｃｔｉｏｎのステートマシンはＲｅａｄｙにならないと初期化されない。言い換えれば、中断しても状態はリセットされず、スキーマが実行中の作業データを保存することから、中断再実行が可能である。
【００６９】
各スキーマは、上述のように上位（親）のスキーマに対して自身の行動価値を返す以外に、熟考行動階層１０１に対しても自身の行動価値や、自身の実行状況等の情報を通知する。熟考行動階層１０１は、これらの情報に基づいて各スキーマを管理する。
【００７０】
（２−１−２）行動価値の算出
上述したように、スキーマ毎に算出される行動価値とは、その要素行動をロボット装置１がどの程度実行したいか（実行優先度）を表すものであり、ロボット装置１は、この行動価値に基づいて一又は複数の要素行動を選択することにより、行動を発現する。
【００７１】
この際、各スキーマは、自身に対応付けられた外部刺激及び内部状態に基づいて行動価値を算出するが、この行動価値は、
（ａ）モチベーション値（Motivation value；Mot）
（ｂ）リリーシング値（Releasing value；Rel）
（ｃ）行動価値バイアス（Self Excitation value；SE）
（ｄ）デフォルト行動価値（Rest Level；RL）
（ｅ）ランダムノイズ(Random noise；Noise)
の各要素の重み付け和によって算出される。
【００７２】
以下では、ある「種類」、「大きさ」の対象物が存在するとき、スキーマ「食べる（Ingestive）」の行動価値を算出する場合を例として、上記（ａ）〜（ｅ）の各要素について説明すると共に、（ｆ）最終的な行動価値、についても説明する。
【００７３】
（ａ）モチベーション値
モチベーション値Motは、各スキーマの要素行動に対する欲求を示す欲求値Ins[i]に基づいて算出され、この欲求値Ins[i]は、各スキーマに対応付けられた内部状態値Int[i]に基づいて算出される。例えば、スキーマ「食べる（Ingestive）」には、内部状態値Int[NOURISHMENT（栄養状態）]が対応付けられており、この内部状態値Int[NOURISHMENT]から欲求値Ins[NOURISHMENT（食欲）]が算出される。
【００７４】
欲求値Ins[i]の算出には、内部状態値Int[i]と欲求値Ins[i]との関係を表す関数を用いることができる。具体的には、図９に示すような関数が挙げられる。図９では、内部状態値Int[NOURISHMENT]の大きさを０乃至１００とし、そのときの欲求値Ins[NOURISHMENT]の大きさが−１乃至１となるような関数を示している。例えば内部状態値が８割満たされているときに欲求値が０となるような内部状態値−欲求値曲線Ｌ１を設定することで、ロボット装置１は、常に内部状態値が８割の状態を維持するように行動を選択するようになる。これにより、例えば、空腹であれば食欲が増大し、腹八分目以上では食欲がなくなるという状態を反映した行動を発現させることができる。
【００７５】
なお、上述した具体例では、内部状態値が０乃至１００の範囲において欲求値が−１乃至１の範囲で変化するものとしたが、内部状態値が０乃至１００の範囲において欲求値が１乃至０に変化するようにしてもよい。また、内部状態毎に異なる内部状態値−欲求値関数を用意してもよい。
【００７６】
モチベーション値Motは、以上のようにして求められた欲求値Ins[i]に基づいて、以下の式（１）のように求められる。ここで、ＷＭｏｔ［ｉ］は重み係数である。
【００７７】
【数１】
2007125631.tif 000003
【００７８】
（ｂ）リリーシング値
リリーシング値Relは、要素行動を発現することによって現在の満足度Sat[i]がどの程度変化するかを表す予想満足度変化値dSat[i]と、変化後の予想満足度ESat[i]とから算出される。
【００７９】
ここで、ロボット装置１の内部状態値と満足度とは互いに関連しているため、予想満足度変化値dSat[i]は、要素行動を発現することによって現在の内部状態値Int[i]がどの程度変化するかを表す予想内部状態変化値dInt[i]に基づいて算出することができる。
【００８０】
この予想内部状態変化値dInt[i]は、行動価値算出データベースの行動価値算出データを参照して求めることができる。行動価値算出データは、外部刺激と予想内部状態変化値dInt[i]との対応が記述されたものであり、この行動価値算出データベースを参照することで、入力された外部刺激に応じた予想内部状態変化値dInt[i]を取得することができる。
【００８１】
具体的に、行動価値算出データとしては、図１０に示すものが挙げられる。図１０に示すように、内部状態値Int[NOURISHMENT]は、要素行動である「食べる」を発現した結果、対象物の大きさ（OBJECT_SIZE）が大きいほど、また対象物の種類（OBJECT_ID）がOBJECT_ID＝０に対応する対象物Ｍ１より、OBJECT_ID＝１に対応する対象物Ｍ２が、また、OBJECT_ID＝１に対応する対象物Ｍ２より、OBJECT_ID＝２に対応する対象物Ｍ３の方が満たされる量が大きいであろうと予想されている。
【００８２】
上述の予想満足度変化値dSat[i]及び予想満足度ESat[i]の算出には、内部状態値Int[i]と満足度Sat[i]との関係を表す関数を用いることができる。具体的には、図１１に示すような関数が挙げられる。図１１では、内部状態値Int[NOURISHMENT]の大きさを０乃至１００とし、内部状態値Int[NOURISHMENT]が０から８０近傍までは満足度Sat[NOURISHMENT]が０から増加し、それ以降は減少して内部状態値Int[NOURISHMENT]が１００で再び満足度Sat[NOURISHMENT]が０になるような曲線Ｌ２を示している。
【００８３】
リリーシング値Relは、以上のようにして求められた予想満足度変化値dSat[i]及び予想満足度ESat[i]に基づいて、以下の式（２）のように求められる。ここで、ＷＲｅｌ［ｉ］、ＷｄＳａｔは重み係数である。
【００８４】
【数２】
2007125631.tif 000004
【００８５】
（ｃ）行動価値バイアス
行動価値バイアスSEは、行動価値にバイアスをかける、すなわち行動価値を底上げするための要素であり、以下の式（３）のように、ステータスバイアス（Status Self Excitation value；SSE）とルーチンバイアス（Routine Self Excitation value；RSE）との和として表される。
【００８６】
【数３】
2007125631.tif 000005
【００８７】
ステータスバイアスSSEは、あるスキーマが実行されているときに、そのスキーマの行動価値を底上げし、行動が容易に切り替わらないようにするものである。例えば、図１２に示すように、実行中のスキーマＡが時刻ｔ１で終了したとき、その時刻ではスキーマＢの行動価値が最も高いため、時刻ｔ２から時刻ｔ３まではスキーマＢが実行されることになる。このスキーマＢの実行中には、スキーマＢの行動価値にステータスバイアスSSEが加えられる。これにより、スキーマＢの要素行動が他のスキーマの要素行動によって妨げられるのを防止することができる。
【００８８】
一方、ルーチンバイアスRSEは、後述のように一連の行動をルーチンワークとして獲得した後、自身の直前の要素行動（トリガスキーマ）が実行された場合に、自身の行動価値を底上げするものである。このルーチンバイアスRSEについての詳細は後述する。
【００８９】
（ｄ）デフォルト行動価値
デフォルト行動価値RLは、各スキーマについてのデフォルトの行動価値を表した要素である。この行動価値をスキーマ毎に異ならせることにより、各要素行動についての生まれつきの優先順位を表現することができる。また、ロボット装置毎にその優先順位を異ならせることにより、ロボット装置の個性を表現することができる。
【００９０】
ここで、あるスキーマの実行中に、上述のモチベーション値Motやリリーシング値Relが急激に低下したとき、そのスキーマの行動価値はデフォルト行動価値RLまで低下するが、この際、行動価値を急激に低下させるのではなく、所定の減衰パラメータに従って徐々に減少させることが好ましい。例えば、図１３に示すように、実行中のスキーマＡについて、時刻ｔ１にモチベーション値Motやリリーシング値Relが急激に低下したとき、所定の減衰パラメータに従って行動価値を徐々に減少させ、その行動価値がスキーマＢの行動価値よりも低くなりスキーマＢが実行されて初めて、デフォルト行動価値RLまで急激に低下させることが好ましい。
【００９１】
このように、行動価値を徐々に減少させていくことによって、例えば次のような行動を実現することができる。ロボット装置１がボールを蹴る行動を実行していたときに、その行動を引き起こす内部状態である運動欲と、外部刺激であるボールが突然なくなったとする。このとき、上述の減衰メカニズムによって、ボールを蹴る行動の行動価値は徐々に減少するが、ロボット装置１は、他の行動の行動価値がボールを蹴る行動の行動価値よりも高くなるまで、ボールを捜し続けるなど、ボールを蹴る行動に関する一連の動作を行う。この間にボールが見つかれば、ボールを蹴る行動の行動価値は再び増加するため、その行動を続けることが可能になる。つまり、行動が突然切り替わるのではなく、行動を続けてみて、それでも駄目ならば諦める、といったことが実現可能になる。
【００９２】
（ｅ）ランダムノイズ
ランダムノイズNoiseは、行動価値にランダムな値を付加するための要素である。この要素を導入することにより、行動価値にバリエーションを持たせることができる。例えば、図１４に示すように、スキーマＡ、Ｂ、Ｃについての行動価値は、要素行動を実行しているときも実行していないときも常に変動している。
【００９３】
なお、ランダムノイズの変動幅は任意に設定でき、例えば行動価値の大きさに比例させることができる。
【００９４】
（ｆ）最終的な行動価値
上述したように、最終的な行動価値は、モチベーション値Mot、リリーシング値Rel、行動価値バイアスSE、デフォルト行動価値RL、ランダムノイズNoiseの各要素の重み付け和によって算出される。
【００９５】
最終的な行動価値を算出する前に、以下の式（４）に従ってモチベーション・リリーシング値MRが算出される。ここで、ＷＭは重み係数である。
【００９６】
【数４】
2007125631.tif 000006
最終的な行動価値ALは、このモチベーション・リリーシング値MRを用いて、以下の式（５）のように算出することができる。ここで、ＷＳＥは重み係数である。
【００９７】
【数５】
2007125631.tif 000007
各スキーマは、この行動価値ALに基づいて選択されるため、例えば同じ外部刺激が入力された場合であっても、そのときの内部状態の値によって異なる要素行動が選択され、出力される。
【００９８】
（２−２）熟考行動
次に、ロボット装置１の熟考行動について説明する。熟考行動とは、与えられた状況或いは人間からの命令により、推論やそれを実現するための計画を立てて行われる行動のことである。この熟考行動は、上述のように熟考行動階層１０１によって制御される。
【００９９】
例えば、ボールを蹴る行動を実行する場合、ロボット装置１は、ボールを見つけ、ボールに近付き、ボールを蹴るという各要素行動を順に実行するように計画を立て、この計画に従って各要素行動を順次実行する必要がある。しかしながら、状況依存行動階層１０２では、上述したように、外部刺激及び内部状態に基づいてスキーマ毎に行動価値を算出し、その行動価値に基づいて一又は複数のスキーマを選択するようにしているため、必ずしも計画通りの順序でスキーマが選択されるとは限らない。
【０１００】
そこで、熟考行動階層１０１は、このように特定の計画に従って所望の要素行動を実行させたい場合には、所望の一以上のスキーマに対してインテンショナルバイアス（Intentional Bias；IB）を与え、そのスキーマの行動価値を強制的に引き上げる。インテンショナルバイアスIBが与えられたスキーマは、以下の式（６）に示すように、自身で算出した行動価値ALとインテンショナルバイアスIBとの和を自身の行動価値ALTOTALとし、この行動価値ALTOTALを上位（親）のスキーマに対して返す。
【０１０１】
【数６】
2007125631.tif 000008
【０１０２】
インテンショナルバイアスIBによって行動価値を引き上げる例を図１５（Ａ）、（Ｂ）に示す。図１５（Ａ）は、スキーマＡ、Ｂ、Ｃの行動価値をこの順序に従って引き上げたときの行動価値の推移を示すグラフであり、図１５（Ｂ）は、このとき各スキーマに与えられるインテンショナルバイアスIBの推移を示すグラフである。
【０１０３】
図１５（Ａ）、（Ｂ）に示すように、熟考行動階層１０１は、時刻ｔ１にスキーマＡに対してインテンショナルバイアスIBを与えてスキーマＡを実行させ、時刻ｔ２にスキーマＡが終了するまでインテンショナルバイアスIBを与え続ける。スキーマＡが終了すると、次は時刻ｔ３にスキーマＢに対してインテンショナルバイアスIBを与えてスキーマＢを実行させ、時刻ｔ４にスキーマＢが終了すると、次は時刻ｔ５にスキーマＣに対してインテンショナルバイアスIBを与えてスキーマＣを実行させ、時刻ｔ６にスキーマＣが終了するまでインテンショナルバイアスIBを与え続ける。本明細書では、図１５（Ｂ）のように、各スキーマについて要素行動の開始から終了までインテンショナルバイアスIBを与えて制御する制御形式をインテンション型と称する。
【０１０４】
上述したインテンショナルバイアスIBは、以下の式（７）に従って算出される。この式（７）において、ｍは計画の実行強度を指定するパラメータであるインテンショナルマグニチュードを示し、例えば０乃至１００の値を有する。熟考行動階層１０１は、このように、インテンショナルバイアスIBの大きさを正規化されたインテンショナルマグニチュードにより指定する。また、ａｉは要素行動ｉについての行動価値を示す。
【０１０５】
【数７】
2007125631.tif 000009
【０１０６】
ここで、式（７）に示すように、インテンショナルバイアスIBの大きさは全スキーマの行動価値の総和に比例するが、各スキーマは単位時間毎に行動価値を算出するため、インテンション型の制御を行っている場合には、熟考行動階層１０１は単位時間毎にインテンショナルバイアスIBを算出する。
【０１０７】
例えば、図１６に示すように、時刻ｔ１にスキーマＡに対してインテンショナルバイアスIBを与えてスキーマＡを実行させていたところ、時刻ｔ２にスキーマＢの行動価値が一時的に上昇し、スキーマＡの行動価値よりも大きくなったとしても、スキーマＢの行動価値の上昇に伴い、熟考行動階層１０１が再計算したインテンショナルバイアスIBの値も上昇するため、時刻ｔ３には再びスキーマＡの行動価値の方が大きくなる。
【０１０８】
なお、熟考行動階層１０１は、所望のスキーマに対してインテンショナルバイアスIBを与え、そのスキーマの元の行動価値を単純に引き上げているだけであるため、他のスキーマの行動価値がインテンショナルバイアスIBの加算後の当該スキーマの行動価値よりも大きい場合には、インテンショナルバイアスIBが意味を持たないこともあり得る。
【０１０９】
例えば、図１７に示すように、スキーマＤのデフォルト行動価値RLが低い場合には、時刻ｔ１にスキーマＤに対してインテンショナルバイアスIBを与えたとしても、現在実行中のスキーマＡよりも行動価値が低くなり、スキーマＤが実行されない場合もあり得る。熟考行動階層１０１は、このような場合にもスキーマＤに対してインテンショナルバイアスIBを与え続ける。その後、時刻ｔ３にスキーマＡが終了し、スキーマＡの行動価値がスキーマＤの行動価値よりも低くなると、スキーマＤが実行される。但し、スキーマＡの行動価値の低下に伴い、時刻ｔ４に熟考行動階層１０１が再計算したインテンショナルバイアスIBの値が低下するため、スキーマＤの行動価値もその分だけ低下する。
【０１１０】
（２−３）ルーチンワークの獲得
ところで、同じ一連の行動を何度も繰り返し実行する場合、熟考行動階層１０１は、毎回その一連の行動の計画を立て、その計画に従って一連のスキーマに対してインテンショナルバイアスIBを与えることになる。しかしながら、計算負荷の軽減という観点からは、熟考行動階層１０１が毎回計画を立て、一連のスキーマに対してインテンショナルバイアスIBを与えるのではなく、状況依存行動階層１０２の各スキーマが算出する行動価値に基づいてスキーマを順に選択していった結果、その一連の行動が実行されることが好ましい。
【０１１１】
そこで、本実施の形態では、上述したルーチンバイアスRSEを行動価値の算出に導入することにより、熟考行動階層１０１が計画を立てることなく、状況依存行動階層１０２のみで、繰り返し実行された一連の行動（ルーチンワーク）を実行可能としている。すなわち、上述したルーチンバイアスRSEは、インテンショナルバイアスIBの代わりとなるものである。各スキーマは、自身と特定のスキーマ（後述するトリガスキーマ）との組み合わせが学習されたものである場合、このトリガスキーマが実行されると、自身の行動価値にルーチンバイアスRSEを加える。この結果、トリガスキーマの次には自身が実行されることとなる。
【０１１２】
ルーチンワークを獲得する過程の概要を図１８に示す。以下、この図１８の各ステップについて説明する。
【０１１３】
先ずステップＳ１では、熟考行動階層１０１により一連の行動を計画し、実行する。すなわち、上述のように計画を立て、その計画に従って一連のスキーマに対してインテンショナルバイアスIBを与えることにより、一連の行動を実行する。
【０１１４】
次にステップＳ２では、状況依存行動階層１０２がインテンショナルバイアスIBの与えられたスキーマを監視し、インテンションスキーマ履歴（Intentional Schema History；ＩＳＨ）を作成する。このインテンションスキーマ履歴ISHは、インテンショナルバイアスIBの与えられたスキーマの順序と、そのときのインテンショナルバイアスIBの値とを含む。
【０１１５】
続いてステップＳ３では、インテンションスキーマ履歴ISHに基づいてルーチンワークを獲得する。具体的には、インテンションスキーマ履歴ISHから実行されているスキーマとその直前に実行されたスキーマとの２つ組を抜き出す。この直前に実行されたスキーマをトリガスキーマと呼ぶ。各スキーマは、自身のトリガスキーマと、自身に与えられたインテンショナルバイアスIBとからなる候補獲得ルーチンリスト（Candidate Captured Routine List；ＣＣＲＬ）を作成する。そして、この候補獲得ルーチンリストCCRL内のトリガスキーマを所定の条件に基づいてルーチンバイアスRSEを与えるための獲得ルーチンリスト（Captured Routine List；ＣＲＬ）に移すことにより、獲得ルーチンリストCRLを作成する。
【０１１６】
ここで、トリガスキーマを候補獲得ルーチンリストCCRLから獲得ルーチンリストCRLに移す条件としては、例えば、
（ａ）各スキーマとトリガスキーマとの組み合わせが所定回数以上発生したこと
（ｂ）各スキーマとトリガスキーマとの組み合わせが所定回数以上発生し、且つ、その発生確率が所定値以上であること
の何れかとすることができる。
【０１１７】
また、ルーチンバイアスRSEの加え方としては、例えば、
（ｃ）トリガスキーマが実行されたときに、過去に与えられたインテンショナルバイアスIBの平均値IBaveを加える
（ｄ）トリガスキーマが実行されたときに、過去に与えられたインテンショナルバイアスIBの平均値IBaveを、当該スキーマの要素行動とトリガスキーマの要素行動との組み合わせの発生確率でスケーリングした値（インテンショナルバイアスIBの期待値）を加える
（ｅ）トリガスキーマが実行されたときに、過去に与えられたインテンショナルバイアスIBの平均値IBaveを、当該スキーマとトリガスキーマとの組み合わせの発生確率に従って確率論的に加える
の何れかとすることができる。
【０１１８】
最後にステップＳ４では、一連の行動をルーチンワークとして実行する。すなわち、各スキーマは、自身のトリガスキーマが実行されると、自身の行動価値にルーチンバイアスRSEを加え、実行準備する。このようにルーチンバイアスRSEを加えることにより、当該スキーマの行動価値は他のスキーマよりも大きくなるため、トリガスキーマが終了すると、次はルーチンバイアスRSEを加えたスキーマが実行されることになる。
【０１１９】
なお、最初のスキーマにはトリガスキーマが存在しないが、この最初のスキーマに対してインテンショナルバイアスIBを一瞬だけ与えることにより、そのスキーマの行動価値を一瞬だけ引き上げればよい。一瞬だけ行動価値を引き上げることによりそのスキーマが選択され、実行されると、最初のスキーマの行動価値にはステータスバイアスSSEが加えられ、行動価値が引き上げられるため、その最初のスキーマは、他のスキーマによって妨げられることなく自身の要素行動を実行することができる。
【０１２０】
ルーチンバイアスRSEにより行動価値を引き上げる例を図１９（Ａ）、（Ｂ）に示す。図１９（Ａ）は、スキーマＡ、Ｂ、Ｃの要素行動をこの順序でルーチンワークとして獲得したときの行動価値の推移を示すグラフである。すなわち、スキーマＢのトリガスキーマはスキーマＡであり、スキーマＣのトリガスキーマはスキーマＢである。また、図１９（Ｂ）は、このとき各スキーマに与えられるインテンショナルバイアスIBの推移を示すグラフである。
【０１２１】
図１９（Ａ）、（Ｂ）に示すように、熟考行動階層１０１は、時刻ｔ１にスキーマＡに対してインテンショナルバイアスIBを一瞬だけ与えてスキーマＡを実行させる。スキーマＡが実行されると、スキーマＡがトリガスキーマとなるスキーマＢは、時刻ｔ２に行動価値にルーチンバイアスRSEを加える。時刻ｔ３にスキーマＡが終了すると、その時点ではルーチンバイアスRSEの加えられたスキーマＢの行動価値が最も大きいため、時刻ｔ４にスキーマＢが実行され、スキーマＢの行動価値にステータスバイアスSSEが加えられる。同様に、時刻ｔ４にスキーマＢが実行されると、スキーマＢがトリガスキーマとなるスキーマＣは、時刻ｔ５に行動価値にルーチンバイアスRSEを加える。時刻ｔ６にスキーマＢが終了すると、その時点ではルーチンバイアスRSEの加えられたスキーマＣの行動価値が最も大きいため、時刻ｔ７にスキーマＣが実行され、時刻ｔ８にスキーマＣが終了するまで、スキーマＣの行動価値にステータスバイアスSSEが加えられる。本明細書では、図１９（Ｂ）のように、最初のスキーマの開始時のみインテンショナルバイアスIBを一瞬だけ与えて制御する制御形式をアテンション型と称し、このとき一瞬だけ与えるインテンショナルバイアスIBのことを特にアテンショナルトリガと称する。
【０１２２】
なお、各スキーマは、トリガスキーマが実行されたときに自身の行動価値にルーチンバイアスRSEを加え、自身の行動価値を単純に引き上げているだけであるため、自身のデフォルト行動価値RLが低い場合には、ルーチンバイアスRSEを加えたとしても、他のスキーマの行動価値より低くなることもあり得る。
【０１２３】
ここで、熟考行動階層１０１は、状況依存行動階層１０２がルーチンワークを獲得したことを知らないため、同じ一連の行動を実行させたいときに、一連のスキーマに対してインテンショナルバイアスIBを与えてしまう虞がある。そこで、各スキーマは、自身の行動価値にルーチンバイアスRSEを加えた場合には、そのルーチンバイアスRSEを熟考行動階層１０１に通知するものとする。このルーチンバイアスRSEが通知されると、熟考行動階層１０１は、その一連のスキーマに対してインテンショナルバイアスIBを与えることを停止する。なお、一連の行動の最初のスキーマはトリガスキーマを有さず、自身の行動価値にルーチンバイアスRSEを加えないため、熟考行動階層１０１は、この最初のスキーマに対してはインテンション型の制御をしてしまうことになるが、この一連の行動を記憶しておくことで、次回以降はアテンション型の制御を行うことができる。
【０１２４】
（２−４）インテンション型とアテンション型との切り替え
次に、ロボット装置１におけるインテンション型の制御とアテンション型の制御との切り替えについて、熟考行動階層１０１の内部構成を中心としながら説明する。この熟考行動階層１０１の内部構成を図２０に示す。
【０１２５】
熟考行動階層１０１は、所定の計画に基づく行動を実行するために、知識ベース１６１、計画部１６２、及び計画表現変換部１６３をサブモジュールとして備えている。
【０１２６】
知識ベース１６１には、外部環境に関する情報、ロボット装置１の状態、ロボット装置１がなし遂げるべき目標、ロボット装置１が取り得る要素行動及びその効果など、ロボット装置１が行動を計画するために必要な情報が格納される。この知識ベース１６１内の情報は、ロボット装置１が行動した結果生じた変化に応じて書き換えられることもある。
【０１２７】
計画部１６２は、知識ベース１６１に格納された情報を利用して、所定の目標を達成するための一連の行動を計画し、抽象内部表現（Abstract Plan Representation；APR）として計画表現変換部１６３に供給する。このように、後段に計画表現変換部１６３が存在するため、この計画部１６２では、例えばＳＨＯＰ２など、任意の計画アルゴリズムを用いることができる。
【０１２８】
計画表現変換部１６３は、計画部１６２から供給された抽象内部表現を実行部１６５が解釈可能な内部計画表現（Internal Plan Representation；IPR）に変換する。この内部計画表現は、実行すべき行動ステートメントが順番に記述されたものである。
【０１２９】
各行動ステートメントは、＜ｓ  ａ(ｂ)  ｍ  ｉ＞という形式で表される。ここで、ｓは行動ステートメントが有効になるための条件を示す。この条件としては、例えば短期記憶部９２に所定の外部刺激又は内部状態の情報が保持されていること、ロボット装置１の姿勢、時間の制約、バッテリ残量の制約、計画の進捗状況等が挙げられる。複数の条件をＡＮＤやＯＲを用いて記述することも可能である。また、ａは実行すべきスキーマ（要素行動）を示し、ｂはスキーマａに渡すべきパラメータを示す。また、ｉはインテンション型の制御を行うかアテンション型の制御を行うかのフラグ（アテンションフラグ）を示す。
【０１３０】
ここで、アテンション型の制御を行うのは、実行すべき行動計画がルーチンワークとして獲得されている場合であり、それ以外の場合にはインテンション型の制御を行う。例えば、スキーマＡ→スキーマＢ、或いはスキーマＤ→スキーマＥというようにルーチンワークが獲得されている場合、獲得されたルーチンワークを知識ベース１６１に格納しておくことで、スキーマＡ或いはスキーマＤに対してアテンション型の制御を行うことができる。アテンション型の制御を行ってスキーマＡ、Ｄが実行されると、スキーマＢ、Ｅは自身の行動価値にルーチンバイアスRSEを加え、スキーマＡ、Ｄの終了後に実行される。
【０１３１】
また、熟考行動階層１０１は、短期記憶部９２及び長期記憶部９３に保持されている記憶表象を実行部１６５が解釈可能な表現に変換する表象変換部１６４を備えている。この表象変換部１６４は、内部状態管理部９１で内部状態が更新されると、関連するデータを実行部１６５内の表象監視部１６６に供給する。また、表象変換部１６４は、短期記憶部９２に外部刺激が保持されると、それが何であるのかを判別すると共に、その外部刺激のターゲットＩＤを判断する。表象変換宇１６４で変換された情報は、実行部１６５内の表象監視部１６６を介して、知識ベース１６１に格納される。
【０１３２】
熟考行動階層１０１における行動計画は、実行部１６５及びインテンショナル・バス１６７によって最終的に制御される。
【０１３３】
実行部１６５は、複数存在する行動計画のうち、実行すべき行動計画を選択すると共に、その実行の制御を行う。この際、実行部１６５は、内部計画表現に含まれるアテンションフラグを参照し、インテンション型の制御を行うかアテンション型の制御を行うかを切り替える。ここで、アテンション型の制御を行うのは、その行動計画が上述のようにルーチンワークとして獲得されている場合であり、それ以外の場合にはインテンション型の制御を行う。
【０１３４】
実行部１６５においてインテンション型の制御とアテンション型の制御とを切り替える手順を図２１のフローチャートに示す。
【０１３５】
先ずステップＳ１１において、実行部１６５は、実行していない行動計画のうち、初期条件を満たすものを選択し、ステップＳ１２において、選択した行動計画の最初の行動ステートメントを選択する。
【０１３６】
次にステップＳ１３において、その行動ステートメントのアテンションフラグを確認し、アテンションフラグがＦａｌｓｅであればステップＳ１４においてインテンション型の制御を行う。すなわち、その行動ステートメントで実行すべきスキーマの開始から終了までインテンショナルバイアスIBを与えるよう制御する。一方、アテンションフラグがＴｒｕｅであればステップＳ１５においてアテンション型の制御を行う。すなわち、その行動ステートメントで実行すべきスキーマの開始時にアテンショナルトリガを与えるよう制御する。なお、実行部１６５は実際にはインテンションマグニチュードとアテンションフラグとをインテンショナル・バス１６７に通知するのみであり、インテンショナル・バス１６７がインテンショナルバイアスIBを算出して対象となるスキーマに与える。
【０１３７】
続いてステップＳ１６において、全ての行動ステートメントが終了したか否かを判別し、終了していなければステップＳ１７において次の行動ステートメントを選択してステップＳ１３に戻る。一方、全ての行動ステートメントが終了していれば処理を終了する。
【０１３８】
インテンショナル・バス１６７は、熟考行動階層１０１と状況依存行動階層１０２とを繋ぐインターフェースである。このインテンショナル・バス１６７には、上述のように実行部１６５からインテンションマグニチュードとアテンションフラグとが通知される以外に、状況依存行動階層１０２の各スキーマから、各スキーマの行動価値、「実行中」又は「停止中」の状態を表す情報、ルーチンバイアスRSEが通知される。インテンショナル・バス１６７は、このように実行部１６５や状況依存行動階層１０２の各スキーマから通知された情報を、実行部１６５が参照可能なように例えば図２２に示すような形式で保持する。
【０１３９】
実行部１６５や状況依存行動階層１０２の各スキーマとの情報の受け渡しについて、図２３を用いて説明する。図２３に示すように、スキーマ「ダンスをする（Dance）」からは、自身の行動価値、状態を表す情報、ルーチンバイアスRSEが通知される。スキーマ「ダンスをする（Dance）」が実行される前は、状態を表す情報は「停止中」となっており、完了フラグはＦａｌｓｅである。一方、実行部１６５からは、インテンションマグニチュードとアテンションフラグとが通知される。インテンショナル・バス１６７は、各スキーマから通知された行動価値とこのインテンションマグニチュードとから、上述した式（７）のようにインテンショナルバイアスIBを算出するが、図２３ではアテンションフラグがＦａｌｓｅであるため、インテンショナル・バス１６７は、スキーマ「ダンスをする（Dance）」の実行開始から実行終了までインテンショナルバイアスIBを与え続ける。インテンショナルバイアスIBを与えることによりスキーマ「ダンスをする（Dance）」が実行されると、スキーマ「ダンスをする（Dance）」からは「実行中」の状態を表す情報が通知される。この時点では完了フラグはＦａｌｓｅであるが、スキーマ「ダンスをする（Dance）」が終了し、「停止中」を表す情報が通知されると、インテンショナル・バス１６７は、完了フラグをＴｒｕｅに設定する。
【０１４０】
（３）行動制御に関する具体的な実験例
最後に、ロボット装置１の行動制御に関する具体的な実験例について説明する。この実験例では、状況依存構造階層１０２に図２４のようなスキーマのツリー構造が構成されているものとする。このツリー構造は、図２４に示すように、ルートスキーマ「Root」の下位の階層に、「ベルを見つける（FindBell）」、「ベルを鳴らす（RingBell）」、「眠る（Sleep）」、「教室に行く（GoToClass）」、「サッカーをする（Soccer）」、「歌う（Sing）」というスキーマが配設されたものである。
【０１４１】
以下に示す第１乃至第４の実験では、「ベルを見つける（FindBell）」、「ベルを鳴らす（RingBell）」、「教室に行く（GoToClass）」、「歌う（Sing）」の各要素行動からなる一連の行動をルーチンワークとして獲得した例について説明する。
【０１４２】
なお、この第１乃至第４の実験では、各スキーマは、自身とトリガスキーマとの組み合わせが所定の回数以上、且つ所定の確率以上発生した場合に、トリガスキーマを候補獲得ルーチンリストCCRLから獲得ルーチンリストCRLに移した。
【０１４３】
（３−１）第１の実験
先ず、第１の実験について説明する。第１の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとを図２５に示す。第１の実験では、「教室に行く（GoToClass）」、「ベルを見つける（FindBell）」、「ベルを鳴らす（RingBell）」、「歌う（Sing）」という計画のみを１００％の割合で実行した。熟考行動階層１０１は、この計画に従って各スキーマに対してインテンショナルバイアスIBを与えた。
【０１４４】
各スキーマの獲得ルーチンリストCRLには、トリガスキーマ、自身に与えられたインテンショナルバイアスIBの平均値IBave、トリガスキーマの発生割合が記述されている。例えば、スキーマ「ベルを見つける（FindBell）」の獲得ルーチンリストCRLでは、スキーマ「教室に行く（GoToClass）」がトリガスキーマとなっている。括弧内の“１００”という数字は、スキーマ「ベルを見つける（FindBell）」に与えられたインテンショナルバイアスIBの平均値IBaveを示している。また、“２０／２０”という数字は、計画を実行した２０回のうち、スキーマ「教室に行く（GoToClass）」がトリガスキーマであった回数が２０回であることを示している。スキーマ「教室に行く（GoToClass）」は、常に最初に実行されるため、トリガスキーマは存在しない。
【０１４５】
ここで、インテンション型の制御により計画を実行させる場合の行動価値の推移を図２６（Ａ）に示す。図２６（Ａ）に示すように、ロボット装置１は、スキーマ「眠る（Sleep）」を実行していたが、熟考行動階層１０１により中断される。熟考行動階層１０１は、一連のスキーマに対して順にインテンショナルバイアスIBを与えることにより、計画を実行する。行動価値の推移のグラフは、図１５（Ａ）と同様の形状となっている。
【０１４６】
一方、第１の実験におけるアテンション型の制御により計画を実行させる場合の行動価値の推移を図２６（Ｂ）に示す。この第１の実験では、過去に与えられたインテンショナルバイアスIBの期待値をルーチンバイアスRSEとした。図２６（Ｂ）に示すように、ロボット装置１は、スキーマ「眠る（Sleep）」を実行していたが、熟考行動階層１０１により中断される。熟考行動階層１０１は、スキーマ「教室に行く（GoToClass）」に対してアテンショナルトリガを与えることにより、計画を開始する。スキーマ「教室に行く（GoToClass）」が実行されると、その次のスキーマ「ベルを見つける（FindBell）」の行動価値にルーチンバイアスRSEが加えられ、実行準備中となる。同様にして、一連の行動が実行される。行動価値の推移のグラフは、図１９（Ａ）と同様の形状となっている。
【０１４７】
（３−２）第２の実験
次に、第２の実験について説明する。第２の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとを図２７に示す。第２の実験では、「教室に行く（GoToClass）」、「ベルを見つける（FindBell）」、「ベルを鳴らす（RingBell）」、「歌う（Sing）」という計画を５０％の割合で実行すると共に、「教室に行く（GoToClass）」、「歌う（Sing）」、「ベルを見つける（FindBell）」という計画を５０％の割合で実行した。熟考行動階層１０１は、この計画に従って各スキーマに対してインテンショナルバイアスIBを与えた。
【０１４８】
この実験では２種類の計画を実行したため、スキーマ「ベルを見つける（FindBell）」及びスキーマ「歌う（Sing）」は、２種類のトリガスキーマを有している。一方、２種類の計画の何れにおいても、スキーマ「ベルを鳴らす（RingBell）」の直前にはスキーマ「ベルを見つける（FindBell）」が実行されるため、スキーマ「ベルを鳴らす（RingBell）」のトリガスキーマはスキーマ「ベルを見つける（FindBell）」のみである。
【０１４９】
第２の実験における行動価値の推移を図２８に示す。この第２の実験では、過去に与えられたインテンショナルバイアスIBの期待値をルーチンバイアスRSEとした。図２８（Ａ）は、スキーマ「ベルを見つける（FindBell）」とスキーマ「歌う（Sing）」とのデフォルト行動価値RLが略々同じ場合の行動価値の推移を示すものであり、図２８（Ｂ）は、スキーマ「ベルを見つける（FindBell）」のデフォルト行動価値RLがスキーマ「歌う（Sing）」のデフォルト行動価値RLよりも小さい場合の行動価値の推移を示すものである。
【０１５０】
スキーマ「ベルを見つける（FindBell）」とスキーマ「歌う（Sing）」とのデフォルト行動価値RLが略々同じ場合、図２８（Ａ）に示すように、スキーマ「教室に行く（GoToClass）」が実行されると、スキーマ「ベルを見つける（FindBell）」及びスキーマ「歌う（Sing）」の行動価値にルーチンバイアスRSEが加えられ、実行準備中となる。但し、両者のデフォルト行動価値RLが略々同じであり、また、両者の発生割合が５０％同士で等しく、両者に与えられるルーチンバイアスRSEも略々同じとなるため、両者の行動価値の大小はランダムノイズNoiseによって決定される。スキーマ「教室に行く（GoToClass）」の次に何れのスキーマが実行されるかは、スキーマ「教室に行く（GoToClass）」が終了したときの行動価値の大小による。図２８（Ａ）の場合、スキーマ「教室に行く（GoToClass）」が終了したときの行動価値は、スキーマ「歌う（Sing）」よりもスキーマ「ベルを見つける（FindBell）」の方が大きかったため、スキーマ「教室に行く（GoToClass）」の次にはスキーマ「ベルを見つける（FindBell）」が実行されている。その後、スキーマ「ベルを鳴らす（RingBell）」、スキーマ「歌う（Sing）」が順に実行され、計画を終了する。
【０１５１】
一方、スキーマ「ベルを見つける（FindBell）」のデフォルト行動価値RLがスキーマ「歌う（Sing）」のデフォルト行動価値RLよりも小さい場合、図２８（Ｂ）に示すように、両者に与えられるルーチンバイアスRSEは略々同じであるものの、両者のデフォルト行動価値RLが異なるため、スキーマ「ベルを見つける（FindBell」の行動価値よりもスキーマ「歌う（Sing）」の行動価値の方が大きくなり、スキーマ「教室に行く（GoToClass）」の次にはスキーマ「歌う（Sing）」が実行されている。その後、スキーマ「ベルを見つける（FindBell」、スキーマ「ベルを鳴らす（RingBell）」が順に実行され、計画を終了する。
【０１５２】
（３−３）第３の実験
次に、第３の実験について説明する。第３の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとを図２９に示す。第３の実験では、「教室に行く（GoToClass）」、「ベルを見つける（FindBell）」、「ベルを鳴らす（RingBell）」、「歌う（Sing）」という計画を７５％の割合で実行すると共に、「教室に行く（GoToClass）」、「歌う（Sing）」、「ベルを見つける（FindBell）」という計画を２５％の割合で実行した。熟考行動階層１０１は、この計画に従って各スキーマに対してインテンショナルバイアスIBを与えた。
【０１５３】
この実験でも２種類の計画を実行したため、スキーマ「ベルを見つける（FindBell）」及びスキーマ「歌う（Sing）」は、２種類のトリガスキーマを有している。一方、２種類の計画の何れにおいても、スキーマ「ベルを鳴らす（RingBell）」の直前にはスキーマ「ベルを見つける（FindBell）」が実行されるため、スキーマ「ベルを鳴らす（RingBell）」のトリガスキーマはスキーマ「ベルを見つける（FindBell）」のみである。
【０１５４】
第３の実験における行動価値の推移を図３０に示す。この第３の実験では、過去に与えられたインテンショナルバイアスIBの期待値をルーチンバイアスRSEとした。図３０（Ａ）は、スキーマ「ベルを見つける（FindBell）」とスキーマ「歌う（Sing）」とのデフォルト行動価値RLが略々同じ場合の行動価値の推移を示すものであり、図３０（Ｂ）は、スキーマ「ベルを見つける（FindBell）」のデフォルト行動価値RLがスキーマ「歌う（Sing）」のデフォルト行動価値RLよりも小さい場合の行動価値の推移を示すものである。
【０１５５】
スキーマ「ベルを見つける（FindBell）」とスキーマ「歌う（Sing）」とのデフォルト行動価値RLが略々同じ場合、図３０（Ａ）に示すように、スキーマ「教室に行く（GoToClass）」が実行されると、スキーマ「ベルを見つける（FindBell）」及びスキーマ「歌う（Sing）」の行動価値にルーチンバイアスRSEが加えられ、実行準備中となる。この際、両者に与えられるルーチンバイアスRSEは、過去に与えられたインテンショナルバイアスIBの期待値である。すなわち、第３の実験では、スキーマ「教室に行く（GoToClass）」の次にスキーマ「ベルを見つける（FindBell）」が実行される割合が７５％であり、スキーマ「歌う（Sing）」が実行される割合が２５％であるため、両者に与えられるルーチンバイアスRSEもその割合を反映した値となる。この結果、スキーマ「歌う（Sing）」の行動価値よりもスキーマ「ベルを見つける（FindBell）」の行動価値の方が大きくなるため、スキーマ「教室に行く（GoToClass）」の次にはスキーマ「ベルを見つける（FindBell）」が実行されている。その後、スキーマ「ベルを鳴らす（RingBell）」、スキーマ「歌う（Sing）」が順に実行され、計画を終了する。
【０１５６】
一方、スキーマ「ベルを見つける（FindBell）」のデフォルト行動価値RLがスキーマ「歌う（Sing）」のデフォルト行動価値RLよりも小さい場合、図３０（Ｂ）に示すように、スキーマ「ベルを見つける（FindBell）」に与えられるルーチンバイアスRSEは、スキーマ「歌う（Sing）」に与えられるルーチンバイアスRSEよりも大きいものの、両者のデフォルト行動価値RLが異なるため、スキーマ「ベルを見つける（FindBell）」の行動価値よりもスキーマ「歌う（Sing）」の行動価値の方が大きくなり、スキーマ「教室に行く（GoToClass）」の次にはスキーマ「歌う（Sing）」が実行されている。その後、スキーマ「ベルを見つける（FindBell」、スキーマ「ベルを鳴らす（RingBell）」が順に実行され、計画を終了する。
【０１５７】
（３−４）第４の実験
最後に、第４の実験について説明する。第４の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとは、上述の第３の実験と同じである。
【０１５８】
第４の実験における行動価値の推移を図３１に示す。この第４の実験では、ルーチンバイアスRSEを加えるスキーマを確率論に基づいて決定した。図３１に示すように、スキーマ「教室に行く（GoToClass）」が実行されると、スキーマ「ベルを見つける（FindBell）」又はスキーマ「歌う（Sing）」の行動価値にルーチンバイアスRSEが加えられ、実行準備中となる。この際、何れのスキーマにルーチンバイアスRSEが加えられるかは、確率論に基づいて決定される。すなわち、第３の実験では、スキーマ「教室に行く（GoToClass）」の次にスキーマ「ベルを見つける（FindBell）」が実行される割合が７５％であり、スキーマ「歌う（Sing）」が実行される割合が２５％であるため、７５％の確率でスキーマ「ベルを見つける（FindBell）」に対してルーチンバイアスRSEが加えられ、２５％の確率でスキーマ「歌う（Sing）」に対してルーチンバイアスRSEが加えられる。なお、各スキーマの行動価値は単位時間毎に算出されるため、ルーチンバイアスRSEが加えられるスキーマも単位時間毎に決定される。図３１の場合、スキーマ「教室に行く（GoToClass）」が終了したときの行動価値は、スキーマ「歌う（Sing）」よりもスキーマ「ベルを見つける（FindBell）」の方が大きかったため、スキーマ「教室に行く（GoToClass）」の次にはスキーマ「ベルを見つける（FindBell）」が実行されている。その後、スキーマ「ベルを鳴らす（RingBell）」、スキーマ「歌う（Sing）」が順に実行され、計画を終了する。
【０１５９】
以上、本発明を実施するための最良の形態について説明したが、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【０１６０】
【図１】本実施の形態におけるロボット装置の外観構成を示す図である。
【図２】ロボット装置の機能構成を示す図である。
【図３】ロボット装置の制御ユニットの構成を示す図である。
【図４】ロボット装置の行動制御システムの機能構成を示す図である。
【図５】行動制御システムのオブジェクト構成を示す図である。
【図６】行動制御システムの状況依存行動階層による状況依存行動制御の形態を示す図である。
【図７】状況依存行動階層が複数のスキーマによって構成されている様子を示す図である。
【図８】状況依存行動階層におけるスキーマのツリー構造の一例を示す図である。
【図９】内部状態値と欲求値との関係の一例を示す図である。
【図１０】行動価値算出データの一例を示す図である。
【図１１】内部状態値と満足度との関係の一例を示す図である。
【図１２】行動価値を算出するための要素であるステータスバイアスを説明する図である。
【図１３】行動価値を算出するための要素であるデフォルト行動価値と、減衰パラメータとを説明する図である。
【図１４】行動価値を算出するための要素であるランダムノイズを説明する図である。
【図１５】インテンショナルバイアスによって行動価値を引き上げる際の行動価値の推移とインテンショナルバイアスの推移とを示す図である。
【図１６】行動価値が再計算される例を示す図である。
【図１７】インテンショナルバイアスを加えた行動価値が他のスキーマの行動価値よりも小さい例を示す図である。
【図１８】ルーチンワークを獲得する過程の概要を示すフローチャートである。
【図１９】ルーチンバイアスによって行動価値を引き上げる際の行動価値の推移とインテンショナルバイアスの推移とを示す図である。
【図２０】行動制御システムの熟考行動階層の構成を示す図である。
【図２１】熟考行動階層の実行部の処理を示すフローチャートである。
【図２２】熟考行動階層のインテンショナル・バスに保持される情報を示す図である。
【図２３】インテンショナル・バスと実行部及び状況依存行動階層との情報の受け渡しを示す図である。
【図２４】第１乃至第４の実験におけるスキーマのツリー構造を示す図である。
【図２５】第１の実験において実行した計画と、各スキーマの獲得ルーチンリストとを示す図である。
【図２６】インテンショナルバイアスを与えて計画を実行させる場合の行動価値の推移と、第１の実験における行動価値の推移とを示す図である。
【図２７】第２の実験において実行した計画と、各スキーマの獲得ルーチンリストとを示す図である。
【図２８】第２の実験における行動価値の推移を示す図である。
【図２９】第３の実験において実行した計画と、各スキーマの獲得ルーチンリストとを示す図である。
【図３０】第３の実験における行動価値の推移を示す図である。
【図３１】第４の実験における行動価値の推移を示す図である。
【符号の説明】
【０１６１】
１  ロボット装置、  １０  行動制御システム、  ２０  制御ユニット、  ４０  入出力部、  ５０  駆動部、  ８０  外部刺激認識部、  ９１  内部状態管理部、  ９２  短期記憶部、  ９３  長期記憶部、  １０１  熟考行動階層、  １０２  状況依存行動階層、  １６１  知識ベース、  １６２  計画部、  １６３  計画表現変換部、  １６４  表象変換部、  １６５  実行部、  １６６  表象監視部、  １６７  インテンショナル・バス
【図１】
2007125631.tif 000010
【図２】
2007125631.tif 000011
【図３】
2007125631.tif 000012
【図４】
2007125631.tif 000013
【図５】
2007125631.tif 000014
【図６】
2007125631.tif 000015
【図７】
2007125631.tif 000016
【図８】
2007125631.tif 000017
【図９】
2007125631.tif 000018
【図１０】
2007125631.tif 000019
【図１１】
2007125631.tif 000020
【図１２】
2007125631.tif 000021
【図１３】
2007125631.tif 000022
【図１４】
2007125631.tif 000023
【図１５】
2007125631.tif 000024
【図１６】
2007125631.tif 000025
【図１７】
2007125631.tif 000026
【図１８】
2007125631.tif 000027
【図１９】
2007125631.tif 000028
【図２０】
2007125631.tif 000029
【図２１】
2007125631.tif 000030
【図２２】
2007125631.tif 000031
【図２３】
2007125631.tif 000032
【図２４】
2007125631.tif 000033
【図２５】
2007125631.tif 000034
【図２６】
2007125631.tif 000035
【図２７】
2007125631.tif 000036
【図２８】
2007125631.tif 000037
【図２９】
2007125631.tif 000038
【図３０】
2007125631.tif 000039
【図３１】
2007125631.tif 000040