(57)【要約】【課題】  エンターテイメント・ロボットとしてユーザを飽きさせない行動を発現するとともに、自身が発現する行動を学習する。【解決手段】  行動選択制御システム１００は、選択されると行動を出力する複数の要素行動と、入力される外部刺激と行動発現後に変化すると予想される予想内部状態変化とが対応付けられたデータベースを参照し、内部状態管理部９１及び外部刺激認識部８０からの情報に基づき、各要素行動の行動価値ＡＬを算出する行動価値算出部１２０と、行動価値ＡＬが最も大きい要素行動を選択する行動選択部１３０と、行動発現後の結果に基づきデータベースを更新する学習部１４０を有する。各行動には、所定の内部状態及び外部刺激が対応付けられ、行動価値算出部１２０は、入力された内部状態に対応する行動に対する欲求値と、予想内部状態変化に基づく予想満足度変化を基に、各行動に対する行動価値ＡＬを算出する。【選択図】  図４
2004291228.tif 000002
【特許請求の範囲】
【請求項１】
内部状態及び外部刺激に基づいて自律的に行動を選択し発現するロボット装置において、
所定の内部状態及び外部刺激が対応付けられた行動が記述された複数の行動記述モジュールと、
入力される外部刺激と、行動発現後に変化すると予想される予想内部状態変化とを対応付けたデータ形式からなる行動価値算出データベースと、
内部状態及び外部刺激から前記行動価値算出データベースを参照し、内部状態に対応付けられた行動に対する欲求値及び内部状態に基づく満足度を求め、現在の内部状態から求まる欲求値と、予想内部状態変化から求まる予想満足度変化とに基づいて、前記の各行動記述モジュールに記述された行動の行動価値を算出する行動価値算出手段と、
該算出された行動価値に基づいて行動記述モジュールを選択し、該選択された行動記述モジュールに記述された行動を発現させる行動選択手段と、
を具備することを特徴とするロボット装置。
【請求項２】
前記行動選択手段により選択された行動発現後の結果に基づいて実際に得られる内部状態変化量に基づいて、前記前記行動価値算出データベース内の該当する予想内部状態変化を更新する学習手段をさらに備える、
ことを特徴とする請求項１に記載のロボット装置。
【請求項３】
前記行動価値算出手段は、現在の内部状態から求まる欲求値と、現在の内部状態から求まる満足度と、予想満足度変化とに基づいて、前記の各行動記述モジュールに記述された行動に対する行動価値を算出する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項４】
前記行動価値算出データベースは、外部刺激の値に対応付けられた予想内部状態変化を有する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項５】
前記行動価値算出手段は、前記行動価値算出データベースにはない値が入力された場合は、線形モデルを使用し線形補間を行なって予想内部状態変化を算出する、
ことを特徴とする請求４に記載のロボット装置。
【請求項６】
前記行動選択手段は、候補である行動のうち前記行動価値算出手段により算出された行動価値が最大のものを常に選択する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項７】
前記行動選択手段は、前記行動価値算出手段により算出された行動価値に依らず、候補である行動の中から無作為に選択する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項８】
前記行動選択手段は、前記行動価値算出手段により算出された行動価値に応じた確率に従って、候補である行動の中から選択する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項９】
前記行動価値算出データベースは、前記の各行動記述モジュールに記述された行動と、外部刺激としての対象物が持つ特性と、内部状態の組として、前記データ形式を管理する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項１０】
前記行動価値算出手段は、前記の各行動記述モジュールに記述された行動をインデックスとして前記行動価値算出データベースを検索し、外部刺激としての対象物の特性から内部状態を決定する、
ことを特徴とする請求項９に記載のロボット装置。
【請求項１１】
前記行動価値算出手段は、外部刺激としての対象物が持つある特性をインデックスとして前記行動価値算出データベースを検索し、内部状態を決定する、
ことを特徴とする請求項９に記載のロボット装置。
【請求項１２】
前記行動価値算出手段は、行動又は外部刺激としての対象物が持つその他の特性を任意に値に設定し又は平均化し、対象物に抽象的な価値を与える、
ことを特徴とする請求項１１に記載のロボット装置。
【請求項１３】
内部状態及び外部刺激に基づいて自律的に行動を選択して発現するロボット装置の行動制御方法において、各行動は所定の内部状態及び外部刺激と対応付けられた行動記述モジュールとして記述され、
入力される外部刺激と、行動発現後に変化すると予想される予想内部状態変化とを対応付けたデータ形式からなる行動価値算出データベースを管理するステップと、
内部状態及び外部刺激から前記行動価値算出データベースを参照し、内部状態に対応付けられた行動に対する欲求値及び内部状態に基づく満足度を求め、現在の内部状態から求まる欲求値と、予想内部状態変化から求まる予想満足度変化とに基づいて、前記の各行動記述モジュールに記述された行動の行動価値を算出する行動価値算出ステップと、
該算出された行動価値に基づいて行動記述モジュールを選択し、該選択された行動記述モジュールに記述された行動を発現させる行動選択ステップと、
該選択された行動発現後の結果に基づいて行動価値算出データベースを更新する学習ステップと、
ことを特徴とするロボット装置の行動制御方法。
【請求項１４】
前記行動選択ステップにおいて選択された行動発現後の結果に基づいて実際に得られる内部状態変化量に基づいて、前記前記行動価値算出データベース内の該当する予想内部状態変化を更新する学習ステップをさらに備える、
ことを特徴とする請求項１３に記載のロボット装置の行動制御方法。
【請求項１５】
上記行動価値算出ステップでは、現在の内部状態から求まる欲求値と、現在の内部状態から求まる満足度と、予想満足度変化とに基づいて、前記の各行動記述モジュールに記述された行動に対する行動価値を算出する、
ことを特徴とする請求項１３に記載のロボット装置の行動制御方法。
【請求項１６】
前記行動価値算出データベースは、外部刺激の値に対応付けられた予想内部状態変化を有する、
ことを特徴とする請求項１３に記載のロボット装置の行動制御方法。
【請求項１７】
前記行動価値算出ステップでは、前記行動価値算出データベースにはない値が入力された場合は、線形モデルを使用し線形補間を行なって予想内部状態変化が算出する、
ことを特徴とする請求項１６に記載のロボット装置の行動制御方法。
【請求項１８】
前記行動選択ステップでは、候補である行動のうち前記行動価値算出ステップにより算出された行動価値が最大のものを常に選択する、
ことを特徴とする請求項１３に記載のロボット装置の行動制御方法。
【請求項１９】
前記行動選択ステップでは、前記行動価値算出ステップにより算出された行動価値に依らず、候補である行動の中から無作為に選択する、
ことを特徴とする請求項１３に記載のロボット装置の行動制御方法。
【請求項２０】
前記行動選択ステップでは、前記行動価値算出ステップにより算出された行動価値に応じた確率に従って、候補である行動の中から選択する、
ことを特徴とする請求項１３に記載のロボット装置の行動制御方法。
【請求項２１】
前記の行動価値算出データベースを管理するステップでは、前記の各行動記述モジュールに記述された行動と、外部刺激としての対象物が持つ特性と、内部状態の組として、前記データ形式を管理する、
ことを特徴とする請求項１３に記載のロボット装置の行動制御方法。
【請求項２２】
前記行動価値算出ステップでは、前記の各行動記述モジュールに記述された行動をインデックスとして前記行動価値算出データベースを検索し、外部刺激としての対象物の特性から内部状態を決定する、
ことを特徴とする請求項２１に記載のロボット装置の行動制御方法。
【請求項２３】
前記行動価値算出ステップでは、外部刺激としての対象物が持つある特性をインデックスとして前記行動価値算出データベースを検索し、内部状態を決定する、
ことを特徴とする請求項２１に記載のロボット装置の行動制御方法。
【請求項２４】
前記行動価値算出ステップでは、行動又は外部刺激としての対象物が持つその他の特性を任意に値に設定し又は平均化し、対象物に抽象的な価値を与える、
ことを特徴とする請求項２３に記載のロボット装置の行動制御方法。
【請求項２５】
内部状態及び外部刺激に基づいて自律的に行動を選択して発現するためのロボット装置の行動制御をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムにおいて、
所定の内部状態及び外部刺激が対応付けられた行動が記述された複数の行動記述モジュールと、
入力される外部刺激と、行動発現後に変化すると予想される予想内部状態変化とを対応付けたデータ形式からなる行動価値算出データベースを管理するステップと、
内部状態及び外部刺激から前記行動価値算出データベースを参照し、内部状態に対応付けられた行動に対する欲求値及び内部状態に基づく満足度を求め、現在の内部状態から求まる欲求値と、予想内部状態変化から求まる予想満足度変化とに基づいて、前記の各行動記述モジュールに記述された行動の行動価値を算出する行動価値算出ステップと、
該算出された行動価値に基づいて行動記述モジュールを選択し、該選択された行動記述モジュールに記述された行動を発現させる行動選択ステップと、
該選択された行動発現後の結果に基づいて行動価値算出データベースを更新する学習ステップと、
ことを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律的に行動を発現するロボット装置及びロボット装置の行動制御方法、並びにコンピュータ・プログラムに関し、特に、自身の内部状態と外部刺激とから発現する行動を選択するロボット装置及びロボット装置の行動制御方法、並びにコンピュータ・プログラムに関する。
【０００２】
さらに詳しくは、本発明は、本能や感情といった情動をモデル化してシステムの内部状態を管理し、内部状態の変化に応じて行動を選択するロボット装置及びロボット装置の行動制御方法、並びにコンピュータ・プログラムに係り、特に、内部状態と外部刺激に対し、ユーザや環境とのインタラクションを応じた行動を選択するロボット装置及びロボット装置の行動制御方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００３】
近年、産業用ロボット装置に代わり、新しいロボット装置の分野として人間共存型ロボット装置やエンターテインメント・ロボット装置の研究が進められている。このようなロボット装置は、センサなどからの外部刺激の情報を使用して行動を発現するようになされている。
【０００４】
例えば、ロボット装置の自己保存の観点からの評価に基づきロボットの行動を生成する方法について提案がなされている。自己保存の観点からの評価とは、自己のハードウェアの耐久性、故障率の観点からこれを評価するもので、具体的には、外界情報（視覚・聴覚のセンサ入力）だけでなく、自己のバッテリ状態や消費電力、回路温度などの情報からなる入力情報を身体の耐久性の評価値（故障率）に変換する自己保存評価関数を計算し、複数の動作形態のうち、行動を行なっている状態から、実際に他の行動に指令を与えて行動状態を変移させるために、内外感覚情報及び自己保存評価関数の値を監視することで、行動状態を変移させる。これにより、ロボット装置の行動は、自己保存評価が良くなる方へ近づき、悪くなる方は避けるという自己保存の評価から生まれる志向性（好き嫌い）を反映したものとすることができる。
【０００５】
また、このロボット装置は、「情」のモデル化のために自己保存評価関数を導入し、例えば充電されると喜びの反応として黄色の表出をしたり、放電されると恐怖の反応として青色を表出したりすることで、情動表出を行なうことができる。
【０００６】
しかしながら、このロボット装置の「自己の保存」に基づいた価値観は、充電なら良、放電なら悪、というような単純なものであり、人間に対して一方向のコミュニケーションしか実現できない。
【０００７】
また、人間共存型ロボット装置や、エンターテインメント・ロボット装置と呼ばれるロボット装置は、玩具機械的な位置付けがなされ、外部刺激のみを行動選択のトリガとしているものが多く、ユーザ操作と応答動作との関係が固定的である。その結果、ユーザは同じ外部刺激に対して、同じ動作しか繰り返さない玩具に対し、容易に飽きを感じてしまうことが多い。
【０００８】
近時、本能や感情といった情動をモデル化してシステムの内部状態を管理し、内部状態の変化に応じて行動を選択するシステムが提案されているものの、内部状態と外部刺激に対して選択される行動は固定的なものが多く、ユーザや環境とのインタラクションを通じてそれを変えることは困難である。
【０００９】
ロボット装置が現在の状況に応じた最適な次の行動及び動作を予想して行なわせる機能や、過去の経験に基づいて次の行動及び動作を変化させる機能を搭載することができれば、より一層の親近感や満足感をユーザに与えて、ロボット装置としてのアミューズメント性をより向上させるとともに、ユーザとのインタラクションを円滑に行なうことができて便利である。
【００１０】
【非特許文献１】尾形哲也、菅野重樹共著「自己保存に基づくロボットの行動生成−方法論と機械モデルの実現化−」、日本ロボット学会誌、１９９７年、第１５巻、第５号、ｐ．７１０−７２１
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、本能や感情といった情動をモデル化してシステムの内部状態を管理し、内部状態の変化に応じて行動を選択することができる、優れたロボット装置及びロボット装置の行動制御方法、並びにコンピュータ・プログラムを提供することにある。
【００１２】
本発明のさらなる目的は、内部状態と外部刺激に対し、ユーザや環境とのインタラクションを応じた行動を選択することができる、優れたロボット装置及びロボット装置の行動制御方法、並びにコンピュータ・プログラムを提供することにある。
【００１３】
本発明のさらなる目的は、エンターテイメント・ロボットとしてユーザを飽きさせない行動を発現することができるとともに、自身が発現する行動を学習することができる、優れたロボット装置及びロボット装置の行動制御方法、並びにコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、内部状態及び外部刺激に基づいて自律的に行動を選択し発現するロボット装置において、
所定の内部状態及び外部刺激が対応付けられた行動が記述された複数の行動記述モジュールと、
入力される外部刺激と、行動発現後に変化すると予想される予想内部状態変化とを対応付けたデータ形式からなる行動価値算出データベースと、
内部状態及び外部刺激から前記行動価値算出データベースを参照し、内部状態に対応付けられた行動に対する欲求値及び内部状態に基づく満足度を求め、現在の内部状態から求まる欲求値と、予想内部状態変化から求まる予想満足度変化とに基づいて、前記の各行動記述モジュールに記述された行動の行動価値を算出する行動価値算出手段と、
該算出された行動価値に基づいて行動記述モジュールを選択し、該選択された行動記述モジュールに記述された行動を発現させる行動選択手段と、
該選択された行動発現後の結果に基づいて行動価値算出データベースを更新する学習手段と、
を具備することを特徴とするロボット装置である。
【００１５】
本発明においては、現在の内部状態に対応する行動に対する欲求値を求め、また、現在の内部状態に対する満足度と、外部刺激が入力され行動を発現した後に変化すると予想される予想内部状態に対応する予想満足度と差である予想満足度変化を求め、これらから行動価値を算出し、この行動価値に基づき行動を選択し発現するとともに、さらには行動価値算出に使用するデータベースを行動発現後の結果から学習して随時更新することができる。したがって、環境やユーザとのコミュニケーションに応じて変化する内部状態及び種々の外部刺激に対して一義的ではないさまざまな行動を発現することができる。
【００１６】
また、上記行動価値算出手段は、上記現在の内部状態から求まる上記欲求値と、該現在の内部状態から求まる上記満足度と、上記予想満足度変化とに基づき、各行動に対する上記行動価値を算出してもよい。
【００１７】
また、上記行動価値算出データベースは、上記外部刺激の値に対応付けられた上記予想内部状態変化を有することができ、上記行動価値算出データベースにはないデータが入力された場合は、線形モデルを使用し線形補間を行って予想内部状態変化を算出することができ、各外部刺激が有するすべての値に対応する予想内部状態変化を持つ必要がなくデータ量を低減することができる。
【００１８】
また、上記学習手段は、上記外部刺激が入力され行動を発現した後の実際の内部状態変化から上記予想内部状態変化を学習することができ、コミュニケーションをとるユーザや、環境に応じて異なるデータベースを作成することができる。
【００１９】
また、上記行動選択手段は、候補となる行動モジュールの中からさまざまな方法により実際に発言させる行動を選択することができる。例えば、候補である行動のうち前記行動価値算出手段により算出された行動価値が最大のものを常に選択する方法（Ｇｒｅｅｄｙ）をとることができる。
【００２０】
あるいは、前記行動選択手段は、前記行動価値算出手段により算出された行動価値に依らず、候補である行動の中から無作為（Ｒａｎｄｏｍ）に選択するようにしてもよい。このような場合、行動選択が探索的となり、行動価値算出データベースを更新する可能性を高めることができる。
【００２１】
あるいは、前記行動選択手段は、ＳｏｆｔＭａｘにより、前記行動価値算出手段により算出された行動価値に応じた確率に従って、候補である行動の中から選択するようにしてもよい。この場合、行動価値が大きい行動をより高い確率で選択することになる。
【００２２】
また、前記行動価値算出データベースは、前記の各行動記述モジュールに記述された行動と、外部刺激としての対象物が持つ特性と、内部状態の組として、前記データ形式を管理するようにしてもよい。この場合、前記行動価値算出手段は、前記の各行動記述モジュールに記述された行動をインデックスとして前記行動価値算出データベースを検索し、外部刺激としての対象物の特性から内部状態を決定することができる。
【００２３】
また、前記行動価値算出データベースの他の利用方法として、前記行動価値算出手段は、外部刺激としての対象物が持つある特性をインデックスとして前記行動価値算出データベースを検索し、内部状態を決定するようにしてもよい。この場合、前記行動価値算出手段は、行動又は外部刺激としての対象物が持つその他の特性を任意に値に設定し又は平均化し、対象物に抽象的な価値を与えることができる。
【００２４】
また、本発明の第２の側面は、内部状態及び外部刺激に基づいて自律的に行動を選択して発現するためのロボット装置の行動制御をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムにおいて、
所定の内部状態及び外部刺激が対応付けられた行動が記述された複数の行動記述モジュールと、
入力される外部刺激と、行動発現後に変化すると予想される予想内部状態変化とを対応付けたデータ形式からなる行動価値算出データベースを管理するステップと、
内部状態及び外部刺激から前記行動価値算出データベースを参照し、内部状態に対応付けられた行動に対する欲求値及び内部状態に基づく満足度を求め、現在の内部状態から求まる欲求値と、予想内部状態変化から求まる予想満足度変化とに基づいて、前記の各行動記述モジュールに記述された行動の行動価値を算出する行動価値算出ステップと、
該算出された行動価値に基づいて行動記述モジュールを選択し、該選択された行動記述モジュールに記述された行動を発現させる行動選択ステップと、
該選択された行動発現後の結果に基づいて行動価値算出データベースを更新する学習ステップと、
ことを特徴とするコンピュータ・プログラムである。
【００２５】
本発明の第２の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第２の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係るロボット装置と同様の作用効果を得ることができる。
【発明の効果】
【００２６】
本発明によれば、本能や感情といった情動をモデル化してシステムの内部状態を管理し、内部状態の変化に応じて行動を選択することができる、優れたロボット装置及びロボット装置の行動制御方法、並びにコンピュータ・プログラムを提供することができる。
【００２７】
また、本発明によれば、内部状態と外部刺激に対し、ユーザや環境とのインタラクションを応じた行動を選択することができる、優れたロボット装置及びロボット装置の行動制御方法、並びにコンピュータ・プログラムを提供することができる。
【００２８】
また、本発明によれば、エンターテイメント・ロボットとしてユーザを飽きさせない行動を発現することができるとともに、自身が発現する行動を学習することができる、優れたロボット装置及びロボット装置の行動制御方法、並びにコンピュータ・プログラムを提供することができる。
【００２９】
本発明に係るロボット装置は、内部状態及び外部刺激に基づき自律的に行動を選択し発現するロボット装置であり、行動が記述された複数の行動記述モジュールと、上記内部状態及び外部刺激から行動価値算出データベースを参照して各行動記述モジュールに記述された行動の行動価値を算出する行動価値算出手段と、算出された行動価値に基づいて行動記述モジュールを選択し、当該行動記述モジュールに記述された行動を発現させる行動選択手段と、選択された行動発現後の結果に基づいて行動価値算出データベースを更新する学習手段を備えている。
【００３０】
それぞれの行動記述モジュールに記述された行動には所定の内部状態及び外部刺激が対応付けられている。また、行動価値算出データベースは、入力される外部刺激と、行動発現後に変化すると予想される予想内部状態変化とが対応付けられたものである。そして、行動価値算出手段は、内部状態に対応付けられた行動に対する欲求値及び内部状態に基づく満足度を求め、現在の内部状態から得られる欲求値と、予想内部状態変化から求まる予想満足度変化とに基づいて、各行動に対する上記行動価値を算出する。
【００３１】
すなわち、自身の内部状態から発現する行動の欲求値を求め、また、現在の内部状態に基づく満足度から行動発現後に予想される満足度の変化量を予想満足度として求め、これらから行動価値を算出し、この行動価値に基づいて行動選択することにより、同じ外部刺激でも内部状態の値によって異なる行動が選択されるとともに、さらには行動価値算出に使用するデータベースを学習により随時更新することができる。したがって、環境やユーザとのコミュニケーションに応じて変化する内部状態及び種々の外部刺激に対して一義的ではないさまざまなユーザを飽きさせない行動を発現させることができる。
【００３２】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００３３】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。本明細書で説明する実施の形態は、本発明を、ペット型エージェント、人間型エージェントなどの生命を模擬し、ユーザとのインタラクションを可能とするロボット装置に適用したものである。以下では先ず、このようなロボット装置の構成について説明し、次にロボット装置の制御システムのうち、行動選択を行う行動選択制御システムについて説明し、最後にそのような行動選択制御システムを含むロボット装置の制御システムについて説明する。
【００３４】
Ａ．ロボット装置の構成
図１には、本発明の実施に供されるロボット装置の外観を示している。同図に示すように、ロボット装置１は、体幹部ユニット２の所定の位置に頭部ユニット３が連結されるとともに、左右２つの腕部ユニット４Ｒ／Ｌと、左右２つの脚部ユニット５Ｒ／Ｌが連結されて構成されている（但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下において同じ。）。
【００３５】
図２は、本発明の実施に供されるロボット装置１の機能構成を模式的に示している。同図に示すように、ロボット装置１は、全体の動作の統括的制御及びその他のデータ処理を行なう制御ユニット２０と、入出力部４０と、駆動部５０と、電源部６０とで構成される。以下、各部について説明する。
【００３６】
入出力部４０は、入力部として人間の目に相当し、外部の状況を撮影するＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）カメラ１５、及び耳に相当するマイクロフォン１６や頭部や背中などの部位に配設され、所定の押圧を受けるとこれを電気的に検出することで、ユーザの接触を感知するタッチ・センサ１８、前方に位置する物体までの距離を測定するための距離センサ、五感に相当するその他、ジャイロセンサなど、各種のセンサを含む。また、出力部として、頭部ユニット３に備えられ、人間の口に相当するスピーカ１７、及び人間の目の位置に設けられ、感情表現や視覚認識状態を表現する例えばＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｅｖｉｃｅ）インジケータ（目ランプ）１９などを装備している。これら出力部は、音声やＬＥＤインジケータ１９の点滅、脚による機械運動パターン以外の形式でもロボット装置１からのユーザ・フィードバックを表現することができる。
【００３７】
例えば頭部ユニットの頭頂部の所定箇所に複数のタッチ・センサ１８を設け、各タッチ・センサ１８における接触検出を複合的に活用して、ユーザからの働きかけ、ロボット装置１の頭部を「撫でる」「叩く」「軽く叩く」などを検出することができる。また、押圧センサのうちの幾つかが所定時間をおいて順次接触したことを検出した場合、これを「撫でられた」と判別し、短時間のうちに接触を検出した場合、「叩かれた」と判別する等場合分けし、これに応じて内部状態も変化し、このような内部状態の変化を上述の出力部などにより表現することができる。
【００３８】
駆動部５０は、制御ユニット２０が指令する所定の運動パターンに従ってロボット装置１の機体動作を実現する機能ブロックであり、行動制御による制御対象である。駆動部５０は、ロボット装置１の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール、ピッチ、ヨーの各軸に設けられた複数の駆動ユニット５４１〜５４ｎで構成される。各駆動ユニット５４１〜５４ｎは、所定軸回りの回転動作を行なうモータ５１１〜５１ｎと、モータ５１１〜５１ｎの回転位置を検出するエンコーダ５２１〜５２ｎと、エンコーダ５２１〜５２ｎの出力に基づいてモータ５１１〜５１ｎの回転位置や回転速度を適応的に制御するドライバ５３１〜５３ｎとの組み合わせで構成される。
【００３９】
本実施形態に係るロボット装置１は、２足歩行としたが、駆動ユニットの組み合わせ方によって、ロボット装置１を例えば４足歩行などの脚式移動ロボット装置として構成することもできる。
【００４０】
電源部６０は、その字義通り、ロボット装置１内の各電気回路などに対して給電を行う機能モジュールである。本実施形態に係るロボット装置１は、バッテリを用いた自律駆動式であり、電源部６０は、充電バッテリ６１と、充電バッテリ６１の充放電状態を管理する充放電制御部６２とで構成される。
【００４１】
充電バッテリ６１は、例えば、複数本のリチウムイオン２次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【００４２】
また、充放電制御部６２は、バッテリ６１の端子電圧や充電／放電電流量、バッテリ６１の周囲温度等を測定することでバッテリ６１の残存容量を把握し、充電の開始時期や終了時期などを決定する。充放電制御部６２が決定する充電の開始及び終了時期は制御ユニット２０に通知され、ロボット装置１が充電オペレーションを開始及び終了するためのトリガとなる。
【００４３】
制御ユニット２０は、「頭脳」に相当し、例えばロボット装置１の機体頭部、あるいは胴体部に搭載されている。
【００４４】
図３には、制御ユニット２０の構成をさらに詳細に示している。図３に示すように、制御ユニット２０は、メイン・コントローラとしてのＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）２１が、メモリ及びその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。バス２８は、データ・バス、アドレス・バス、コントロール・バスなどを含む共通信号伝送路である。バス２８上の各装置にはそれぞれに固有のアドレス（メモリ・アドレス又はＩ／Ｏアドレス）が割り当てられている。ＣＰＵ２１は、アドレスを指定することによってバス２８上の特定の装置と通信することができる。
【００４５】
ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）２２は、ＤＲＡＭ（Ｄｙｎａｍｉｃ ＲＡＭ）などの揮発性メモリで構成された書き込み可能メモリであり、ＣＰＵ２１が実行するプログラム・コードをロードしたり、実行プログラムによる作業データの一時的に保存したりするために使用される。
【００４６】
ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）２３は、プログラムやデータを恒久的に格納する読み出し専用メモリである。ＲＯＭ２３に格納されるプログラム・コードには、ロボット装置１の電源投入時に実行する自己診断テスト・プログラムや、ロボット装置１の動作を規定する動作制御プログラムなどが挙げられる。
【００４７】
ロボット装置１の制御プログラムには、カメラ１５やマイクロフォン１６などのセンサ入力を処理してシンボルとして認識する「センサ入力・認識処理プログラム」、短期記憶や長期記憶などの記憶動作（後述）を司りながらセンサ入力と所定の行動制御モデルとに基づいてロボット装置１の行動を制御する「行動制御プログラム」、行動制御モデルに従って各関節モータの駆動やスピーカ１７の音声出力を制御する「駆動制御プログラム」などが含まれる。
【００４８】
不揮発性メモリ２４は、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ Ｅｒａｓａｂｌｅ ａｎｄ Ｐｒｏｇｒａｍｍａｂｌｅ ＲＯＭ）のように電気的に消去再書き込みが可能なメモリ素子で構成され、逐次更新すべきデータを不揮発的に保持するために使用される。逐次更新すべきデータには、暗号鍵やその他のセキュリティ情報、出荷後にインストールすべき装置制御プログラムなどが挙げられる。
【００４９】
インターフェース２５は、制御ユニット２０外の機器と相互接続し、データ交換を可能にするための装置である。インターフェース２５は、例えば、カメラ１５、マイクロフォン１６、又はスピーカ１７等との間でデータ入出力を行う。また、インターフェース２５は、駆動部５０内の各ドライバ５３１〜５３ｎとの間でデータやコマンドの入出力を行なう。
【００５０】
また、インターフェース２５は、ＲＳ（Ｒｅｃｏｍｍｅｎｄｅｄ Ｓｔａｎｄａｒｄ）−２３２Ｃなどのシリアル・インターフェース、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ ｏｆ Ｅｌｅｃｔｒｉｃａｌ ａｎｄ Ｅｌｅｃｔｒｏｎｉｃｓ Ｅｎｇｉｎｅｅｒｓ）１２８４などのパラレル・インターフェース、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）インターフェース、ｉ−Ｌｉｎｋ（ＩＥＥＥ１３９４）インターフェース、ＳＣＳＩ（Ｓｍａｌｌ Ｃｏｍｐｕｔｅｒ Ｓｙｓｔｅｍ Ｉｎｔｅｒｆａｃｅ）インターフェース、ＰＣカードやメモリ・スティックを受容するメモリ・カード・インターフェース（カード・スロット）などのような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続された外部機器との間でプログラムやデータの移動を行なうようにしてもよい。
【００５１】
また、インターフェース２５の他の例として、赤外線通信（ＩｒＤＡ）インターフェースを備え、外部機器と無線通信を行なうようにしてもよい。
【００５２】
さらに、制御ユニット２０は、無線通信インターフェース２６やネットワーク・インターフェース・カード（ＮＩＣ）２７等を含み、Ｂｌｕｅｔｏｏｔｈのような近接無線データ通信や、ＩＥＥＥ  ８０２．１１に代表される無線ネットワーク、あるいはインターネットなどの広域ネットワークを経由して、外部のさまざまなホスト・コンピュータとデータ通信を行なうことができる。
【００５３】
このようなロボット装置１とホスト・コンピュータ間におけるデータ通信により、遠隔のコンピュータ資源を用いて、ロボット装置１の複雑な動作制御を演算したり、リモート・コントロールしたりすることができる。
【００５４】
Ｂ．ロボット装置の行動制御方法
次に、ロボット装置の行動制御方法について詳細に説明する。上述したロボット装置１は、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るようになされている。すなわち、ロボット装置１は、外部刺激及び内部状態に応じて自律的に行動を選択して発現することができる。
【００５５】
本実施の形態におけるロボット装置の行動制御方法では、ロボット装置は、行動に対する行動価値ＡＬ（アクティベーション・レベル：Ａｃｔｉｖａｔｉｏｎ Ｌｅｖｅｌ）に基づいて選択される行動記述モジュール（後述）に記述された行動を発現される、という形態で行動が生成される。ここでは、特に、ロボット装置の行動制御のうち、自身の内部状態と外部からの刺激に対して発現する行動を選択して出力するまでの行動選択制御について説明するが、先ず、行動選択の基準となる行動価値ＡＬの算出方法について説明する。なお、ロボット装置の制御システムの全体の構成についての詳細は後述する。
【００５６】
Ｂ−１．ロボット装置の行動選択制御
図４には、本実施形態に係るロボット装置の制御システムにおいて、各行動に対応する行動価値を算出してこれに基づき行動出力する処理を行なう行動選択制御システム部分を示している。同図に示すように、行動選択制御システム１００は、本能や感情といった数種類の情動を数式モデル化して管理する内部状態管理部９１と、外部環境におけるセンサ入力などの外部刺激を認識する外部刺激認識部８０と、内部状態及び外部刺激に基づき選択されると行動を出力するモジュールである複数の要素行動１３２と、各要素行動１３２の行動価値ＡＬを算出する行動価値算出部１２０と、行動価値ＡＬに基づいて発現する要素行動１３２を選択する行動選択部１３０と、行動発現後の結果を基に学習して行動価値データベースを更新する学習部１４０を備え、選択された要素行動１３２が行動を出力することでロボット装置が行動を発現するようになっている。
【００５７】
要素行動１３２とは、内部状態及び外部刺激から行動出力を決定するモジュール（以下では、「行動記述モジュール」とも呼ぶ）として構成され、モジュール毎にステートマシンを備え、それ以前の行動（動作）や状況に依存して、センサ入力された外部情報の認識結果を分類し、動作を機体上で発現する。図４では、要素行動Ａ乃至Ｄのみ図示しているが、これに限定されるものではない。行動記述モジュールは、外部刺激や内部状態に応じた状況判断を行ない、行動価値ＡＬを算出するＭｏｎｉｔｏｒ機能と、行動実行に伴う状態遷移（ステートマシン）を実現するＡｃｔｉｏｎ機能とを備えたスキーマ（Ｓｃｈｅｍａ）として記述されるが、スキーマの詳細については後述する。
【００５８】
各要素行動１３２は、自身に記述された行動に応じて所定の内部状態及び外部刺激が定義されている。
【００５９】
ここで外部刺激とは、外部刺激認識部８０におけるロボット装置の知覚情報などであり、例えばカメラから入力された画像に対して処理された色情報、形情報、顔情報等の対象物情報等が挙げられる。具体的には、例えば、色、形、顔、３Ｄ一般物体、及びハンドジェスチャー、その他、動き、音声、接触、距離、場所、時間、及びユーザとのインタラクション回数等が挙げられる。
【００６０】
また、内部状態とは、上述した如く、内部状態管理部９１にて管理される本能や感情といった情動であり、例えば、疲れ（ＦＡＴＩＧＵＥ）、痛み（ＰＡＩＮ）、栄養状態（ＮＯＵＲＩＳＨＭＥＮＴ）、乾き（ＴＨＵＲＳＴ）、愛情（ＡＦＦＥＣＴＩＯＮ）、好奇心（ＣＵＲＩＯＳＩＴＹ）などが挙げられる。
【００６１】
図４に示すように、各要素行動は、行動出力と、行動出力に応じて定義された内部刺激並びに外部刺激を扱う。外部刺激は、該当する対象物のプロパティとして扱われる。例えば、行動出力が「食べる」である要素行動Ａは、外部刺激として対象物の種類（ＯＢＪＥＣＴ_ＩＤ）、対象物の大きさ（ＯＢＪＥＣＴ_ＳＩＺＥ）、対象物の距離（ＯＢＪＥＣＴ_ＤＩＳＴＡＮＣＥ）などを扱い、内部状態として「ＮＯＵＲＩＳＨＭＥＮＴ」（「栄養状態」）、「ＦＡＴＩＧＵＥ」（「疲れ」）などを扱う。このように、要素行動毎に、扱う外部刺激及び内部状態の種類が定義され、該当する外部刺激及び内部状態に対応する行動（要素行動）に対する行動価値が算出される。なお、１つの内部状態、又は外部刺激は、１つの要素行動だけでなく、複数の要素行動に対応付けられていてもよいことは勿論である。
【００６２】
また、内部状態管理部９１は、外部刺激並びに例えば自身のバッテリの残量及びモータの回転角などの情報を入力とし、上述のような複数の内部状態に対応した内部状態の値（内部状態ベクトルＩｎｔＶ）を算出し、管理する。具体的には、例えば、内部状態「栄養状態」は、バッテリの残量を基に決定し、内部状態「疲れ」は、消費電力を基に決定することができる。
【００６３】
行動価値算出部１２０は、入力される外部刺激と、行動発現後に変化すると予想される予想内部状態変化が対応付けられた行動価値算出データベース１２１（後述）を参照し、ある時刻での外部刺激と内部状態とからその時刻での各要素行動Ａ〜Ｄにおける行動価値ＡＬをそれぞれ算出する。この行動価値算出部１２０は、図４に示す実施形態では要素行動Ａ〜Ｄ毎に個別に設けられるものとするが、行動価値算出部１２０によりすべての要素行動についての行動価値を算出するように構成してもよい。
【００６４】
ここで言う行動価値ＡＬとは、その要素行動をロボット装置がどれくらいやりたいか（実行優先度）を示すものである。行動選択部１３０は、候補となる要素行動の中から、それぞれについて算出された行動価値ＡＬに基づいて選択する。そして、選択された要素行動は自身に記述された行動を出力する。すなわち、各要素行動が自身の行動価値算出部１２０により、行動価値ＡＬの算出を行ない、その行動価値ＡＬが例えば最も高い要素行動を行動選択部１３０が選択する。行動選択部１３０における行動価値ＡＬに基づく要素行動の選択方法については、後に詳解する。
【００６５】
各要素行動に対する行動価値ＡＬは、現在の各内部状態に対応する各行動に対する欲求値と、現在の各内部状態に基づく満足度と、外部刺激により変化すると予想される内部状態の変化量、すなわち、外部刺激が入力され行動を発現した結果、変化すると予想される内部状態の変化量を示す予想内部状態変化に基づく予想満足度変化とに基づいて算出される。
【００６６】
ここで、要素行動における行動価値ＡＬを算出する方法について、ある「種類」、「大きさ」の対象物がある「距離」に存在するとき、行動出力が「食べる」である要素行動Ａの行動価値ＡＬを要素行動Ａに定義された内部状態「栄養状態」、「疲れ」とから算出する例をとって、具体的に説明する。
【００６７】
Ｂ−２．行動価値算出部
図５には、行動価値算出部１２０が内部状態及び外部刺激から行動価値ＡＬを算出する処理の流れを示している。本実施形態では、要素行動毎に、１以上の内部状態の値を成分として有する内部状態ベクトルＩｎｔＶ（Ｉｎｔｅｒｎａｌ Ｖａｒｉａｂｌｅ）が定義されており、内部状態管理部９１から各要素行動に応じた内部状態ベクトルＩｎｔＶを得る。すなわち、内部状態ベクトルＩｎｔＶの各成分は、例えば上述した情動などを示す１つの内部状態の値（内部状態パラメータ）を示すもので、内部状態ベクトルＩｎｔＶが有する各成分に応じた要素行動の行動価値算出に使用される。具体的には、上記行動出力「食べる」を有する要素行動Ａは、例えば内部状態ベクトルＩｎｔＶ｛ＩｎｔＶ_ＮＯＵＲＩＳＨＭＥＮＴ「栄養状態」，ＩｎｔＶ_ＦＡＴＩＧＵＥ「疲れ」}が定義されている。
【００６８】
また、内部状態毎に、１以上の外部刺激の値を成分として有する外部刺激ベクトルＥｘＳｔｍｌ（Ｅｘｔｅｒｎａｌ Ｓｔｉｍｕｌｕｓ）が定義されており、外部刺激認識部８０から各内部状態、すなわち各要素行動に応じた外部刺激ベクトルＥｘＳｔｍｌを得る。すなわち、外部刺激ベクトルＥｘＳｔｍｌの各成分は、例えば上述した対象物の大きさ、対象物の種類、対象物までの距離などの認識情報を示すもので、外部刺激ベクトルＥｘＳｔｍｌが有する各成分に応じた内部状態値の算出に使用される。具体的には、内部状態ＩｎｔＶ_ＮＯＵＲＩＳＨＭＥＮＴ「栄養状態」には、例えば、外部刺激ベクトルＥｘＳｔｍｌ｛ＯＢＪＥＣＴ_ＩＤ「対象物の種類」，ＯＢＪＥＣＴ_ＳＩＺＥ「対象物の大きさ」｝が定義され、内部状態ＩｎｔＶ_ＦＡＴＩＧＵＥ「疲れ」には、例えば外部刺激ベクトルＥｘＳｔｍｌ｛ＯＢＪＥＣＴ_ＤＩＳＴＡＮＣＥ「対象物までの距離」｝が定義されている。
【００６９】
行動価値算出部１２０は、この内部状態ベクトルＩｎｔＶ及び外部刺激ベクトルＥｘＳｔｍｌを入力とし、行動価値ＡＬを算出する。具体的には、行動価値算出部１２０は、内部状態ベクトルＩｎｔＶから、該当する要素行動について、どれだけやりたいかを示すモチベーション・ベクトル（ＭｏｔｉｖａｔｉｏｎＶｅｃｔｏｒ）を求める第１の算出部ＭＶと、内部状態ベクトルＩｎｔＶ及び外部刺激ベクトルＥｘＳｔｍｌから、該当する要素行動をやれるか否か示すリリーシング・ベクトル（ＲｅｌｅａｓｉｎｇＶｅｃｔｏｒ）を求める第２の算出部ＲＶとを有備え、これら２つのベクトルから行動価値ＡＬを算出する。
【００７０】
Ｂ−２−１．モチベーション・ベクトルの算出
行動価値ＡＬを算出する一方の要素であるモチベーション・ベクトルは、要素行動に定義されている内部状態ベクトルＩｎｔＶから、その要素行動に対する欲求を示す欲求値ベクトルＩｎｓＶ（Ｉｎｓｔｉｎｃｔ Ｖａｒｉａｂｌｅ）として求められる。例えば、行動出力「食べる」を有する要素行動Ａは、内部状態ベクトルＩｎｔＶ｛ＩｎｔＶ_ＮＯＵＲＩＳＨＭＥＮＴ，ＩｎｔＶ_ＦＡＴＩＧＵＥ｝を備え、これより、欲求値ベクトルＩｎｓＶ｛ＩｎｓＶ_ＮＯＵＲＩＳＨＭＥＮＴ，ＩｎｓＶ_ＦＡＴＩＧＵＥ}をモチベーション・ベクトルとして求める。すなわち、欲求値ベクトルＩｎｓＶは、行動価値ＡＬを算出するためのモチベーション・ベクトルとなる。
【００７１】
欲求値ベクトルＩｎｓＶの計算方法としては、例えば内部状態ベクトルＩｎｔＶの値が大きいほど、欲求が満たされているものと判断され欲求値は小さくなり、内部状態ベクトルＩｎｔＶがある値より大きくなると欲求値は負になるような関数を用いることができる。
【００７２】
具体的には、以下の式（１）及び図６に示すような関数が挙げられる。図６には、横軸に内部状態ベクトルＩｎｔＶの各成分をとり、縦軸に欲求値ベクトルＩｎｓＶの各成分をとって、以下の式（１）で示される内部状態と欲求値との関係をグラフで示している。
【００７３】
【数１】
2004291228.tif 000003
【００７４】
欲求値ベクトルＩｎｓＶは、上記の式（１）及び図６に示すように、内部状態ベクトルＩｎｔＶの値のみで決まる。ここでは、内部状態の大きさを０乃至１００とし、そのときの欲求値の大きさが−１乃至１となるような関数を示している。例えば、内部状態が８割満たされているときに、欲求値が０となるような内部状態−欲求値曲線Ｌ１を設定することで、ロボット装置は、常に内部状態の満足度が８割の状態を維持するように行動を選択するようになる。これにより、例えば、内部状態「栄養状態」（ＩｎｔＶ_ＮＯＲＩＳＨＭＥＮＴ）に対応する欲求が「食欲」（ＩｎｓＶ_ＮＯＲＩＳＦＭＥＮＴ）である場合、お腹が減っていれば食欲が大きくなり、腹八分目以上では食欲がなくなることを示し、これを利用すればそのような情動を表出するような行動を発現させるようにすることができる。
【００７５】
上記の式（１）における定数Ａ乃至Ｆを種々変更することで、内部状態毎に異なる欲求値が求まる。例えば、内部状態が０乃至１００の間において、欲求値が１乃至０に変化するようにしてもよいし、また、内部状態毎に上記の式（１）とは異なる内部状態−欲求値関数を用意してもよい。
【００７６】
Ｂ−２−２．リリーシング・ベクトルの算出
一方、行動価値ＡＬを算出する他方の要素であるリリーシング・ベクトルは、内部状態ベクトルＩｎｔＶから求められる満足度ベクトルＳ（Ｓａｔｉｓｆａｃｔｉｏｎ）と、外部刺激ベクトルＥｘＳｔｍｌから求められる予想満足度変化ベクトルとから算出される。
【００７７】
先ず、各要素行動に定義されている内部状態と、この内部状態に定義されている外部刺激とから、行動発現後に得ることが予想される内部状態と現在の内部状態との差を示す予想内部状態変化量ベクトルを以下の式（２）により求める。
【００７８】
【数２】
2004291228.tif 000004
【００７９】
予想内部状態変化量ベクトルとは、現在の内部状態ベクトルからの、行動発現後に変化すると予想される変化量を示すもので、行動価値算出部１２０が参照可能な行動価値算出データベース１２１の行動価値算出データを参照して求めることができる。行動価値算出データは、外部刺激ベクトルと行動発現後に変化すると予想される予想内部状態変化量ベクトルとの対応が記述されたものであり、このデータベースを参照することで、行動価値算出部１２０は、入力された外部刺激ベクトルに応じた予想内部状態変化量ベクトルを取得することができる。
【００８０】
なお、行動価値算出データベース１２１の構成についての詳細は後述する。また、本実施形態に係るロボット装置の行動選択制御システム１００では、学習部１４０が、行動発現前に予想する予想内部状態変化を行動発現後に実際に変化した内部状態変化から学習し、行動価値算出データベースを更新する機能を有するが、この学習機能に関しての詳細も後述する。ここでは、先ず、行動価値算出データベースから予想内部状態変化、予想欲求値変化を求める方法について説明する。
【００８１】
行動価値算出データベースに登録される行動価値算出データとしては、例えば図７（ａ）及び図７（ｂ）に示すものが考えられる。
【００８２】
図７（ａ）に示す例では、内部状態「栄養状態」（「ＮＯＵＲＩＳＨＭＥＮＴ」）に関しては、その要素行動の行動出力である「食べる」を発現した結果、対象物の大きさ（ＯＢＪＥＣＴ_ＳＩＺＥ）が大きいほど、内部状態「栄養状態」が満たされる量が大きく、栄養を満たすであろうと予想される場合を示している。同様に、対象物の種類（ＯＢＪＥＣＴ_ＩＤ）がＯＢＪＥＣＴ_ＩＤ＝０に対応する対象物Ｍ１より、ＯＢＪＥＣＴ_ＩＤ＝１に対応する対象物Ｍ２が、また、ＯＢＪＥＣＴ_ＩＤ＝１に対応する対象物Ｍ２より、ＯＢＪＥＣＴ_ＩＤ＝２に対応する対象物Ｍ３の方が内部状態「栄養状態」が満たされる量が大きく、栄養を満たすであろうと予想される場合を示している。
【００８３】
また、図７（ｂ）に示す例では、内部状態「疲れ」（「ＦＡＴＩＧＵＥ」）に関しては、その要素行動の行動出力である「食べる」を発現した結果、対象物の距離「ＯＢＪＥＣＴ_ＤＩＳＴＡＮＣＥ」が大きいほど、内部状態「ＦＡＴＩＧＵＥ」が満たされる量が大きく、疲れるであろうと予想される場合を示している。
【００８４】
すなわち、上述したように、各行動要素に対して内部状態ベクトルＩｎｔＶ及び外部刺激ベクトルＥｘＳｔｍｌが定義されているので、外部刺激ベクトルＥｘＳｔｍｌの各成分として対象物の大きさ及び対象物の種類を有するベクトルが供給された場合には、この外部刺激ベクトルＥｘＳｔｍｌが定義されている内部状態ＩｎｔＶ_ＮＯＵＲＩＳＨＭＥＮＴ（「栄養状態」）を有する内部状態ベクトルが定義されている要素行動Ａの行動結果に対する予想内部状態変化が求められる。同様に、対象物の距離を有するベクトルが供給された場合、この外部刺激ベクトルＥｘＳｔｍｌが定義されている内部状態ＩｎｔＶ_ＦＡＴＩＧＵＥ（「疲れ」）を有する内部状態ベクトルが定義されている要素行動Ａの行動結果に対する予想内部状態変化が求められる。
【００８５】
次に、内部状態ベクトルＩｎｔＶから以下の式（３）に示す満足度ベクトルＳを算出し、上記の式（２）に示す予想内部状態変化量ベクトルから、以下の式（４）に示す予想満足度変化ベクトルを求める。
【００８６】
【数３】
2004291228.tif 000005
【００８７】
【数４】
2004291228.tif 000006
【００８８】
内部状態ベクトルＩｎｔＶに対する満足度ベクトルＳの計算法としては、要素行動Ａに定義されている内部状態ベクトル｛ＩｎｔＶ_ＮＯＵＲＩＳＨＭＥＮＴ，ＩｎｔＶ_ＦＡＴＩＧＵＥ｝の各成分ＩｎｔＶ_ＮＯＵＲＩＳＨＭＥＮＴ「栄養状態」及びＩｎｔＶ_ＦＡＴＩＧＵＥ「疲れ」に対して、それぞれ下記の式（５−１）及び（５−２）に示すような関数が考えられる。
【００８９】
【数５】
2004291228.tif 000007
【００９０】
図８及び図９は、上記の式（５−１）及び（５−２）に示す関数をそれぞれグラフで示している。図８では、横軸にＩｎｔＶ_ＮＯＵＲＩＳＨＭＥＮＴ「栄養状態」、縦軸に内部状態「栄養状態」に対する満足度Ｓ_ＮＯＵＲＩＳＨＭＥＮＴをとり、図９は、横軸にＩｎｔＶ_ＦＡＴＩＧＵＥ「疲れ」、縦軸に内部状態「疲れ」に対する満足度Ｓ_ＦＡＴＩＧＵＥをとって、内部状態と満足度との関係を示している。
【００９１】
図８に示す関数は、内部状態「栄養状態」の値ＩｎｔＶ_ＮＯＵＲＩＳＨＭＥＮＴが０乃至１００の値を有し、これに対応する満足度Ｓ_ＮＯＵＲＩＳＨＭＥＮＴが０乃至１ですべて正の値を有するものであって、内部状態の値が０から８０近傍までは満足度が０から増加し、それ以降は減少して内部状態の値が１００で再び満足度０になるような曲線Ｌ２を示している。すなわち、内部状態「栄養状態」に関しては、現在（ある時刻）の内部状態「栄養状態」の値（ＩｎｔＶ_ＮＯＵＲＩＳＨＭＥＮＴ＝４０）から計算される満足度Ｓ_ＮＯＵＲＩＳＨＭＥＮＴ、図７（ａ）によって得られる内部状態「栄養状態」の予想内部状態変化（４０から８０までの２０）に対応する予想満足度変化はともに正である。
【００９２】
また、上述の図５には関数Ｌ２のみを示しているが、図９に示すような関数を用いることもできる。すなわち、内部状態「疲れ」の値ＩｎｔＶ_ＦＡＴＩＧＵＥが０乃至１００の値を有し、これに対応する満足度Ｓ_ＦＡＴＩＧＵＥが０乃至−１ですべて負の値をするものであって、内部状態が大きくなるほど、満足度が小さくなるような曲線Ｌ３を示す関数である。現在の内部状態「疲れ」の内部状態の値から計算される満足度Ｓ_ＦＡＴＩＧＵＥは負であり、図７（ａ）によって得られる内部状態「疲れ」の予想内部状態変化が正であれば、予想満足度変化ベクトルは負になる。
【００９３】
上記の式（５−１）、（５−２）で示される関数において、各定数Ａ〜Ｆを可変に設定することで、さまざまな内部状態に対応して異なる満足度を得るための関数を設定することができる。
【００９４】
そして、以下の式（６）により、外部刺激に応じて行動発現後にどのくらい内部状態を満足させるかの値を決定することで、行動価値ＡＬを算出するための他方の要素であるリリーシング・ベクトルを求めることができる。
【００９５】
【数６】
2004291228.tif 000008
【００９６】
ここで、上記の式（６）におけるαが大きいと、リリーシング・ベクトルは行動を発現した結果、どれくらいの満足度が得られるかを示す予想満足度変化、すなわちどれくらい満足度が増えるかを示す値に強く依存し、αが小さいと、予想満足度、すなわち、行動を発現した結果、満足度がどのくらいになるかを示す値に強く依存するという傾向を有することになる。
【００９７】
Ｂ−２−３．行動価値ＡＬの算出
以上のようにして求められたモチベーション・ベクトルと、リリーシング・ベクトルとから、最終的に行動価値ＡＬが下記の式（７）のように算出される。
【００９８】
【数７】
2004291228.tif 000009
【００９９】
ここで、βが大きいと、行動価値ＡＬは内部状態（欲求値）に強く依存し、βが小さいと外部刺激（予想満足度変化及び予想満足度）に強く依存する傾向を有する。このようにして、内部状態の値（内部状態ベクトルＩｎｔＶ）と外部刺激の値（外部刺激ベクトルＥｘＳｔｍｌ）とから欲求値、満足度、予想満足度を計算し、これら欲求値、満足度、予想満足度に基づいて行動価値ＡＬを算出することができる。
【０１００】
そして、この行動価値ＡＬに基づいて、行動選択部１３０が行動を選択することにより、例えば同じ外部刺激が入力された場合であっても、そのときの内部状態の値によって異なる行動が選択される。
【０１０１】
Ｂ−２−４．行動価値算出データベース
次に、行動価値算出データベース１２１の行動価値算出データの構造及び、データベースの参照方法（予想内部状態変化の求め方）について説明する。
【０１０２】
上述したように、行動価値算出データは、入力された外部刺激に対して予想内部状態変化量ベクトルを求めるためのデータであり、各要素行動に定義された内部状態に対して、外部刺激ベクトル空間上に代表点（外部刺激の値）が定義されているとともに、その代表点上に予想される内部状態の変化量を示す予想内部状態変化が定義されている。そして、入力された外部刺激が、定義された外部刺激ベクトル空間の代表点上の値であった場合、予想内部状態変化はその代表点上に定義された値となる。
【０１０３】
図１０（ａ）及び図１０（ｂ）は、行動価値算出データ構造の一例を示している。
【０１０４】
図１０（ａ）に示すように、内部状態「栄養状態」（「ＮＯＵＲＩＳＨＭＥＮＴ」）の予想内部状態変化を求める場合、外部刺激ベクトル空間上の代表点｛ＯＢＪＥＣＴ_ＩＤ，ＯＢＪＥＣＴ_ＳＩＺＥ｝及びこの代表点に対応する予想内部状態変化を例えば以下の表１のように定義しておく。
【０１０５】
【表１】
2004291228.tif 000010
【０１０６】
また、図１０（ｂ）に示すように、内部状態「疲れ」（「ＦＡＴＩＧＵＥ」）の予想内部状態変化量ベクトルを求める場合、外部刺激ベクトル空間上の代表点｛ＯＢＪＥＣＴ_ＤＩＳＴＡＮＣＥ｝及びこの代表点に対応する予想内部状態変化を例えば以下の表２のように定義しておく。
【０１０７】
【表２】
2004291228.tif 000011
【０１０８】
このように、予想内部状態変化は、外部刺激ベクトル空間上の代表点にのみ定義されているため、外部刺激の種類（例えば、ＯＢＪＥＣＴ_ＤＩＳＴＡＮＣＥやＯＢＪＥＣＴ_ＳＩＺＥなど）によっては、定義された外部刺激ベクトル空間の代表点以外の値が入力されることが考えられる。その場合、予想内部状態変化は、入力された外部刺激の近傍の代表点から線形補間により求めることができる。
【０１０９】
図１１及び図１２には、１次元及び２次元の外部刺激の線形補間方法についてそれぞれ図解している。
【０１１０】
上述の図１０（ｂ）に示すように１つの外部刺激（ＯＢＪＥＣＴ_ＤＩＳＴＡＮＣＥ）から予想内部状態変化を求める場合、すなわち、内部状態に対し１つの外部刺激が定義されている場合には、図１１に示すように、横軸に外部刺激をとり、縦軸にこの外部刺激に対する予想内部状態変化をとって、外部刺激（ＯＢＪＥＣＴ_ＤＩＳＴＡＮＣＥ）のパラメータである代表点Ｄ１及び代表点Ｄ２に定義された予想内部状態変化となるような直線Ｌ４により、入力される外部刺激Ｄｎの予想内部状態変化量Ｉｎを求めることができる。
【０１１１】
また、図１２に示すように、内部状態に対して入力となる外部刺激が２つの成分から外部刺激ベクトルが定義されている場合、例えば内部状態に対しＯＢＪＥＣＴ_ＤＩＳＴＡＮＣＥに加え、さらにＯＢＪＥＣＴ_ＷＥＩＧＨＴという外部刺激が定義されている場合、各外部刺激の所定のパラメータである代表点（Ｄ１，Ｗ１）、（Ｄ１，Ｗ２）、（Ｄ２，Ｗ１）、（Ｄ２，Ｗ２）が定義され、これに対応する予想内部状態変化を有している場合において、上記の代表点とは異なる外部刺激Ｅｎｍ（Ｄｎ，Ｗｎ）が入力された場合、例えば先ず、ＯＢＪＥＣＴ_ＤＩＳＴＡＮＣＥ＝Ｄ１において、ＯＢＪＥＣＴ_ＷＥＩＧＨＴの代表点Ｗ１並びにＷ２に定義された予想内部状態変化を通る直線Ｌ５を求め、同じく、ＯＢＪＥＣＴ_ＤＩＳＴＡＮＣＥ＝Ｄ２において、ＯＢＪＥＣＴ_ＷＥＩＧＨＴの代表点Ｗ１並びにＷ２に定義された予想内部状態変化を通る直線Ｌ６を求める。そして、入力される外部刺激Ｅｎｍの２つの入力のうち、例えばＷｎに対応する２つの直線Ｌ５及びＬ６における予想内部状態変化を求め、さらにこの２つの予想内部状態変化を結んだ直線Ｌ７を求め、この直線Ｌ７において入力される外部刺激Ｅｎｍの他方の外部刺激Ｄｎに対応する予想内部状態変化量Ｉｎｍを求めることで、外部刺激Ｅｎｍに対応した予想内部状態変化を線形補間により求めることができる。
【０１１２】
このように、行動価値算出データベースにはないデータが入力された場合は、線形モデルを使用し線形補間を行って予想内部状態変化を算出することができ、各外部刺激が有するすべての値に対応する予想内部状態変化を持つ必要がなくデータ量を低減することができる。
【０１１３】
本実施形態に係る行動価値算出データベースは、図１０に示したように、各行動記述モジュールに記述された行動と、外部刺激としての対象物が持つプロパティと、内部状態の組からなるデータ形式により、行動価値算出データを記憶している。
【０１１４】
この場合、各行動記述モジュール（スキーマ）に記述された行動をインデックスとして行動価値算出データベース１２１を検索し、外部刺激としての対象物が持つプロパティから内部状態を決定することができる。
【０１１５】
また、行動価値算出データベース１２１の他の利用方法として、外部刺激としての対象物が持つあるプロパティをインデックスとして行動価値算出データベース１２１を検索し、内部状態を決定するようにしてもよい。この場合、行動又は外部刺激としての対象物が持つその他の特性をプロパティに値に設定し又は平均化し、対象物に抽象的な価値を与えることができる。この場合の行動価値算出データベース１２１の利用方法について、図２９を参照しながら説明する。
【０１１６】
各要素行動の行動価値データベースから、ある要素行動が注目する対象物のプロパティにおいて、その対象物のプロパティに対する行動に依存しない抽象的な内部状態変化を算出する。例えば、要素行動「震える」の注目する対象物のプロパティを「色」、内部状態を「ＰＡＩＮ」とする。そのとき、その他の要素行動（食べる、蹴る、話す…）で対象物のプロパティ「色」、内部状態「ＰＡＩＮ」に注目しているものの行動価値データベースを用い、色から予想内部状態変化を算出する。
【０１１７】
その際の算出方法としては、ＣＯＬＯＲに対するｄＩｎｔＶ_ＰＡＩＮの平均値ΣｄＩｎｔＶ_ＰＡＩＮ（ＣＯＬＯＲ）／ｎとする。ある要素行動の行動価値データベースにおいてｄＩｎｔＶ_ＰＡＩＮがＣＯＬＯＲに対して一意に決定しない場合、例えば、ｄＩｎｔＶ_ＰＡＩＮ（ＣＯＬＯＲ， ＯＢＪＥＣＴ_ＩＤ， ＤＩＳＴＡＮＣＥ）などのような場合、ＯＢＪＥＣＴ_ＩＤは代表値、ＤＩＳＴＡＮＣＥは平均値を用いる。そして、内部状態の値ＩｎｔＶとその予想変化量ｄＩｎｔＶから行動価値ＡＬを算出する。
【０１１８】
このような行動価値ＡＬの算出を行なう結果、「赤いボールを蹴ると痛くなる」、「赤い人に話しかけると痛くなる」といった行動価値データベースを持っている場合には、赤い色を見ただけで「ＰＡＩＮが想起され震える」といったことが実現され、行動の種類に依らない対象物のプロパティの抽象的な価値（内部状態変化）を決定することができる。
【０１１９】
Ｂ−２−５．行動選択
従来の行動規範型ロボットの行動選択方法は、ヒューリスティックな方法により活性度を決定し、その活性どの最大値を与える行動モジュールを選択し、行動の発現を行なうものが主流である。しかし、この活性度の計算方法が人手によるものであり、且つこの計算を以下にうまく設定するかによって、自立型ロボットの行動が適切なものになったり、不適切なものになったりする。
【０１２０】
これに対し、本実施形態では、内部状態の変化を外部刺激から連想することで、適切な行動選択を新しい外部刺激に対して行なう、という行動規範型システムを構成している。さらに、連想した内部状態の変化を各行動モジュールにおいて記憶し、これを快不快すなわち内部状態に基づく満足度の評価を用いて行動価値ＡＬとして数値化し、それを強化学習の価値関数とみなして、最大値選択あるいはＳｏｆｔＭａｘ選択による強化学習のフレームワークで適切な行動選択がなされることを実現する。
【０１２１】
本実施形態では、各要素行動が自身の行動価値算出部１２０により、行動価値ＡＬの算出を行なう。
【０１２２】
上述したように、行動価値算出データベース１２１では、外部刺激ＥＳが入力されたことに応答してそれぞれの要素行動Ｂiを実行したときの予想内部状態変化量ΔＩ（ＥＳ，Ｂi）を外部刺激ＥＳと関連付けて記憶している。そして、要素行動Ｂiによって、予想内部状態変化量ΔＩに基づく内部状態Ｉ（ΔＩ）が想起され、そのときの満足度ｐを内部状態から評価することができる（すなわち、ｐ＝ｆ（Ｉ＋ΔＩ））。ここで、満足度は、価値関数、あるいは要素行動Ｂiに対する報酬若しくは期待値と捉えることができ、本明細書では行動価値ＡＬとして取り扱っている。
【０１２３】
このようにして、候補となるすべての要素行動Ｂiについて行動価値ＡＬを算出し、行動選択部１３０では、算出された行動価値ＡＬに基づいて、候補なる要素行動の中から発現すべきものを選択する。例えば同じ外部刺激が入力された場合であっても、そのときの内部状態の値によって異なる行動が選択される。
【０１２４】
行動選択部１３０により例えばｋ番目の要素行動Ｂkが選択され、実際に発現される。このとき、システムでは、要素行動Ｂkを実際に発現し手得られる現実の内部状態の変化量ΔＩを得ることができるが、この実測値に基づいて、行動価値算出データベース１２１内における該当する予想内部状態変化量ΔＩを更新、すなわち学習することができる。この行動価値算出データベースの学習作用により、すべての行動について適当な行動価値を算出する関数を設定することが可能となる。
【０１２５】
行動価値算出データベースの学習については後述に譲る。この項では、行動選択部１３０による選択方法について説明する。
【０１２６】
算出された行動価値ＡＬに基づいて行動選択部１３０が各要素行動を選択する。その行動選択のポリシーとして、本発明者らは例えば以下のものを考えている。
【０１２７】
（１）Ｇｒｅｅｄｙ
行動選択部は候補である要素行動のうち行動価値が最大の要素行動を常に選択する。
【０１２８】
（２）Ｒａｎｄｏｍ
行動選択部１３０は、行動価値によらず無作為に要素行動を選択する。この結果行動選択が探索的になり、行動価値算出データベース１２１を更新する可能性が大きくなる。
【０１２９】
（３）ＳｏｆｔＭａｘ
行動選択部１３０は、算出された行動価値ＡＬに応じた確率に従って、候補である行動の中から選択する。具体的には、候補である要素行動のうち、行動価値が大きい要素行動をより大きい確率で選択する。例えば、要素行動ｉの行動価値をＡＬiとしたとき、その選択確率Ｐ（ｉ）は以下の式により計算される。
【０１３０】
【数８】
2004291228.tif 000012
【０１３１】
但し、上式において、Ｔはボルツマン温度と呼ばれるパラメータであり、ＳｏｆｔＭａｘによる選択方法の特性を調節することができる。すなわち、上式は、上記のＧｒｅｅｄｙに対しＲａｎｄｏｍ性を与えた形であり、ボルツマン温度Ｔはランダム性の尺度となる。Ｔが十分小さいとき行動選択ポリシーはＧｒｅｅｄｙになり、十分大きいときＲａｎｄｏｍとなる（図３０を参照のこと）。
【０１３２】
但し、上記（１）〜（３）において、対象物が存在しないと成立しない要素行動（例えば、サッカーボールに対するシュート）は行動選択部の選択肢から除外する。
【０１３３】
Ｂ−３．行動価値算出データベースの学習
次に、このような行動価値算出データの予想内部状態変化量ベクトルを、行動発現後の内部状態変化ベクトルから学習する学習方法について説明する。
【０１３４】
上述したように、本実施形態に係るロボット装置は学習機能を有するため、行動価値算出データベースがユーザとのインタラクションや、外部環境に応じて随時更新される。したがって、ロボット装置の学習結果によっては、同じ外部刺激を受けても異なる行動を発現するなどユーザを飽きさせない行動生成が実現される。
【０１３５】
このような行動価値算出データの学習を行なうためには教師信号が必要である。本実施形態では、行動を発現した結果から得られる実際の内部状態変化を教師信号として、外部刺激に対応する予想内部状態変化を学習する。そこで、前述の図４に示したように、行動選択制御システム１００は、行動価値算出部１２０に接続された学習部１４０を備えている。
【０１３６】
図１３には、外部刺激が入力されてから行動価値算出データベースの学習を行なうまでの流れを示している。図５を参照しながら説明したように、行動選択部１３０は、行動価値算出データベース１２１を参照して、予想した予測内部状態変化ベクトルを生徒信号とし、行動価値ＡＬを算出し、この値に基づき、例えば行動価値ＡＬが最も大きい要素行動を選択する。選択された要素行動は、行動を出力し、ロボット装置は行動を発現する。
【０１３７】
ロボット装置が実際に行動を発現した結果、図４に示す内部状態管理部９１は、自身の内部状態を変化させる。すなわち、例えば行動発現後の時間経過に応じて内部状態を変更したり、行動の結果に応じて内部状態を変更したりする。具体的には、例えば、上述したように、内部状態「栄養状態」はバッテリの残量を基に決定され、内部状態「疲れ」は消費電力を基に決定されるものとすると、行動を発現した結果、バッテリの残量が減少することで内部状態「栄養状態」も減少し、また、行動を発現することにより消費された消費電力量の大きさに比例して内部状態「疲れ」が増大する。
【０１３８】
こうして実際に行動を発現した結果、ロボット装置の内部状態が変化し、実際の行動発現前後の内部状態の変化量を求めることができる。そして、図１３に示すように、行動発現後に得られた内部状態変化ベクトルｄＩｎｔＶが教師信号となり、学習部１４０にて行動発現前に予想される予想内部状態変化量ベクトルの学習が行なわれ、行動価値算出データベース１２１が学習に応じて更新される。
【０１３９】
ここで入力された外部刺激が代表点上の値であるか否かで学習方法が異なる。先ず、ある選択された要素行動において、行動価値を算出するにあたって必要とした外部刺激が、代表点上の値であった場合、下記式（８）によって実際の内部状態変化量を基に代表点上の予想内部状態変化を更新する。
【０１４０】
【数９】
2004291228.tif 000013
【０１４１】
また、ある選択された要素行動において、行動価値を算出するに際して必要とした外部刺激が代表点以外の値の場合、外部刺激近傍の代表点、すなわち線形補間に使用した代表点における予想内部状態変化が学習対象となる。各外部刺激について、外部刺激と代表点までの距離の比が上記式（８）に乗じられ、予想内部状態変化を更新する。
【０１４２】
図１４及び図１５には、１次元及び２次元外部刺激の予想内部状態変化の更新例をそれぞれ示している。図１４に示すように、外部刺激Ｄｎが入力され、外部刺激Ｄｎが代表点上にない場合は、上述したように、外部刺激Ｄｎ近傍の代表点Ｄ１，Ｄ２を使用して線形補間されることで行動発現前の予想内部状態変化Ｉｎが求められる。そして、行動発現後に、実際の内部状態変化量（ｄＩｎｔＶ_Ｆａｔｉｇｕｒｅ）が求められ、代表点Ｄ１，Ｄ２と外部刺激Ｄｎとの間の距離と学習率γとから、代表点Ｄ１，Ｄ２における予想内部状態変化の学習が行われ、下記式（９−１）及び（９−２）に従って夫々代表点Ｄ１及びＤ２の予想内部状態変化が更新される。
【０１４３】
【数１０】
2004291228.tif 000014
【０１４４】
また、２つの外部刺激が入力される場合には、図１５に示したように、線形補間により行動発現前の外部刺激Ｅｎｍ（Ｄｎ，Ｗｎ）に対応する予想内部状態変化量Ｉｎｍを求める際に使用した、入力される外部刺激近傍の代表点（Ｄ１，Ｗ１）（Ｄ１，Ｗ２）、（Ｄ２，Ｗ１）、（Ｄ２，Ｗ２）に対応する予想内部状態変化が、以下の式（１０−１）乃至（１０−４）により学習され更新される。すなわち、行動発現後に求められる実際の内部状態変化ベクトル、代表点と外部刺激との距離及び学習率γにより、学習が行なわれ、各代表点に対応する予想内部状態変化が更新される。
【０１４５】
【数１１】
2004291228.tif 000015
【０１４６】
Ｂ−４．行動価値算出方法及び行動価値算出データベースの学習方法
次に、図５に示した行動価値算出部１２０における行動価値算出方法、及び図１３に示した学習部１４０により発現された行動に応じて行動価値算出データベースを更新する方法について、図１６及び図１７に示すフローチャートを参照しながら説明する。
【０１４７】
図１６に示すように、先ず、図４に示す外部刺激認識部８０により外部刺激が認識されると、これが行動価値算出部１２０に供給される。この際、例えば外部刺激認識部８０からの通知により、内部状態管理部９１から各内部状態が供給されるようになされている（ステップＳ１）。
【０１４８】
次に、上述したように、供給された各内部状態から、例えば上記の式（１）などの関数を使用して対応する欲求値を算出することで、内部状態ベクトルＩｎｔＶからモチベーション・ベクトルとなる欲求値ベクトルを算出する（ステップＳ２）。
【０１４９】
また、行動価値算出部１２０は、供給された各内部状態から上記の式（５−１）、（５−２）などの関数を使用して対応する満足度を算出することで、内部状態ベクトルＩｎｔＶから、満足度ベクトルＳを算出する（ステップＳ３）。
【０１５０】
一方、供給された外部刺激（外部刺激ベクトル）から、上述したように、行動を発現した結果、得られると予想される予想内部状態変化を求める（ステップＳ４）。そして、ステップＳ３と同様の関数を用いて、この予想内部状態変化に対応する予想満足度変化を求め（ステップＳ５）、得られた予想満足度変化と、ステップＳ３で求めた満足度ベクトルとから上記式（６）により、リリーシング・ベクトルを算出する（ステップＳ６）。
【０１５１】
最後に、ステップＳ２にて求めたモチベーション・ベクトルと、ステップＳ６にて、求めたリリーシング・ベクトルとから、上記の式（７）より行動価値ＡＬを算出する（ステップＳ７）。
【０１５２】
なお、上記のステップＳ１乃至ステップＳ７では、外部刺激を認識する毎に行動価値算出部１２０において行動価値ＡＬの算出を行なうものとして説明したが、例えば所定のタイミングで行動価値を算出するようにしてもよい。
【０１５３】
その後、ステップＳ７にて算出された行動価値ＡＬに基づいて、図１７に示すように、行動選択部１３０がすべての要素行動に対する行動価値算出結果をモニタし、例えば最も行動価値ＡＬが高い要素行動を選択することで、当該要素行動から行動が出力される（ステップＳ８）。要素行動の選択には、上述したように、Ｇｒｅｅｄｙの他に、Ｒａｎｄｏｍ、ＳｏｆｔＭａｘといった手法を採り入れることができる。
【０１５４】
ロボット装置は、行動を発現することによって例えばバッテリの残量が変化し、これに基づき算出される内部状態が行動前に比べて変化する。また、行動を発現した際に使用された消費電力などに基づいて算出される内部状態が行動発現前に比べて変化する。図４に示した内部状態管理部９１は、このような行動前後の内部状態の変化を算出し、学習部１４０に供給する（ステップＳ９）。学習部１４０は、上述したように、行動前後の内部状態の実際の変化と、行動価値算出データベースに保存されている予想内部状態変化とから、上記の式（９−１）、（９−２）又は（１０−１）乃至（１０−４）により、新しく予想内部状態変化を算出し、行動価値算出データベースを更新する（ステップＳ１０）。
【０１５５】
Ｃ．ロボット装置の制御システム
この項では、行動価値ＡＬを算出して行動を出力する処理を行なう行動選択制御システムをロボット装置の制御システムに適用した具体例について詳細に説明する。
【０１５６】
図１８には、上述の行動選択制御システム１００を含む制御システム１０の機能構成を模式的に示している。図示のロボット装置１は、上述したように、外部刺激の認識結果や内部状態の変化に応じて、行動制御を行なうことができるものである。さらには、長期記憶機能を備え、外部刺激から内部状態の変化を連想記憶することにより、外部刺激の認識結果や内部状態の変化に応じて行動制御を行なうことができる。
【０１５７】
すなわち、上述したように、例えば、カメラ１５から入力された画像に対して処理された色情報、形情報、顔情報等であり、より具体的には、色、形、顔、３Ｄ一般物体、ハンドジェスチャー、動き、音声、接触、匂い、味等の構成要素からなる外部刺激と、ロボット装置の身体に基づいた本能や感情等の情動を指す内部状態とに応じて行動価値ＡＬを算出し、行動を選択（生成）し、発現する。
【０１５８】
内部状態の本能的要素は、例えば、疲れ（ｆａｔｉｇｕｅ）、熱あるいは体内温度（ｔｅｍｐｅｒａｔｕｒｅ）、痛み（ｐａｉｎ）、食欲あるいは飢え（ｈｕｎｇｅｒ）、乾き（ｔｈｉｒｓｔ）、愛情（ａｆｆｅｃｔｉｏｎ）、好奇心（ｃｕｒｉｏｓｉｔｙ）、排泄（ｅｌｉｍｉｎａｔｉｏｎ）又は性欲（ｓｅｘｕａｌ）のうちの少なくとも１つである。また、情動的要素は、幸せ（ｈａｐｐｉｎｅｓｓ）、悲しみ（ｓａｄｎｅｓｓ）、怒り（ａｎｇｅｒ）、驚き（ｓｕｒｐｒｉｓｅ）、嫌悪（ｄｉｓｇｕｓｔ）、恐れ（ｆｅａｒ）、苛立ち（ｆｒｕｓｔｒａｔｉｏｎ）、退屈（ｂｏｒｅｄｏｍ）、睡眠（ｓｏｍｎｏｌｅｎｃｅ）、社交性（ｇｒｅｇａｒｉｏｕｓｎｅｓｓ）、根気（ｐａｔｉｅｎｃｅ）、緊張（ｔｅｎｓｅ）、リラックス（ｒｅｌａｘｅｄ）、警戒（ａｌｅｒｔｎｅｓｓ）、罪（ｇｕｉｌｔ）、悪意（ｓｐｉｔｅ）、誠実さ（ｌｏｙａｌｔｙ）、服従性（ｓｕｂｍｉｓｓｉｏｎ）又は嫉妬（ｊｅａｌｏｕｓｙ）などが挙げられる。
【０１５９】
図示の制御システム１０には、オブジェクト指向プログラミングを採り入れて実装することができる。この場合、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとＩｎｖｏｋｅを行なうことができる。
【０１６０】
本実施形態に係る行動制御システム１０は、外部環境（Ｅｎｖｉｒｏｎｍｅｎｔｓ）７０を認識するために、視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３などからなる機能モジュールである上述の図４に示す外部刺激認識部８０を備えている。
【０１６１】
視覚認識機能部（Ｖｉｄｅｏ）８１は、例えば、ＣＣＤカメラのような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識等の画像認識処理や特徴抽出を行なう。
【０１６２】
聴覚認識機能部（Ａｕｄｉｏ）８２は、マイク等の音声入力装置を介して入力される音声データを音声認識して、特徴抽出したり、単語セット（テキスト）認識を行なったりする。
【０１６３】
接触認識機能部（Ｔａｃｔｉｌｅ）８３は、例えば機体の頭部等に内蔵された接触センサによるセンサ信号を認識して、「なでられた」とか「叩かれた」という外部刺激を認識する。
【０１６４】
内部状態管理部（ＩＳＭ：Ｉｎｔｅｒｎａｌ Ｓｔａｔｕｓ Ｍａｎａｇｅｒ）９１は、本能や感情といった数種類の情動を数式モデル化して管理する感情・本能モデルを有しており、上述の視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３によって認識された外部刺激（ＥＳ：ＥｘｔｅｒｎａｌＳｔｉｍｕｌａ）に応じてロボット装置１の本能や情動といった内部状態を管理する。
【０１６５】
この感情・本能モデルは、それぞれ認識結果と行動履歴を入力に持ち、夫々感情値と本能値を管理している。行動モデルは、これら感情値や本能値を参照することができる。
【０１６６】
また、外部刺激の認識結果や内部状態の変化に応じて行動制御を行なうために、時間の経過とともに失われる短期的な記憶を行なう短期記憶部（ＳＴＭ：Ｓｈｏｒｔ Ｔｅｒｍ Ｍｅｍｏｒｙ）９２と、情報を比較的長期間保持するための長期記憶部（ＬＴＭ：Ｌｏｎｇ Ｔｅｒｍ Ｍｅｍｏｒｙ）９３を備えている。短期記憶と長期記憶という記憶メカニズムの分類は神経心理学に依拠する。
【０１６７】
短期記憶部９２は、上述の視覚認識機能部８１、聴覚認識機能部８２及び接触認識機能部８３によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。例えば、図２に示すカメラ１５からの入力画像を約１５秒程度の短い期間だけ記憶する。
【０１６８】
長期記憶部９３は、物の名前等学習により得られた情報を長期間保持するために使用される。長期記憶部９３は、例えば、ある行動記述モジュールにおいて外部刺激から内部状態の変化を連想記憶することができる。
【０１６９】
また、本ロボット装置１の行動制御は、反射行動部（Ｒｅｆｌｅｘｉｖｅ Ｓｉｔｕａｔｅｄ Ｂｅｈａｖｉｏｒｓ Ｌａｙｅｒ）１０３によって実現される「反射行動」と、状況依存行動階層（ＳＢＬ：Ｓｉｔｕａｔｅｄ Ｂｅｈａｖｉｏｒｓ Ｌａｙｅｒ）１０２によって実現される「状況依存行動」と、熟考行動階層（Ｄｅｌｉｂｅｒａｔｉｖｅ Ｌａｙｅｒ）１０１によって実現される「熟考行動」に大別される。
【０１７０】
反射行動部１０３は、上述の視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。反射行動とは、基本的に、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動を直接決定する行動のことである。例えば、人間の顔を追いかけたり、うなずいたりといった振る舞いは反射行動として実装することが好ましい。
【０１７１】
状況依存行動階層１０２は、短期記憶部９２及び長期記憶部９３の記憶内容や、内部状態管理部９１によって管理される内部状態を基に、ロボット装置１が現在置かれている状況に即応した行動を制御する。
【０１７２】
この状況依存行動階層１０２は、各行動（要素行動）毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。また、状況依存行動階層１０２は、内部状態をある範囲に保つための行動（「ホメオスタシス行動」とも呼ぶ）も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出現し易くなるようにその行動を活性化させる（実際には、内部状態と外部環境の両方を考慮した形で行動が選択される）。状況依存行動は、反射行動に比し、反応時間が遅い。この状況依存行動階層１０２が上述した図４に示す行動選択制御システム１００における要素行動１３１、行動価値算出部１２０、行動選択部１３０に相当し、上述した如く、内部状態と外部刺激とから行動価値ＡＬを算出し、これに基づき行動出力を行なう。
【０１７３】
熟考行動階層１０１は、短期記憶部９２及び長期記憶部９３の記憶内容に基づいて、ロボット装置１の比較的長期にわたる行動計画等を行なう。熟考行動とは、与えられた状況あるいは人間からの命令により、推論やそれを実現するための計画を立てて行なわれる行動のことである。例えば、ロボット装置の位置と目標の位置から経路を探索することは熟考行動に相当する。このような推論や計画は、ロボット装置１がインタラクションを保つための反応時間よりも処理時間や計算負荷を要する（すなわち処理時間がかかる）可能性があるので、上記の反射行動や状況依存行動がリアルタイムで反応を返しながら、熟考行動は推論や計画を行なう。
【０１７４】
熟考行動階層１０１、状況依存行動階層１０２、及び反射行動部１０３は、ロボット装置１のハードウェア構成に非依存の上位のアプリケーション・プログラムとして記述することができる。これに対し、ハードウェア依存層制御部（Ｃｏｎｆｉｇｕｒａｔｉｏｎ Ｄｅｐｅｎｄｅｎｔ Ａｃｔｉｏｎｓ Ａｎｄ Ｒｅａｃｔｉｏｎｓ）１０４は、これら上位アプリケーション、即ち、行動記述モジュール（スキーマ）からの命令に応じて、関節アクチュエータの駆動等の機体のハードウェア（外部環境）を直接操作する。このような構成により、ロボット装置１は、制御プログラムに基づいて自己及び周囲の状況を判断し、使用者からの指示及び働きかけに応じて自律的に行動できる。
【０１７５】
次に、行動制御システム１０について更に詳細に説明する。図１９は、本具体例における行動制御システム１０のオブジェクト構成を示す模式図である。同図に示すように、視覚認識機能部８１は、Ｆａｃｅ Ｄｅｔｅｃｔｏｒ１１４、Ｍｕｌｉｔ Ｃｏｌｏｒ Ｔｒａｃｋｅｒ１１３、Ｆａｃｅ Ｉｄｅｎｔｉｆｙ１１５という３つのオブジェクトで構成される。
【０１７６】
Ｆａｃｅ Ｄｅｔｅｃｔｏｒ１１４は、画像フレーム中から顔領域を検出するオブジェクトであり、検出結果をＦａｃｅ Ｉｄｅｎｔｉｆｙ１１５に出力する。Ｍｕｌｉｔ Ｃｏｌｏｒ Ｔｒａｃｋｅｒ１１３は、色認識を行なうオブジェクトであり、認識結果をＦａｃｅ Ｉｄｅｎｔｉｆｙ１１５及びＳｈｏｒｔ Ｔｅｒｍ Ｍｅｍｏｒｙ（ＳＴＭ）９２に出力する。また、Ｆａｃｅ Ｉｄｅｎｔｉｆｙ１１５は、検出された顔画像を手持ちの人物辞書で検索する等して人物の識別を行ない、顔画像領域の位置、大きさ情報とともに人物のＩＤ情報をＳＴＭ９２に出力する。
【０１７７】
聴覚認識機能部８２は、Ａｕｄｉｏ Ｒｅｃｏｇ１１１とＳｐｅｅｃｈ Ｒｅｃｏｇ１１２という２つのオブジェクトで構成される。Ａｕｄｉｏ Ｒｅｃｏｇ１１１は、マイクなどの音声入力装置からの音声データを受け取って、特徴抽出と音声区間検出を行なうオブジェクトであり、音声区間の音声データの特徴量及び音源方向をＳｐｅｅｃｈ Ｒｅｃｏｇ１１２やＳＴＭ９２に出力する。Ｓｐｅｅｃｈ Ｒｅｃｏｇ１１２は、Ａｕｄｉｏ Ｒｅｃｏｇ１１１から受け取った音声特徴量と音声辞書及び構文辞書を使って音声認識を行なうオブジェクトであり、認識された単語のセットをＳＴＭ９２に出力する。
【０１７８】
触覚認識記憶部８３は、接触センサからのセンサ入力を認識するＴａｃｔｉｌｅ Ｓｅｎｓｏｒ１１９というオブジェクトで構成され、認識結果はＳＴＭ９２や内部状態を管理するオブジェクトであるＩｎｔｅｒｎａｌ Ｓｔａｔｅ Ｍｏｄｅｌ（ＩＳＭ）９１に出力する。
【０１７９】
ＳＴＭ９２は、短期記憶部を構成するオブジェクトであり、上述の認識系の各オブジェクトによって外部環境から認識されたターゲットやイベントを短期間保持（例えばカメラ１５からの入力画像を約１５秒程度の短い期間だけ記憶する）する機能モジュールであり、ＳＴＭクライアントであるＳＢＬ１０２に対して外部刺激の通知（Ｎｏｔｉｆｙ）を定期的に行なう。
【０１８０】
ＬＴＭ９３は、長期記憶部を構成するオブジェクトであり、物の名前等学習により得られた情報を長期間保持するために使用される。ＬＴＭ９３は、例えば、ある行動記述モジュール（スキーマ）において外部刺激から内部状態の変化を連想記憶することができる。
【０１８１】
ＩＳＭ９１は、内部状態管理部を構成するオブジェクトであり、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の認識系の各オブジェクトによって認識された外部刺激（ＥＳ：Ｅｘｔｅｒｎａｌ Ｓｔｉｍｕｌａ）に応じてロボット装置１の本能や情動といった内部状態を管理する。
【０１８２】
ＳＢＬ１０２は状況依存型行動階層を構成するオブジェクトである。ＳＢＬ１０２は、ＳＴＭ９２のクライアント（ＳＴＭクライアント）となるオブジェクトであり、ＳＴＭ９２からは定期的に外部刺激（ターゲットやイベント）に関する情報の通知（Ｎｏｔｉｆｙ）を受け取ると、スキーマ（Ｓｃｈｅｍａ）すなわち実行すべき行動記述モジュールを決定する（後述）。
【０１８３】
ＲｅｆｌｅｘｉｖｅＳＢＬ１０３は、反射的行動部を構成するオブジェクトであり、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する。例えば、人間の顔を追いかけたり、うなずく、障害物の検出により咄嗟に避けたりといった振る舞いを行なう。
【０１８４】
ＳＢＬ１０２は外部刺激や内部状態の変化等の状況に応じた動作を選択する。これに対し、ＲｅｆｌｅｘｉｖｅＳＢＬ１０３は、外部刺激に応じて反射的な動作を選択する。これら２つのオブジェクトによる行動選択は独立して行なわれるため、互いに選択された行動記述モジュール（スキーマ）を機体上で実行する場合に、ロボット装置１のハードウェア・リソースが競合して実現不可能なこともある。ＲＭ（Ｒｅｓｏｕｒｃｅ Ｍａｎａｇｅｒ）１１６というオブジェクトは、ＳＢＬ１０２とＲｅｆｌｅｘｉｖｅＳＢＬ１０３とによる行動選択時のハードウェアの競合を調停する。そして、調停結果に基づいて機体動作を実現する各オブジェクトに通知することにより機体が駆動する。
【０１８５】
Ｓｏｕｎｄ Ｐｅｒｆｏｒｍｅｒ１７２、Ｍｏｔｉｏｎ Ｃｏｎｔｒｏｌｌｅｒ１７３、ＬＥＤＣｏｎｔｒｏｌｌｅｒ１７４は、機体動作を実現するオブジェクトである。Ｓｏｕｎｄ Ｐｅｒｆｏｒｍｅｒ１７２は、音声出力を行なうためのオブジェクトであり、ＲＭ１１６経由でＳＢＬ１０２から与えられたテキスト・コマンドに応じて音声合成を行ない、ロボット装置１の機体上のスピーカから音声出力を行なう。また、Ｍｏｔｉｏｎ Ｃｏｎｔｒｏｌｌｅｒ１７３は、機体上の各関節アクチュエータの動作を行なうためのオブジェクトであり、ＲＭ１１６経由でＳＢＬ１０２から手や脚等を動かすコマンドを受けたことに応答して、該当する関節角を計算する。また、ＬＥＤＣｏｎｔｒｏｌｌｅｒ１７４は、ＬＥＤ１９の点滅動作を行なうためのオブジェクトであり、ＲＭ１１６経由でＳＢＬ１０２からコマンドを受けたことに応答してＬＥＤ１９の点滅駆動を行なう。
【０１８６】
Ｃ−１．状況依存行動制御
次に、行動価値ＡＬを算出し、発現する行動を選択する状況依存行動階層についてさらに詳細に説明する。図２０には、状況依存行動階層（ＳＢＬ）（但し、反射行動部を含む）による状況依存行動制御の形態を模式的に示している。
【０１８７】
視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３からなる外部刺激認識部８０における外部環境７０の認識結果（センサ情報）１８２は、外部刺激１８３として状況依存行動階層（反射行動部１０３を含む）１０２ａに与えられる。また、外部刺激認識部８０による外部環境７０の認識結果に応じた内部状態の変化１８４も状況依存行動階層１０２ａに与えられる。そして、状況依存行動階層１０２ａでは、外部刺激１８３や内部状態の変化１８４に応じて状況を判断して、行動選択を実現することができる。
【０１８８】
状況依存行動階層１０２ａでは、上述したように、外部刺激１８３や内部状態の変化１８４によって各行動記述モジュール（スキーマ）の行動価値ＡＬを算出して、行動価値ＡＬの大きさに応じてスキーマを選択して行動（動作）を実行する。行動価値ＡＬの算出には、例えばライブラリを利用することにより、すべてのスキーマについて統一的な計算処理を行なうことができる。
【０１８９】
このライブラリには、例えば上述したように、内部状態ベクトルから欲求値ベクトルを算出する関数、内部状態ベクトルから満足度ベクトルを算出する関数、及び外部刺激から予想内部状態変化ベクトルを予想するための行動評価データベースなどが保存されている。
【０１９０】
Ｃ−２．スキーマ
図２１には、状況依存行動階層１０２が複数のスキーマ（要素行動）１３２によって構成されている様子を模式的に示している。状況依存行動階層１０２は、上述した要素行動として、行動記述モジュールを有し、行動記述モジュール毎にステートマシンを用意しており、それ以前の行動（動作）や状況に依存して、センサ入力された外部情報の認識結果を分類し、動作を機体上で発現する。
【０１９１】
要素行動となる行動記述モジュールは、外部刺激や内部状態に応じた状況判断を行なうＭｏｎｉｔｏｒ機能と、行動実行に伴う状態遷移（ステートマシン）を実現するＡｃｔｉｏｎ機能とを備えたスキーマ１３２として記述される。
【０１９２】
状況依存行動階層１０２ｂ（より厳密には、状況依存行動階層１０２のうち、通常の状況依存行動を制御する階層）は、複数のスキーマ１３２が階層的に連結されたツリー構造として構成され、外部刺激や内部状態の変化に応じてより最適なスキーマ１３１を統合的に判断して行動制御を行なうようになっている。このツリー１３１は、例えば動物行動学的（Ｅｔｈｏｌｏｇｉｃａｌ）な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリーなど、複数のサブツリー（又は枝）を含んでいる。
【０１９３】
図２２には、状況依存行動階層１０２におけるスキーマのツリー構造を模式的に示している。同図に示すように、状況依存行動階層１０２は、短期記憶部９２から外部刺激の通知（Ｎｏｔｉｆｙ）を受けるルート・スキーマ２０１１、２０２１、２０３１を先頭に、抽象的な行動カテゴリから具体的な行動カテゴリに向かうように、階層毎にスキーマが配設されている。
【０１９４】
例えば、ルート・スキーマの直近下位の階層では、「探索する（Ｉｎｖｅｓｔｉｇａｔｅ）」、「食べる（Ｉｎｇｅｓｔｉｖｅ）」、「遊ぶ（Ｐｌａｙ）」というスキーマ２０１２、２０２２、２０３２が配設される。そして、スキーマ２０１２「探索する（Ｉｎｖｅｓｔｉｇａｔｅ）」の下位には、「ＩｎｖｅｓｔｉｇａｔｉｖｅＬｏｃｏｍｏｔｉｏｎ」、「ＨｅａｄｉｎＡｉｒＳｎｉｆｆｉｎｇ」、「ＩｎｖｅｓｔｉｇａｔｉｖｅＳｎｉｆｆｉｎｇ」というより具体的な探索行動を記述した複数のスキーマ２０１３が配設されている。
【０１９５】
同様に、スキーマ２０２２「食べる（Ｉｎｇｅｓｔｉｖｅ）」の下位には「Ｅａｔ」や「Ｄｒｉｎｋ」などのより具体的な飲食行動を記述した複数のスキーマ２０２３が配設され、スキーマ２０３２「遊ぶ（Ｐｌａｙ）」の下位には「ＰｌａｙＢｏｗｉｎｇ」、「ＰｌａｙＧｒｅｅｔｉｎｇ」、「ＰｌａｙＰａｗｉｎｇ」などのより具体的な遊ぶ行動を記述した複数のスキーマ２０３３が配設されている。
【０１９６】
図示の通り、各スキーマは外部刺激と内部状態を入力している。また、各スキーマは、少なくともＭｏｎｉｔｏｒ関数とＡｃｔｉｏｎ関数を備えている。
【０１９７】
図３１には、スキーマの内部構成を模式的に示している。同図に示すように、スキーマは、所定の事象の発生に従がって状態（又はステート）が移り変わっていく状態遷移モデル（ステートマシン）の形式で機体動作を記述したＡｃｔｉｏｎ関数と、外部刺激や内部状態に応じてＡｃｔｉｏｎ関数の各状態を評価して活動度レベル値として返すＭｏｎｉｔｏｒ関数と、スキーマの状態を記憶管理する状態管理部で構成されている。図示の通り、状態管理部は、Ａｃｔｉｏｎ関数のステートマシンを、ＲＥＡＤＹ（準備完了）、ＡＣＴＩＶＥ（活動中），ＳＬＥＥＰ（待機中）いずれかの状態としてスキーマの状態を記憶管理している。
【０１９８】
Ｍｏｎｉｔｏｒ関数は、外部刺激と内部状態に応じて当該スキーマの活動度レベルである行動価値ＡＬを算出する関数である。図２２に示すようなツリー構造を構成する場合、上位（親）のスキーマは外部刺激と内部状態を引数として下位（子供）のスキーマのＭｏｎｉｔｏｒ関数をコールすることができ、子供のスキーマはＡＬ値を返り値とする。また、スキーマは自分のＡＬ値を算出するために、さらに子供のスキーマのＭｏｎｉｔｏｒ関数をコールすることができる。そして、ルートのスキーマには各サブツリーからのＡＬ値が返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断することができる。
【０１９９】
例えばＡＬ値が最も高いスキーマを選択したり、ＡＬ値が所定の閾値を越えた２以上のスキーマを選択して並列的に行動実行したりするようにしてもよい（但し、並列実行するときは各スキーマ同士でハードウェア・リソースの競合がないことを前提とする）。
【０２００】
図３２には、Ｍｏｎｉｔｏｒ関数の内部構成を模式的に示している。同図に示すように、Ｍｏｎｉｔｏｒ関数は、当該スキーマで記述されている行動を誘発する評価値を活動度レベルとして算出する行動誘発評価値演算器と、使用する機体リソースを特定する使用リソース演算器を備えている。図３１で示す例では、Ｍｏｎｉｔｏｒ関数は、スキーマすなわち行動モジュールの管理を行なう行動状態制御部（仮称）からコールされると、Ａｃｔｉｏｎ関数のステートマシンを仮想実行して、行動誘発評価値（すなわち活動度レベル）と使用リソースを演算して、これを返すようになっている。
【０２０１】
また、Ａｃｔｉｏｎ関数は、スキーマ自身が持つ行動を記述したステートマシン（又は状態遷移モデル）（後述）を備えている。図２２に示すようなツリー構造を構成する場合、親スキーマは、Ａｃｔｉｏｎ関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。本実施形態では、ＡｃｔｉｏｎのステートマシンはＲｅａｄｙにならないと初期化されない。言い換えれば、中断しても状態はリセットされず、スキーマが実行中の作業データを保存することから、中断再実行が可能である（後述）。
【０２０２】
図３１で示す例では、スキーマすなわち行動モジュールの管理を行なう行動状態制御部（仮称）は、Ｍｏｎｉｔｏｒ関数からの戻り値に基づいて、実行すべき行動を選択し、該当するスキーマのＡｃｔｉｏｎ関数をコールし、あるいは状態管理部に記憶されているスキーマの状態の移行を指示する。例えば行動誘発評価値としての活動度レベルが最も高いスキーマを選択したり、リソースが競合しないように優先順位に従って複数のスキーマを選択したりする。また、行動状態制御部は、より優先順位の高いスキーマが起動し、リソースの競合が生じた場合、優先順位が下位のスキーマの状態をＡＣＴＩＶＥからＳＬＥＥＰに退避させ、競合状態が解かれるとＡＣＴＩＶＥに回復するなど、スキーマの状態を制御する。
【０２０３】
行動状態制御部は、図３３に示すように、状況依存行動階層１０２において１つだけ配設し、同階層１０２を構成するすべてのスキーマを一元的に集中管理するようにしてもよい。図３３に示す例では、行動状態制御部は、行動評価部と、行動選択部と、行動実行部を備えている。
【０２０４】
行動評価部は、例えば所定の制御周期で各スキーマのＭｏｎｉｔｏｒ関数をコールし、各々の活動度レベルと使用リソースを取得する。
【０２０５】
行動選択部は、各スキーマによる行動制御と機体リソースの管理を行なう。例えば、集計された活動度レベルの高い順にスキーマを選択するとともに、使用リソースが競合しないように２以上のスキーマを同時に選択する。
【０２０６】
行動実行部は、選択されたスキーマのＡｃｔｉｏｎ関数に行動実行命令を発行したり、スキーマの状態（ＲＥＡＤＹ，ＡＣＴＩＶＥ，ＳＬＥＥＰ）を管理して、スキーマの実行を制御したりする。例えば、より優先順位の高いスキーマが起動し、リソースの競合が生じた場合、優先順位が下位のスキーマの状態をＡＣＴＩＶＥからＳＬＥＥＰに退避させ、競合状態が解かれるとＡＣＴＩＶＥに回復する。
【０２０７】
あるいは、このような行動状態制御部の機能を、状況依存行動階層１０８内のスキーマ毎に配置するようにしてもよい。例えば、図２２に示したように、スキーマがツリー構造を形成している場合（図３４を参照のこと）、上位（親）のスキーマの行動状態制御は、外部刺激と内部状態を引数として下位（子供）のスキーマのＭｏｎｉｔｏｒ関数をコールし、子供のスキーマから活動度レベルと使用リソースを返り値として受け取る。また、子供のスキーマは、自分の活動度レベルと使用リソースを算出するために、さらに子供のスキーマのＭｏｎｉｔｏｒ関数をコールする。そして、ルートのスキーマの行動状態制御部には、各サブツリーからの活動度レベルと使用リソースが返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断して、Ａｃｔｉｏｎ関数をコールして、子供スキーマの実行を開始したり中断させたりする。本実施形態では、ＡｃｔｉｏｎのステートマシンはＲｅａｄｙにならないと初期化されない。言い換えれば、中断しても状態はリセットされず、スキーマが実行中の作業データを保存することから、中断再実行が可能である。
【０２０８】
図２３には、状況依存行動階層１０２において通常の状況依存行動を制御するためのメカニズムを模式的に示している。同図に示すように、状況依存行動階層（ＳＢＬ）１０２には、短期記憶部（ＳＴＭ）９２から外部刺激１８３が入力（Ｎｏｔｉｆｙ）されるとともに、内部状態管理部９１から内部状態の変化１８４が入力される。
【０２０９】
状況依存行動階層１０２は、例えば動物行動学的な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリーなど、複数のサブツリーで構成されており、ルート・スキーマは、外部刺激１８３の通知（Ｎｏｔｉｆｙ）に応答して、各サブツリーのＭｏｎｉｔｏｒ関数をコールし、その返り値としての行動価値ＡＬを参照して、統合的な行動選択を行ない、選択された行動を実現するサブツリーに対してＡｃｔｉｏｎ関数をコールする。
【０２１０】
また、状況依存行動階層１０２において決定された状況依存行動は、リソース・マネージャＲＭ１１６により反射行動部１０３による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作（Ｍｏｔｉｏｎ Ｃｏｎｔｒｏｌｌｅｒ）に適用される。
【０２１１】
また、反射的行動部１０３は、上述した認識系の各オブジェクトによって認識
された外部刺激１８３に応じて、例えば、障害物の検出により咄嗟に避ける等、反射的・直接的な機体動作を実行する。このため、図２２に示す通常の状況依存行動を制御する場合とは相違し、図２１に示すように、認識系の各オブジェクトからの信号を直接入力する複数のスキーマ１３３が階層化されずに並列的に配置されている。
【０２１２】
図２４には、反射行動部１０３におけるスキーマの構成を模式的に示している。同図に示すように、反射行動部１０３には、聴覚系の認識結果に応答して動作するスキーマとしてＡｖｏｉｄ Ｂｉｇ Ｓｏｕｎｄ２０４、Ｆａｃｅ ｔｏ Ｂｉｇ Ｓｏｕｎｄ２０５及びＮｏｄｄｉｎｇ Ｓｏｕｎｄ２０９、視覚系の認識結果に応答して動作するスキーマとしてＦａｃｅ ｔｏ Ｍｏｖｉｎｇ Ｏｂｊｅｃｔ２０６及びＡｖｏｉｄ Ｍｏｖｉｎｇ Ｏｂｊｅｃｔ２０７、並びに、触覚系の認識結果に応答して動作するスキーマとして手を引っ込める２０８が、それぞれ対等な立場で（並列的に）配設されている。
【０２１３】
図示の通り、反射的行動を行なう各スキーマは外部刺激１８３を入力に持つ。また、各スキーマは、少なくともＭｏｎｉｔｏｒ関数とＡｃｔｉｏｎ関数を備えている。Ｍｏｎｉｔｏｒ関数は、外部刺激１８３に応じて当該スキーマの行動価値ＡＬを算出して、これに応じて該当する反射的行動を発現すべきかどうかが判断される。また、Ａｃｔｉｏｎ関数は、スキーマ自身が持つ反射的行動を記述したステートマシン（後述）を備えており、コールされることにより、該当する反射的行動を発現するとともにＡｃｔｉｏｎの状態を遷移させていく。
【０２１４】
図２５には、反射行動部１０３において反射的行動を制御するためのメカニズムを模式的に示している。図２４にも示したように、反射行動部１０３内には、反応行動を記述したスキーマや、即時的な応答行動を記述したスキーマが並列的に存在している。認識系の機能モジュール８０を構成する各オブジェクトから認識結果が入力されると、対応する反射行動スキーマがＡｏｎｉｔｏｒ関数により行動価値ＡＬを算出し、その値に応じてＡｃｔｉｏｎを軌道すべきかどうかが判断される。そして、反射行動部１０３において起動が決定された反射的行動は、リソース・マネージャＲＭ１１６により状況依存行動階層１０２による状況依存行動とのハードウェア・リソースの競合の調停を経て、機体動作（Ｍｏｔｉｏｎ Ｃｏｎｔｒｏｌｌｅｒ１７３）に適用される。
【０２１５】
このような状況依存行動階層１０２及び反射行動部１０３を構成するスキーマは、例えばＣ＋＋言語ベースで記述される「クラス・オブジェクト」として記述することができる。図２６には、状況依存行動階層１０２において使用されるスキーマのクラス定義を模式的に示している。同図に示されている各ブロックはそれぞれ１つのクラス・オブジェクトに相当する。
【０２１６】
図示の通り、状況依存行動階層（ＳＢＬ）１０２は、１以上のスキーマと、ＳＢＬ１０２の入出力イベントに対してＩＤを割り振るＥｖｅｎｔ Ｄａｔａ Ｈａｎｄｌｅｒ（ＥＤＨ）２１１と、ＳＢＬ１０２内のスキーマを管理するＳｃｈｅｍａ Ｈａｎｄｌｅｒ（ＳＨ）２１２と、外部オブジェクト（ＳＴＭやＬＴＭ、リソース・マネージャ、認識系の各オブジェクトなど）からデータを受信する１以上のＲｅｃｅｉｖｅ Ｄａｔａ Ｈａｎｄｌｅｒ（ＲＤＨ）２１３と、外部オブジェクトにデータを送信する１以上のＳｅｎｄ Ｄａｔａ Ｈａｎｄｌｅｒ（ＳＤＨ）２１４を備えている。
【０２１７】
Ｓｃｈｅｍａ Ｈａｎｄｌｅｒ２１２は、状況依存行動階層（ＳＢＬ）１０２や反射行動部１０３を構成する各スキーマやツリー構造等の情報（ＳＢＬのコンフィギュレーション情報）をファイルとして保管している。例えばシステムの起動時等に、Ｓｃｈｅｍａ Ｈａｎｄｌｅｒ２１２は、このコンフィギュレーション情報ファイルを読み込んで、図２２に示したような状況依存行動階層１０２のスキーマ構成を構築（再現）して、メモリ空間上に各スキーマのエンティティをマッピングする。
【０２１８】
各スキーマは、スキーマのベースとして位置付けられるＯｐｅｎＲ_Ｇｕｅｓｔ２１５を備えている。ＯｐｅｎＲ_Ｇｕｅｓｔ２１５は、スキーマが外部にデータを送信するためのＤｓｕｂｊｅｃｔ２１６、並びに、スキーマが外部からデータを受信するためのＤＯｂｊｅｃｔ２１７というクラス・オブジェクトをそれぞれ１以上備えている。例えば、スキーマが、ＳＢＬ１０２の外部オブジェクト（ＳＴＭやＬＴＭ、認識系の各オブジェクト等）にデータを送るときには、Ｄｓｕｂｊｅｃｔ２１６はＳｅｎｄ Ｄａｔａ Ｈａｎｄｌｅｒ２１４に送信データを書き込む。また、ＤＯｂｊｅｃｔ２１７は、ＳＢＬ１０２の外部オブジェクトから受信したデータをＲｅｃｅｉｖｅ Ｄａｔａ Ｈａｎｄｌｅｒ２１３から読み取ることができる。
【０２１９】
Ｓｃｈｅｍａ Ｍａｎａｇｅｒ２１８及びＳｃｈｅｍａ Ｂａｓｅ２１９はともに、ＯｐｅｎＲ_Ｇｕｅｓｔ２１５を継承したクラス・オブジェクトである。クラス継承は、元のクラスの定義を受け継ぐことであり、この場合、ＯｐｅｎＲ_Ｇｕｅｓｔ２１５で定義されているＤｓｕｂｊｅｃｔ２１６やＤＯｂｊｅｃｔ２１７などのクラス・オブジェクトをＳｃｈｅｍａ Ｍａｎａｇｅｒ Ｂａｓｅ２１８やＳｃｈｅｍａ Ｂａｓｅ２１９も備えていることを意味する（以下、同様）。例えば図２２に示すように複数のスキーマがツリー構造になっている場合、Ｓｃｈｅｍａ Ｍａｎａｇｅｒ Ｂａｓｅ２１８は、子供のスキーマのリストを管理するクラス・オブジェクトＳｃｈｅｍａ Ｌｉｓｔ２２０を持ち（子供のスキーマへのポインタを持ち）、子供スキーマの関数をコールすることができる。また、Ｓｃｈｅｍａ Ｂａｓｅ２１９は、親スキーマへのポインタを持ち、親スキーマからコールされた関数の返り値を戻すことができる。
【０２２０】
Ｓｃｈｅｍａ Ｂａｓｅ２１９は、Ｓｔａｔｅ Ｍａｃｈｉｎｅ２２１及びＰｒｏｎｏｍｅ２２２という２つのクラス・オブジェクトを持つ。Ｓｔａｔｅ Ｍａｃｈｉｎｅ２２１は当該スキーマの行動（Ａｃｔｉｏｎ関数）についてのステートマシンを管理している。親スキーマは子供スキーマのＡｃｔｉｏｎ関数のステートマシンを切り替える（状態遷移させる）ことができる。また、Ｐｒｏｎｏｍｅ２２２には、当該スキーマが行動（Ａｃｔｉｏｎ関数）を実行又は適用するターゲットを代入する。後述するように、スキーマはＰｒｏｎｏｍｅ２２２に代入されたターゲットによって占有され、行動（動作）が終了（完結、異常終了等）するまでスキーマは解放されない。新規のターゲットのために同じ行動を実行するためには同じクラス定義のスキーマをメモリ空間上に生成する。この結果、同じスキーマをターゲット毎に独立して実行することができ（個々のスキーマの作業データが干渉し合うことはなく）、後述する行動のＲｅｅｎｔｒａｎｃｅ性が確保される。
【０２２１】
Ｐａｒｅｎｔ Ｓｃｈｅｍａ Ｂａｓｅ２２３は、Ｓｃｈｅｍａ Ｍａｎａｇｅｒ２１８及びＳｃｈｅｍａ Ｂａｓｅ２１９を多重継承するクラス・オブジェクトであり、スキーマのツリー構造において、当該スキーマ自身についての親スキーマ及び子供スキーマすなわち親子関係を管理する。
【０２２２】
Ｉｎｔｅｒｍｅｄｉａｔｅ Ｐａｒｅｎｔ Ｓｃｈｅｍａ Ｂａｓｅ２２４は、Ｐａｒｅｎｔ Ｓｃｈｅｍａ Ｂａｓｅ２２３を継承するクラス・オブジェクトであり、各クラスのためのインターフェース変換を実現する。また、Ｉｎｔｅｒｍｅｄｉａｔｅ Ｐａｒｅｎｔ Ｓｃｈｅｍａ Ｂａｓｅ２２４は、Ｓｃｈｅｍａ Ｓｔａｔｕｓ Ｉｎｆｏ２２５を持つ。このＳｃｈｅｍａ Ｓｔａｔｕｓ Ｉｎｆｏ２２５は、当該スキーマ自身のステートマシンを管理するクラス・オブジェクトである。親スキーマは、子供スキーマのＡｃｔｉｏｎ関数をコールすることによってそのステートマシンの状態を切り換えることができる。また、子供スキーマのＭｏｎｉｔｏｒ関数をコールしてそのステートマシンの常態に応じた行動価値ＡＬを問うことができる。但し、スキーマのステートマシンは、前述したＡｃｔｉｏｎ関数のステートマシンとは異なるということを留意されたい。
【０２２３】
Ａｎｄ Ｐａｒｅｎｔ Ｓｃｈｅｍａ２２６、Ｎｕｍ Ｏｒ Ｐａｒｅｎｔ Ｓｃｈｅｍａ２２７、Ｏｒ Ｐａｒｅｎｔ Ｓｃｈｅｍａ２２８は、Ｉｎｔｅｒｍｅｄｉａｔｅ Ｐａｒｅｎｔ Ｓｃｈｅｍａ Ｂａｓｅ２２４を継承するクラス・オブジェクトである。Ａｎｄ Ｐａｒｅｎｔ Ｓｃｈｅｍａ２２６は、同時実行する複数の子供スキーマへのポインタを持つ。Ｏｒ Ｐａｒｅｎｔ Ｓｃｈｅｍａ２２８は、いずれか択一的に実行する複数の子供スキーマへのポインタを持つ。また、Ｎｕｍ Ｏｒ Ｐａｒｅｎｔ Ｓｃｈｅｍａ２２７は、所定数のみを同時実行する複数の子供スキーマへのポインタを持つ。
【０２２４】
Ｐａｒｅｎｔ Ｓｃｈｅｍａ２２９は、これらＡｎｄ Ｐａｒｅｎｔ Ｓｃｈｅｍａ２２６、Ｎｕｍ Ｏｒ Ｐａｒｅｎｔ Ｓｃｈｅｍａ２２７、Ｏｒ Ｐａｒｅｎｔ Ｓｃｈｅｍａ２２８を多重継承するクラス・オブジェクトである。
【０２２５】
図２７には、状況依存行動階層（ＳＢＬ）１０２内のクラスの機能的構成を模式的に示している。
【０２２６】
状況依存行動階層（ＳＢＬ）１０２は、ＳＴＭやＬＴＭ、リソース・マネージャ、認識系の各オブジェクトなど外部オブジェクトからデータを受信する１以上のＲｅｃｅｉｖｅ Ｄａｔａ Ｈａｎｄｌｅｒ（ＲＤＨ）２１３と、外部オブジェクトにデータを送信する１以上のＳｅｎｄ Ｄａｔａ Ｈａｎｄｌｅｒ（ＳＤＨ）２１４とを備えている。
【０２２７】
Ｅｖｅｎｔ Ｄａｔａ Ｈａｎｄｌｅｒ（ＥＤＨ）２１１は、ＳＢＬ１０２の入出力イベントに対してＩＤを割り振るためのクラス・オブジェクトであり、ＲＤＨ２１３やＳＤＨ２１４から入出力イベントの通知を受ける。
【０２２８】
Ｓｃｈｅｍａ Ｈａｎｄｌｅｒ２１２は、スキーマを管理するためのクラス・オブジェクトであり、ＳＢＬ１０２を構成するスキーマのコンフィギュレーション情報をファイルとして保管している。例えばシステムの起動時などに、Ｓｃｈｅｍａ Ｈａｎｄｌｅｒ２１２は、このコンフィギュレーション情報ファイルを読み込んで、ＳＢＬ１０２内のスキーマ構成を構築する。
【０２２９】
各スキーマは、図２６に示したクラス定義に従って生成され、メモリ空間上にエンティティがマッピングされる。各スキーマは、ＯｐｅｎＲ_Ｇｕｅｓｔ２１５をベースのクラス・オブジェクトとし、外部にデータ・アクセスするためのＤＳｕｂｊｅｃｔ２１６やＤＯｂｊｅｃｔ２１７などのクラス・オブジェクトを備えている。
【０２３０】
スキーマが主に持つ関数とステートマシンを以下に示しておく。以下の関数は、Ｓｃｈｅｍａ Ｂａｓｅ２１９で記述されている。
【０２３１】
ＡｃｔｉｖａｔｉｏｎＭｏｎｉｔｏｒ（）：スキーマがＲｅａｄｙ時にＡｃｔｉｖｅになるための評価関数
Ａｃｔｉｏｎｓ（）：Ａｃｔｉｖｅ時の実行用ステートマシン
Ｇｏａｌ（）：Ａｃｔｉｖｅ時にスキーマがＧｏａｌに達したかを評価する関数
Ｆａｉｌ（）：Ａｃｔｉｖｅ時にスキーマがｆａｉｌ状態かを判定する関数
ＳｌｅｅｐＡｃｔｉｏｎｓ（）：Ｓｌｅｅｐ前に実行されるステートマシン
ＳｌｅｅｐＭｏｎｉｔｏｒ（）：Ｓｌｅｅｐ時にＲｅｓｕｍｅするための評価関数
ＲｅｓｕｍｅＡｃｔｉｏｎｓ（）：Ｒｅｓｕｍｅ前にＲｅｓｕｍｅするためのステートマシン
ＤｅｓｔｒｏｙＭｏｎｉｔｏｒ（）：Ｓｌｅｅｐ時にスキーマがｆａｉｌ状態か判定する評価関数
ＭａｋｅＰｒｏｎｏｍｅ（）：ツリー全体のターゲットを決定する関数
【０２３２】
Ｃ−３．状況依存行動階層の機能
状況依存行動階層（ＳＢＬ）１０２は、短期記憶部９２及び長期記憶部９３の記憶内容や、内部状態管理部９１によって管理される内部状態を基に、ロボット装置１が現在置かれている状況に即応した動作を制御する。
【０２３３】
前項で述べたように、本実施形態に係る状況依存行動階層１０２は、スキーマのツリー構造（図２２を参照のこと）で構成されている。各スキーマは、自分の子供と親の情報を知っている状態で独立性を保っている。このようなスキーマ構成により、状況依存行動階層１０２は、Ｃｏｎｃｕｒｒｅｎｔな評価、Ｃｏｎｃｕｒｒｅｎｔな実行、Ｐｒｅｅｍｐｔｉｏｎ、Ｒｅｅｎｔｒａｎｔという主な特徴を持っている。以下、これらの特徴について詳解する。
【０２３４】
Ｃ−３−１．Ｃｏｎｃｕｒｒｅｎｔな評価：
行動記述モジュールとしてのスキーマは外部刺激や内部状態の変化に応じた状況判断を行なうＭｏｎｉｔｏｒ機能を備えていることは既に述べた。Ｍｏｎｉｔｏｒ機能は、スキーマがクラス・オブジェクトＳｃｈｅｍａ ＢａｓｅでＭｏｎｉｔｏｒ関数を備えていることにより実装されている。Ｍｏｎｉｔｏｒ関数とは、外部刺激と内部状態に応じて当該スキーマの行動価値ＡＬを算出する関数である。
【０２３５】
図２２に示したようなツリー構造を構成する場合、上位（親）のスキーマは外部刺激１８３と内部状態の変化１８４を引数として下位（子供）のスキーマのＭｏｎｉｔｏｒ関数をコールすることができ、子供のスキーマは行動価値ＡＬを返り値とする。また、スキーマは自分の行動価値ＡＬを算出するために、更に子供のスキーマのＭｏｎｉｔｏｒ関数をコールすることができる。そして、ルートのスキーマ２０１１〜２０３１には各サブツリーからの行動価値ＡＬが返されるので、外部刺激１８３と内部状態の変化１８４に応じた最適なスキーマすなわち動作を統合的に判断することができる。
【０２３６】
このようにツリー構造になっていることから、外部刺激１８３と内部状態の変化１８４による各スキーマの評価は、まずツリー構造の下から上に向かってＣｏｎｃｕｒｒｅｎｔに行なわれる。すなわち、スキーマに子供スキーマがある場合には、選択した子供のＭｏｎｉｔｏｒ関数をコールしてから、自身のＭｏｎｉｔｏｒ関数を実行する。次いで、ツリー構造の上から下に向かって評価結果としての実行許可を渡していく。評価と実行は、その動作が用いるリソースの競合を解きながら行なわれる。
【０２３７】
本実施形態に係る状況依存行動階層１０２は、スキーマのツリー構造を利用して、並列的に行動の評価を行なうことができるので、外部刺激１８３や内部状態の変化１８４などの状況に対しての適応性がある。また、評価時には、ツリー全体に関しての評価を行ない、このとき算出される行動価値ＡＬによりツリーが変更されるので、スキーマすなわち実行する動作を動的にプライオリタイズすることができる。
【０２３８】
Ｃ−３−２．Ｃｏｎｃｕｒｒｅｎｔな実行：
ルートのスキーマには各サブツリーからの行動価値ＡＬが返されるので、外部刺激１８３と内部状態の変化１８４に応じた最適なスキーマすなわち動作を統合的に判断することができる。例えば行動価値ＡＬが最も高いスキーマを選択したり、行動価値ＡＬが所定の閾値を越えた２以上のスキーマを選択して並列的に行動実行したりするようにしてもよい（但し、並列実行するときは各スキーマどうしでハードウェア・リソースの競合がないことを前提とする）。
【０２３９】
選択され、実行許可をもらったスキーマは実行される。すなわち、実際にそのスキーマは更に詳細の外部刺激１８３や内部状態の変化１８４を観測して、コマンドを実行する。実行に関しては、ツリー構造の上から下に向かって順次すなわちＣｏｎｃｕｒｒｅｎｔに行なわれる。即ち、スキーマに子供スキーマがある場合には、子供のＡｃｔｉｏｎｓ関数を実行する。
【０２４０】
Ａｃｔｉｏｎ関数は、スキーマ自身が持つ行動（動作）を記述したステートマシンを備えている。図２２に示したようなツリー構造を構成する場合、親スキーマは、Ａｃｔｉｏｎ関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。
【０２４１】
本実施形態に係る状況依存行動階層（ＳＢＬ）１０２は、スキーマのツリー構造を利用して、リソースが競合しない場合には、余ったリソースを使う他のスキーマを同時に実行することができる。但し、Ｇｏａｌまでに使用するリソースに対して制限を加えないと、ちぐはぐな行動出現が起きる可能性がある。状況依存行動階層１０２において決定された状況依存行動は、リソース・マネージャにより反射行動部（ＲｅｆｌｅｘｉｖｅＳＢＬ）１０３による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作（Ｍｏｔｉｏｎ Ｃｏｎｔｒｏｌｌｅｒ）に適用される。
【０２４２】
Ｃ−３−３．Ｐｒｅｅｍｐｔｉｏｎ：
１度実行に移されたスキーマであっても、それよりも重要な（優先度の高い）行動があれば、スキーマを中断してそちらに実行権を渡さなければならない。また、より重要な行動が終了（完結又は実行中止等）したら、元のスキーマを再開して実行を続けることも必要である。
【０２４３】
このような優先度に応じたタスクの実行は、コンピュータの世界におけるＯＳ（オペレーティング・システム）のＰｒｅｅｍｐｔｉｏｎと呼ばれる機能に類似している。ＯＳでは、スケジュールを考慮するタイミングで優先度のより高いタスクを順に実行していくという方針である。
【０２４４】
これに対し、本実施形態に係るロボット装置１の制御システム１０は、複数のオブジェクトにまたがるため、オブジェクト間での調停が必要になる。例えば反射行動を制御するオブジェクトである反射行動部１０３は、上位の状況依存行動を制御するオブジェクトである状況依存行動階層１０２の行動評価を気にせずに物を避けたり、バランスをとったりする必要がある。これは、実際に実行権を奪い取り実行を行なう訳であるが、上位の行動記述モジュール（ＳＢＬ）に、実行権利が奪い取られたことを通知して、上位はその処理を行なうことによってＰｒｅｅｍｐｔｉｖｅな能力を保持する。
【０２４５】
また、状況依存行動層１０２内において、外部刺激１８３と内部状態の変化１８４に基づく行動価値ＡＬの評価の結果、あるスキーマに実行許可がなされたとする。更に、その後の外部刺激１８３と内部状態の変化１８４に基づく行動価値ＡＬの評価により、別のスキーマの重要度の方がより高くなったとする。このような場合、実行中のスキーマのＡｃｔｉｏｎｓ関数を利用してＳｌｅｅｐ状態にして中断することにより、Ｐｒｅｅｍｐｔｉｖｅな行動の切り替えを行なうことができる。
【０２４６】
実行中のスキーマのＡｃｔｉｏｎｓ（）の状態を保存して、異なるスキーマのＡｃｔｉｏｎｓ（）を実行する。また、異なるスキーマのＡｃｔｉｏｎｓ（）が終了した後、中断されたスキーマのＡｃｔｉｏｎｓ（）を再度実行することができる。
【０２４７】
また、実行中のスキーマのＡｃｔｉｏｎｓ（）を中断して、異なるスキーマに実行権が移動する前に、ＳｌｅｅｐＡｃｔｉｏｎｓ（）を実行する。例えば、ロボット装置１は、対話中にサッカーボールを見つけると、「ちょっと待ってね」と言って、サッカーすることができる。
【０２４８】
Ｃ−３−４．Ｒｅｅｎｔｒａｎｔ：
状況依存行動階層１０２を構成する各スキーマは、一種のサブルーチンである。スキーマは、複数の親からコールされた場合には、その内部状態を記憶するために、それぞれの親に対応した記憶空間を持つ必要がある。
【０２４９】
これは、コンピュータの世界では、ＯＳが持つＲｅｅｎｔｒａｎｔ性に類似しており、本明細書ではスキーマのＲｅｅｎｔｒａｎｔ性と呼ぶ。図２７に示したように、スキーマはクラス・オブジェクトで構成されており、クラス・オブジェクトのエンティティすなわちインスタンスをターゲット（Ｐｒｏｎｏｍｅ）毎に生成することによりＲｅｅｎｔｒａｎｔ性が実現される。
【０２５０】
スキーマのＲｅｅｎｔｒａｎｔ性について、図２８を参照しながらより具体的に説明する。Ｓｃｈｅｍａ Ｈａｎｄｌｅｒ２１２は、スキーマを管理するためのクラス・オブジェクトであり、ＳＢＬ１０２を構成するスキーマのコンフィギュレーション情報をファイルとして保管している。システムの起動時に、Ｓｃｈｅｍａ Ｈａｎｄｌｅｒ２１２は、このコンフィギュレーション情報ファイルを読み込んで、ＳＢＬ１０２内のスキーマ構成を構築する。図２８に示す例では、Ｅａｔ２２１やＤｉａｌｏｇ２２２などの行動（動作）を規定するスキーマのエンティティがメモリ空間上にマッピングされているとする。
【０２５１】
ここで、外部刺激１８３と内部状態の変化１８４に基づく行動価値ＡＬの評価により、スキーマＤｉａｌｏｇ２２２に対してＡというターゲット（Ｐｒｏｎｏｍｅ）が設定されて、Ｄｉａｌｏｇ２２２が人物Ａとの対話を実行するようになったとする。
【０２５２】
そこに、人物Ｂがロボット装置１と人物Ａとの対話に割り込み、その後、外部刺激１８３と内部状態の変化１８４に基づく行動価値ＡＬの評価を行なった結果、Ｂとの対話を行なうスキーマ２２３の方がより優先度が高くなったとする。
【０２５３】
このような場合、Ｓｃｈｅｍａ Ｈａｎｄｌｅｒ２１２は、Ｂとの対話を行なうためのクラス継承した別のＤｉａｌｏｇエンティティ（インスタンス）をメモリ空間上にマッピングする。別のＤｉａｌｏｇエンティティを使用して、先のＤｉａｌｏｇエンティティとは独立して、Ｂとの対話を行なうことから、Ａとの対話内容は破壊されずに済む。従って、ＤｉａｌｏｇＡはデータの一貫性を保持することができ、Ｂとの対話が終了すると、Ａとの対話を中断した時点から再開することができる。
【０２５４】
Ｒｅａｄｙリスト内のスキーマは、その対象物（外部刺激１８３）に応じて評価すなわち行動価値ＡＬの計算が行なわれ、実行権が引き渡される。その後、Ｒｅａｄｙリスト内に移動したスキーマのインスタンスを生成して、これ以外の対象物に対して評価を行なう。これにより、同一のスキーマをａｃｔｉｖｅ又はｓｌｅｅｐ状態にすることができる。
【０２５５】
以上のような制御システムを実現する制御プログラムは、上述したように、予めフラッシュＲＯＭ２３に格納されており、ロボット装置１の電源投入初期時において読み出される。このようにしてこのロボット装置１においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るようになされている。
【産業上の利用可能性】
【０２５６】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。
【０２５７】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置あるいはその他一般的な移動体装置であるならば、例えば玩具などのような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０２５８】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０２５９】
【図１】本発明の実施の形態のロボット装置の外観を示す斜視図である。
【図２】本発明の実施の形態におけるロボット装置の機能構成を模式的に示すブロック図である。
【図３】本発明の実施の形態における制御ユニットの構成を更に詳細に示すブロック図である。
【図４】本発明の実施の形態におけるロボット装置の制御システムにおいて、各行動に対応する行動価値を算出してこれに基づき行動出力する処理を行う行動選択制御システム部分を示す模式図である。
【図５】上図の行動価値算出部が内部状態及び外部刺激から行動価値ＡＬを算出する処理の流れを示す模式図である。
【図６】横軸に内部状態ベクトルＩｎｔＶの各成分をとり、縦軸に欲求値ベクトルＩｎｓＶの各成分をとって、内部状態と欲求値との関係を示すグラフ図である。
【図７】行動価値算出データベースにおける行動価値算出データを示す図である。
【図８】横軸にＩｎｔＶ_ＮＯＵＲＩＳＨＭＥＮＴ（栄養状態）、縦軸に内部状態「栄養状態」に対する満足度Ｓ_ＮＯＵＲＩＳＨＭＥＮＴをとり、内部状態と満足度との関係を示すグラフ図である。
【図９】横軸にＩｎｔＶ_ＦＡＴＩＧＵＥ（疲れ）、縦軸に内部状態「疲れ」に対する満足度Ｓ_ＦＡＴＩＧＵＥをとって、内部状態と満足度との関係を示すグラフ図である。
【図１０】（ａ）及び（ｂ）は夫々内部状態「栄養状態」（「ＮＯＵＲＩＳＨＭＥＮＴ」）及び「疲れ」（「ＦＡＴＩＧＵＥ」）の予想内部状態変化を求める場合の行動価値算出データ構造の一例を示す図である。
【図１１】１次元の外部刺激の線形補間方法を説明する図である。
【図１２】２次元の外部刺激の線形補間方法を説明する図である。
【図１３】本発明の実施の形態におけるロボット装置の制御システムにおいて、外部刺激が入力されてから行動価値算出データベースの学習を行うまでの流れを示す模式図である。
【図１４】１次元外部刺激の予想内部状態変化の更新例を説明する図である。
【図１５】２次元外部刺激の予想内部状態変化の更新例を説明する図である。
【図１６】学習により、発現された行動結果に応じて行動価値算出データベースを更新する方法を示すフローチャートである。
【図１７】行動価値算出部における行動価値算出方法を示すフローチャートである。
【図１８】本発明の具体例におけるロボット装置の行動制御システムの機能構成を示す模式図である。
【図１９】本発明の具体例における行動制御システムのオブジェクト構成を示す模式図である。
【図２０】本発明の具体例における状況依存行動階層による状況依存行動制御の形態を示す模式図である。
【図２１】状況依存行動階層が複数のスキーマによって構成されている様子を示す模式図である。
【図２２】状況依存行動階層におけるスキーマのツリー構造を示す模式図である。
【図２３】状況依存行動階層において通常の状況依存行動を制御するためのメカニズムを示す模式図である。
【図２４】反射行動部におけるスキーマの構成を示す模式図である。
【図２５】反射行動部により反射的行動を制御するためのメカニズムを示す模式図である。
【図２６】状況依存行動階層において使用されるスキーマのクラス定義を示す模式図である。
【図２７】状況依存行動階層内のクラスの機能的構成を示す模式図である。
【図２８】スキーマのＲｅｅｎｔｒａｎｔ性を説明する図である。
【図２９】行動価値算出データベース１２１の他の利用方法を説明するための図である。
【図３０】ＳｏｆｔＭａｘによる行動選択時におけるボルツマン温度の影響を説明するための図である。
【図３１】図３１は、スキーマの内部構成を模式的に示している。
【図３２】図３２は、Ｍｏｎｉｔｏｒ関数の内部構成を模式的に示した図である。
【図３３】図３３は、行動状態制御部の構成例を模式的に示した図である。
【図３４】図３４は、行動状態制御部の他の構成例を模式的に示した図である。
【符号の説明】
【０２６０】
１…ロボット装置
１０…制御システム
１５…ＣＣＤカメラ
１６…マイクロフォン
１７…スピーカ
１８…タッチ・センサ
１９…ＬＥＤインジケータ
２０…制御部
２１…ＣＰＵ
２２…ＲＡＭ
２３…ＲＯＭ
２４…不揮発メモリ
２５…インターフェース
２６…無線通信インターフェース
２７…ネットワーク・インターフェース・カード
２８…バス
２９…キーボード
４０…入出力部
５０…駆動部
５１…モータ
５２…エンコーダ
５３…ドライバ
８１…視覚認識機能部
８２…聴覚認識機能部
８３…接触認識機能部
９１…内部状態管理部
９２…短期記憶部（ＳＴＭ）
９３…長期記憶部（ＬＴＭ）
１００…行動選択制御システム
１０１…熟考行動階層
１０２…状況依存行動階層（ＳＢＬ）
１０３…反射行動部
１２０…行動価値算出部
１２１…行動値算出データベース
１３０…行動選択部
１３２…要素行動
１４０…学習部
【図１】
2004291228.tif 000016
【図２】
2004291228.tif 000017
【図３】
2004291228.tif 000018
【図４】
2004291228.tif 000019
【図５】
2004291228.tif 000020
【図６】
2004291228.tif 000021
【図７】
2004291228.tif 000022
【図８】
2004291228.tif 000023
【図９】
2004291228.tif 000024
【図１０】
2004291228.tif 000025
【図１１】
2004291228.tif 000026
【図１２】
2004291228.tif 000027
【図１３】
2004291228.tif 000028
【図１４】
2004291228.tif 000029
【図１５】
2004291228.tif 000030
【図１６】
2004291228.tif 000031
【図１７】
2004291228.tif 000032
【図１８】
2004291228.tif 000033
【図１９】
2004291228.tif 000034
【図２０】
2004291228.tif 000035
【図２１】
2004291228.tif 000036
【図２２】
2004291228.tif 000037
【図２３】
2004291228.tif 000038
【図２４】
2004291228.tif 000039
【図２５】
2004291228.tif 000040
【図２６】
2004291228.tif 000041
【図２７】
2004291228.tif 000042
【図２８】
2004291228.tif 000043
【図２９】
2004291228.tif 000044
【図３０】
2004291228.tif 000045
【図３１】
2004291228.tif 000046
【図３２】
2004291228.tif 000047
【図３３】
2004291228.tif 000048
【図３４】
2004291228.tif 000049