Robot device

阅读:277发布:2020-08-22

专利汇可以提供Robot device专利检索,专利查询,专利分析的服务。并且PROBLEM TO BE SOLVED: To realize social interaction of an entertainment robot while harmonizing action controlling softwares made of a plurality of stories with each other. SOLUTION: The status dependent action story selects an action in accordance with a status such as outside stimulation, a change of an inside state, etc. and the reflective action story reflectively acts in accordance with the outside stimulation. Additionally, the status dependent action story restrains practice of an action command manifested from the reflective action story in the case when the reflective action does not match an intention of an action in correspondence with the status by controlling the reflective action of the robot device as the outside stimulation. Alternatively, reversely, it excites the reflective action story in making the reflective action appear. COPYRIGHT: (C)2006,JPO&NCIPI,下面是Robot device专利的具体信息内容。

  • 内部状態又は外部入力に基づいて行動を生成するロボット装置において、
    内部状態又は外部入力に基づいて行動を制御する複数の行動制御階層と、
    前記ロボット装置の資源を管理し、各行動制御階層からの前記ロボット装置の駆動に関する動作コマンドの競合を解決する資源管理部と、
    を具備することを特徴とするロボット装置。
  • 前記の各行動制御階層は、前記ロボットの行動を決定する1以上の行動モジュールで構成され、
    各行動モジュールは、内部状態又は外部入力に応じた前記ロボット装置の行動評価を出力する行動評価手段と、前記ロボット装置の行動命令を出力する行動命令出力手段とをそれぞれ備え、
    前記の各行動制御階層では、各行動モジュールの前記行動評価手段における行動評価及び前記ロボット装置の使用リソースに基づいて、前記ロボット装置の行動を制御する動作コマンドを生成する、
    ことを特徴とする請求項1に記載のロボット装置。
  • 前記の各行動制御階層では、複数の行動モジュールはツリー状の階層構造をなし、前記階層構造の下位層の行動モジュールから上位層の行動モジュールへ出力される行動評価及び前記ロボット装置の使用リソースに基づいて行動モジュールを選択し、前記ロボット装置の行動を制御する、
    ことを特徴とする請求項2に記載のロボット装置。
  • 前記の各行動モジュールの行動命令出力手段は、前記ロボット装置において前記行動命令を実行する際に使用する前記ロボット装置のリソースを出力し、
    前記の各行動制御階層では、前記階層構造の下位層の行動モジュールから上位層の行動モジュールへ出力される行動評価及び前記ロボット装置の使用リソースに基づいて、前記ロボット装置の行動を制御する、
    ことを特徴とする請求項2に記載のロボット装置。
  • 前記の行動制御階層は、外部入力の認識結果を直接受けて出力行動を直接決定する反射行動制御階層と、外部入力並びに前記ロボット装置の内部状態に基づいて前記ロボット装置が置かれている状況に即応した行動を制御する状況依存行動階層と、将来の状況を推論して比較的長期にわたる前記ロボット装置の行動を計画する熟考行動制御階層を備える、
    ことを特徴とする請求項2に記載のロボット装置。
  • 前記資源管理部は、前記反射行動階層と前記状況依存行動階層の動作コマンドの競合を調停する、
    ことを特徴とする請求項5に記載のロボット装置。
  • 前記資源管理部は、前記反射行動階層並びに前記熟考行動階層からのコマンドの競合解決を行なうコマンド競合解決手段と、前記ロボット装置のハードウェア資源毎のコマンドの管理を行なうコンテンツ管理手段を備える、
    ことを特徴とする請求項5に記載のロボット装置。
  • 前記コマンド競合解決手段は、
    コマンドと、コマンドが使用する前記ロボット装置のハードウェア資源と、コマンドの活動度レベルを保持し、
    いずれかの行動制御階層から新しいコマンドが送信されたときには、現在実行中のコマンドが使用する前記ロボット装置のハードウェア資源と新しいコマンドが使用する前記ロボット装置のハードウェア資源が競合しているか否かを判定し、競合している場合には互いのコマンドに付随する活動度レベルの比較を行なうことによりコマンドの競合を解決する、
    ことを特徴とする請求項7に記載のロボット装置。
  • 前記行動モジュール内の行動評価手段は、前記行動命令手段による行動命令の出力を誘発する評価値を活動度レベルとして求める行動誘発評価値演算手段と、活動度レベルに対するバイアスを意図レベルとして求めるバイアス演算手段と、前記行動命令手段による行動命令を実行したときに使用する前記ロボット装置のリソースを特定する使用リソース演算手段を備える、
    ことを特徴とする請求項5に記載のロボット装置。
  • 前記状況依存行動階層は、反射行動が状況依存行動の意図に適合するか否かに応じて反射行動を抑制又は励起する行動意図信号を前記反射行動階層に出力し、
    前記反射行動階層は、行動意図信号を管理する行動意図管理手段を備え、前記状況依存行動階層における行動意図に基づいて各行動モジュールにおける意図レベルを操作することにより、状況依存行動の意図に反する行動モジュールを抑制し又は状況依存行動の意図に適合する行動モジュールを励起する、
    ことを特徴とする請求項9に記載のロボット装置。
  • 前記熟考行動階層は、状況依存行動が熟考行動の意図に適合するか否かに応じて状況依存行動を抑制又は励起する行動意図信号を前記反射行動階層に出力し、
    前記状況依存行動階層は、行動意図信号を管理する行動意図管理手段を備え、前記熟考行動階層における行動意図に基づいて各行動モジュールにおける意図レベルを操作することにより、熟考行動の意図に反する行動モジュールを抑制し又は熟考行動の意図に適合する行動モジュールを励起する、
    ことを特徴とする請求項9に記載のロボット装置。
  • 前記の行動制御階層は、内部状態をある範囲に保つためのホメオスタシス行動、及びホメオスタシス的な目的を持たないアイドル行動を自発的に発生させる状況依存行動階層と、外部入力の認識結果を直接受けて出力行動を直接決定する反射行動制御階層を含み、
    前記状況依存行動階層から出力される自発行動と前記反射行動制御階層より出力される反射行動を調停する資源管理部をさらに備える、
    ことを特徴とする請求項1に記載のロボット装置。
  • 前記状況依存行動階層は、それぞれのホメオスタシス行動及びアイドル行動を行動出力する複数の要素行動で構成され、
    前記反射行動階層は、それぞれの反射行動を行動出力する複数の要素行動で構成される、
    ことを特徴とする請求項12に記載のロボット装置。
  • 各要素行動の実行優先度を示す行動価値を算出する行動価値算出手段をそれぞれ備え、
    前記状況依存行動階層は、自発行動として行動出力すべき要素行動を行動価値に基づいて選択する行動選択手段をさらに備える、
    ことを特徴とする請求項13に記載のロボット装置。
  • 前記行動価値算出手段は、
    前記ロボット装置の内部状態から欲求値を算出するとともに、内部状態と認識結果から予想満足値を算出し、該欲求値と該予想満足値からホメオスタシス行動の要素行動の行動価値を算出し、
    アイドル行動の要素行動の行動価値として一定値を与える、
    ことを特徴とする請求項14に記載のロボット装置。
  • 前記状況依存行動階層から出力される自発行動の要素運動と前記反射行動階層より出力される反射行動の要素運動とを調停する資源管理部をさらに備える、
    ことを特徴とする請求項15に記載のロボット装置。
  • 前記状況依存行動階層及び前記反射行動階層はそれぞれ出力する要素行動にコマンドの強さを与え、
    前記資源管理部は、コマンドの強さに基づいて、ホメオスタシス行動と反射行動、又はアイドル行動と反射行動の間で調停を行なう、
    ことを特徴とする請求項16に記載のロボット装置。
  • 前記状況依存行動階層は、ホメオスタシス行動の要素行動に対して行動価値に基づくコマンドの強さを与える、
    ことを特徴とする請求項17に記載のロボット装置。
  • 前記状況依存行動階層は、アイドル行動の各要素行動に対してそれぞれ固有のコマンドの強さを与える、
    ことを特徴とする請求項17に記載のロボット装置。
  • 前記反射行動階層は、すべての要素行動にコマンドの強さとして一定値を与える、
    ことを特徴とする請求項17に記載のロボット装置。
  • 反射行動の要因となる外部入力イベントが発生する反射イベント密度を管理する反射イベント管理部を備える、
    前記状況依存行動階層は、反射イベント密度に基づいてアイドル行動の各要素行動が選択される確率を求め、該確率に従って要素行動を選択する、
    ことを特徴とする請求項13に記載のロボット装置。
  • 说明书全文

    本発明は、自律的な動作を行ないユーザとのリアリスティックなコミュニケーションを実現するロボット装置に係り、特に、視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況を統合的に判断して適当な行動を選択するロボットのための行動制御システム及び行動制御方法、並びにロボット装置に関する。

    電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置のことを「ロボット」という。 ロボットの語源は、スラブ語の“ROBOTA(奴隷機械)”に由来すると言われている。 わが国では、ロボットが普及し始めたのは1960年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット(industrial robot)であった。

    最近では、イヌやネコ、クマのように4足歩行の動物の身体メカニズムやその動作を模したペット型ロボット、あるいは、ヒトやサルなどの2足直立歩行を行なう動物の身体メカニズムや動作を模した「人間形」若しくは「人間型」のロボット(humanoid robot)など、脚式移動ロボットの構造やその安定歩行制御に関する研究開発が進展し、実用化への期待も高まってきている。 これら脚式移動ロボットは、クローラ式ロボットに比し不安定で姿勢制御や歩行制御が難しくなるが、階段の昇降や障害物の乗り越えなど、柔軟な歩行・走行動作を実現できるという点で優れている。

    脚式移動ロボットの用途の1つとして、産業活動・生産活動等における各種の難作業の代行が挙げられる。 例えば、原子発電プラントや火力発電プラント、石油化学プラントにおけるメンテナンス作業、製造工場における部品の搬送・組立作業、高層ビルにおける清掃、火災現場その他における救助といったような危険作業・難作業の代行などである。

    また、脚式移動ロボットの他の用途として、上述の作業支援というよりも、生活密着型、すなわち人間との「共生」あるいは「エンターティンメント」という用途が挙げられる。 この種のロボットは、ヒトあるいはイヌ(ペット)、クマなどの比較的知性の高い脚式歩行動物の動作メカニズムや四肢を利用した豊かな感情表現を忠実に再現する。 また、あらかじめ入力された動作パターンを単に忠実に実行するだけではなく、ユーザ(あるいは他のロボット)から受ける言葉や態度(「褒める」とか「叱る」、「叩く」など)に対して動的に対応した、生き生きとした応答表現を実現することも要求される。

    従来の玩具機械は、ユーザ操作と応答動作との関係が固定的であり、玩具の動作をユーザの好みに合わせて変更することはできない。 この結果、ユーザは同じ動作しか繰り返さない玩具をやがては飽きてしまうことになる。 これに対し、インテリジェントなロボットは、対話や機体動作などからなる行動を自律的に選択することから、より高度な知的レベルでリアリスティックなコミュニケーションを実現することが可能となる。 この結果、ユーザはロボットに対して深い愛着や親しみを感じる。

    ロボットあるいはその他のリアリスティックな対話システムでは、視覚や聴覚など外部環境の変化に応じて逐次的に行動を選択していくのが一般的である。 また、行動選択メカニズムの他の例として、本能や感情といった情動をモデル化してシステムの内部状態を管理して、内部状態の変化に応じて行動を選択するものを挙げることができる。 勿論、システムの内部状態は、外部環境の変化によっても変化するし、選択された行動を発現することによっても変化する。

    しかしながら、これら外部環境や内部状態などのロボットが置かれている状況を統合的に判断して行動を選択するという、状況依存型の行動制御に関しては例が少ない。

    ここで、内部状態には、例えば生体で言えば大脳辺縁系へのアクセスに相当する本能のような要素や、大脳新皮質へのアクセスに相当する内発的欲求や社会的欲求などのように動物行動学的モデルで捉えられる要素、さらには喜びや悲しみ、怒り、驚きなどのような感情と呼ばれる要素などで構成される。

    従来のインテリジェント・ロボットやその他の自律対話型ロボットにおいては、本能や感情などさまざまな要因からなる内部状態をすべて「情動」としてまとめて1次元的に内部状態を管理していた。 すなわち、内部状態を構成する各要素はそれぞれ並列に存在しており、明確な選択基準のないまま外界の状況や内部状態のみで行動が選択されていた。

    従来のシステムでは、その動作の選択及び発現は1次元の中にすべての行動が存在し、どれを選択するかを決定していた。 このため、動作が多くなるにつれてその選択は煩雑になり、そのときの状況や内部状態を反映した行動選択を行なうことがより難しくなる。

    近時、本能や感情といった情動をモデル化してシステムの内部状態を管理し、内部状態の変化に応じて行動を選択するシステムが提案されているものの(例えば、非特許文献1を参照のこと)、内部状態と外部刺激に対して選択される行動は固定的なものが多く、ユーザや環境とのインタラクションを通じてそれを変えることは困難である。

    ロボット装置が現在の状況に応じた最適な次の行動及び動作を予想して行なわせる機能や、過去の経験に基づいて次の行動及び動作を変化させる機能(以下では、「状況依存型の行動制御」とも呼ぶ)を搭載することができれば、より一層の親近感や満足感をユーザに与えて、ロボット装置としてのアミューズメント性をより向上させるとともに、ユーザとのインタラクションを円滑に行なうことができて便利である。

    また、最近では、本脳や感情といった情動をモデル化しシステムの内部状態を管理して、この種の内部状態と、センサ入力などから得られる認識結果(タッチセンサのシーケンス入力や、カラー・ボールの認識、顔認識、音声認識など)すなわち外部刺激という2種類の入力に基づいて、状況依存行動を自発的に選択することができるエンタテインメント・ロボットが提案されている(例えば、特許文献1を参照のこと)。

    その一方で、自発的な状況依存行動の他に、センサ入力そのものをトリガとして反射的な行動を行なうことも、エンタテインメント・ロボットには重要である、と本発明者らは思料する。 例えば、肩タッチセンサを押された、目の前に突然何か物体が現れた、大きな音が発生したなどの外部刺激に対して、反射行動である。 この種の反射行動は基本的には内部状態とはほぼ無関係に行なわれる。 このような場合、状況依存行動と反射行動という2種類の行動を調停することは困難である。

    特許第3,558,222号公報

    尾形哲也、菅野重樹共著「自己保存に基づくロボットの行動生成−方法論と機械モデルの実現化−」、日本ロボット学会誌、1997年、第15巻、第5号、p. 710−721

    本発明の目的は、自律的な動作を行ないリアリスティックなコミュニケーションを実現することができる、優れたロボット装置を提供することにある。

    本発明のさらなる目的は、視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況を統合的に判断して行動を選択することができる、優れたロボット装置を提供することにある。

    本発明のさらなる目的は、情動についての存在意義をより明確にして、一定の秩序の下で外部刺激や内部状態に応じた行動を好適に選択し実行することができる、優れたロボット装置を提供することにある。

    本発明のさらなる目的は、視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況を統合的に判断して行動を選択することができる、優れたロボット装置を提供することにある。

    本発明のさらなる目的は、複数の階層からなる行動制御ソフトウェア間の調和をとりながら、エンタテインメント・ロボットの社会的なインタラクションを実現することができる、優れたロボット装置を提供することにある。

    本発明のさらなる目的は、外部刺激や内部状態に応じた自発的な状況依存行動と、外部刺激に直接反応する反射行動という2種類の異なった行動を好適に発現することができる、優れたロボット装置を提供することにある。

    本発明のさらなる目的は、自発的な状況依存行動と反射行動という2種類の異なった行動を好適に調停することができる、優れたロボット装置を提供することにある。

    本発明は、上記課題を参酌してなされたものであり、内部状態又は外部入力に基づいて行動を生成するロボット装置において、
    内部状態又は外部入力に基づいて行動を制御する複数の行動制御階層と、
    前記ロボット装置の資源を管理し、各行動制御階層からの前記ロボット装置の駆動に関する動作コマンドの競合を解決する資源管理部と、
    を具備することを特徴とするロボット装置である。

    ここで、前記の各行動制御階層は、前記ロボットの行動を決定する1以上の行動モジュールで構成され、各行動モジュールは、内部状態又は外部入力に応じた前記ロボット装置の行動評価を出力する行動評価手段と、前記ロボット装置の行動命令を出力する行動命令出力手段とをそれぞれ備えている。 そして、前記の各行動制御階層では、各行動モジュールの前記行動評価手段における行動評価に基いて、前記ロボット装置の行動を制御する動作コマンドを生成するようになっている。

    各行動制御階層は、複数の行動モジュールがロボット装置の実現レベルに応じた木構造形式に構成することができる。 この木構造は、動物行動学的(Ethological)な状況依存行動を数式化した行動モデルや、感情表現を実行するための枝など、複数の枝を含んでいる。 例えば、ルート行動モジュールの直近下位の階層では、「探索する(Investigate)」、「食べる(Ingestive)」、「遊ぶ(Play)」という行動モジュールが配設される。 そして、「探索する(Investigate)」の下位には、「InvestigativeLocomotion」、「HeadinAirSniffing」、「InvestigativeSniffing」というより具体的な探索行動を記述した行動モジュールが配設されている。 同様に、行動モジュール「食べる(Ingestive)」の下位には「Eat」や「Drink」などのより具体的な飲食行動を記述した行動モジュールが配設され、行動モジュール「遊ぶ(Play)」の下位には「PlayBowing」、「PlayGreeting」、「PlayPawing」などのより具体的な遊ぶ行動を記述した行動モジュールが配設されている。

    したがって、前記の各行動制御階層では、このような階層構造の下位層の行動モジュールから上位層の行動モジュールへ出力される行動評価に基づいて行動モジュールを選択し、前記ロボット装置の行動を制御することができる。

    前記の各行動モジュールの行動命令出力手段は、前記ロボット装置において前記行動命令を実行する際に使用する前記ロボット装置のリソースを出力する。 そして、前記の各行動制御階層では、前記階層構造の下位層の行動モジュールから上位層の行動モジュールへ出力される行動評価及び前記ロボット装置の使用リソースに基づいて、前記ロボット装置の行動を制御する。

    このような場合、前記行動評価部は該木構造の上から下に向かって複数の行動モジュールを同時並行的に評価することができる。 また、外部入力やロボット装置自身の内部状態の変化に応答して、前記行動評価部による前記の各行動モジュールの評価を実行して、木構造を上から下に向かって評価結果としての実行許可を渡していくことにより、外部環境や内部状態の変化に応じた適当な行動を選択的に実行することができる。 すなわち、状況依存の行動の評価並びに実行をConcurrentに行なうことができる。

    ここで、本発明に係るロボット装置は、複数の行動制御階層として、例えば、外部入力の認識結果を直接受けて出力行動を直接決定する反射行動制御階層と、外部入力並びに前記ロボット装置の内部状態に基づいて前記ロボット装置が置かれている状況に即応した行動を制御する状況依存行動階層と、将来の状況を推論して比較的長期にわたる前記ロボット装置の行動を計画する熟考行動制御階層という3層からなる行動制御の階層構造を備えている。

    前記反射行動階層と前記状況依存行動階層による行動選択はそれぞれ独立して行なわれるので、互いに選択された行動モジュールをロボット装置上で実行するときには、ハードウェア・リソースが競合する場合がある。 前記反射行動階層から発行されるコマンドは反射行動として生成するコマンドであるのに対し、前期状況依存行動階層から発行されるコマンドは、状況依存行動として生成するコマンドである。 これらの行動階層は別プロセスとして、若しくは別スレッドとして生成するため、あらかじめ調停しておくことが困難である。

    そこで、本発明では、前記資源管理部は、前記反射行動階層と前記状況依存行動階層の動作コマンドの競合を調停するようにしている。

    前記資源管理部は、前記反射行動階層並びに前記熟考行動階層からのコマンドの競合解決を行なうコマンド競合解決手段と、前記ロボット装置のハードウェア資源毎のコマンドの管理を行なうコンテンツ管理手段を備えている。 そして、前記コマンド競合解決手段は、コマンドと、コマンドが使用する前記ロボット装置のハードウェア資源と、コマンドの活動度レベルを保持し、いずれかの行動制御階層から新しいコマンドが送信されたときには、現在実行中のコマンドが使用する前記ロボット装置のハードウェア資源と新しいコマンドが使用する前記ロボット装置のハードウェア資源が競合しているか否かを判定し、競合している場合には互いのコマンドに付随する活動度レベルの比較を行なうことによりコマンドの競合を解決することができる。

    したがって、現在実行中のコマンドの活動度レベルが新しいコマンドの活動度レベルよりも低い場合には、実行中のコマンドはキャンセルされ、新しいコマンドが実行される。 他方、現在実行中のコマンドの活動度レベルが新しいコマンドの活動度レベルよりも高い場合には、新しいコマンドは実行中のコマンドの終了を待って実行されるか、若しくは新しいコマンドがキャンセル処理される。 また、新しいコマンドの活動度レベルが前記資源管理部で待ち状態にあるコマンドの活動度レベルよりも大きい場合には、前記資源管理部で待ち状態にあるコマンドはキャンセルされる。

    前記行動モジュール内の行動評価手段は、前記行動命令手段による行動命令の出力を誘発する評価値を活動度レベルとして求める行動誘発評価値演算手段と、活動度レベルに対するバイアスを意図レベルとして求めるバイアス演算手段と、前記行動命令手段による行動命令を実行したときに使用する前記ロボット装置のリソースを特定する使用リソース演算手段を備えている。 上位の行動制御階層は、下位の行動制御階層に対し意図レベルを指示することにより、自階層の意図に反して動作するのを抑制したり、逆に自階層の意図に適うように励起したりすることができる。

    例えば、前記状況依存行動階層は、反射行動が状況依存行動の意図に適合するか否かに応じて反射行動を抑制又は励起する行動意図信号を前記反射行動階層に出力し、前記反射行動階層は、行動意図信号を管理する行動意図管理手段を備え、前記状況依存行動階層における行動意図に基づいて各行動モジュールにおける意図レベルを操作するようにする。 これによって、状況依存行動の意図に反する反射行動を抑制し、又は状況依存行動の意図に適合する反射行動を励起することができる。

    反射行動制御階層は外部刺激の入力により直接動作するので、資源管理部による調停に頼っていたのでは、状況依存行動階層は反射行動を十分に抑制することができない。 これに対し、状況依存行動階層は、意図レベルを反射行動制御階層に通知しておくことで、状況依存行動が意図しない反射行動を好適に抑制することができる。

    また、前記熟考行動階層は、状況依存行動が熟考行動の意図に適合するか否かに応じて状況依存行動を抑制又は励起する行動意図信号を前記反射行動階層に出力し、前記状況依存行動階層は、行動意図信号を管理する行動意図管理手段を備え、前記熟考行動階層における行動意図に基づいて各行動モジュールにおける意図レベルを操作する。 これによって、熟考行動の意図に反する行動モジュールを抑制し又は熟考行動の意図に適合する行動モジュールを励起することができる。

    すなわち、熟考行動階層は、意図レベルを状況依存行動制御階層に通知しておくことで、熟考行動が意図しない状況依存行動を好適に抑制することができる。

    また、状況依存行動階層を構成する要素行動がすべて内部状態をある範囲に保つための行動すなわち「ホメオスタシス行動」である場合、すべての内部状態が十分満たされているときには各要素行動の欲求値は小さくなるため、行動価値(行動制御階層内で行動モジュールの競合解決を行なうための行動モジュールの活性度レベル)も小さく、状況依存行動が発現する機会は低下することになる。 このような場合、外部刺激もなければ反射行動を起こさなくなるので、ロボット装置は何もしなくなり、エンタテイメント性を損なうという問題がある。 そこで、ロボット装置の自発的な行動を発現する状況依存行動の構成要素として、ホメオスタシス的な目的を持たない「アイドル行動」をさらに組み込むようにしてもよい。

    このように、自発行動としてアイドル行動を取り入れた場合には、状況依存行動階層内では、ホメオスタシス行動とアイドル行動のいずれを行動出力すべきかを調停しなければならなくなる。 また、状況依存行動階層と反射行動階層の間では、それぞれから出力される自発行動と反射行動のいずれを行動すべきかを調停しなければならなくなる。

    例えば、前記状況依存行動階層は、それぞれのホメオスタシス行動及びアイドル行動を行動出力する複数の要素行動で構成され、前記反射行動階層は、それぞれの反射行動を行動出力する複数の要素行動で構成される。 要素行動は、上述した行動モジュールに相当する。 そして、各要素行動の当該行動の実行優先度を示す行動価値を算出する行動価値算出手段をそれぞれ備える。 前記行動価値算出手段は、前記ロボット装置の内部状態から欲求値を算出するとともに、内部状態と認識結果から予想満足値を算出し、該欲求値と該予想満足値からホメオスタシス行動の要素行動の行動価値を算出する。 また、アイドル行動の要素行動の行動価値として一定値を与える。

    このような場合、前記状況依存行動階層は、自発行動として行動出力すべき要素行動を行動価値に基づいて選択する行動選択手段を備え、ホメオスタシス行動とアイドル行動の調停を行なわせるようにすることができる。

    ホメオスタシス行動の行動価値が欲求値と予想満足値から算出される一方、アイドル行動に対しては一定の行動価値が与えられている。 したがって、欲求値が上昇するとホメオスタシス行動の行動価値が高まるのでホメオスタシス行動を状況依存行動として選択される。 逆に、すべての内部状態が十分に満たされているときにはすなわちホメオスタシス行動の行動価値が低下していき、アイドル行動の行動価値を下回るようになると、アイドル行動が選択されるようになる。

    アイドル行動はホメオスタシス的な目的を持たない、すなわち内部状態とは無関係であることから、その要素行動の行動価値は一定値が与えられている。 そして、反射行動との競合を回避又は緩和する必要がある。

    そこで、本発明に係るロボット装置は、反射行動の要因となる外部入力イベントが発生する反射イベント密度を管理する反射イベント管理部をさらに備え、前記状況依存行動階層は、反射イベント密度に基づいてアイドル行動の各要素行動が選択される確率を求め、該確率に従って要素行動を選択するようにしている。 反射イベント密度が高くなると、動作量の小さなアイドル行動あるいは反射行動が選ばれ易くなり、反射イベント密度が低くなると、動作量の大きなアイドル行動が選ばれ易く、あるいは反射行動が選ばれにくくなる。 この結果、反射行動の要因となるイベントの種類や頻度から、アイドル行動を自発的に出力するタイミングやそのモーションの種類を調停することができる。

    そして、本発明に係るロボット装置は、前記状況依存行動階層から出力される自発行動の要素運動と前記反射行動階層より出力される反射行動の要素運動とを調停する資源管理部をさらに備えている。 前記状況依存行動階層及び前記反射行動階層はそれぞれ出力する要素行動にコマンドの強さ(資源管理部でコマンドの競合解決を行なうためのコマンドの活動度レベル)を与える。 そして、前記資源管理部は、コマンドの強さに基づいて、ホメオスタシス行動と反射行動、又はアイドル行動と反射行動の間で調停を行なうことにより、2種類の異なった行動を好適に調停するようにしている。

    ここで、前記状況依存行動階層は、ホメオスタシス行動の要素行動に対して行動価値に基づくコマンドの強さを与え、アイドル行動の各要素行動に対してそれぞれ固有のコマンドの強さを与えるようにする。 また、前記反射行動階層は、すべての要素行動にコマンドの強さとして一定値を与えるようにする。

    このような場合、ホメオスタシス行動の行動価値(欲求)が低い場合には、ロボット装置としては反射行動のトリガに反応し易くなるが、ホメオスタシス行動の行動価値が高い場合には、ロボット装置としては反射行動のトリガに反応しない(その行動に集中しているように見える)ことになる。

    また、欲求が低い場合にはホメオスタシス的でないアイドル行動が自発的行動として選択されるのは既に述べた通りであり、この場合、資源管理部はアイドル行動と反射行動とを調停することになる。 アイドル行動は、反射行動の要因となるイベント(外部入力)の種類や頻度に応じてモーションの種類が決定される。 そして、アイドル行動は、ユーザからの反射イベントが多く反射イベント密度が高い場合は、ロボット装置は反射行動のトリガに反応するようになる。 他方、ユーザから放置されて反射イベント密度が低い場合には、ロボット装置は反射行動のトリガに反応しない(その行動に集中しているように見える)ことになる。

    本発明によれば、自律的な動作を行ないユーザとのリアリスティックなコミュニケーションを実現することができる、優れたロボット装置を提供することができる。

    また、本発明によれば、視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況を統合的に判断して行動を選択することができる、優れたロボット装置を提供することができる。

    また、本発明によれば、視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況を統合的に判断して行動を選択することができる、優れたロボット装置を提供することができる。

    また、本発明によれば、情動についての存在意義をより明確にして、一定の秩序の下で外部刺激や内部状態に応じた行動を好適に選択し実行することができる、優れたロボット装置を提供することができる。

    また、本発明によれば、複数の階層からなる行動制御ソフトウェア間の調和をとりながら、エンタテインメント・ロボットの社会的なインタラクションを実現することができる、優れたロボット装置を提供することができる。

    また、本発明によれば、反射行動と状況依存行動と熟考行動が別のプロセスとし、そのための制御方法を構築することで、反射行動の反応時間が状況依存行動や熟考行動によって遅延することを避けられるため、反応の遅延を気にせず視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況の記述を充実させることができ、優れたロボット装置を提供することができる。

    本発明に係るロボット装置は、自発行動の行動価値で反射行動の出力を制御することにより、ホメオスタシス行動の集中度合いを表現することができる。

    また、本発明に係るロボット装置は、反射イベント密度に応じてアイドル行動のコマンドの強さによって反射行動の出力を制御することにより、アイドル行動の集中度合いを表現することができる。

    また、本発明に係るロボット装置は、反射イベント密度に応じてアイドル行動の種類を制御することにより、アイドル行動の集中度合いを表現することができる。

    また、本発明に係るロボット装置は、反射イベントが多数あるときは、なるべく動作量の大きいモーションを出さないようにすることにより、動力学的に反射行動を出力し易くすることができる。

    また、本発明に係るロボット装置は、ユーザからより明示的に反射イベントがある場合は、反射イベント密度の増加分を増やすことができる。

    本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。

    以下、図面を参照しながら本発明の実施形態について詳解する。

    A. ロボット装置の構成
    図1には、本発明に実施に供されるロボット装置1の機能構成を模式的に示している。 同図に示すように、ロボット装置1は、全体の動作の統括的制御やその他のデータ処理を行なう制御ユニット20と、入出力部40と、駆動部50と、電源部60とで構成される。 以下、各部について説明する。

    入出力部40は、入力部としてロボット装置1の目に相当するCCD(Charge Coupled Device:電荷結合素子)カメラ15や、に相当するマイクロフォン16、頭部や背中などの部位に配設されてユーザの接触感知するタッチセンサ18、あるいは五感に相当するその他の各種のセンサを含む。 また、出力部として、口に相当するスピーカ17、あるいは点滅の組み合わせや点灯のタイミングにより顔の表情を形成するLEDインジケータ(目ランプ)19などを装備している。 これら出力部は、音声やランプの点滅など、脚などによる機械運動パターン以外の形式でもロボット装置1からのユーザ・フィードバックを表現することができる。

    駆動部50は、制御部20が指令する所定の運動パターンに従ってロボット装置1の機体動作を実現する機能ブロックであり、行動制御による制御対象である。 駆動部50は、ロボット装置1の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール、ピッチ、ヨーなど各軸毎に設けられた複数の駆動ユニットで構成される。 各駆動ユニットは、所定軸回りの回転動作を行なうモータ51と、モータ51の回転位置を検出するエンコーダ52と、エンコーダ52の出力に基づいてモータ51の回転位置や回転速度を適応的に制御するドライバ53の組み合わせで構成される。

    駆動ユニットの組み合わせ方によって、ロボット装置1を例えば2足歩行又は4足歩行などの脚式移動ロボットとして構成することができる。

    電源部60は、その字義通り、ロボット装置1内の各電気回路などに対して給電を行なう機能モジュールである。 本実施形態に係るロボット装置1は、バッテリを用いた自律駆動式であり、電源部60は、充電バッテリ61と、充電バッテリ61の充放電状態を管理する充放電制御部62とで構成される。 充電バッテリ61は、例えば、複数本のリチウムイオン2次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。 また、充放電制御部62は、バッテリ61の端子電圧や充電/放電電流量、バッテリ61の周囲温度などを測定することでバッテリ61の残存容量を把握し、充電の開始時期や終了時期などを決定する。 充放電制御部62が決定する充電の開始及び終了時期は制御ユニット20に通知され、ロボット装置1が充電オペレーションを開始及び終了するためのトリガとなる。

    制御ユニット20は、「頭脳」に相当し、例えばロボット装置1の機体頭部あるいは胴体部に搭載されている。

    図2には、制御ユニット20の構成をさらに詳細に図解している。 同図に示すように、制御ユニット20は、メイン・コントローラとしてのCPU(Central Processing Unit)21が、メモリやその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。 バス27は、データ・バス、アドレス・バス、コントロール・バスなどを含む共通信号伝送路である。 バス27上の各装置にはそれぞれに固有のアドレス(メモリ・アドレス又はI/Oアドレス)が割り当てられている。 CPU21は、アドレスを指定することによってバス28上の特定の装置と通信することができる。

    RAM(Random Access Memory)22は、DRAM(Dynamic RAM)などの揮発性メモリで構成された書き込み可能メモリであり、CPU21が実行するプログラム・コードをロードしたり、実行プログラムによる作業データの一時的な保存したりするために使用される。 また、ROM(Read Only Memory)23は、プログラムやデータを恒久的に格納する読み出し専用メモリである。 ROM23に格納されるプログラム・コードには、ロボット装置1の電源投入時に実行する自己診断テスト・プログラムや、ロボット装置1の動作を規定する動作制御プログラムなどが挙げられる。

    ロボット装置1の制御プログラムには、カメラ15やマイクロフォン16などのセンサ入力を処理してシンボルとして認識する「センサ入力・認識処理プログラム」、短期記憶や長期記憶などの記憶動作(後述)を司りながらセンサ入力と所定の行動制御モデルとに基づいてロボット装置1の行動を制御する「行動制御プログラム」、行動制御モデルに従って各関節モータの駆動やスピーカ17の音声出力などを制御する「駆動制御プログラム」などが含まれる。

    不揮発性メモリ24は、例えばEEPROM(Electrically Erasable and Programmable ROM)のように電気的に消去再書き込みが可能なメモリ素子で構成され、逐次更新すべきデータを不揮発的に保持するために使用される。 逐次更新すべきデータには、暗号鍵やその他のセキュリティ情報、出荷後にインストールすべき装置制御プログラムなどが挙げられる。

    インターフェース25は、制御ユニット20外の機器と相互接続し、データ交換を可能にするための装置である。 インターフェース25は、例えば、カメラ15やマイクロフォン16、スピーカ17との間でデータ入出力を行なう。 また、インターフェース25は、駆動部50内の各ドライバ53−1…との間でデータやコマンドの入出力を行なう。

    また、インターフェース25は、RS(Recommended Standard)−232Cなどのシリアル・インターフェース、IEEE(Institute of Electrical and Electronics Engineers)1284などのパラレル・インターフェース、USB(Universal Serial Bus)インターフェース、i−Link(IEEE1394)インターフェース、SCSI(Small Computer System Interface)インターフェース、PCカードやメモリ・スティックを受容するメモリ・カード・インターフェース(カード・スロット)などのような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続された外部機器との間でプログラムやデータの移動を行なうようにしてもよい。

    また、インターフェース25の他の例として、赤外線通信(IrDA)インターフェースを備え、外部機器と無線通信を行なうようにしてもよい。 さらに、制御ユニット20は、無線通信インターフェース26やネットワーク・インターフェース・カード(NIC)27などを含み、Bluetoothのような近接無線データ通信や、IEEE 802.11bのような無線ネットワーク、あるいはインターネットなどの広域ネットワークを経由して、外部のさまざまなホスト・コンピュータとデータ通信を行なうことができる。

    このようなロボット装置1とホスト・コンピュータ間におけるデータ通信により、遠隔のコンピュータ資源を用いて、ロボット装置1の複雑な動作制御を演算したり、リモート・コントロールしたりすることができる。

    B. ロボット装置の行動制御システム
    図3には、本発明の実施形態に係るロボット装置1の行動制御システム100の機能構成を模式的に示している。 ロボット装置1は、外部刺激の認識結果や内部状態の変化に応じて行動制御を行なうことができる。 さらには、長期記憶機能を備え、外部刺激から内部状態の変化を連想記憶することにより、外部刺激の認識結果や内部状態の変化に応じて行動制御を行なうことができる。

    図示の行動制御システム100にはオブジェクト指向プログラミングを採り入れて実装することができる。 この場合、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。 また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとInvokeを行なうことができる。

    行動制御システム100は、外部環境(Environments)を認識するために、視覚認識機能部101と、聴覚認識機能部102と、接触認識機能部103を備えている。

    視覚認識機能部(Video)51は、例えば、CCDカメラ15のような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識などの画像認識処理や特徴抽出を行なう。 視覚認識機能部51は、後述する“MultiColorTracker”、“FaceDetector”、“FaceIdentify”といった複数のオブジェクトで構成される。

    聴覚認識機能部(Audio)52は、マイクなどの音声入力装置を介して入力される音声データを音声認識して、特徴抽出したり、単語セット(テキスト)認識を行ったりする。 聴覚認識機能部52は、後述する“AudioRecog”や“AuthurDecoder”といった複数のオブジェクトで構成される。

    接触認識機能部(Tactile)53は、例えば機体の頭部などに内蔵された接触センサによるセンサ信号を認識して、「なでられた」とか「叩かれた」という外部刺激を認識する。

    内部状態管理部(ISM:Internal Status Manager)104は、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の視覚認識機能部101と、聴覚認識機能部102と、接触認識機能部103によって認識された外部刺激(ES:ExternalStimula)に応じてロボット装置1の本能や情動といった内部状態を管理する。

    感情モデルと本能モデルは、それぞれ認識結果と行動履歴を入力に持ち、感情値と本能値を管理している。 行動モデルは、これら感情値や本能値を参照することができる。

    本実施形態では、情動についてその存在意義による複数階層で構成され、それぞれの階層で動作する。 決定された複数の動作から、そのときの外部環境や内部状態によってどの動作を行なうかを決定するようになっている(後述)。 また、それぞれの階層で行動は選択されるが、より低次の行動から優先的に動作を発現していくことにより、反射などの本能的行動や、記憶を用いた動作選択などの高次の行動を1つの個体上で矛盾なく発現することができる。

    本実施形態に係るロボット装置1は、外部刺激の認識結果や内部状態の変化に応じて行動制御を行なうために、時間の経過とともに失われる短期的な記憶を行なう短期記憶部105と、情報を比較的長期間保持するための長期記憶部106を備えている。 短期記憶と長期記憶という記憶メカニズムの分類は神経心理学に依拠する。

    短期記憶部(ShortTermMemory)105は、上述の視覚認識機能部101と、聴覚認識機能部102と、接触認識機能部103によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。 例えば、カメラ15からの入力画像を約15秒程度の短い期間だけ記憶する。

    長期記憶部(LongTermMemory)106は、物の名前など学習により得られた情報を長期間保持するために使用される。 長期記憶部106は、例えば、ある行動モジュールにおいて外部刺激から内部状態の変化を連想記憶することができる。

    また、本実施形態に係るロボット装置1の行動制御は、反射行動部109によって実現される「反射行動」と、状況依存行動階層108によって実現される「状況依存行動」と、熟考行動階層107によって実現される「熟考行動」に大別される。

    反射的行動部(ReflexiveSituatedBehaviorsLayer)109は、上述の視覚認識機能部101と、聴覚認識機能部102と、接触認識機能部103によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。

    反射行動とは、基本的に、センサ入力そのものをトリガとして行なう反射的な行動のことであり、すなわち、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動を直接決定する。 例えば、人間の顔を追いかけたり、うなずいたりといった振る舞いは反射行動として実装することが好ましい。 反射行動部109は、状況依存行動階層108に比べ、十分な速さで制御サイクルが実行される。

    状況依存行動階層(SituatedBehaviorsLayer)108は、短期記憶部105並びに長期記憶部106の記憶内容や、内部状態管理部104によって管理される内部状態を基に、ロボット装置1が現在置かれている状況に即応した行動を制御する。

    状況依存行動階層108は、行動毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。 また、状況依存行動階層108は、内部状態をある範囲に保つための行動(「ホメオスタシス行動」とも呼ぶ)も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出現し易くなるようにその行動を活性化させる(実際には、内部状態と外部環境の両方を考慮した形で行動が選択される)。 状況依存行動は、反射行動に比し、反応時間が遅い。

    熟考行動階層(DeliberativeLayer)107は、短期記憶部105並びに長期記憶部106の記憶内容に基づいて、ロボット装置1の比較的長期にわたる行動計画などを行なう。 一般に、ロボット装置が状況に即応した行動に適用すればするほど、全体としては刹那的な行動の集合に陥り易くなってしまう。 本実施形態では、その状況に即応した行動を発現できるだけでなく、熟考行動階層107によって、その先の状況を先読み(すなわち推論)して行動の計画を立てるという熟考行動を制御する。 熟考行動階層107の詳細については後述に譲る。

    ここで言う熟考行動とは、与えられた状況あるいは人間からの命令により、推論やそれを実現するための計画を立てて行なわれる行動のことである。 例えば、ロボットの位置と目標の位置から経路を探索することは熟考行動に相当する。 このような推論や計画は、ロボット装置1がインタラクションを保つための反応時間よりも処理時間や計算負荷を要する(すなわち処理時間がかかる)可能性があるので、上記の反射行動や状況依存行動がリアルタイムで反応を返しながら、熟考行動は推論や計画を行なう。

    熟考行動階層107や状況依存行動階層108、反射行動部109は、ロボット装置1のハードウェア構成に非依存の上位のアプリケーション・プログラムとして記述することができる。 これに対し、ハードウェア依存層制御部(ConfigurationDependentActionsAndReactions)110は、これら上位アプリケーション(「スキーマ」と呼ばれる行動モジュール)からの命令に応じて、関節アクチュエータの駆動などの機体のハードウェア(外部環境)を直接操作する。

    C. ロボット装置の記憶メカニズム
    上述したように、本実施形態に係るロボット装置1は、短期記憶部105と長期記憶部106を備えているが、このような記憶メカニズムは、神経心理学に依拠する。

    短期記憶は、字義通り短期的な記憶であり、時間の経過とともに失われる。 短期記憶は、例えば、視覚や聴覚、接触など、外部環境から認識されたターゲットやイベントを短期間保持するために使用することができる。

    短期記憶は、さらに、感覚情報(すなわちセンサからの出力)をそのままの信号で1秒程度保持する「感覚記憶」と、感覚記憶をエンコードして限られた容量で短期的に記憶する「直接記憶」と、状況変化や文脈を数時間に渡って記憶する「作業記憶」に分類することができる。 直接記憶は、神経心理学的な研究によれば7±2チャンクであると言われている。 また、作業記憶は、短期記憶と長期記憶との対比で、「中間記憶」とも呼ばれる。

    また、長期記憶は、物の名前など学習により得られた情報を長期間保持するために使用される。 同じパターンを統計的に処理して、ロバストな記憶にすることができる。

    長期記憶はさらに「宣言的知識記憶」と「手続的知識記憶」に分類される。 宣言的知識記憶は、場面(例えば教えられたときのシーン)に関する記憶である「エピソード記憶」と、言葉の意味や常識といった記憶からなる「意味記憶」からなる。 また、手続的知識記憶は、宣言的知識記憶をどのように使うかといった手順記憶であり、入力パターンに対する動作の獲得に用いることができる。

    C−1. 短期記憶部
    短期記憶部105は、自分の周りに存在する物体、あるいはイベントを表現、記憶し、それに基づいてロボットが行動することを目的とした機能モジュールである。 視覚や聴覚などのセンサ情報を基に物体やイベントの位置を自己中心座標系上に配置していくが、視野外の物体などを記憶し、それに対する行動などを生じさせることができる。

    例えば、ある人物Aと会話していて、別の人物Bに声をかられたとき、Aの位置や会話内容を保持しながらBとの会話を行ない、終了後Aとの会話に戻る場合などに短期記憶の機能が必要となる。 但し、あまり複雑な処理による統合を行なわずに、時間と空間で近いセンサ情報を同じ物体からの信号とみなすといった時空間の簡単な近さによる統合を行なう。

    また、ステレオ視覚などの技術を用いてパターン認識で判別可能な物体以外の物体の位置を記憶するために、自己中心座標系上に配置する。 床面検出とともに利用して、障害物の位置を確率的に記憶するなどに利用することができる。

    本実施形態では、短期記憶部105は、上述した視覚認識機能部101、聴覚認識機能部102、接触認識機能部103などの複数の認識器の結果からなる外部刺激を時間的及び空間的に整合性を保つように統合して、外部環境下の各物体に関する知覚を短期間の記憶として状況依存行動階層(SBL)108などの行動制御モジュールに提供する。

    したがって、上位モジュールとして構成される行動制御モジュール側では、外界からの複数の認識結果を統合して意味を持ったシンボル情報として扱い、高度な行動制御を行なうことができる。 また、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているかや、この声がどの人物の声なのかなどを解くことができる。

    また、認識した観測結果に関する情報を記憶として短期記憶部55が保持しているので、自律行動する期間中に一時的に観測結果が来なかったりした場合であっても、機体の行動制御を行なうアプリケーションなどの上位モジュールからは常にそこに物体が知覚されているように見えるようにすることができる。 例えば、センサの視野外の情報もすぐに忘れることなく保持しているので、ロボットが物体を一旦見失ったとしても、また後で探し出すことができる。 この結果、認識器の間違いやセンサのノイズに強くなり、認識器の通知のタイミングに依存しない安定したシステムを実現することができる。 また、認識器単体から見て情報が足りなくても、他の認識結果で補うことができる場合があるので、システム全体としての認識性能が向上する。

    また、関連する認識結果が結び付けられているので、アプリケーションなどの上位モジュールで関連する情報を使って行動判断することが可能である。 例えば、ロボット装置は、呼び掛けられた声を基に、その人物の名前を引き出すことができる。 この結果、挨拶の応答に「こんにちは、XXXさん。」のように答えるなどのリアクションが可能である。

    図4には、図3に示した行動制御システム100における外部刺激に応じた状況依存行動制御のメカニズムを図解している。 外部刺激は、認識系の機能モジュール101〜103によってシステムに取り込まれるとともに、短期記憶部(STM)105を介して状況依存行動階層(SBL)108に与えられる。 図示の通り、認識系の各機能モジュール101〜103や、短期記憶部(STM)105、状況依存行動階層(SBL)108はオブジェクトとして構成されている。

    同図において、丸で表されているのが、「オブジェクト」又は「プロセス」と呼ばれるエンティティである。 オブジェクト同士が非同期に通信し合うことで、システム全体が動作する。 各オブジェクトはメッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとInvokeを行なっている。 以下に、各オブジェクトの機能について説明する。

    AudioRecog:
    マイクなどの音声入力装置からの音声データを受け取って、特徴抽出と音声区間検出を行なうオブジェクトである。 また、マイクがステレオである場合には、平方向の音源方向推定を行なうことができる。 音声区間であると判断されると、その区間の音声データの特徴量及び音源方向がArtherDecoder(後述)に送られる。

    SpeechRecog:
    AudioRecogから受け取った音声特徴量と音声辞書及び構文辞書を使って音声認識を行なうオブジェクトである。 認識された単語のセットは短期記憶部(ShortTermMemory)105に送られる。

    MultiColorTracker:
    色認識を行なうオブジェクトであり、カメラなどの画像入力装置から画像データを受け取り、あらかじめ持っている複数のカラー・モデルに基づいて色領域を抽出し、連続した領域に分割する。 分割された各領域の位置や大きさ、特徴量などの情報を出力して、短期記憶部(ShortTermMemory)105へ送る。

    FaceDetector:
    画像フレーム中から顔領域を検出するオブジェクトであり、カメラなどの画像入力装置から画像データを受け取り、それを9段階のスケール画像に縮小変換する。 このすべての画像の中から顔に相当する矩形領域を探索する。 重なりあった候補領域を削減して最終的に顔と判断された領域に関する位置や大きさ、特徴量などの情報を出力して、FaceIdentify(後述)へ送る。

    FaceIdentify:
    検出された顔画像を識別するオブジェクトであり、顔の領域を示す矩形領域画像をFaceDetectorから受け取り、この顔画像が手持ちの人物辞書のうちでどの人物に相当するかを比較して人物の識別を行なう。 この場合、顔検出から顔画像を受け取り、顔画像領域の位置、大きさ情報とともに人物のID情報を出力する。

    ShortTermMemory(短期記憶部):
    ロボット1の外部環境に関する情報を比較的短い時間だけ保持するオブジェクトであり、SpeechRecogから音声認識結果(単語、音源方向、確信度)を受け取り、MultiColorTrackerから肌色の領域の位置、大きさと顔領域の位置、大きさを受け取り、FaceIdentifyから人物のID情報等を受け取る。 また、ロボット1の機体上の各センサからロボットの首の方向(関節)を受け取る。 そして、これらの認識結果やセンサ出力を統合的に使って、現在どこにどの人物がいて、しゃべった言葉がどの人物のものであり、その人物とはこれまでにどんな対話を行なったのかという情報を保存する。 こうした物体すなわちターゲットに関する物理情報と時間方向でみたイベント(履歴)を出力として、状況依存行動階層(SBL)などの上位モジュールに渡す。

    SituatedBehaviorLayer(状況依存行動階層):
    上述のShortTermMemory(短期記憶部)からの情報を基にロボット1の行動(状況に依存した行動)を決定するオブジェクトである。 複数の行動を同時に評価したり、実行したりすることができる。 また、行動を切り替えて機体をスリープ状態にしておき、別の行動を起動することができる。

    ResourceManager:
    出力用のコマンドに対してロボット1の各ハードウェアのリソース調停を行なうオブジェクトである。 図4に示す例では、音声出力用のスピーカをコントロールするオブジェクトと首のモーション・コントロールするオブジェクトのリソース調停を行なう。 また、本実施形態では、ResourceManagerは、ReflexiveSituatedBehaviorLayer(反射行動階層)とSituatedBehaviorLayer(状況依存行動階層)がそれぞれ発現する動作コマンドの調停を行なうが、この点については後に詳解する。

    SoundPerformerTTS:
    音声出力を行なうためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerから与えられたテキスト・コマンドに応じて音声合成を行ない、ロボット1の機体上のスピーカから音声出力を行なう。

    HeadMotionGenerator:
    ResourceManager経由でSituatedBehaviorLayerから首を動かすコマンドを受けたことに応答して、首の関節角を計算するオブジェクトである。 「追跡」のコマンドを受けたときには、ShortTermMemoryから受け取った物体の位置情報を基に、その物体が存在する方向を向く首の関節角を計算して出力する。

    短期記憶部105は、ターゲット・メモリとイベント・メモリという2種類のメモリ・オブジェクトで構成される。

    ターゲット・メモリは、各認識機能部101〜103からの情報を統合して、現在知覚している物体に関する情報すなわちターゲットを保持している。 このため、対象物体がいなくなったり現れたりすることで、該当するターゲットを記憶領域から削除したり(GarbageCollector)、新たに生成したりする。 また、1つのターゲットを複数の認識属性で表現することができる(TargetAssociate)。 例えば、肌色で顔のパターンで声を発する物体(人間の顔)などである。

    ターゲット・メモリで保持される物体(ターゲット)の位置や姿勢情報は、それぞれの認識機能部51〜53において使用されるセンサ座標系ではなく、ロボット1の体幹などの機体上の特定の部位が所定の場所に固定されたワールド座標系で表現を行なうようにしている。 このため、短期記憶部(STM)105では、ロボット1の各関節の現在値(センサ出力)を常に監視して、センサ座標系からこの固定座標系への変換を行なう。 これにより、各認識機能部101〜103の情報を統合することが可能になる。 例えば、ロボット100が首などを動かしてセンサの姿勢が変化しても、状況依存行動階層(SBL)などの行動制御モジュールから見た物体の位置は同じままであるので、ターゲットの取り扱いが容易になる。

    また、イベント・メモリは、外部環境下で発生した過去から現在までのイベントを時系列的に格納するオブジェクトである。 イベント・メモリにおいて扱われるイベントとして、ターゲットの出現と消失、音声認識単語、自己の行動や姿勢の変化などの外界の状況の変化に関する情報を挙げることができる。

    イベントの中には、あるターゲットに関する状態変化が含まれている。 このため、イベント情報として該当するターゲットのIDを含めることで、発生したイベントに関するより詳しい情報を、上述のターゲット・メモリから検索することも可能である。

    図5及び図6には、各認識機能部101〜103における認識結果に基づいて、短期記憶部105内のターゲット・メモリ及びイベント・メモリに入る情報の流れをそれぞれ示している。

    図5に示すように、短期記憶部105(STMオブジェクト)内には、外部環境からターゲットを検出するターゲット検出器が設けられている。 このターゲット検出器は、声認識結果や顔認識結果、色認識結果などの各認識機能部101〜103による認識結果を基に、新規ターゲットを追加したり、既存のターゲットを認識結果に反映するように更新したりする。 検出されたターゲットは、ターゲット・メモリ内に保持される。

    また、ターゲット・メモリには、もはや観測されなくなったターゲットを探して消去するガーベッジ・コレクタ(GarbageCollector)や、複数のターゲットの関連性を判別して同じターゲットに結び付けるターゲット・アソシエート(TargetAssociate)などの機能がある。 ガーベッジ・コレクタは、時間の経過に従ってターゲットの確信度をデクリメントしていき、確信度が所定値を下回ったターゲットを削除(delete)することで実現される。 また、ターゲット・アソシエートは、同じ属性(認識タイプ)の特徴量が近いターゲット間で空間的・時間的な近さを持つことで、同じターゲットを同定することができる。

    前述した状況依存型行動階層(SBL)は、短期記憶部105のクライアント(STMクライアント)となるオブジェクトであり、ターゲット・メモリからは定期的に各ターゲットに関する情報の通知(Notify)を受け取る。 本実施形態では、STMプロキシ・クラスが、短期記憶部105(STMオブジェクト)とは独立したクライアント・ローカルな作業領域にターゲットをコピーして、常に最新の情報を保持しておく。 そして、ローカルなターゲット・リスト(Target of Interest)の中から所望のターゲットを外部刺激として読み出して、スキーマ(schema)すなわち行動モジュールを決定する(後述)。

    また、図6に示すように、短期記憶部105(STMオブジェクト)内には、外部環境において発生するイベントを検出するイベント検出器が設けられている。 このイベント検出器は、ターゲット検出器によるターゲットの生成や、ガーベッジ・コレクタによるターゲットの削除をイベントとして検出する。 また、認識機能部101〜103による認識結果が音声認識である場合には、その発話内容がイベントになる。 発生したイベントは、発生した時間順にイベント・メモリ内でイベント・リストとして格納される。

    状況依存型行動階層(SBL)は、短期記憶部105のクライアント(STMクライアント)となるオブジェクトであり、イベント・メモリからは時々刻々とイベントの通知(Notify)を受け取る。 本実施形態では、STMプロキシ・クラスが、短期記憶部105(STMオブジェクト)とは独立したクライアント・ローカルな作業領域にイベント・リストをコピーしておく。 そして、ローカルなイベント・リストの中から所望のイベントを外部刺激として読み出して、スキーマ(schema)すなわち行動モジュールを決定する(後述)。 実行された行動モジュールは新たなイベントとしてイベント検出器により検出される。 また、古いイベントは、例えばFIFO(Fast In Fast Out)形式でイベント・リストから逐次的に廃棄される。

    本実施形態に係る短期記憶メカニズムによれば、ロボット1は、外部刺激に関する複数の認識器の結果を時間的及び空間的に整合性を保つように統合して、意味を持ったシンボル情報として扱うようになっている。 これによって、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているかや、この声がどの人物の声なのかなどを解くことを可能にしている。

    以下では、図7〜図9を参照しながら、ロボット1によるユーザA及びBとの対話処理について説明する。

    まず、図7に示すように、ユーザAが「まさひろ(ロボットの名前)くん!」と呼ぶと、各認識機能部51〜53により音方向検出、音声認識、及び顔識別が行なわれ、呼ばれた方向を向いて、ユーザAの顔をトラッキングしたり、ユーザAとの対話を開始するという状況依存の行動が行なわれる。

    次いで、図8に示すように、今度はユーザBが「まさひろ(ロボットの名前)くん!」と呼ぶと、各認識機能部101〜103により音方向検出、音声認識、及び顔識別が行なわれ、ユーザAとの対話を中断した後(但し、会話のコンテキストを保存する)、呼ばれた方向を向いて、ユーザBの顔をトラッキングしたり、ユーザBとの対話を開始したりするという状況依存の行動が行なわれる。 これは、状況依存行動階層108が持つPreemption機能(後述)である。

    次いで、図9に示すように、ユーザAが「おーい!」と叫んで、会話の継続を催促すると、今度は、ユーザBとの対話を中断した後(但し、会話のコンテキストを保存する)、呼ばれた方向を向いて、ユーザAの顔をトラッキングしたり、保存されているコンテキストに基づいてユーザAとの対話を再開するという状況依存の行動が行なわれる。 このとき、状況依存行動階層108が持つReentrant機能(後述)により、ユーザAとの対話によってユーザBとの対話内容が破壊されずに済み、中断した時点から正確に対話を再開することができる。

    C−2. 長期記憶部
    長期記憶は、物の名前など学習により得られた情報を長期間保持するために使用される。 同じパターンを統計的に処理して、ロバストな記憶にすることができる。

    長期記憶はさらに「宣言的知識記憶」と「手続的知識記憶」に分類される。 宣言的知識記憶は、場面(例えば教えられたときのシーン)に関する記憶である「エピソード記憶」と、言葉の意味や常識といった記憶からなる「意味記憶」からなる。 また、手続的知識記憶は、宣言的知識記憶をどのように使うかといった手順記憶であり、入力パターンに対する動作の獲得に用いることができる。

    エピソード記憶は、長期記憶の中でも、宣言的知識記憶(言明記憶とも言う)の一種である。 例えば、自転車に乗ることを考えると、初めて自転車に乗った場面(時間・場所など)を覚えていることがエピソード記憶に相当する。 その後、時間の経過によりそのエピソードに関する記憶が薄れる一方、その意味を記憶するのが意味記憶である。 また、自転車の乗り方の手順を記憶するようになるが、これが手続的知識記憶に相当する。 一般的に、手続的知識の記憶には時間を要する。 宣言的知識記憶によって「言う」ことができるのに対して、手続的知識記憶は潜在的であり、動作の実行という形で表れる。

    本実施形態に係る長期記憶部106は、視覚情報、聴覚情報などの物体に関するセンサ情報、及びその物体に対して行なった行動に対する結果としての内部状態が変化した結果などを記憶する連想記憶と、その1つの物体に関するフレーム記憶と、周囲の情景から構築されるマップ情報、あるいはデータとして与えられる地図情報、原因となる状況とそれに対する行動とその結果といったルールで構成される。

    C−2−1. 連想記憶
    連想記憶とは、あらかじめ複数のシンボルからなる入力パターンを記憶パターンとして記憶しておき、その中のある1つのパターンに類似したパターンが想起される仕組みのことを言う。 本実施形態に係る連想記憶は、競合型ニューラル・ネットワークを用いたモデルにより実現される。 このような連想記憶メカニズムによれば、一部欠陥のあるパターンが入力されたとき、記憶されている複数のパターンの中で最も近い記憶パターンを出力することができる。 これは、不完全なデータからなる外部刺激しか与えられなかったときであっても、該当するニューロンの発火によりあるオブジェクトの意味などを想起することができるからである。

    連想記憶は、「自己想起型連想記憶」と「相互想起型連想記憶」に大別される。 自己想起型とは記憶したパターンを直接キー・パターンで引き出すモデルであり、また、相互想起型とは入力パターンと出力パターンがある種の連合関係で結ばれているモデルである。 本実施形態では、自己想起型連想記憶を採用するが、これは、従来のホップフィールドやアソシアトロンなどの記憶モデルに比し、追加学習が容易である、入力パターンの統計的な記憶が可能である、などのメリットがある。

    追加学習によれば、新しいパターンを新たに記憶しても、過去の記憶が上書きされて消されることはない。 また、統計的な学習によれば、同じものを多く見ればそれだけ記憶に残るし、また同じことを繰り返し実行すれば、忘れにくくなる。 この場合、記憶過程において、毎回完全なパターンが入力されなくとも、繰り返し実行により、多く提示されたパターンに収束していく。

    C−2−2. 連想記憶による意味記憶
    ロボット装置1が覚えるパターンは、例えばロボット装置1への外部刺激と内部状態の組み合わせで構成される。

    ここで、外的刺激とは、ロボット装置1がセンサ入力を認識して得られた知覚情報であり、例えば、カメラ15から入力された画像に対して処理された色情報、形情報、顔情報などであり、より具体的には、色、形、顔、3D一般物体、ハンドジェスチャー、動き、音声、接触、匂い、味などの構成要素からなる。
    る。

    また、内的状態とは、例えば、ロボットの身体に基づいた本能や感情などの情動を指す。 本能的要素は、例えば、疲れ(fatigue)、熱あるいは体内温度(temperature)、痛み(pain)、食欲あるいは飢え(hunger)、乾き(thirst)、愛情(affection)、好奇心(curiosity)、排泄(elimination)又は性欲(sexual)のうちの少なくとも1つである。 また、情動的要素は、幸せ(happiness)、悲しみ(sadness)、怒り(anger)、驚き(surprise)、嫌悪(disgust)、恐れ(fear)、苛立ち(frustration)、退屈(boredom)、睡眠(somnolence)、社交性(gregariousness)、根気(patience)、緊張(tense)、リラックス(relaxed)、警戒(alertness)、罪(guilt)、悪意(spite)、誠実さ(loyalty)、服従性(submission)又は嫉妬(jealousy)のうちの少なくとも1つである。

    本実施形態に係る競合型ニューラル・ネットワークを適用した連想記憶メカニズムでは、これら外部刺激や内部状態を構成する各要素に対して入力チャンネルを割り当てている。 また、視覚認識機能部101や聴覚認識機能部102などの各知覚機能モジュールは、センサ出力となる生の信号を送るのではなく、センサ出力を認識した結果をシンボル化して、シンボルに相当するID情報(例えば、色プロトタイプID、形プロトタイプID、音声プロトタイプIDなど)を該当するチャンネルに送るようになっている。

    例えば、カラー・セグメンテーション・モジュールによりセグメンテーションされた各オブジェクトは、色プロトタイプIDを付加されて連想記憶システムに入力される。 また、顔認識モジュールにより認識された顔のIDが連想記憶システムに入力される。 また、物体認識モジュールにより認識された物体のIDが連想システムに入力される。 また、音声認識モジュールからは、ユーザの発話により単語のプロトタイプIDが入力される。 このとき、発話の音素記号列(Phoneme Sequence)も入力されるので、記憶・連想の処理で、ロボット装置1に発話させることが可能となる。 また、本能に関しては、アナログ値を扱えるようになっており(後述)、例えば、本能のデルタ値を80で記憶しておけば、連想により80というアナログ値を得ることが可能である。

    したがって、本実施形態に係る連想記憶システムは、色、形、音声…などの外部刺激や内部状態を、各チャンネル毎のシンボル化されたIDの組み合わせからなる入力パターンとして記憶することができる。 すなわち、連想記憶システムが記憶するのは、

    [色ID 形ID 顔ID 音声ID…本能ID(値) 情動 ID]

    の組み合わせである。

    連想記憶には、記憶過程と想起過程がある。 図10には、連想記憶の記憶過程の概念を示している。

    連想記憶システムに入力される記憶パターンは、外部刺激や内部状態の各要素毎に割り当てられている複数のチャンネルで構成される(図示の例では入力1〜入力8の8チャンネルからなる)。 そして、各チャンネルには、対応する外部刺激の認識結果や内部状態をシンボル化したID情報が送られてくる。 図示の例では、各チャンネルの濃淡がID情報を表しているものとする。 例えば、記憶パターン中のk番目のカラムが顔のチャンネルに割り当てられている場合、その色により顔のプロトタイプIDを表している。

    図10に示す例では、連想記憶システムは既に1〜nの合計n個の記憶パターンを記憶しているものとする。 ここで、2つの記憶パターン間での対応するチャンネルの色の相違は、同じチャンネル上で記憶している外部刺激又は内部状態のシンボルすなわちIDが当該記憶パターン間で異なることを意味する。

    また、図11には、連想記憶の想起過程の概念を示している。 上述したように、記憶過程で蓄えた入力パターンに似たパターンが入力されると、欠落していた情報を補うように完全な記憶パターンが出力される。

    図11に示す例では、8チャンネルからなる記憶パターンのうち上位の3チャンネルしかIDが与えられていないパターンがキー・パターンとして入力される。 このような場合、連想記憶システムでは、既に貯えられている記憶パターンの中で、これら上位の3チャンネルが最も近いパターン(図示の例では記憶パターン1)を見つけ出して、想起されたパターンとして出力することができる。 すなわち、欠落していたチャンネル4〜8の情報を補うように、最も近い記憶パターンが出力される。

    したがって、連想記憶システムによれば、顔のIDのみから音声ID、つまり名前を連想したり、食べ物の名前だけから、“おいしい”や“おいしくない”などを想起したりすることができる。 競合型ニューラル・ネットワークによる長期記憶アーキテクチャによれば、言葉の意味や常識などに関する意味記憶を、他の長期記憶と同じ工学モデルで実現することができる。

    C−2. 競合型ニューラル・ネットワークによる連想学習
    図12には、競合型ニューラル・ネットワークを適用した連想記憶システムの構成例を模式的に示している。 同図に示すように、この競合型ニューラル・ネットワークは、入力層(input layer)と競合層(competitive layer)の2層からなる階層型ニューラル・ネットワークである。

    この競合型ニューラル・ネットワークは、記憶モードと連想モードという2通りの動作モードを備えており、記憶モードでは入力パターンを競合的に記憶し、また、想起モードでは部分的に欠損した入力パターンから完全な記憶パターンを想起する。

    入力層は、複数の入力ニューロンで構成される。 各入力ニューロンには、外部刺激や内部状態を表す各要素に対して割り当てられたチャンネルから、外部刺激や内部状態の認識結果に相当するシンボルすなわちID情報が入力される。 入力層では、色IDの個数+形IDの個数+音声IDの個数+本能の種類…に相当する個数のニューロンを用意する必要がある。

    また、競合層は、複数の競合ニューロンで構成される。 各競合ニューロンは、入力層側の各入力ニューロンとは、ある結合重みを持って結合されている。 競合ニューロンは、それぞれのニューロンが記憶すべき1つのシンボルに相当する。 言い換えれば、競合ニューロンの数は記憶可能なシンボルの個数に相当する。

    ある入力パターンが入力層に与えられたとする。 このとき、入力パターンは外部刺激や内部状態の各要素を表すチャンネルで構成されており、チャンネルから該当するIDが送られてきた入力ニューロンは発火する。

    競合ニューロンは、各入力ニューロンからの出力をシナプスによる重み付けをして入力して、それら入力値の総和を計算する。 そして、競合層で入力値の総和が最大となる競合ニューロンを選択して、勝ち抜いた競合ニューロンと入力ニューロンとの結合力を強めていくことで、学習を行なう。 また、欠損のある入力パターンに対して、競合層で勝ち抜いた競合ニューロンを選択することにより、入力パターンに対応するシンボルを想起することができる。

    記憶モード:
    入力層と競合層の結合重みは、0から1の間の値をとるものとする。 但し、初期結合重みはランダムに決定する。

    競合型ニューラル・ネットワークにおける記憶は、まず、記憶したい入力パターンに対して競合層で勝ち抜いた競合ニューロンを選択して、その競合ニューロンと各入力ニューロンとの結合力を強めることで行なう。

    ここで、入力パターン・ベクトル[x 1 ,x 2 ,…,x n ]は、ニューロンが、色プロトタイプID1に対応し、ID1が認識されたら、ニューロンx 1を発火させ、順次、形、音声もそのように発火させることとする。 発火したニューロンは1の値をとり、発火しないニューロンは−1の値をとる。

    また、i番目の入力ニューロンとj番目の競合ニューロンとの結合力をw ijとおくと、入力x iに対する競合ニューロンy jの値は、下式のように表される。

    したがって、競合に勝ち抜くニューロンは、下式により求めることができる。

    記憶は、競合層で勝ち抜いた競合ニューロン(winner neuron)と各入力ニューロンとの結合力を強めることで行なう。 勝ち抜いたニューロン(winner neuron)と入力ニューロンとの結合の更新は、Kohonenの更新規則により、以下のように行なわれる。

    ここで、L2Normで正規化する。

    この結合力がいわゆる記憶の強さを表し、記憶力になる。 ここで、学習率αは、提示する回数と記憶の関係を表すパラメータである。 学習率αが大きいほど、1回の記憶で重みを大きく変更する。 例えば、α=0.5を用いると、一度記憶させれば、忘却することはなく、次回同じようなパターンを提示すれば、ほぼ間違いなく記憶したパターンを連想することができる。

    また、提示して記憶させればさせるほど、ネットワークの結合値(重み)が大きくなっていく。 これは、同じパターンが何度も入力されるうちに、記憶が強くなることを示し、統計的な学習が可能であり、実環境下におけるノイズの影響の少ない長期記憶を実現することができる。

    また、新たなパターンが入力され、記憶しようとすれば、新たな競合層のニューロンが発火するため、その新しいニューロンとの結合が強まり、以前の記憶によるニューロンとの結合が弱まる訳ではない。 言い換えれば、競合型ニューラル・ネットワークによる連想記憶では、追加学習が可能なのであり、「忘却」の問題から解放される。

    想起モード:
    いま、以下に示すような入力パターン・ベクトルが図12に示す連想記憶システムに提示されたとする。 入力パターンは、完全なものではなく一部が欠損していてもよい。

    このとき、入力ベクトルは、プロトタイプIDであっても、あるいはそのプロトタイプIDに対する尤度、確率であってもよい。 出力ニューロンy jの値は、入力x iについて下式のように計算される。

    上式は、各チャンネルの尤度に応じた競合ニューロンの発火値の尤度を表しているとも言える。 ここで重要なことは、複数のチャンネルからの尤度入力に対して、それらをコネクションして全体的な尤度を求めることが可能である、という点である。 本実施形態では、連想するものは唯一すなわち尤度が最大のものだけを選択することとし、競合に勝ち抜くニューロンを下式により求めることができる。

    求めた競合ニューロンYの番号が記憶したシンボルの番号に対応するので、下式のように、Wの逆行列演算により入力パターンXを想起することができる。

    さらに図12に示す競合型ニューラル・ネットワークの入力層ニューロンにエピソードや動作IDなどのシンボルを割り当てることにより、宣言的知識記憶や手続的知識記憶を連想記憶アーキテキチャにより実現することができる。

    D. 状況依存行動制御
    本実施形態では、内部状態又はその変化と外部刺激に依存した行動選択を自律的に行なう状況依存行動階層108と、認識された外部刺激に応じて反射的・直接的な機体動作を実行する反射行動部109と、記憶内容に基づいて比較的長期にわたる行動計画を行なう熟考行動階層107を備え、これらの階層的な行動制御メカニズムにより、ロボットの行動が選択される。

    状況依存行動階層(SituatedBehaviorsLayer)108は、ロボット装置1が現在置かれている状況に即応した自発的な行動を制御する行動制御層であり、複数の要素行動で構成される。 要素行動は、「スキーマ(schema)」と呼ばれる行動モジュールすなわちオブジェクトとして記述される。 各々の要素行動は、内部状態、短期記憶部105や長期記憶部106に記憶されている認識結果などから定期的に行動価値を算出し、各要素行動が持つ行動価値(以下では、「AL値」とも呼ぶ)を基にいずれの要素行動を発現すべきかを行動選択して、行動出力する。

    D−1. 状況依存行動階層の構成
    本実施形態では、状況依存行動階層108は、行動モジュール毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。 行動モジュールは、外部刺激や内部状態の変化に応じた状況判断を行なうmonitor機能と、行動実行に伴う状態遷移(ステートマシン)を実現するaction機能とを備えたスキーマ(schema)として記述される。 状況依存行動階層108は、複数のスキーマが階層的に連結された木構造として構成されている(後述)。

    また、状況依存行動階層108は、内部状態をある範囲に保つための行動(「ホメオスタシス行動」とも呼ぶ)も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出易くなるようにその行動を活性化させる(実際には、内部状態と外部環境の両方を考慮した形で行動が選択される)。

    図3に示したようなロボット1の行動制御システム100における各機能モジュールは、オブジェクトとして構成される。 各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとInvokeを行なうことができる。 図13には、本実施形態に係る行動制御システム100のオブジェクト構成を模式的に示している。

    視覚認識機能部101は、“FaceDetector”、“MulitColotTracker”、“FaceIdentify”という3つのオブジェクトで構成される。

    FaceDetectorは、画像フレーム中から顔領域を検出するオブジェクトであり、検出結果をFaceIdentifyに出力する。 MulitColotTrackerは、色認識を行なうオブジェクトであり、認識結果をFaceIdentify及びShortTermMemory(短期記憶ブ105を構成するオブジェクト)に出力する。 また、FaceIdentifyは、検出された顔画像を手持ちの人物辞書で検索するなどして人物の識別を行ない、顔画像領域の位置、大きさ情報とともに人物のID情報をShortTermMemoryに出力する。

    聴覚認識機能部102は、“AudioRecog”と“SpeechRecog”という2つのオブジェクトで構成される。 AudioRecogは、マイクなどの音声入力装置からの音声データを受け取って、特徴抽出と音声区間検出を行なうオブジェクトであり、音声区間の音声データの特徴量及び音源方向をSpeechRecogやShortTermMemoryに出力する。 SpeechRecogは、AudioRecogから受け取った音声特徴量と音声辞書及び構文辞書を使って音声認識を行なうオブジェクトであり、認識された単語のセットをShortTermMemoryに出力する。

    触覚認識記憶部103は、接触センサからのセンサ入力を認識する“TactileSensor”というオブジェクトで構成され、認識結果はShortTermMemoryや内部状態を管理するオブジェクトであるInternalStateModel(ISM)に出力する。

    ShortTermMemory(STM)は、短期記憶部105を構成するオブジェクトであり、上述の認識系の各オブジェクトによって外部環境から認識されたターゲットやイベントを短期間保持(例えばカメラ15からの入力画像を約15秒程度の短い期間だけ記憶する)する機能モジュールであり、STMクライアントであるSituatedBehaviorsLayerに対して外部刺激の通知(Notify)を定期的に行なう。

    LongTermMemory(LTM)は、長期記憶部106を構成するオブジェクトであり、物の名前など学習により得られた情報を長期間保持するために使用される。 LongTermMemoryは、例えば、ある行動モジュールにおいて外部刺激から内部状態の変化を連想記憶することができる。

    InternalStatusManager(ISM)は、内部状態管理部104を構成するオブジェクトであり、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の認識系の各オブジェクトによって認識された外部刺激(ES:ExternalStimula)に応じてロボット装置1の本能や情動といった内部状態を管理する。

    SituatedBehaviorslayer(SBL)は状況依存型行動階層108を構成するオブジェクトである。 SBLは、ShorTermMemoryのクライアント(STMクライアント)となるオブジェクトであり、ShorTermMemoryからは定期的に外部刺激(ターゲットやイベント)に関する情報の通知(Notify)を受け取ると、スキーマ(schema)すなわち実行すべき行動モジュールを決定する(後述)。

    ReflexiveSituatedBehaviorsLayerは、反射的行動部109を構成するオブジェクトであり、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する。 例えば、人間の顔を追いかけたり、うなずいたり、障害物の検出により咄嗟に避けたりといった振る舞いを行なう(後述)。

    SituatedBehaviorslayer(状況依存行動階層)は外部刺激や内部状態の変化などの状況に応じて行動を選択する。 これに対し、ReflexiveSituatedBehaviorsLayerは、外部刺激に応じて反射的を行動する。 また、SituatedBehaviorslayerは、外部刺激としてロボット装置の反射行動の管理も行なうことにより、反射行動が状況に応じた行動の意図に合わない場合には、ReflexiveBehaviorLayer(反射行動階層)から発現される動作コマンドの実行を抑制する(後述)。 あるいは逆に、反射行動を出現させたい場合には、ReflexiveBehaviorLayerを励起する。

    ReflexiveSituatedBehaviorsLayerとSituatedBehaviorslayerという2つのオブジェクトによる行動選択は独立して行なわれるため、互いに選択された行動モジュール(スキーマ)を機体上で実行する場合に、ロボット1のハードウェア・リソースが競合して実現不可能なこともある。 Resourcemanagerというオブジェクトは、SituatedBehaviorslayerとReflexiveSituatedBehaviorsLayerによる行動選択時のハードウェアの競合を調停する(後述)。 そして、調停結果に基づいて機体動作を実現する各オブジェクトに通知することにより機体が駆動する。

    SoundPerformer、MotionController、LedControllerは、機体動作を実現するオブジェクトである。 SoundPerformerは、音声出力を行なうためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerから与えられたテキスト・コマンドに応じて音声合成を行ない、ロボット1の機体上のスピーカから音声出力を行なう。 また、MotionControllerは、機体上の各関節アクチュエータの動作を行なうためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerから手や脚などを動かすコマンドを受けたことに応答して、該当する関節角を計算する。 また、LedControllerは、LED19の点滅動作を行なうためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerからコマンドを受けたことに応答してLED19の点滅駆動を行なう。

    図14には、状況依存行動階層(SBL)108(但し、反射行動部109を含む)による状況依存行動制御の形態を模式的に示している。 認識系101〜103による外部環境の認識結果は、外部刺激として状況依存行動階層108(反射行動部109を含む)に与えられる。 また、認識系による外部環境の認識結果に応じた内部状態の変化も状況依存行動階層108に与えられる。 そして、状況依存行動階層108では、外部刺激や内部状態の変化に応じて状況を判断して、行動選択を実現することができる。

    図15には、図14に示した状況依存行動階層108による行動制御の基本的な動作例を示している。 同図に示すように、状況依存行動階層108(SBL)では、外部刺激や内部状態の変化によって各行動モジュール(スキーマ)の活動度レベルを算出して、活動度レベルの度合いに応じてスキーマを選択して行動を実行する。 活動度レベルの算出には、例えばライブラリを利用することにより、すべてのスキーマについて統一的な計算処理を行なうことができる(以下、同様)。 例えば、活動度レベルが最も高いスキーマを選択したり、所定の閾値を越えた2以上のスキーマを選択して並列的に行動実行したりするようにしてもよい(但し、並列実行するときは各スキーマどうしでハードウェア・リソースの競合がないことを前提とする)。

    また、図16には、図14に示した状況依存行動階層108により反射行動を行なう場合の動作例を示している。 この場合、同図に示すように、状況依存行動階層108に含まれる反射行動部109(ReflexiveSBL)は、認識系の各オブジェクトによって認識された外部刺激を直接入力として活動度レベルを算出して、活動度レベルの度合いに応じてスキーマを選択して行動を実行する。 この場合、内部状態の変化は、活動度レベルの計算には使用されない。

    また、図17には、図14に示した状況依存行動階層108により感情表現を行なう場合の動作例を示している。 内部状態管理部104では、本能や感情などの情動を数式モデルとして管理しており、情動パラメータの状態値が所定値に達したことに応答して、状況依存行動階層108に内部状態の変化を通知(Notify)する。 状況依存行動階層108は、内部状態の変化を入力として活動度レベルを算出して、活動度レベルの度合いに応じてスキーマを選択して行動を実行する。 この場合、認識系の各オブジェクトによって認識された外部刺激は、内部状態管理部104(ISM)における内部状態の管理・更新に利用されるが、スキーマの活動度レベルの算出には使用されない。

    D−2. スキーマ
    状況依存行動階層108は、各行動モジュール毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。 行動モジュールは、機体動作を記述し行動実行に伴う状態遷移(ステートマシン)を実現するAction機能と、Action機能において記述された行動の実行を外部刺激や内部状態に応じて評価して状況判断を行なうMonitor機能とを備えたスキーマ(schema)として記述される。

    図18には、状況依存行動階層108が複数のスキーマによって構成されている様子を模式的に示している。 また、図13と図18では、SituatedBehaviorLayerとReflexiveSituatatedBehaviorLayerからの動作コマンドが、ロボット装置1のResourceManagement(資源管理)モジュールで競合解決されている様子が示されている(後述)。

    状況依存行動階層108(より厳密には、状況依存行動階層108のうち、通常の状況依存行動を制御する階層)は、複数のスキーマが階層的に連結されたツリー構造として構成され、外部刺激や内部状態の変化に応じてより最適なスキーマを統合的に判断して行動制御を行なうようになっている。 ツリーは、例えば動物行動学的(Ethological)な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリーなど、複数のサブツリー(又は枝)を含んでいる。

    図19には、状況依存行動階層108におけるスキーマのツリー構造を模式的に示している。 同図に示すように、状況依存行動階層108は、短期記憶部105から外部刺激の通知(Notify)を受けるルート・スキーマを先頭に、抽象的な行動カテゴリから具体的な行動カテゴリに向かうように、各階層毎にスキーマが配設されている。 例えば、ルート・スキーマの直近下位の階層では、「探索する(Investigate)」、「食べる(Ingestive)」、「遊ぶ(Play)」というスキーマが配設される。 そして、「探索する(Investigate)」の下位には、「InvestigativeLocomotion」、「HeadinAirSniffing」、「InvestigativeSniffing」というより具体的な探索行動を記述したスキーマが配設されている。 同様に、スキーマ「食べる(Ingestive)」の下位には「Eat」や「Drink」などのより具体的な飲食行動を記述したスキーマが配設され、スキーマ「遊ぶ(Play)」の下位には「PlayBowing」、「PlayGreeting」、「PlayPawing」などのより具体的な遊ぶ行動を記述したスキーマが配設されている。

    図示の通り、各スキーマは外部刺激と内部状態を入力している。 また、各スキーマは、少なくともMonitor関数とAction関数を備えている。

    図20には、スキーマの内部構成を模式的に示している。 同図に示すように、スキーマは、状態遷移(ステートマシン)の形式で機体動作を記述したAction関数と、外部刺激や内部状態に応じてAction関数の各状態を評価して活動度レベル値として返すMonitor関数と、Action関数のステートマシンをREADY(準備完了)、ACTIVE(活動中),SLEEP(待機中)いずれかの状態としてスキーマの状態を記憶管理する状態管理部で構成されている。

    Monitor関数は、外部刺激と内部状態に応じて当該スキーマの活動度レベル(Activation Level:AL値)を算出する関数である。 図19に示すようなツリー構造を構成する場合、上位(親)のスキーマは外部刺激と内部状態を引数として下位(子供)のスキーマのMonitor関数をコールすることができ、子供のスキーマはAL値を返り値とする。 また、スキーマは自分のAL値を算出するために、さらに子供のスキーマのMonitor関数をコールすることができる。 そして、ルートのスキーマには各サブツリーからのAL値が返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断することができる。

    例えばAL値が最も高いスキーマを選択したり、AL値が所定の閾値を越えた2以上のスキーマを選択して並列的に行動実行したりするようにしてもよい(但し、並列実行するときは各スキーマ同士でハードウェア・リソースの競合がないことを前提とする)。

    図21には、Monitor関数の内部構成を模式的に示している。 同図に示すように、Monitor関数は、当該スキーまで記述されている行動を誘発する評価値を活動度レベルとして算出する行動誘発評価値演算器と、活動度レベルにバイアスを意図レベル(IntentionLevel:IV値)として算出するバイアス演算器と、使用する期待リソースを特定する使用リソース演算器を備えている。

    バイアス演算器で算出されるIV値は、例えば、状況依存行動を実行中に、ロボット装置1が状況依存行動の意図に反して動作するのを抑制する場合や、状況依存の意図に適うように励起する場合に用いられる。 このIV値は、熟考行動階層(DeliberativeLayer)が状況依存行動の発現計画を立て、状況依存行動の発現する順序を管理する場合にも用いる。

    図20に示した例では、Monitor関数は、スキーマすなわち行動モジュールの管理を行なう行動状態制御部(仮称)からコールされると、Action関数のステートマシンを仮想実行して、活動度レベルと使用リソースを演算し、これを返すようになっている。

    また、Action関数は、スキーマ自身が持つ行動を記述したステートマシン(後述)を備えている。 図19に示すようなツリー構造を構成する場合、親スキーマは、Action関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。 本実施形態では、ActionのステートマシンはReadyにならないと初期化されない。 言い換えれば、中断しても状態はリセットされず、スキーマが実行中の作業データを保存することから、中断再実行が可能である(後述)。

    図20で示す例では、スキーマすなわち行動モジュールの管理を行なう行動状態制御部(仮称)は、Monitor関数からの戻り値に基づいて、実行すべき行動を選択し、該当するスキーマのAction関数をコールし、あるいは状態管理部に記憶されているスキーマの状態の移行を指示する。 例えば行動誘発評価値としての活動度レベルが最も高いスキーマを選択したり、リソースが競合しないように優先順位に従って複数のスキーマを選択したりする。 また、行動状態制御部は、より優先順位の高いスキーマが起動し、リソースの競合が生じた場合、優先順位が下位のスキーマの状態をACTIVEからSLEEPに退避させ、競合状態が解かれるとACTIVEに回復するなど、スキーマの状態を制御する。

    行動状態制御部は、図22に示すように、状況依存行動階層108において1つだけ配設して、同階層108を構成するすべてのスキーマを一元的に集中管理するようにしてもよい。

    図示の例では、行動状態制御部は、行動評価部と、行動選択部と、行動実行部を備えている。 行動評価部は、例えば所定の制御周期で各スキーマのMonitor関数をコールして、各々の活動度レベルと使用リソースを取得する。 行動選択部は、各スキーマによる行動制御と機体リソースの管理を行なう。 例えば、集計された活動度レベルの高い順にスキーマを選択するとともに、使用リソースが競合しないように2以上のスキーマを同時に選択する。 行動実行部は、選択されたスキーマのAction関数に行動実行命令を発行したり、スキーマの状態(READY、ACTIVE,SLEEP)を管理して、スキーマの実行を制御する。 例えば、より優先順位の高いスキーマが起動し、リソースの競合が生じた場合、優先順位が下位のスキーマの状態をACTIVEからSLEEPに退避させ、競合状態が解かれるとACTIVEに回復する。

    あるいは、このような行動状態制御部の機能を、状況依存行動階層108内のスキーマ毎に配置するようにしてもよい。 例えば、図19に示したように,スキーマがツリー構造を形成している場合(図23を参照のこと)、上位(親)のスキーマの行動状態制御は、外部刺激と内部状態を引数として下位(子供)のスキーマのMonitor関数をコールし、子供のスキーマから活動度レベルと使用リソースを返り値として受け取る。 また、子供のスキーマは、自分の活動度レベルと使用リソースを算出するために、さらに子供のスキーマのMonitor関数をコールする。 そして、ルートのスキーマの行動状態制御部には、各サブツリーからの活動度レベルと使用リソースが返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断して、Action関数をコールして、子供スキーマの実行を開始したり中断させたりする。

    図24には、状況依存行動階層108において通常の状況依存行動を制御するためのメカニズムを模式的に示している。

    同図に示すように、状況依存行動階層108には、短期記憶部105から外部刺激が入力(Notify)されるとともに、内部状態管理部109から内部状態の変化が入力される。 状況依存行動階層108は、例えば動物行動学的(Ethological)な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリーなど、複数のサブツリーで構成されており、ルート・スキーマは、外部刺激の通知(Notify)に応答して、各サブツリーのmonitor関数をコールし、その返り値としての活動度レベル(AL値)を参照して、統合的な行動選択を行ない、選択された行動を実現するサブツリーに対してaction関数をコールする。 また、状況依存行動階層108において決定された状況依存行動は、リソース・マネージャにより反射行動部109による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作(MotionController)に適用される。

    また、状況依存行動層108のうち、反射的行動部109は、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する(例えば、障害物の検出により咄嗟に避ける)。 このため、通常の状況依存行動を制御する場合(図19)とは相違し、認識系の各オブジェクトからの信号を直接入力する複数のスキーマが、階層化されずに並列的に配置されている。

    図25には、反射行動部109におけるスキーマの構成を模式的に示している。 同図に示すように、反射行動部109には、聴覚系の認識結果に応答して動作するスキーマとして「AvoidBigSound」、「FacetoBigSound」及び「NoddingSound」、視覚系の認識結果に応答して動作するスキーマとして「FacetoMovingObject」及び「AvoidMovingObject」、並びに、触覚系の認識結果に応答して動作するスキーマとして「手を引っ込める」が、それぞれ対等な立場で(並列的に)配設されている。

    図示の通り、反射的行動を行なう各スキーマは外部刺激を入力に持つ。 また、各スキーマは、少なくともmonitor関数とaction関数を備えている。 monitor関数は、外部刺激に応じて当該スキーマのAL値を算出して、これに応じて該当する反射的行動を発現すべきかどうかが判断される。 また、action関数は、スキーマ自身が持つ反射的行動を記述したステートマシン(後述)を備えており、コールされることにより、該当する反射的行動を発現するとともにactionの状態を遷移させていく。

    図26には、反射行動部109において反射的行動を制御するためのメカニズムを模式的に示している。

    図25にも示したように、反射行動部109内には、反応行動を記述したスキーマや、即時的な応答行動を記述したスキーマが並列的に存在している。 認識系のオブジェクトから認識結果が入力されると、対応する反射行動スキーマがmonitor関数によりAL値を算出し、その値に応じてactionを軌道すべきかどうかが判断される。 そして、反射行動部109において起動が決定された反射的行動は、リソース・マネージャにより反射行動部109による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作(MotionController)に適用される。

    状況依存行動階層108(反射行動部109を含む)を構成するスキーマは、例えばC ++言語ベースで記述される「クラス・オブジェクト」として記述することができる。 図27には、状況依存行動階層108において使用されるスキーマのクラス定義を模式的に示している。 同図に示されている各ブロックはそれぞれ1つのクラス・オブジェクトに相当する。

    図示の通り、状況依存行動階層(SBL)108は、1以上のスキーマと、SBLの入出力イベントに対してIDを割り振るEventDataHandler(EDH)と、SBL内のスキーマを管理するSchemaHandler(SH)と、外部オブジェクト(STMやLTM、リソース・マネージャ、認識系の各オブジェクトなど)からデータを受信する1以上のReceiveDataHandler(RDH)と、外部オブジェクトにデータを送信する1以上のSendDataHandler(SDH)とを備えている。

    EventDataHandler(EDH)は、SBLの入出力イベントに対してIDを割り振るためのクラス・オブジェクトであり、RDHやSDHから入出力イベントの通知を受ける。

    SchemaHandlerは、状況依存行動階層(SBL)108や反射行動部109を構成する各スキーマやツリー構造などの情報(SBLのコンフィギュレーション情報)をファイルとして保管している。 例えばシステムの起動時などに、SchemaHandlerは、このコンフィギュレーション情報ファイルを読み込んで、図19に示したような状況依存行動階層108のスキーマ構成を構築(再現)して、メモリ空間上に各スキーマのエンティティをマッピングする。

    各スキーマは、スキーマのベースとして位置付けられるOpenR_Guestを備えている。 OpenR_Guestは、スキーマが外部にデータを送信するためのDsubject、並びに、スキーマが外部からデータを受信するためのDObjectというクラス・オブジェクトをそれぞれ1以上備えている。 例えば、スキーマが、SBLの外部オブジェクト(STMやLTM、認識系の各オブジェクトなど)にデータを送るときには、DsubjectはSendDataHandlerに送信データを書き込む。 また、DObjectは、SBLの外部オブジェクトから受信したデータをReceiveDataHandlerから読み取ることができる。

    SchemaManager及びSchemaBaseは、ともにOpenR_Guestを継承したクラス・オブジェクトである。 クラス継承は、元のクラスの定義を受け継ぐことであり、この場合、OpenR_Guestで定義されているDsubjectやDObjectなどのクラス・オブジェクトをSchemaManagerやSchemaBaseも備えていることを意味する(以下、同様)。 例えば図19に示すように複数のスキーマがツリー構造になっている場合、SchemaManagerは、子供のスキーマのリストを管理するクラス・オブジェクトSchemaListを持ち(子供のスキーマへのポインタを持ち)、子供スキーマの関数をコールすることができる。 また、SchemaBaseは、親スキーマへのポインタを持ち、親スキーマからコールされた関数の返り値を戻すことができる。

    SchemaBaseは、StateMachine及びPronomeという2つのクラス・オブジェクトを持つ。 StateMachineは当該スキーマの行動(Action関数)についてのステートマシンを管理している。 図28には、スキーマの行動(Action関数)についてのステートマシンを図解している。 このステートマシンの状態間の遷移にそれぞれ行動(Action)が紐付けされている

    親スキーマは子供スキーマのAction関数のステートマシンを切り替える(状態遷移させる)ことができる。 また、Pronomeには、当該スキーマが行動(Action関数)を実行又は適用するターゲットを代入する。 後述するように、スキーマはPronomeに代入されたターゲットによって占有され、行動が終了(完結、異常終了など)するまでスキーマは解放されない。 新規のターゲットのために同じ行動を実行するためには同じクラス定義のスキーマをメモリ空間上に生成する。 この結果、同じスキーマをターゲット毎に独立して実行することができ(個々のスキーマの作業データが干渉し合うことはなく)、行動のReentrance性(後述)が確保される。

    ParentSchemaBaseは、SchemaManager及びSchemaBaseを多重継承するクラス・オブジェクトであり、スキーマのツリー構造において、当該スキーマ自身についての親スキーマ及び子供スキーマすなわち親子関係を管理する。

    IntermediaParentSchemaBaseは、ParentSchemaBaseを継承するクラス・オブジェクトであり、各クラスのためのインターフェース変換を実現する。 また、IntermediaParentSchemaBaseは、SchemaStatusInfoを持つ。 このSchemaStatusInfoは、当該スキーマ自身のステートマシンを管理するクラス・オブジェクトである。

    親スキーマは、子供スキーマのAction関数をコールすることによってそのステートマシンの状態を切り換えることができる。 また、子供スキーマのAonitor関数をコールしてそのステートマシンの状態に応じたAL値を問うことができる。 但し、スキーマのステートマシンは、前述したAction関数のステートマシンとは異なるということを留意されたい。

    図29には、スキーマ自身すなわちAction関数によって記述されている行動についてのステートマシンを図解している。 既に述べたように、スキーマ自身のステートマシンは、Action関数に寄って記述されている行動について、READY(準備完了)、ACTIVE(活動中),SLEEP(待機中)という3つの状態を規定している。 より優先順位の高いスキーマが起動し、リソースの競合が生じた場合、優先順位が下位のスキーマの状態をACTIVEからSLEEPに退避させ、競合状態が解かれるとACTIVEに回復する。

    図29に示すように、ACTIVEからSLEEPへの状態遷移にACTIVE_TO_SLEEPが、SLEEPからACTIVEへの状態遷移にSLEEP_TO_ACTIVEがそれぞれ規定されている。 本実施形態において特徴的なのは、

    (1)ACTIVE_TO_SLEEPに、後にACTIVEに遷移して再開するために必要なデータ(コンテキスト)を保存するための処理と、SLEEPするために必要な行動が紐付けされている。
    (2)SLEEP_TO_ACTIVEに、保存しておいたデータ(コンテキスト)を復元するための処理と、ACTIVEに戻るために必要な行動が紐付けされている。

    という点である。 SLEEPするために必要な行動とは、例えば、話し相手に休止を告げる「ちょっと待っててね」などのセリフを言う行動(その他、身振り手振りが加わっていてもよい)である。 また、ACTIVEに戻るために必要な行動とは、例えば、話し相手に謝意を表わす「お待たせ」などのセリフを言う行動(その他、身振り手振りが加わっていてもよい)である。

    AndParentSchema、NumOrParentSchema、OrParentSchemaは、IntermediaParentSchemaBaseを継承するクラス・オブジェクトである。 AndParentSchemaは、同時実行する複数の子供スキーマへのポインタを持つ。 OrParentSchemaは、いずれか択一的に実行する複数の子供スキーマへのポインタを持つ。 また、NumOrParentSchemaは、所定数のみを同時実行する複数の子供スキーマへのポインタを持つ。

    ParentSchemaは、これらAndParentSchema、NumOrParentSchema、OrParentSchemaを多重継承するクラス・オブジェクトである。

    図30には、状況依存行動階層(SBL)108内のクラスの機能的構成を模式的に示している。

    状況依存行動階層(SBL)108は、STMやLTM、リソース・マネージャ、認識系の各オブジェクトなど外部オブジェクトからデータを受信する1以上のReceiveDataHandler(RDH)と、外部オブジェクトにデータを送信する1以上のSendDataHandler(SDH)とを備えている。

    EventDataHandler(EDH)は、SBLの入出力イベントに対してIDを割り振るためのクラス・オブジェクトであり、RDHやSDHから入出力イベントの通知を受ける。

    SchemaHandlerは、スキーマを管理するためのクラス・オブジェクトであり、SBLを構成するスキーマのコンフィギュレーション情報をファイルとして保管している。 例えばシステムの起動時などに、SchemaHandlerは、このコンフィギュレーション情報ファイルを読み込んで、SBL内のスキーマ構成を構築する。

    各スキーマは、図27に示したクラス定義に従って生成され、メモリ空間上にエンティティがマッピングされる。 各スキーマは、OpenR_Guestをベースのクラス・オブジェクトとし、外部にデータ・アクセスするためのDSubjectやDObjectなどのクラス・オブジェクトを備えている。

    スキーマが主に持つ関数とステートマシンを以下に示しておく。

    ActivationMonitor():スキーマがReady時にActiveになるための評価関数。
    Actions():Active時の実行用ステートマシン。
    Goal():Active時にスキーマがGoalに達したかを評価する関数。
    Goal():Active時にスキーマがfail状態かを判定する関数。
    SleepActions():Sleep前に実行されるステートマシン。
    SleepMonitor():Sleep時にResumeするための評価関数。
    ResumeActions():Resume前にResumeするためのステートマシン。
    DestroyMonitor():Sleep時にスキーマがfail状態か判定する評価関数。
    MakePronome():ツリー全体のターゲットを決定する関数である。

    これらの関数は、SchemaBaseで記述されている。

    図31には、MakePronome関数を実行する処理手順をフローチャートの形式で示している。

    スキーマのMakePronome関数がコールされると、まず、スキーマ自信に子供スキーマが存在するかどうかを判別する(ステップS1)。

    子供スキーマが存在する場合には、同様にすべての子供スキーマのMakePronome関数を再帰的にコールする(ステップS2)。

    そして、スキーマ自身のMakePronomeを実行して、Pronomeオブジェクトにターゲットが代入される(ステップS3)。

    この結果、自分以下のすべてのスキーマのPronomeに対して同じターゲットが代入され、行動が終了(完結、異常終了など)するまでスキーマは解放されない。 新規のターゲットのために同じ行動を実行するためには同じクラス定義のスキーマをメモリ空間上に生成する。

    図32には、Monitor関数を実行する処理手順をフローチャートの形式で示している。

    まず、評価フラグ(AssesssmentFlag)をオンに設定して(ステップS11)、スキーマ自身のActionを実行する(ステップS12)。 このとき、子供スキーマの選定も行なう。 そして、評価フラグをオフに戻す(ステップS13)。

    子供スキーマが存在する場合には(ステップS14)、ステップS12において選択した子供スキーマのMonitor関数を再帰的にコールする(ステップS15)。

    次いで、スキーマ自身のMonitor関数を実行して(ステップS16)、活動度レベルと行動実行に使用するリソースを算出して(ステップS17)、関数の戻り値とする。

    図33及び図34には、Actions関数を実行する処理手順をフローチャートの形式で示している。

    まず、スキーマがSTOPPING状態かどうかをチェックし(ステップS21)、次いで、STOPPINGすべき状態かどうかをチェックする(ステップS22)。

    STOPPINGすべき状態である場合には、さらに子供スキーマがいるかどうかをチェックする(ステップS23)。 そして、子供スキーマがいる場合にはこれをGO_TO_STOP状態に移行させてから(ステップS24)、HaveToStopFlagをオンにする(ステップS25)。

    また、STOPPINGすべき状態でない場合には、RUNNING状態かどうかをチェックする(ステップS26)。

    RUNNING状態でない場合には、さらに子供スキーマがいるかどうかをチェックする(ステップS27)。 そして、子供スキーマがいる場合には、HaveToStopFlagをオンにする(ステップS28)。

    次いで、現在のシステム状態とHaveToRunFlagとHaveToStopFlagと子供スキーマの動作状態から次の自分自身の状態を決定する(ステップS29)。

    次いで、スキーマ自身のAction関数を実行する(ステップS30)。

    その後、スキーマ自身がGO_TO_STOP状態かどうかをチェックする(ステップS31)。 GO_TO_STOP状態でない場合には、さらに子供スキーマがいるかどうかをチェックする(ステップS32)。 そして、子供スキーマがいる場合には、GO_TO_STOP状態の子供スキーマがいるかどうかをチェックする(ステップS33)。

    GO_TO_STOP状態の子供スキーマがいる場合には、これらのスキーマのAction関数を実行する(ステップS34)。

    次いで、RUNNING中の子供スキーマがいるかどうかをチェックする(ステップS35)。 RUNNING中の子供スキーマがいない場合には、停止中の子供スキーマがいるかどうかをチェックして(ステップS36)、停止中の子供スキーマのAction関数を実行する(ステップS37)。

    次いで、GO_TO_RUN状態の子供スキーマがいるかどうかをチェックする(ステップS38)。 GO_TO_RUN状態の子供スキーマがいない場合には、GO_TO_STOP状態の子供スキーマがいるかどうかをチェックして(ステップS39)、いればこの子供スキーマのAction関数を実行する(ステップS40)。

    最後に、現在のシステム状態とHaveToRunFlagとHaveToStopFlagと子供の動作状態から自分自身の次の状態を決定して,本処理ルーチン全体を終了する(ステップS41)。

    D−3. 状況依存行動階層の機能
    状況依存行動階層(SituatedBehaviorsLayer)108は、短期記憶部105並びに長期記憶部106の記憶内容や、内部状態管理部104によって管理される内部状態を基に、ロボット装置1が現在置かれている状況に即応した行動を制御する。 さらにIV値を考慮して、熟考行動の意図に適う状況依存行動を発現できるように制御する。

    前項で述べたように、本実施形態に係る状況依存行動階層108は、スキーマのツリー構造(図19を参照のこと)で構成されている。 各スキーマは、自分の子供と親の情報を知っている状態で独立性を保っている。 このようなスキーマ構成により、状況依存行動階層108は、Concurrentな評価、Concurrentな実行、Preemption、Reentrantという主な特徴を持っている。 以下、これらの特徴について詳解する。

    (1)Concurrentな評価:
    行動モジュールとしてのスキーマは外部刺激や内部状態の変化に応じた状況判断を行なうMonitor機能を備えていることは既に述べた。 Monitor機能は、スキーマがクラス・オブジェクトSchemaBaseでMonitor関数を備えていることにより実装されている。 Monitor関数とは、外部刺激と内部状態とIV値に応じて当該スキーマの活動度レベル(Activation Level:AL値)を算出する関数である。

    図19に示すようなツリー構造を構成する場合、上位(親)のスキーマは外部刺激と内部状態を引数として下位(子供)のスキーマのMonitor関数をコールすることができ、子供のスキーマはAL値を返り値とする。 また、スキーマは自分のAL値を算出するために、さらに子供のスキーマのMonitor関数をコールすることができる。 そして、ルートのスキーマには各サブツリーからのAL値が返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断することができる。

    このようにツリー構造になっていることから、外部刺激と内部状態の変化による各スキーマの評価は、まずツリー構造の下から上に向かってConcurrentに行なわれる。 図32のフローチャートでも示したように、スキーマに子供スキーマがある場合には(ステップS14)、選択した子供のMonitor関数をコールしてから(ステップS15)、自身のMonitor関数を実行する。

    次いで、ツリー構造の上から下に向かって評価結果としての実行許可を渡していく。 評価と実行は、その行動が用いるリソースの競合を解きながら行なわれる。

    本実施形態に係る状況依存行動階層108は、スキーマのツリー構造を利用して、並列的に行動の評価を行なうことができるので、外部刺激や内部状態などの状況に対しての適応性がある。 また、評価時には、ツリー全体に関しての評価を行ない、このとき算出される活動度レベル(AL)値によりツリーが変更されるので、スキーマすなわち実行する行動を動的にプライオリタイズすることができる。

    (2)Concurrentな実行:
    ルートのスキーマには各サブツリーからのAL値が返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断することができる。 例えばAL値が最も高いスキーマを選択したり、AL値が所定の閾値を越えた2以上のスキーマを選択して並列的に行動実行するようにしてもよい(但し、並列実行するときは各スキーマ同士でハードウェア・リソースの競合がないことを前提とする)。

    実行許可をもらったスキーマは実行される。 すなわち、実際にそのスキーマはさらに詳細の外部刺激や内部状態の変化を観測して、コマンドを実行する。 実行に関しては、ツリー構造の上から下に向かって順次すなわちConcurrentに行なわれる。 図33及び図34のフローチャートでも示したように、スキーマに子供スキーマがある場合には、子供のActions関数を実行する。

    Action関数は、スキーマ自身が持つ行動を記述したステートマシン(後述)を備えている。 図19に示すようなツリー構造を構成する場合、親スキーマは、Action関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。

    本実施形態に係る状況依存行動階層108は、スキーマのツリー構造を利用して、リソースが競合しない場合には、余ったリソースを使う他のスキーマを同時に実行することができる。 但し、Goalまでに使用するリソースに対して制限を加えないと、ちぐはぐな行動出現が起きる可能性がある。 状況依存行動階層108において決定された状況依存行動は、リソース・マネージャにより反射行動部109による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作(MotionController)に適用される。

    (3)Preemption:
    1度実行に移されたスキーマであっても、それよりも重要な(優先度の高い)行動があれば、スキーマを中断してそちらに実行権を渡さなければならない。 また、より重要な行動が終了(完結又は実行中止など)したら、元のスキーマを再開して実行を続けることも必要である。

    このような優先度に応じたタスクの実行は、コンピュータの世界におけるOS(オペレーティング・システム)のPreemptionと呼ばれる機能に類似している。 OSでは、スケジュールを考慮するタイミングで優先度のより高いタスクを順に実行していくという方針である。

    これに対し、本実施形態に係るロボット1の行動制御システム100は、複数のオブジェクトにまたがるため、オブジェクト間での調停が必要になる。 例えば反射行動を制御するオブジェクトであるReflexiveSBLは、上位の状況依存行動を制御するオブジェクトであるSBLの行動評価を気にせずに物を避けたり、バランスをとったりする必要がある。 これは、実際に実行権を奪い取り実行を行なう訳であるが、上位の行動モジュール(SBL)に、実行権利が奪い取られたことを通知して、上位はその処理を行なうことによってPreemptiveな能力を保持する。

    また、状況依存行動層108内において、外部刺激と内部状態の変化に基づくAL値の評価の結果、あるスキーマに実行許可がなされたとする。 さらに、その後の外部刺激と内部状態の変化に基づくAL値の評価により、別のスキーマの重要度の方がより高くなったとする。 このような場合、実行中のスキーマのActions関数を利用してSleep状態にして中断することにより、Preemptiveな行動の切り替えを行なうことができる。

    実行中のスキーマのActions()の状態を保存して、異なるスキーマのActions()を実行する。 また、異なるスキーマのActions()が終了した後、中断されたスキーマのActions()を再度実行することができる。

    また、実行中のスキーマのActions()を中断して、異なるスキーマに実行権が移動する前に、SleepActions()を実行する。 例えば、ロボット1は、対話中にサッカーボールを見つけると、「ちょっと待ってね」と言って、サッカーすることができる。

    (4)Reentrant:
    状況依存行動階層108を構成する各スキーマは、一種のサブルーチンである。 スキーマは、複数の親からコールされた場合には、その内部状態を記憶するために、それぞれの親に対応した記憶空間を持つ必要がある。

    これは、コンピュータの世界では、OSが持つReentrant性に類似しており、本明細書ではスキーマのReentrant性と呼ぶ。 図30を参照しながら説明したように、スキーマはクラス・オブジェクトで構成されており、クラス・オブジェクトのエンティティすなわちインスタンスをターゲット(Pronome)毎に生成することによりReentrant性が実現される。

    スキーマのReentrant性について、図35を参照しながらより具体的に説明する。

    SchemaHandlerは、スキーマを管理するためのクラス・オブジェクトであり、SBLを構成するスキーマのコンフィギュレーション情報をファイルとして保管している。 システムの起動時に、SchemaHandlerは、このコンフィギュレーション情報ファイルを読み込んで、SBL内のスキーマ構成を構築する。 図31に示す例では、EatやDialogなどの行動を規定するスキーマのエンティティがメモリ空間上にマッピングされているとする。

    ここで、外部刺激と内部状態の変化に基づく活動度レベルの評価により、スキーマDialogに対してAというターゲット(Pronome)が設定されて、Dialogが人物Aとの対話を実行するようになったとする。

    その後、人物Bがロボット1と人物Aとの対話に割り込み、外部刺激と内部状態の変化に基づく活動度レベルの評価を行なった結果、Bとの対話を行なうスキーマの方がより優先度が高くなったとする。

    このような場合、SchemaHandlerは、Bとの対話を行なうためのクラス継承した別のDialogエンティティ(インスタンス)をメモリ空間上にマッピングする。 別のDialogエンティティを使用して、先のDialogエンティティとは独立して、Bとの対話を行なうことから、Aとの対話内容は破壊されずに済む。 したがって、Dialog Aはデータの一貫性を保持することができ、Bとの対話が終了すると、Aとの対話を中断した時点から再開することができる。

    Readyリスト内のスキーマは、その対象物(外部刺激)に応じて評価すなわちAL値の計算が行なわれ、実行権が引き渡される。 その後、Readyリスト内に移動したスキーマのインスタンスを生成して、これ以外の対象物に対して評価を行なう。 これにより、同一のスキーマをactive又はsleep状態にすることができる。

    E. ロボットの内部状態管理
    本実施形態に係るロボットの行動制御システム100では、状況依存行動階層108は内部状態と外部環境によって行動を決定する。

    ロボット装置1の内部状態は、本能や感情といった数種類の情動で構成され、数式モデル化して扱われる。 内部状態管理部(ISM:Internal Status Manager)104は、上述した各認識機能部101〜103によって認識された外部刺激(ES:ExternalStimula)と、時間的経過に基づいて、内部状態を管理する。

    E−1. 情動の階層化
    本実施形態では、情動についてその存在意義による複数階層で構成され、それぞれの階層で動作する。 決定された複数の動作から、そのときの外部環境や内部状態によってどの動作を行なうかを決定するようになっている(後述)。 また、それぞれの階層で行動は選択されるが、より低次の行動から優先的に動作を発現していくことにより、反射などの本能的行動や、記憶を用いた動作選択などの高次の行動を1つの個体上で矛盾なく発現することができる。

    図36には、本実施形態に係る内部状態管理部104の階層的構成を模式的に示している。

    図示の通り、内部状態管理部104は、情動などの内部情報を、情動を本能や欲求などの個体存続に必要な1次情動と、この1次情動の満足度(過不足)によって変化する2次情動に大別する。 また、1次情動は、個体存続においてより生理的なものから連想に至るものまで階層的に細分化されている。

    図示の例では、1次情動は、低次から高次に向かって、下位の1次情動、上位の1次情動、連想による1次情動に区分される。 下位の1次情動は、大脳辺縁系へのアクセスに相当し、ホメオスタシス(個体維持)が保たれるように情動発生するとともに、ホメオスタシスが脅かされる場合には優先される。 また、上位の1次情動は、大脳新皮質へのアクセスに相当し、内発的欲求や社会的欲求などの種族維持に関わる。 上位の1次情動は、学習や環境に依って満足度が変化する(学習やコミュニケーションにより満足される)。

    1次情動の各階層は、行動選択されたスキーマを実行することによる一時情動(本能)レベルの変化量ΔIを出力する。

    2次情動は、いわゆる感情(Emotion)に相当し、喜び(Joy)、悲しみ(Sad)、怒り(Anger)、驚き(Surprise)、嫌気(Disgust)、畏怖(Feer)などの要素からなる。 1次情動の変化量ΔIに応じて2次情動の変化量(満足度)ΔEが決定される。

    状況依存行動階層108では、主に1次情動を基に行動選択を行なうが、2次情動が強い場合には、2次情動に基づく行動選択を行なうこともできる。 さらに、1次情動を基に選択された行動に対して2次情動により生成されたパラメータを使用してモジュレーションを行なうことも可能である。

    個体存続のための情動階層は、生得的反射による行動がまず選択される。 次いで、下位の1次情動を満たす行動を選択する。 そして、上位の1次情動を満たす行動発生、連想による1次情動を満たす行動発生と、よりプリミティブな個体保持から実現する。

    この際、各階層の1次情動は、直近の階層に対して圧力をかけることができる。 自身で決定した行動を選択するための指標が強い場合、直近の階層で決定された行動を抑制して、自身の行動を発現することができる。

    前項Dでも述べたように、状況依存行動階層108は、目標とする動作を持った複数のスキーマによって構成されている(図18、図19などを参照のこと)。 状況依存行動階層108では、各スキーマが持つ活動度レベルを指標にしてスキーマすなわち行動を選択する。 内部状態の活動度レベルと外部状況の活動度レベルによりスキーマ全体の活動度レベルが決定する。 スキーマは、目標とする動作を実行するための途中経過毎に、活動度レベルを保持する。 ○○を満たす行動発生とは、○○を満たす行動が最終目標であるスキーマを実行することに相当する。

    内部状態の活動度レベルは、スキーマを実行したときの1次情動における階層毎の変化量ΔIに基づく2次情動の満足度の変化ΔEの総和によって決定される。 ここで、1次情動がL1,L2,L3の3階層からなり、スキーマ選択時の1次情動の各階層に由来する2次情動の変化をそれぞれΔE L1 、ΔE L2 、ΔE L3とすると、それぞれに重み因子w 1 、w 2 、w 3を掛けて活動度レベルを算出する。 下位の1次情動に対する重み因子をより大きくすることにより、下位の1次情動を満たす行動がより選択され易くなる。 また、これら重み因子を調整することにより、各階層の1次情動が直近の階層に対して圧力をかける(Concentration:行動抑制)という作用を得ることができる。

    ここで、情動の階層化構造を利用した行動選択の実施例について説明する。 但し、以下では下位の1次情動としてSleep(眠気)を、上位の1次情動としてCuriosity(好奇心)を扱う。

    (1)下位の1次情動であるSleepが不足してきて、Sleepを満たすスキーマの活動度レベルが高まってきたとする。 このとき、他のスキーマの活動度レベルが上がらなければ、Sleepを満たすスキーマは、Sleepが満たされるまで自身を実行する。

    (2)Sleepが満たされる前に、上位の1次情動であるCuriosityが不足してきたとする。 しかし、Sleepのほうが個体維持に直結するため、Sleepの活動度レベルが一定値以下になるまでは、Sleepを満たすスキーマが実行し続ける。 そして、Sleepがある程度満たされたら、Curiosityを満たすスキーマを実行することができる。

    (3)Curiosityを満たすスキーマ実行中に手を勢いよくロボットの顔面に近づけたとする。 これに応答して、ロボットは色認識と大きさ認識による突然肌色が近づいてきたことが判り、生得的な反射行動として手から顔を避ける、すなわち後ろに頭を引くという動作を反射的に行なう。 この反射的な動作は動物の脊髄反射に相当する。 反射は、最も下位にあるスキーマなので、反射スキーマがまず実行される。

    脊髄反射の後、それに伴う情動変化が起き、その変化幅と他のスキーマの活動度レベルから、続いて情動表出スキーマを行なうかどうかを決定する。 情動表出スキーマが行なわれていない場合は、Curiosityを満たすスキーマが続行される。

    (4)あるスキーマ自身の下位にあるスキーマは通常自身より選択される可能性が高いが、自身の活動度レベルが極端に高いときに限り、下位のスキーマを抑制して(Concentration)、一定値まで自身を実行することが可能である。 Sleepの不足が著しいときは、反射行動スキーマの行動を出したいときであっても、一定値に回復するまではSleepを満たすスキーマが優先的に実行される。

    E−2. 他の機能モジュールとの連携
    図37には、内部状態管理部104と他の機能モジュールとの通信経路を模式的に示している。

    短期記憶部105は、外部環境の変化を認識する各認識機能部101〜103からの認識結果を、内部状態管理部104と状況依存行動階層108に出力する。

    内部状態管理部104は、状況依存行動階層108に内部状態を通知する。 これに対し、状況依存行動階層108は、連想又は決定した本能や感情の情報を返す。

    また、状況依存行動階層108は、内部状態と外部環境から算出される活動度レベルを基に行動を選択するとともに、選択した行動の実行と完了を短期記憶部105経由で内部状態管理部104に通知する。

    内部状態管理部104は、行動毎に内部状態を長期記憶部106に出力する。 これに対し、長期記憶部106は、記憶情報を返す。

    バイオリズム管理部は、バイオリズム情報を内部状態管理部104に供給する。

    E−3. 時間経過による内部状態の変化
    内部状態の指標は時間経過により変化する。 例えば、1次情動すなわち本能であるHunger(空腹感)、Fatigue(疲労)、Sleep(眠気)は、時間経過によりそれぞれ以下のように変化する。

    Hunger:おなかが減る(仮想値又はバッテリ残量)
    Fatigue:疲れがたまるSleep:眠気がたまる

    また、本実施形態では、ロボットの2次情動すなわち感情(Emotion)の要素としてPleasantness(満足度),Activation(活動度),Certainty(確信度)を定義しているが、時間経過によりそれぞれ以下のように変化する。

    Pleasantness:Neutral(中立)に向かって変化するActivation:バイオリズムやSleep(眠気)に依存するCertainty:Attentionに依存する

    図38には、内部状態管理部104が時間変化に伴って内部状態を変化させるための仕組みを示している。

    図示のように、バイオリズム管理部は、一定の周期でバイオリズム情報を通知する。 これに対し、内部状態管理部104は、バイオリズムにより1次情動の各要素の値を変更するとともに、2次情動であるActivation(活動度)を変動させる。 そして、状況依存行動階層108は、バイオリズム管理部からの通知がある度に、内部状態管理部104から本能や感情など内部状態の指標値を受け取るので、内部状態を基に各スキーマの活動度レベルを算出することにより、状況に依存した行動(スキーマ)を選択することができる。

    E−4. 動作実行による内部状態の変化
    内部状態は、ロボットが動作を実行することによっても変化する。

    例えば、「眠る」という行動を行なうスキーマは、下位の1次情動としてのSleep(眠気)を満たす行動が最終目標としている。 状況依存行動階層108では、1次情動としてのSleepと2次情動としてのActivationを基に各スキーマの活動度レベルを算出・比較して、「眠る」スキーマを選択し、この結果、眠るという行動が実現される。

    一方、状況依存行動階層108は、眠るという行動の実行完了を短期記憶部105経由で内部状態管理部104に伝達する。 これに対し、内部状態管理部104は、「眠る」行動の実行により、1次情動であるSleepの指標値を変更する。

    そして、状況依存行動階層108では、Sleepが満たされた度合いと2次情動としてのActivationを基に各スキーマの活動度レベルを改めて算出・比較する。 この結果、優先度が高くなった他のスキーマを選択し、眠るというスキーマから抜ける。

    図39には、内部状態管理部104がロボットの動作実行により内部状態を変化させるための仕組みを示している。

    状況依存行動階層108は、状況依存型で選択された行動の実行開始及び実行終了、並びにAttention情報を、短期記憶部105経由で内部状態管理部104に通知する。

    内部状態管理部104は、選択された行動の実行完了情報が通知されると、Attention情報に則って、短期記憶部105から得た外部環境を確認して、1次情動としての本能(Sleep)の指標値を変更するとともに、これに伴って2次情動としての感情も変更する。 そして、これら内部状態の更新データを、状況依存行動階層108並びに長期記憶部106に出力する。

    状況依存行動階層108では、新たに受け取った内部状態の指標値を基に、各スキーマの活動度レベルを算出して、状況に依存した次の行動(スキーマ)を選択する。

    また、長期記憶部106は、内部状態の更新データを基に記憶情報を更新するとともに、更新内容を内部状態管理部104に通知する。 内部状態管理部104では、外部環境に対する確信度と長期記憶部106の確信度により、2次情動としての確信度(Certainty)を決定する。

    E−5. センサ情報による内部状態の変化
    ロボットが動作を実行したときのその動作程度は、各認識機能部101〜103によって認識され、短期記憶部105経由で内部状態管理部104に通知される。 内部状態管理部104は、この動作程度を例えばFatigue(疲労)として1次情動の変化に反映させることができる。 また、この1次情動の変化に応答して、2次情動も変化させることができる。

    図40には、内部状態管理部104が外部環境の認識結果により内部状態を変化させるための仕組みを示している。

    内部状態管理部104は、短期記憶部105経由で各認識機能部101〜103による認識結果を受け取ると、1次情動の指標値を変更するとともに、これに伴って2次情動としての感情も変更する。 そして、これら内部状態の更新データを、状況依存行動階層108に出力する。

    状況依存行動階層108では、新たに受け取った内部状態の指標値を基に、各スキーマの活動度レベルを算出して、状況に依存した次の行動(スキーマ)を選択することができる。

    E−6. 連想による内部状態の変化
    既に述べたように、本実施形態に係るロボットは、長期記憶部106において連想記憶機能を備えている。 この連想記憶は、あらかじめ複数のシンボルからなる入力パターンを記憶パターンとして記憶しておき、その中のある1つのパターンに類似したパターンが想起される仕組みのことであり、外部刺激から内部状態の変化を連想記憶することができる。

    例えば、りんごが見えた場合に「嬉しい」という情動の変化を起こす場合について考察してみる。

    りんごが視覚認識機能部101において認識されると、短期記憶部105を経由して状況依存行動階層108に外部環境の変化として通知される。

    長期記憶部106では、「りんご」に関する連想記憶により、「(りんごを)食べる」という行動と、食べることにより1次情動(空腹感)が指標値で30だけ満たされるという内部状態の変化を想起することができる。

    状況依存行動階層108は、長期記憶部106から記憶情報を受け取ると、内部状態の変化ΔI=30を、内部状態管理部104に通知する。

    内部状態管理部104では、通知されたΔIを基に、2次情動の変化量ΔEを算出して、りんごを食べることによる2次情動Eの指標値を得ることができる。

    図41には、内部状態管理部104が連想記憶により内部状態を変化させるための仕組みを示している。

    外部環境が短期記憶部105を経由して状況依存行動階層108に通知される。 長期記憶部106の連想記憶機能により、外部環境に応じた行動と、1次情動の変化ΔIを想起することができる。

    状況依存行動階層108は、この連想記憶により得られた記憶情報を基に行動を選択するとともに、1次情動の変化ΔIを内部状態管理部104に通知する。

    内部状態管理部104では、通知を受けた1次情動の変化ΔIと、自身で管理している1次情動の指標値とを基に、2次情動の変化ΔEを算出して、2次情動を変化させる。 そして、新たに生成された1次情動及び2次情動を、内部状態更新データとして状況依存行動階層108に出力する。

    状況依存行動階層108では、新たに受け取った内部状態の指標値を基に、各スキーマの活動度レベルを算出して、状況に依存した次の行動(スキーマ)を選択することができる。

    E−7. 生得的な行動による内部状態の変化
    本実施形態に係るロボットが動作実行により内部状態を変化させることは既に述べた通りである(図39を参照のこと)。 この場合、1次情動と2次情動からなる内部状態の指標値を基に行動が選択されるとともに、行動の実行完了により情動が満たされる。 他方、本実施形態に係るロボットは、情動に依存しない、生得的な反射行動も規定されている。 この場合、外部環境の変化に応じて反射行動が直接選択されることになり、通常の動作実行による内部変化とは異なる仕組みとなる。

    例えば、大きなものが突然現れたときに生得的な反射行動をとる場合について考察してみる。

    このような場合、例えば視覚的認識機能部101による「大きいもの」という認識結果(センサ情報)は、短期記憶部105を介さず、状況依存行動階層108に直接入力される。

    状況依存行動階層108では、「大きいもの」という外部刺激により各スキーマの活動度レベルを算出して、適当な行動を選択する(図15、図25及び図26を参照のこと)。 この場合、状況依存行動階層108では、「よける」という脊髄反射的行動を選択するとともに、「驚く」という2次情動を決定して、これを内部状態管理部104に通知する。

    内部状態管理部104では、状況依存行動階層108から送られてきた2次情動を自身の感情として出力する。

    図42には、内部状態管理部104が生得的反射行動により内部状態を変化させるための仕組みを示している。

    生得的な反射行動を行なう場合、各認識機能部101〜103による戦さ情報は、短期記憶部105を介さず、状況依存行動階層108に直接入力される。

    状況依存行動階層108では、センサ情報として得た外部刺激により各スキーマの活動度レベルを算出して、適当な行動を選択するとともに、2次情動を決定して、これを内部状態管理部104に通知する。

    内部状態管理部104では、状況依存行動階層108から送られてきた2次情動を自身の感情として出力する。 また、状況依存行動階層108からのActivationに対して、バイオリズムの高低によって最終的なActivationを決定する。

    状況依存行動階層108では、新たに受け取った内部状態の指標値を基に、各スキーマの活動度レベルを算出して、状況に依存した次の行動(スキーマ)を選択することができる。

    E−8. スキーマと内部状態管理部との関係
    状況依存行動階層108は、複数のスキーマで構成され、各スキーマ毎に外部刺激や内部状態の変化によって活動度レベルを算出して、活動度レベルの度合いに応じてスキーマを選択して行動を実行する(図18、図19、図25を参照のこと)。

    図43には、スキーマと内部状態管理部との関係を模式的に示している。 スキーマは、DSubjectやDObjectなどのプロキシを介して、短期記憶部105、長期記憶部106、内部状態管理部104などの外部オブジェクトと通信することができる(図30を参照のこと)。

    スキーマは、外部刺激や内部状態の変化によって活動度レベルを算出するクラス・オブジェクトを備えている。 RM(Resource Management)オブジェクトは、プロキシを介して短期記憶部105に通信して、外部環境を取得して、外部環境に基づく活動度レベルを算出する。 また、Motivation算出クラス・オブジェクトは、プロキシを介して長期記憶部106並びに内部状態管理部104と通信して、内部状態の変化量を取得して、内部状態に基づく活動度レベルすなわちMotivationを算出する。 Motivationの算出方法に関しては後に詳解する。

    内部状態管理部104は、既に述べたように、1次情動と2次情動とに段階的に階層化されている。 また、1次情動に関しては、生得的反応による1次情動階層と、ホメオスタシスによる1次情動と、連想による1次情動とに次元的に階層化されている(図36を参照のこと)。 また、2次情動としての感情は、P(Pleasantness)、A(Activity)、C(Concentration)の3要素にマッピングされている。

    1次情動の各階層における変化ΔIはすべて2次情動に入力されて、Pleasantnessの変化ΔPの算出に利用される。

    Activityは、センサ入力、動作時間、バイオリズムなどの情報から統合的に判断される。

    また、選択されたスキーマの確信度を、実際の2次情動階層における確信度として使用する。

    図44には、Motivation算出クラス・オブジェクトによるMotivation算出経路を模式的に示している。

    RMクラス・オブジェクトは、プロキシ経由で短期記憶部105にアクセスして、センサ情報を取得し、認識された対象物の距離や大きさなどの刺激の強さに基づいて外部刺激による活動度レベルを評価する。

    一方、Motivation算出クラス・オブジェクトは、プロキシ経由で短期記憶部105にアクセスして、対象物に関する特徴を取得して、さらにプロキシ経由で長期記憶部106の対象物の特徴を問い合わせて内部状態の変化を取得する。 そして、プロキシ経由で内部状態管理部104にアクセスして、ロボット内部にある内部評価値を算出する。 したがって、Motivationの算出は、外部刺激の強さには無関係である。

    本実施形態に係るロボットの行動制御システムが連想記憶を用いて外部刺激から内部状態の変化を想起することにより、2次情動を算出して行動選択を行なう、ということは既に述べた(図41を参照のこと)。 さらに、連想記憶を用いることにより、対象物毎に異なる内部状態の変化を想起させることができる。 これによって、同じ状況でもその行動の発現し易さを異ならせることができる。 すなわち、外部の刺激や物理的状況、現在の内部状態に加え、ロボットの対象物ごとの記憶を考慮して行動を選択することができ、より多彩で多様化した対応を実現することができる。

    例えば、「○○が見えているから××する」とか、「現在○○が不足だから(何に対しても)××する」などの外部環境又は内部状態によって決まった行動をするのではなく、「○○が見えても△△なので□□する」とか、「○○が見えているけど××なので■■する」など、対象物に関する内部状態の変化記憶を用いることにより、行動にバリエーションをつけることができる。

    図45には、対象物が存在するときのMotivation算出処理のメカニズムを模式的に示している。

    まず、プロキシ経由で短期記憶部105にアクセスして、認識機能部101〜103により認識されたターゲットの特徴を尋ねる。

    次いで、取り出した特徴を用いて、今度はプロキシ経由で長期記憶部106にアクセスして、その特徴の対象物がスキーマに関係した欲求をどのように変化させるか、すなわち1次情動の変化ΔIを獲得する。

    次いで、プロキシ経由で内部状態管理部104にアクセスして、欲求の変化により快不快の値がどのように変化するか、すなわち2次情動の変化ΔPleasantを引き出す。

    そして、2次情動の変化ΔPleasantと対象物の確信度を引数とする以下のMotivation算出関数g target-iにより、i番目のMotivationを算出する。

    また、図46には、対象物が存在しないときのMotivation算出処理のメカニズムを模式的に示している。

    この場合、まず、行動に対する記憶に対して、その行動による欲求の変化ΔIを尋ねる。

    次いで、取得したΔIを用いて、内部状態管理部104により1次情動がΔIだけ変化したときの2次情動の変化ΔPleasantを引き出す。 そして、この場合は、2次情動の変化ΔPleasantを引数とする以下のMotivation算出関数g nottarget-iにより、i番目のMotivationを算出する。

    E−9.2次情動の各要素の変更方法
    図47には、2次情動のうちのPleasantnessを変更するためのメカニズムを図解している。

    長期記憶部106は、記憶の量による1次情動の変化を内部状態管理部104に入力する。 また、短期記憶部105は、認識機能部101〜103からのセンサ入力による1次情動の変化を内部状態管理部104に入力する。

    また、スキーマは、スキーマ実行による1次情動の変化(Nourishment,Moisture,Sleep)や、スキーマの内容による1次情動の変化(Affection)を内部状態管理部104に入力する。

    Pleasantnessは、1次情動の過不足の変化に応じて決定される。

    また、図48には、2次情動のうちのActivityを変更するためのメカニズムを図解している。

    Activityは、スキーマのSleep以外の時間の総和と、バイオリズムと、センサ入力を基に、統合的に判断される。

    また、図49には、2次情動のうちのCertaintyを変更するためのメカニズムを図解している。

    長期記憶部106に対して対象物を尋ねると、Certaintyが返される。 どの1次情動に着目するかは、そのスキーマの目標とする行動に依存する。 そして、引き出されたCertaintyがそのまま内部状態管理部104の2次情動におけるCertaintyとなる。

    図50には、Certaintyを求めるためのメカニズムを模式的に示している。

    長期記憶部106では、対象物に関する認識結果や情動などの各項目の確からしさを、スキーマ毎に記憶している。

    スキーマは、長期記憶部106に対して、スキーマと関係する記憶の対する確からしさの値を尋ねる。 これに対し、長期記憶部106は、スキーマと関係する記憶の確からしさを対象物の確からしさとして与える。

    F. ResourceManagerでのコマンド管理
    SituatedBehaviorslayerとReflexiveSituatedBehaviorsLayerから、ロボット装置1の資源管理(ResourceManager)モジュールに対し、ロボット装置1を動作させるためのコマンドが送信される。 (図13並びに図18を参照のこと。)

    ReflexiveSituatedBehaviorsLayerから発行されるコマンドは、反射行動として生成するコマンドである。 また、SituatedBehaviorslayerから発行されるコマンドは、状況依存行動として生成するコマンドである。 これらは別プロセスとして、若しくは別スレッドとして生成するため、あらかじめ調停しておくことが困難であり、あらかじめ発現しないようにするメカニズムである意図レベルによる制御は困難である(後述)。

    このため、ResourceManagerでは、この2つのコマンドをコマンドに付随する活動度レベルで調停する。 図51には、ResourceManagerの構成を示している。 図示のResourceManagerは、SituatedBehaviorslayer若しくはReflexiveSituatedBehaviorsLayerから送信されたコマンドの競合解決を行なうコマンド競合解決器と、ハードウェア・リソース毎のコマンドの管理を行なうコンテンツ管理器とで構成される。

    コマンド競合解決器では、コマンドと、コマンドが使用するロボット装置1のハードウェアのリソースの情報と、コマンドの活動度レベルを保持する。 そして、新しいコマンドがSituatedBehaviorslayer若しくはReflexiveSituatedBehaviorsLayerから送信された場合には、現在実行中のコマンドが使用しているロボット装置1のハードウェアのリソース情報と新しいコマンドのハードウェアのリソース情報と競合しているかを判定する。 そして、競合している場合には、コマンドに付随する活動度レベルの比較を行ない、コマンドの競合解決を行なう。

    つまり、現在実行中のコマンドの活動度レベルが新しいコマンドの活動度レベルよりも低い場合には、実行中のコマンドはキャンセルされ、新しいコマンドが実行される。

    他方、現在実行中のコマンドの活動度レベルが新しいコマンドの活動度レベルよりも高い場合には、新しいコマンドは実行中のコマンドの終了を待って実行されるか、若しくは新しいコマンドがキャンセル処理される。

    また、新しいコマンドの活動度レベルがResourceManagerで待ち状態にあるコマンドの活動度レベルよりも大きい場合には、ResourceManagerで待ち状態にあるコマンドは、キャンセルされる。

    G. SituatedBehaviorlayerとDeliberativeLayerにおける意図レベルを用いた下位行動の制御
    G−1. SituatedBehaviorlayerからReflexiveSituatedBehaviorsLayerへの意図レベル制御
    SituatedBehaviorlayerの行動は、その行動中に反射行動が発生することを許容できない場合がある。 例えば、SituatedBehaviorlayerに存在する対話行動は、ロボット装置1に顔をトラッキングさせたとする。

    このときロボット装置1の動作スピードに比べ、人間の動作がすばやければ、顔が突然大きく観測されることがある。 このとき、大きなものが突然現れたと考え、生得的な行動として、ReflexiveBehaviorlayerの行動が発現し、ロボット装置1は首をのけぞらせる(びっくりする)。 これにより、顔のトラッキングのコマンドが上書きされ、ロボットのトラッキングは停止してしまう。 これは対話中にはふさわしくない行動である。

    このような場合、SituatedBehaviorlayerの対話行動(スキーマ)は、Action関数の中で、意図レベルを反映させるReflexiveSituatedBehaviorsLayerの首をのけぞらせるスキーマと意図レベル情報をコマンドとしてReflexiveBehaviorlayerに送信する。

    図52には、SituatedBehaviorLayerからReflexiveBehaviorlayerへの制御を模式的に示している。 ReflexiveBehaviorlayerの行動状態制御部の行動意図管理器は、意図レベル情報コマンドを管理し、意図レベルを反映させるスキーマ(首をのけぞらせる行動)のバイアス演算器に送信する(バイアス演算器については、図21を参照のこと)。 バイアス演算器は、ReflexiveBehaviorlayerの意図レベルを反映させる。 スキーマは、図21のようにMonitor関数での活動度レベルに反映させる。

    G−2. DeliberativeLayerからSituatedBehaviorlayerへの意図レベル制御
    DeliberativeLayerは、本発明では、スキーマとして実装される。 長期記憶や短期記憶を用いて、行動計画を行なう。 このときの計画される行動は、SituatedBehaviorlayerのスキーマのシーケンスとして構成する。 そのため、G−1の意図レベルと同じメカニズムで制御する。

    図53には、DeliberativeLayerからSituatedBehaviorLayerへの制御を模式的に示している。 つまり、DeliberativeaLayerでは、計画されたシーケンスのスキーマを対象スキーマとして、意図レベル情報をコマンドとしてSituatedBehaviorLayerに送信する。

    SituatedBehaviorLayerの行動状態制御部の行動意図管理部は、意図レベル情報コマンドを管理し、意図レベルを反映させるスキーマのバイアス演算器に送信する。 (バイアス演算器は、図21を参照のこと)SituatedBehaviorLayerの意図レベルを反映させるスキーマは、図21のようにMonitor関数での活動度レベルに反映させ、励起されるため、状況依存ではなく、DeliberativeLayerからの支持で発現する。 発現が終了すると、行動状態制御部の行動意図管理部は、終了情報をDeliberativeLayerに送信し、意図レベル情報をコマンドとして送信したスキーマに返信される。

    H. 行動制御システムの他の構成例
    D項では、状況依存行動階層を構成する要素行動はすべて、内部状態をある範囲に保つための行動すなわち「ホメオスタシス行動」である場合を前提にして場合について説明した。 このような場合、すべての内部状態が十分満たされているときには各要素行動の欲求値は小さくなるため、行動価値も小さく、状況依存行動が発現する機会は低下する。 加えて、外部刺激もなければ反射行動を起こさなくなるので、ロボット装置は何もしなくなる。 しかしながら、自律的に何もしないロボットというのは、エンタテイメント性の点で問題があると考えられる。 そこで、本発明者らは、ロボット装置の自発的な行動を発現する状況依存行動の構成要素として、ホメオスタシス的な目的を持たない「アイドル行動」をさらに組み込むことにした。 この項では、ホメオスタシス行動とアイドル行動を要素行動として構成される状況依存行動階層のメカニズム、並びにこの場合のロボット装置の行動制御システム、自発行動と反射行動との調停方法について詳解する。

    H−1. 行動制御システム
    図54には、ロボット装置1の行動制御システムの他の構成例を示している。 但し、図3と同一の構成要素については同一の参照番号を付している。

    当該システム100´は、視覚認識機能部101、聴覚認識機能部102、接触認識機能部103を通して外界の情報すなわち外部刺激を獲得する。 これら認識機能部による認識結果は、短期記憶部105並びに長期記憶部106を通して状況依存行動階層108と反射行動部109、並びに反射イベント管理部110に伝達される。

    状況依存行動階層108と反射行動部109はそれぞれ、「スキーマ」と呼ばれるオブジェクトとして記述される複数の行動モジュールすなわち要素行動で構成されている。 状況依存行動階層108と反射行動部109はそれぞれ、認識結果すなわち外部刺激に基づいて行動を決定し、モーション・コマンドの強さが付加されたモーション・コマンドを資源管理部120に出力する。 モーション・コマンドは、上述した行動価値すなわちAL値に相当し、スカラ値として表される。

    また、反射イベント管理部110は、反射行動部109に入力されるイベントから反射イベント密度を算出する。 反射イベント密度は、反射イベント密度は、反射行動の要因となるイベントすなわち外部刺激が入力される度合いを数値化したものである。 ロボット装置がホメオスタシス的でないときに、アイドル行動の発生確率が反射イベント密度に基づいて制御される(後述)。

    資源管理部120は、状況依存行動階層108と反射行動部109からそれぞれ伝達された状況依存行動と反射行動のモーション・コマンドの強さを比較し、値が大きい方のモーションを外部環境に出力し、ロボット装置1が現実に行なう動作として発現させる。

    なお、反射行動部109は、状況依存行動階層108に比べ、十分な速さで制御サイクルが実行される。

    H−2. 状況依存行動階層
    既に述べたように、状況依存行動階層108は複数の要素行動で構成される。 各々の要素行動は、内部状態、短期記憶部105や長期記憶部106に記憶されている認識結果などから定期的に行動価値を算出し、行動選択された場合には、行動を出力する。 本項で詳解する構成例では、状況依存行動階層108は、内部状態をある範囲に保つための行動すなわち「ホメオスタシス行動」の他に、ホメオスタシス的な目的を持たない「アイドル行動」を要素行動として備えている。

    図55には、状況依存行動階層108の内部構成例を示している。 同図に示す状況依存行動階層108では、内部状態管理部104から入力される情動データと、短期記憶部105や長期記憶部106から入力される外部刺激の認識結果に基づいて、各要素行動内の行動価値算出部220が行動価値としてのAL値をそれぞれ算出する。 行動価値算出部220が行動価値算データベースを用いて行動価値を算出する場合、行動を発現した後の結果を基に学習して、要素行動内の行動価値算出データベースを更新する学習部240をさらに備えていてもよい。 行動価値算出データベースの学習方法については、例えば本出願人に既に譲渡されている特願2004−68133号明細書に記載されている。

    そして、行動選択部230は、各要素行動のAL値に基づいて発現すべき要素行動を選択し、そのモーション・コマンドをそのコマンドの強さを付加して、資源管理部120に出力する。 そして、資源管理部120は、モーション・コマンドの強さに応じて自発的な行動又は反射行動のいずれかのモーション・コマンドを出力する。 行動選択された要素行動は、自身の行動を出力する。

    図55に示す例では、状況依存行動階層108は、要素行動として、ホメオスタシス行動A、ホメオスタシス行動B、…、アイドル行動などを備えている。 各要素行動は、スキーマと呼ばれるオブジェクトとして記述される。 図示の例では、行動選択部230によって一元的に要素行動の選択が行なわれる構成となっているが、勿論、図19に示したように要素行動は階層構造を備えていてもよい。

    ホメオスタシス行動の要素行動は、内部状態を満たすための行動(例えば、バッテリが少なくなったので充電行動をとる、疲れたので休むなど)として自発的に出力される。 これらの要素行動は内部状態のみから欲求値を算出する。 また、同時に内部状態と認識結果から予想満足値を算出し、欲求値と予想満足値から各要素行動の行動価値を算出する。 行動価値の算出は各要素行動で行なわれる。 欲求値が上昇するとホメオスタシス行動の行動価値が高まるので、行動選択部230ではホメオスタシス行動を選択して、そのモーション・コマンドを資源管理部120に対して出力する。 その際、モーション・コマンドの強さとして算出された行動価値を付加する。

    また、すべての内部状態が十分満たされているときは各要素行動の欲求値は小さくなるため、行動価値も小さい。 そのような場合は、ホメオスタシス的な目的を持たないアイドル行動がモーション・コマンド(例えば、なにもしない、首を傾げる、ゴルフパットの練習をする、横になってくつろぐなど)を出力する。 アイドル行動の要素行動の行動価値は一定値である。 したがって、すべての内部状態が十分に満たされているときには、ホメオスタシス的ではない、すなわちホメオスタシス行動の行動価値が低下していき、アイドル行動の行動価値を下回るようになると、行動選択部230はアイドル行動を選択するようになる。

    本実施形態では、アイドル行動と反射行動との競合を回避又は緩和するために、反射イベント密度に応じた発生確率でアイドル行動を発現するようにしている。 反射イベント密度は、反射行動の要因となるイベントすなわち外部刺激が入力される度合いを数値化したものである。 アイドル行動のモーション・コマンド選択に関しては後に詳解する。

    H−3. ホメオスタシス行動の行動価値
    ホメオスタシス行動の要素行動は内部状態のみから欲求値を算出する。 また、同時に内部状態と認識結果から予想満足値を算出し、欲求値と予想満足値から各要素行動の行動価値を算出する。 資源管理部120では、モーション・コマンドの強さを指標にしてモーションの選択を行なうが、ホメオスタシス行動のモーション・コマンドの強さは、その要素行動の行動価値を用いている。 この項では、ホメオスタシス行動の行動価値の算出方法について詳解する。

    図55に示したように、ホメオスタシス行動の各要素行動は、自身に記述された行動に応じて所定の内部状態及び外部刺激が定義されている。 外部刺激は、該当する対象物のプロパティとして扱われる。 例えば、行動出力が「食べる」である要素行動Aは、外部刺激として対象物の種類(OBJECT_ID)、対象物の大きさ(OBJECT_SIZE)、対象物の距離(OBJECT_DISTANCE)などを扱い、内部状態として「NOURISHMENT」(「栄養状態」)、「FATIGUE」(「疲れ」)などを扱う。 このように、要素行動毎に、扱う外部刺激及び内部状態の種類が定義され、該当する外部刺激及び内部状態に対応する行動(要素行動)に対する行動価値が算出される。 なお、1つの内部状態、又は外部刺激は、1つの要素行動だけでなく、複数の要素行動に対応付けられていてもよいことは勿論である。

    また、内部状態管理部104は、外部刺激並びに例えば自身のバッテリの残量及びモータの回転角などの情報を入力とし、上述のような複数の内部状態に対応した内部状態の値(内部状態ベクトルIntV)を算出し、管理する。 具体的には、例えば、内部状態「栄養状態」は、バッテリの残量を基に決定し、内部状態「疲れ」は、消費電力を基に決定することができる。

    ホメオスタシス行動の行動価値ALは、その要素行動をロボット装置がどれくらいやりたいか(実行優先度)を示す。 行動価値算出部220は、入力される外部刺激と、行動発現後に変化すると予想される予想内部状態変化が対応付けられた行動価値算出データベース221を参照し、ある時刻での外部刺激と内部状態とからその時刻での各要素行動A〜Dにおける行動価値ALをそれぞれ算出する。 図55に示した例では行動価値算出部220は要素行動毎に個別に設けられているが、単一の行動価値算出部がすべての要素行動についての行動価値を算出するように構成してもよい。

    各ホメオスタシス行動の要素行動に対する行動価値ALは、現在の各内部状態に対応する各行動に対する欲求値と、現在の各内部状態に基づく満足度と、外部刺激により変化すると予想される内部状態の変化量、すなわち、外部刺激が入力され行動を発現した結果、変化すると予想される内部状態の変化量を示す予想内部状態変化に基づく予想満足度変化とに基づいて算出する。

    図56には、行動価値算出部220が内部状態及び外部刺激から行動価値ALを算出する処理の流れを示している。 本実施形態では、要素行動毎に、1以上の内部状態の値を成分として有する内部状態ベクトルIntV(Internal Variable)が定義されており、内部状態管理部104から各要素行動に応じた内部状態ベクトルIntVを得る。 すなわち、内部状態ベクトルIntVの各成分は、例えば上述した情動などを示す1つの内部状態の値(内部状態パラメータ)を示すもので、内部状態ベクトルIntVが有する各成分に応じた要素行動の行動価値算出に使用される。 具体的には、上記行動出力「食べる」を有する要素行動Aは、例えば内部状態ベクトルIntV{IntV_NOURISHMENT「栄養状態」、IntV_FATIGUE「疲れ」}が定義されている。

    また、内部状態毎に、1以上の外部刺激の値を成分として有する外部刺激ベクトルExStml(External Stimulus)が定義されており、各記憶部105〜106から各要素行動に応じた外部刺激ベクトルExStmlを得る。 外部刺激ベクトルExStmlの各成分は対象物の大きさ、対象物の種類、対象物までの距離などの認識情報を示すもので、外部刺激ベクトルExStmlが有する各成分に応じた内部状態値の算出に使用される。 具体的には、内部状態IntV_NOURISHMENT「栄養状態」には、例えば、外部刺激ベクトルExStml{OBJECT_ID「対象物の種類」、OBJECT_SIZE「対象物の大きさ」}が定義され、内部状態IntV_FATIGUE「疲れ」には、例えば外部刺激ベクトルExStml{OBJECT_DISTANCE「対象物までの距離」}が定義されている。

    行動価値算出部220は、この内部状態ベクトルIntV及び外部刺激ベクトルExStmlを入力とし、行動価値ALを算出する。 具体的には、行動価値算出部220は、内部状態ベクトルIntVから、該当する要素行動について、どれだけやりたいかを示すモチベーション・ベクトル(MotivationVector)を求める第1の算出部MVと、内部状態ベクトルIntV及び外部刺激ベクトルExStmlから、該当する要素行動をやれるか否か示すリリーシング・ベクトル(ReleasingVector)を求める第2の算出部RVとを有備え、これら2つのベクトルから行動価値ALを算出する。

    ホメオスタシス行動に関する行動価値ALの算出方法の詳細については、例えば、例えば本出願人に既に譲渡されている特願2004−68133号明細書を参照されたい。

    H−4. アイドル行動のモーション・コマンド選択とその強さ
    アイドル行動はホメオスタシス的な目的を持たない、すなわち内部状態とは無関係であることから、その要素行動の行動価値は一定値が与えられている。 そして、反射行動との競合を回避又は緩和するために、反射イベント密度に応じた発生確率に応じてアイドル行動が選択されるように、そのモーション・コマンドの強さを反射イベント密度に基づいて決定するようにしている。 この項では、アイドル行動の行動価値の算出方法について詳解する。

    反射イベント管理部110は、反射行動部109に入力されるイベントから反射イベント密度を算出する。 アイドル行動の要素運動は、その値によって出力するモーション・コマンドの種類やその強さを決定する。

    本実施形態では、以下の2式に示すように、反射イベントが入力される度に反射イベント密度RED(Reflexive Event Density)を増加させるとともに、時間減衰するようにしている。 但し、IR(Increase Ratio)は反射イベント1回当たりの反射イベント密度REDの増加率であり(但し、0<IR<1)、RED max =1.0とする。 また、dTは経過時間、τは時間減衰の半減期である。

    なお、増加率IRは、反射イベントの種類毎に設定するようにしてもよい。 例えば、ユーザにより明示的な反射イベント(肩タッチセンサを押すなど)に関しては大きく、ノイズなどにより誤認識され易い反射イベント(クラップ音発生)に関しては小さく設定することが可能である。 図57には、反射イベント密度REDが反射イベントの発生に応じて変化する様子を例示している。

    アイドル行動は、外部刺激に直接反応する必要のある反射行動と干渉しないことが好ましい。 このため、本実施形態では、反射イベント密度に応じてアイドル行動のモーション・コマンドを決定するようにしている。

    例えば、ユーザから反射イベントの入力が多数あり、反射イベント密度が高いときには、よりリアクティブに反応できるように、「何もしない」や、「首を傾ける」といった動作量のより小さいモーションを高い確率で出力する。 逆に、ユーザに放置され反射イベントの入力があまりなく反射イベント密度が低いときには、静止してしまうことをなるべく避け、「ゴルフパットの練習をする」や、「横になってくつろぐ」といった動作量の大きいモーションを高い確率で出力する。

    反射イベント密度からどのモーション(要素行動)を選ぶかは、以下のような仕組みで確率的に選択される。

    あるモーションm iが最もよく選択される反射イベント密度をREDm iとする。 現在の反射イベント密度REDとの距離をD mi =|REDm i −RED|としたとき、i番目のモーションm iが選択される確率Pm iは次式で計算される。

    Tはボルツマン温度であり、大きい値を設定すると行動選択がよりランダムになる。 逆に小さい値に設定すると選択に確率的要素がなくなり、反射イベント密度REDによってモーションが一意(REDが最も近いREDm iのモーション)に選択されるようになる。 但し、この選択はモーション実行中には行なわない。

    図58には、反射イベント密度REDを用いてm iが選択される確率Pm iの例を示している。 図示の例では、アイドル行動として「何もしない」、「首を傾ける」、「ゴルフパットの練習をする」、「横になってくつろぐ」という4種類のモーションが定義されており、それぞれについて最もよく選択される反射イベント密度RED m0 〜RED m3が設定されている。 上述したように、エンタテイメント性を高めつつアイドル行動の反射行動への干渉を抑制するために、動作量の大きなモーションには低い反射イベント密度が設定され、動作量の小さなモーションにはより高い反射イベント密度が設定されている。 例えば、「何もしない」や「首を傾ける」といった動作量の小さいモーションは大きく、「ゴルフパットの練習をする」や「横になってくつろぐ」といった動作量の大きいモーションは小さく設定する。

    そして、上式から求まる各モーションの発生確率をそれぞれのモーションについてのモーション・コマンドの強さとして用いる。 これにより、資源管理部120での自発行動調停において、反射イベント密度が高くなると、動作量の小さなアイドル行動あるいは反射行動が選ばれ易くなり、反射イベント密度が低くなると、動作量の大きなアイドル行動が選ばれ易く、あるいは反射行動が選ばれにくくなる。 この結果、反射行動の要因となるイベントの種類や頻度から、アイドル行動を自発的に出力するタイミングやそのモーションの種類を調停することができる。

    上述のようにして状況依存行動階層108内では、ホメオスタシス行動の各要素運動についての行動価値が算出されるとともに、反射行動の要因となるイベントの種類や頻度に応じてアイドル行動の要素運動が選択される。 そして、行動選択部230が、ホメオスタシス行動及びアイドル行動の各要素運動の行動価値を比較し、いずれを自発行動として選択すべきかを最終的に決定する。

    ホメオスタシス行動の行動価値が欲求値と予想満足値から算出される一方、アイドル行動に対しては一定の行動価値が与えられている。 したがって、欲求値が上昇するとホメオスタシス行動の行動価値が高まるので、行動選択部230ではホメオスタシス行動を状況依存行動として選択する。 逆に、すべての内部状態が十分に満たされているときには、ホメオスタシス的ではない、すなわちホメオスタシス行動の行動価値が低下していき、アイドル行動の行動価値を下回るようになると、行動選択部230はアイドル行動を状況依存行動として選択するようになる。

    H−5. 自発行動と反射行動の調停
    資源管理部120では、自発行動と反射行動の調停を行なう。 具体的には、状況依存行動階層108と反射行動部109からそれぞれ伝達された状況依存行動と反射行動のモーション・コマンドの強さを比較し、値が大きい方のモーションを外部環境に出力し、ロボット装置1が現実に行なう動作として発現させる。

    反射行動は、基本的に、センサ入力そのものをトリガとして行なう反射的な行動のことであるが、状況依存行動階層と同様に複数の要素行動で構成される。 反射行動部109の要素行動は、視覚認識機能部101、聴覚認識機能部102、接触認識機能部103からイベントが発生する度に直接入力を得るため、即座の反応(反射)が可能となる。 各要素行動は注目する入力(クラップが発生した、目の前に突然何か物体が現れた、肩タッチセンサを押されたなど)に対して特定のモーション・コマンド(音の方向を見る、後ろにたじろぐ、押されたタッチセンサの方向を見る)を資源管理部に出力する。 その際、モーション・コマンドの強さは一定値を付加する。

    以下では、状況依存行動階層108による自発行動と反射行動部109による反射行動の調停方法について詳解する。

    ホメオスタシス行動の具体例として、バッテリチャージ行動を考える。 バッテリチャージ行動は内部状態としてバッテリ残量に着目し、バッテリ残量が少なくなると行動価値が高くなる。 コマンドの強さは行動価値の値とし、0から100までの間をとるものとする。

    また、アイドル行動として、「何もしない」、「首を傾ける」、「ゴルフパットの練習をする」、「横になってくつろぐ」という4種類を考える。 これらの要素行動の行動価値として一定値20が一律に与えられる。 また、{コマンドの強さ,そのモーションが最もよく選択される反射イベント密度}については、「何もしない」は{70,80}、「首を傾ける」は{75,60}、「ゴルフパットの練習をする」は{85,40}、「横になってくつろぐ」は{90,20}とする。

    また、反射行動に関する要素行動の例として、クラップ反射行動、動作物体反射行動、タッチ反射行動を考える。 クラップ反射行動は、手をパチンパチンと叩いたときの音を入力とし、その音源方向を向くモーション・コマンドを出力する。 動作物体反射行動は物体が突然近づくことを入力とし、後ろにたじろぐモーション・コマンドを出力する。 タッチ反射行動は、タッチセンサを入力とし、押されたタッチセンサの方向を見るコマンドを出力する。 これら反射行動についての行動価値、すなわちモーション・コマンドの強さは一定値80とする。

    自発的行動(ホメオスタシス行動、アイドル行動)と反射行動の調停例について以下に説明する。

    ホメオスタシス行動と反射行動の調停例:
    図59には、バッテリ残量が中程度で、外界からクラップを認識したときの行動調停例を示している。

    このとき、状況依存行動階層108では、行動選択部230は、ホメオスタシス行動としてのバッテリチャージ行動の行動価値70と、アイドル行動の行動価値20を比較して、行動価値の大きいバッテリチャージ行動が選択される。 このような場合、コマンドの強さとして行動価値70が与えられたバッテリチャージ行動のモーション・コマンドが、資源管理部110に対して出力される。

    また、このとき、外部刺激としてクラップが検出されたとする。 反射行動部109は、この外部刺激に即応するクラップ反射行動を選択すると、すべての反射行動に一律に与えられたコマンドの強さ80を付けて、資源管理部110に対してモーション・コマンドを出力する。

    そして、資源管理部110は、状況依存行動階層108及び反射行動部109からそれぞれ伝達されたモーション・コマンドの強さを比較し、値が大きい方のモーションを出力する。 したがって、この場合は、コマンドの強さの大きい反射行動が選択されることになる。

    また、図60には、バッテリ残量が少程度で、クラップを認識したときの行動調停例を示している。

    このとき、状況依存行動階層108では、行動選択部230は、ホメオスタシス行動としてのバッテリチャージ行動の行動価値90と、アイドル行動の行動価値20を比較して、行動価値の大きいバッテリチャージ行動が選択される。 このような場合、コマンドの強さとして行動価値90が与えられたバッテリチャージ行動のモーション・コマンドが、資源管理部110に対して出力される。

    また、このとき、外部刺激としてクラップが検出されたとする。 反射行動部109は、この外部刺激に即応するクラップ反射行動を選択すると、すべての反射行動に一律に与えられたコマンドの強さ80を付けて、資源管理部110に対してモーション・コマンドを出力する。

    そして、資源管理部110は、状況依存行動階層108及び反射行動部109からそれぞれ伝達されたモーション・コマンドの強さを比較し、その結果、コマンドの強さの大きいバッテリチャージ行動が選択される。

    つまり、ホメオスタシス行動の行動価値(欲求)が低い場合には、ロボット装置としては反射行動のトリガに反応し易くなるが、ホメオスタシス行動の行動価値が高い場合には、ロボット装置としては反射行動のトリガに反応しない(その行動に集中しているように見える)ことになる。

    アイドル行動と反射行動の調停例:
    図61並びに図62には、バッテリ残量が十分で、外界からクラップを認識したときの行動調停例を示している。

    この場合、内部状態が十分に満たされているので、ホメオスタシス行動としてのバッテリチャージ行動の欲求値は小さくなる、すなわち行動価値が低下するので、状況依存行動階層108はアイドル行動の要素運動がモーション・コマンドとして出力する。 出力されるアイドル行動の種類は、そのときの反射イベント密度REDによって決定される(前述)。

    図61には、ユーザがロボット装置に対してぱちぱちと手を叩いて呼び掛け、反射イベント密度REDがある値から60程度まで上昇したときの行動調停例を示している。

    このとき、状況依存行動階層108から出力されたアイドル行動の要素行動が「首を傾ける」であるとすると、そのモーション・コマンドの強さは75である。 これに対し、反射行動のコマンドの強さは一定値80と大きいことから、資源管理部120は、コマンドの強さの大きい反射行動を選択する。

    また、図62には、ロボット装置がしばらく報知された結果、反射イベント密度が40程度に低下したときに、ユーザがロボット装置に対してぱちぱちと手を叩いて呼び掛けたときの行動調停例を示している。

    このとき、状況依存行動階層108から出力されたアイドル行動の要素行動が「ゴルフパットの練習」であるとすると、そのモーション・コマンドの強さは85である。 これに対し、反射行動のコマンドの強さは一定値80と小さいことから、資源管理部120は、コマンドの強さの大きいアイドル行動を選択する。

    その後、さらにユーザがロボット装置に対してぱちぱちと手を叩いて呼び掛け続けると、反射イベント密度REDが上昇し、その結果、図61に示したように資源管理部120は反射行動を出力するようになる。

    つまり、アイドル行動は、ユーザからの反射イベントが多く反射イベント密度が高い場合は、ロボット装置は反射行動のトリガに反応するようになる。 他方、ユーザから放置されて反射イベント密度が低い場合には、ロボット装置は反射行動のトリガに反応しない(その行動に集中しているように見える)ことになる。

    以上、特定の実施形態を参照しながら、本発明について詳解してきた。 しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。

    本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。 すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置であるならば、例えば玩具等のような他の産業分野に属する製品であっても、同様に本発明を適用することができる。

    また、本発明に係る行動制御メカニズムは、ロボット装置だけでなく、自発行動と反射行動を行なう他の自律型のエージェントに対しても好適に適用することが可能である。

    要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。 本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。

    本発明に実施に供されるロボット装置1の機能構成を模式的に示した図である。

    制御ユニット20の構成をさらに詳細に示した図である。

    本発明の実施形態に係るロボット装置1の行動制御システム100の機能構成を模式的に示した図である。

    図3に示した行動制御システム100を構成する各オブジェクトによる動作の流れを示した図である。

    各認識機能部101〜103における認識結果に基づいて短期記憶部105内のターゲット・メモリに入る情報の流れを示した図である。

    各認識機能部101〜103における認識結果に基づいて短期記憶部105内のイベント・メモリに入る情報の流れを示した図である。

    ロボット1によるユーザA及びBとの対話処理を説明するための図である。

    ロボット1によるユーザA及びBとの対話処理を説明するための図である。

    ロボット1によるユーザA及びBとの対話処理を説明するための図である。

    本発明の一実施形態に係る連想記憶の記憶過程を概念的に示した図である。

    本発明の一実施形態に係る連想記憶の想起過程を概念的に示した図である。

    競合型ニューラル・ネットワークを適用した連想記憶システムの構成例を模式的に示した図である。

    本発明の実施形態に係る行動制御システム100のオブジェクト構成を模式的に示した図である。

    状況依存行動階層108による状況依存行動制御の形態を模式的に示した図である。

    図14に示した状況依存行動階層108による行動制御の基本的な動作例を示した図である。

    図14に示した状況依存行動階層108により反射行動を行なう場合の動作例を示した図である。

    図14に示した状況依存行動階層108により感情表現を行なう場合の動作例を示した図である。

    状況依存行動階層108が複数のスキーマによって構成されている様子を模式的に示した図である。

    状況依存行動階層108におけるスキーマのツリー構造を模式的に示した図である。

    スキーマの内部構成を模式的に示している。

    Monitor関数の内部構成を模式的に示した図である。

    行動状態制御部の構成例を模式的に示した図である。

    行動状態制御部の他の構成例を模式的に示した図である。

    状況依存行動階層108において通常の状況依存行動を制御するためのメカニズムを模式的に示した図である。

    反射行動部109におけるスキーマの構成を模式的に示した図である。

    反射行動部109により反射的行動を制御するためのメカニズムを模式的に示した図である。

    状況依存行動階層108において使用されるスキーマのクラス定義を模式的に示した図である。

    スキーマのaction関数のステートマシンを示した図である。

    スキーマのステートマシンを示した図である。

    状況依存行動階層108内のクラスの機能的構成を模式的に示した図である。

    MakePronome関数を実行する処理手順を示したフローチャートである。

    Monitor関数を実行する処理手順を示したフローチャートである。

    Actions関数を実行する処理手順を示したフローチャートである。

    Actions関数を実行する処理手順を示したフローチャートである。

    スキーマのReentrant性を説明するための図である。

    本実施形態に係る内部状態管理部104の階層的構成を模式的に示した図である。

    内部状態管理部104と他の機能モジュールとの通信経路を模式的に示した図である。

    内部状態管理部104が時間変化に伴って内部状態を変化させるための仕組みを示した図である。

    内部状態管理部104がロボットの動作実行に伴って内部状態を変化させるための仕組みを示した図である。

    内部状態管理部104が外部環境の認識結果により内部状態を変化させるための仕組みを示した図である。

    内部状態管理部104が連想記憶により内部状態を変化させるための仕組みを示した図である。

    内部状態管理部104が生得的反射行動により内部状態を変化させるための仕組みを示した図である。

    スキーマと内部状態管理部との関係を模式的に示した図である。

    Motivation算出クラス・オブジェクトによるMotivation算出経路を模式的に示した図である。

    対象物が存在するときのMotivation算出処理のメカニズムを模式的に示した図である。

    対象物が存在しないときのMotivation算出処理のメカニズムを模式的に示した図である。

    Pleasantnessの変更方法を示した図である。

    Activityの変更方法を示した図である。

    Certaintyの変更方法を示した図である。

    Certaintyを求めるためのメカニズムを示した図である。

    ResourceManagerの構成を示した図である。

    SituatedBehaviorLayerからReflexiveBehaviorlayerへの制御を模式的に示した図である。

    DeliberativeLayerからSituatedBehaviorLayerへの制御を模式的に示した図である。

    図54は、ロボット装置1の行動制御システムの他の構成例を示した図である。

    図55は、状況依存行動階層108の内部構成例を示した図である。

    図56は、行動価値算出部220が内部状態及び外部刺激から行動価値ALを算出する処理の流れを示した図である。

    図57は、反射イベント密度REDが反射イベントの発生に応じて変化する様子を例示した図である。

    図58は、反射イベント密度REDを用いてm

    iが選択される確率Pm

    iの例を示した図である。

    図59は、バッテリ残量が中程度で、外界からクラップを認識したときの行動調停例を示した図である。

    図60は、バッテリ残量が少程度で、クラップを認識したときの行動調停例を示した図である。

    図61は、バッテリ残量が十分で、外界からクラップを認識したときの行動調停例を示した図である。

    図62は、バッテリ残量が十分で、外界からクラップを認識したときの行動調停例を示した図である。

    符号の説明

    1…ロボット装置 15…CCDカメラ 16…マイクロフォン 17…スピーカ 18…タッチセンサ 19…LEDインジケータ 20…制御部 21…CPU
    22…RAM
    23…ROM
    24…不揮発メモリ 25…インターフェース 26…無線通信インターフェース 27…ネットワーク・インターフェース・カード 28…バス 29…キーボード 40…入出力部 50…駆動部 51…モータ 52…エンコーダ 53…ドライバ 100…行動制御システム 101…視覚認識機能部 102…聴覚認識機能部 103…接触認識機能部 105…短期記憶部 106…長期記憶部 107…熟考行動階層 108…状況依存行動階層 109…反射行動部 220…行動価値算出部 230…行動選択部 240…学習部

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈