(57)【要約】【課題】  自律型ロボット装置に求められる自己の状態を考慮した行動選択基準と、他者の状態を考慮した行動選択基準とを状況に応じて適応的に切り替える機能を有するロボット装置の行動制御システム及び行動制御方法を提供する。【解決手段】  ロボット装置における行動選択制御システムは、複数の行動から特定の行動を選択して出力可能な状況依存行動階層（ＳＢＬ）を有し、行動選択のために、各行動の実行優先度を示す行動価値（ＡＬ）を算出するＡＬ算出部１２０を有する。このＡＬ算出部１２０は、自己及びインタラクション対象となる他者を基準にして行動の実行優先度を示すそれぞれ自己ＡＬ及び他者ＡＬを算出するそれぞれ自己ＡＬ算出部１２２及び他者ＡＬ算出部１２４と、自己ＡＬ及び他者ＡＬを自己の状態を重視するか他者の状態を重視するかを決定するパラメータにより重み付けして加算し、最終的なＡＬを出力するＡＬ統合部１２５とを有する。【選択図】  図５
2005199402.tif 000002
【特許請求の範囲】
【請求項１】
自律的に行動するロボット装置における行動制御システムにおいて、
複数の行動記述モジュールに記述された各行動の実行優先度を示す行動価値を算出する行動価値算出手段と、
上記行動価値に基づき少なくとも１つの行動を選択する行動選択手段とを有し、
上記行動価値算出手段は、自己を基準にして各行動の実行優先度を示す自己行動価値を算出する自己行動価値算出手段と、インタラクション対象となる他者を基準にして各行動の実行優先度を示す他者行動価値を算出する他者行動価値算出手段と、該自己行動価値及び他者行動価値に基づき上記行動価値を算出する行動価値統合手段とを有する
ことを特徴とする行動制御システム。
【請求項２】
センサ情報から上記ロボット装置に対する外部刺激を認識する外部刺激認識手段と、
少なくとも自己の複数種類の内部状態を含む自己状態を管理する自己状態管理手段と、
少なくとも他者の複数種類の内部状態を含む他者状態を管理する他者状態管理手段と、
自己の状態を重視するか他者の状態を重視するかを決定するパラメータを算出するパラメータ算出手段とを有し、
上記各行動は、所定の外部刺激及び所定の自己状態、並びに所定の外部刺激及び所定の他者状態が対応付けられたものであって、
上記自己行動価値算出手段は、各行動の上記自己行動価値を、各行動に対応付けられた所定の外部刺激及び所定の自己状態に基づき算出し、
上記他者行動価値算出手段は、各行動の上記他者行動価値を、各行動に対応付けられた所定の外部刺激及び所定の他者状態に基づき算出し、
上記行動価値統合手段は、上記自己行動価値及び他者行動価値を上記パラメータに基づき統合する
ことを特徴とする請求項１記載の行動制御システム。
【請求項３】
上記自己状態は、自己の複数種類の内部状態及び自己の複数種類の感情を有し、上記他者状態は、他者の複数種類の内部状態及び他者の複数種類の感情を有する
ことを特徴とする請求項２記載の行動制御システム。
【請求項４】
上記パラメータ算出手段は、上記自己状態に基づき上記パラメータを算出する
ことを特徴とする請求項２記載の行動制御システム。
【請求項５】
上記パラメータ算出手段は、上記他者状態に基づき上記パラメータを算出する
ことを特徴とする請求項２記載の行動制御システム。
【請求項６】
上記自己行動価値算出手段は、各行動に対応づけられた現在の自己状態に基づき各行動に対する欲求を示す自己欲求値を求め、上記外部刺激に基づき変化すると予想される自己状態を示す予想自己状態変化に基づき予想自己満足度変化を求め、該自己欲求値及び予想自己満足度変化に基づき、各行動に対する上記自己行動価値を算出し、
上記他者行動価値算出手段は、各行動に対応づけられた現在の他者状態に基づき各行動に対する欲求を示す他者欲求値を求め、上記外部刺激に基づき変化すると予想される他者状態を示す予想他者状態変化に基づき予想他者満足度変化を求め、該他者欲求値及び予想他者満足度変化に基づき、各行動に対する上記他者行動価値を算出する
ことを特徴とする請求項２記載の行動制御システム。
【請求項７】
上記自己行動価値算出手段は、上記現在の自己状態から現在の自己満足度を求め、該自己満足度及び上記予想自己満足度変化と、上記自己欲求値とに基づき、各行動に対する上記自己行動価値を算出し、
上記他者行動価値算出手段は、上記現在の他者状態から現在の他者満足度を求め、該他者満足度及び上記予想他者満足度変化と、上記他者欲求値とに基づき、各行動に対する上記他者行動価値を算出する
ことを特徴とする請求項６記載の行動制御システム。
【請求項８】
上記自己行動価値算出手段は、各行動に対応付けられた所定の外部刺激に対する上記予想自己状態変化が記憶された自己行動価値算出用データベースを参照して上記自己行動価値を算出し、
上記他者行動価値算出手段は、各行動に対応付けられた所定の外部刺激に対する上記他者予想状態変化が記憶された他者行動価値算出用データベースを参照して上記他者行動価値を算出する
ことを特徴とする請求項６記載の行動制御システム。
【請求項９】
自律的に行動するロボット装置における行動制御方法において、
複数の行動記述モジュールに記述された各行動の実行優先度を示す行動価値を算出する行動価値算出工程と、
上記行動価値に基づき少なくとも１つの行動を選択する行動選択工程とを有し、
上記行動価値算出工程は、自己を基準にして各行動の実行優先度を示す自己行動価値を算出する自己行動価値算出工程と、インタラクション対象となる他者を基準にして各行動の実行優先度を示す他者行動価値を算出する他者行動価値算出工程と、該自己行動価値及び他者行動価値に基づき上記行動価値を算出する行動価値統合工程とを有する
ことを特徴とする行動制御方法。
【請求項１０】
センサ情報から上記ロボット装置に対する外部刺激を認識する外部刺激認識工程と、
少なくとも自己の複数種類の内部状態を含む自己状態を管理する自己状態管理工程と、
少なくとも他者の複数種類の内部状態を含む他者状態を管理する他者状態管理工程と、
自己の状態を重視するか他者の状態を重視するかを決定するパラメータを算出するパラメータ算出工程とを有し、
上記自己行動価値算出工程では、所定の外部刺激及び所定の自己状態が対応付けられた各行動の自己行動価値を、該外部刺激及び自己状態に基づき算出し、
上記他者行動価値算出工程では、所定の外部刺激及び所定の他者状態が対応付けられた各行動の他者行動価値を、該外部刺激及び自己状態に基づき算出し、
上記行動価値統合工程では、上記自己行動価値及び他者行動価値を上記パラメータに基づき統合する
ことを特徴とする請求項９記載の行動制御方法。
【請求項１１】
上記自己状態は、自己の複数種類の内部状態及び自己の複数種類の感情を有し、上記他者状態は、他者の複数種類の内部状態及び他者の複数種類の感情を有する
ことを特徴とする請求項１０記載の行動制御方法。
【請求項１２】
上記パラメータ算出工程では、上記自己状態に基づき上記パラメータを算出する
ことを特徴とする請求項１０記載の行動制御方法。
【請求項１３】
上記パラメータ算出工程では、上記他者状態に基づき上記パラメータを算出する
ことを特徴とする請求項１０記載の行動制御方法。
【請求項１４】
上記自己行動価値算出工程では、各行動に対応づけられた現在の自己状態に基づき各行動に対する欲求を示す自己欲求値を求め、上記外部刺激に基づき変化すると予想される自己状態を示す予想自己状態変化に基づき予想自己満足度変化を求め、該自己欲求値及び予想自己満足度変化に基づき、各行動に対する上記自己行動価値を算出し、
上記他者行動価値算出工程では、各行動に対応づけられた現在の他者状態に基づき各行動に対する欲求を示す他者欲求値を求め、上記外部刺激に基づき変化すると予想される他者状態を示す予想他者状態変化に基づき予想他者満足度変化を求め、該他者欲求値及び予想他者満足度変化に基づき、各行動に対する上記他者行動価値を算出する
ことを特徴とする請求項１０記載の行動制御方法。
【請求項１５】
上記自己行動価値算出工程では、上記現在の自己状態から現在の自己満足度を求め、該自己満足度及び上記予想自己満足度変化と、上記自己欲求値とに基づき、各行動に対する上記自己行動価値を算出し、
上記他者行動価値算出工程では、上記現在の他者状態から現在の他者満足度を求め、該他者満足度及び上記予想他者満足度変化と、上記他者欲求値とに基づき、各行動に対する上記他者行動価値を算出する
ことを特徴とする請求項１４記載の行動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己の状態や、周囲の状態に応じて自律的に行動を発現するロボット装置の行動制御システム、及びロボット装置の行動制御方法に関する。
【背景技術】
【０００２】
エンターテイメント用などに用いられるロボット装置で実現されていた従来の自律的行動選択手法は、自己の状態をいかに満たすかということを判断基準とするものであり、このため、ロボット装置が自律的に行動選択を行っているときは、コミュニケーション対象又はインタラクション対象の状態に関係なく、ロボット装置への外部刺激や時間変化による内部状態の変化に合わせて、ボールで遊ぶ、寝る、充電して欲しいと要求するなどの行動が次々に切り替わることになる。このような行動制御手法は、エンターテイメント用のロボット装置という視点から考えた場合には、ロボット装置の自由気ままな行動を見て人間が世話をし、動物をかわいがるような感覚でコミュニケーションを実現するという点では、十分要求を満たしている（例えば下記特許文献１など）。
【０００３】
また、自律的に行動選択を行っているロボット装置に対して、人間の要求を考慮した行動を行わせる方法については、様々なものが実現されている。これらの多くの場合は、人間がロボット装置側に音声コマンドやコントローラなどを用いて明示的に意思を伝達することにより、人間の要求を考慮した行動を行わせることができる。
【０００４】
一方、他者が明示的な意思を伝達する代わりに、システム側が利用者（コミュニケーション対象）となる他者の感情を推定して、他者が希望する機能を推定し、機能を切り替える装置も従来から提案されている。いずれの装置も他者の感情を推定した結果を考慮して機能を切り替えるという機能に限定することで、他者に対して絶対的に従順な振る舞いさせることができる。
【０００５】
【特許文献１】特開２００１−１５７９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、自己の状態のみを考慮して行動選択を行うようなロボット装置においては、明示的な命令がない限り、コミュニケーション対象又はインタラクション対象の状態を考慮することがない。したがって、ロボット装置と他者である人間との自然なコミュニケーションを実現しようとすると、とかく人間側がロボット装置の状態遷移に合わせてどのようにインタラクションするかを判断する必要がある。
【０００７】
すなわち、ロボット装置の切り替わった行動を見て偶然に人間側が気持ちをなごませるのではなく、ロボット装置側が積極的に人間の状態を観察し、その状態をよくしようと試みた結果、必然的に人間の気持ちが癒されるような、人間の気持ちを考慮した人間にとってのパートナーという位置づけのロボット装置は、上述のような自己の状態を満たすだけの行動選択アーキテクチャでは実現することが困難である。
【０００８】
また、他者の状態のみを考慮して行動選択を行う又は機能を切り替えるだけのロボット装置においては、自己の状態を考慮しないため、例えば、ロボット装置自身の状態が危険に瀕しており、自分を保護する行動を優先しなければならないときにおいても自分を保護するような行動を選択することができない。また、特に考慮するべき他者となるような人間が周囲にいないときには、行動を選択することができない。すなわち、自己の状態が悪い場合や考慮すべき相手が周囲に存在しないような場合には、ロボット装置自身の状態を考慮した自律的な行動選択を行い、自己の状態が満たされているときや他者の状態が極めて悪いと判断されたときには、他者の状態、感情を考慮して、他者の状態をよくするように自らの行動選択を行う、というように、双方の機能を適応的に切り替えて処理を行うことができない。また、他者の感情を考慮して行動を選択するのみの機能では、人間の従僕的な機械装置という印象が強くなってしまう。
【０００９】
エンターテイメント用のロボット装置の持つよさである、自己の内部状態に基づく自律的行動判断がもたらす「気ままさ」や「ロボット装置自身の意思」を実現することができれば、ロボット装置の行動を、現実の生物が持つ行動パターンに近づけることができる。
【００１０】
本発明は、このような従来の実情に鑑みて提案されたものであり、自律型ロボット装置に求められる自己の状態を考慮した行動選択基準と、他者の状態を考慮した行動選択基準とを状況に応じて適応的に切り替える機能を有するロボット装置の行動制御システム及びロボット装置の行動制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した目的を達成するために、本発明に係る行動制御システムは、自律的に行動するロボット装置における行動制御システムにおいて、複数の行動記述モジュールに記述された各行動の実行優先度を示す行動価値を算出する行動価値算出手段と、上記行動価値に基づき少なくとも１つの行動を選択する行動選択手段とを有し、上記行動価値算出手段は、自己の状態を基準にして各行動の実行優先度を示す自己行動価値を算出する自己行動価値算出手段と、インタラクション対象となる他者の状態を基準にして各行動の実行優先度を示す他者行動価値を算出する他者行動価値算出手段と、該自己行動価値及び他者行動価値に基づき上記行動価値を算出する行動価値統合手段とを有することを特徴とする。
【００１２】
本発明においては、各行動の実行優先度を示す行動価値を、自己の状態を基準にして求めた自己行動価値と、インタラクション又はコミュニケーションの対象となるユーザ（人間）などの他者の状態を基準して求めた他者行動価値とを統合して求めるため、従来自己の状態のみを考慮して他者のことを全く考慮しないわがままで自分勝手に見えるような行動のみを選択したり、自己の状態を全く考慮せず他者の状態のみを考慮して他者の言うなりで従順な行動のみ選択したりすることがなく、自己及び他者のいずれの状態をも考慮した行動選択が可能となる。
【００１３】
また、センサ情報から上記ロボット装置に対する外部刺激を認識する外部刺激認識手段と、少なくとも自己の複数種類の内部状態を含む自己状態を管理する自己状態管理手段と、少なくとも他者の複数種類の内部状態を含む他者状態を管理する他者状態管理手段と、自己の状態を重視するか他者の状態を重視するかを決定するパラメータを算出するパラメータ算出手段とを有し、上記各行動は、所定の外部刺激及び所定の自己状態、並びに所定の外部刺激及び所定の他者状態が対応付けられたものであって、上記自己行動価値算出手段は、各行動の自己行動価値を、各行動に対応付けられた所定の外部刺激及び所定の自己状態に基づき算出し、上記他者行動価値算出手段は、各行動の他者行動価値を、各行動に対応付けられた所定の外部刺激及び所定の他者状態に基づき算出し、上記行動価値統合手段は、上記自己行動価値及び他者行動価値を上記パラメータに基づき統合することができ、自己の状態を重視するか、他者の状態を重視するかを決定するパラメータの設定を変更し、例えば自己の状態を重視してわがままな性格を示すような振る舞いをさせたり、他者の状態を重視して他者思いのやさしい性格を示すような振る舞いをさせたりするなど、ロボット装置の正確を自由に変更することができる。
【００１４】
更に、上記自己状態は、自己の複数種類の内部状態及び自己の複数種類の感情を有し、上記他者状態は、他者の複数種類の内部状態及び他者の複数種類の感情を有することができ、自己状態及び他者状態に、自己の感情、他者の感情を含むようにすることで、自己の感情や他者の感情を考慮した行動を選択することができる。
【００１５】
更にまた、上記パラメータ算出手段は、上記自己状態に基づき上記パラメータを算出することができ、例えば自己の状態がよい場合は、他者の状態を重視し、自己の状態が悪い場合には、自己の状態を重視するようにパラメータを設定することができる。
【００１６】
また、上記パラメータ算出手段は、上記他者状態に基づき上記パラメータを算出することができ、例えば他者の状態がよい場合は、自己の状態を重視し、他者の状態が悪い場合には、他者の状態を重視するようにパラメータを設定することができる。
【００１７】
更に、上記自己行動価値算出手段は、各行動に対応づけられた現在の自己状態に基づき各行動に対する欲求を示す自己欲求値を求め、上記外部刺激に基づき変化すると予想される自己状態を示す予想自己状態変化に基づき予想自己満足度変化を求め、該自己欲求値及び予想自己満足度変化に基づき、各行動に対する上記自己行動価値を算出し、上記他者行動価値算出手段は、各行動に対応づけられた現在の他者状態に基づき各行動に対する欲求を示す他者欲求値を求め、上記外部刺激に基づき変化すると予想される他者状態を示す予想他者状態変化に基づき予想他者満足度変化を求め、該他者欲求値及び予想他者満足度変化に基づき、各行動に対する上記他者行動価値を算出することができ、環境や他者とのコミュニケーションに応じて変化する自己の状態、他者の状態及び種々の外部刺激に対して一義的ではない様々な行動を発現することができる。
【００１８】
更にまた、上記自己行動価値算出手段は、上記現在の自己状態から現在の自己満足度を求め、該自己満足度及び上記予想自己満足度変化と、上記自己欲求値とに基づき、各行動に対する上記自己行動価値を算出し、上記他者行動価値算出手段は、上記現在の他者状態から現在の他者満足度を求め、該他者満足度及び上記予想他者満足度変化と、上記他者欲求値とに基づき、各行動に対する上記他者行動価値を算出することができ、自己行動価値及び他者行動価値は、例えば自己内部状態（自己欲求値）、他者内部状態（他者欲求値）に強く依存するように設定したり、外部刺激（予想自己満足度変化及び予想自己満足度、予想他者満足度変化及び予想他者満足度）に強く依存するように設定したりすることができる。
【００１９】
本発明に係る行動制御方法は、自律的に行動するロボット装置における行動制御方法において、複数の行動記述モジュールに記述された各行動の実行優先度を示す行動価値を算出する行動価値算出工程と、上記行動価値に基づき少なくとも１つの行動を選択する行動選択工程とを有し、上記行動価値算出工程は、自己を基準にして各行動の実行優先度を示す自己行動価値を算出する自己行動価値算出工程と、インタラクション対象となる他者を基準にして各行動の実行優先度を示す他者行動価値を算出する他者行動価値算出工程と、該自己行動価値及び他者行動価値に基づき上記行動価値を算出する行動価値統合工程とを有することを特徴とする。
【発明の効果】
【００２０】
本発明に係る行動制御システム及び方法によれば、自律的に行動するロボット装置における行動制御システム及び方法において、複数の行動記述モジュールに記述された各行動の実行優先度を示す行動価値を算出し、この行動価値に基づき少なくとも１つの行動を選択するが、行動価値を算出する際には、自己の状態を基準にして各行動の実行優先度を示す自己行動価値と、インタラクション対象となる他者の状態を基準にして各行動の実行優先度を示す他者行動価値とを算出し、この自己行動価値及び他者行動価値に基づき上記行動価値を算出するので、自己の状態のみから算出する自己行動価値と他者の状態のみから算出する他者行動価値とから、自己及び他者のいずれの状態をも考慮した行動選択が可能となり、例えば自己の状態を重視してわがままな性格のように振舞わせたり、他者の状態を重視して思いやりがある性格のように振舞わせたりすることができ、より生物らしい行動選択を行うことが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、ペット型エージェント、人間型エージェント等生命を模擬し、ユーザとのインタラクションを可能とするロボット装置に適用したものであるが、ここでは先ず、このようなロボット装置の構成について説明し、次にロボット装置の制御システムのうち、自律的に発現する行動を選択する行動選択制御システムについて説明し、最後にそのような行動選択制御システムを含むロボット装置の制御システムについて説明する。
【００２２】
（Ａ）ロボット装置の構成
図１は、本実施の形態のロボット装置の外観を示す斜視図である。図１に示すように、ロボット装置１は、体幹部ユニット２の所定の位置に頭部ユニット３が連結されると共に、左右２つの腕部ユニット４Ｒ／Ｌと、左右２つの脚部ユニット５Ｒ／Ｌが連結されて構成されている（但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下において同じ。）。
【００２３】
図２は、本実施の形態におけるロボット装置１の機能構成を模式的に示すブロック図である。図２に示すように、ロボット装置１は、全体の動作の統括的制御及びその他のデータ処理を行う制御ユニット２０と、入出力部４０と、駆動部５０と、電源部６０とで構成される。以下、各部について説明する。
【００２４】
入出力部４０は、入力部として人間の目に相当し、外部の状況を撮影するＣＣＤカメラ１５、及び耳に相当するマイクロフォン１６や頭部や背中等の部位に配設され、所定の押圧を受けるとこれを電気的に検出することで、ユーザの接触を感知するタッチ・センサ１８、前方に位置する物体までの距離を測定するための距離センサ、五感に相当するその他、ジャイロセンサ等、各種のセンサを含む。また、出力部として、頭部ユニット３に備えられ、人間の口に相当するスピーカ１７、及び人間の目の位置に設けられ、感情表現や視覚認識状態を表現する例えばＬＥＤインジケータ（目ランプ）１９等を装備しており、これら出力部は、音声やＬＥＤインジケータ１９の点滅等、脚等による機械運動パターン以外の形式でもロボット装置１からのユーザ・フィードバックを表現することができる。
【００２５】
例えば頭部ユニットの頭頂部の所定箇所に複数のタッチ・センサ１８を設け、各タッチ・センサ１８における接触検出を複合的に活用して、ユーザからの働きかけ、例えばロボット装置１の頭部を「撫でる」「叩く」「軽く叩く」等を検出することができ、例えば、押圧センサのうちの幾つかが所定時間をおいて順次接触したことを検出した場合、これを「撫でられた」と判別し、短時間のうちに接触を検出した場合、「叩かれた」と判別する等場合分けし、これに応じて内部状態も変化し、このような内部状態の変化を上述の出力部等により表現することができる。
【００２６】
駆動部５０は、制御ユニット２０が指令する所定の運動パターンに従ってロボット装置１の機体動作を実現する機能ブロックであり、行動制御による制御対象である。駆動部５０は、ロボット装置１の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール、ピッチ、ヨー等各軸毎に設けられた複数の駆動ユニット５４１〜５４ｎで構成される。各駆動ユニット５４１〜５４ｎは、所定軸回りの回転動作を行うモータ５１１〜５１ｎと、モータ５１１〜５１ｎの回転位置を検出するエンコーダ５２１〜５２ｎと、エンコーダ５２１〜５２ｎの出力に基づいてモータ５１１〜５１ｎの回転位置や回転速度を適応的に制御するドライバ５３１〜５３ｎとの組み合わせで構成される。
【００２７】
本ロボット装置１は、２足歩行としたが、駆動ユニットの組み合わせ方によって、ロボット装置１を例えば４足歩行等の脚式移動ロボット装置として構成することもできる。
【００２８】
電源部６０は、その字義通り、ロボット装置１内の各電気回路等に対して給電を行う機能モジュールである。本参考例に係るロボット装置１は、バッテリを用いた自律駆動式であり、電源部６０は、充電バッテリ６１と、充電バッテリ６１の充放電状態を管理する充放電制御部６２とで構成される。
【００２９】
充電バッテリ６１は、例えば、複数本のリチウムイオン２次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【００３０】
また、充放電制御部６２は、バッテリ６１の端子電圧や充電／放電電流量、バッテリ６１の周囲温度等を測定することでバッテリ６１の残存容量を把握し、充電の開始時期や終了時期等を決定する。充放電制御部６２が決定する充電の開始及び終了時期は制御ユニット２０に通知され、ロボット装置１が充電オペレーションを開始及び終了するためのトリガとなる。
【００３１】
制御ユニット２０は、「頭脳」に相当し、例えばロボット装置１の機体頭部あるいは胴体部に搭載されている。
【００３２】
図３は、制御ユニット２０の構成を更に詳細に示すブロック図である。図３に示すように、制御ユニット２０は、メイン・コントローラとしてのＣＰＵ（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）を算出し、この行動価値ＡＬに基づき、実行する行動を選択する。なお、ここでは、ロボット装置の行動制御のうち、自身及び他者の状態と外部からの刺激とから発現する行動を選択して出力するまでの行動選択制御方法について説明するが、ロボット装置の制御システムの全体の構成についての詳細は後述する。
【００４４】
ロボット装置の自らの状態を満たす行動を自律的に選択するアルゴリズムに関しては、ロボット装置自身の内部状態から算出される欲求及び満足度、並びに外部刺激によって定義される予想満足度から、リソースが重複しない範囲で行動価値が高い行動を複数同時に選択することを可能にする行動選択制御システムが本願出願人により先に提案されている（例えば特願２００３−６５５８７号など）。この行動選択制御システムは、ロボット装置の内部状態を管理するオブジェクト（状態管理部：Internal State Model（ＩＳＭ））及び内部状態の評価を行う、すなわち内部状態を欲求度や満足度に換算するために参照するデータベース（Activation Level Schema Library（ALSchemaLib））と、その内部状態を満たすことを可能にする行動セットとから構成される。
【００４５】
これに対し、本実施の形態における行動選択制御システムにおいては、インタラクション対象の人間などの他者の状態を推定し、上述の自己の状態を満たす行動を自律的に選択する行動選択制御システムに、この他者の状態を入力することによって、自己の状態のみならず他者の状態をも考慮した行動を実現するものである。すなわち、本実施の形態における行動選択制御システムにおいては、他者の状態を推定して獲得した他者の状態を管理するためのオブジェクト（他者状態管理部：Inter-ISM）、他者の情動を推定し管理する他者情動管理部、他者の内部状態の評価をするためのデータベース（Inter-ALSchemaLib）、及び他者の状態を変化させるためにロボット装置の取りうる行動セットを更に有する。また、自己の状態、他者の状態それぞれについて算出された行動価値ＡＬをどの程度の割合で行動選択に反映させるかを決定するパラメータを管理するオブジェクトを有する。
【００４６】
（１）行動選択制御システムの全体構成
次に、本実施の形態における行動選択制御システムについて具体的に説明する。図４は、ロボット装置の行動選択制御システムを示すブロック図である。図４に示すように、本実施の形態における行動選択制御システム１００は、ロボット装置自身の内部状態や複数種類の感情からなる情動を数式モデル化して管理する自己状態管理部９５と、ロボット装置のインタラクション又はコミュニケーション対象となる他者についての内部状態や複数種類の感情からなる情動を数式モデル化して管理する他者状態管理部９８と、自己状態管理部９５及び他者状態管理部９８の出力結果に基づき、自己の状態を基準にした行動を発現するか、他者の状態を基準にした行動を発現するかを決定するための、後述するパラメータを算出するエゴパラメータ算出部９９と、自己状態管理部９５及び他者状態管理部９８の出力結果、認識器８０から供給される外部刺激、及び上記パラメータに基づき、複数の行動について、各行動の実行優先度を示す行動価値ＡＬを算出し、この行動価値ＡＬに基づき複数の行動から１又はリソースが競合しない複数の行動を選択して出力する状況依存行動階層（ＳＢＬ：Situated Behaviors Layer）１０２とを有する。
【００４７】
自己状態管理部９５には、音声入力部、画像入力部などの各種の認識器８０にて認識された認識結果のうち、自己の内部状態、情動の算出に必要なセンサ値（外部刺激）が抽出され、入力される。この自己状態管理部９５は、認識器８０にて認識された外部刺激を自己の内部状態に換算し、管理する自己内部状態管理部９１と、自己内部状態及び外部刺激などに応じて自己の感情状態（自己情動）を算出する自己情動値算出部９４とを有し、自己状態をエゴパラメータ算出部９９及びＳＢＬ１０２に供給する。ここで、エゴパラメータ算出部９９及びＳＢＬ１０２に供給する自己状態とは、自己内部状態及び自己情動からなり、自己内部状態は、複数種類の内部状態が数値化された複数の自己内部状態パラメータ群（自己内部状態ベクトル）であり、自己情動は、複数種類の感情が数値化された感情パラメータ群（自己情動ベクトル）であり、自己状態管理部９５は、これら自己内部状態パラメータ群及び自己感情パラメータ群からなる自己状態パラメータ群を自己状態として管理する。
【００４８】
他者状態管理部９８は、各種の認識器８０から他者の内部状態の算出に必要なセンサ値（外部刺激）が入力され、この認識結果から他者の内部状態を推定し、管理する他者内部状態管理部９６と、同じく各種の認識器８０の認識結果に基づき他者の感情状態（他者情動値）を推定し、管理する他者情動管理部９７とを有する。この他者状態管理部９８は、他者状態をエゴパラメータ算出部９９及びＳＢＬ１０２に出力する。ここで、エゴパラメータ算出部９９及びＳＢＬ１０２に供給する他者状態とは、他者内部状態及び他者情動からなり、他者内部状態は、複数種類の内部状態が数値化された複数の他者内部状態パラメータ群（他者内部状態ベクトル）であり、他者情動は、複数種類の感情が数値化された感情パラメータ群（他者情動ベクトル）であり、他者状態管理部９５は、これら自己内部状態パラメータ群及び自己感情パラメータ群からなる他者状態パラメータ群を他者状態として管理する。
【００４９】
ＳＢＬ１０２は、要素行動が記述された複数の行動記述モジュール（スキーマ）１３２が木構造に構成されてなり（スキーマツリー、行動セット）、各スキーマ１３２は、自身に記述された行動についての実行優先度を示す行動価値ＡＬを算出する行動価値算出部１２０を有する。
【００５０】
行動価値算出部１２０は、図５に示すように、自己状態管理部９５から入力される自己内部状態及び自己情動からなる自己状態と、認識器１１から入力される外部刺激とに基づき、ロボット装置自身（自己）を基準とした各行動の実行優先度を示す自己行動価値（以下、自己ＡＬ（ＡＬｓｅｌｆ）という。）を算出するために必要なパラメータ、データなどが格納された後述するデータベース（以下、自己用ＤＢという。）１２１を参照して自己ＡＬを算出する自己ＡＬ算出部１２２と、他者状態管理部９８から入力される他者内部状態及び情動からなる他者状態と、認識器８０から入力される外部刺激とに基づき、他者を基準として各行動の実行優先度を示す他者行動価値（以下、自己ＡＬ（ＡＬｏｔｈｅｒという。）を算出するために必要なパラメータ、データなどが格納された後述するデータベース（以下、他者用ＤＢという。）１２３を参照して他者ＡＬを算出する他者ＡＬ算出部１２４と、自己ＡＬと他者ＡＬとを、エゴパラメータ算出部９９にて算出されるパラメータにより統合して、行動選択に使用する最終的な行動価値ＡＬを算出するＡＬ統合部１２５とを有する。
【００５１】
自己用ＤＢ１２１には、自己内部状態を評価して自己欲求値及び自己満足度を算出するための評価関数の形状を決定するパラメータ、並びに自己ＡＬを算出するために使用される、外部刺激に対応付けられた予想他者内部状態変化が格納され、他者用ＤＢ１２３には、他者内部状態を評価して他者欲求値及び他者満足度を算出するための評価関数の形状を決定するパラメータ、並びに他者ＡＬを算出するために使用される、外部刺激に対応付けられた予想他者内部状態変化が格納されている。これらデータベースは、自己ＡＬ算出部１２２、他者ＡＬ算出部１２４のみならず、エゴパラメータ算出部９９など必要に応じて他のモジュールも参照可能となっている。
【００５２】
ＳＢＬ１０２では、価値算出部１２０にて算出された行動価値ＡＬが最も高いもの１つが選択されたり、又はリソースの競合しない範囲で行動価値ＡＬが高いものから複数選択され、選択されたスキーマ１３２に記述された行動を出力する。
【００５３】
エゴパラメータ算出部９９にて算出されるパラメータは、行動選択に際してどの程度、自己の状態を重視するか、又は他者の状態を重視するかを決定するパラメータであり、このパラメータを本明細書においては、エゴイスティックパラメータ（Egoistic Parameter）（以下、エゴパラメータという。）ということとする。
【００５４】
自己ＡＬとは、その要素行動に記述された行動をロボット装置がどれくらいやりたいか（自己を基準にした実行優先度）を示すもので、他者ＡＬとは、その要素行動に記述された行動を、他者がロボット装置にどれくらいやってほしいかを推測した値（他者を基準にした実行優先度）を示すもので、自己ＡＬ及び他者ＡＬをエゴパラメータに基づき統合した行動価値ＡＬに基づき、ＳＢＬ１０２における例えばルートスキーマなどの図示せぬ行動選択部が、行動価値ＡＬが高い１又は複数の要素行動が記述されたスキーマを選択し、選択されたスキーマは自身に記述された要素行動を出力する。即ち、各スキーマ１３２が自身の行動価値算出部１２０により、行動価値ＡＬの算出を行い、リソースが競合しない範囲で、高い値の行動価値ＡＬを有するスキーマが選択され、その要素行動が出力されることで、ロボット装置は行動を発現するようになされている。
【００５５】
なお、本実施の形態においては、一のスキーマは、当該スキーマに定義される、すなわち当該スキーマに記述された要素行動に対応付けられた自己内部状態及び外部刺激に基づき自己ＡＬを算出し、同一の要素行動に対応付けられた他者内部状態及び外部刺激に基づき他者ＡＬを算出し、これらをエゴパラメータにより統合した値を行動価値ＡＬとして出力する行動価値算出部１２０を有するものとするが、同一の要素行動が記述されたスキーマを２つ用意し、これらが別々に自己ＡＬ及び他者ＡＬを算出してエゴパラメータを乗算した値を自身の行動価値ＡＬとし、その値が高いスキーマを選択するようにしてもよい。
【００５６】
このように、本実施の形態における行動選択制御システムにおいては、各スキーマが行動価値ＡＬを算出し、この行動価値ＡＬに基づき発現する行動が選択されるが、図５に示すように、この行動価値ＡＬを算出する際に、自己の状態に基づき算出する自己ＡＬと、他者の状態に基づき算出する他者ＡＬとを求め、これを自己の状態を重視するか他者の状態を重視するかを決めるエゴパラメータで重み付き加算することで、より生物らしい、又はエンターテイメント性が高い行動選択を可能とするものである。すなわち、例えばロボット装置自身の内部状態が満たされ、機嫌がよい場合には、他者ＡＬの値を重視するようエゴパラメータを設定すれば、他者の内部状態や情動を推定し、他者の内部状態を満たすような又は他者を喜ばせるような行動をより選択しやすくするものである。
【００５７】
次に、本実施の形態における行動価値ＡＬの算出方法を、自己及び他者の状態管理方法、自己及び他者のＡＬの算出方法、エゴパラメータの算出方法、自己ＡＬ及び他者ＡＬの統合方法の順にて詳細に説明する。
【００５８】
（２）自己状態管理方法
ロボット装置は、自己の内部状態や感情状態を数値化してロボット装置自身の中で管理することによって自己モデルをつくり、自己状態を管理することができる。自己状態を管理する自己状態管理部９５は、自己内部状態管理部９１にて自己の内部状態を管理し、自己情動管理部９４にて複数の感情からなる情動を管理する。
【００５９】
図６は、ロボット装置の自己内部状態管理部９１にて管理される自己内部状態モデルを示す模式図である。ロボット装置自身の内部状態とは例えば、累積の歩行歩数や消費電力に基づいて算出される疲れ（FATIGUE）、関節トルクの大きさを示す痛み（PAIN）、バッテリの残量を示す栄養状態又は満腹度合（NOURISHMENT）、活動時間の長さで変化する眠気（SLEEP）などがある。
【００６０】
また、その他、眠気の逆値（例えば、AWAKE=100-SLEEP）を示す覚醒（AWAKE）、接触センサを長押しされた回数に基づいて算出される気持ちよさ（COMFORT）、疲れの逆値（例えば、VITALITY=100-FATIGUE）を示す元気（VITALITY）、対話スキーマがアクティブであった時間（対話の実行時間）に基づいて算出されるインタラクション（INTERACTION）、並びに、対話中に取得した、対話相手に関する情報（名前、好きな食べものなど）の取得量に基づいて算出される情報量（INFORMATION）及び情報共有（INFOSHARE）などを定義することができる。
【００６１】
ここで、情報量（INFORMATION）は、例えば対話相手から取得するなどした情報量が少ない場合に、対話相手についてさらに色々聞きたいと思う欲求が高まるよう設定される内部状態であり、情報共有（INFOSHARE）は、例えば対話相手などから取得した情報量が増加するとそれを対話相手に教えたいとする欲求が高まるよう設定される内部状態を示す。
【００６２】
また、本実施の形態においては、上記１０個の内部状態のうち、図中は、ＩＬ（Low Level）のインデックスを付加した６つの内部状態、すなわち痛み（PAIN）、気持ちよさ（COMFORT）、栄養状態（NOURISHMENT）、眠気（SLEEP）、覚醒（AWAKE）、及び疲れ（FATIGUE）を示す内部状態は、ロボット装置に搭載された物理センサ情報（外部刺激）を評価した結果に依存して決定する内部状態を示し、ロボット装置の物理的な状態から一意に値が決定されるものである。
【００６３】
一方、図中ＩＨ（High Level）のインデックスを付加した４つの内部状態、すなわち、元気（VITALITY）、インタラクション（INTERACTION）、情報量（INFORMATION）、及び情報共有（INFOSHARE）を示す内部状態は、ロボット装置に搭載された物理センサ情報のみでは決定できない内部状態を示し、仮想的にソフトウェアで認識器を作成することで、ここから値を変更又は評価することが可能な内部状態を示す。具体的には、例えば、対話をした時間を監視するソフトウェアオブジェクトを用意し、対話をしたときにはこの対話時間に基づいて、内部状態：情報量（INTERACTION）の変更量を自己状態管理部（ＩＳＭ）に直接送る。そして、ロボット装置は、後述するように、対話相手から取得した情報が少なければ、例えば対話相手にさらに話かけたり、対話相手から十分な情報が取得できた場合には例えば対話を終了したりなど、この内部状態：情報量（INTERACTION）から得られる満足度が大きくなる方向に内部状態を変更するための行動を発現する。
【００６４】
なお、本実施の形態においては、これら１０個の内部状態を定義して設けるものとするが、必要に応じて所望の欲求、満足度を算出するための内部状態を適宜設定すればよいことはいうまでもない。また、内部状態は、上述のように、物理センサ情報のみから評価した結果に依存させたり、仮想的なセンサを設け、そこから評価した結果に依存させたりすることができ、これら内部状態の求め方も定義する内部状態の種類に応じて適宜設定すればよい。
【００６５】
また、自己情動管理部９４にて管理されるロボット装置自身の感情状態のモデルとしては、例えばある状態空間上に基本６情動である、喜び（JOY）、怒り（ANGER）、悲しみ（SADNESS）、恐れ（FEAR）、嫌悪（DISGUST）、驚き（SURPRISE）の６つの感情が分布する感情モデルを用いることができる。また、本実施の形態においては、これら６つの感情を６基本感情とし、その他に、通常（NEUTRAL）を示す感情を設ける。この通常（NEUTRAL）は、全ての感情値の総和が一定値になるように、他の感情値の総和が一定値以下のときに補完的に大きくなる値とするものとする。
【００６６】
この６基本感情を示す空間を構成する基底ベクトルは例えば、内部状態の満たされ具合により、快−不快の値を示す喜び（PLEASANTNESS）、センサ入力の刺激や内部で時間変化するバイオリズムなどを要因として変化し、身体の活性度を示す活性度（AROUSAL）、人物同定の結果など認識結果の信頼度を示す確信度（CERTAINTY）などとすることができる。
【００６７】
図７（ａ）〜図７（ｃ）は、本実施の形態における感情モデルを示す情動空間Ｑを示す模式図である。情動空間Ｑは、図７（ａ）に示すように、喜びＰ、活性度Ａ、確信度Ｃを軸とした３次元空間で表現することができ、例えば図７（ｂ）に示すように、確信度Ｃが−１００＜Ｃ＜０の場合、喜びＰが正であれば、感情＝喜び（JOY）を示す。また、喜びＰが負であって、活性度Ａが負であれば感情＝悲しみ（SAD）を示し、活性度Ａが正であれば恐れ（FEAR）を示す。また、図７（ｃ）に示すように、喜びＰが−１００＜Ｐ＜０の場合、確信度Ｃが正であって、活性度Ａが負であれば、感情＝嫌悪（DISGUST）を示し、活性度Ａが正であれば、感情＝怒り（ANGER）を示す。また、確信度Ｃが負であって、活性度Ａが負であれば、感情＝悲しみ（SADNESS）を示し、活性度Ａが正であれば、感情＝恐れ（FEAR）を示す。また、いずれの場合においても、活性度Ａが大きければ感情＝驚き（SURPRISE）を示す。
【００６８】
このような内部状態や、感情状態はロボット装置自身についてはロボット装置自身が有するセンサ情報を利用することで、上述の自己内部状態管理部９１、又は自己情動管理部９４にて、身体の実際の状態から直接算出することが可能である。
【００６９】
（３）他者状態管理方法
一方、他者の内部状態や感情状態については直接状態を知ることができないので、他者について観察し、センサを利用して知覚できる情報を利用して他者の状態を推定する必要がある。
【００７０】
このため、他者の内部状態や感情状態を推定した結果をロボット装置自身の中で管理するために他者モデルを有する。他者モデルとは、具体的には自己が有する内部状態、感情状態と同様の複数のパラメータを他者について設定したものであり、これらの値を他者状態管理部９８の他者内部状態管理部９６及び他者情動管理部９７にて管理する。
【００７１】
まず、他者内部状態管理部９６において相手の内部状態を推定する方法について説明する。例えば、他者の疲労又は眠気の程度を推定する方法としては、例えば画像処理の手法を用いて、他者のジェスチャの激しさや表情から他者の内部状態を推定することができる。また、音声処理の手法を用いて、他者の声をサンプリングし、その声の調子から他者の内部状態を推定することができる。または、最も簡便な方法としては、他者である推定対象の人間との対話をすることで、対話を通じて他者の内部状態に関する情報を取得することができる。
【００７２】
例えば、他者の空腹度合又は満腹度合に関しては、直接的にお腹がすいているかを他者に問い合わせてもよいし、朝食を何時にとったかを聞くことにより推定することも可能である。また、他者の疲労度合（疲れ）などに関しては、直接疲れているかを問い合わせてもよいし、いつ頃運動をしたか、いつ階段をのぼったか、などという事実から推定することが可能である。いずれにせよ、あらかじめ一連の対話のストーリー中に他者の状態を取得するための質問事項を埋め込んでおいたり、他者内部状態を推定可能なキーワードをデータベースとして保持し、他者との対話により認識した言葉を常に監視しておき、他者内部状態に反映させたりすることによって推定することが可能である。このような他者の内部状態を推定する方法は、要するに、他者の内部状態の推定を行ってその結果を数値化可能な適当な手法を用いればよく、上述した方法に特に限定されるものではない。
【００７３】
また、他者情動管理部９７における他者の感情状態を推定する方法としては、例えば他者の表情を認識する方法、他者の音声を認識する方法、または他者の表情及び音声の情報を組み合わせることで、他者の感情を認識することができる。これら、相手の感情を認識する技術は、例えば特許２８７４８５８号公報、特許２９６７０５８号公報、特許２９６００２９号公報、特開２００２−７３６３４号公報などに記載されている。これらの感情認識においては、各感情毎に専用のサブ認識器を設け、出力を論理合成して最終的な出力としたり、複数の特徴量に基づく認識結果を重み付けによって組み合わせ、最終的な出力とするものである。また、認識結果を統合する重み付けパラメータを使用する場合は、実験的に採取した教師データを元に算出したり、各認識器で利用するパラメータは認識対象の各個人毎に準備したりしてもよい。
【００７４】
具体的に他者の感情を認識する方法としては、例えば、表情を分析する場合は、画像全体の周波数成分や方向成分を抽出するフィルタリング処理を行った結果を特徴量として抽出し、このような特徴量に基づき他者感情を推定したり、例えば額や眉間、頬のしわの密度や方向、目の見開き具合、唇の形など、顔に視覚的に表れている要素の特徴を数値的に現したベクトルデータなどを特徴量として抽出し、このような特徴量に基づき他者感情を推定すればよい。また、ジェスチャを分析する場合は、手先位置の移動量、移動速度、手先軌道の切り返しの周波数などを特徴量として抽出し、このような特徴量に基づき感情を推定すればよい。更に、他者が発した会話を分析する場合は、認識した発話の平均音圧（パワー）、基本周波数（相似的な波の繰り返しのパターンが現れる周波数）、及びスペクトルなどのデータを特徴量として抽出し、このような特徴量に基づき他者感情を推定すればよい。
【００７５】
また、対話シーケンス中に気分を聞くフレーズを組み込むことで他者が発した言葉から、他者の感情を推定してもよい。このような他者の感情を推定する方法は、要するに、相手の感情認識が可能な適当な手法を用いればよく、上述した方法に特に限定されるものではない。
【００７６】
（４）自己の内部状態を満たす行動選択手法
ＳＢＬ１０２を構成する複数のスキーマ１３２は、自己及び他者内部状態及び外部刺激から行動出力を決定するモジュールであり、各モジュール毎にステートマシンを用意しており、それ以前の行動（動作）や状況に依存して、センサ入力された外部情報の認識結果を分類し、動作を機体上で発現する。このモジュール（行動記述モジュール）は、外部刺激や自己及び他者内部状態に応じた状況判断を行ない、行動価値ＡＬを算出するＭｏｎｉｔｏｒ機能と、行動実行に伴う状態遷移（ステートマシン）を実現するＡｃｔｉｏｎ機能とを備えたスキーマ（Schema）として記述される。各スキーマ１３２には、自身に記述された要素行動に応じた所定の自己及び他者内部状態と外部刺激とが定義されている。
【００７７】
ここで外部刺激とは、認識器８０において認識されたロボット装置の知覚情報等であり、例えばカメラから入力された画像に対して処理された色情報、形情報、顔情報等の対象物情報等が挙げられる。具体的には、例えば、色、形、顔、３Ｄ一般物体、及びハンドジェスチャー、その他、動き、音声、接触、距離、場所、時間、及びユーザとのインタラクション回数等が挙げられる。
【００７８】
例えば行動出力が「食べる」である要素行動のスキーマ１３２において、自己ＡＬを算出する場合は、外部刺激として対象物の種類（OBJECT_ID）、対象物の大きさ（OBJECT_SIZEという。）、対象物の距離（OBJECT_DISTANCE）等を扱い、自己内部状態として「NOURISHMENT」（「栄養状態」）、「FATIGUE」（「疲れ」）等を扱う。このように、要素行動毎に、自己ＡＬを算出するために、扱う外部刺激及び自己内部状態の種類が対応付けられ、これらの値に基づき行動（要素行動）に対する自己ＡＬが算出される。なお、１つの自己内部状態、他者内部状態、又は外部刺激は、１つの要素行動だけでなく、複数の要素行動に対応付けられていてもよいことはもちろんである。
【００７９】
次に、自己状態管理部９５からの自己状態及び外部刺激に基づき自己ＡＬを算出する方法について説明する。自己状態管理部９５における自己内部状態管理部９１は、外部刺激並びに例えば自身のバッテリの残量及びモータの回転角等の情報を入力とし、上述のような複数の内部状態を要素とする自己内部状態の値（自己内部状態ベクトルIntV（Internal Variable））を算出、管理する。例えば、自己内部状態「栄養状態」は、バッテリの残量を基に決定し、自己内部状態「疲れ」は、消費電力を基に決定することができる。
【００８０】
行動価値算出部１２０の自己ＡＬ算出部１２２は、後述する自己用ＤＢ１２１を参照し、ある時刻での外部刺激と自己内部状態とからその時刻での各要素行動に対する自己ＡＬを算出する。この自己ＡＬ算出部１２２は、本実施の形態においては各スキーマ毎に個別に設けられるものとするが、１つの自己ＡＬ算出部により全ての要素行動についての自己ＡＬを算出するようにしてもよい。
【００８１】
各要素行動に対する自己ＡＬは、現在の各自己内部状態に対応する各行動に対する自己欲求値と、現在の各自己内部状態に基づく自己満足度と、外部刺激により変化すると予想される自己内部状態の変化量、即ち、外部刺激が入力され行動を発現した結果、変化すると予想される自己内部状態の変化量を示す予想自己内部状態変化に基づく予想自己満足度変化とに基づき算出される。
【００８２】
ここでは、先ず、自己ＡＬを算出する具体例として、ある「種類」、「大きさ」の対象物がある「距離」に存在するとき、行動出力が「食べる」であるスキーマの行動価値ＡＬを、自己内部状態「栄養状態」、「疲れ」とから算出する例をとって説明する。
【００８３】
図８は、行動価値算出部１２０における自己ＡＬ算出部１２２が自己内部状態及び外部刺激から自己行動価値ＡＬを算出する処理の流れを示す模式図である。本実施の形態においては、各要素行動毎に、１以上の自己内部状態を成分として有する自己内部状態ベクトルIntV（Internal Variable）が定義されており、自己内部状態管理部９１から各要素行動に応じた内部状態ベクトルIntVを得る。即ち、自己内部状態ベクトルIntVの各成分は、１つの自己内部状態の値（自己内部状態パラメータ）を示すもので、自己内部状態ベクトルIntVの各成分は、それが定義された要素行動の行動価値算出に使用される。具体的には、上記行動出力「食べる」を有するスキーマには、例えば自己内部状態ベクトルIntV{IntV_NOURISHMENT「栄養状態」，IntV_FATIGUE「疲れ」}が定義される。
【００８４】
また、各自己内部状態毎に、１以上の外部刺激の値を成分として有する外部刺激ベクトルExStml（External Stimulus）が定義されており、認識器８０から各内部状態、即ち各要素行動に応じた外部刺激ベクトルExStmlを得る。即ち、外部刺激ベクトルExStmlの各成分は、例えば上述した対象物の大きさ、対象物の種類、対象物までの距離等の認識情報を示すもので、外部刺激ベクトルExStmlが有する各成分は、それが定義された自己内部状態値の算出に使用される。具体的には、自己内部状態IntV_NOURISHMENT「栄養状態」には、例えば、外部刺激ベクトルExStml{OBJECT_ID「対象物の種類」，OBJECT_SIZE「対象物の大きさ」}が定義され、自己内部状態IntV_FATIGUE「疲れ」には、例えば外部刺激ベクトルExStml{OBJECT_DISTANCE「対象物までの距離」}が定義される。
【００８５】
自己ＡＬ算出部１２２は、この自己内部状態ベクトルIntV及び外部刺激ベクトルExStmlを入力とし、自己ＡＬを算出する。具体的には、自己ＡＬ算出部１２２は、自己内部状態ベクトルIntVから、該当する要素行動について、どれだけやりたいかを示すモチベーションベクトル（MotivationVector）を求めるモチベーションベクトル算出部ＭＶと、自己内部状態ベクトルIntV及び外部刺激ベクトルExStmlから、該当する要素行動をやることができるか否か示すリリーシングベクトル（ReleasingVector）を求めるリリーシングベクトル算出部ＲＶとを有し、これら２つのベクトルから自己ＡＬを算出する。
【００８６】
（４−１）モチベーションベクトルの算出
自己ＡＬを算出するための一方の要素であるモチベーションベクトルは、要素行動に定義されている自己内部状態ベクトルIntVから、その要素行動に対する欲求を示す自己欲求値ベクトルInsV（Instinct Variable）として求められる。例えば、行動出力「食べる」を有する要素行動１３２は、自己内部状態ベクトルIntV{IntV_NOURISHMENT，IntV_FATIGUE}を有し、これより、自己欲求値ベクトルInsV{InsV_NOURISHMENT，InsV_FATIGUE}をモチベーションベクトルとして求める。即ち、自己欲求値ベクトルInsVは、自己ＡＬを算出するためのモチベーションベクトルとなる。
【００８７】
自己欲求値ベクトルInsVの計算方法としては、例えば自己内部状態ベクトルIntVの値が大きいほど、自己の欲求が満たされているものと判断され自己欲求値は小さくなり、自己内部状態ベクトルIntVがある値より大きくなると自己欲求値は負になるような関数を用いることができる。
【００８８】
具体的には、下記式（１）及び図９に示すような関数が挙げられる。図９、横軸に自己内部状態ベクトルIntVの各成分をとり、縦軸に自己欲求値ベクトルInsVの各成分をとって、下記式（１）で示される内部状態と欲求値との関係を示すグラフ図である。
【００８９】
【数１】
2005199402.tif 000003
【００９０】
自己欲求値ベクトルInsVは、上記式（１）及び図９に示すように、自己内部状態ベクトルIntVの値のみで決まる。ここでは、自己内部状態の大きさを０乃至１００とし、そのときの自己欲求値の大きさが−１乃至１となるような関数を示す。例えば自己内部状態が８割満たされているときに、自己欲求値が０となるような自己内部状態−自己欲求値曲線Ｌ１を設定することで、ロボット装置は、常に自己内部状態が８割の状態を維持するように行動を選択するようになる。これにより、例えば、自己内部状態「栄養状態」（IntV_NORISHMENT）に対応する自己欲求が「食欲」（InsV_NORISFMENT）である場合、お腹が減っていれば食欲が大きくなり、腹八分目以上では食欲がなくなることを示し、これを利用すればそのような欲求を表出させるような行動を発現させるようにすることができる。
【００９１】
上記式（１）における定数Ａ乃至Ｆを種々変更することで、各自己内部状態毎に異なる自己欲求値が求まる。例えば、自己内部状態が０乃至１００の間において、自己欲求値が１乃至０に変化するようにしてもよいし、また、各自己内部状態毎に上記式（１）とは異なる自己内部状態−自己欲求値関数を用意してもよい。
【００９２】
（４−２）リリーシングベクトルの算出
一方、自己ＡＬを算出する他方の要素であるリリーシングベクトルは、自己内部状態ベクトルIntVから求められる自己満足度ベクトルＳ（Satisfaction）と、外部刺激ベクトルExStmlから求められる予想自己満足度変化ベクトルとから算出される。
【００９３】
先ず、各要素行動に定義されている自己内部状態と、この自己内部状態に定義されている外部刺激とから、行動発現後に得られるであろう予想自己内部状態と現在の自己内部状態との差を示す下記（２）に示す予想自己内部状態変化ベクトルを求める。なお、下記式（２）における上線は予測量であることを示す（以下、同じ）。
【００９４】
【数２】
2005199402.tif 000004
【００９５】
予想自己内部状態変化ベクトルとは、現在の自己内部状態ベクトルからの、行動発現後に変化すると予想される変化量を示すもので、自己ＡＬ算出部１２２が参照可能な自己用ＤＢ１２１を参照して求めることができる。自己用ＤＢ１２１には、外部刺激ベクトルと行動発現後に変化すると予想される予想自己内部状態変化ベクトルとの対応が記述されており、この自己用ＤＢ１２１のデータを参照することで、自己ＡＬ算出部１２２は、入力された外部刺激ベクトルに応じた予想自己内部状態変化ベクトルを取得することができる。なお、自己用ＤＢ１２１に格納される予想自己内部状態変化ベクトルについての詳細は後述する。ここでは、先ず、自己用ＤＢ１２１から予想自己内部状態変化、予想自己欲求度変化を求める方法について説明する。
【００９６】
自己用ＤＢ１２１に登録される自己ＡＬ算出データとしては、図１０（ａ）及び図１０（ｂ）に示すものが考えられる。即ち、図１０（ａ）に示すように、自己内部状態「栄養状態」（「NOURISHMENT」）に関しては、その要素行動「食べる」を発現した結果、対象物の大きさ（OBJECT_SIZE）が大きいほど、また対象物の種類（OBJECT_ID）がOBJECT_ID＝０に対応する対象物Ｍ１より、OBJECT_ID＝１に対応する対象物Ｍ２が、また、OBJECT_ID＝１に対応する対象物Ｍ２より、OBJECT_ID＝２に対応する対象物Ｍ３の方が自己内部状態「栄養状態」が満たされる量が大きく、栄養を満たすであろうと予想される場合を示している。
【００９７】
また、図１０（ｂ）に示すように、自己内部状態「疲れ」（「FATIGUE」）に関しては、その要素行動「食べる」を発現した結果、対象物の距離「OBJECT_DISTANCE」が大きいほど、自己内部状態「FATIGUE」が満たされる量が大きく、疲れるであろうと予想される場合を示している。
【００９８】
即ち、上述した如く、各行動要素に対して自己内部状態ベクトルIntV及び外部刺激ベクトルExStmlが定義されているため、外部刺激ベクトルExStmlの各成分として対象物の大きさ及び対象物の種類を有するベクトルが供給された場合、この外部刺激ベクトルExStmlが定義されている自己内部状態IntV_NOURISHMENT（「栄養状態」）を要素とする自己内部状態ベクトルに対応づけられている要素行動を出力した結果に対する予想自己内部状態変化が求められ、対象物の距離を有するベクトルが供給された場合、この外部刺激ベクトルExStmlが定義されている自己内部状態IntV_FATIGUE（「疲れ」）を要素とする自己内部状態ベクトルが定義されている要素行動を出力した結果に対する予想自己内部状態変化が求められる。
【００９９】
次に、自己内部状態ベクトルIntVから下記（３）に示す自己満足度ベクトルＳを算出し、上記（２）に示す自己予想内部状態変化ベクトルから、下記（４）に示す自己予想満足度変化ベクトルを求める。
【０１００】
【数３】
2005199402.tif 000005
【０１０１】
【数４】
2005199402.tif 000006
【０１０２】
自己内部状態ベクトルIntVに対する自己満足度ベクトルＳの計算法としては、要素行動に定義されている自己内部状態ベクトル{IntV_NOURISHMENT，IntV_FATIGUE}の各成分IntV_NOURISHMENT「栄養状態」及びIntV_FATIGUE「疲れ」に対して、夫々下記式（５−１）及び（５−２）に示すような関数が考えられる。
【０１０３】
【数５】
2005199402.tif 000007
【０１０４】
図１１及び図１２は、夫々上記式（５−１）及び（５−２）に示す関数を示すグラフ図である。図１１は、横軸に自己内部状態IntV_NOURISHMENT「栄養状態」、縦軸に自己内部状態「栄養状態」に対する自己満足度S_NOURISHMENTをとり、図１２は、横軸に自己内部状態IntV_FATIGUE「疲れ」、縦軸に自己内部状態「疲れ」に対する自己満足度S_FATIGUEをとって、自己内部状態と自己満足度との関係を示すグラフ図である。
【０１０５】
図１１に示す関数は、自己内部状態「栄養状態」の値IntV_NOURISHMENTが０乃至１００の値を有し、これに対応する自己満足度S_NOURISHMENTが０乃至１で全て正の値を有するものであって、自己内部状態の値が０から８０近傍までは自己満足度が０から増加し、それ以降は減少して自己内部状態の値が１００で再び自己満足度０になるような曲線Ｌ２を示す関数である。即ち、自己内部状態「栄養状態」に関しては、現在（ある時刻）の自己内部状態「栄養状態」の値（IntV_NOURISHMENT＝４０）から計算される自己満足度S_NOURISHMENT、図１０（ａ）によって得られる自己内部状態「栄養状態」の予想自己内部状態変化（４０から６０までの２０）に対応する予想自己満足度変化は、共に正である。
【０１０６】
また、上述の図８には曲線Ｌ２のみを示しているが、内部状態と満足度との関係としては、図１２に示すような関数を用いることもできる。即ち、図１２に示す関数は、自己内部状態「疲れ」の値IntV_FATIGUEが０乃至１００の値を有し、これに対応する自己満足度S_FATIGUEが０乃至−１で全て負の値をするものであって、自己内部状態が大きくなるほど、自己満足度が小さくなるような曲線Ｌ３を示す関数である。現在の自己内部状態「疲れ」の値から計算される自己満足度S_FATIGUEは負であり、図１０（ｂ）によって得られる自己内部状態「疲れ」の予想自己内部状態変化が正であれば、予想自己満足度変化ベクトルは負になる。
【０１０７】
上記式（５−１）、（５−２）に示される関数において、各定数Ａ〜Ｆを可変に設定することで、種々の自己内部状態に対応して異なる自己満足度を得るための関数を設定することができる。これらの各定数Ａ〜Ｆ及び上記式（１）における各定数も、自己用ＤＢ１２１に、自己内部状態別に保存される。なお、自己ＡＬ算出部１２２では、自己用ＤＢ１２１に格納されるこれらの定数を用いて自己内部状態を自己満足度、自己欲求値に変換するが、後述するエゴパラメータ算出部９９においても、自己満足度及び自己欲求値を使用するため自己用ＤＢ１２１を参照する。または、自己ＡＬ算出部１２２にて自己内部状態から換算された自己満足度、自己欲求値をエゴパラメータ算出部９９に入力するようにしてもよい。
【０１０８】
そして、下記式（６）によって、外部刺激により、行動発現後にどのくらい自己内部状態を満足させるかの値を決定することで、自己ＡＬを算出するための他方の要素であるリリーシングベクトルを求めることができる。
【０１０９】
【数６】
2005199402.tif 000008
【０１１０】
ここで、上記式（６）におけるα１が大きいと、リリーシングベクトルは予想自己満足度変化、即ち、行動を発現した結果、どれくらいの自己満足度が得られるか、即ちどれくらい自己満足度が増えるかを示す値に強く依存し、α１が小さいと、予想自己満足度、即ち、行動を発現した結果、自己満足度がどのくらいになるかを示す値に強く依存するという傾向を有することになる。
【０１１１】
（４−３）自己ＡＬの算出
以上のようにして求められたモチベーションベクトルと、リリーシングベクトルとから、最終的に自己ＡＬが下記式（７）のように算出される。
【０１１２】
【数７】
2005199402.tif 000009
【０１１３】
ここで、β１が大きいと、自己ＡＬは自己内部状態（欲求値）に強く依存し、β１が小さいと外部刺激（予想自己満足度変化及び予想自己満足度）に強く依存する傾向を有する。このようにして、自己内部状態の値（内部状態ベクトルIntV）と外部刺激の値（外部刺激ベクトルExStml）とから自己欲求値、自己満足度、予想自己満足度を計算し、これら自己欲求値、自己満足度、予想自己満足度に基づいて自己ＡＬを算出することができる。
【０１１４】
（４−４）自己用ＤＢ
次に、自己用ＤＢ１２１に格納されるデータの構造及び、データベースの参照方法（自己予想内部状態変化の求め方）について説明する。上述したように、自己用ＤＢ１２１には、入力された外部刺激に対して自己予想内部状態変化ベクトルを求めるためのデータが格納されており、各要素行動に定義された自己内部状態に対して、外部刺激ベクトル空間上に代表点（外部刺激の値）が定義されている。そして、その代表点上に予想される自己内部状態の変化量を示す予想自己内部状態変化が定義されている。そして、入力された外部刺激が、定義された外部刺激ベクトル空間の代表点上の値であった場合、予想自己内部状態変化はその代表点上に定義された値となる。
【０１１５】
図１３（ａ）及び図１３（ｂ）は、行動価値算出データ構造の一例を示すグラフ図である。図１３（ａ）に示すように、自己内部状態「栄養状態」（「NOURISHMENT」）の予想自己内部状態変化を求める場合、外部刺激ベクトル空間上の代表点｛OBJECT_ID，OBJECT_SIZE｝及びこの代表点に対応する予想自己内部状態変化を例えば下記表１のように定義しておく。
【０１１６】
【表１】
2005199402.tif 000010
【０１１７】
また、図１３（ｂ）に示すように、自己内部状態「疲れ」（「FATIGUE」）の予想自己内部状態変化ベクトルを求める場合、外部刺激ベクトル空間上の代表点｛OBJECT_DISTANCE｝及びこの代表点に対応する予想自己内部状態変化を例えば下記表２のように定義しておく。
【０１１８】
【表２】
2005199402.tif 000011
【０１１９】
このように、予想自己内部状態変化は、外部刺激ベクトル空間上の代表点にのみ定義されているため、外部刺激の種類（例えば、OBJECT_DISTANCEやOBJECT_SIZE等）によっては、定義された外部刺激ベクトル空間の代表点以外の値が入力されることが考えられる。その場合、予想自己内部状態変化は、入力された外部刺激の近傍の代表点から線形補間により求めることができる。
【０１２０】
図１４及び図１５は、夫々１次元及び２次元の外部刺激の線形補間方法を説明する図である。上述の図１３（ｂ）に示すように１つの外部刺激（OBJECT_DISTANCE）から予想自己内部状態変化を求める場合、即ち、内部状態に１つの外部刺激が定義されている場合、図１４に示すように、横軸に外部刺激をとり、縦軸にこの外部刺激に対する予想自己内部状態変化をとって、外部刺激（OBJECT_DISTANCE）のパラメータである代表点Ｄ１及び代表点Ｄ２に定義された予想自己内部状態変化となるような直線Ｌ４により、入力される外部刺激Ｄｎの予想自己内部状態変化量Ｉｎを求めることができる。
【０１２１】
また、図１５に示すように、自己内部状態に対して入力となる外部刺激が２つの成分からなる外部刺激ベクトルとして、例えば図１４に示すOBJECT_DISTANCEに加え、OBJECT_WEIGHTが定義されている場合に、各外部刺激の所定のパラメータである代表点（D１，W１），（D１，W２），（D２，W１），（D２，W２）が定義され、これに対応する予想自己内部状態変化を有している場合において、上記の４つの代表点とは異なる外部刺激Ｅｎｍ（Dn，Wn）が入力された場合、例えば先ず、OBJECT_DISTANCE＝Ｄ１において、OBJECT_WEIGHTの代表点Ｗ１，Ｗ２に定義された予想自己内部状態変化を通る直線Ｌ５を求め、同じく、OBJECT_DISTANCE＝Ｄ２において、OBJECT_WEIGHTの代表点Ｗ１，Ｗ２に定義された自己予想内部状態変化を通る直線Ｌ６を求める。そして、入力される外部刺激Ｅｎｍの２つの入力のうち、例えばＷｎに対応する２つの直線Ｌ５及びＬ６における予想自己内部状態変化を求め、更にこの２つの予想自己内部状態変化を結んだ直線Ｌ７を求め、この直線Ｌ７において入力される外部刺激Ｅｎｍの他方の外部刺激Ｄｎに対応する予想自己内部状態変化を求めることで、外部刺激Ｅｎｍに対応した予想自己内部状態変化量Ｉｎｍを線形補間により求めることができる。
【０１２２】
（４−５）自己ＡＬ算出方法
次に、図５に示す自己ＡＬ算出部５１における行動価値算出方法について、図１６に示すフローチャートを参照して説明する。
【０１２３】
図１６に示すように、先ず、図４に示す認識部８０により外部刺激が認識されると、これが自己ＡＬ値算出部１２０に供給される。この際、例えば認識部８０からの通知により、自己状態管理部９５から各自己内部状態が供給される（ステップＳ１）。
【０１２４】
次に、上述したように、供給された各自己内部状態から、例えば上記式（１）等の関数を使用して対応する自己欲求値を算出することで、自己内部状態ベクトルIntVからモチベーションベクトルとなる自己欲求値ベクトルを算出する（ステップＳ２）。
【０１２５】
また、自己ＡＬ値算出部１２２は、供給された各自己内部状態から上記式（５−１），（５−２）等の関数を使用して対応する自己満足度を算出することで、自己内部状態ベクトルIntVから、自己満足度ベクトルＳを算出する（ステップＳ３）。
【０１２６】
一方、供給された外部刺激（外部刺激ベクトル）から、上述したように、行動を発現した結果、得られると予想される予想自己内部状態変化を求める（ステップＳ４）。そして、ステップＳ３と同様の関数を用いて、この予想自己内部状態変化に対応する予想自己満足度変化を求め（ステップＳ５）、得られた予想自己満足度変化と、ステップＳ３で求めた自己満足度ベクトルとから上記式（６）により、リリーソングベクトルを算出する（ステップＳ６）。
【０１２７】
最後に、ステップＳ２にて求めたモチベーションベクトルと、ステップＳ６にて求めたリリーシングベクトルとから、上記式（７）より自己ＡＬを算出する。
【０１２８】
なお、上記ステップＳ１乃至ステップＳ７における自己ＡＬ算出部１２２における自己ＡＬの算出は、外部刺激を認識する毎に行うものとして説明したが、例えば所定のタイミングで行動価値を算出するようにしてもよい。また、外部刺激が認識され、行動価値算出が行われる際は、認識された外部刺激に関する自己内部状態についての自己欲求値及び自己満足度のみを算出するようにしてもよいし、全ての自己内部状態について自己欲求値及び自己満足度を算出するようにしてもよい。
【０１２９】
また、センサから入力される外部刺激の値にはノイズ等の原因で、代表点以外の値が入力されることがある。そのような場合でも、予想自己内部状態変化量の計算を線形補間法で行うことにより、代表点からの離れ度合いに比例して、近傍代表点の予想自己内部状態変化量を更新することができると共に少ない計算量で予想自己内部状態変化量を求めることができる。
【０１３０】
また、上述の自己用ＤＢ１２１を更新する学習手段を設け、自己用ＤＢ１２１における自己内部状態変化ベクトルから予想自己内部状態変化ベクトルを学習するようにしてもよい。
【０１３１】
なお、本実施の形態においては、自己内部状態及び外部刺激からモチベーションベクトル及びリリーシングベクトルを求め、これらから自己ＡＬを算出する方法について説明したが、自己内部状態及び外部刺激に加えて自己情動に基づき、自己ＡＬを算出してもよいことはもちろんである。例えば自己情動のうち、喜び（JOY）を示す感情パラメータが大きい場合には自己ＡＬを大きくしたり、怒り（ANGER）を示す感情パラメータは大きい場合には、自己ＡＬを小さくしたりするなどしてもよい。
【０１３２】
また、自己情動は、行動価値ＡＬの算出に使用することもできるが、ＳＢＬ１０２から出力する行動に変化を持たせるために使用することも可能である。すなわち、ＳＢＬ１０２にて、行動価値ＡＬが算出され、これに基づき行動が選択された際に、自己情動を考慮した行動を発現するように、例えば喜び（JOY）を示す感情パラメータが大きい場合には、大きく、速く動作するようにして活力が高いように振舞わせたり、怒り（ANGER）を示す感情パラメータは大きい場合には、小さく、ゆっくり動作するようにして、やる気がないように振舞わせたりしてもよい。
【０１３３】
本実施の形態においては、自己内部状態及び外部刺激に基づいて、先ず自己ＡＬを算出することにより、自分の状態のみを考慮した自己ＡＬを得ることができる。次に、他者ＡＬ算出方法について説明する。
【０１３４】
（５）他者の内部状態を満たす行動選択手法
上述したように、図４に示す他者状態管理部９８における他者内部状態管理部９６は、外部刺激やセンサ値などの情報を入力として、複数の他者内部状態を要素とする他者内部状態の値（他者内部状態ベクトルＩｎｔＶＯ）を算出、管理している。例えば他者内部状態「栄養状態」は、他者の「お腹が空いた」などの音声を認識したり、他者が食事を取った時間をロボット装置が直接聞いたりすることで決定することができる。
【０１３５】
他者内部状態ベクトルも自己内部状態ベクトルと同様、他者ＡＬを算出するために、要素行動毎に扱う外部刺激及び他者内部状態の種類が定義され、これらの値に基づき各要素行動に対する他者ＡＬが算出される。なお、１つの自己内部状態、他者内部状態、又は外部刺激は、１つの要素行動だけでなく、複数の要素行動に対応付けられていてもよいことはもちろんである。
【０１３６】
すなわち、図４に示す他者ＡＬ算出部１２４は、他者用ＤＢ１２３を参照し、ある時刻での外部刺激と他者内部状態とからその時刻での各要素行動１３２における他者ＡＬを算出する。
【０１３７】
具体的には、他者ＡＬは、現在の各他者内部状態に対応する各行動に対する他者欲求値と、現在の各他者内部状態に基づく他者満足度と、外部刺激により変化すると予想される他者内部状態の変化量、即ち、外部刺激が入力され行動を発現した結果、変化すると予想される他者内部状態の変化量を示す予想他者内部状態変化に基づく予想他者満足度変化とに基づき算出される。
【０１３８】
上述したように、他者の状態を扱うためには、他者状態管理部９８又は他者状態管理部９８の前段に、他者の状態をロボット装置の中でモデル化し、他者から得られる情報によってモデル内のパラメータを変化させる仕組み（内部・感情状態推定器）を供え、他者の状態を数値化して管理することで、他者の状態を基準とする行動価値の算出を行うことが可能になる。
【０１３９】
他者の内部状態を考慮した他者ＡＬの算出は、自己の内部状態を考慮した自己ＡＬの算出と同様のプロセスで行われる。異なる点は、行動価値を算出するためのデータベースが自己の満足を満たす観点で設定されているか、他者の満足を満たす観点で設定されているかの点である。すなわち、自己用ＤＢ１２１は自己満足を満たす観点で設定されているのに対し、他者用ＤＢ１２３は、他者の満足度を満たす観点で設定される。
【０１４０】
次に、ロボット装置が「食べ物を探してきて人に差し出す（食べ物を与える）」という行動を例にとって他者ＡＬを算出する方法について説明する。「食べ物を与える」行動は他者の栄養状態（IntVO_NOURISHMENT）という他者内部状態を要因として引き起こされる。まず、他者内部状態ベクトル（Internal Variable of another person）IntVOから他者欲求値ベクトル（Instinct Variable of another person）InsVOを算出する過程では、他者内部状態と他者欲求値との対応を示した下記式（８）及び図１７に示すようなグラフ（曲線Ｌ１１）が用いられ、他者欲求値が算出される。
【０１４１】
【数８】
2005199402.tif 000012
【０１４２】
ここでは、他者の状態を満たす行動を起こす他者欲求値として他者内部状態が用いられるので、他者のお腹が減っていれば自己の「食べ物を与える」行動に対する欲求値（他者欲求値）は大きくなる対応関係が作られる。他者欲求値は他者内部状態の値のみで決まり、一般に、1つの行動単位は必要に応じて複数の他者内部状態を要素にもつことができる。複数の他者内部状態に基づく他者欲求値が他者ＡＬを算出する一つの要素「Motivation Vector」となる点は自己ＡＬの場合と同様である。
【０１４３】
一方、行動要素に定義されている外部刺激と他者内部状態とから、他者用ＤＢ１２３に格納される例えば図１８のグラフに示すような他者ＡＬ算出用データを用いて、予想他者内部状態変化ベクトルが計算される。図１８（ａ）は、「食べ物を差し出し、相手が食べ物を食べる（食べ物を与える）」という行動に関連して、「OBJECT_SIZE」が大きいほど、また対象物の種類「OBJECT_ID」が０よりも１、１よりも２の方が相手の内部状態（他者内部状態）「IntVO_NOURISHMENT」が満たされる量が大きいと予想していることを示す。また、図１８（ｂ）は、食べ物までの距離「OBJECT_DISTANCE」が大きいほど相手の内部状態（他者内部状態）「IntVO_FATIGUE」が大きくなると予想していることを示す。
【０１４４】
次に、他者内部状態ベクトルIntVOから他者満足度ベクトルSO、他者内部状態ベクトルIntVOと計算された予想他者内部状態変化ベクトルとから予想他者満足度変化ベクトルを計算する。そのときの計算法としては下記式（９）及び図１９のような関数（曲線Ｌ１２）が考えられる。
【０１４５】
【数９】
2005199402.tif 000013
【０１４６】
図１９の例では、他者内部状態「IntVO_NOURISHMENT」に関しては、その時刻の他者内部状態「IntVO_NOURISHMENT」の値から計算される他者満足度、その時刻の他者内部状態「IntVO_NOURISHMENT」の値と図１９によって得られる他者内部状態「IntVO_NOURISHMENT」の予想変化量から計算される予想満足度変化は共に正であることを意味する。
【０１４７】
また、上記式（８）及び式（９）における各定数、すなわち他者内部状態を評価し、他者欲求値または他者満足度を算出するための評価関数の形状を決定するためのパラメータは、他者用ＤＢ１２３に他者内部状態別に保存される。
【０１４８】
そして下記式（１０）によって、外部刺激がどのくらい他者内部状態を満足させるかの値を決定する。一般に、１つの行動単位は必要に応じて複数の他者内部状態を要素に持つことができる。複数の他者内部状態に基づく他者満足度と予想他者満足度が他者ＡＬを算出するためのもう１つの要素「Releasing Vector」となる。
【０１４９】
【数１０】
2005199402.tif 000014
【０１５０】
他者ＡＬにおいても、自己ＡＬと同様、α２が大きいと、Releasing Vectorは予想他者満足度変化（行動をとった結果、どのくらい他者満足度が得られるであろうか）に強く依存し、α２が小さいとReleasing Vectorは予想他者満足度（行動をとった結果、他者満足状態がどのようになるであろうか）に強く依存するという傾向を有する。
【０１５１】
こうして、他者ＡＬも、自己ＡＬと同様、Motivation VectorとReleasing Vectorとから下記式（１１）により算出することができる。ここで、β２が大きいと他者ＡＬは他者内部状態（他者欲求値）に強く依存し、β２が小さいと外部刺激（予想他者満足度変化・予想他者満足度）に強く依存する傾向を有することを示す。
【０１５２】
【数１１】
2005199402.tif 000015
【０１５３】
なお、自己及び他者のリリーシングベクトルを求める際に使用するそれぞれα１及びα２、自己及び他者行動価値を求める際に使用するそれぞれβ１及びβ２は、自己と他者とで同じ値であっても、異なる値であってもよく、また行動毎に異なる値としてもよい。
【０１５４】
（６）エゴパラメータ
次に、自己の行動選択を行う際に、自己の状態を満たすことを重視するか、他者の状態を満たすことを重視するかを設定するためのパラメータであるエゴパラメータについて説明する。エゴパラメータは、上述のようにして求めた自己ＡＬ及び他者ＡＬに重みづけするためのパラメータであり、自己の状態がどの程度満足しているか、どの程度自分自身の中で行動選択に関する欲求が高まっているかを示す値に応じて変動するように設定することができる。例えば、自己の自己内部状態のそれぞれからから算出される自己満足度の総和値及び自己欲求値の総和値に応じて変動するものとすることができる。上述したように、自己満足度、自己欲求値は、自己内部状態管理部９１から受け取った自己内部状態から、上述の自己用ＤＢ１２１を参照して換算するか、自己ＡＬ算出部１２２から受け取るかすればよい。
【０１５５】
例えば、この２つの値を考慮した場合、自己満足度が高く、自己欲求値が低い場合には、エゴパラメータは低い値をとり、その逆の場合には高い値をとるように、エゴパラメータを下記式（１２）及び図２０のように設定することができる。
【０１５６】
【数１２】
2005199402.tif 000016
【０１５７】
すなわち、この場合には、自己満足度の総和が高いほど、また自己欲求値が高いほどエゴパラメータｅの値が大きくなる。なお、ｐ、ｑは、シグモイド関数の傾きの大きさを示す。
【０１５８】
また、上記式（１０）においては、エゴパラメータは、自分自身の状態を変数として定義しているが、例えば相手の感情や内部状態（他者内部状態）を考慮することで、相手の状態に応じて積極的に他者重視の行動判断を行わせることができる。例えば、センサ情報から推定された他者内部状態の値に従い、相手の内部状態の満足度（他者満足度）が低い、他者欲求値が高い、もしくは推定した他者情動（感情）が非常に怒っている、悲しんでいるなど極端な状態であると判断された時には、これらの値を考慮し、上記式（１２）により算出された値から相手の感情状態に応じた定数を差し引くなどして、エゴパラメータを小さくする方向へその影響を与えることにより、相手の状態を優先的に考えた行動を選択させることができる。なお、他者満足度、他者欲求値も、自己満足度、自己欲求値と同様、他者内部状態管理部９６から入力された他者内部状態から他者用ＤＢ１２３を参照して換算するか、他者用ＡＬ算出部１２４から受け取るかすればよい。この場合のエゴパラメータは、例えば下記式（１３）のように算出することができる。
【０１５９】
【数１３】
2005199402.tif 000017
【０１６０】
上記式（１３）において、右辺第３項以降が相手の状態のエゴパラメータへの影響を示している。ここで、エゴパラメータを０〜１の値に正規化するために、各項の係数の総和が１になるように定数Ａ〜Ｅの重み付けのパラメータを調整することで、自己満足度、自己欲求値、他者満足度、他者欲求値、他者情動をどのようなバランスで考慮するかを決定することができる。第５項は、他者の感情がよりNEUTRALの状態ではエゴパラメータが大きくなることを示す。
【０１６１】
エゴパラメータが高い場合には、自己を満たすという行動選択基準によって算出された行動価値である自己ＡＬを重視して行動選択が行われ、エゴパラメータが低い場合には、他者の状態を満たすという行動選択基準によって算出された行動価値である他者ＡＬを重視して行動選択が行われるよう、下記式（１４）に従って最終的な行動価値ＡＬを算出することができる。
【０１６２】
【数１４】
2005199402.tif 000018
【０１６３】
以上説明したように、本実施の形態においては、ロボット装置がとりうる要素行動（行動選択肢）の実行優先度を示す行動価値ＡＬを、自己状態を満たす場合と他者の状態を満たす場合の２つの視点から算出することができるが、エゴパラメータを使用することで、視点ごとに別の要素行動を用意する必要がなく、全ての要素行動を統一的に扱うことができる。
【０１６４】
例えば「ボールを捜す」、「ボールに近づく」、「ボールを蹴る」などのより細かい要素行動から構成される、「サッカーをする」という大きな単位の要素行動の場合、この要素行動を自己ＡＬの観点から実行することが考える。自己の「VAITALITY」という自己内部状態が大きい場合に、「運動をしたい」という自己欲求が高くなるとき、この自己欲求に基づいて「ボールを捜す」という行動が選択され、さらにボールを発見したがまだ距離が遠いという外部刺激を要因として「ボールに近づく」などの意思決定過程に基づいて行動選択が行われる。
【０１６５】
しかし、同じ行動を他者の行動価値（他者ＡＬ）の観点から実行することを考えると、異なった意思決定過程を経ることになる。すなわち、例えば、他者と対話的インタラクションをしたり、表情、ジェスチャを観察したりすることによって他者の感情が「悲しい」状態で「VAITALITY」が低い状態であると推定された場合、「何らかのパフォーマンスをすることによって他者を元気づけようとする観点」から他者内部状態が評価され、「サッカーをする」という行動の他者ＡＬが上昇し、当該行動が選択されることになる。この場合においても、細かい単位の要素行動は、自己ＡＬの算出と同様の外部刺激を要因として行動を切り替えることが可能である。
【０１６６】
このように２つの観点から評価された結果について上述の式（１４）のようにエゴパラメータを用いて重み付け和を取ることによって、両方の観点から導き出された行動価値を算出することができる。エゴパラメータは、上述の式（１４）を使用すれば、自己満足度、自己欲求値、相手の内部状態（他者満足度、他者欲求値）、他者情動の５つのパラメータから算出することができるが、これらのパラメータを考慮する重みを変更するか、エゴパラメータに直接バイアスをかけることによって、ロボット装置の行動選択基準を変更することができ、ロボット装置の性格を変更することができる。例えば、エゴパラメータに正のバイアスをかけると自分の基準で行動を選択する傾向が強くなり、自己中心的な行動選択を行わせることができる。
【０１６７】
なお、本実施の形態においては、エゴパラメータを全ての行動価値の算出に共通なものとして算出したが、各行動価値算出部１２０にエゴパラメータ算出部を個別に設け、各スキーマ毎に、自己の状態を重視するか他者の状態を重視するかを決定するためのパラメータを個別に設定してもよい。
【０１６８】
また、上記式（１２）、式（１３）においては、自己満足度の総和値及び自己欲求値の総和値などを使用するものとして説明したが、全自己満足度及び自己欲求値のうち特定の自己満足度及び／又は特定の自己欲求値を使用してパラメータを算出してもよい。
【０１６９】
（７）計算機リソースの節約手法
ところで、以上の方法にて自己の状態、及び相手の状態を考慮した行動価値算出を全ての要素行動について算出する、すなわちいわゆるＳＢＬ１０２におけるスキーマで同時並列的に実行することは、計算コストが非常に大きいことを意味する。特に、要素行動の数が行動の進化し、複雑化すると共に増加することを考慮すると、計算機リソースに制限があった場合、次第に計算スピードが低下する場合がある。例えば、特に意味のある行動をしていないときに実行されるしぐさを表現する行動を記述したスキーマを用意した場合、次のタイミングでは、あらゆる行動が選択される可能性があり、計算量が増大してしまう。
【０１７０】
そこで、このような演算の負荷を低減する１つの方法として、ＳＢＬ１０２における計算を間引く方法が挙げられる。すなわち、例えばスキーマを分類し、同時に立ち上がる、もしくは割り込んで行動する可能性があるものに限定して行動価値の算出を行うようにする。例えば、サッカー中には、実際にボールを蹴るまでか、または例えばボールを見失うなどして諦めるまで、例えばダンスを踊る行動など現在行っている行動とは関係がない行動に関する行動価値の計算は行わないことで、ＳＢＬ１０２における演算量を大きく低減することができる。
【０１７１】
このように、ある要素行動が記述されたスキーマにおいて、当該要素行動とは関係がない（以下、排他的関係という。）要素行動の行動価値を算出しないようにする具体的な手法としては、スキーマに記述された行動が利用するリソース、すなわち身体のどの関節を使用するか、音声、視覚を使用するかなどを宣言したものの他に、架空のリソース（ダミーリソース、実際の身体上のハードウェア・リソースを意味するものではなく、スキーマ同士の排他的関係を記述するためだけのリソース）を何種類か定義し、排他的関係にあるスキーマで同一のリソースを宣言することなどにより、例えば現在実行中の行動とリソースが競合する行動の行動価値を算出しないようにする。このように、排他的関係にあるスキーマの行動価値を算出しないようにすることで計算負荷を低減させることができる。
【０１７２】
また、この場合、自由な行動の切り替わりが制限される場合もありえるが、要素行動に記述された行動の内容を考えずに全ての行動又は行動パターンを対等に扱い、何の制限も設けず自由に行動価値を算出するようにすると、計算負荷が大きいことに加え、ランダムに行動が切り替わり、行動を完結しないまま次々と違う行動を実行してしまうということがありえる。このように、支離滅裂な行動を出力することは、ロボット装置のアプリケーションとしては好ましくなく、これを防止するために何らかの制約条件を設けることが好ましい。すなわち、各スキーマに上述のように排他的関係を記述することにより、計算量を削減して計算機リソースの節約を実現すると共に、ロボット装置が支離滅裂な行動選択を行うことを防止することができる。なお、行動価値ＡＬは所定のタイミングにて算出することができるが、例えばロボット装置が複数の動作からなる一の行動の実行中に他の行動に対する実行価値ＡＬが大きくなると実行中の行動を停止し、行動価値が高くなった他の行動を発現してしまうことで、行動の一貫性がなくなるような場合があるため、例えば一の行動実行中においては、行動価値ＡＬを一の行動が選択されて一連の動作が終了するまで他の関係のない行動についての行動価値の算出を停止するようにすることなどしてもよい。この場合も、ロボット装置の行動選択に一貫性を持たせることができると共に、行動実行中は、他のスキーマにおいて、行動価値の算出を停止することで演算量を低減することができる。
【０１７３】
本実施の形態においては、自己の状態を満たす行動と、他者の状態を満たす行動を、自己ＡＬ及び他者ＡＬを算出し、これを自己の状態を重視するか、他者の状態を重視するかを決定するためのエゴパラメータにて重み付けして加算した行動価値ＡＬに基づき行動選択を行うことで、自己、他者双方の状態によって選択する行動を適応的に切り替えて行動を発現することが可能となる。
【０１７４】
また、エゴパラメータの算出に使用するデータを自己内部状態のみとして、自己の状態を重視するか、他者の状態を重視するかを自己を基準にして決定したり、自己内部状態に加え他者内部状態及び他情動を使用して、行動を他者の状態を考慮して決定したりすることができ、自己の状態重視か、他者の状態重視かを適応的に切り替えることができる。したがって、考慮すべき他者がいないときには自己を基準にして行動選択を行うことで自律的に行動することができ、また、他者がいるときには、自己の満足度、自己の欲求値に応じて自己だけでなく、他者の状態を考慮したり、他者を重視する行動を選択することができる。
【０１７５】
更に、エゴパラメータを調節することによって自己の状態を重視して例えば勝手きままな性格としたり、他者の状態を重視して例えば他者のことを尊重するやさしく従順な性格としたりするなど、容易にロボット装置の性格（自己中心−他者重視）をコントロールすることが可能である。
【０１７６】
更にまた、本実施の形態におけるロボット装置の行動選択制御システムにおいては、各スキーマが、ロボット装置自身の欲求、満足度などを考えた場合と、相手の欲求、満足度などを考えた場合の両方の行動価値を算出するようにしたため、自己の状態を満たす行動と他者の状態を満たす行動とを分けて設計する必要がない。すなわち、同一の行動出力であっても、自己を基準にして自己ＡＬと他者を基準にして他者ＡＬとを算出し、どちらを重視するかをエゴパラメータにより重み付けして統合することで、１つの行動を自己のみならず他者をも考慮して選択されるものとすることができる。また、いずれか一方の状態を満たすだけの行動とする場合であっても、エゴパラメータの設定を変更するだけで容易に行動価値の算出条件を変更することができる。
【０１７７】
（８）ロボット装置の制御システム
次に、上述した行動価値ＡＬを算出して行動を出力する処理を行う行動選択制御システムをロボット装置の制御システムに適応した具体例について詳細に説明する。図２１は、上述の行動選択制御システム１００を含む制御システム１０の機能構成を示す模式図である。本具体例におけるロボット装置１は、上述したように、外部刺激の認識結果や内部状態の変化に応じて、行動制御を行なうことができるものである。更には、長期記憶機能を備え、外部刺激から内部状態の変化を連想記憶することにより、外部刺激の認識結果や内部状態の変化に応じて行動制御を行うことができる。
【０１７８】
即ち、上述したように、例えば、図２に示すカメラ１５から入力された画像に対して処理された色情報、形情報、顔情報等であり、より具体的には、色、形、顔、３Ｄ一般物体、ハンドジェスチャー、動き、音声、接触、匂い、味等の構成要素からなる外部刺激と、ロボット装置の身体に基づいた本能や感情等の情動を指す内部状態とに応じて行動価値ＡＬを算出し、行動を選択（生成）し、発現する。
【０１７９】
内部状態の本能的要素は、例えば、疲れ（fatigue）、熱あるいは体内温度（temperature）、痛み（pain）、食欲あるいは飢え（hunger）、乾き（thirst）、愛情（affection）、好奇心（curiosity）、排泄（elimination）又は性欲（sexual）のうちの少なくとも１つである。また、情動的要素は、幸せ（happiness）、悲しみ（sadness）、怒り（anger）、驚き（surprise）、嫌悪（disgust）、恐れ（fear）、苛立ち（frustration）、退屈（boredom）、睡眠（somnolence）、社交性（gregariousness）、根気（patience）、緊張（tense）、リラックス（relaxed）、警戒（alertness）、罪（guilt）、悪意（spite）、誠実さ（loyalty）、服従性（submission）又は嫉妬（jealousy）等が挙げられる。
【０１８０】
図示の制御システム１０には、オブジェクト指向プログラミングを採り入れて実装することができる。この場合、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとＩｎｖｏｋｅを行なうことができる。
【０１８１】
行動制御システム１０は、外部環境（Ｅｎｖｉｒｏｎｍｅｎｔｓ）７０を認識するために、視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３等からなる機能モジュールである上述の図４に示す外部刺激認識部８０を備えている。
【０１８２】
視覚認識機能部（Ｖｉｄｅｏ）８１は、例えば、ＣＣＤ（Charge Coupled Device：電荷結合素子）カメラのような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識等の画像認識処理や特徴抽出を行う。
【０１８３】
また、聴覚認識機能部（Ａｕｄｉｏ）８２は、マイク等の音声入力装置を介して入力される音声データを音声認識して、特徴抽出したり、単語セット（テキスト）認識を行ったりする。
【０１８４】
更に、接触認識機能部（Ｔａｃｔｉｌｅ）８３は、例えば機体の頭部等に内蔵された接触センサによるセンサ信号を認識して、「なでられた」とか「叩かれた」という外部刺激を認識する。
【０１８５】
状態管理部（ＩＳＭ：Internal Status Manager）９１は、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３によって認識された外部刺激（ＥＳ：ExternalStimula）に応じてロボット装置１の本能や情動といった内部状態を管理する。
【０１８６】
感情モデル及び本能モデル（感情・本能モデル）は、それぞれ認識結果と行動履歴を入力に持ち、夫々感情値と本能値を管理している。行動モデルは、これら感情値や本能値を参照することができる。
【０１８７】
また、外部刺激の認識結果や内部状態の変化に応じて行動制御を行なうために、時間の経過とともに失われる短期的な記憶を行なう短期記憶部（ＳＴＭ：Short Term Memory）９２と、情報を比較的長期間保持するための長期記憶部（ＬＴＭ：Long Term Memory）９３を備えている。短期記憶と長期記憶という記憶メカニズムの分類は神経心理学に依拠する。
【０１８８】
短期記憶部９２は、上述の視覚認識機能部８１、聴覚認識機能部８２及び接触認識機能部８３によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。例えば、図２に示すカメラ１５からの入力画像を約１５秒程度の短い期間だけ記憶する。
【０１８９】
長期記憶部９３は、物の名前等学習により得られた情報を長期間保持するために使用される。長期記憶部９３は、例えば、ある行動記述モジュールにおいて外部刺激から内部状態の変化を連想記憶することができる。
【０１９０】
また、本ロボット装置１の行動制御は、反射行動部（Reflexive Situated Behaviors Layer）１０３によって実現される「反射行動」と、状況依存行動階層（ＳＢＬ：Situated Behaviors Layer）１０２によって実現される「状況依存行動」と、熟考行動階層（Deliberative Layer）１０１によって実現される「熟考行動」に大別される。
【０１９１】
反射行動部１０３は、上述の視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。反射行動とは、基本的に、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動を直接決定する行動のことである。例えば、人間の顔を追いかけたり、うなずいたりといった振る舞いは反射行動として実装することが好ましい。
【０１９２】
状況依存行動階層１０２は、短期記憶部９２及び長期記憶部９３の記憶内容や、内部状態管理部９１によって管理される内部状態を基に、ロボット装置１が現在置かれている状況に即応した行動を制御する。
【０１９３】
この状況依存行動階層１０２は、各行動（要素行動）毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。また、状況依存行動階層１０２は、内部状態をある範囲に保つための行動（「ホメオスタシス行動」とも呼ぶ）も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出現し易くなるようにその行動を活性化させる（実際には、内部状態と外部環境の両方を考慮した形で行動が選択される）。状況依存行動は、反射行動に比し、反応時間が遅い。この状況依存行動階層１０２が上述した図４に示す行動選択制御システム１００におけるスキーマ１３２、行動価値算出部１２０、行動選択部に相当し、上述した如く、内部状態と外部刺激とから行動価値ＡＬを算出し、これに基づき行動出力を行う。
【０１９４】
熟考行動階層１０１は、短期記憶部９２及び長期記憶部９３の記憶内容に基づいて、ロボット装置１の比較的長期にわたる行動計画等を行う。熟考行動とは、与えられた状況あるいは人間からの命令により、推論やそれを実現するための計画を立てて行われる行動のことである。例えば、ロボット装置の位置と目標の位置から経路を探索することは熟考行動に相当する。このような推論や計画は、ロボット装置１がインタラクションを保つための反応時間よりも処理時間や計算負荷を要する（すなわち処理時間がかかる）可能性があるので、上記の反射行動や状況依存行動がリアルタイムで反応を返しながら、熟考行動は推論や計画を行う。
【０１９５】
熟考行動階層１０１、状況依存行動階層１０２、及び反射行動部１０３は、ロボット装置１のハードウェア構成に非依存の上位のアプリケーション・プログラムとして記述することができる。これに対し、ハードウェア依存層制御部（Configuration Dependent Actions And Reactions）１０４は、これら上位アプリケーション、即ち、行動記述モジュール（スキーマ）からの命令に応じて、関節アクチュエータの駆動等の機体のハードウェア（外部環境）を直接操作する。このような構成により、ロボット装置１は、制御プログラムに基づいて自己及び周囲の状況を判断し、使用者からの指示及び働きかけに応じて自律的に行動できる。
【０１９６】
次に、行動制御システム１０について更に詳細に説明する。図２２は、本具体例における行動制御システム１０のオブジェクト構成を示す模式図である。
【０１９７】
図２２に示すように、視覚認識機能部８１は、Face Detector１１４、Mulit Color Tracker１１３、Face Identify１１５という３つのオブジェクトで構成される。
【０１９８】
Face Detector１１４は、画像フレーム中から顔領域を検出するオブジェクトであり、検出結果をFace Identify１１５に出力する。Mulit Color Tracker１１３は、色認識を行うオブジェクトであり、認識結果をFace Identify１１５及びShort Term Memory（ＳＴＭ）９２に出力する。また、Face Identify１１５は、検出された顔画像を手持ちの人物辞書で検索する等して人物の識別を行ない、顔画像領域の位置、大きさ情報とともに人物のＩＤ情報をＳＴＭ９２に出力する。
【０１９９】
聴覚認識機能部８２は、Audio Recog１１１とSpeech Recog１１２という２つのオブジェクトで構成される。Audio Recog１１１は、マイク等の音声入力装置からの音声データを受け取って、特徴抽出と音声区間検出を行うオブジェクトであり、音声区間の音声データの特徴量及び音源方向をSpeech Recog１１２やＳＴＭ９２に出力する。Speech Recog１１２は、Audio Recog１１１から受け取った音声特徴量と音声辞書及び構文辞書を使って音声認識を行うオブジェクトであり、認識された単語のセットをＳＴＭ９２に出力する。
【０２００】
触覚認識記憶部８３は、接触センサからのセンサ入力を認識するTactile Sensor１１９というオブジェクトで構成され、認識結果はＳＴＭ９２や内部状態、感情状態（情動）を管理するオブジェクトであるInternal State Model（ＩＳＭ）９１に出力する。
【０２０１】
ＳＴＭ９２は、短期記憶部を構成するオブジェクトであり、上述の認識系の各オブジェクトによって外部環境から認識されたターゲットやイベントを短期間保持（例えばカメラ１５からの入力画像を約１５秒程度の短い期間だけ記憶する）する機能モジュールであり、ＳＴＭクライアントであるＳＢＬ１０２に対して外部刺激の通知（Ｎｏｔｉｆｙ）を定期的に行なう。
【０２０２】
ＬＴＭ９３は、長期記憶部を構成するオブジェクトであり、物の名前等学習により得られた情報を長期間保持するために使用される。ＬＴＭ９３は、例えば、ある行動記述モジュール（スキーマ）において外部刺激から内部状態の変化を連想記憶することができる。
【０２０３】
ＩＳＭ９１は、状態管理部を構成するオブジェクトであり、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の認識系の各オブジェクトによって認識された外部刺激（ＥＳ：External Stimula）に応じてロボット装置１の本能や情動といった内部状態を管理する。
【０２０４】
ＳＢＬ１０２は状況依存型行動階層を構成するオブジェクトである。ＳＢＬ１０２は、ＳＴＭ９２のクライアント（ＳＴＭクライアント）となるオブジェクトであり、ＳＴＭ９２からは定期的に外部刺激（ターゲットやイベント）に関する情報の通知（Ｎｏｔｉｆｙ）を受け取ると、スキーマ（Schema）すなわち実行すべき行動記述モジュールを決定する（後述）。
【０２０５】
ReflexiveＳＢＬ（Situated Behaviors Layer）１０３は、反射的行動部を構成するオブジェクトであり、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する。例えば、人間の顔を追いかけたり、うなずく、障害物の検出により咄嗟に避けるといった振る舞いを行なう。
【０２０６】
ＳＢＬ１０２は外部刺激や内部状態の変化等の状況に応じた動作を選択する。これに対し、ReflexiveＳＢＬ１０３は、外部刺激に応じて反射的な動作を選択する。これら２つのオブジェクトによる行動選択は独立して行なわれるため、互いに選択された行動記述モジュール（スキーマ）を機体上で実行する場合に、ロボット装置１のハードウェア・リソースが競合して実現不可能なこともある。ＲＭ（Resource Manager）１１６というオブジェクトは、ＳＢＬ１０２とReflexiveＳＢＬ１０３とによる行動選択時のハードウェアの競合を調停する。そして、調停結果に基づいて機体動作を実現する各オブジェクトに通知することにより機体が駆動する。
【０２０７】
Sound Performer１７２、Motion Controller１７３、ＬＥＤController１７４は、機体動作を実現するオブジェクトである。Sound Performer１７２は、音声出力を行うためのオブジェクトであり、ＲＭ１１６経由でＳＢＬ１０２から与えられたテキスト・コマンドに応じて音声合成を行い、ロボット装置１の機体上のスピーカから音声出力を行う。また、Motion Controller１７３は、機体上の各関節アクチュエータの動作を行なうためのオブジェクトであり、ＲＭ１１６経由でＳＢＬ１０２から手や脚等を動かすコマンドを受けたことに応答して、該当する関節角を計算する。また、ＬＥＤController１７４は、ＬＥＤ１９の点滅動作を行なうためのオブジェクトであり、ＲＭ１１６経由でＳＢＬ１０２からコマンドを受けたことに応答してＬＥＤ１９の点滅駆動を行なう。
【０２０８】
（８−１）状況依存行動制御
次に、上述の具体例において説明したように、行動価値ＡＬを算出し、発現する行動を選択する状況依存行動階層について更に詳細に説明する。図２３には、状況依存行動階層（ＳＢＬ）（但し、反射行動部を含む）による状況依存行動制御の形態を模式的に示している。視覚認識機能部８１、聴覚認識機能部８２、及び接触認識機能部８３からなる外部刺激認識部８０における外部環境７０の認識結果（センサ情報）１８２は、外部刺激１８３として状況依存行動階層（反射行動部１０３を含む）１０２ａに与えられる。また、外部刺激認識部８０による外部環境７０の認識結果に応じた内部状態の変化１８４も状況依存行動階層１０２ａに与えられる。そして、状況依存行動階層１０２ａでは、外部刺激１８３や内部状態の変化１８４に応じて状況を判断して、行動選択を実現することができる。状況依存行動階層１０２ａでは、上述した如く、外部刺激１８３や内部状態の変化１８４によって各行動記述モジュール（スキーマ）の行動価値ＡＬを算出して、行動価値ＡＬの大きさに応じてスキーマを選択して行動（動作）を実行する。行動価値ＡＬの算出には、例えばライブラリを利用することにより、すべてのスキーマについて統一的な計算処理を行なうことができる。ライブラリには、例えば上述したように、内部状態ベクトルから欲求ベクトルを算出する関数、内部状態ベクトルから満足度ベクトルを算出する関数、及び外部刺激から予想内部状態変化ベクトルを予想するための行動評価データベース等が保存されている。
【０２０９】
（８−２）スキーマ
図２４、状況依存行動階層１０２が複数のスキーマ１３２によって構成されている様子を模式的に示している。状況依存行動階層１０２は、上述した要素行動として、行動記述モジュールを有し、各行動記述モジュール毎にステートマシンを用意しており、それ以前の行動（動作）や状況に依存して、センサ入力された外部情報の認識結果を分類し、動作を機体上で発現する。要素行動となる行動記述モジュールは、外部刺激や内部状態に応じた状況判断を行なうＭｏｎｉｔｏｒ機能と、行動実行に伴う状態遷移（ステートマシン）を実現するＡｃｔｉｏｎ機能とを備えたスキーマ（Schema）１３２として記述される。
【０２１０】
状況依存行動階層１０２ｂ（より厳密には、状況依存行動階層１０２のうち、通常の状況依存行動を制御する階層）は、複数のスキーマ１３２が階層的に連結されたツリー構造として構成され、外部刺激や内部状態の変化に応じてより最適なスキーマ１３２を統合的に判断して行動制御を行なうようになっている。このツリー１３１は、例えば動物行動学的（Ethological）な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリー等、複数のサブツリー（又は枝）を含んでいる。
【０２１１】
図２５には、状況依存行動階層１０２におけるスキーマのツリー構造を模式的に示している。同図に示すように、状況依存行動階層１０２は、短期記憶部９２から外部刺激の通知（Ｎｏｔｉｆｙ）を受けるルート・スキーマ２０１１、２０２１、２０３１を先頭に、抽象的な行動カテゴリから具体的な行動カテゴリに向かうように、各階層毎にスキーマが配設されている。例えば、ルート・スキーマの直近下位の階層では、「探索する（Ｉｎｖｅｓｔｉｇａｔｅ）」、「食べる（Ｉｎｇｅｓｔｉｖｅ）」、「遊ぶ（Ｐｌａｙ）」というスキーマ２０１２、２０２２、２０３２が配設される。そして、スキーマ２０１２「探索する（Ｉｎｖｅｓｔｉｇａｔｅ）」の下位には、「ＩｎｖｅｓｔｉｇａｔｉｖｅＬｏｃｏｍｏｔｉｏｎ」、「ＨｅａｄｉｎＡｉｒＳｎｉｆｆｉｎｇ」、「ＩｎｖｅｓｔｉｇａｔｉｖｅＳｎｉｆｆｉｎｇ」というより具体的な探索行動を記述した複数のスキーマ２０１３が配設されている。同様に、スキーマ２０２２「食べる（Ｉｎｇｅｓｔｉｖｅ）」の下位には「Ｅａｔ」や「Ｄｒｉｎｋ」等のより具体的な飲食行動を記述した複数のスキーマ２０２３が配設され、スキーマ２０３２「遊ぶ（Ｐｌａｙ）」の下位には「ＰｌａｙＢｏｗｉｎｇ」、「ＰｌａｙＧｒｅｅｔｉｎｇ」、「ＰｌａｙＰａｗｉｎｇ」等のより具体的な遊ぶ行動を記述した複数のスキーマ２０３３が配設されている。
【０２１２】
図示の通り、各スキーマは外部刺激１８３と内部状態（の変化）１８４を入力している。また、各スキーマは、少なくともＭｏｎｉｔｏｒ関数とＡｃｔｉｏｎと関数を備えている。
【０２１３】
ここで、Ｍｏｎｉｔｏｒ関数とは、外部刺激１８３と内部状態１８４に応じて当該スキーマの行動価値ＡＬを算出する関数であり、各スキーマは、このような行動価値算出手段としてのＭｏｎｉｔｏｒ機能を有する。図２５に示すようなツリー構造を構成する場合、上位（親）のスキーマは外部刺激１８３と内部状態１８４を引数として下位（子供）のスキーマのＭｏｎｉｔｏｒ関数をコールすることができ、子供のスキーマは行動価値ＡＬを返り値とする。また、スキーマは自分の行動価値ＡＬを算出するために、更に子供のスキーマのＭｏｎｉｔｏｒ関数をコールすることができる。そして、ルートのスキーマには各サブツリーからの行動価値ＡＬが返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断することができる。ここで、ルート・スキーマを上述の行動選択部とし、これにより、スキーマを選択するようにしてもよい。なお、例えば後述するリソース・マネージャＲＭ１１６や、別に設けた行動選択部により、各スキーマの行動価値ＡＬを観察し、各行動価値ＡＬの値に基づき行動を選択してもよいことはもちろんである。
【０２１４】
行動選択部では、上述したように、例えば行動価値ＡＬが最も高いスキーマを選択したり、行動価値ＡＬが所定の閾値を越えた２以上のスキーマを選択して並列的に行動実行するようにしてもよい（但し、並列実行するときは各スキーマどうしでハードウェア・リソースの競合がないことを前提とする）。
【０２１５】
また、Ａｃｔｉｏｎ関数は、スキーマ自身が持つ行動を記述したステートマシンを備えている。図２５に示すようなツリー構造を構成する場合、親スキーマは、Ａｃｔｉｏｎ関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。本具体例では、ＡｃｔｉｏｎのステートマシンはＲｅａｄｙにならないと初期化されない。言い換えれば、中断しても状態はリセットされず、スキーマが実行中の作業データを保存することから、中断再実行が可能である。
【０２１６】
図２６には、状況依存行動階層１０２において通常の状況依存行動を制御するためのメカニズムを模式的に示している。
【０２１７】
同図に示すように、状況依存行動階層（ＳＢＬ）１０２には、短期記憶部（ＳＴＭ）９２から外部刺激１８３が入力（Ｎｏｔｉｆｙ）されるとともに、内部状態管理部９１から内部状態の変化１８４が入力される。状況依存行動階層１０２は、例えば動物行動学的（Ethological）な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリー等、複数のサブツリーで構成されており、ルート・スキーマは、外部刺激１８３の通知（Ｎｏｔｉｆｙ）に応答して、各サブツリーのＭｏｎｉｔｏｒ関数をコールし、その返り値としての行動価値ＡＬを参照して、統合的な行動選択を行ない、選択された行動を実現するサブツリーに対してＡｃｔｉｏｎ関数をコールする。また、状況依存行動階層１０２において決定された状況依存行動は、リソース・マネージャＲＭ１１６により反射行動部１０３による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作（Motion Controller）に適用される。
【０２１８】
また、反射的行動部１０３は、上述した認識系の各オブジェクトによって認識された外部刺激１８３に応じて、例えば、障害物の検出により咄嗟に避ける等、反射的・直接的な機体動作を実行する。このため、図２５に示す通常の状況依存行動を制御する場合とは相違し、図２４に示すように、認識系の各オブジェクトからの信号を直接入力する複数のスキーマ１３３が階層化されずに並列的に配置されている。
【０２１９】
図２７には、反射行動部１０３におけるスキーマの構成を模式的に示している。同図に示すように、反射行動部１０３には、聴覚系の認識結果に応答して動作するスキーマとしてAvoid Big Sound２０４、Face to Big Sound２０５及びNodding Sound２０９、視覚系の認識結果に応答して動作するスキーマとしてFace to Moving Object２０６及びAvoid Moving Object２０７、並びに、触覚系の認識結果に応答して動作するスキーマとして手を引っ込める２０８が、それぞれ対等な立場で（並列的に）配設されている。
【０２２０】
図示の通り、反射的行動を行なう各スキーマは外部刺激１８３を入力に持つ。また、各スキーマは、少なくともＭｏｎｉｔｏｒ関数とＡｃｔｉｏｎ関数を備えている。Ｍｏｎｉｔｏｒ関数は、外部刺激１８３に応じて当該スキーマの行動価値ＡＬを算出して、これに応じて該当する反射的行動を発現すべきかどうかが判断される。また、Ａｃｔｉｏｎ関数は、スキーマ自身が持つ反射的行動を記述したステートマシン（後述）を備えており、コールされることにより、該当する反射的行動を発現するとともにＡｃｔｉｏｎの状態を遷移させていく。
【０２２１】
図２８には、反射行動部１０３において反射的行動を制御するためのメカニズムを模式的に示している。図２７にも示したように、反射行動部１０３内には、反応行動を記述したスキーマや、即時的な応答行動を記述したスキーマが並列的に存在している。認識系の機能モジュール８０を構成する各オブジェクトから認識結果が入力されると、対応する反射行動スキーマがＡｏｎｉｔｏｒ関数により行動価値ＡＬを算出し、その値に応じてＡｃｔｉｏｎを軌道すべきかどうかが判断される。そして、反射行動部１０３において起動が決定された反射的行動は、リソース・マネージャＲＭ１１６により状況依存行動階層１０２による状況依存行動とのハードウェア・リソースの競合の調停を経て、機体動作（Motion Controller１７３）に適用される。
【０２２２】
このような状況依存行動階層１０２及び反射行動部１０３を構成するスキーマは、例えばＣ＋＋言語ベースで記述される「クラス・オブジェクト」として記述することができる。図２９には、状況依存行動階層１０２において使用されるスキーマのクラス定義を模式的に示している。同図に示されている各ブロックはそれぞれ１つのクラス・オブジェクトに相当する。
【０２２３】
図示の通り、状況依存行動階層（ＳＢＬ）１０２は、１以上のスキーマと、ＳＢＬ１０２の入出力イベントに対してＩＤを割り振るEvent Data Handler（ＥＤＨ）２１１と、ＳＢＬ１０２内のスキーマを管理するSchema Handler（ＳＨ）２１２と、外部オブジェクト（ＳＴＭやＬＴＭ、リソース・マネージャ、認識系の各オブジェクト等）からデータを受信する１以上のReceive Data Handler（ＲＤＨ）２１３と、外部オブジェクトにデータを送信する１以上のSend Data Handler（ＳＤＨ）２１４とを備えている。
【０２２４】
Schema Handler２１２は、状況依存行動階層（ＳＢＬ）１０２や反射行動部１０３を構成する各スキーマやツリー構造等の情報（ＳＢＬのコンフィギュレーション情報）をファイルとして保管している。例えばシステムの起動時等に、Schema Handler２１２は、このコンフィギュレーション情報ファイルを読み込んで、図２５に示したような状況依存行動階層１０２のスキーマ構成を構築（再現）して、メモリ空間上に各スキーマのエンティティをマッピングする。
【０２２５】
各スキーマは、スキーマのベースとして位置付けられるOpenR_Guest２１５を備えている。OpenR_Guest２１５は、スキーマが外部にデータを送信するためのDsubject２１６、並びに、スキーマが外部からデータを受信するためのDObject２１７というクラス・オブジェクトをそれぞれ１以上備えている。例えば、スキーマが、ＳＢＬ１０２の外部オブジェクト（ＳＴＭやＬＴＭ、認識系の各オブジェクト等）にデータを送るときには、Dsubject２１６はSend Data Handｌｅｒ２１４に送信データを書き込む。また、DObject２１７は、ＳＢＬ１０２の外部オブジェクトから受信したデータをReceive Data Handler２１３から読み取ることができる。
【０２２６】
Schema Manager２１８及びSchema Base２１９は、ともにOpenR_Guest２１５を継承したクラス・オブジェクトである。クラス継承は、元のクラスの定義を受け継ぐことであり、この場合、OpenR_Guest２１５で定義されているDsubject２１６やDObject２１７等のクラス・オブジェクトをSchema Manager Base２１８やSchema Base２１９も備えていることを意味する（以下、同様）。例えば図２５に示すように複数のスキーマがツリー構造になっている場合、Schema Manager Base２１８は、子供のスキーマのリストを管理するクラス・オブジェクトSchema List２２０を持ち（子供のスキーマへのポインタを持ち）、子供スキーマの関数をコールすることができる。また、Schema Base２１９は、親スキーマへのポインタを持ち、親スキーマからコールされた関数の返り値を戻すことができる。
【０２２７】
Schema Base２１９は、State Machine２２１及びPronome２２２という２つのクラス・オブジェクトを持つ。State Machine２２１は当該スキーマの行動（Ａｃｔｉｏｎ関数）についてのステートマシンを管理している。親スキーマは子供スキーマのＡｃｔｉｏｎ関数のステートマシンを切り替える（状態遷移させる）ことができる。また、Pronome２２２には、当該スキーマが行動（Ａｃｔｉｏｎ関数）を実行又は適用するターゲットを代入する。後述するように、スキーマはPronome２２２に代入されたターゲットによって占有され、行動（動作）が終了（完結、異常終了等）するまでスキーマは解放されない。新規のターゲットのために同じ行動を実行するためには同じクラス定義のスキーマをメモリ空間上に生成する。この結果、同じスキーマをターゲット毎に独立して実行することができ（個々のスキーマの作業データが干渉し合うことはなく）、後述する行動のReentrance性が確保される。
【０２２８】
Parent Schema Base２２３は、Schema Manager２１８及びSchema Base２１９を多重継承するクラス・オブジェクトであり、スキーマのツリー構造において、当該スキーマ自身についての親スキーマ及び子供スキーマすなわち親子関係を管理する。
【０２２９】
Intermediate Parent Schema Base２２４は、Parent Schema Base２２３を継承するクラス・オブジェクトであり、各クラスのためのインターフェース変換を実現する。また、Intermediate Parent Schema Base２２４は、Schema Status Info２２５を持つ。このSchema Status Info２２５は、当該スキーマ自身のステートマシンを管理するクラス・オブジェクトである。親スキーマは、子供スキーマのＡｃｔｉｏｎ関数をコールすることによってそのステートマシンの状態を切り換えることができる。また、子供スキーマのＭｏｎｉｔｏｒ関数をコールしてそのステートマシンの常態に応じた行動価値ＡＬを問うことができる。但し、スキーマのステートマシンは、前述したＡｃｔｉｏｎ関数のステートマシンとは異なるということを留意されたい。
【０２３０】
And Parent Schema２２６、Num Or Parent Schema２２７、Or Parent Schema２２８は、Intermediate Parent Schema Base２２４を継承するクラス・オブジェクトである。And Parent Schema２２６は、同時実行する複数の子供スキーマへのポインタを持つ。Or Parent Schema２２８は、いずれか択一的に実行する複数の子供スキーマへのポインタを持つ。また、Num Or Parent Schema２２７は、所定数のみを同時実行する複数の子供スキーマへのポインタを持つ。
【０２３１】
Parent Schema２２９は、これらAnd Parent Schema２２６、Num Or Parent Schema２２７、Or Parent Schema２２８を多重継承するクラス・オブジェクトである。
【０２３２】
図３０には、状況依存行動階層（ＳＢＬ）１０２内のクラスの機能的構成を模式的に示している。状況依存行動階層（ＳＢＬ）１０２は、ＳＴＭやＬＴＭ、リソース・マネージャ、認識系の各オブジェクト等外部オブジェクトからデータを受信する１以上のReceive Data Handler（ＲＤＨ）２１３と、外部オブジェクトにデータを送信する１以上のSend Data Handler（ＳＤＨ）２１４とを備えている。
【０２３３】
Event Data Handler（ＥＤＨ）２１１は、ＳＢＬ１０２の入出力イベントに対してＩＤを割り振るためのクラス・オブジェクトであり、ＲＤＨ２１３やＳＤＨ２１４から入出力イベントの通知を受ける。
【０２３４】
Schema Handler２１２は、スキーマを管理するためのクラス・オブジェクトであり、ＳＢＬ１０２を構成するスキーマのコンフィギュレーション情報をファイルとして保管している。例えばシステムの起動時等に、Schema Handler２１２は、このコンフィギュレーション情報ファイルを読み込んで、ＳＢＬ１０２内のスキーマ構成を構築する。
【０２３５】
各スキーマは、図２９に示したクラス定義に従って生成され、メモリ空間上にエンティティがマッピングされる。各スキーマは、OpenR_Guest２１５をベースのクラス・オブジェクトとし、外部にデータ・アクセスするためのDSubject２１６やDObject２１７等のクラス・オブジェクトを備えている。
【０２３６】
スキーマが主に持つ関数とステートマシンを以下に示しておく。以下の関数は、Schema Base２１９で記述されている。
ＡｃｔｉｖａｔｉｏｎＭｏｎｉｔｏｒ（）：スキーマがＲｅａｄｙ時にＡｃｔｉｖｅになるための評価関数
Ａｃｔｉｏｎｓ（）：Ａｃｔｉｖｅ時の実行用ステートマシン
Ｇｏａｌ（）：Ａｃｔｉｖｅ時にスキーマがＧｏａｌに達したかを評価する関数
Ｆａｉｌ（）：Ａｃｔｉｖｅ時にスキーマがｆａｉｌ状態かを判定する関数
ＳｌｅｅｐＡｃｔｉｏｎｓ（）：Ｓｌｅｅｐ前に実行されるステートマシン
ＳｌｅｅｐＭｏｎｉｔｏｒ（）：Ｓｌｅｅｐ時にＲｅｓｕｍｅするための評価関数
ＲｅｓｕｍｅＡｃｔｉｏｎｓ（）：Ｒｅｓｕｍｅ前にＲｅｓｕｍｅするためのステートマシン
ＤｅｓｔｒｏｙＭｏｎｉｔｏｒ（）：Ｓｌｅｅｐ時にスキーマがｆａｉｌ状態か判定する評価関数
ＭａｋｅＰｒｏｎｏｍｅ（）：ツリー全体のターゲットを決定する関数
【０２３７】
（８−３）状況依存行動階層の機能
状況依存行動階層（ＳＢＬ）１０２は、短期記憶部９２及び長期記憶部９３の記憶内容や、内部状態管理部９１によって管理される内部状態を基に、ロボット装置１が現在置かれている状況に即応した動作を制御する。
【０２３８】
前項で述べたように、本具体例における状況依存行動階層１０２は、スキーマのツリー構造（図２５を参照のこと）で構成されている。各スキーマは、自分の子供と親の情報を知っている状態で独立性を保っている。このようなスキーマ構成により、状況依存行動階層１０２は、Concurrentな評価、Concurrentな実行、Preemption、Reentrantという主な特徴を持っている。以下、これらの特徴について詳解する。
【０２３９】
（８−３−１）Ｃｏｎｃｕｒｒｅｎｔな評価：
行動記述モジュールとしてのスキーマは外部刺激や内部状態の変化に応じた状況判断を行なうＭｏｎｉｔｏｒ機能を備えていることは既に述べた。Ｍｏｎｉｔｏｒ機能は、スキーマがクラス・オブジェクトSchema BaseでＭｏｎｉｔｏｒ関数を備えていることにより実装されている。Ｍｏｎｉｔｏｒ関数とは、外部刺激と内部状態に応じて当該スキーマの行動価値ＡＬを算出する関数である。
【０２４０】
図２５に示すようなツリー構造を構成する場合、上位（親）のスキーマは外部刺激１８３と内部状態の変化１８４を引数として下位（子供）のスキーマのＭｏｎｉｔｏｒ関数をコールすることができ、子供のスキーマは行動価値ＡＬを返り値とする。また、スキーマは自分の行動価値ＡＬを算出するために、更に子供のスキーマのＭｏｎｉｔｏｒ関数をコールすることができる。そして、ルートのスキーマ２０１１〜２０３１には各サブツリーからの行動価値ＡＬが返されるので、外部刺激１８３と内部状態の変化１８４に応じた最適なスキーマすなわち動作を統合的に判断することができる。
【０２４１】
このようにツリー構造になっていることから、外部刺激１８３と内部状態の変化１８４による各スキーマの評価は、まずツリー構造の下から上に向かってConcurrentに行なわれる。即ち、スキーマに子供スキーマがある場合には、選択した子供のＭｏｎｉｔｏｒ関数をコールしてから、自身のＭｏｎｉｔｏｒ関数を実行する。次いで、ツリー構造の上から下に向かって評価結果としての実行許可を渡していく。評価と実行は、その動作が用いるリソースの競合を解きながら行なわれる。
【０２４２】
本具体例における状況依存行動階層１０２は、スキーマのツリー構造を利用して、並列的に行動の評価を行なうことができるので、外部刺激１８３や内部状態の変化１８４等の状況に対しての適応性がある。また、評価時には、ツリー全体に関しての評価を行ない、このとき算出される行動価値ＡＬによりツリーが変更されるので、スキーマすなわち実行する動作を動的にプライオリタイズすることができる。
【０２４３】
（８−３−２）Ｃｏｎｃｕｒｒｅｎｔな実行：
ルートのスキーマには各サブツリーからの行動価値ＡＬが返されるので、外部刺激１８３と内部状態の変化１８４に応じた最適なスキーマすなわち動作を統合的に判断することができる。例えば行動価値ＡＬが最も高いスキーマを選択したり、行動価値ＡＬが所定の閾値を越えた２以上のスキーマを選択して並列的に行動実行するようにしてもよい（但し、並列実行するときは各スキーマどうしでハードウェア・リソースの競合がないことを前提とする）。
【０２４４】
選択され、実行許可をもらったスキーマは実行される。すなわち、実際にそのスキーマは更に詳細の外部刺激１８３や内部状態の変化１８４を観測して、コマンドを実行する。実行に関しては、ツリー構造の上から下に向かって順次すなわちConcurrentに行なわれる。即ち、スキーマに子供スキーマがある場合には、子供のＡｃｔｉｏｎｓ関数を実行する。
【０２４５】
Ａｃｔｉｏｎ関数は、スキーマ自身が持つ行動（動作）を記述したステートマシンを備えている。図２５に示すようなツリー構造を構成する場合、親スキーマは、Ａｃｔｉｏｎ関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。
【０２４６】
本具体例における状況依存行動階層（ＳＢＬ）１０２は、スキーマのツリー構造を利用して、リソースが競合しない場合には、余ったリソースを使う他のスキーマを同時に実行することができる。但し、Ｇｏａｌまでに使用するリソースに対して制限を加えないと、ちぐはぐな行動出現が起きる可能性がある。状況依存行動階層１０２において決定された状況依存行動は、リソース・マネージャにより反射行動部（ReflexiveＳＢＬ）１０３による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作（Motion Controller）に適用される。
【０２４７】
（８−３−３）Ｐｒｅｅｍｐｔｉｏｎ：
１度実行に移されたスキーマであっても、それよりも重要な（優先度の高い）行動があれば、スキーマを中断してそちらに実行権を渡さなければならない。また、より重要な行動が終了（完結又は実行中止等）したら、元のスキーマを再開して実行を続けることも必要である。
【０２４８】
このような優先度に応じたタスクの実行は、コンピュータの世界におけるＯＳ（オペレーティング・システム）のPreemptionと呼ばれる機能に類似している。ＯＳでは、スケジュールを考慮するタイミングで優先度のより高いタスクを順に実行していくという方針である。
【０２４９】
これに対し、本具体例におけるロボット装置１の制御システム１０は、複数のオブジェクトにまたがるため、オブジェクト間での調停が必要になる。例えば反射行動を制御するオブジェクトである反射行動部１０３は、上位の状況依存行動を制御するオブジェクトである状況依存行動階層１０２の行動評価を気にせずに物を避けたり、バランスをとったりする必要がある。これは、実際に実行権を奪い取り実行を行なう訳であるが、上位の行動記述モジュール（ＳＢＬ）に、実行権利が奪い取られたことを通知して、上位はその処理を行なうことによってPreemptiveな能力を保持する。
【０２５０】
また、状況依存行動層１０２内において、外部刺激１８３と内部状態の変化１８４に基づく行動価値ＡＬの評価の結果、あるスキーマに実行許可がなされたとする。更に、その後の外部刺激１８３と内部状態の変化１８４に基づく行動価値ＡＬの評価により、別のスキーマの重要度の方がより高くなったとする。このような場合、実行中のスキーマのＡｃｔｉｏｎｓ関数を利用してＳｌｅｅｐ状態にして中断することにより、Preemptiveな行動の切り替えを行なうことができる。
【０２５１】
実行中のスキーマのＡｃｔｉｏｎｓ（）の状態を保存して、異なるスキーマのＡｃｔｉｏｎｓ（）を実行する。また、異なるスキーマのＡｃｔｉｏｎｓ（）が終了した後、中断されたスキーマのＡｃｔｉｏｎｓ（）を再度実行することができる。
【０２５２】
また、実行中のスキーマのＡｃｔｉｏｎｓ（）を中断して、異なるスキーマに実行権が移動する前に、ＳｌｅｅｐＡｃｔｉｏｎｓ（）を実行する。例えば、ロボット装置１は、対話中にサッカーボールを見つけると、「ちょっと待ってね」と言って、サッカーすることができる。
【０２５３】
（８−３−４）Ｒｅｅｎｔｒａｎｔ：
状況依存行動階層１０２を構成する各スキーマは、一種のサブルーチンである。スキーマは、複数の親からコールされた場合には、その内部状態を記憶するために、それぞれの親に対応した記憶空間を持つ必要がある。
【０２５４】
これは、コンピュータの世界では、ＯＳが持つReentrant性に類似しており、本明細書ではスキーマのReentrant性と呼ぶ。図３０に示したように、スキーマはクラス・オブジェクトで構成されており、クラス・オブジェクトのエンティティすなわちインスタンスをターゲット（Ｐｒｏｎｏｍｅ）毎に生成することによりReentrant性が実現される。
【０２５５】
スキーマのReentrant性について、図３１を参照しながらより具体的に説明する。Schema Handler２１２は、スキーマを管理するためのクラス・オブジェクトであり、ＳＢＬ１０２を構成するスキーマのコンフィギュレーション情報をファイルとして保管している。システムの起動時に、Schema Handler２１２は、このコンフィギュレーション情報ファイルを読み込んで、ＳＢＬ１０２内のスキーマ構成を構築する。図３１に示す例では、Ｅａｔ２２１やＤｉａｌｏｇ２２２等の行動（動作）を規定するスキーマのエンティティがメモリ空間上にマッピングされているとする。
【０２５６】
ここで、外部刺激１８３と内部状態の変化１８４に基づく行動価値ＡＬの評価により、スキーマＤｉａｌｏｇ２２２に対してＡというターゲット（Ｐｒｏｎｏｍｅ）が設定されて、Ｄｉａｌｏｇ２２２が人物Ａとの対話を実行するようになったとする。
【０２５７】
そこに、人物Ｂがロボット装置１と人物Ａとの対話に割り込み、その後、外部刺激１８３と内部状態の変化１８４に基づく行動価値ＡＬの評価を行なった結果、Ｂとの対話を行なうスキーマ２２３の方がより優先度が高くなったとする。
【０２５８】
このような場合、Schema Handler２１２は、Ｂとの対話を行なうためのクラス継承した別のＤｉａｌｏｇエンティティ（インスタンス）をメモリ空間上にマッピングする。別のＤｉａｌｏｇエンティティを使用して、先のＤｉａｌｏｇエンティティとは独立して、Ｂとの対話を行なうことから、Ａとの対話内容は破壊されずに済む。従って、ＤｉａｌｏｇＡはデータの一貫性を保持することができ、Ｂとの対話が終了すると、Ａとの対話を中断した時点から再開することができる。
【０２５９】
Ｒｅａｄｙリスト内のスキーマは、その対象物（外部刺激１８３）に応じて評価すなわち行動価値ＡＬの計算が行なわれ、実行権が引き渡される。その後、Ｒｅａｄｙリスト内に移動したスキーマのインスタンスを生成して、これ以外の対象物に対して評価を行なう。これにより、同一のスキーマをａｃｔｉｖｅ又はｓｌｅｅｐ状態にすることができる。
【０２６０】
以上のような制御システムを実現する制御プログラムは、上述したように、予めフラッシュＲＯＭ２３に格納されており、ロボット装置１の電源投入初期時において読み出される。このようにしてこのロボット装置１においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るようになされている。
【図面の簡単な説明】
【０２６１】
【図１】本発明の実施の形態のロボット装置の外観を示す斜視図である。
【図２】本発明の実施の形態におけるロボット装置の機能構成を模式的に示すブロック図である。
【図３】本発明の実施の形態における制御ユニットの構成を更に詳細に示すブロック図である。
【図４】本発明の実施の形態におけるロボット装置の制御システムにおいて、各行動に対応する行動価値を算出してこれに基づき行動出力する処理を行う行動選択制御システム部分を示す機能ブロック図である。
【図５】上記行動選択制御システムにおける行動価値算出部を示す機能ブロック図である。
【図６】ロボット装置の自己内部状態管理部９１にて管理される自己内部状態モデルを示す模式図である。
【図７】（ａ）〜（ｃ）は、本実施の形態における感情モデルを示す情動空間Ｑを示す模式図である。
【図８】上図の行動価値算出部が内部状態及び外部刺激から行動価値ＡＬを算出する処理の流れを示す模式図である。
【図９】横軸に内部状態ベクトルIntVの各成分をとり、縦軸に欲求ベクトルInsVの各成分をとって、内部状態と欲求との関係を示すグラフ図である。
【図１０】行動価値算出データベースにおける行動価値算出データを示す図である。
【図１１】横軸にIntV_NOURISHMENT「栄養状態」、縦軸に内部状態「栄養状態」に対する満足度S_NOURISHMENTをとり、内部状態と満足度との関係を示すグラフ図である。
【図１２】横軸にIntV_FATIGUE「疲れ」、縦軸に内部状態「疲れ」に対する満足度S_FATIGUEをとって、内部状態と満足度との関係を示すグラフ図である。
【図１３】（ａ）及び（ｂ）は夫々内部状態「栄養状態」（「NOURISHMENT」）及び「疲れ」（「FATIGUE」）の予想内部状態変化量を求める場合の行動価値算出データ構造の一例を示す図である。
【図１４】１次元の外部刺激の線形補間方法を説明する図である。
【図１５】２次元の外部刺激の線形補間方法を説明する図である。
【図１６】２次元外部刺激の予想内部状態変化量の更新例を説明する図である。
【図１７】横軸に内部状態ベクトルIntVの各成分をとり、縦軸に欲求ベクトルInsVの各成分をとって、内部状態と欲求との関係を示すグラフ図である。
【図１８】行動価値算出データベースにおける行動価値算出データを示す図である。
【図１９】横軸にIntV_NOURISHMENT「栄養状態」、縦軸に内部状態「栄養状態」に対する満足度S_NOURISHMENTをとり、内部状態と満足度との関係を示すグラフ図である。
【図２０】本発明の実施の形態における行動制御選択システムにて使用されるエゴパラメータを示すグラフ図である。
【図２１】本発明の実施の形態におけるロボット装置の行動制御システムの機能構成を示す模式図である。
【図２２】本発明の実施の形態における行動制御システムのオブジェクト構成を示す模式図である。
【図２３】本発明の実施の形態における状況依存行動階層による状況依存行動制御の形態を示す模式図である。
【図２４】状況依存行動階層が複数のスキーマによって構成されている様子を示す模式図である。
【図２５】状況依存行動階層におけるスキーマのツリー構造を示す模式図である。
【図２６】状況依存行動階層において通常の状況依存行動を制御するためのメカニズムを示す模式図である。
【図２７】反射行動部におけるスキーマの構成を示す模式図である。
【図２８】反射行動部により反射的行動を制御するためのメカニズムを示す模式図である。
【図２９】状況依存行動階層において使用されるスキーマのクラス定義を示す模式図である。
【図３０】状況依存行動階層内のクラスの機能的構成を示す模式図である。
【図３１】スキーマのＲｅｅｎｔｒａｎｔ性を説明する図である。
【符号の説明】
【０２６２】
１  ロボット装置、１０  制御システム、１５  ＣＣＤカメラ、１６  マイクロフォン、１７  スピーカ、１８  タッチ・センサ、１９  ＬＥＤインジケータ、２０  制御部、２１  ＣＰＵ、２２  ＲＡＭ、２３  ＲＯＭ、２４  不揮発メモリ、２５  インターフェース、２６  無線通信インターフェース、２７  ネットワーク・インターフェース・カード、２８  バス、２９  キーボード、４０  入出力部、５０  駆動部、５１  モータ、５２  エンコーダ、５３  ドライバ、８１  視覚認識機能部、８２  聴覚認識機能部、８３  接触認識機能部、９１  内部状態管理部、９２  短期記憶部（ＳＴＭ）、９３  長期記憶部（ＬＴＭ）、９４  自己情動管理部、９５  自己状態管理部、９６  他者内部状態管理部、９７  他者情動管理部、９８  他者状態管理部、９９  エゴパラメータ算出部、１００  行動選択制御システム、１０１  熟考行動階層、１０２  状況依存行動階層（ＳＢＬ）、１０３  反射行動部、１２０  行動価値算出部、１２１  自己用データベース、１２２  自己ＡＬ算出部、１２３  他者用データベース、１２４  他者ＡＬ算出部、１２５  ＡＬ統合部、１３２  スキーマ
【図１】
2005199402.tif 000019
【図２】
2005199402.tif 000020
【図３】
2005199402.tif 000021
【図４】
2005199402.tif 000022
【図５】
2005199402.tif 000023
【図６】
2005199402.tif 000024
【図７】
2005199402.tif 000025
【図８】
2005199402.tif 000026
【図９】
2005199402.tif 000027
【図１０】
2005199402.tif 000028
【図１１】
2005199402.tif 000029
【図１２】
2005199402.tif 000030
【図１３】
2005199402.tif 000031
【図１４】
2005199402.tif 000032
【図１５】
2005199402.tif 000033
【図１６】
2005199402.tif 000034
【図１７】
2005199402.tif 000035
【図１８】
2005199402.tif 000036
【図１９】
2005199402.tif 000037
【図２０】
2005199402.tif 000038
【図２１】
2005199402.tif 000039
【図２２】
2005199402.tif 000040
【図２３】
2005199402.tif 000041
【図２４】
2005199402.tif 000042
【図２５】
2005199402.tif 000043
【図２６】
2005199402.tif 000044
【図２７】
2005199402.tif 000045
【図２８】
2005199402.tif 000046
【図２９】
2005199402.tif 000047
【図３０】
2005199402.tif 000048
【図３１】
2005199402.tif 000049