JP3558222B2 - Robot behavior control system and behavior control method, and robot device - Google Patents
Robot behavior control system and behavior control method, and robot deviceInfo
- Publication number
- JP3558222B2 JP3558222B2 JP2003072844A JP2003072844A JP3558222B2 JP 3558222 B2 JP3558222 B2 JP 3558222B2 JP 2003072844 A JP2003072844 A JP 2003072844A JP 2003072844 A JP2003072844 A JP 2003072844A JP 3558222 B2 JP3558222 B2 JP 3558222B2
- Authority
- JP
- Japan
- Prior art keywords
- behavior
- action
- robot
- state
- internal state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Manipulator (AREA)
- Feedback Control In General (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、自律的な動作を行ないユーザとのリアリスティックなコミュニケーションを実現するロボットの行動制御システム及び行動制御方法、並びにロボット装置に係り、特に、視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況を統合的に判断して適当な行動を選択する状況依存行動型のロボットのための行動制御システム及び行動制御方法、並びにロボット装置に関する。
【0002】
【従来の技術】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置のことを「ロボット」という。ロボットの語源は、スラブ語の”ROBOTA(奴隷機械)”に由来すると言われている。わが国では、ロボットが普及し始めたのは1960年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット(industrial robot)であった。
【0003】
最近では、イヌやネコ、クマのように4足歩行の動物の身体メカニズムやその動作を模したペット型ロボット、あるいは、ヒトやサルなどの2足直立歩行を行なう動物の身体メカニズムや動作を模した「人間形」若しくは「人間型」のロボット(humanoid robot)など、脚式移動ロボットの構造やその安定歩行制御に関する研究開発が進展し、実用化への期待も高まってきている。これら脚式移動ロボットは、クローラ式ロボットに比し不安定で姿勢制御や歩行制御が難しくなるが、階段の昇降や障害物の乗り越えなど、柔軟な歩行・走行動作を実現できるという点で優れている。
【0004】
脚式移動ロボットの用途の1つとして、産業活動・生産活動等における各種の難作業の代行が挙げられる。例えば、原子力発電プラントや火力発電プラント、石油化学プラントにおけるメンテナンス作業、製造工場における部品の搬送・組立作業、高層ビルにおける清掃、火災現場その他における救助といったような危険作業・難作業の代行などである。
【0005】
また、脚式移動ロボットの他の用途として、上述の作業支援というよりも、生活密着型、すなわち人間との「共生」あるいは「エンターティンメント」という用途が挙げられる。この種のロボットは、ヒトあるいはイヌ(ペット)、クマなどの比較的知性の高い脚式歩行動物の動作メカニズムや四肢を利用した豊かな感情表現を忠実に再現する。また、あらかじめ入力された動作パターンを単に忠実に実行するだけではなく、ユーザ(あるいは他のロボット)から受ける言葉や態度(「褒める」とか「叱る」、「叩く」など)に対して動的に対応した、生き生きとした応答表現を実現することも要求される。
【0006】
従来の玩具機械は、ユーザ操作と応答動作との関係が固定的であり、玩具の動作をユーザの好みに合わせて変更することはできない。この結果、ユーザは同じ動作しか繰り返さない玩具をやがては飽きてしまうことになる。これに対し、インテリジェントなロボットは、対話や機体動作などからなる行動を自律的に選択することから、より高度な知的レベルでリアリスティックなコミュニケーションを実現することが可能となる。この結果、ユーザはロボットに対して深い愛着や親しみを感じる。
【0007】
ロボットあるいはその他のリアリスティックな対話システムでは、視覚や聴覚など外部環境の変化に応じて逐次的に行動を選択していくのが一般的である。また、行動選択メカニズムの他の例として、本能や感情といった情動をモデル化してシステムの内部状態を管理して、内部状態の変化に応じて行動を選択するものを挙げることができる。勿論、システムの内部状態は、外部環境の変化によっても変化するし、選択された行動を発現することによっても変化する。
【0008】
しかしながら、これら外部環境や内部状態などのロボットが置かれている状況を統合的に判断して行動を選択するという、状況依存型の行動制御に関しては例は少ない。
【0009】
ここで、内部状態には、例えば生体で言えば大脳辺縁系へのアクセスに相当する本能のような要素や、大脳新皮質へのアクセスに相当する内発的欲求や社会的欲求などのように動物行動学的モデルで捉えられる要素、さらには喜びや悲しみ、怒り、驚きなどのような感情と呼ばれる要素などで構成される。
【0010】
従来のインテリジェント・ロボットやその他の自律対話型ロボットにおいては、本能や感情などさまざまな要因からなる内部状態をすべて「情動」としてまとめて1次元的に内部状態を管理していた。すなわち、内部状態を構成する各要素はそれぞれ並列に存在しており、明確な選択基準のないまま外界の状況や内部状態のみで行動が選択されていた。
【0011】
従来のシステムでは、その動作の選択及び発現は1次元の中にすべての行動が存在し、どれを選択するかを決定していた。このため、動作が多くなるにつれてその選択は煩雑になり、そのときの状況や内部状態を反映した行動選択を行なうことがより難しくなる。
【0012】
【発明が解決しようとする課題】
本発明の目的は、自律的な動作を行ないリアリスティックなコミュニケーションを実現することができる、優れたロボットの行動制御システム及び行動制御方法、並びにロボット装置を提供することにある。
【0013】
本発明のさらなる目的は、視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況を統合的に判断して行動を選択することができる、優れたロボットの行動制御システム及び行動制御方法、並びにロボット装置を提供することにある。
【0014】
本発明のさらなる目的は、情動についての存在意義をより明確にして、一定の秩序の下で外部刺激や内部状態に応じた行動を好適に選択し実行することができる、優れたロボットの行動制御システム及び行動制御方法、並びにロボット装置を提供することにある。
【0015】
本発明のさらなる目的は、視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況を統合的に判断して行動を選択することができる、優れたロボットの行動制御システム及び行動制御方法、並びにロボット装置を提供することにある。
【0016】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、自律的に動作するロボットのための行動制御システムであって、
ロボットの機体動作を記述する複数の行動記述部と、
機体の外部環境を認識する外部環境認識部と、
認識された外部環境及び/又は行動の実行結果に応じたロボットの内部状態を管理する内部状態管理部と、
外部環境及び/又は内部状態に応じて前記の各行動記述部に記述された行動の実行を評価する行動評価部と、
を具備することを特徴とするロボットの行動制御システムである。
【0017】
但し、ここで言う「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【0018】
前記外部環境認識部は、外部の視覚認識、外部で発生する音声認識、外部から印加された接触認識のうち少なくとも1つを行なう。また、前記内部状態管理部は、ロボットの本能モデル及び/又は感情モデルを管理する。
【0019】
前記行動記述部は、複数の行動記述部が機体動作の実現レベルに応じた木構造形式に構成することができる。この木構造は、動物行動学的(Ethological)な状況依存行動を数式化した行動モデルや、感情表現を実行するための枝など、複数の枝を含んでいる。例えば、ルート行動記述部の直近下位の階層では、「探索する(Investigate)」、「食べる(Ingestive)」、「遊ぶ(Play)」という行動記述部が配設される。そして、「探索する(Investigate)」の下位には、「InvestigativeLocomotion」、「HeadinAirSniffing」、「InvestigativeSniffing」というより具体的な探索行動を記述した行動記述部が配設されている。同様に、行動記述部「食べる(Ingestive)」の下位には「Eat」や「Drink」などのより具体的な飲食行動を記述した行動記述部が配設され、行動記述部「遊ぶ(Play)」の下位には「PlayBowing」、「PlayGreeting」、「PlayPawing」などのより具体的な遊ぶ行動を記述した行動記述部が配設されている。
【0020】
このような場合、前記行動評価部は該木構造の上から下に向かって複数の行動記述部を同時並行的に評価することができる。また、前記外部環境認識部による新規認識及び/又は前記内部状態管理部による内部状態の変化に応答して、前記行動評価部による前記の各行動記述部の評価を実行して、木構造を上から下に向かって評価結果としての実行許可を渡していくことにより、外部環境や内部状態の変化に応じた適当な行動を選択的に実行することができる。すなわち、状況依存の行動の評価並びに実行をConcurrentに行なうことができる。
【0021】
また、複数の行動記述部に記述された行動を同時実行するときの機体上の資源の競合を管理する資源管理部をさらに備えていてもよい。このような場合、前記行動選択部は、資源の競合が調停されていることを前提に、2以上の行動記述部を同時に選択することができる。
【0022】
また、前記外部環境認識部による新規認識により前記行動評価部による前記の各行動記述部の評価を実行した結果、現在実行中の行動よりも高い評価値を得た行動記述部が出現した場合、前記行動選択部は、現在実行中の行動を停止して、評価値がより高い行動記述部に記述された行動を優先的に実行するようにしてもよい。したがって、反射行動のようにより重要度や緊急性の高い行動を、既に実行中の状況依存行動に割り込んで、優先的に実行することができる。このような場合、該優先的に実行した行動が終了した後、一旦停止された行動を再開させることが好ましい。
【0023】
また、前記行動選択部は、異なる外部環境の変化に応じて同一の行動記述部を逐次選択するようにしてもよい。このような場合、前記行動記述部に記述された行動を実行する度に外部環境毎に個別の作業空間を割り当てるようにする。
【0024】
例えば、人物Aとの対話という行動を実行中に、人物Bがロボットと人物Aとの対話に割り込み、外部刺激と内部状態の変化に基づく活動度レベルの評価を行なった結果、Bとの対話を行なう行動の方がより優先度が高くなると、Bとの対話が割り込まれる。
【0025】
このような場合、A又はBのいずれとの対話も同じ行動記述部に従って対話を行なうが、Aとの対話を行なう行動とは別に、Bとの対話を行なう行動のための作業空間を割り当てることにより、対話内容の干渉を防ぐ。すなわち、Bとの対話によりAとの対話内容が破壊されずに済むので、Bとの対話が終了すると、Aとの対話を中断した時点から再開することができる。
【0026】
また、本発明の第2の側面は、内部状態に応じて自律的に動作するロボットの行動制御システム又は行動制御方法であって、
内部状態の指標である情動を複数の階層構造にして管理する内部状態管理部又はステップと、
各階層の情動を満たす行動を選択的に実行する行動選択部又はステップと、
を特徴とするロボットの行動制御システム又は行動制御方法である。
【0027】
ここで、前記内部状態管理部又はステップは、個体存続のために必要な1次情動と、該1次情動の過不足により変化する2次情動という段階毎に階層化するとともに、該1次情動を生得的反射や生理的な階層から連想に至るまで次元により階層化するようにしてもよい。
【0028】
そして、前記行動選択部又はステップは、より低次の1次情動を満たす行動を優先的に選択するようにしてもよい。あるいは、前記行動選択部又はステップは、より高次の1次情動が低次の1次情動に比し著しく不足している場合には、低次の1次情動を満たす行動の選択を抑制するようにしてもよい。
【0029】
本発明の第2の側面に係るロボットの行動制御システム又は行動制御方法によれば、情動についてその存在意義による複数階層化を行ない、それぞれの階層で動作を決定する。決定された複数の動作から、そのときの外部刺激や内部状態によってどの動作を行なうかを決定する。それぞれの階層で行動は選択されるが、その実施される順番はロボットの内部状態の優先順位に基づくので、より低次の行動から優先的に動作を発現していくことにより、反射などの本能的行動や、記憶を用いた動作選択などの高次の行動を1つの個体上で矛盾なく発現することができる。また、行動をカテゴライズして、スキーマとして作成する際も明確な指標となる。
【0030】
本発明の第2の側面に係るロボットの行動制御システム又は行動制御方法は、ロボットの外部環境の変化を認識する外部環境認識部をさらに備えていてもよい。このような場合、前記行動選択部又はステップは、内部状態の指標に加え、外部環境の指標を基に行動を選択することができる。
【0031】
また、前記内部状態管理部ステップは、バイオリズムなどを利用して、時間経過に応じて内部状態の指標を変更するようにしてもよい。
【0032】
また、前記内部状態管理部又はステップは、行動選択部において選択された行動の実行に応じて、すなわち動作の程度に応じて内部状態の指標を変更するようにしてもよい。
【0033】
また、前記内部状態管理部又はステップは、外部環境の変化に応じて内部状態の指標を変更するようにしてもよい。
【0034】
また、本発明の第2の側面に係るロボットの行動制御システム又は行動制御方法は、外部環境から内部状態の変化を連想記憶する連想記憶部又はステップをさらに備えていてもよい。このような場合、前記内部状態管理部又はステップは、前記連想記憶部又はステップが外部環境から想起した内部環境の変化を基に内部状態の指標を変更するようにしてもよい。また、前記連想記憶部又はステップは前記外部環境認識される対象物毎に内部状態の変化を連想記憶するようにしてもよい。
【0035】
従来のロボットにおける動作の選択や発現は、基本的には、対象物までの物理的距離や、そのときのロボットの内部状態によって決定されており、言い換えれば、対象物の相違によりどのような行動をとるか、といった行動選択は行なわれていない。
【0036】
これに対し、本発明の第2の側面に係るロボットの行動制御システム又は行動制御方法によれば、連想記憶を用いることにより、対象物毎に異なる内部状態の変化を想起することができるので、同じ状況でもその行動の発現し易さを異ならせることができる。すなわち、外部の刺激や物理的状況、現在の内部状態に加え、ロボットの対象物ごとの記憶を考慮して行動を選択することができ、より多彩で多様化した対応を実現することができる。
【0037】
例えば、「○○が見えているから××する」とか、「現在○○が不足だから(何に対しても)××する」などの外部環境又は内部状態によって決まった行動をするのではなく、「○○が見えても△△なので□□する」とか、「○○が見えているけど××なので■■する」など、対象物に関する内部状態の変化記憶を用いることにより、行動にバリエーションを付けることができる。
【0038】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0039】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0040】
A.ロボット装置の構成
図1には、本発明に実施に供されるロボット装置1の機能構成を模式的に示している。同図に示すように、ロボット装置1は、全体の動作の統括的制御やその他のデータ処理を行なう制御ユニット20と、入出力部40と、駆動部50と、電源部60とで構成される。以下、各部について説明する。
【0041】
入出力部40は、入力部としてロボット装置1の目に相当するCCDカメラ15や、耳に相当するマイクロフォン16、頭部や背中などの部位に配設されてユーザの接触を感知するタッチ・センサ18、あるいは五感に相当するその他の各種のセンサを含む。また、出力部として、口に相当するスピーカ17、あるいは点滅の組み合わせや点灯のタイミングにより顔の表情を形成するLEDインジケータ(目ランプ)19などを装備している。これら出力部は、音声やランプの点滅など、脚などによる機械運動パターン以外の形式でもロボット装置1からのユーザ・フィードバックを表現することができる。
【0042】
駆動部50は、制御部20が指令する所定の運動パターンに従ってロボット装置1の機体動作を実現する機能ブロックであり、行動制御による制御対象である。駆動部50は、ロボット装置1の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール、ピッチ、ヨーなど各軸毎に設けられた複数の駆動ユニットで構成される。各駆動ユニットは、所定軸回りの回転動作を行なうモータ51と、モータ51の回転位置を検出するエンコーダ52と、エンコーダ52の出力に基づいてモータ51の回転位置や回転速度を適応的に制御するドライバ53の組み合わせで構成される。
【0043】
駆動ユニットの組み合わせ方によって、ロボット装置1を例えば2足歩行又は4足歩行などの脚式移動ロボットとして構成することができる。
【0044】
電源部60は、その字義通り、ロボット装置1内の各電気回路などに対して給電を行なう機能モジュールである。本実施形態に係るロボット装置1は、バッテリを用いた自律駆動式であり、電源部60は、充電バッテリ61と、充電バッテリ61の充放電状態を管理する充放電制御部62とで構成される。
【0045】
充電バッテリ61は、例えば、複数本のリチウムイオン2次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【0046】
また、充放電制御部62は、バッテリ61の端子電圧や充電/放電電流量、バッテリ61の周囲温度などを測定することでバッテリ61の残存容量を把握し、充電の開始時期や終了時期などを決定する。充放電制御部62が決定する充電の開始及び終了時期は制御ユニット20に通知され、ロボット装置1が充電オペレーションを開始及び終了するためのトリガとなる。
【0047】
制御ユニット20は、「頭脳」に相当し、例えばロボット装置1の機体頭部あるいは胴体部に搭載されている。
【0048】
図2には、制御ユニット20の構成をさらに詳細に図解している。同図に示すように、制御ユニット20は、メイン・コントローラとしてのCPU(Central Processing Unit)21が、メモリやその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。バス27は、データ・バス、アドレス・バス、コントロール・バスなどを含む共通信号伝送路である。バス27上の各装置にはそれぞれに固有のアドレス(メモリ・アドレス又はI/Oアドレス)が割り当てられている。CPU21は、アドレスを指定することによってバス28上の特定の装置と通信することができる。
【0049】
RAM(Random Access Memory)22は、DRAM(Dynamic RAM)などの揮発性メモリで構成された書き込み可能メモリであり、CPU21が実行するプログラム・コードをロードしたり、実行プログラムによる作業データの一時的な保存のために使用される。
【0050】
ROM(Read Only Memory)23は、プログラムやデータを恒久的に格納する読み出し専用メモリである。ROM23に格納されるプログラム・コードには、ロボット装置1の電源投入時に実行する自己診断テスト・プログラムや、ロボット装置1の動作を規定する動作制御プログラムなどが挙げられる。
【0051】
ロボット装置1の制御プログラムには、カメラ15やマイクロフォン16などのセンサ入力を処理してシンボルとして認識する「センサ入力・認識処理プログラム」、短期記憶や長期記憶などの記憶動作(後述)を司りながらセンサ入力と所定の行動制御モデルとに基づいてロボット装置1の行動を制御する「行動制御プログラム」、行動制御モデルに従って各関節モータの駆動やスピーカ17の音声出力などを制御する「駆動制御プログラム」などが含まれる。
【0052】
不揮発性メモリ24は、例えばEEPROM(Electrically Erasable and Programmable ROM)のように電気的に消去再書き込みが可能なメモリ素子で構成され、逐次更新すべきデータを不揮発的に保持するために使用される。逐次更新すべきデータには、暗号鍵やその他のセキュリティ情報、出荷後にインストールすべき装置制御プログラムなどが挙げられる。
【0053】
インターフェース25は、制御ユニット20外の機器と相互接続し、データ交換を可能にするための装置である。インターフェース25は、例えば、カメラ15やマイクロフォン16、スピーカ17との間でデータ入出力を行なう。また、インターフェース25は、駆動部50内の各ドライバ53−1…との間でデータやコマンドの入出力を行なう。
【0054】
また、インターフェース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カードやメモリ・スティックを受容するメモリ・カード・インターフェース(カード・スロット)などのような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続された外部機器との間でプログラムやデータの移動を行なうようにしてもよい。
【0055】
また、インターフェース25の他の例として、赤外線通信(IrDA)インターフェースを備え、外部機器と無線通信を行なうようにしてもよい。
さらに、制御ユニット20は、無線通信インターフェース26やネットワーク・インターフェース・カード(NIC)27などを含み、Bluetoothのような近接無線データ通信や、IEEE 802.11bのような無線ネットワーク、あるいはインターネットなどの広域ネットワークを経由して、外部のさまざまなホスト・コンピュータとデータ通信を行なうことができる。
【0056】
このようなロボット装置1とホスト・コンピュータ間におけるデータ通信により、遠隔のコンピュータ資源を用いて、ロボット装置1の複雑な動作制御を演算したり、リモート・コントロールすることができる。
【0057】
B.ロボット装置の行動制御システム
図3には、本発明の実施形態に係るロボット装置1の行動制御システム100の機能構成を模式的に示している。ロボット装置1は、外部刺激の認識結果や内部状態の変化に応じて行動制御を行なうことができる。さらには、長期記憶機能を備え、外部刺激から内部状態の変化を連想記憶することにより、外部刺激の認識結果や内部状態の変化に応じて行動制御を行なうことができる。
【0058】
図示の行動制御システム100にはオブジェクト指向プログラミングを採り入れて実装することができる。この場合、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとInvokeを行なうことができる。
【0059】
行動制御システム100は、外部環境(Environments)を認識するために、視覚認識機能部101と、聴覚認識機能部102と、接触認識機能部103を備えている。
【0060】
視覚認識機能部(Video)51は、例えば、CCD(Charge Coupled Device:電荷結合素子)カメラのような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識などの画像認識処理や特徴抽出を行なう。視覚認識機能部51は、後述する”MultiColorTracker”,”FaceDetector”,”FaceIdentify”といった複数のオブジェクトで構成される。
【0061】
聴覚認識機能部(Audio)52は、マイクなどの音声入力装置を介して入力される音声データを音声認識して、特徴抽出したり、単語セット(テキスト)認識を行ったりする。聴覚認識機能部52は、後述する”AudioRecog”,”AuthurDecoder”といった複数のオブジェクトで構成される。
接触認識機能部(Tactile)53は、例えば機体の頭部などに内蔵された接触センサによるセンサ信号を認識して、「なでられた」とか「叩かれた」という外部刺激を認識する。
【0062】
内部状態管理部(ISM:Internal Status Manager)104は、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の視覚認識機能部101と、聴覚認識機能部102と、接触認識機能部103によって認識された外部刺激(ES:ExternalStimula)に応じてロボット装置1の本能や情動といった内部状態を管理する。
【0063】
感情モデルと本能モデルは、それぞれ認識結果と行動履歴を入力に持ち、感情値と本能値を管理している。行動モデルは、これら感情値や本能値を参照することができる。
【0064】
本実施形態では、情動についてその存在意義による複数階層で構成され、それぞれの階層で動作する。決定された複数の動作から、そのときの外部環境や内部状態によってどの動作を行なうかを決定するようになっている(後述)。また、それぞれの階層で行動は選択されるが、より低次の行動から優先的に動作を発現していくことにより、反射などの本能的行動や、記憶を用いた動作選択などの高次の行動を1つの個体上で矛盾なく発現することができる。
【0065】
本実施形態に係るロボット装置1は、外部刺激の認識結果や内部状態の変化に応じて行動制御を行なうために、時間の経過とともに失われる短期的な記憶を行なう短期記憶部105と、情報を比較的長期間保持するための長期記憶部106を備えている。短期記憶と長期記憶という記憶メカニズムの分類は神経心理学に依拠する。
【0066】
短期記憶部(ShortTermMemory)105は、上述の視覚認識機能部101と、聴覚認識機能部102と、接触認識機能部103によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。例えば、カメラ15からの入力画像を約15秒程度の短い期間だけ記憶する。
【0067】
長期記憶部(LongTermMemory)106は、物の名前など学習により得られた情報を長期間保持するために使用される。長期記憶部106は、例えば、ある行動モジュールにおいて外部刺激から内部状態の変化を連想記憶することができる。
【0068】
また、本実施形態に係るロボット装置1の行動制御は、反射行動部109によって実現される「反射行動」と、状況依存行動階層108によって実現される「状況依存行動」と、熟考行動階層107によって実現される「熟考行動」に大別される。
【0069】
反射的行動部(ReflexiveSituatedBehaviorsLayer)109は、上述の視覚認識機能部101と、聴覚認識機能部102と、接触認識機能部103によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。
【0070】
反射行動とは、基本的に、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動を直接決定する行動のことである。例えば、人間の顔を追いかけたり、うなずくといった振る舞いは反射行動として実装することが好ましい。
【0071】
状況依存行動階層(SituatedBehaviorsLayer)108は、短期記憶部105並びに長期記憶部106の記憶内容や、内部状態管理部104によって管理される内部状態を基に、ロボット装置1が現在置かれている状況に即応した行動を制御する。
【0072】
状況依存行動階層108は、各行動毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。また、状況依存行動階層108は、内部状態をある範囲に保つための行動(「ホメオスタシス行動」とも呼ぶ)も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出現し易くなるようにその行動を活性化させる(実際には、内部状態と外部環境の両方を考慮した形で行動が選択される)。状況依存行動は、反射行動に比し、反応時間が遅い。
【0073】
熟考行動階層(DeliberativeLayer)107は、短期記憶部105並びに長期記憶部106の記憶内容に基づいて、ロボット装置1の比較的長期にわたる行動計画などを行なう。
【0074】
熟考行動とは、与えられた状況あるいは人間からの命令により、推論やそれを実現するための計画を立てて行なわれる行動のことである。例えば、ロボットの位置と目標の位置から経路を探索することは熟考行動に相当する。このような推論や計画は、ロボット装置1がインタラクションを保つための反応時間よりも処理時間や計算負荷を要する(すなわち処理時間がかかる)可能性があるので、上記の反射行動や状況依存行動がリアルタイムで反応を返しながら、熟考行動は推論や計画を行なう。
【0075】
熟考行動階層107や状況依存行動階層108、反射行動部109は、ロボット装置1のハードウェア構成に非依存の上位のアプリケーション・プログラムとして記述することができる。これに対し、ハードウェア依存層制御部(ConfigurationDependentActionsAndReactions)110は、これら上位アプリケーション(「スキーマ」と呼ばれる行動モジュール)からの命令に応じて、関節アクチュエータの駆動などの機体のハードウェア(外部環境)を直接操作する。
【0076】
C.ロボット装置の記憶メカニズム
上述したように、本実施形態に係るロボット装置1は、短期記憶部105と長期記憶部106を備えているが、このような記憶メカニズムは、神経心理学に依拠する。
【0077】
短期記憶は、字義通り短期的な記憶であり、時間の経過とともに失われる。短期記憶は、例えば、視覚や聴覚、接触など、外部環境から認識されたターゲットやイベントを短期間保持するために使用することができる。
【0078】
短期記憶は、さらに、感覚情報(すなわちセンサからの出力)をそのままの信号で1秒程度保持する「感覚記憶」と、感覚記憶をエンコードして限られた容量で短期的に記憶する「直接記憶」と、状況変化や文脈を数時間に渡って記憶する「作業記憶」に分類することができる。直接記憶は、神経心理学的な研究によれば7±2チャンクであると言われている。また、作業記憶は、短期記憶と長期記憶との対比で、「中間記憶」とも呼ばれる。
【0079】
また、長期記憶は、物の名前など学習により得られた情報を長期間保持するために使用される。同じパターンを統計的に処理して、ロバストな記憶にすることができる。
【0080】
長期記憶はさらに「宣言的知識記憶」と「手続的知識記憶」に分類される。宣言的知識記憶は、場面(例えば教えられたときのシーン)に関する記憶である「エピソード記憶」と、言葉の意味や常識といった記憶からなる「意味記憶」からなる。また、手続的知識記憶は、宣言的知識記憶をどのように使うかといった手順記憶であり、入力パターンに対する動作の獲得に用いることができる。
【0081】
C−1.短期記憶部
短期記憶部105は、自分の周りに存在する物体、あるいはイベントを表現、記憶し、それに基づいてロボットが行動することを目的とした機能モジュールである。視覚や聴覚などのセンサ情報を基に物体やイベントの位置を自己中心座標系上に配置していくが、視野外の物体などを記憶し、それに対する行動などを生じさせることができる。
【0082】
例えば、ある人物Aと会話していて、別の人物Bに声をかられたとき、Aの位置や会話内容を保持しながらBとの会話を行ない、終了後Aとの会話に戻る場合などに短期記憶の機能が必要となる。但し、あまり複雑な処理による統合を行なわずに、時間と空間で近いセンサ情報を同じ物体からの信号とみなすといった時空間の簡単な近さによる統合を行なう。
【0083】
また、ステレオ視覚などの技術を用いてパターン認識で判別可能な物体以外の物体の位置を記憶するために、自己中心座標系上に配置する。床面検出とともに利用して、障害物の位置を確率的に記憶するなどに利用することができる。
【0084】
本実施形態では、短期記憶部105は、上述した視覚認識機能部101、聴覚認識機能部102、接触認識機能部103などの複数の認識器の結果からなる外部刺激を時間的及び空間的に整合性を保つように統合して、外部環境下の各物体に関する知覚を短期間の記憶として状況依存行動階層(SBL)108などの行動制御モジュールに提供する。
【0085】
したがって、上位モジュールとして構成される行動制御モジュール側では、外界からの複数の認識結果を統合して意味を持ったシンボル情報として扱い、高度な行動制御を行なうことができる。また、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているかや、この声がどの人物の声なのかなどを解くことができる。
【0086】
また、認識した観測結果に関する情報を記憶として短期記憶部55が保持しているので、自律行動する期間中に一時的に観測結果が来なかったりした場合であっても、機体の行動制御を行なうアプリケーションなどの上位モジュールからは常にそこに物体が知覚されているように見えるようにすることができる。例えば、センサの視野外の情報もすぐに忘れることなく保持しているので、ロボットが物体を一旦見失ったとしても、また後で探し出すことができる。この結果、認識器の間違いやセンサのノイズに強くなり、認識器の通知のタイミングに依存しない安定したシステムを実現することができる。また、認識器単体から見て情報が足りなくても、他の認識結果が補うことができる場合があるので、システム全体としての認識性能が向上する。
【0087】
また、関連する認識結果が結び付けられているので、アプリケーションなどの上位モジュールで関連する情報を使って行動判断することが可能である。例えば、ロボット装置は、呼び掛けられた声を基に、その人物の名前を引き出すことができる。この結果、挨拶の応答に「こんにちは、XXXさん。」のように答えるなどのリアクションが可能である。
【0088】
図4には、図3に示した行動制御システム100における外部刺激に応じた状況依存行動制御のメカニズムを図解している。外部刺激は、認識系の機能モジュール101〜103によってシステムに取り込まれるとともに、短期記憶部(STM)105を介して状況依存行動階層(SBL)108に与えられる。図示の通り、認識系の各機能モジュール101〜103や、短期記憶部(STM)105、状況依存行動階層(SBL)108はオブジェクトとして構成されている。
【0089】
同図において、丸で表されているのが、「オブジェクト」又は「プロセス」と呼ばれるエンティティである。オブジェクト同士が非同期に通信し合うことで、システム全体が動作する。各オブジェクトはメッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとInvokeを行なっている。以下に、各オブジェクトの機能について説明する。
【0090】
AudioRecog:
マイクなどの音声入力装置からの音声データを受け取って、特徴抽出と音声区間検出を行なうオブジェクトである。また、マイクがステレオである場合には、水平方向の音源方向推定を行なうことができる。音声区間であると判断されると、その区間の音声データの特徴量及び音源方向がArtherDecoder(後述)に送られる。
【0091】
SpeechRecog:
AudioRecogから受け取った音声特徴量と音声辞書及び構文辞書を使って音声認識を行なうオブジェクトである。認識された単語のセットは短期記憶部(ShortTermMemory)105に送られる。
【0092】
MultiColorTracker:
色認識を行なうオブジェクトであり、カメラなどの画像入力装置から画像データを受け取り、あらかじめ持っている複数のカラー・モデルに基づいて色領域を抽出し、連続した領域に分割する。分割された各領域の位置や大きさ、特徴量などの情報を出力して、短期記憶部(ShortTermMemory)105へ送る。
【0093】
FaceDetector:
画像フレーム中から顔領域を検出するオブジェクトであり、カメラなどの画像入力装置から画像データを受け取り、それを9段階のスケール画像に縮小変換する。このすべての画像の中から顔に相当する矩形領域を探索する。重なりあった候補領域を削減して最終的に顔と判断された領域に関する位置や大きさ、特徴量などの情報を出力して、FaceIdentify(後述)へ送る。
【0094】
FaceIdentify:
検出された顔画像を識別するオブジェクトであり、顔の領域を示す矩形領域画像をFaceDetectorから受け取り、この顔画像が手持ちの人物辞書のうちでどの人物に相当するかを比較して人物の識別を行なう。この場合、顔検出から顔画像を受け取り、顔画像領域の位置、大きさ情報とともに人物のID情報を出力する。
【0095】
ShortTermMemory(短期記憶部):
ロボット1の外部環境に関する情報を比較的短い時間だけ保持するオブジェクトであり、SpeechRecogから音声認識結果(単語、音源方向、確信度)を受け取り、MultiColorTrackerから肌色の領域の位置、大きさと顔領域の位置、大きさを受け取り、FaceIdentifyから人物のID情報等を受け取る。また、ロボット1の機体上の各センサからロボットの首の方向(関節角)を受け取る。そして、これらの認識結果やセンサ出力を統合的に使って、現在どこにどの人物がいて、しゃべった言葉がどの人物のものであり、その人物とはこれまでにどんな対話を行なったのかという情報を保存する。こうした物体すなわちターゲットに関する物理情報と時間方向でみたイベント(履歴)を出力として、状況依存行動階層(SBL)などの上位モジュールに渡す。
【0096】
SituatedBehaviorLayer(状況依存行動階層):
上述のShortTermMemory(短期記憶部)からの情報を基にロボット1の行動(状況に依存した行動)を決定するオブジェクトである。複数の行動を同時に評価したり、実行したりすることができる。また、行動を切り替えて機体をスリープ状態にしておき、別の行動を起動することができる。
【0097】
ResourceManager:
出力用のコマンドに対してロボット1の各ハードウェアのリソース調停を行なうオブジェクトである。図4に示す例では、音声出力用のスピーカをコントロールするオブジェクトと首のモーション・コントロールするオブジェクトのリソース調停を行なう。
【0098】
SoundPerformerTTS:
音声出力を行なうためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerから与えられたテキスト・コマンドに応じて音声合成を行ない、ロボット1の機体上のスピーカから音声出力を行なう。
【0099】
HeadMotionGenerator:
ResourceManager経由でSituatedBehaviorLayerから首を動かすコマンドを受けたことに応答して、首の関節角を計算するオブジェクトである。「追跡」のコマンドを受けたときには、ShortTermMemoryから受け取った物体の位置情報を基に、その物体が存在する方向を向く首の関節角を計算して出力する。
【0100】
短期記憶部105は、ターゲット・メモリとイベント・メモリという2種類のメモリ・オブジェクトで構成される。
【0101】
ターゲット・メモリは、各認識機能部101〜103からの情報を統合して、現在知覚している物体に関する情報すなわちターゲットを保持している。このため、対象物体がいなくなったり現れたりすることで、該当するターゲットを記憶領域から削除したり(GarbageCollector)、新たに生成したりする。また、1つのターゲットを複数の認識属性で表現することができる(TargetAssociate)。例えば、肌色で顔のパターンで声を発する物体(人間の顔)などである。
【0102】
ターゲット・メモリで保持される物体(ターゲット)の位置や姿勢情報は、それぞれの認識機能部51〜53において使用されるセンサ座標系ではなく、ロボット1の体幹などの機体上の特定の部位が所定の場所に固定されたワールド座標系で表現を行なうようにしている。このため、短期記憶部(STM)105では、ロボット1の各関節の現在値(センサ出力)を常に監視して、センサ座標系からこの固定座標系への変換を行なう。これにより、各認識機能部101〜103の情報を統合することが可能になる。例えば、ロボット100が首などを動かしてセンサの姿勢が変化しても、状況依存行動階層(SBL)などの行動制御モジュールから見た物体の位置は同じままであるので、ターゲットの取り扱いが容易になる。
【0103】
また、イベント・メモリは、外部環境下で発生した過去から現在までのイベントを時系列的に格納するオブジェクトである。イベント・メモリにおいて扱われるイベントとして、ターゲットの出現と消失、音声認識単語、自己の行動や姿勢の変化などの外界の状況の変化に関する情報を挙げることができる。
【0104】
イベントの中には、あるターゲットに関する状態変化が含まれている。このため、イベント情報として該当するターゲットのIDを含めることで、発生したイベントに関するより詳しい情報を、上述のターゲット・メモリから検索することも可能である。
【0105】
図5及び図6には、各認識機能部101〜103における認識結果に基づいて、短期記憶部105内のターゲット・メモリ及びイベント・メモリに入る情報の流れをそれぞれ示している。
【0106】
図5に示すように、短期記憶部105(STMオブジェクト)内には、外部環境からターゲットを検出するターゲット検出器が設けられている。このターゲット検出器は、声認識結果や顔認識結果、色認識結果などの各認識機能部101〜103による認識結果を基に、新規ターゲットを追加したり、既存のターゲットを認識結果に反映するように更新したりする。検出されたターゲットは、ターゲット・メモリ内に保持される。
【0107】
また、ターゲット・メモリには、もはや観測されなくなったターゲットを探して消去するガーベッジ・コレクタ(GarbageCollector)や、複数のターゲットの関連性を判別して同じターゲットに結び付けるターゲット・アソシエート(TargetAssociate)などの機能がある。ガーベッジ・コレクタは、時間の経過に従ってターゲットの確信度をデクリメントしていき、確信度が所定値を下回ったターゲットを削除(delete)することで実現される。また、ターゲット・アソシエートは、同じ属性(認識タイプ)の特徴量が近いターゲット間で空間的・時間的な近さを持つことで、同じターゲットを同定することができる。
【0108】
前述した状況依存型行動階層(SBL)は、短期記憶部105のクライアント(STMクライアント)となるオブジェクトであり、ターゲット・メモリからは定期的に各ターゲットに関する情報の通知(Notify)を受け取る。本実施形態では、STMプロキシ・クラスが、短期記憶部105(STMオブジェクト)とは独立したクライアント・ローカルな作業領域にターゲットをコピーして、常に最新の情報を保持しておく。そして、ローカルなターゲット・リスト(Target of Interest)の中から所望のターゲットを外部刺激として読み出して、スキーマ(schema)すなわち行動モジュールを決定する(後述)。
【0109】
また、図6に示すように、短期記憶部105(STMオブジェクト)内には、外部環境において発生するイベントを検出するイベント検出器が設けられている。このイベント検出器は、ターゲット検出器によるターゲットの生成や、ガーベッジ・コレクタによるターゲットの削除をイベントとして検出する。また、認識機能部101〜103による認識結果が音声認識である場合には、その発話内容がイベントになる。発生したイベントは、発生した時間順にイベント・メモリ内でイベント・リストとして格納される。
【0110】
状況依存型行動階層(SBL)は、短期記憶部105のクライアント(STMクライアント)となるオブジェクトであり、イベント・メモリからは時々刻々とのイベントの通知(Notify)を受け取る。本実施形態では、STMプロキシ・クラスが、短期記憶部105(STMオブジェクト)とは独立したクライアント・ローカルな作業領域にイベント・リストをコピーしておく。そして、ローカルなイベント・リストの中から所望のイベントを外部刺激として読み出して、スキーマ(schema)すなわち行動モジュールを決定する(後述)。実行された行動モジュールは新たなイベントとしてイベント検出器により検出される。また、古いイベントは、例えばFIFO(Fast In Fast Out)形式でイベント・リストから逐次的に廃棄される。
【0111】
本実施形態に係る短期記憶メカニズムによれば、ロボット1は、外部刺激に関する複数の認識器の結果を時間的及び空間的に整合性を保つように統合して、意味を持ったシンボル情報として扱うようになっている。これによって、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているかや、この声がどの人物の声なのかなどを解くことを可能にしている。
【0112】
以下では、図7〜図9を参照しながら、ロボット1によるユーザA及びBとの対話処理について説明する。
【0113】
まず、図7に示すように、ユーザAが「まさひろ(ロボットの名前)くん!」と呼ぶと、各認識機能部51〜53により音方向検出、音声認識、及び顔識別が行なわれ、呼ばれた方向を向いて、ユーザAの顔をトラッキングしたり、ユーザAとの対話を開始するという状況依存の行動が行なわれる。
【0114】
次いで、図8に示すように、今度はユーザBが「まさひろ(ロボットの名前)くん!」と呼ぶと、各認識機能部101〜103により音方向検出、音声認識、及び顔識別が行なわれ、ユーザAとの対話を中断した後(但し、会話のコンテキストを保存する)、呼ばれた方向を向いて、ユーザBの顔をトラッキングしたり、ユーザBとの対話を開始するという状況依存の行動が行なわれる。これは、状況依存行動階層108が持つPreemption機能(後述)である。
【0115】
次いで、図9に示すように、ユーザAが「おーい!」と叫んで、会話の継続を催促すると、今度は、ユーザBとの対話を中断した後(但し、会話のコンテキストを保存する)、呼ばれた方向を向いて、ユーザAの顔をトラッキングしたり、保存されているコンテキストに基づいてユーザAとの対話を再開するという状況依存の行動が行なわれる。このとき、状況依存行動階層108が持つReentrant機能(後述)により、ユーザAとの対話によってユーザBとの対話内容が破壊されずに済み、中断した時点から正確に対話を再開することができる。
【0116】
C−2.長期記憶部
長期記憶は、物の名前など学習により得られた情報を長期間保持するために使用される。同じパターンを統計的に処理して、ロバストな記憶にすることができる。
【0117】
長期記憶はさらに「宣言的知識記憶」と「手続的知識記憶」に分類される。宣言的知識記憶は、場面(例えば教えられたときのシーン)に関する記憶である「エピソード記憶」と、言葉の意味や常識といった記憶からなる「意味記憶」からなる。また、手続的知識記憶は、宣言的知識記憶をどのように使うかといった手順記憶であり、入力パターンに対する動作の獲得に用いることができる。
【0118】
エピソード記憶は、長期記憶の中でも、宣言的知識記憶(言明記憶とも言う)の一種である。例えば、自転車に乗ることを考えると、初めて自転車に乗った場面(時間・場所など)を覚えていることがエピソード記憶に相当する。その後、時間の経過によりそのエピソードに関する記憶が薄れる一方、その意味を記憶するのが意味記憶である。また、自転車の乗り方の手順を記憶するようになるが、これが手続的知識記憶に相当する。一般的に、手続的知識の記憶には時間を要する。宣言的知識記憶によって「言う」ことができるのに対して、手続的知識記憶は潜在的であり、動作の実行という形で表れる。
【0119】
本実施形態に係る長期記憶部106は、視覚情報、聴覚情報などの物体に関するセンサ情報、及びその物体に対して行なった行動に対する結果としての内部状態が変化した結果などを記憶する連想記憶と、その1つの物体に関するフレーム記憶と、周囲の情景から構築されるマップ情報、あるいはデータとして与えられる地図情報、原因となる状況とそれに対する行動とその結果といったルールで構成される。
【0120】
C−2−1.連想記憶
連想記憶とは、あらかじめ複数のシンボルからなる入力パターンを記憶パターンとして記憶しておき、その中のある1つのパターンに類似したパターンが想起される仕組みのことを言う。本実施形態に係る連想記憶は、競合型ニューラル・ネットワークを用いたモデルにより実現される。このような連想記憶メカニズムによれば、一部欠陥のあるパターンが入力されたとき、記憶されている複数のパターンの中で最も近い記憶パターンを出力することができる。これは、不完全なデータからなる外部刺激しか与えられなかったときであっても、該当するニューロンの発火によりあるオブジェクトの意味などを想起することができるからである。
【0121】
連想記憶は、「自己想起型連想記憶」と「相互想起型連想記憶」に大別される。自己想起型とは記憶したパターンを直接キー・パターンで引き出すモデルであり、また、相互想起型とは入力パターンと出力パターンがある種の連合関係で結ばれているモデルである。本実施形態では、自己想起型連想記憶を採用するが、これは、従来のホップフィールドやアソシアトロン(前述)などの記憶モデルに比し、追加学習が容易である、入力パターンの統計的な記憶が可能である、などのメリットがある。
【0122】
追加学習によれば、新しいパターンを新たに記憶しても、過去の記憶が上書きされて消されることはない。また、統計的な学習によれば、同じものを多く見ればそれだけ記憶に残るし、また同じことを繰り返し実行すれば、忘れにくくなる。この場合、記憶過程において、毎回完全なパターンが入力されなくとも、繰り返し実行により、多く提示されたパターンに収束していく。
【0123】
C−2−2.連想記憶による意味記憶
ロボット装置1が覚えるパターンは、例えばロボット装置1への外部刺激と内部状態の組み合わせで構成される。
【0124】
ここで、外的刺激とは、ロボット装置1がセンサ入力を認識して得られた知覚情報であり、例えば、カメラ15から入力された画像に対して処理された色情報、形情報、顔情報などであり、より具体的には、色、形、顔、3D一般物体、ハンドジェスチャー、動き、音声、接触、匂い、味などの構成要素からなる。
る。
【0125】
また、内的状態とは、例えば、ロボットの身体に基づいた本能や感情などの情動を指す。本能的要素は、例えば、疲れ(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つである。
【0126】
本実施形態に係る競合型ニューラル・ネットワークを適用した連想記憶メカニズムでは、これら外部刺激や内部状態を構成する各要素に対して入力チャンネルを割り当てている。また、視覚認識機能部101や聴覚認識機能部102などの各知覚機能モジュールは、センサ出力となる生の信号を送るのではなく、センサ出力を認識した結果をシンボル化して、シンボルに相当するID情報(例えば、色プロトタイプID、形プロトタイプID、音声プロトタイプIDなど)を該当するチャンネルに送るようになっている。
【0127】
例えば、カラー・セグメンテーション・モジュールによりセグメンテーションされた各オブジェクトは、色プロトタイプIDを付加されて連想記憶システムに入力される。また、顔認識モジュールにより認識された顔のIDが連想記憶システムに入力される。また、物体認識モジュールにより認識された物体のIDが連想システムに入力される。また、音声認識モジュールからは、ユーザの発話により単語のプロトタイプIDが入力される。このとき、発話の音素記号列(Phoneme Sequence)も入力されるので、記憶・連想の処理で、ロボット装置1に発話させることが可能となる。また、本能に関しては、アナログ値を扱えるようになっており(後述)、例えば、本能のデルタ値を80で記憶しておけば、連想により80というアナログ値を得ることが可能である。
【0128】
したがって、本実施形態に係る連想記憶システムは、色、形、音声…などの外部刺激や内部状態を、各チャンネル毎のシンボル化されたIDの組み合わせからなる入力パターンとして記憶することができる。すなわち、連想記憶システムが記憶するのは、
【0129】
[色ID 形ID 顔ID 音声ID…本能ID(値) 情動 ID]
【0130】
の組み合わせである。
【0131】
連想記憶には、記憶過程と想起過程がある。図10には、連想記憶の記憶過程の概念を示している。
【0132】
連想記憶システムに入力される記憶パターンは、外部刺激や内部状態の各要素毎に割り当てられている複数のチャンネルで構成される(図示の例では入力1〜入力8の8チャンネルからなる)。そして、各チャンネルには、対応する外部刺激の認識結果や内部状態をシンボル化したID情報が送られてくる。図示の例では、各チャンネルの濃淡がID情報を表しているものとする。例えば、記憶パターン中のk番目のカラムが顔のチャンネルに割り当てられている場合、その色により顔のプロトタイプIDを表している。
【0133】
図10に示す例では、連想記憶システムは既に1〜nの合計n個の記憶パターンを記憶しているものとする。ここで、2つの記憶パターン間での対応するチャンネルの色の相違は、同じチャンネル上で記憶している外部刺激又は内部状態のシンボルすなわちIDが当該記憶パターン間で異なることを意味する。
【0134】
また、図11には、連想記憶の想起過程の概念を示している。上述したように、記憶過程で蓄えた入力パターンに似たパターンが入力されると、欠落していた情報を補うように完全な記憶パターンが出力される。
【0135】
図11に示す例では、8チャンネルからなる記憶パターンのうち上位の3チャンネルしかIDが与えられていないパターンがキー・パターンとして入力される。このような場合、連想記憶システムでは、既に貯えられている記憶パターンの中で、これら上位の3チャンネルが最も近いパターン(図示の例では記憶パターン1)を見つけ出して、想起されたパターンとして出力することができる。すなわち、欠落していたチャンネル4〜8の情報を補うように、最も近い記憶パターンが出力される。
【0136】
したがって、連想記憶システムによれば、顔のIDのみから音声ID、つまり名前を連想したり、食べ物の名前だけから、“おいしい”や“おいしくない”などを想起することができる。競合型ニューラル・ネットワークによる長期記憶アーキテクチャによれば、言葉の意味や常識などに関する意味記憶を、他の長期記憶と同じ工学モデルで実現することができる。
【0137】
C−3.競合型ニューラル ・ ネットワークによる連想学習
図12には、競合型ニューラル・ネットワークを適用した連想記憶システムの構成例を模式的に示している。同図に示すように、この競合型ニューラル・ネットワークは、入力層(input layer)と競合層(competitive layer)の2層からなる階層型ニューラル・ネットワークである。
【0138】
この競合型ニューラル・ネットワークは、記憶モードと連想モードという2通りの動作モードを備えており、記憶モードでは入力パターンを競合的に記憶し、また、想起モードでは部分的に欠損した入力パターンから完全な記憶パターンを想起する。
【0139】
入力層は、複数の入力ニューロンで構成される。各入力ニューロンには、外部刺激や内部状態を表す各要素に対して割り当てられたチャンネルから、外部刺激や内部状態の認識結果に相当するシンボルすなわちID情報が入力される。入力層では、色IDの個数+形IDの個数+音声IDの個数+本能の種類…に相当する個数のニューロンを用意する必要がある。
【0140】
また、競合層は、複数の競合ニューロンで構成される。各競合ニューロンは、入力層側の各入力ニューロンとは、ある結合重みを持って結合されている。競合ニューロンは、それぞれのニューロンが記憶すべき1つのシンボルに相当する。言い換えれば、競合ニューロンの数は記憶可能なシンボルの個数に相当する。
【0141】
ある入力パターンが入力層に与えられたとする。このとき、入力パターンは外部刺激や内部状態の各要素を表すチャンネルで構成されており、チャンネルから該当するIDが送られてきた入力ニューロンは発火する。
【0142】
競合ニューロンは、各入力ニューロンからの出力をシナプスによる重み付けをして入力して、それら入力値の総和を計算する。そして、競合層で入力値の総和が最大となる競合ニューロンを選択して、勝ち抜いた競合ニューロンと入力ニューロンとの結合力を強めていくことで、学習を行なう。また、欠損のある入力パターンに対して、競合層で勝ち抜いた競合ニューロンを選択することにより、入力パターンに対応するシンボルを想起することができる。
【0143】
記憶モード:
入力層と競合層の結合重みは、0から1の間の値をとるものとする。但し、初期結合重みはランダムに決定する。
【0144】
競合型ニューラル・ネットワークにおける記憶は、まず、記憶したい入力パターンに対して競合層で勝ち抜いた競合ニューロンを選択して、その競合ニューロンと各入力ニューロンとの結合力を強めることで行なう。
【0145】
ここで、入力パターン・ベクトル[x1,x2,…,xn]は、ニューロンが、色プロトタイプID1に対応し、ID1が認識されたら、ニューロンx1を発火させ、順次、形、音声もそのように発火させることとする。発火したニューロンは1の値をとり、発火しないニューロンは−1の値をとる。
【0146】
また、i番目の入力ニューロンとj番目の競合ニューロンとの結合力をwijとおくと、入力xiに対する競合ニューロンyjの値は、下式のように表される。
【0147】
【数1】
【0148】
したがって、競合に勝ち抜くニューロンは、下式により求めることができる。
【0149】
【数2】
【0150】
記憶は、競合層で勝ち抜いた競合ニューロン(winner neuron)と各入力ニューロンとの結合力を強めることで行なう。勝ち抜いたニューロン(winner neuron)と入力ニューロンとの結合の更新は、Kohonenの更新規則により、以下のように行なわれる。
【0151】
【数3】
【0152】
ここで、L2Normで正規化する。
【0153】
【数4】
【0154】
この結合力がいわゆる記憶の強さを表し、記憶力になる。ここで、学習率αは、提示する回数と記憶の関係を表すパラメータである。学習率αが大きいほど、1回の記憶で重みを大きく変更する。例えば、α=0.5を用いると、一度記憶させれば、忘却することはなく、次回同じようなパターンを提示すれば、ほぼ間違いなく記憶したパターンを連想することができる。
【0155】
また、提示して記憶させればさせるほど、ネットワークの結合値(重み)が大きくなっていく。これは、同じパターンが何度も入力されるうちに、記憶が強くなることを示し、統計的な学習が可能であり、実環境下におけるノイズの影響の少ない長期記憶を実現することができる。
【0156】
また、新たなパターンが入力され、記憶しようとすれば、新たな競合層のニューロンが発火するため、その新しいニューロンとの結合が強まり、以前の記憶によるニューロンとの結合が弱まる訳ではない。言い換えれば、競合型ニューラル・ネットワークによる連想記憶では、追加学習が可能なのであり、「忘却」の問題から解放される。
【0157】
想起モード:
いま、以下に示すような入力パターン・ベクトルが図12に示す連想記憶システムに提示されたとする。入力パターンは、完全なものではなく一部が欠損していてもよい。
【0158】
【数5】
【0159】
このとき、入力ベクトルは、プロトタイプIDであっても、あるいはそのプロトタイプIDに対する尤度、確率であってもよい。出力ニューロンyjの値は、入力xiについて下式のように計算される。
【0160】
【数6】
【0161】
上式は、各チャンネルの尤度に応じた競合ニューロンの発火値の尤度を表しているとも言える。ここで重要なことは、複数のチャンネルからの尤度入力に対して、それらをコネクションして全体的な尤度を求めることが可能である、という点である。本実施形態では、連想するものは唯一すなわち尤度が最大のものだけを選択することとし、競合に勝ち抜くニューロンを下式により求めることができる。
【0162】
【数7】
【0163】
求めた競合ニューロンYの番号が記憶したシンボルの番号に対応するので、下式のように、Wの逆行列演算により入力パターンXを想起することができる。
【0164】
【数8】
【0165】
さらに図12に示す競合型ニューラル・ネットワークの入力層ニューロンにエピソードや動作IDなどのシンボルを割り当てることにより、宣言的知識記憶や手続的知識記憶を連想記憶アーキテキチャにより実現することができる。
【0166】
D.状況依存行動制御
状況依存行動階層(SituatedBehaviorsLayer)108は、短期記憶部105並びに長期記憶部106の記憶内容や、内部状態管理部104によって管理される内部状態を基に、ロボット装置1が現在置かれている状況に即応した行動を制御する。また、状況依存行動階層108の一部として、認識された外部刺激に応じて反射的・直接的な機体動作を実行する反射行動部109を含んでいる。
【0167】
D−1.状況依存行動階層の構成
本実施形態では、状況依存行動階層108は、各行動モジュール毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。行動モジュールは、外部刺激や内部状態の変化に応じた状況判断を行なうmonitor機能と、行動実行に伴う状態遷移(ステートマシン)を実現するaction機能とを備えたスキーマ(schema)として記述される。状況依存行動階層108は、複数のスキーマが階層的に連結された木構造として構成されている(後述)。
【0168】
また、状況依存行動階層108は、内部状態をある範囲に保つための行動(「ホメオスタシス行動」とも呼ぶ)も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出易くなるようにその行動を活性化させる(実際には、内部状態と外部環境の両方を考慮した形で行動が選択される)。
【0169】
図3に示したようなロボット1の行動制御システム100における各機能モジュールは、オブジェクトとして構成される。各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとInvokeを行なうことができる。図13には、本実施形態に係る行動制御システム100のオブジェクト構成を模式的に示している。
【0170】
視覚認識機能部101は、”FaceDetector”、”MulitColotTracker”、”FaceIdentify”という3つのオブジェクトで構成される。
【0171】
FaceDetectorは、画像フレーム中から顔領域を検出するオブジェクトであり、検出結果をFaceIdentifyに出力する。MulitColotTrackerは、色認識を行なうオブジェクトであり、認識結果をFaceIdentify及びShortTermMemory(短期記憶ブ105を構成するオブジェクト)に出力する。また、FaceIdentifyは、検出された顔画像を手持ちの人物辞書で検索するなどして人物の識別を行ない、顔画像領域の位置、大きさ情報とともに人物のID情報をShortTermMemoryに出力する。
【0172】
聴覚認識機能部102は、”AudioRecog”と”SpeechRecog”という2つのオブジェクトで構成される。AudioRecogは、マイクなどの音声入力装置からの音声データを受け取って、特徴抽出と音声区間検出を行なうオブジェクトであり、音声区間の音声データの特徴量及び音源方向をSpeechRecogやShortTermMemoryに出力する。SpeechRecogは、AudioRecogから受け取った音声特徴量と音声辞書及び構文辞書を使って音声認識を行なうオブジェクトであり、認識された単語のセットをShortTermMemoryに出力する。
【0173】
触覚認識記憶部103は、接触センサからのセンサ入力を認識する”TactileSensor”というオブジェクトで構成され、認識結果はSHortTermMemoryや内部状態を管理するオブジェクトであるInternalStateModel(ISM)に出力する。
【0174】
ShortTermMemory(STM)は、短期記憶部105を構成するオブジェクトであり、上述の認識系の各オブジェクトによって外部環境から認識されたターゲットやイベントを短期間保持(例えばカメラ15からの入力画像を約15秒程度の短い期間だけ記憶する)する機能モジュールであり、STMクライアントであるSituatedBehaviorsLayerに対して外部刺激の通知(Notify)を定期的に行なう。
【0175】
LongTermMemory(LTM)は、長期記憶部106を構成するオブジェクトであり、物の名前など学習により得られた情報を長期間保持するために使用される。LongTermMemoryは、例えば、ある行動モジュールにおいて外部刺激から内部状態の変化を連想記憶することができる。
【0176】
InternalStatusManager(ISM)は、内部状態管理部104を構成するオブジェクトであり、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の認識系の各オブジェクトによって認識された外部刺激(ES:ExternalStimula)に応じてロボット装置1の本能や情動といった内部状態を管理する。
【0177】
SituatedBehaviorslayer(SBL)は状況依存型行動階層108を構成するオブジェクトである。SBLは、ShorTermMemoryのクライアント(STMクライアント)となるオブジェクトであり、ShorTermMemoryからは定期的に外部刺激(ターゲットやイベント)に関する情報の通知(Notify)を受け取ると、スキーマ(schema)すなわち実行すべき行動モジュールを決定する(後述)。
【0178】
ReflexiveSituatedBehaviorsLayerは、反射的行動部109を構成するオブジェクトであり、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する。例えば、人間の顔を追いかけたり、うなずく、障害物の検出により咄嗟に避けるといった振る舞いを行なう(後述)。
【0179】
SituatedBehaviorslayerは外部刺激や内部状態の変化などの状況に応じて行動を選択する。これに対し、ReflexiveSituatedBehaviorsLayerは、外部刺激に応じて反射的を行動する。これら2つのオブジェクトによる行動選択は独立して行なわれるため、互いに選択された行動モジュール(スキーマ)を機体上で実行する場合に、ロボット1のハードウェア・リソースが競合して実現不可能なこともある。Resourcemanagerというオブジェクトは、SituatedBehaviorslayerとReflexiveSituatedBehaviorsLayerによる行動選択時のハードウェアの競合を調停する。そして、調停結果に基づいて機体動作を実現する各オブジェクトに通知することにより機体が駆動する。
【0180】
SoundPerformer、MotionController、LedControllerは、機体動作を実現するオブジェクトである。SoundPerformerは、音声出力を行なうためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerから与えられたテキスト・コマンドに応じて音声合成を行ない、ロボット1の機体上のスピーカから音声出力を行なう。また、MotionControllerは、機体上の各関節アクチュエータの動作を行なうためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerから手や脚などを動かすコマンドを受けたことに応答して、該当する関節角を計算する。また、LedControllerは、LED19の点滅動作を行なうためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerからコマンドを受けたことに応答してLED19の点滅駆動を行なう。
【0181】
図14には、状況依存行動階層(SBL)108(但し、反射行動部109を含む)による状況依存行動制御の形態を模式的に示している。認識系101〜103による外部環境の認識結果は、外部刺激として状況依存行動階層108(反射行動部109を含む)に与えられる。また、認識系による外部環境の認識結果に応じた内部状態の変化も状況依存行動階層108に与えられる。そして、状況依存行動階層108では、外部刺激や内部状態の変化に応じて状況を判断して、行動選択を実現することができる。
【0182】
図15には、図14に示した状況依存行動階層108による行動制御の基本的な動作例を示している。同図に示すように、状況依存行動階層108(SBL)では、外部刺激や内部状態の変化によって各行動モジュール(スキーマ)の活動度レベルを算出して、活動度レベルの度合いに応じてスキーマを選択して行動を実行する。活動度レベルの算出には、例えばライブラリを利用することにより、すべてのスキーマについて統一的な計算処理を行なうことができる(以下、同様)。例えば、活動度レベルが最も高いスキーマを選択したり、所定の閾値を越えた2以上のスキーマを選択して並列的に行動実行するようにしてもよい(但し、並列実行するときは各スキーマどうしでハードウェア・リソースの競合がないことを前提とする)。
【0183】
また、図16には、図14に示した状況依存行動階層108により反射行動を行なう場合の動作例を示している。この場合、同図に示すように、状況依存行動階層108に含まれる反射行動部109(ReflexiveSBL)は、認識系の各オブジェクトによって認識された外部刺激を直接入力として活動度レベルを算出して、活動度レベルの度合いに応じてスキーマを選択して行動を実行する。この場合、内部状態の変化は、活動度レベルの計算には使用されない。
【0184】
また、図17には、図14に示した状況依存行動階層108により感情表現を行なう場合の動作例を示している。内部状態管理部104では、本能や感情などの情動を数式モデルとして管理しており、情動パラメータの状態値が所定値に達したことに応答して、状況依存行動階層108に内部状態の変化を通知(Notify)する。状況依存行動階層108は、内部状態の変化を入力として活動度レベルを算出して、活動度レベルの度合いに応じてスキーマを選択して行動を実行する。この場合、認識系の各オブジェクトによって認識された外部刺激は、内部状態管理部104(ISM)における内部状態の管理・更新に利用されるが、スキーマの活動度レベルの算出には使用されない。
【0185】
D−2.スキーマ
状況依存行動階層108は、各行動モジュール毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。行動モジュールは、機体動作を記述し行動実行に伴う状態遷移(ステートマシン)を実現するAction機能と、Action機能において記述された行動の実行を外部刺激や内部状態に応じて評価して状況判断を行なうMonitor機能とを備えたスキーマ(schema)として記述される。図18には、状況依存行動階層108が複数のスキーマによって構成されている様子を模式的に示している。
【0186】
状況依存行動階層108(より厳密には、状況依存行動階層108のうち、通常の状況依存行動を制御する階層)は、複数のスキーマが階層的に連結されたツリー構造として構成され、外部刺激や内部状態の変化に応じてより最適なスキーマを統合的に判断して行動制御を行なうようになっている。ツリーは、例えば動物行動学的(Ethological)な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリーなど、複数のサブツリー(又は枝)を含んでいる。
【0187】
図19には、状況依存行動階層108におけるスキーマのツリー構造を模式的に示している。同図に示すように、状況依存行動階層108は、短期記憶部105から外部刺激の通知(Notify)を受けるルート・スキーマを先頭に、抽象的な行動カテゴリから具体的な行動カテゴリに向かうように、各階層毎にスキーマが配設されている。例えば、ルート・スキーマの直近下位の階層では、「探索する(Investigate)」、「食べる(Ingestive)」、「遊ぶ(Play)」というスキーマが配設される。そして、「探索する(Investigate)」の下位には、「InvestigativeLocomotion」、「HeadinAirSniffing」、「InvestigativeSniffing」というより具体的な探索行動を記述したスキーマが配設されている。同様に、スキーマ「食べる(Ingestive)」の下位には「Eat」や「Drink」などのより具体的な飲食行動を記述したスキーマが配設され、スキーマ「遊ぶ(Play)」の下位には「PlayBowing」、「PlayGreeting」、「PlayPawing」などのより具体的な遊ぶ行動を記述したスキーマが配設されている。
【0188】
図示の通り、各スキーマは外部刺激と内部状態を入力している。また、各スキーマは、少なくともMonitor関数とAction関数を備えている。
【0189】
図20には、スキーマの内部構成を模式的に示している。同図に示すように、スキーマは、状態遷移(ステートマシン)の形式で機体動作を記述したAction関数と、外部刺激や内部状態に応じてAction関数の各状態を評価して活動度レベル値として返すMonitor関数と、Action関数のステートマシンをREADY(準備完了)、ACTIVE(活動中),SLEEP(待機中)いずれかの状態としてスキーマの状態を記憶管理する状態管理部で構成されている。
【0190】
Monitor関数は、外部刺激と内部状態に応じて当該スキーマの活動度レベル(Activation Level:AL値)を算出する関数である。図19に示すようなツリー構造を構成する場合、上位(親)のスキーマは外部刺激と内部状態を引数として下位(子供)のスキーマのMonitor関数をコールすることができ、子供のスキーマはAL値を返り値とする。また、スキーマは自分のAL値を算出するために、さらに子供のスキーマのMonitor関数をコールすることができる。そして、ルートのスキーマには各サブツリーからのAL値が返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断することができる。
【0191】
例えばAL値が最も高いスキーマを選択したり、AL値が所定の閾値を越えた2以上のスキーマを選択して並列的に行動実行するようにしてもよい(但し、並列実行するときは各スキーマ同士でハードウェア・リソースの競合がないことを前提とする)。
【0192】
図21には、Monitor関数の内部構成を模式的に示している。同図に示すように、Monitor関数は、当該スキーマで記述されている行動を誘発する評価値を活動度レベルとして算出する行動誘発評価値演算器と、使用する機体リソースを特定する使用リソース演算器を備えている。図20で示す例では、Monitor関数は、スキーマすなわち行動モジュールの管理を行なう行動状態制御部(仮称)からコールされると、Action関数のステートマシンを仮想実行して、行動誘発評価値(すなわち活動度レベル)と使用リソースを演算して、これを返すようになっている。
【0193】
また、Action関数は、スキーマ自身が持つ行動を記述したステートマシン(後述)を備えている。図19に示すようなツリー構造を構成する場合、親スキーマは、Action関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。本実施形態では、ActionのステートマシンはReadyにならないと初期化されない。言い換えれば、中断しても状態はリセットされず、スキーマが実行中の作業データを保存することから、中断再実行が可能である(後述)。
【0194】
図20で示す例では、スキーマすなわち行動モジュールの管理を行なう行動状態制御部(仮称)は、Monitor関数からの戻り値に基づいて、実行すべき行動を選択し、該当するスキーマのAction関数をコールし、あるいは状態管理部に記憶されているスキーマの状態の移行を指示する。例えば行動誘発評価値としての活動度レベルが最も高いスキーマを選択したり、リソースが競合しないように優先順位に従って複数のスキーマを選択したりする。また、行動状態制御部は、より優先順位の高いスキーマが起動し、リソースの競合が生じた場合、優先順位が下位のスキーマの状態をACTIVEからSLEEPに退避させ、競合状態が解かれるとACTIVEに回復するなど、スキーマの状態を制御する。
【0195】
行動状態制御部は、図22に示すように、状況依存行動階層108において1つだけ配設して、同階層108を構成するすべてのスキーマを一元的に集中管理するようにしてもよい。
【0196】
図示の例では、行動状態制御部は、行動評価部と、行動選択部と、行動実行部を備えている。行動評価部は、例えば所定の制御周期で各スキーマのMonitor関数をコールして、各々の活動度レベルと使用リソースを取得する。行動選択部は、各スキーマによる行動制御と機体リソースの管理を行なう。例えば、集計された活動度レベルの高い順にスキーマを選択するとともに、使用リソースが競合しないように2以上のスキーマを同時に選択する。行動実行部は、選択されたスキーマのAction関数に行動実行命令を発行したり、スキーマの状態(READY、ACTIVE,SLEEP)を管理して、スキーマの実行を制御する。例えば、より優先順位の高いスキーマが起動し、リソースの競合が生じた場合、優先順位が下位のスキーマの状態をACTIVEからSLEEPに退避させ、競合状態が解かれるとACTIVEに回復する。
【0197】
あるいは、このような行動状態制御部の機能を、状況依存行動階層108内の各スキーマ毎に配置するようにしてもよい。例えば、図19に示したように,スキーマがツリー構造を形成している場合(図23を参照のこと)、上位(親)のスキーマの行動状態制御は、外部刺激と内部状態を引数として下位(子供)のスキーマのMonitor関数をコールし、子供のスキーマから活動度レベルと使用リソースを返り値として受け取る。また、子供のスキーマは、自分の活動度レベルと使用リソースを算出するために、さらに子供のスキーマのMonitor関数をコールする。そして、ルートのスキーマの行動状態制御部には、各サブツリーからの活動度レベルと使用リソースが返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断して、Action関数をコールして、子供スキーマの実行を開始したり中断させたりする。
【0198】
図24には、状況依存行動階層108において通常の状況依存行動を制御するためのメカニズムを模式的に示している。
【0199】
同図に示すように、状況依存行動階層108には、短期記憶部105から外部刺激が入力(Notify)されるとともに、内部状態管理部109から内部状態の変化が入力される。状況依存行動階層108は、例えば動物行動学的(Ethological)な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリーなど、複数のサブツリーで構成されており、ルート・スキーマは、外部刺激の通知(Notify)に応答して、各サブツリーのmonitor関数をコールし、その返り値としての活動度レベル(AL値)を参照して、統合的な行動選択を行ない、選択された行動を実現するサブツリーに対してaction関数をコールする。また、状況依存行動階層108において決定された状況依存行動は、リソース・マネージャにより反射行動部109による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作(MotionController)に適用される。
【0200】
また、状況依存行動層108のうち、反射的行動部109は、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する(例えば、障害物の検出により咄嗟に避ける)。このため、通常の状況依存行動を制御する場合(図19)とは相違し、認識系の各オブジェクトからの信号を直接入力する複数のスキーマが、階層化されずに並列的に配置されている。
【0201】
図25には、反射行動部109におけるスキーマの構成を模式的に示している。同図に示すように、反射行動部109には、聴覚系の認識結果に応答して動作するスキーマとして「AvoidBigSound」、「FacetoBigSound」及び「NoddingSound」、視覚系の認識結果に応答して動作するスキーマとして「FacetoMovingObject」及び「AvoidMovingObject」、並びに、触覚系の認識結果に応答して動作するスキーマとして「手を引っ込める」が、それぞれ対等な立場で(並列的に)配設されている。
【0202】
図示の通り、反射的行動を行なう各スキーマは外部刺激を入力に持つ。また、各スキーマは、少なくともmonitor関数とaction関数を備えている。monitor関数は、外部刺激に応じて当該スキーマのAL値を算出して、これに応じて該当する反射的行動を発現すべきかどうかが判断される。また、action関数は、スキーマ自身が持つ反射的行動を記述したステートマシン(後述)を備えており、コールされることにより、該当する反射的行動を発現するとともにactionの状態を遷移させていく。
【0203】
図26には、反射行動部109において反射的行動を制御するためのメカニズムを模式的に示している。
【0204】
図25にも示したように、反射行動部109内には、反応行動を記述したスキーマや、即時的な応答行動を記述したスキーマが並列的に存在している。認識系のオブジェクトから認識結果が入力されると、対応する反射行動スキーマがmonitor関数によりAL値を算出し、その値に応じてactionを軌道すべきかどうかが判断される。そして、反射行動部109において起動が決定された反射的行動は、リソース・マネージャにより反射行動部109による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作(MotionController)に適用される。
【0205】
状況依存行動階層108(反射行動部109を含む)を構成するスキーマは、例えばC++言語ベースで記述される「クラス・オブジェクト」として記述することができる。図27には、状況依存行動階層108において使用されるスキーマのクラス定義を模式的に示している。同図に示されている各ブロックはそれぞれ1つのクラス・オブジェクトに相当する。
【0206】
図示の通り、状況依存行動階層(SBL)108は、1以上のスキーマと、SBLの入出力イベントに対してIDを割り振るEventDataHandler(EDH)と、SBL内のスキーマを管理するSchemaHandler(SH)と、外部オブジェクト(STMやLTM、リソース・マネージャ、認識系の各オブジェクトなど)からデータを受信する1以上のReceiveDataHandler(RDH)と、外部オブジェクトにデータを送信する1以上のSendDataHandler(SDH)とを備えている。
【0207】
EventDataHandler(EDH)は、SBLの入出力イベントに対してIDを割り振るためのクラス・オブジェクトであり、RDHやSDHから入出力イベントの通知を受ける。
【0208】
SchemaHandlerは、状況依存行動階層(SBL)108や反射行動部109を構成する各スキーマやツリー構造などの情報(SBLのコンフィギュレーション情報)をファイルとして保管している。例えばシステムの起動時などに、SchemaHandlerは、このコンフィギュレーション情報ファイルを読み込んで、図19に示したような状況依存行動階層108のスキーマ構成を構築(再現)して、メモリ空間上に各スキーマのエンティティをマッピングする。
【0209】
各スキーマは、スキーマのベースとして位置付けられるOpenR_Guestを備えている。OpenR_Guestは、スキーマが外部にデータを送信するためのDsubject、並びに、スキーマが外部からデータを受信するためのDObjectというクラス・オブジェクトをそれぞれ1以上備えている。例えば、スキーマが、SBLの外部オブジェクト(STMやLTM、認識系の各オブジェクトなど)にデータを送るときには、DsubjectはSendDataHandlerに送信データを書き込む。また、DObjectは、SBLの外部オブジェクトから受信したデータをReceiveDataHandlerから読み取ることができる。
【0210】
SchemaManager及びSchemaBaseは、ともにOpenR_Guestを継承したクラス・オブジェクトである。クラス継承は、元のクラスの定義を受け継ぐことであり、この場合、OpenR_Guestで定義されているDsubjectやDObjectなどのクラスオブジェクトをSchemaManagerやSchemaBaseも備えていることを意味する(以下、同様)。例えば図19に示すように複数のスキーマがツリー構造になっている場合、SchemaManagerは、子供のスキーマのリストを管理するクラス・オブジェクトSchemaListを持ち(子供のスキーマへのポインタを持ち)、子供スキーマの関数をコールすることができる。また、SchemaBaseは、親スキーマへのポインタを持ち、親スキーマからコールされた関数の返り値を戻すことができる。
【0211】
SchemaBaseは、StateMachine及びPronomeという2つのクラス・オブジェクトを持つ。StateMachineは当該スキーマの行動(Action関数)についてのステートマシンを管理している。図28には、スキーマの行動(Action関数)についてのステートマシンを図解している。このステートマシンの状態間の遷移にそれぞれ行動(Action)が紐付けされている
【0212】
親スキーマは子供スキーマのAction関数のステートマシンを切り替える(状態遷移させる)ことができる。また、Pronomeには、当該スキーマが行動(Action関数)を実行又は適用するターゲットを代入する。後述するように、スキーマはPronomeに代入されたターゲットによって占有され、行動が終了(完結、異常終了など)するまでスキーマは解放されない。新規のターゲットのために同じ行動を実行するためには同じクラス定義のスキーマをメモリ空間上に生成する。この結果、同じスキーマをターゲット毎に独立して実行することができ(個々のスキーマの作業データが干渉し合うことはなく)、行動のReentrance性(後述)が確保される。
【0213】
ParentSchemaBaseは、SchemaManager及びSchemaBaseを多重継承するクラス・オブジェクトであり、スキーマのツリー構造において、当該スキーマ自身についての親スキーマ及び子供スキーマすなわち親子関係を管理する。
【0214】
IntermediaParentSchemaBaseは、ParentSchemaBaseを継承するクラス・オブジェクトであり、各クラスのためのインターフェース変換を実現する。また、IntermediaParentSchemaBaseは、SchemaStatusInfoを持つ。このSchemaStatusInfoは、当該スキーマ自身のステートマシンを管理するクラス・オブジェクトである。
【0215】
親スキーマは、子供スキーマのAction関数をコールすることによってそのステートマシンの状態を切り換えることができる。また、子供スキーマのAonitor関数をコールしてそのステートマシンの状態に応じたAL値を問うことができる。但し、スキーマのステートマシンは、前述したAction関数のステートマシンとは異なるということを留意されたい。
【0216】
図29には、スキーマ自身すなわちAction関数によって記述されている行動についてのステートマシンを図解している。既に述べたように、スキーマ自身のステートマシンは、Action関数に寄って記述されている行動について、READY(準備完了)、ACTIVE(活動中),SLEEP(待機中)という3つの状態を規定している。より優先順位の高いスキーマが起動し、リソースの競合が生じた場合、優先順位が下位のスキーマの状態をACTIVEからSLEEPに退避させ、競合状態が解かれるとACTIVEに回復する。
【0217】
図29に示すように、ACTIVEからSLEEPへの状態遷移にACTIVE_TO_SLEEPが、SLEEPからACTIVEへの状態遷移にSLEEP_TO_ACTIVEがそれぞれ規定されている。本実施形態において特徴的なのは、
(1)ACTIVE_TO_SLEEPに、後にACTIVEに遷移して再開するために必要なデータ(コンテキスト)を保存するための処理と、SLEEPするために必要な行動が紐付けされている。
(2)SLEEP_TO_ACTIVEに、保存しておいたデータ(コンテキスト)を復元するための処理と、ACTIVEに戻るために必要な行動が紐付けされている。
という点である。SLEEPするために必要な行動とは、例えば、話し相手に休止を告げる「ちょっと待っててね」などのセリフを言う行動(その他、身振り手振りが加わっていてもよい)である。また、ACTIVEに戻るために必要な行動とは、例えば、話し相手に謝意を表わす「お待たせ」などのセリフを言う行動(その他、身振り手振りが加わっていてもよい)である。
【0218】
AndParentSchema、NumOrParentSchema、OrParentSchemaは、IntermediaParentSchemaBaseを継承するクラス・オブジェクトである。AndParentSchemaは、同時実行する複数の子供スキーマへのポインタを持つ。OrParentSchemaは、いずれか択一的に実行する複数の子供スキーマへのポインタを持つ。また、NumOrParentSchemaは、所定数のみを同時実行する複数の子供スキーマへのポインタを持つ。
【0219】
ParentSchemaは、これらAndParentSchema、NumOrParentSchema、OrParentSchemaを多重継承するクラス・オブジェクトである。
【0220】
図30には、状況依存行動階層(SBL)108内のクラスの機能的構成を模式的に示している。
【0221】
状況依存行動階層(SBL)108は、STMやLTM、リソース・マネージャ、認識系の各オブジェクトなど外部オブジェクトからデータを受信する1以上のReceiveDataHandler(RDH)と、外部オブジェクトにデータを送信する1以上のSendDataHandler(SDH)とを備えている。
【0222】
EventDataHandler(EDH)は、SBLの入出力イベントに対してIDを割り振るためのクラス・オブジェクトであり、RDHやSDHから入出力イベントの通知を受ける。
【0223】
SchemaHandlerは、スキーマを管理するためのクラス・オブジェクトであり、SBLを構成するスキーマのコンフィギュレーション情報をファイルとして保管している。例えばシステムの起動時などに、SchemaHandlerは、このコンフィギュレーション情報ファイルを読み込んで、SBL内のスキーマ構成を構築する。
【0224】
各スキーマは、図27に示したクラス定義に従って生成され、メモリ空間上にエンティティがマッピングされる。各スキーマは、OpenR_Guestをベースのクラス・オブジェクトとし、外部にデータ・アクセスするためのDSubjectやDObjectなどのクラス・オブジェクトを備えている。
【0225】
スキーマが主に持つ関数とステートマシンを以下に示しておく。
【0226】
ActivationMonitor():スキーマがReady時にActiveになるための評価関数。
Actions():Active時の実行用ステートマシン。
Goal():Active時にスキーマがGoalに達したかを評価する関数。
Goal():Active時にスキーマがfail状態かを判定する関数。
SleepActions():Sleep前に実行されるステートマシン。
SleepMonitor():Sleep時にResumeするための評価関数。
ResumeActions():Resume前にResumeするためのステートマシン。
DestroyMonitor():Sleep時にスキーマがfail状態か判定する評価関数。
MakePronome():ツリー全体のターゲットを決定する関数である。
【0227】
これらの関数は、SchemaBaseで記述されている。
【0228】
図31には、MakePronome関数を実行する処理手順をフローチャートの形式で示している。
【0229】
スキーマのMakePronome関数がコールされると、まず、スキーマ自信に子供スキーマが存在するかどうかを判別する(ステップS1)。
【0230】
子供スキーマが存在する場合には、同様にすべての子供スキーマのMakePronome関数を再帰的にコールする(ステップS2)。
【0231】
そして、スキーマ自身のMakePronomeを実行して、Pronomeオブジェクトにターゲットが代入される(ステップS3)。
【0232】
この結果、自分以下のすべてのスキーマのPronomeに対して同じターゲットが代入され、行動が終了(完結、異常終了など)するまでスキーマは解放されない。新規のターゲットのために同じ行動を実行するためには同じクラス定義のスキーマをメモリ空間上に生成する。
【0233】
図32には、Monitor関数を実行する処理手順をフローチャートの形式で示している。
【0234】
まず、評価フラグ(AssesssmentFlag)をオンに設定して(ステップS11)、スキーマ自身のActionを実行する(ステップS12)。このとき、子供スキーマの選定も行なう。そして、評価フラグをオフに戻す(ステップS13)。
【0235】
子供スキーマが存在する場合には(ステップS14)、ステップS12において選択した子供スキーマのMonitor関数を再帰的にコールする(ステップS15)。
【0236】
次いで、スキーマ自身のMonitor関数を実行して(ステップS16)、活動度レベルと行動実行に使用するリソースを算出して(ステップS17)、関数の戻り値とする。
【0237】
図33及び図34には、Actions関数を実行する処理手順をフローチャートの形式で示している。
【0238】
まず、スキーマがSTOPPING状態かどうかをチェックし(ステップS21)、次いで、STOPPINGすべき状態かどうかをチェックする(ステップS22)。
【0239】
STOPPINGすべき状態である場合には、さらに子供スキーマがいるかどうかをチェックする(ステップS23)。そして、子供スキーマがいる場合にはこれをGO_TO_STOP状態に移行させてから(ステップS24)、HaveToStopFlagをオンにする(ステップS25)。
【0240】
また、STOPPINGすべき状態でない場合には、RUNNING状態かどうかをチェックする(ステップS26)。
【0241】
RUNNING状態でない場合には、さらに子供スキーマがいるかどうかをチェックする(ステップS27)。そして、子供スキーマがいる場合には、HaveToStopFlagをオンにする(ステップS28)。
【0242】
次いで、現在のシステム状態とHaveToRunFlagとHaveToStopFlagと子供スキーマの動作状態から次の自分自身の状態を決定する(ステップS29)。
【0243】
次いで、スキーマ自身のAction関数を実行する(ステップS30)。
【0244】
その後、スキーマ自身がGO_TO_STOP状態かどうかをチェックする(ステップS31)。GO_TO_STOP状態でない場合には、さらに子供スキーマがいるかどうかをチェックする(ステップS32)。そして、子供スキーマがいる場合には、GO_TO_STOP状態の子供スキーマがいるかどうかをチェックする(ステップS33)。
【0245】
GO_TO_STOP状態の子供スキーマがいる場合には、これらのスキーマのAction関数を実行する(ステップS34)。
【0246】
次いで、RUNNING中の子供スキーマがいるかどうかをチェックする(ステップS35)。RUNNING中の子供スキーマがいない場合には、停止中の子供スキーマがいるかどうかをチェックして(ステップS36)、停止中の子供スキーマのAction関数を実行する(ステップS37)。
【0247】
次いで、GO_TO_RUN状態の子供スキーマがいるかどうかをチェックする(ステップS38)。GO_TO_RUN状態の子供スキーマがいない場合には、GO_TO_STOP状態の子供スキーマがいるかどうかをチェックして(ステップS39)、いればこの子供スキーマのAction関数を実行する(ステップS40)。
【0248】
最後に、現在のシステム状態とHaveToRunFlagとHaveToStopFlagと子供の動作状態から自分自身の次の状態を決定して,本処理ルーチン全体を終了する(ステップS41)。
【0249】
D−3.状況依存行動階層の機能
状況依存行動階層(SituatedBehaviorsLayer)108は、短期記憶部105並びに長期記憶部106の記憶内容や、内部状態管理部104によって管理される内部状態を基に、ロボット装置1が現在置かれている状況に即応した行動を制御する。
【0250】
前項で述べたように、本実施形態に係る状況依存行動階層108は、スキーマのツリー構造(図19を参照のこと)で構成されている。各スキーマは、自分の子供と親の情報を知っている状態で独立性を保っている。このようなスキーマ構成により、状況依存行動階層108は、Concurrentな評価、Concurrentな実行、Preemption、Reentrantという主な特徴を持っている。以下、これらの特徴について詳解する。
【0251】
(1)Concurrentな評価:
行動モジュールとしてのスキーマは外部刺激や内部状態の変化に応じた状況判断を行なうMonitor機能を備えていることは既に述べた。Monitor機能は、スキーマがクラス・オブジェクトSchemaBaseでMonitor関数を備えていることにより実装されている。Monitor関数とは、外部刺激と内部状態に応じて当該スキーマの活動度レベル(Activation Level:AL値)を算出する関数である。
【0252】
図19に示すようなツリー構造を構成する場合、上位(親)のスキーマは外部刺激と内部状態を引数として下位(子供)のスキーマのMonitor関数をコールすることができ、子供のスキーマはAL値を返り値とする。また、スキーマは自分のAL値を算出するために、さらに子供のスキーマのMonitor関数をコールすることができる。そして、ルートのスキーマには各サブツリーからのAL値が返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断することができる。
【0253】
このようにツリー構造になっていることから、外部刺激と内部状態の変化による各スキーマの評価は、まずツリー構造の下から上に向かってConcurrentに行なわれる。図32のフローチャートでも示したように、スキーマに子供スキーマがある場合には(ステップS14)、選択した子供のMonitor関数をコールしてから(ステップS15)、自身のMonitor関数を実行する。
【0254】
次いで、ツリー構造の上から下に向かって評価結果としての実行許可を渡していく。評価と実行は、その行動が用いるリソースの競合を解きながら行なわれる。
【0255】
本実施形態に係る状況依存行動階層108は、スキーマのツリー構造を利用して、並列的に行動の評価を行なうことができるので、外部刺激や内部状態などの状況に対しての適応性がある。また、評価時には、ツリー全体に関しての評価を行ない、このとき算出される活動度レベル(AL)値によりツリーが変更されるので、スキーマすなわち実行する行動を動的にプライオリタイズすることができる。
【0256】
(2)Concurrentな実行:
ルートのスキーマには各サブツリーからのAL値が返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断することができる。例えばAL値が最も高いスキーマを選択したり、AL値が所定の閾値を越えた2以上のスキーマを選択して並列的に行動実行するようにしてもよい(但し、並列実行するときは各スキーマ同士でハードウェア・リソースの競合がないことを前提とする)。
【0257】
実行許可をもらったスキーマは実行される。すなわち、実際にそのスキーマはさらに詳細の外部刺激や内部状態の変化を観測して、コマンドを実行する。実行に関しては、ツリー構造の上から下に向かって順次すなわちConcurrentに行なわれる。図33及び図34のフローチャートでも示したように、スキーマに子供スキーマがある場合には、子供のActions関数を実行する。
【0258】
Action関数は、スキーマ自身が持つ行動を記述したステートマシン(後述)を備えている。図19に示すようなツリー構造を構成する場合、親スキーマは、Action関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。
【0259】
本実施形態に係る状況依存行動階層108は、スキーマのツリー構造を利用して、リソースが競合しない場合には、余ったリソースを使う他のスキーマを同時に実行することができる。但し、Goalまでに使用するリソースに対して制限を加えないと、ちぐはぐな行動出現が起きる可能性がある。状況依存行動階層108において決定された状況依存行動は、リソース・マネージャにより反射行動部109による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作(MotionController)に適用される。
【0260】
(3)Preemption:
1度実行に移されたスキーマであっても、それよりも重要な(優先度の高い)行動があれば、スキーマを中断してそちらに実行権を渡さなければならない。また、より重要な行動が終了(完結又は実行中止など)したら、元のスキーマを再開して実行を続けることも必要である。
【0261】
このような優先度に応じたタスクの実行は、コンピュータの世界におけるOS(オペレーティング・システム)のPreemptionと呼ばれる機能に類似している。OSでは、スケジュールを考慮するタイミングで優先度のより高いタスクを順に実行していくという方針である。
【0262】
これに対し、本実施形態に係るロボット1の行動制御システム100は、複数のオブジェクトにまたがるため、オブジェクト間での調停が必要になる。例えば反射行動を制御するオブジェクトであるReflexiveSBLは、上位の状況依存行動を制御するオブジェクトであるSBLの行動評価を気にせずに物を避けたり、バランスをとったりする必要がある。これは、実際に実行権を奪い取り実行を行なう訳であるが、上位の行動モジュール(SBL)に、実行権利が奪い取られたことを通知して、上位はその処理を行なうことによってPreemptiveな能力を保持する。
【0263】
また、状況依存行動層108内において、外部刺激と内部状態の変化に基づくAL値の評価の結果、あるスキーマに実行許可がなされたとする。さらに、その後の外部刺激と内部状態の変化に基づくAL値の評価により、別のスキーマの重要度の方がより高くなったとする。このような場合、実行中のスキーマのActions関数を利用してSleep状態にして中断することにより、Preemptiveな行動の切り替えを行なうことができる。
【0264】
実行中のスキーマのActions()の状態を保存して、異なるスキーマのActions()を実行する。また、異なるスキーマのActions()が終了した後、中断されたスキーマのActions()を再度実行することができる。
【0265】
また、実行中のスキーマのActions()を中断して、異なるスキーマに実行権が移動する前に、SleepActions()を実行する。例えば、ロボット1は、対話中にサッカーボールを見つけると、「ちょっと待ってね」と言って、サッカーすることができる。
【0266】
(4)Reentrant:
状況依存行動階層108を構成する各スキーマは、一種のサブルーチンである。スキーマは、複数の親からコールされた場合には、その内部状態を記憶するために、それぞれの親に対応した記憶空間を持つ必要がある。
【0267】
これは、コンピュータの世界では、OSが持つReentrant性に類似しており、本明細書ではスキーマのReentrant性と呼ぶ。図30を参照しながら説明したように、スキーマはクラス・オブジェクトで構成されており、クラス・オブジェクトのエンティティすなわちインスタンスをターゲット(Pronome)毎に生成することによりReentrant性が実現される。
【0268】
スキーマのReentrant性について、図35を参照しながらより具体的に説明する。
【0269】
SchemaHandlerは、スキーマを管理するためのクラス・オブジェクトであり、SBLを構成するスキーマのコンフィギュレーション情報をファイルとして保管している。システムの起動時に、SchemaHandlerは、このコンフィギュレーション情報ファイルを読み込んで、SBL内のスキーマ構成を構築する。図31に示す例では、EatやDialogなどの行動を規定するスキーマのエンティティがメモリ空間上にマッピングされているとする。
【0270】
ここで、外部刺激と内部状態の変化に基づく活動度レベルの評価により、スキーマDialogに対してAというターゲット(Pronome)が設定されて、Dialogが人物Aとの対話を実行するようになったとする。
【0271】
その後、人物Bがロボット1と人物Aとの対話に割り込み、外部刺激と内部状態の変化に基づく活動度レベルの評価を行なった結果、Bとの対話を行なうスキーマの方がより優先度が高くなったとする。
【0272】
このような場合、SchemaHandlerは、Bとの対話を行なうためのクラス継承した別のDialogエンティティ(インスタンス)をメモリ空間上にマッピングする。別のDialogエンティティを使用して、先のDialogエンティティとは独立して、Bとの対話を行なうことから、Aとの対話内容は破壊されずに済む。したがって、Dialog Aはデータの一貫性を保持することができ、Bとの対話が終了すると、Aとの対話を中断した時点から再開することができる。
【0273】
Readyリスト内のスキーマは、その対象物(外部刺激)に応じて評価すなわちAL値の計算が行なわれ、実行権が引き渡される。その後、Readyリスト内に移動したスキーマのインスタンスを生成して、これ以外の対象物に対して評価を行なう。これにより、同一のスキーマをactive又はsleep状態にすることができる。
【0274】
E.ロボットの内部状態管理
本実施形態に係るロボットの行動制御システム100では、状況依存行動階層108は内部状態と外部環境によって行動を決定する。
【0275】
ロボット装置1の内部状態は、本能や感情といった数種類の情動で構成され、数式モデル化して扱われる。内部状態管理部(ISM:Internal Status Manager)104は、上述した各認識機能部101〜103によって認識された外部刺激(ES:ExternalStimula)と、時間的経過に基づいて、内部状態を管理する。
【0276】
E−1.情動の階層化
本実施形態では、情動についてその存在意義による複数階層で構成され、それぞれの階層で動作する。決定された複数の動作から、そのときの外部環境や内部状態によってどの動作を行なうかを決定するようになっている(後述)。また、それぞれの階層で行動は選択されるが、より低次の行動から優先的に動作を発現していくことにより、反射などの本能的行動や、記憶を用いた動作選択などの高次の行動を1つの個体上で矛盾なく発現することができる。
【0277】
図36には、本実施形態に係る内部状態管理部104の階層的構成を模式的に示している。
【0278】
図示の通り、内部状態管理部104は、情動などの内部情報を、情動を本能や欲求などの個体存続に必要な1次情動と、この1次情動の満足度(過不足)によって変化する2次情動に大別する。また、1次情動は、個体存続においてより生理的なものから連想に至るものまで階層的に細分化されている。
【0279】
図示の例では、1次情動は、低次から高次に向かって、下位の1次情動、上位の1次情動、連想による1次情動に区分される。下位の1次情動は、大脳辺縁系へのアクセスに相当し、ホメオスタシス(個体維持)が保たれるように情動発生するとともに、ホメオスタシスが脅かされる場合には優先される。また、上位の1次情動は、大脳新皮質へのアクセスに相当し、内発的欲求や社会的欲求などの種族維持に関わる。上位の1次情動は、学習や環境に依って満足度が変化する(学習やコミュニケーションにより満足される)。
【0280】
1次情動の各階層は、行動選択されたスキーマを実行することによる一時情動(本能)レベルの変化量ΔIを出力する。
【0281】
2次情動は、いわゆる感情(Emotion)に相当し、喜び(Joy)、悲しみ(Sad)、怒り(Anger)、驚き(Surprise)、嫌気(Disgust)、畏怖(Feer)などの要素からなる。1次情動の変化量ΔIに応じて2次情動の変化量(満足度)ΔEが決定される。
【0282】
状況依存行動階層108では、主に1次情動を基に行動選択を行なうが、2次情動が強い場合には、2次情動に基づく行動選択を行なうこともできる。さらに、1次情動を基に選択された行動に対して2次情動により生成されたパラメータを使用してモジュレーションを行なうことも可能である。
【0283】
個体存続のための情動階層は、生得的反射による行動がまず選択される。次いで、下位の1次情動を満たす行動を選択する。そして、上位の1次情動を満たす行動発生、連想による1次情動を満たす行動発生と、よりプリミティブな個体保持から実現する。
【0284】
この際、各階層の1次情動は、直近の階層に対して圧力をかけることができる。自身で決定した行動を選択するための指標が強い場合、直近の階層で決定された行動を抑制して、自身の行動を発現することができる。
【0285】
前項Dでも述べたように、状況依存行動階層108は、目標とする動作を持った複数のスキーマによって構成されている(図18、図19などを参照のこと)。状況依存行動階層108では、各スキーマが持つ活動度レベルを指標にしてスキーマすなわち行動を選択する。内部状態の活動度レベルと外部状況の活動度レベルによりスキーマ全体の活動度レベルが決定する。スキーマは、目標とする動作を実行するための途中経過毎に、活動度レベルを保持する。○○を満たす行動発生とは、○○を満たす行動が最終目標であるスキーマを実行することに相当する。
【0286】
内部状態の活動度レベルは、スキーマを実行したときの1次情動における階層毎の変化量ΔIに基づく2次情動の満足度の変化ΔEの総和によって決定される。ここで、1次情動がL1,L2,L3の3階層からなり、スキーマ選択時の1次情動の各階層に由来する2次情動の変化をそれぞれΔEL1,ΔEL2,ΔEL3,とすると、それぞれに重み因子w1,w2,w3を掛けて活動度レベルを算出する。下位の1次情動に対する重み因子をより大きくすることにより、下位の1次情動を満たす行動がより選択され易くなる。また、これら重み因子を調整することにより、各階層の1次情動が直近の階層に対して圧力をかける(Concentration:行動抑制)という作用を得ることができる。
【0287】
ここで、情動の階層化構造を利用した行動選択の実施例について説明する。但し、以下では下位の1次情動としてSleep(眠気)を、上位の1次情動としてCuriosity(好奇心)を扱う。
【0288】
(1)下位の1次情動であるSleepが不足してきて、Sleepを満たすスキーマの活動度レベルが高まってきたとする。このとき、他のスキーマの活動度レベルが上がらなければ、Sleepを満たすスキーマは、Sleepが満たされるまで自身を実行する。
【0289】
(2)Sleepが満たされる前に、上位の1次情動であるCuriosityが不足してきたとする。しかし、Sleepのほうが個体維持に直結するため、Sleepの活動度レベルが一定値以下になるまでは、Sleepを満たすスキーマが実行し続ける。そして、Sleepがある程度満たされたら、Curiosityを満たすスキーマを実行することができる。
【0290】
(3)Curiosityを満たすスキーマ実行中に手を勢いよくロボットの顔面に近づけたとする。これに応答して、ロボットは色認識と大きさ認識による突然肌色が近づいてきたことが判り、生得的な反射行動として手から顔を避ける、すなわち後ろに頭を引くという動作を反射的に行なう。この反射的な動作は動物の脊髄反射に相当する。反射は、最も下位にあるスキーマなので、反射スキーマがまず実行される。
【0291】
脊髄反射の後、それに伴う情動変化が起き、その変化幅と他のスキーマの活動度レベルから、続いて情動表出スキーマを行なうかどうかを決定する。情動表出スキーマが行なわれていない場合は、Curiosityを満たすスキーマが続行される。
【0292】
(4)あるスキーマ自身の下位にあるスキーマは通常自身より選択される可能性が高いが、自身の活動度レベルが極端に高いときに限り、下位のスキーマを抑制して(Concentration)、一定値まで自身を実行することが可能である。Sleepの不足が著しいときは、反射行動スキーマの行動を出したいときであっても、一定値に回復するまではSleepを満たすスキーマが優先的に実行される。
【0293】
E−2.他の機能モジュールとの連携
図37には、内部状態管理部104と他の機能モジュールとの通信経路を模式的に示している。
【0294】
短期記憶部105は、外部環境の変化を認識する各認識機能部101〜103からの認識結果を、内部状態管理部104と状況依存行動階層108に出力する。
内部状態管理部104は、状況依存行動階層108に内部状態を通知する。これに対し、状況依存行動階層108は、連想又は決定した本能や感情の情報を返す。
【0295】
また、状況依存行動階層108は、内部状態と外部環境から算出される活動度レベルを基に行動を選択するとともに、選択した行動の実行と完了を短期記憶部105経由で内部状態管理部104に通知する。
【0296】
内部状態管理部104は、行動毎に内部状態を長期記憶部106に出力する。これに対し、長期記憶部106は、記憶情報を返す。
【0297】
バイオリズム管理部は、バイオリズム情報を内部状態管理部104に供給する。
【0298】
E−3.時間経過による内部状態の変化
内部状態の指標は時間経過により変化する。例えば、1次情動すなわち本能であるHunger(空腹感)、Fatigue(疲労)、Sleep(眠気)は、時間経過によりそれぞれ以下のように変化する。
【0299】
Hunger:おなかが減る(仮想値又はバッテリ残量)
Fatigue:疲れがたまる
Sleep:眠気がたまる
【0300】
また、本実施形態では、ロボットの2次情動すなわち感情(Emotion)の要素としてPleasantness(満足度),Activation(活動度),Certainty(確信度)を定義しているが、時間経過によりそれぞれ以下のように変化する。
【0301】
Pleasantness:Neutral(中立)に向かって変化する
Activation:バイオリズムやSleep(眠気)に依存する
Certainty:Attentionに依存する
【0302】
図38には、内部状態管理部104が時間変化に伴って内部状態を変化させるための仕組みを示している。
【0303】
図示のように、バイオリズム管理部は、一定の周期でバイオリズム情報を通知する。これに対し、内部状態管理部104は、バイオリズムにより1次情動の各要素の値を変更するとともに、2次情動であるActivation(活動度)を変動させる。そして、状況依存行動階層108は、バイオリズム管理部からの通知がある度に、内部状態管理部104から本能や感情など内部状態の指標値を受け取るので、内部状態を基に各スキーマの活動度レベルを算出することにより、状況に依存した行動(スキーマ)を選択することができる。
【0304】
E−4.動作実行による内部状態の変化
内部状態は、ロボットが動作を実行することによっても変化する。
【0305】
例えば、「眠る」という行動を行なうスキーマは、下位の1次情動としてのSleep(眠気)を満たす行動が最終目標としている。状況依存行動階層108では、1次情動としてのSleepと2次情動としてのActivationを基に各スキーマの活動度レベルを算出・比較して、「眠る」スキーマを選択し、この結果、眠るという行動が実現される。
【0306】
一方、状況依存行動階層108は、眠るという行動の実行完了を短期記憶部105経由で内部状態管理部104に伝達する。これに対し、内部状態管理部104は、「眠る」行動の実行により、1次情動であるSleepの指標値を変更する。
【0307】
そして、状況依存行動階層108では、Sleepが満たされた度合いと2次情動としてのActivationを基に各スキーマの活動度レベルを改めて算出・比較する。この結果、優先度が高くなった他のスキーマを選択し、眠るというスキーマから抜ける。
【0308】
図39には、内部状態管理部104がロボットの動作実行により内部状態を変化させるための仕組みを示している。
【0309】
状況依存行動階層108は、状況依存型で選択された行動の実行開始及び実行終了、並びにAttention情報を、短期記憶部105経由で内部状態管理部104に通知する。
【0310】
内部状態管理部104は、選択された行動の実行完了情報が通知されると、Attention情報に則って、短期記憶部105から得た外部環境を確認して、1次情動としての本能(Sleep)の指標値を変更するとともに、これに伴って2次情動としての感情も変更する。そして、これら内部状態の更新データを、状況依存行動階層108並びに長期記憶部106に出力する。
状況依存行動階層108では、新たに受け取った内部状態の指標値を基に、各スキーマの活動度レベルを算出して、状況に依存した次の行動(スキーマ)を選択する。
【0311】
また、長期記憶部106は、内部状態の更新データを基に記憶情報を更新するとともに、更新内容を内部状態管理部104に通知する。内部状態管理部104では、外部環境に対する確信度と長期記憶部106の確信度により、2次情動としての確信度(Certainty)を決定する。
【0312】
E−5.センサ情報による内部状態の変化
ロボットが動作を実行したときのその動作程度は、各認識機能部101〜103によって認識され、短期記憶部105経由で内部状態管理部104に通知される。内部状態管理部104は、この動作程度を例えばFatigue(疲労)として1次情動の変化に反映させることができる。また、この1次情動の変化に応答して、2次情動も変化させることができる。
【0313】
図40には、内部状態管理部104が外部環境の認識結果により内部状態を変化させるための仕組みを示している。
【0314】
内部状態管理部104は、短期記憶部105経由で各認識機能部101〜103による認識結果を受け取ると、1次情動の指標値を変更するとともに、これに伴って2次情動としての感情も変更する。そして、これら内部状態の更新データを、状況依存行動階層108に出力する。
【0315】
状況依存行動階層108では、新たに受け取った内部状態の指標値を基に、各スキーマの活動度レベルを算出して、状況に依存した次の行動(スキーマ)を選択することができる。
【0316】
E−6.連想による内部状態の変化
既に述べたように、本実施形態に係るロボットは、長期記憶部106において連想記憶機能を備えている。この連想記憶は、あらかじめ複数のシンボルからなる入力パターンを記憶パターンとして記憶しておき、その中のある1つのパターンに類似したパターンが想起される仕組みのことであり、外部刺激から内部状態の変化を連想記憶することができる。
【0317】
例えば、りんごが見えた場合に「嬉しい」という情動の変化を起こす場合について考察してみる。
【0318】
りんごが視覚認識機能部101において認識されると、短期記憶部105を経由して状況依存行動階層108に外部環境の変化として通知される。
【0319】
長期記憶部106では、「りんご」に関する連想記憶により、「(りんごを)食べる」という行動と、食べることにより1次情動(空腹感)が指標値で30だけ満たされるという内部状態の変化を想起することができる。
【0320】
状況依存行動階層108は、長期記憶部106から記憶情報を受け取ると、内部状態の変化ΔI=30を、内部状態管理部104に通知する。
【0321】
内部状態管理部104では、通知されたΔIを基に、2次情動の変化量ΔEを算出して、りんごを食べることによる2次情動Eの指標値を得ることができる。
【0322】
図41には、内部状態管理部104が連想記憶により内部状態を変化させるための仕組みを示している。
【0323】
外部環境が短期記憶部105を経由して状況依存行動階層108に通知される。長期記憶部106の連想記憶機能により、外部環境に応じた行動と、1次情動の変化ΔIを想起することができる。
【0324】
状況依存行動階層108は、この連想記憶により得られた記憶情報を基に行動を選択するとともに、1次情動の変化ΔIを内部状態管理部104に通知する。
【0325】
内部状態管理部104では、通知を受けた1次情動の変化ΔIと、自身で管理している1次情動の指標値とを基に、2次情動の変化ΔEを算出して、2次情動を変化させる。そして、新たに生成された1次情動及び2次情動を、内部状態更新データとして状況依存行動階層108に出力する。
【0326】
状況依存行動階層108では、新たに受け取った内部状態の指標値を基に、各スキーマの活動度レベルを算出して、状況に依存した次の行動(スキーマ)を選択することができる。
【0327】
E−7.生得的な行動による内部状態の変化
本実施形態に係るロボットが動作実行により内部状態を変化させることは既に述べた通りである(図39を参照のこと)。この場合、1次情動と2次情動からなる内部状態の指標値を基に行動が選択されるとともに、行動の実行完了により情動が満たされる。他方、本実施形態に係るロボットは、情動に依存しない、生得的な反射行動も規定されている。この場合、外部環境の変化に応じて反射行動が直接選択されることになり、通常の動作実行による内部変化とは異なる仕組みとなる。
【0328】
例えば、大きなものが突然現れたときに生得的な反射行動をとる場合について考察してみる。
【0329】
このような場合、例えば視覚的認識機能部101による「大きいもの」という認識結果(センサ情報)は、短期記憶部105を介さず、状況依存行動階層108に直接入力される。
【0330】
状況依存行動階層108では、「大きいもの」という外部刺激により各スキーマの活動度レベルを算出して、適当な行動を選択する(図15、図25及び図26を参照のこと)。この場合、状況依存行動階層108では、「よける」という脊髄反射的行動を選択するとともに、「驚く」という2次情動を決定して、これを内部状態管理部104に通知する。
【0331】
内部状態管理部104では、状況依存行動階層108から送られてきた2次情動を自身の感情として出力する。
【0332】
図42には、内部状態管理部104が生得的反射行動により内部状態を変化させるための仕組みを示している。
【0333】
生得的な反射行動を行なう場合、各認識機能部101〜103による戦さ情報は、短期記憶部105を介さず、状況依存行動階層108に直接入力される。
状況依存行動階層108では、センサ情報として得た外部刺激により各スキーマの活動度レベルを算出して、適当な行動を選択するとともに、2次情動を決定して、これを内部状態管理部104に通知する。
【0334】
内部状態管理部104では、状況依存行動階層108から送られてきた2次情動を自身の感情として出力する。また、状況依存行動階層108からのActivationに対して、バイオリズムの高低によって最終的なActivationを決定する。
【0335】
状況依存行動階層108では、新たに受け取った内部状態の指標値を基に、各スキーマの活動度レベルを算出して、状況に依存した次の行動(スキーマ)を選択することができる。
【0336】
E−8.スキーマと内部状態管理部との関係
状況依存行動階層108は、複数のスキーマで構成され、各スキーマ毎に外部刺激や内部状態の変化によって活動度レベルを算出して、活動度レベルの度合いに応じてスキーマを選択して行動を実行する(図18、図19、図25を参照のこと)。
【0337】
図43には、スキーマと内部状態管理部との関係を模式的に示している。
スキーマは、DSubjectやDObjectなどのプロキシを介して、短期記憶部105、長期記憶部106、内部状態管理部104などの外部オブジェクトと通信することができる(図30を参照のこと)。
【0338】
スキーマは、外部刺激や内部状態の変化によって活動度レベルを算出するクラス・オブジェクトを備えている。RM(Resource Management)オブジェクトは、プロキシを介して短期記憶部105に通信して、外部環境を取得して、外部環境に基づく活動度レベルを算出する。また、Motivation算出クラス・オブジェクトは、プロキシを介して長期記憶部106並びに内部状態管理部104と通信して、内部状態の変化量を取得して、内部状態に基づく活動度レベルすなわちMotivationを算出する。Motivationの算出方法に関しては後に詳解する。
【0339】
内部状態管理部104は、既に述べたように、1次情動と2次情動とに段階的に階層化されている。また、1次情動に関しては、生得的反応による1次情動階層と、ホメオスタシスによる1次情動と、連想による1次情動とに次元的に階層化されている(図36を参照のこと)。また、2次情動としての感情は、P(Pleasantness)、A(Activity)、C(Concentration)の3要素にマッピングされている。
【0340】
1次情動の各階層における変化ΔIはすべて2次情動に入力されて、Pleasantnessの変化ΔPの算出に利用される。
【0341】
Activityは、センサ入力、動作時間、バイオリズムなどの情報から統合的に判断される。
【0342】
また、選択されたスキーマの確信度を、実際の2次情動階層における確信度として使用する。
【0343】
図44には、Motivation算出クラス・オブジェクトによるMotivation算出経路を模式的に示している。
【0344】
RMクラス・オブジェクトは、プロキシ経由で短期記憶部105にアクセスして、センサ情報を取得し、認識された対象物の距離や大きさなどの刺激の強さに基づいて外部刺激による活動度レベルを評価する。
【0345】
一方、Motivation算出クラス・オブジェクトは、プロキシ経由で短期記憶部105にアクセスして、対象物に関する特徴を取得して、さらにプロキシ経由で長期記憶部106の対象物の特徴を問い合わせて内部状態の変化を取得する。そして、プロキシ経由で内部状態管理部104にアクセスして、ロボット内部にある内部評価値を算出する。したがって、Motivationの算出は、外部刺激の強さには無関係である。
【0346】
本実施形態に係るロボットの行動制御システムが連想記憶を用いて外部刺激から内部状態の変化を想起することにより、2次情動を算出して行動選択を行なう、ということは既に述べた(図41を参照のこと)。さらに、連想記憶を用いることにより、対象物毎に異なる内部状態の変化を想起させることができる。これによって、同じ状況でもその行動の発現し易さを異ならせることができる。すなわち、外部の刺激や物理的状況、現在の内部状態に加え、ロボットの対象物ごとの記憶を考慮して行動を選択することができ、より多彩で多様化した対応を実現することができる。
【0347】
例えば、「○○が見えているから××する」とか、「現在○○が不足だから(何に対しても)××する」などの外部環境又は内部状態によって決まった行動をするのではなく、「○○が見えても△△なので□□する」とか、「○○が見えているけど××なので■■する」など、対象物に関する内部状態の変化記憶を用いることにより、行動にバリエーションをつけることができる。
【0348】
図45には、対象物が存在するときのMotivation算出処理のメカニズムを模式的に示している。
【0349】
まず、プロキシ経由で短期記憶部105にアクセスして、認識機能部101〜103により認識されたターゲットの特徴を尋ねる。
【0350】
次いで、取り出した特徴を用いて、今度はプロキシ経由で長期記憶部106にアクセスして、その特徴の対象物がスキーマに関係した欲求をどのように変化させるか、すなわち1次情動の変化ΔIを獲得する。
【0351】
次いで、プロキシ経由で内部状態管理部104にアクセスして、欲求の変化により快不快の値がどのように変化するか、すなわち2次情動の変化ΔPleasantを引き出す。
【0352】
そして、2次情動の変化ΔPleasantと対象物の確信度を引数とする以下のMotivation算出関数gtarget−iにより、i番目のMotivationを算出する。
【0353】
【数9】
【0354】
また、図46には、対象物が存在しないときのMotivation算出処理のメカニズムを模式的に示している。
【0355】
この場合、まず、行動に対する記憶に対して、その行動による欲求の変化ΔIを尋ねる。
【0356】
次いで、取得したΔIを用いて、内部状態管理部104により1次情動がΔIだけ変化したときの2次情動の変化ΔPleasantを引き出す。そして、この場合は、2次情動の変化ΔPleasantを引数とする以下のMotivation算出関数gnottarget−iにより、i番目のMotivationを算出する。
【0357】
【数10】
【0358】
E−9.2次情動の各要素の変更方法
図47には、2次情動のうちのPleasantnessを変更するためのメカニズムを図解している。
【0359】
長期記憶部106は、記憶の量による1次情動の変化を内部状態管理部104に入力する。また、短期記憶部105は、認識機能部101〜103からのセンサ入力による1次情動の変化を内部状態管理部104に入力する。
【0360】
また、スキーマは、スキーマ実行による1次情動の変化(Nourishment,Moisture,Sleep)や、スキーマの内容による1次情動の変化(Affection)を内部状態管理部104に入力する。
【0361】
Pleasantnessは、1次情動の過不足の変化に応じて決定される。
【0362】
また、図48には、2次情動のうちのActivityを変更するためのメカニズムを図解している。
【0363】
Activityは、スキーマのSleep以外の時間の総和と、バイオリズムと、センサ入力を基に、統合的に判断される。
【0364】
また、図49には、2次情動のうちのCertaintyを変更するためのメカニズムを図解している。
【0365】
長期記憶部106に対して対象物を尋ねると、Certaintyが返される。どの1次情動に着目するかは、そのスキーマの目標とする行動に依存する。そして、引き出されたCertaintyがそのまま内部状態管理部104の2次情動におけるCertaintyとなる。
【0366】
図50には、Certaintyを求めるためのメカニズムを模式的に示している。
【0367】
長期記憶部106では、対象物に関する認識結果や情動などの各項目の確からしさを、スキーマ毎に記憶している。
【0368】
スキーマは、長期記憶部106に対して、スキーマと関係する記憶の対する確からしさの値を尋ねる。これに対し、長期記憶部106は、スキーマと関係する記憶の確からしさを対象物の確からしさとして与える。
【0369】
[追補]
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【0370】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置であるならば、例えば玩具等のような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【0371】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0372】
【発明の効果】
本発明によれば、自律的な動作を行ないユーザとのリアリスティックなコミュニケーションを実現することができる、優れたロボットの行動制御システム及び行動制御方法、並びにロボット装置を提供することができる。
【0373】
また、本発明によれば、視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況を統合的に判断して行動を選択することができる、優れたロボットの行動制御システム及び行動制御方法、並びにロボット装置を提供することができる。
【0374】
また、本発明によれば、視覚や聴覚などの外部環境の認識結果や本能や感情などの内部状態などのロボットが置かれている状況を統合的に判断して行動を選択することができる、優れたロボットの行動制御システム及び行動制御方法、並びにロボット装置を提供することができる。
【0375】
また、本発明によれば、情動についての存在意義をより明確にして、一定の秩序の下で外部刺激や内部状態に応じた行動を好適に選択し実行することができる、優れたロボットの行動制御システム及び行動制御方法、並びにロボット装置を提供することができる。
【0376】
本発明によれば、情動についてその存在意義による複数階層化を行ない、それぞれの階層で動作を決定する。決定された複数の動作から、そのときの外部刺激や内部状態によってどの動作を行なうかを決定する。それぞれの階層で行動は選択されるが、その実施される順番はロボットの内部状態の優先順位に基づくため、より低次の行動から優先的に動作を発現していくことにより、反射などの本能的行動や、記憶を用いた動作選択などの高次の行動を1つの個体上で矛盾なく発現することができる。また、行動をカテゴライズして、スキーマとして作成する際も明確な指標となる。
【0377】
また、本発明に係るロボットの行動制御システム又は行動制御方法によれば、連想記憶を用いることにより、対象物毎に異なる内部状態の変化を想起することができるので、同じ状況でもその行動の発現し易さを異ならせることができる。すなわち、外部の刺激や物理的状況、現在の内部状態に加え、ロボットの対象物ごとの記憶を考慮して行動を選択することができ、より多彩で多様化した対応を実現することができる。
【0378】
例えば、「○○が見えているから××する」とか、「現在○○が不足だから(何に対しても)××する」などの外部環境又は内部状態によって決まった行動をするのではなく、「○○が見えても△△なので□□する」とか、「○○が見えているけど××なので■■する」など、対象物に関する内部状態の変化記憶を用いることにより、行動にバリエーションを付けることができる。
【図面の簡単な説明】
【図1】本発明に実施に供されるロボット装置1の機能構成を模式的に示した図である。
【図2】制御ユニット20の構成をさらに詳細に示した図である。
【図3】本発明の実施形態に係るロボット装置1の行動制御システム100の機能構成を模式的に示した図である。
【図4】図3に示した行動制御システム100を構成する各オブジェクトによる動作の流れを示した図である。
【図5】各認識機能部101〜103における認識結果に基づいて短期記憶部105内のターゲット・メモリに入る情報の流れを示した図である。
【図6】各認識機能部101〜103における認識結果に基づいて短期記憶部105内のイベント・メモリに入る情報の流れを示した図である。
【図7】ロボット1によるユーザA及びBとの対話処理を説明するための図である。
【図8】ロボット1によるユーザA及びBとの対話処理を説明するための図である。
【図9】ロボット1によるユーザA及びBとの対話処理を説明するための図である。
【図10】本発明の一実施形態に係る連想記憶の記憶過程を概念的に示した図である。
【図11】本発明の一実施形態に係る連想記憶の想起過程を概念的に示した図である。
【図12】競合型ニューラル・ネットワークを適用した連想記憶システムの構成例を模式的に示した図である。
【図13】本発明の実施形態に係る行動制御システム100のオブジェクト構成を模式的に示した図である。
【図14】状況依存行動階層108による状況依存行動制御の形態を模式的に示した図である。
【図15】図14に示した状況依存行動階層108による行動制御の基本的な動作例を示した図である。
【図16】図14に示した状況依存行動階層108により反射行動を行なう場合の動作例を示した図である。
【図17】図14に示した状況依存行動階層108により感情表現を行なう場合の動作例を示した図である。
【図18】状況依存行動階層108が複数のスキーマによって構成されている様子を模式的に示した図である。
【図19】状況依存行動階層108におけるスキーマのツリー構造を模式的に示した図である。
【図20】スキーマの内部構成を模式的に示している。
【図21】Monitor関数の内部構成を模式的に示した図である。
【図22】行動状態制御部の構成例を模式的に示した図である。
【図23】行動状態制御部の他の構成例を模式的に示した図である。
【図24】状況依存行動階層108において通常の状況依存行動を制御するためのメカニズムを模式的に示した図である。
【図25】反射行動部109におけるスキーマの構成を模式的に示した図である。
【図26】反射行動部109により反射的行動を制御するためのメカニズムを模式的に示した図である。
【図27】状況依存行動階層108において使用されるスキーマのクラス定義を模式的に示した図である。
【図28】スキーマのaction関数のステートマシンを示した図である。
【図29】スキーマのステートマシンを示した図である。
【図30】状況依存行動階層108内のクラスの機能的構成を模式的に示した図である。
【図31】MakePronome関数を実行する処理手順を示したフローチャートである。
【図32】Monitor関数を実行する処理手順を示したフローチャートである。
【図33】Actions関数を実行する処理手順を示したフローチャートである。
【図34】Actions関数を実行する処理手順を示したフローチャートである。
【図35】スキーマのReentrant性を説明するための図である。
【図36】本実施形態に係る内部状態管理部104の階層的構成を模式的に示した図である。
【図37】内部状態管理部104と他の機能モジュールとの通信経路を模式的に示した図である。
【図38】内部状態管理部104が時間変化に伴って内部状態を変化させるための仕組みを示した図である。
【図39】内部状態管理部104がロボットの動作実行に伴って内部状態を変化させるための仕組みを示した図である。
【図40】内部状態管理部104が外部環境の認識結果により内部状態を変化させるための仕組みを示した図である。
【図41】内部状態管理部104が連想記憶により内部状態を変化させるための仕組みを示した図である。
【図42】内部状態管理部104が生得的反射行動により内部状態を変化させるための仕組みを示した図である。
【図43】スキーマと内部状態管理部との関係を模式的に示した図である。
【図44】Motivation算出クラス・オブジェクトによるMotivation算出経路を模式的に示した図である。
【図45】対象物が存在するときのMotivation算出処理のメカニズムを模式的に示した図である。
【図46】対象物が存在しないときのMotivation算出処理のメカニズムを模式的に示した図である。
【図47】Pleasantnessの変更方法を示した図である。
【図48】Activityの変更方法を示した図である。
【図49】Certaintyの変更方法を示した図である。
【図50】Certaintyを求めるためのメカニズムを示した図である。
【符号の説明】
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…反射行動部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a behavior control system and a behavior control method for a robot that realizes realistic communication with a user by performing an autonomous operation, and a robot apparatus. In particular, the present invention relates to a recognition result and instinct of an external environment such as vision and hearing. The present invention relates to a behavior control system, a behavior control method, and a robot device for a situation-dependent behavior type robot that integrally determines a situation in which the robot is placed, such as an internal state such as emotions and emotions, and selects an appropriate behavior.
[0002]
[Prior art]
A mechanical device that performs a motion resembling a human motion using an electric or magnetic action is called a “robot”. It is said that the robot is derived from the Slavic word "ROBOTA (slave machine)". In Japan, robots began to spread from the late 1960's, but most of them were industrial robots (industrial robots) such as manipulators and transfer robots for the purpose of automation and unmanned production work in factories. Met.
[0003]
Recently, a pet-type robot that imitates the body mechanism and operation of a four-legged animal such as dogs, cats, and bears, or the body mechanism and motion of an animal that walks upright on two legs, such as a human or monkey. Research and development on the structure of a legged mobile robot such as the "humanoid" or "humanoid" robot and stable walking control thereof have been progressing, and expectations for its practical use have been increasing. These legged mobile robots are unstable compared to crawler type robots, making posture control and walking control difficult.However, they are excellent in that they can realize flexible walking and running operations such as climbing up and down stairs and over obstacles. I have.
[0004]
One of the uses of the legged mobile robot is to perform various difficult tasks in industrial activities and production activities. For example, maintenance work in nuclear power plants, thermal power plants, petrochemical plants, parts transfer and assembly work in manufacturing plants, cleaning in high-rise buildings, rescue work in fire spots and other dangerous and difficult work, etc. .
[0005]
Another use of the legged mobile robot is not the work support described above, but a life-based use, that is, a use in "symbiosis" or "entertainment" with humans. This type of robot faithfully reproduces the movement mechanism of legged walking animals, such as humans, dogs (pets), and bears, and rich emotional expressions using limbs. In addition, it does not simply execute a pre-input motion pattern faithfully, but also dynamically responds to words and attitudes received from the user (or another robot) (such as "praise", "scratch", and "slap"). It is also required to realize a corresponding and lively response expression.
[0006]
In the conventional toy machine, the relationship between the user operation and the response operation is fixed, and the operation of the toy cannot be changed according to the user's preference. As a result, the user eventually gets tired of toys that repeat only the same operation. On the other hand, an intelligent robot autonomously selects an action including a dialogue and a body motion, so that it is possible to realize realistic communication at a higher intellectual level. As a result, the user feels a deep attachment and familiarity with the robot.
[0007]
In robots or other realistic dialogue systems, it is common to select actions sequentially in response to changes in the external environment, such as vision and hearing. Further, as another example of the action selection mechanism, a mechanism in which emotions such as instinct and emotion are modeled to manage an internal state of the system, and an action is selected according to a change in the internal state. Of course, the internal state of the system changes due to changes in the external environment, and also changes due to the selected action.
[0008]
However, there are few examples of situation-dependent action control in which a situation in which a robot such as an external environment or an internal state is placed is integrated and an action is selected.
[0009]
Here, the internal state includes, for example, an instinct element corresponding to access to the limbic system in a living body, and intrinsic and social needs corresponding to access to the cerebral neocortex. In addition, it is composed of elements captured by the ethological model, and elements called emotions such as joy, sadness, anger, and surprise.
[0010]
In conventional intelligent robots and other autonomous interactive robots, internal states composed of various factors such as instinct and emotion are all collected as “emotional” to manage the internal state one-dimensionally. That is, each element constituting the internal state exists in parallel with each other, and the action is selected only based on the external situation or the internal state without a clear selection criterion.
[0011]
In conventional systems, the choice and manifestation of the action was that all actions existed in one dimension and which one to choose. For this reason, as the number of operations increases, the selection becomes more complicated, and it becomes more difficult to select an action that reflects the situation or internal state at that time.
[0012]
[Problems to be solved by the invention]
An object of the present invention is to provide an excellent behavior control system and behavior control method for a robot, and a robot apparatus that can realize a realistic communication by performing an autonomous operation.
[0013]
A further object of the present invention is to be able to select an action by integrally judging a situation where a robot is placed such as a recognition result of an external environment such as vision or hearing and an internal state such as instinct and emotion. To provide a robot behavior control system and behavior control method, and a robot apparatus.
[0014]
A further object of the present invention is to provide an excellent robotic behavior control that can clarify the significance of existence of emotions and can appropriately select and execute an action according to an external stimulus or an internal state under a certain order. It is to provide a system, a behavior control method, and a robot device.
[0015]
A further object of the present invention is to be able to select an action by integrally judging a situation where a robot is placed such as a recognition result of an external environment such as vision or hearing and an internal state such as instinct and emotion. To provide a robot behavior control system and behavior control method, and a robot apparatus.
[0016]
Means and Action for Solving the Problems
The present invention has been made in view of the above problems, and a first aspect thereof is a behavior control system for a robot that operates autonomously,
A plurality of action description sections for describing the body motion of the robot,
An external environment recognition unit that recognizes the external environment of the aircraft,
An internal state management unit that manages the internal state of the robot according to the recognized external environment and / or the execution result of the action;
An action evaluation unit that evaluates the execution of the action described in each of the action description units according to the external environment and / or the internal state;
A robot behavior control system characterized by comprising:
[0017]
However, the term “system” as used herein refers to a logical collection of a plurality of devices (or functional modules that realize specific functions), and each device or functional module is in a single housing. It does not matter in particular.
[0018]
The external environment recognition unit performs at least one of external visual recognition, externally generated voice recognition, and externally applied contact recognition. The internal state management unit manages an instinct model and / or an emotion model of the robot.
[0019]
The behavior description section may be configured in a tree structure format in which a plurality of behavior description sections correspond to the realization level of the body operation. This tree structure includes a plurality of branches such as a behavior model in which an ethological situation-dependent behavior is formalized, and a branch for executing an emotional expression. For example, at the level immediately below the root action description section, action description sections of "Search (Investigate)", "Eat (Ingestive)", and "Play (Play)" are provided. Below “Search (Investigate)”, an action description section that describes more specific search actions, such as “InvestigativeLocomotion”, “HeadinAirSniffing”, and “InvestigativeSniffing”, is provided. Similarly, below the action description section "Eat (Ingestive)", an action description section describing more specific eating and drinking behavior such as "Eat" and "Dlink" is provided, and the action description section "Play (Play)" is provided. Below the "", an action description section that describes more specific playing actions such as "Play Bowing", "Play Greeting", and "Play Paying" is provided.
[0020]
In such a case, the behavior evaluation section can evaluate a plurality of behavior description sections simultaneously and in parallel from top to bottom of the tree structure. Further, in response to the new recognition by the external environment recognition unit and / or the change of the internal state by the internal state management unit, the behavior evaluation unit evaluates each of the behavior description units, and the tree structure is raised. By passing the execution permission as an evaluation result downward from, it is possible to selectively execute an appropriate action according to a change in the external environment or the internal state. That is, the evaluation and execution of the situation-dependent behavior can be performed on the current.
[0021]
Further, the apparatus may further include a resource management unit that manages contention of resources on the machine when simultaneously executing the actions described in the plurality of action description units. In such a case, the behavior selection unit can simultaneously select two or more behavior description units on the assumption that resource competition is arbitrated.
[0022]
Also, as a result of performing the evaluation of each of the action description units by the action evaluation unit by the new recognition by the external environment recognition unit, when an action description unit that has obtained a higher evaluation value than the currently executing action appears, The action selecting unit may stop the currently executing action and preferentially execute the action described in the action description unit having the higher evaluation value. Therefore, an action with a higher degree of importance or urgency such as a reflex action can be interrupted to a situation-dependent action that is already being executed, and can be executed with priority. In such a case, it is preferable to restart the temporarily stopped action after the action that has been preferentially executed is completed.
[0023]
Further, the action selecting unit may sequentially select the same action description unit according to a change in a different external environment. In such a case, each time the action described in the action description section is executed, an individual work space is allocated to each external environment.
[0024]
For example, during the action of the dialogue with the person A, the person B interrupts the dialogue between the robot and the person A and evaluates the activity level based on the external stimulus and the change in the internal state. When the action of performing the action has a higher priority, the conversation with B is interrupted.
[0025]
In such a case, the dialogue with either A or B is performed in accordance with the same action description part. However, apart from the action performing the dialogue with A, a work space for the action performing the dialogue with B is allocated. This prevents interference of the contents of the dialogue. That is, since the conversation with B does not destroy the contents of the conversation with A, when the conversation with B ends, the conversation with A can be resumed from the point of interruption.
[0026]
Further, a second aspect of the present invention is a behavior control system or behavior control method for a robot that operates autonomously according to an internal state,
An internal state management unit or step for managing emotions, which are indicators of the internal state, in a plurality of hierarchical structures,
An action selecting unit or step for selectively executing an action that satisfies the emotion of each hierarchy;
A robot behavior control system or behavior control method characterized by the following.
[0027]
Here, the internal state management unit or step hierarchizes each stage of a primary emotion necessary for the existence of an individual and a secondary emotion that changes due to excess or deficiency of the primary emotion. May be hierarchized by dimension from innate reflex or physiological hierarchy to associative.
[0028]
The action selecting unit or step may preferentially select an action that satisfies a lower primary emotion. Alternatively, the action selecting unit or step suppresses the selection of an action that satisfies the lower-order primary emotion when the higher-order primary emotion is significantly insufficient compared to the lower-order primary emotion. You may do so.
[0029]
According to the behavior control system or the behavior control method for a robot according to the second aspect of the present invention, emotions are divided into a plurality of layers according to their existence significance, and an operation is determined at each layer. From the determined plurality of operations, it is determined which operation is to be performed depending on the external stimulus or internal state at that time. Actions are selected at each level, but the order in which they are performed is based on the priority of the robot's internal state. Higher-level behaviors such as objective behaviors and motion selection using memory can be consistently expressed on one individual. It is also a clear index when categorizing actions and creating a schema.
[0030]
The behavior control system or behavior control method for a robot according to the second aspect of the present invention may further include an external environment recognition unit that recognizes a change in the external environment of the robot. In such a case, the action selecting unit or step can select an action based on an index of the external environment in addition to the index of the internal state.
[0031]
Further, the internal state management unit step may change the index of the internal state in accordance with the passage of time using a biorhythm or the like.
[0032]
Further, the internal state management unit or the step may change the index of the internal state according to the execution of the action selected by the action selection unit, that is, according to the degree of the operation.
[0033]
Further, the internal state management unit or the step may change an index of the internal state according to a change in an external environment.
[0034]
The robot behavior control system or method according to the second aspect of the present invention may further include an associative storage unit or step for associatively storing a change in an internal state from an external environment. In such a case, the internal state management unit or the step may change the index of the internal state based on a change in the internal environment recalled from the external environment by the associative storage unit or the step. Further, the associative storage unit or the step may associate and store a change in an internal state for each object whose external environment is recognized.
[0035]
The selection and expression of motion in a conventional robot is basically determined by the physical distance to the object and the internal state of the robot at that time, in other words, what kind of action depends on the difference of the object There is no action choice to take.
[0036]
On the other hand, according to the robot behavior control system or the behavior control method according to the second aspect of the present invention, by using the associative memory, it is possible to recall a change in the internal state that differs for each target object. Even in the same situation, the easiness of the action can be made different. That is, in addition to the external stimulus, the physical state, and the current internal state, the action can be selected in consideration of the memory of each object of the robot, and a more diversified and diversified response can be realized.
[0037]
For example, instead of taking actions determined by the external environment or internal state, such as "XX is visible because XX is visible", or "XX is currently insufficient (for anything) XX" , Such as "Even if you can see XX, so □□," or "I can see XX but XX, so XX." Can be attached.
[0038]
Further objects, features, and advantages of the present invention will become apparent from more detailed descriptions based on embodiments of the present invention described below and the accompanying drawings.
[0039]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0040]
A. Configuration of robot device
FIG. 1 schematically shows a functional configuration of a
[0041]
The input /
[0042]
The
[0043]
Depending on how the drive units are combined, the
[0044]
The power supply unit 60 is a functional module that supplies power to each electric circuit and the like in the
[0045]
The charging
[0046]
Further, the charge /
[0047]
The
[0048]
FIG. 2 illustrates the configuration of the
[0049]
A RAM (Random Access Memory) 22 is a writable memory composed of a volatile memory such as a DRAM (Dynamic RAM), and loads a program code executed by the
[0050]
The ROM (Read Only Memory) 23 is a read-only memory that permanently stores programs and data. The program code stored in the
[0051]
The control program of the
[0052]
The
[0053]
The
[0054]
The
[0055]
As another example of the
Further, the
[0056]
By such data communication between the
[0057]
B. Behavior control system for robot device
FIG. 3 schematically shows a functional configuration of the behavior control system 100 of the
[0058]
The illustrated behavior control system 100 can be implemented using object-oriented programming. In this case, each software is handled in a module unit called an “object” that integrates data and a processing procedure for the data. Further, each object can perform data transfer and Invoke by message communication and an inter-object communication method using a shared memory.
[0059]
The behavior control system 100 includes a visual
[0060]
The visual recognition function unit (Video) 51 performs image recognition such as face recognition and color recognition based on a captured image input via an image input device such as a CCD (Charge Coupled Device) camera. Performs processing and feature extraction. The visual recognition function unit 51 is composed of a plurality of objects such as “MultiColorTracker”, “FaceDetector”, and “FaceIdentify”, which will be described later.
[0061]
The auditory recognition function unit (Audio) 52 performs voice recognition of voice data input via a voice input device such as a microphone, and performs feature extraction and word set (text) recognition. The auditory recognition function unit 52 is composed of a plurality of objects such as “AudioRecog” and “AuthurDecoder” to be described later.
The contact recognition function unit (Tactile) 53 recognizes a sensor signal from a contact sensor built in, for example, the head of the body, and recognizes an external stimulus such as “patched” or “hit”.
[0062]
An internal state manager (ISM: Internal Status Manager) 104 manages several types of emotions, such as instinct and emotion, by using mathematical models, and manages the above-described visual
[0063]
The emotion model and the instinct model have recognition results and action histories as inputs, respectively, and manage emotion values and instinct values. The behavior model can refer to these emotion values and instinct values.
[0064]
In the present embodiment, an emotion is composed of a plurality of layers according to the significance of its existence, and operates at each layer. The operation to be performed is determined from the determined plurality of operations according to the external environment or internal state at that time (described later). In addition, actions are selected at each level, but by expressing actions preferentially from lower-order actions, instinctual actions such as reflex and higher-order actions such as action selection using memory are performed. Behavior can be consistently expressed on one individual.
[0065]
The
[0066]
The short-term storage unit (ShortTermMemory) 105 is a functional module that holds, for a short time, a target or an event recognized from the external environment by the above-described visual
[0067]
The long-term storage unit (LongTermMemory) 106 is used to hold information obtained by learning, such as the name of an object, for a long time. For example, the long-
[0068]
The behavior control of the
[0069]
The reflexive behavioral behavior layer (Reflexive Behaviors Layer) 109 is a functional module that implements a reflexive body operation in response to an external stimulus recognized by the visual
[0070]
The reflex action is basically an action of directly receiving a recognition result of external information input from a sensor, classifying the result, and directly determining an output action. For example, it is preferable to implement a behavior such as chasing or nodding a human face as a reflex action.
[0071]
The situation-dependent behavior hierarchy (Suited Behaviors Layer) 108 is based on the storage contents of the short-
[0072]
The situation-
[0073]
The reflective behavior layer 107 performs a relatively long-term action plan of the
[0074]
Reflection behavior is behavior that is performed based on a given situation or a command from a human, with a reasoning or a plan for realizing it. For example, searching for a route from the position of the robot and the position of the target corresponds to a deliberate action. Such inferences and plans may require more processing time and calculation load (that is, more processing time) than the reaction time for the
[0075]
The reflection behavior hierarchy 107, the situation-
[0076]
C. Memory mechanism of robot device
As described above, the
[0077]
Short-term memory is literally short-term memory and is lost over time. Short-term memory can be used for short-term retention of targets and events recognized from the external environment, such as vision, hearing, and contact.
[0078]
The short-term memory further includes "sensory memory" in which sensory information (that is, output from the sensor) is held as it is for about one second as it is, and "direct memory" in which sensory memory is encoded and stored for a short time with a limited capacity. ], And "work memory" that stores a situation change and a context for several hours. Direct memory is said to be 7 ± 2 chunks according to neuropsychological studies. Working memory is also referred to as “intermediate memory” in comparison between short-term memory and long-term memory.
[0079]
The long-term memory is used to retain information obtained by learning, such as the name of an object, for a long time. The same pattern can be statistically processed for robust storage.
[0080]
Long-term memory is further divided into "declarative knowledge memory" and "procedural knowledge memory." The declarative knowledge memory is composed of "episode memory" which is a memory relating to a scene (for example, a scene when taught) and "semantic memory" which is a memory including the meaning of words and common sense. The procedural knowledge memory is a procedural memory such as how to use the declarative knowledge memory, and can be used to acquire an operation for an input pattern.
[0081]
C-1. Short-term memory
The short-
[0082]
For example, when a person A is talking and another person B speaks, a conversation with B is performed while maintaining the position of A and the contents of the conversation, and then a return to the conversation with A is completed. Requires a function of short-term memory. However, the integration is performed by simple closeness of spatiotemporal space such that sensor information that is close in time and space is regarded as a signal from the same object without performing integration by too complicated processing.
[0083]
In addition, in order to store the position of an object other than the object that can be distinguished by pattern recognition using a technique such as stereo vision, the object is arranged on the self-centered coordinate system. It can be used together with floor detection to stochastically store the position of an obstacle.
[0084]
In the present embodiment, the short-
[0085]
Therefore, the behavior control module configured as a higher-level module can perform a high-level behavior control by integrating a plurality of recognition results from the outside world and treating it as meaningful symbol information. In addition, using more complex recognition results such as the problem of matching with previously observed recognition results, it is possible to determine which skin color region corresponds to which person with a face, and which person's voice this voice, etc. Can be solved.
[0086]
In addition, since the information on the recognized observation result is stored in the short-term storage unit 55 as a memory, even when the observation result does not come temporarily during the autonomous operation period, the behavior control of the aircraft is performed. An object such as an application can always make an object appear to be perceived there. For example, since the information outside the field of view of the sensor is immediately and without forgetting, even if the robot once loses sight of the object, it can be found later. As a result, it is possible to realize a stable system which is resistant to the error of the recognizer and the noise of the sensor and does not depend on the notification timing of the recognizer. Further, even if the information is insufficient from the viewpoint of the recognizer alone, there is a case where another recognition result can supplement the recognition result, so that the recognition performance of the entire system is improved.
[0087]
In addition, since the related recognition results are linked, it is possible to judge an action using the related information in a higher-level module such as an application. For example, the robotic device can derive the name of the person based on the called voice. As a result, it is possible to notes, such as answer such as "Hello, XXX-san." The response of the greeting.
[0088]
FIG. 4 illustrates a mechanism of situation-dependent behavior control in response to an external stimulus in the behavior control system 100 shown in FIG. The external stimulus is taken into the system by the
[0089]
In the figure, circles represent entities called “objects” or “processes”. The whole system operates by the objects communicating asynchronously with each other. Each object performs data transfer and Invoke by a message communication and an inter-object communication method using a shared memory. Hereinafter, the function of each object will be described.
[0090]
AudioRecog:
An object that receives voice data from a voice input device such as a microphone and performs feature extraction and voice section detection. When the microphone is stereo, the sound source direction in the horizontal direction can be estimated. If it is determined that the section is a voice section, the feature amount and sound source direction of the voice data in that section are sent to ArterDecoder (described later).
[0091]
SpeechRecog:
This is an object that performs speech recognition using the speech feature amount received from AudioRecog, the speech dictionary, and the syntax dictionary. The set of recognized words is sent to the short term memory (ShortTermMemory) 105.
[0092]
MultiColorTracker:
An object for performing color recognition. The object receives image data from an image input device such as a camera, extracts a color region based on a plurality of color models stored in advance, and divides the color region into continuous regions. Information such as the position, size, and feature amount of each of the divided areas is output and sent to the short-term storage unit (ShortTermMemory) 105.
[0093]
FaceDetector:
An object for detecting a face area from an image frame. The object receives image data from an image input device such as a camera, and reduces and converts the image data into a nine-stage scale image. A rectangular area corresponding to a face is searched from all the images. Information such as the position, size, feature amount, etc. relating to the area finally determined to be a face by reducing the overlapping candidate areas is output and sent to FaceIdentify (described later).
[0094]
FaceIdentify:
An object for identifying a detected face image, a rectangular area image indicating a face area is received from FaceDetector, and the face image is compared with a person in the held personal dictionary to identify a person. Do. In this case, the face image is received from the face detection, and the ID information of the person is output together with the position and size information of the face image area.
[0095]
ShortTermMemory (short term memory):
An object that holds information about the external environment of the
[0096]
SituatedBehaviorLayer (Situation-Dependent Behavior Hierarchy):
An object that determines the behavior of the robot 1 (behavior depending on the situation) based on the information from the above-mentioned ShortTermMemory (short-term storage unit). Multiple actions can be evaluated and executed simultaneously. In addition, it is possible to switch the action to put the machine in the sleep state and activate another action.
[0097]
ResourceManager:
It is an object that performs resource arbitration of each hardware of the
[0098]
SoundPerformerTTS:
It is an object for performing voice output, performs voice synthesis in accordance with a text command given from a SituationBehaviorLayer via a ResourceManager, and performs voice output from a speaker on the body of the
[0099]
HeadMotionGenerator:
This is an object that calculates the joint angle of the neck in response to receiving a command to move the neck from the Sited BehaviorLayer via the ResourceManager. When a command of “tracking” is received, based on the position information of the object received from the ShortTermMemory, the joint angle of the neck in the direction in which the object exists is calculated and output.
[0100]
The short-
[0101]
The target memory integrates information from the respective
[0102]
The position and orientation information of the object (target) held in the target memory is not a sensor coordinate system used in each of the recognition function units 51 to 53, but a specific part on the body such as the trunk of the
[0103]
The event memory is an object that stores events occurring in the external environment from the past to the present in chronological order. Events handled in the event memory may include information on appearance and disappearance of targets, speech recognition words, and changes in external situations, such as changes in own actions and postures.
[0104]
The event includes a state change related to a certain target. Therefore, by including the ID of the target as the event information, more detailed information on the event that has occurred can be retrieved from the above-described target memory.
[0105]
FIGS. 5 and 6 show the flow of information entering the target memory and the event memory in the short-
[0106]
As shown in FIG. 5, a target detector for detecting a target from an external environment is provided in the short-term storage unit 105 (STM object). The target detector adds a new target or reflects an existing target on the recognition result based on the recognition results of the respective
[0107]
The target memory also has functions such as a garbage collector (GarbageCollector) for searching for and erasing targets that are no longer observed, and a target associate (TargetAssociate) for determining the relevance of a plurality of targets and linking them to the same target. There is. The garbage collector is implemented by decrementing the certainty factor of the target as time passes, and deleting a target whose certainty factor falls below a predetermined value. In addition, the target associate can identify the same target by having a spatial and temporal proximity between targets having similar features of the same attribute (recognition type).
[0108]
The above-described situation-dependent behavior hierarchy (SBL) is an object serving as a client (STM client) of the short-
[0109]
As shown in FIG. 6, an event detector for detecting an event occurring in an external environment is provided in the short-term storage unit 105 (STM object). This event detector detects generation of a target by the target detector and deletion of the target by the garbage collector as events. When the recognition result by the
[0110]
The situation-dependent behavior hierarchy (SBL) is an object serving as a client (STM client) of the short-
[0111]
According to the short-term memory mechanism according to the present embodiment, the
[0112]
Hereinafter, the dialog processing with the users A and B by the
[0113]
First, as shown in FIG. 7, when the user A calls "Masahiro (robot name) -kun!", Sound direction detection, voice recognition, and face identification are performed by each of the recognition function units 51 to 53, and the user A is called. Then, a situation-dependent action of tracking the face of the user A or starting a conversation with the user A is performed.
[0114]
Next, as shown in FIG. 8, when the user B calls “Masahiro (robot name) -kun!”, Sound direction detection, voice recognition, and face identification are performed by each of the
[0115]
Next, as shown in FIG. 9, when the user A shouts “Oh!” And prompts the continuation of the conversation, the user A interrupts the conversation with the user B (however, the context of the conversation is saved). In the called direction, a situation-dependent action of tracking the face of the user A or restarting the conversation with the user A based on the stored context is performed. At this time, by the Reentrant function (described later) of the context-
[0116]
C-2. Long-term memory
Long-term memory is used to retain information obtained by learning, such as the name of an object, for a long time. The same pattern can be statistically processed for robust storage.
[0117]
Long-term memory is further divided into "declarative knowledge memory" and "procedural knowledge memory." The declarative knowledge memory is composed of "episode memory" which is a memory relating to a scene (for example, a scene when taught) and "semantic memory" which is a memory including the meaning of words and common sense. The procedural knowledge memory is a procedural memory such as how to use the declarative knowledge memory, and can be used to acquire an operation for an input pattern.
[0118]
Episode memory is a kind of declarative knowledge memory (also called statement memory) among long-term memories. For example, considering riding a bicycle, remembering the scene (time, place, etc.) of riding a bicycle for the first time corresponds to episode memory. Thereafter, while the memory relating to the episode fades with the passage of time, the meaning is stored in the meaning memory. Also, the procedure of riding a bicycle is stored, which corresponds to procedural knowledge storage. Generally, storing procedural knowledge takes time. While declarative knowledge memory can say, procedural knowledge memory is latent and manifests itself in performing actions.
[0119]
The long-
[0120]
C-2-1. Associative memory
The associative memory refers to a mechanism in which an input pattern including a plurality of symbols is stored in advance as a storage pattern, and a pattern similar to a certain one of the input patterns is recalled. The associative memory according to the present embodiment is realized by a model using a competitive neural network. According to such an associative memory mechanism, when a pattern having a partial defect is input, the closest storage pattern among a plurality of stored patterns can be output. This is because even when only an external stimulus composed of incomplete data is given, the meaning of a certain object can be recalled by firing the corresponding neuron.
[0121]
Associative memories are broadly classified into "self-associative associative memories" and "mutual associative associative memories." The self-recall type is a model in which a stored pattern is directly extracted by a key pattern, and the mutual recall type is a model in which an input pattern and an output pattern are connected by a certain association. In the present embodiment, a self-recall type associative memory is adopted. However, compared to a conventional memory model such as a Hopfield or an associatron (described above), a statistical storage of an input pattern which is easy to perform additional learning is performed. Is possible.
[0122]
According to the additional learning, even if a new pattern is newly stored, the past storage is not overwritten and erased. Also, according to statistical learning, the more the same thing is seen, the more it remains in the memory, and the more the same thing is repeatedly executed, the more difficult it is to forget. In this case, in the storage process, even if a complete pattern is not input each time, the pattern repeatedly converges to many presented patterns.
[0123]
C-2-2. Semantic memory by associative memory
The pattern that the
[0124]
Here, the external stimulus is perceptual information obtained by the
You.
[0125]
The internal state refers to, for example, emotions such as instinct and emotions based on the body of the robot. Instinct factors include, for example, fatigue, heat or temperature, pain, appetite or hunger, third, affection, curiosity, excretion ( elimination or at least one of sexual desire. The emotional elements include happiness, sadness, anger, surprise, disgust, fear, frustration, boredom, and sleepiness. ), Sociability (gregalousness), patience, tension, relaxed, alertness, guilt, spite, loyalty, submissibility or It is at least one of jealousy.
[0126]
In the associative memory mechanism to which the competitive neural network according to the present embodiment is applied, an input channel is assigned to each element constituting the external stimulus and the internal state. In addition, each perceptual function module such as the visual
[0127]
For example, each object segmented by the color segmentation module is added to a color prototype ID and input to the associative memory system. The face ID recognized by the face recognition module is input to the associative memory system. The ID of the object recognized by the object recognition module is input to the associative system. In addition, a prototype ID of a word is input from the voice recognition module according to the user's utterance. At this time, since the phoneme symbol string of the utterance (Phoneme Sequence) is also input, the
[0128]
Therefore, the associative memory system according to the present embodiment can store external stimuli such as colors, shapes, sounds, etc. and internal states as input patterns composed of combinations of IDs symbolized for each channel. That is, the associative memory system stores
[0129]
[Color ID Shape ID Face ID Voice ID ... Instinct ID (value) Emotion ID]
[0130]
It is a combination of
[0131]
Associative memory has a memory process and a recall process. FIG. 10 shows the concept of the storage process of the associative memory.
[0132]
The storage pattern input to the associative memory system is composed of a plurality of channels assigned to each element of the external stimulus and the internal state (in the example shown, eight channels of
[0133]
In the example illustrated in FIG. 10, it is assumed that the associative memory system has already stored a total of
[0134]
FIG. 11 shows the concept of the associative memory recall process. As described above, when a pattern similar to the input pattern stored in the storage process is input, a complete storage pattern is output so as to compensate for the missing information.
[0135]
In the example shown in FIG. 11, a pattern to which only the upper three channels are given an ID out of a storage pattern composed of eight channels is input as a key pattern. In such a case, the associative memory system finds a pattern (
[0136]
Therefore, according to the associative memory system, it is possible to associate the voice ID, that is, the name, only from the face ID, or to recall “delicious” or “not delicious” only from the name of the food. According to the long-term memory architecture using a competitive neural network, semantic memory relating to the meaning of words and common sense can be realized with the same engineering model as other long-term memories.
[0137]
C-3. Competitive neural ・ Associative learning by network
FIG. 12 schematically shows a configuration example of an associative memory system to which a competitive neural network is applied. As shown in the figure, this competitive neural network is a hierarchical neural network composed of two layers, an input layer and a competitive layer.
[0138]
This competitive neural network has two operation modes, a memory mode and an associative mode. In the memory mode, the input pattern is competitively stored. Recall a unique memory pattern.
[0139]
The input layer is composed of a plurality of input neurons. To each input neuron, a symbol corresponding to the recognition result of the external stimulus or the internal state, that is, ID information, is input from a channel assigned to each element representing the external stimulus or the internal state. In the input layer, it is necessary to prepare the number of neurons corresponding to the number of color IDs + the number of shape IDs + the number of voice IDs + the type of instinct.
[0140]
The competitive layer is composed of a plurality of competitive neurons. Each competitive neuron is connected to each input neuron on the input layer side with a certain connection weight. A competing neuron corresponds to one symbol that each neuron has to store. In other words, the number of competing neurons corresponds to the number of storable symbols.
[0141]
Suppose that an input pattern is given to the input layer. At this time, the input pattern is composed of channels representing each element of the external stimulus and the internal state, and the input neuron to which the corresponding ID has been sent from the channel fires.
[0142]
The competitive neuron inputs the output from each input neuron by weighting it with a synapse, and calculates the sum of those input values. Then, learning is performed by selecting a competitive neuron having the maximum sum of input values in the competitive layer and increasing the coupling force between the winning competitive neuron and the input neuron. Further, by selecting a competitive neuron that has won in the competitive layer for an input pattern having a defect, a symbol corresponding to the input pattern can be recalled.
[0143]
Memory mode:
Assume that the connection weight between the input layer and the competitive layer takes a value between 0 and 1. However, the initial connection weight is determined at random.
[0144]
The storage in the competitive neural network is performed by first selecting a competitive neuron that has won the input pattern to be stored in the competitive layer and strengthening the connection between the competitive neuron and each input neuron.
[0145]
Here, the input pattern vector [x1, X2, ..., xn] Indicates that the neuron corresponds to the color prototype ID1 and, if ID1 is recognized, the neuron x1Is fired, and the shape and the voice are fired in that way as well. A firing neuron takes a value of 1, and a non-firing neuron takes a value of -1.
[0146]
Also, the connecting force between the i-th input neuron and the j-th competitive neuron is represented by wijThen, input xiCompetitive neuron yjIs represented by the following equation.
[0147]
(Equation 1)
[0148]
Therefore, the neuron that wins the competition can be obtained by the following equation.
[0149]
(Equation 2)
[0150]
The memory is performed by increasing the coupling force between the competitive neuron (winner neuron) that has won in the competitive layer and each input neuron. The update of the connection between the winning neuron and the input neuron is performed as follows according to the Kohonen update rule.
[0151]
(Equation 3)
[0152]
Here, normalization is performed using L2Norm.
[0153]
(Equation 4)
[0154]
This bonding force represents the so-called memory strength, and becomes the memory power. Here, the learning rate α is a parameter indicating the relationship between the number of presentations and the memory. The larger the learning rate α, the larger the weight is changed by one storage. For example, if α = 0.5 is used, once it is stored, it will not be forgotten, and the next time a similar pattern is presented, the stored pattern can be almost certainly associated.
[0155]
Further, the more the data is presented and stored, the larger the network connection value (weight) becomes. This indicates that the memory becomes stronger as the same pattern is input many times, statistical learning is possible, and long-term storage with less influence of noise in a real environment can be realized.
[0156]
Also, when a new pattern is input and attempted to be stored, the neurons of the new competitive layer are fired, so that the connection with the new neuron is strengthened, and the connection with the neuron based on the previous memory is not weakened. In other words, in the associative memory by the competitive neural network, additional learning is possible, and the problem of "forgetting" is released.
[0157]
Recall mode:
Now, it is assumed that the following input pattern vector is presented to the associative memory system shown in FIG. The input pattern is not perfect and may be partially missing.
[0158]
(Equation 5)
[0159]
At this time, the input vector may be a prototype ID, or a likelihood and a probability for the prototype ID. Output neuron yjIs the input xiIs calculated as follows.
[0160]
(Equation 6)
[0161]
It can be said that the above expression represents the likelihood of the firing value of the competing neuron according to the likelihood of each channel. What is important here is that the likelihood input from a plurality of channels can be connected to obtain the overall likelihood. In the present embodiment, only the associated one is selected, that is, only the one with the highest likelihood is selected, and the neuron that wins the competition can be obtained by the following equation.
[0162]
(Equation 7)
[0163]
Since the obtained number of the competitive neuron Y corresponds to the stored symbol number, the input pattern X can be recalled by the inverse matrix operation of W as in the following equation.
[0164]
(Equation 8)
[0165]
Further, by assigning symbols such as episodes and action IDs to the input layer neurons of the competitive neural network shown in FIG. 12, declarative knowledge storage and procedural knowledge storage can be realized by the associative memory architecture.
[0166]
D. Situation-dependent behavior control
The situation-dependent behavior hierarchy (Suited Behaviors Layer) 108 is based on the storage contents of the short-
[0167]
D-1. Structure of the situation-dependent behavior hierarchy
In the present embodiment, the situation-
[0168]
The situation-
[0169]
Each functional module in the behavior control system 100 of the
[0170]
The visual
[0171]
FaceDetector is an object that detects a face area from within an image frame, and outputs a detection result to FaceIdentify. The MultiColorTracker is an object for performing color recognition, and outputs a recognition result to FaceIdentify and ShortTermMemory (objects constituting the short-term memory 105). In addition, FaceIdentify identifies a person by, for example, searching for a detected face image in a hand-held person dictionary, and outputs the ID information of the person together with the position and size information of the face image area to the ShortTermMemory.
[0172]
The auditory recognition function unit 102 is composed of two objects “AudioRecog” and “SpeechRecog”. AudioRecog is an object that receives voice data from a voice input device such as a microphone and performs feature extraction and voice section detection, and outputs the feature amount and sound source direction of voice data in a voice section to SpeechRecog and ShortTermMemory. The SpeechRecog is an object that performs speech recognition using the speech feature quantity received from the AudioRecog, the speech dictionary, and the syntax dictionary, and outputs a set of recognized words to the ShortTermMemory.
[0173]
The tactile
[0174]
The ShortTermMemory (STM) is an object constituting the short-
[0175]
The LongTermMemory (LTM) is an object constituting the long-
[0176]
The InternalStatusManager (ISM) is an object that constitutes the internal
[0177]
The switched behavior layers (SBL) are objects that constitute the situation-
[0178]
The ReflexiveSuitedBehaviorsLayer is an object that constitutes the
[0179]
The Switched Behaviors layerer selects an action according to a situation such as an external stimulus or a change in an internal state. On the other hand, ReflexiveSuitedBehaviorsLayer behaves reflexively in response to an external stimulus. Since the action selection by these two objects is performed independently, when the action modules (schema) selected from each other are executed on the airframe, the hardware resources of the
[0180]
The SoundPerformer, the MotionController, and the LedController are objects that implement the body operation. The SoundPerformer is an object for performing voice output, performs voice synthesis in accordance with a text command given from the Switched BehaviorLayer via the ResourceManager, and performs voice output from a speaker on the body of the
[0181]
FIG. 14 schematically shows a form of the situation-dependent behavior control by the situation-dependent behavior hierarchy (SBL) 108 (including the reflex behavior unit 109). The recognition result of the external environment by the
[0182]
FIG. 15 shows a basic operation example of behavior control by the situation-
[0183]
FIG. 16 shows an operation example when a reflex action is performed by the situation-
[0184]
FIG. 17 shows an operation example when emotion expression is performed by the situation-
[0185]
D-2. Schema
The situation-
[0186]
The context-dependent behavior hierarchy 108 (more strictly, of the context-
[0187]
FIG. 19 schematically shows a tree structure of a schema in the context-
[0188]
As shown, each schema inputs an external stimulus and an internal state. Each schema has at least a Monitor function and an Action function.
[0189]
FIG. 20 schematically shows the internal structure of the schema. As shown in the figure, the schema evaluates each state of the Action function in accordance with an external stimulus or an internal state as an Action function that describes the body operation in the form of a state transition (state machine), and generates an activity level value. A state management unit that stores and manages the state of the schema as a Monitor function to be returned and a state machine of the Action function as one of READY (prepared), ACTIVE (active), and SLEEP (standby).
[0190]
The Monitor function is a function that calculates an activity level (Activation Level: AL value) of the schema according to the external stimulus and the internal state. When the tree structure shown in FIG. 19 is configured, the upper (parent) schema can call the Monitor function of the lower (child) schema with the external stimulus and the internal state as arguments, and the child schema has the AL value. Is the return value. The schema can also call the Monitor function of the child's schema to calculate its own AL value. Then, since the AL value from each subtree is returned to the root schema, it is possible to integrally determine the optimal schema, that is, the action according to the change of the external stimulus and the internal state.
[0191]
For example, a schema having the highest AL value may be selected, or two or more schemas whose AL values exceed a predetermined threshold may be selected and executed in parallel. (Assuming there is no hardware resource contention between them).
[0192]
FIG. 21 schematically illustrates the internal configuration of the Monitor function. As shown in the figure, the Monitor function includes a behavior induction evaluation value calculator for calculating an evaluation value for inducing a behavior described in the schema as an activity level, and a used resource calculator for specifying an aircraft resource to be used. It has. In the example shown in FIG. 20, when the Monitor function is called from the behavior state control unit (tentative name) for managing the schema, that is, the behavior module, the Monitor function virtually executes the state machine of the Action function, and the behavior induction evaluation value (that is, the activity induction evaluation value). Calculates the used resource and the used resource, and returns it.
[0193]
The Action function includes a state machine (described later) that describes the behavior of the schema itself. When configuring the tree structure as shown in FIG. 19, the parent schema can call the Action function to start or interrupt the execution of the child schema. In this embodiment, the Action state machine is not initialized unless it becomes Ready. In other words, the state is not reset even if interrupted, and the schema saves the work data being executed, so that interrupted re-execution is possible (described later).
[0194]
In the example shown in FIG. 20, the behavior state control unit (tentative name) that manages the schema, that is, the behavior module, selects the behavior to be executed based on the return value from the Monitor function, and calls the Action function of the corresponding schema. Or instruct the transition of the state of the schema stored in the state management unit. For example, a schema having the highest activity level as a behavior induction evaluation value is selected, or a plurality of schemas are selected according to a priority order so that resources do not conflict. Also, the behavior state control unit saves the state of the lower-priority schema from ACTIVE to SLEEP when a higher-priority schema is activated and a resource conflict occurs. Control the state of the schema, such as recovering.
[0195]
As shown in FIG. 22, the behavior state control unit may be provided only one in the context-
[0196]
In the illustrated example, the behavior state control unit includes a behavior evaluation unit, a behavior selection unit, and a behavior execution unit. The behavior evaluation unit calls the Monitor function of each schema at a predetermined control cycle, for example, to acquire each activity level and used resources. The action selection unit performs action control and management of machine resources using each schema. For example, schemas are selected in descending order of the aggregated activity level, and two or more schemas are simultaneously selected so that resources used do not conflict. The action execution unit issues an action execution command to the Action function of the selected schema, and manages the state of the schema (READY, ACTIVE, SLEEP) to control the execution of the schema. For example, when a schema with a higher priority is activated and a resource conflict occurs, the state of a schema with a lower priority is saved from ACTIVE to SLEEP, and when the conflict is resolved, the schema is restored to ACTIVE.
[0197]
Alternatively, the function of the behavior state control unit may be arranged for each schema in the context-
[0198]
FIG. 24 schematically shows a mechanism for controlling normal context-dependent behavior in the context-
[0199]
As shown in the drawing, an external stimulus is input (Notify) from the short-
[0200]
In addition, in the context-
[0201]
FIG. 25 schematically shows the configuration of the schema in the
[0202]
As shown, each schema that performs reflexive behavior has an external stimulus as input. Each schema has at least a monitor function and an action function. The monitor function calculates the AL value of the schema in response to an external stimulus, and determines whether or not the corresponding reflexive behavior should be expressed accordingly. The action function has a state machine (described later) that describes the reflexive behavior of the schema itself. When called, the action function expresses the reflexive behavior and transitions the state of the action.
[0203]
FIG. 26 schematically shows a mechanism for controlling the reflexive behavior in the
[0204]
As shown in FIG. 25, a schema describing a reaction behavior and a schema describing an immediate response behavior exist in parallel in the
[0205]
The schema that constitutes the context-dependent behavior hierarchy 108 (including the reflex behavior unit 109) is, for example, C++It can be described as a "class object" described on a language basis. FIG. 27 schematically shows the class definition of the schema used in the situation-
[0206]
As illustrated, the context-dependent behavior hierarchy (SBL) 108 includes one or more schemas, an EventDataHandler (EDH) that allocates IDs to SBL input / output events, and a SchemaHandler (SH) that manages schemas in the SBL. One or more ReceiveDataHandler (RDH) that receives data from an external object (such as an STM or LTM, a resource manager, or an object of a recognition system) and one or more SendDataHandler (SDH) that transmits data to an external object. I have.
[0207]
EventDataHandler (EDH) is a class object for allocating IDs to SBL input / output events, and receives notification of input / output events from RDH and SDH.
[0208]
The SchemaHandler stores information such as schemas and tree structures (SBL configuration information) constituting the context-dependent behavior hierarchy (SBL) 108 and the
[0209]
Each schema has an OpenR_Guest positioned as the base of the schema. OpenR_Guest includes one or more class objects Dsub for the schema to transmit data to the outside, and one or more class objects DObject for the schema to receive data from the outside. For example, when the schema sends data to an external object of the SBL (STM, LTM, each object of the recognition system, etc.), Dsubject writes the transmission data to the SendDataHandler. Also, the DObject can read the data received from the external object of the SBL from the ReceiveDataHandler.
[0210]
SchemaManager and SchemaBase are both class objects that inherit OpenR_Guest. Class inheritance means inheriting the definition of the original class. In this case, it means that a class object such as Dsubject or DOobject defined in OpenR_Guest is also provided in SchemaManager or SchemaBase (the same applies hereinafter). For example, when a plurality of schemas have a tree structure as shown in FIG. 19, SchemaManager has a class object SchemaList that manages a list of child schemas (has a pointer to a child schema), and has a child schema. Functions can be called. Also, SchemaBase has a pointer to the parent schema, and can return the return value of the function called from the parent schema.
[0211]
SchemaBase has two class objects: StateMachine and Pronome. StateMachine manages a state machine for the behavior (Action function) of the schema. FIG. 28 illustrates a state machine for the behavior (Action function) of the schema. An action is linked to each transition between the states of the state machine.
[0212]
The parent schema can switch (state transition) the state machine of the Action function of the child schema. In addition, a target to which the schema executes or applies an action (Action function) is substituted in Pronom. As will be described later, the schema is occupied by the target assigned to Pronom, and the schema is not released until the action ends (complete, abnormal termination, etc.). To execute the same action for a new target, the same class definition schema is created in the memory space. As a result, the same schema can be executed independently for each target (the work data of each schema does not interfere with each other), and the Reentrance property (described later) of the behavior is ensured.
[0213]
ParentSchemaBase is a class object that inherits SchemaManager and SchemaBase multiple times, and manages a parent schema and a child schema of the schema itself, that is, a parent-child relationship in the tree structure of the schema.
[0214]
IntermediaParentSchemaBase is a class object that inherits ParentSchemaBase, and implements interface conversion for each class. Also, the IntermediaParentSchemaBase has SchemaStatusInfo. This SchemaStatusInfo is a class object that manages the state machine of the schema itself.
[0215]
The parent schema can switch the state of its state machine by calling the Action function of the child schema. Further, the Aonitor function of the child schema can be called to inquire about the AL value according to the state of the state machine. However, it should be noted that the state machine of the schema is different from the state machine of the Action function described above.
[0216]
FIG. 29 illustrates the state machine for the behavior described by the schema itself, that is, the Action function. As described above, the state machine of the schema itself defines three states, READY (ready), ACTIVE (active), and SLEEP (waiting), for the behavior described in accordance with the Action function. I have. When a higher priority schema is activated and resource contention occurs, the state of the lower priority schema is saved from ACTIVE to SLEEP, and when the contention is resolved, the schema is restored to ACTIVE.
[0217]
As shown in FIG. 29, ACTIVE_TO_SLEEP is defined in the state transition from ACTIVE to SLEEP, and SLEEP_TO_ACTIVE is defined in the state transition from SLEEP to ACTIVE. The feature of this embodiment is that
(1) The ACTIVE_TO_SLEEP is linked with a process for storing data (context) necessary for transitioning to the ACTIVE state and resuming the operation later, and an action required for the SLEEP operation.
(2) The process for restoring the saved data (context) and the action required to return to ACTIVE are linked to SLEEP_TO_ACTIVE.
That is the point. The action necessary for performing SLEEP is, for example, an action of saying a pause to the other party, such as "Please wait a moment" or the like (in addition, a gesture may be added). In addition, the action required to return to ACTIVE is, for example, an action of saying a phrase such as “please wait” indicating appreciation to the other party (in addition, a gesture may be added).
[0218]
AndParentSchema, NumOrParentSchema, and OrParentSchema are class objects that inherit from IntermediaParentSchemaBase. AndParentSchema has pointers to multiple child schemas that execute simultaneously. OrParentSchema has pointers to a plurality of alternately executed child schemas. Also, NumOrParentSchema has pointers to a plurality of child schemas that execute only a predetermined number at the same time.
[0219]
ParentSchema is a class object that inherits AndParentSchema, NumOrParentSchema, and OrParentSchema multiple times.
[0220]
FIG. 30 schematically shows the functional configuration of the classes in the context-dependent behavior hierarchy (SBL) 108.
[0221]
The context-dependent behavior hierarchy (SBL) 108 includes one or more ReceiveDataHandler (RDH) for receiving data from external objects such as STM, LTM, resource manager, and cognitive objects, and one or more ReceiveDataHandler (RDH) for transmitting data to external objects. And a SendDataHandler (SDH).
[0222]
EventDataHandler (EDH) is a class object for allocating IDs to SBL input / output events, and receives notification of input / output events from RDH and SDH.
[0223]
SchemaHandler is a class object for managing a schema, and stores configuration information of a schema constituting an SBL as a file. For example, when the system is started, the Schema Handler reads this configuration information file and constructs a schema configuration in the SBL.
[0224]
Each schema is generated according to the class definition shown in FIG. 27, and entities are mapped on the memory space. Each schema uses OpenR_Guest as a base class object, and includes class objects such as DObject and DOObject for external data access.
[0225]
The functions and state machines that the schema mainly has are shown below.
[0226]
ActivationMonitor (): an evaluation function for making the schema Active when the schema is Ready.
Actions (): State machine for execution at the time of Active.
Goal (): a function for evaluating whether the schema has reached Goal at the time of Active.
Goal (): a function for determining whether the schema is in a fail state at the time of Active.
SleepActions (): State machine executed before Sleep.
SleepMonitor (): Evaluation function for resuming at the time of sleep.
ResumeActions (): State machine for Resume before Resume.
DestroyMonitor (): an evaluation function that determines whether the schema is in a fail state at the time of sleep.
MakePronome (): A function that determines the target of the entire tree.
[0227]
These functions are described in SchemaBase.
[0228]
FIG. 31 shows a processing procedure for executing the MakePronome function in the form of a flowchart.
[0229]
When the MakePronome function of the schema is called, first, it is determined whether or not a child schema exists in the schema itself (step S1).
[0230]
If a child schema exists, the MakePronome function of all child schemas is similarly recursively called (step S2).
[0231]
Then, MakePronome of the schema itself is executed, and the target is assigned to the Pronome object (step S3).
[0232]
As a result, the same target is assigned to the Pronomes of all the schemas below the schema, and the schema is not released until the action ends (complete, abnormal termination, etc.). To execute the same action for a new target, the same class definition schema is created in the memory space.
[0233]
FIG. 32 shows a processing procedure for executing the Monitor function in the form of a flowchart.
[0234]
First, the evaluation flag (AssessmentFlag) is set to ON (step S11), and the action of the schema itself is executed (step S12). At this time, a child schema is also selected. Then, the evaluation flag is turned off (step S13).
[0235]
If a child schema exists (step S14), the Monitor function of the child schema selected in step S12 is recursively called (step S15).
[0236]
Next, the Monitor function of the schema itself is executed (Step S16), and the activity level and the resource used for executing the action are calculated (Step S17), and the result is set as the return value of the function.
[0237]
FIGS. 33 and 34 show, in the form of a flowchart, a processing procedure for executing the Actions function.
[0238]
First, it is checked whether or not the schema is in the STOPPING state (step S21), and then, whether or not the schema is in the STOPPING state (step S22).
[0239]
If it is in a state to be STOPPING, it is further checked whether or not there is a child schema (step S23). If there is a child schema, the child schema is shifted to the GO_TO_STOP state (step S24), and the HaveToStopFlag is turned on (step S25).
[0240]
If the state is not the STOPPING state, it is checked whether the state is the RUNNING state (step S26).
[0241]
If it is not in the RUNNING state, it is checked whether there is any child schema (step S27). Then, when there is a child schema, the HaveToStopFlag is turned on (step S28).
[0242]
Next, the next own state is determined from the current system state, the HaveToRunFlag, the HaveToStopFlag, and the operation state of the child schema (step S29).
[0243]
Next, the Action function of the schema itself is executed (Step S30).
[0244]
Thereafter, it is checked whether the schema itself is in the GO_TO_STOP state (step S31). If it is not in the GO_TO_STOP state, it is further checked whether or not there is a child schema (step S32). If there is a child schema, it is checked whether there is a child schema in the GO_TO_STOP state (step S33).
[0245]
If there are child schemas in the GO_TO_STOP state, the Action functions of these schemas are executed (step S34).
[0246]
Next, it is checked whether there is any child schema in RUNNING (step S35). If there is no child schema in RUNNING, it is checked whether there is a stopped child schema (step S36), and the Action function of the stopped child schema is executed (step S37).
[0247]
Next, it is checked whether there is a child schema in the GO_TO_RUN state (step S38). If there is no child schema in the GO_TO_RUN state, it is checked whether there is a child schema in the GO_TO_STOP state (step S39), and if so, the Action function of this child schema is executed (step S40).
[0248]
Finally, the next state of itself is determined from the current system state, HaveToRunFlag, HaveToStopFlag, and the operation state of the child, and the entire processing routine ends (step S41).
[0249]
D-3. Functions of the contextual behavior hierarchy
The situation-dependent behavior hierarchy (Suited Behaviors Layer) 108 is based on the storage contents of the short-
[0250]
As described in the previous section, the situation-
[0251]
(1) Concurrent evaluation:
It has already been mentioned that the schema as an action module has a Monitor function for making a situation judgment in response to an external stimulus or a change in the internal state. The Monitor function is implemented by the schema having a Monitor function in the class object SchemaBase. The Monitor function is a function that calculates an activity level (Activation Level: AL value) of the schema according to the external stimulus and the internal state.
[0252]
When the tree structure shown in FIG. 19 is configured, the upper (parent) schema can call the Monitor function of the lower (child) schema with the external stimulus and the internal state as arguments, and the child schema has the AL value. Is the return value. The schema can also call the Monitor function of the child's schema to calculate its own AL value. Then, since the AL value from each subtree is returned to the root schema, it is possible to integrally determine the optimal schema, that is, the action according to the change of the external stimulus and the internal state.
[0253]
Because of the tree structure, the evaluation of each schema based on the external stimulus and the change of the internal state is first performed on the current from the bottom of the tree structure to the top. As shown in the flowchart of FIG. 32, when the child schema is included in the schema (step S14), the Monitor function of the selected child is called (step S15), and then the own Monitor function is executed.
[0254]
Next, an execution permission as an evaluation result is passed from top to bottom of the tree structure. Evaluation and execution are performed while resolving competition for resources used by the action.
[0255]
The situation-
[0256]
(2) Concurrent execution:
Since an AL value from each subtree is returned to the root schema, an optimal schema, that is, an action corresponding to a change in an external stimulus and an internal state can be determined in an integrated manner. For example, a schema having the highest AL value may be selected, or two or more schemas whose AL values exceed a predetermined threshold may be selected and executed in parallel. (Assuming there is no hardware resource contention between them).
[0257]
The schema for which permission has been granted is executed. In other words, the schema actually executes commands by observing external stimuli and changes in internal states in more detail. Execution is performed sequentially from the top of the tree structure to the bottom, that is, Concurrent. As shown in the flowcharts of FIGS. 33 and 34, if the schema includes a child schema, the child's Actions function is executed.
[0258]
The Action function includes a state machine (described later) that describes the behavior of the schema itself. When configuring the tree structure as shown in FIG. 19, the parent schema can call the Action function to start or interrupt the execution of the child schema.
[0259]
The context-
[0260]
(3) Preemption:
Even if a schema has been executed once, if there is a more important (higher priority) action, the schema must be interrupted and the execution right must be given to it. Also, when more important actions are completed (completed or stopped), it is necessary to resume the original schema and continue execution.
[0261]
Executing a task according to such a priority is similar to a function called Preemption of an OS (Operating System) in the computer world. The OS has a policy of sequentially executing tasks with higher priorities at a timing when the schedule is considered.
[0262]
On the other hand, since the behavior control system 100 of the
[0263]
Also, assume that execution of a certain schema is permitted as a result of the evaluation of the AL value based on the external stimulus and the change in the internal state in the context-
[0264]
Save the state of Actions () of the running schema and execute Actions () of a different schema. Also, after Actions () of a different schema is completed, Actions () of the suspended schema can be executed again.
[0265]
Also, Actions () of the schema being executed is interrupted, and SleepActions () is executed before the execution right is transferred to a different schema. For example, if the
[0266]
(4) Reentrant:
Each schema constituting the context-
[0267]
This is similar to the reentrant property of the OS in the computer world, and is referred to as schema reentrant property in this specification. As described with reference to FIG. 30, the schema is composed of class objects, and the reentrant property is realized by generating an entity, that is, an instance of the class object for each target (Pronome).
[0268]
The reentrancy of the schema will be described more specifically with reference to FIG.
[0269]
SchemaHandler is a class object for managing a schema, and stores configuration information of a schema constituting an SBL as a file. When the system is started, the SchemaHandler reads this configuration information file and constructs a schema configuration in the SBL. In the example illustrated in FIG. 31, it is assumed that schema entities defining behavior such as Eat and Dialog are mapped in the memory space.
[0270]
Here, by evaluating the activity level based on the external stimulus and the change in the internal state, a target (Pronome) of A is set for the schema Dialog, and the Dialog executes the dialogue with the person A. .
[0271]
Thereafter, the person B interrupts the dialogue between the
[0272]
In such a case, the SchemaHandler maps another Dialog entity (instance) inheriting the class for interacting with B onto the memory space. Since the conversation with B is performed using another Dialog entity independently of the previous Dialog entity, the contents of the conversation with A are not destroyed. Therefore, Dialog A can maintain data consistency, and when the conversation with B ends, the conversation with A can be resumed from the point at which it was interrupted.
[0273]
The schema in the Ready list is evaluated according to the object (external stimulus), that is, the AL value is calculated, and the execution right is handed over. After that, an instance of the schema moved in the Ready list is generated, and the other objects are evaluated. Thereby, the same schema can be set to the active or sleep state.
[0274]
E. FIG. Robot internal state management
In the robot behavior control system 100 according to the present embodiment, the situation-
[0275]
The internal state of the
[0276]
E-1. Layering emotions
In the present embodiment, an emotion is composed of a plurality of layers according to the significance of its existence, and operates at each layer. The operation to be performed is determined from the determined plurality of operations according to the external environment or internal state at that time (described later). In addition, actions are selected at each level, but by expressing actions preferentially from lower-order actions, instinctual actions such as reflex and higher-order actions such as action selection using memory are performed. Behavior can be consistently expressed on one individual.
[0277]
FIG. 36 schematically illustrates a hierarchical configuration of the internal
[0278]
As shown in the figure, the internal
[0279]
In the illustrated example, the primary emotions are divided into low-order primary emotions, high-order primary emotions, and primary emotions associated with the ascending order from low to high. The lower-order primary emotions correspond to access to the limbic system, generate emotions to maintain homeostasis (individual maintenance), and are prioritized when homeostasis is threatened. The higher primary emotions correspond to access to the neocortex of the cerebrum, and are involved in maintaining races such as intrinsic needs and social needs. The higher primary emotions have different degrees of satisfaction depending on learning and environment (satisfied by learning and communication).
[0280]
Each layer of the primary emotion outputs a change amount ΔI of the temporary emotion (instinct) level by executing the schema selected for the action.
[0281]
The secondary emotion corresponds to so-called emotion (Emotion) and includes elements such as joy (Joy), sadness (Sad), anger (Anger), surprise (Surprise), disgust (Disgust), and awe (Feer). The change amount (satisfaction) ΔE of the secondary emotion is determined according to the change amount ΔI of the primary emotion.
[0282]
In the situation-
[0283]
For the emotional hierarchy for the survival of the individual, the behavior by innate reflex is selected first. Next, an action that satisfies the lower primary emotion is selected. Then, the action generation that satisfies the primary emotions of the higher rank, the action generation that satisfies the primary emotions by association, and the more primitive individual retention are realized.
[0284]
At this time, the primary emotion of each layer can put pressure on the nearest layer. When the index for selecting the action determined by the user is strong, the action determined in the nearest hierarchy can be suppressed and the user's own action can be expressed.
[0285]
As described in the preceding section D, the situation-
[0286]
The activity level of the internal state is determined by the sum total of the change ΔE of the satisfaction degree of the secondary emotion based on the change amount ΔI of each layer in the primary emotion when the schema is executed. Here, the primary emotion is composed of three layers L1, L2, and L3, and changes in the secondary emotion derived from each layer of the primary emotion when the schema is selected are represented by ΔE.L1, ΔEL2, ΔEL3, And each has a weighting factor w1, W2, W3Is multiplied to calculate the activity level. By making the weight factor for the lower primary emotion larger, it is easier to select an action that satisfies the lower primary emotion. Further, by adjusting these weighting factors, it is possible to obtain an effect that the primary emotion of each layer applies pressure to the nearest layer (Concentration: behavior suppression).
[0287]
Here, an embodiment of action selection using the hierarchical structure of emotions will be described. However, in the following, Sleep (sleepiness) is treated as the lower primary emotion, and Curiosity (Curiosity) is treated as the upper primary emotion.
[0288]
(1) It is assumed that Sleep, which is a lower-order primary emotion, is insufficient, and the activity level of a schema that satisfies Sleep is increasing. At this time, if the activity level of the other schema does not increase, the schema that satisfies Sleep executes itself until Sleep is satisfied.
[0289]
(2) It is assumed that, before Sleep is satisfied, the primary primary emotion, Curiosity, is insufficient. However, since the sleep is directly related to the maintenance of the individual, the schema that satisfies the sleep continues to be executed until the activity level of the sleep falls below a certain value. Then, when Sleep is satisfied to some extent, a schema that satisfies Curiosity can be executed.
[0290]
(3) It is assumed that the hand vigorously comes close to the face of the robot during execution of the schema satisfying Curiosity. In response to this, the robot recognizes that the skin color is approaching suddenly by color recognition and size recognition, and reflexively avoids the face from the hand as an innate reflex action, that is, pulls the head behind . This reflex movement corresponds to the spinal reflex of the animal. Since reflection is the lowest order schema, the reflection schema is executed first.
[0291]
After the spinal reflex, an accompanying emotional change occurs. Based on the magnitude of the change and the activity level of other schemas, it is determined whether or not to perform an emotional expression schema. If the emotion expression schema has not been performed, the schema that satisfies Curiosity is continued.
[0292]
(4) Schemas below a certain schema itself are usually more likely to be selected than the schema itself, but only when the activity level of the schema itself is extremely high, the schemas under the schema are suppressed (Concentration) and a certain value is set. It is possible to run itself up to. When the sleep shortage is remarkable, even when the action of the reflex action schema is desired, the schema that satisfies the sleep is preferentially executed until the behavior is restored to a certain value.
[0293]
E-2. Linkage with other function modules
FIG. 37 schematically illustrates a communication path between the internal
[0294]
The short-
The internal
[0295]
The context-
[0296]
The internal
[0297]
The biorhythm management unit supplies the biorhythm information to the internal
[0298]
E-3. Changes in internal state over time
The index of the internal state changes over time. For example, primary emotions, that is, instinct, Hunger (hunger), Fatique (fatigue), and Sleep (sleepiness) change as time passes as follows.
[0299]
Hunger: Hunger decreases (virtual value or remaining battery charge)
Fatique: tired
Sleep: Drowsiness
[0300]
Further, in the present embodiment, Pleasantness (satisfaction), Activation (activity), and Certainty (certainty) are defined as elements of the secondary emotion of the robot, that is, the emotion (Emotion). To change.
[0301]
Pleasantness: changing towards Neutral
Activation: Depends on biorhythm and sleep
Certainty: Depends on Attention
[0302]
FIG. 38 shows a mechanism by which the internal
[0303]
As shown in the figure, the biorhythm management unit notifies biorhythm information at regular intervals. On the other hand, the internal
[0304]
E-4. Changes in internal state due to operation execution
The internal state also changes when the robot executes an operation.
[0305]
For example, in a schema that performs an action of “sleeping”, an action that satisfies Sleep (sleepiness) as a lower-order primary emotion is the final goal. In the context-
[0306]
On the other hand, the situation-
[0307]
Then, in the context-
[0308]
FIG. 39 shows a mechanism by which the internal
[0309]
The situation-
[0310]
When notified of the execution completion information of the selected action, the internal
The situation-
[0311]
The long-
[0312]
E-5. Changes in internal state due to sensor information
The degree of operation when the robot executes the operation is recognized by each of the
[0313]
FIG. 40 shows a mechanism by which the internal
[0314]
When receiving the recognition results by the respective
[0315]
In the situation-
[0316]
E-6. Changes in internal state due to association
As described above, the robot according to the present embodiment has the associative memory function in the long-
[0317]
For example, consider the case where the appearance of an apple causes an emotional change of "happy".
[0318]
When the apple is recognized by the visual
[0319]
In the long-
[0320]
Upon receiving the storage information from the long-
[0321]
The internal
[0322]
FIG. 41 shows a mechanism by which the internal
[0323]
The external environment is notified to the context-
[0324]
The situation-
[0325]
The internal
[0326]
In the situation-
[0327]
E-7. Changes in internal state due to innate behavior
The fact that the robot according to the present embodiment changes the internal state by executing the operation is as described above (see FIG. 39). In this case, the action is selected based on the index value of the internal state including the primary emotion and the secondary emotion, and the emotion is satisfied by the completion of the execution of the action. On the other hand, in the robot according to the present embodiment, an innate reflex behavior that does not depend on emotion is also defined. In this case, the reflex behavior is directly selected according to the change of the external environment, and the mechanism is different from the internal change by performing the normal operation.
[0328]
For example, consider the case where an innate reflex occurs when a large object suddenly appears.
[0329]
In such a case, for example, the recognition result (sensor information) of “large thing” by the visual
[0330]
In the context-
[0331]
The internal
[0332]
FIG. 42 shows a mechanism by which the internal
[0333]
When performing an innate reflex action, the battle information from each of the
In the context-
[0334]
The internal
[0335]
In the situation-
[0336]
E-8. Relationship between schema and internal state management unit
The context-
[0337]
FIG. 43 schematically shows the relationship between the schema and the internal state management unit.
The schema can communicate with external objects such as the short-
[0338]
The schema includes a class object that calculates an activity level based on an external stimulus or a change in an internal state. An RM (Resource Management) object communicates with the short-
[0339]
As described above, the internal
[0340]
All the changes ΔI of the primary emotion in each hierarchy are input to the secondary emotion and used for calculating the change ΔP of Pleasantness.
[0341]
Activity is integrally determined from information such as sensor input, operation time, and biorhythm.
[0342]
Also, the certainty factor of the selected schema is used as the certainty factor in the actual secondary emotion hierarchy.
[0343]
FIG. 44 schematically shows a Motivation calculation path based on the Motivation calculation class object.
[0344]
The RM class object accesses the short-
[0345]
On the other hand, the Motivation calculation class object accesses the short-
[0346]
It has already been described that the behavior control system of the robot according to the present embodiment uses the associative memory to recall a change in the internal state from an external stimulus, thereby calculating a secondary emotion and selecting an action (FIG. 41). checking). Furthermore, by using the associative memory, it is possible to recall a change in the internal state that differs for each object. Thereby, even in the same situation, the easiness of the action can be made different. That is, in addition to the external stimulus, the physical state, and the current internal state, the action can be selected in consideration of the memory of each object of the robot, and a more diversified and diversified response can be realized.
[0347]
For example, instead of taking actions determined by the external environment or internal state, such as "XX is visible because XX is visible", or "XX is currently insufficient (for anything) XX" , Such as "Even if you can see XX, so □□" or "Even though XX is visible but XX, so ■■" Can be attached.
[0348]
FIG. 45 schematically illustrates the mechanism of the Motivation calculation process when an object exists.
[0349]
First, the short-
[0350]
Next, using the extracted feature, the long-
[0351]
Next, the internal
[0352]
Then, the following motivation calculation function g using the change ΔPleasant of the secondary emotion and the certainty factor of the object as argumentstarget-iThen, the i-th Motivation is calculated.
[0353]
(Equation 9)
[0354]
FIG. 46 schematically illustrates the mechanism of the Motivation calculation process when no object exists.
[0355]
In this case, first, the change in desire ΔI due to the action is asked to the memory for the action.
[0356]
Next, using the acquired ΔI, the internal
[0357]
(Equation 10)
[0358]
E-9. Method of changing each element of secondary emotion
FIG. 47 illustrates a mechanism for changing Pleasantness of the secondary emotion.
[0359]
The long-
[0360]
As the schema, a change in primary emotion (Nourishment, Moisture, Sleep) due to the execution of the schema and a change in primary emotion (Affection) due to the contents of the schema are input to the internal
[0361]
Pleasantness is determined according to a change in excess or deficiency of the primary emotion.
[0362]
FIG. 48 illustrates a mechanism for changing the activity of the secondary emotion.
[0363]
Activity is determined in an integrated manner based on the sum of time other than sleep in the schema, biorhythm, and sensor input.
[0364]
FIG. 49 illustrates a mechanism for changing the Certainty of the secondary emotion.
[0365]
When the long-
[0366]
FIG. 50 schematically shows a mechanism for obtaining Certainty.
[0367]
The long-
[0368]
The schema asks the long-
[0369]
[Supplement]
The present invention has been described in detail with reference to the specific embodiments. However, it is obvious that those skilled in the art can modify or substitute the embodiment without departing from the scope of the present invention.
[0370]
The gist of the present invention is not necessarily limited to products called “robots”. That is, as long as the mechanical device performs a motion similar to a human motion using an electric or magnetic action, the present invention similarly applies to a product belonging to another industrial field such as a toy. Can be applied.
[0371]
In short, the present invention has been disclosed by way of example, and the contents described in this specification should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims described at the beginning should be considered.
[0372]
【The invention's effect】
Advantageous Effects of Invention According to the present invention, it is possible to provide an excellent robot behavior control system, behavior control method, and robot device capable of realizing autonomous operation and realizing communication with a user.
[0373]
Further, according to the present invention, it is possible to integrally determine the situation where the robot is placed such as the recognition result of the external environment such as vision and hearing and the internal state such as instinct and emotion, and to select an action. An excellent robot behavior control system and behavior control method, and a robot device can be provided.
[0374]
Further, according to the present invention, it is possible to integrally determine the situation where the robot is placed such as the recognition result of the external environment such as vision and hearing and the internal state such as instinct and emotion, and to select an action. An excellent robot behavior control system and behavior control method, and a robot device can be provided.
[0375]
Further, according to the present invention, an excellent robot behavior that makes it possible to select and execute an action according to an external stimulus or an internal state under a certain order by clarifying the meaning of existence of an emotion more clearly. A control system, a behavior control method, and a robot device can be provided.
[0376]
According to the present invention, emotions are classified into a plurality of layers according to their significance, and the operation is determined at each layer. From the determined plurality of operations, it is determined which operation is to be performed depending on the external stimulus or internal state at that time. Actions are selected at each level, but the order in which they are performed is based on the priority of the robot's internal state. Higher-level behaviors such as objective behaviors and motion selection using memory can be consistently expressed on one individual. It is also a clear index when categorizing actions and creating a schema.
[0377]
Further, according to the robot behavior control system or the behavior control method according to the present invention, by using the associative memory, it is possible to recall a change in the internal state that is different for each target object, so that the behavior manifests even in the same situation. Easiness can be made different. That is, in addition to the external stimulus, the physical state, and the current internal state, the action can be selected in consideration of the memory of each object of the robot, and a more diversified and diversified response can be realized.
[0378]
For example, instead of taking actions determined by the external environment or internal state, such as "XX is visible because XX is visible", or "XX is currently insufficient (for anything) XX" , Such as "Even if you can see XX, so □□," or "I can see XX but XX, so XX." Can be attached.
[Brief description of the drawings]
FIG. 1 is a diagram schematically showing a functional configuration of a
FIG. 2 is a diagram showing the configuration of a
FIG. 3 is a diagram schematically showing a functional configuration of a behavior control system 100 of the
4 is a diagram showing a flow of an operation by each object constituting the behavior control system 100 shown in FIG.
FIG. 5 is a diagram showing a flow of information entering a target memory in a short-
FIG. 6 is a diagram showing a flow of information entering an event memory in a short-
FIG. 7 is a diagram for explaining a dialogue process between the
FIG. 8 is a diagram for explaining a dialogue process between the
FIG. 9 is a diagram for explaining dialog processing with the users A and B by the
FIG. 10 is a diagram conceptually showing a storage process of associative memory according to an embodiment of the present invention.
FIG. 11 is a diagram conceptually showing a recall process of associative memory according to an embodiment of the present invention.
FIG. 12 is a diagram schematically showing a configuration example of an associative memory system to which a competitive neural network is applied.
FIG. 13 is a diagram schematically illustrating an object configuration of the behavior control system 100 according to the embodiment of the present invention.
FIG. 14 is a diagram schematically showing a form of situation-dependent behavior control by a situation-
FIG. 15 is a diagram showing a basic operation example of behavior control by the situation-dependent behavior hierarchy shown in FIG.
FIG. 16 is a diagram showing an operation example when a reflex action is performed by the situation-dependent action hierarchy shown in FIG.
FIG. 17 is a diagram showing an operation example when emotion expression is performed by the situation-dependent behavior hierarchy shown in FIG.
FIG. 18 is a diagram schematically illustrating a situation in which the situation-dependent behavior hierarchy is composed of a plurality of schemas.
FIG. 19 is a diagram schematically showing a tree structure of a schema in the situation-
FIG. 20 schematically shows an internal configuration of a schema.
FIG. 21 is a diagram schematically showing an internal configuration of a Monitor function.
FIG. 22 is a diagram schematically illustrating a configuration example of an action state control unit.
FIG. 23 is a diagram schematically illustrating another configuration example of the behavior state control unit.
FIG. 24 is a diagram schematically showing a mechanism for controlling normal context-dependent behavior in the context-
FIG. 25 is a diagram schematically showing the configuration of a schema in the
FIG. 26 is a diagram schematically showing a mechanism for controlling reflex behavior by the
FIG. 27 is a diagram schematically illustrating a class definition of a schema used in the situation-
FIG. 28 is a diagram showing a state machine of an action function of a schema.
FIG. 29 is a diagram showing a state machine of a schema.
FIG. 30 is a diagram schematically showing a functional configuration of a class in the situation-
FIG. 31 is a flowchart showing a processing procedure for executing a MakePronome function.
FIG. 32 is a flowchart showing a processing procedure for executing a Monitor function.
FIG. 33 is a flowchart showing a processing procedure for executing an Actions function.
FIG. 34 is a flowchart showing a processing procedure for executing an Actions function.
FIG. 35 is a diagram for describing the reentrant property of a schema.
FIG. 36 is a diagram schematically illustrating a hierarchical configuration of the internal
FIG. 37 is a diagram schematically illustrating a communication path between the internal
FIG. 38 is a diagram showing a mechanism by which the internal
FIG. 39 is a diagram showing a mechanism by which the internal
FIG. 40 is a diagram showing a mechanism by which the internal
FIG. 41 is a diagram showing a mechanism by which the internal
FIG. 42 is a diagram showing a mechanism by which the internal
FIG. 43 is a diagram schematically showing a relationship between a schema and an internal state management unit.
FIG. 44 is a diagram schematically showing a Motivation calculation path by a Motivation calculation class object.
FIG. 45 is a diagram schematically illustrating a mechanism of a Motivation calculation process when an object exists.
FIG. 46 is a diagram schematically showing a mechanism of a Motivation calculation process when an object does not exist.
FIG. 47 is a diagram showing a method of changing Pleasantness.
FIG. 48 is a diagram showing a method of changing Activity.
FIG. 49 is a diagram illustrating a method of changing Certainty.
FIG. 50 is a diagram showing a mechanism for obtaining Certainty.
[Explanation of symbols]
1 ... Robot device
15 ... CCD camera
16 ... Microphone
17… Speaker
18 ... Touch sensor
19 ... LED indicator
20 ... Control unit
21 ... CPU
22 ... RAM
23… ROM
24: Non-volatile memory
25 ... Interface
26 ... Wireless communication interface
27 ... Network interface card
28 ... Bus
29 ... Keyboard
40 ... input / output unit
50 ... Drive unit
51 ... motor
52 ... Encoder
53 ... Driver
100 ... behavior control system
101: Visual recognition function unit
102: Auditory recognition function unit
103 ... Touch recognition function unit
105: Short-term memory
106: Long-term storage unit
107: Reflection behavior hierarchy
108 ... Situation-dependent behavior hierarchy
109 ... Reflex action part
Claims (40)
前記ロボットの行動を決定する1以上の行動モジュールと、
前記行動モジュールを管理する行動状態制御手段と、
前記行動モジュールの現在のステートを記憶するステート記憶手段と、
前記ステート記憶手段に記憶されたステートに対応した、外部又は内部からの入力に基づいて行動命令を出力する1又はそれ以上の行動命令出力手段を備え、
前記行動命令出力手段の行動命令の出力が停止され、その後の前記行動命令出力手段の行動命令の出力が再開される際に、前記行動状態制御手段は前記ステート記憶手段に記憶されたステートに基づいて所定の行動をロボットに実行させた後、前記行動命令の出力が再開される、
ことを特徴とするロボット装置。In a robot device that generates an action based on an internal state or an external input,
One or more action modules for determining the action of the robot;
Behavior state control means for managing the behavior module;
State storage means for storing a current state of the behavior module;
One or more action instruction output means for outputting an action command based on an external or internal input corresponding to the state stored in the state storage means,
When the output of the behavior command of the behavior command output unit is stopped and the output of the behavior command of the behavior command output unit is restarted thereafter, the behavior state control unit performs the operation based on the state stored in the state storage unit. After causing the robot to perform the predetermined action, the output of the action command is resumed,
A robot device characterized by the above-mentioned.
前記行動状態制御手段は、上位の階層に位置する他の行動モジュールに格納されている、
ことを特徴とする請求項1に記載のロボット装置。The state storage means and the action command output means are provided inside the action module,
The behavior state control means is stored in another behavior module located in a higher hierarchy,
The robot device according to claim 1, wherein:
内部状態又は外部入力に応じた前記ロボット装置の行動評価を出力する行動評価手段と、前記ロボット装置の行動命令を出力する行動命令出力手段とをそれぞれ備えた複数の行動モジュールと、
各行動モジュールの前記行動評価手段における行動評価に基いて、前記ロボット装置の行動を制御する行動状態制御手段と、
を具備することを特徴とするロボット装置。In a robot device that generates an action based on an internal state or an external input,
A plurality of action modules each including: an action evaluation unit that outputs an action evaluation of the robot apparatus according to an internal state or an external input; and an action instruction output unit that outputs an action command of the robot apparatus.
Behavior state control means for controlling the behavior of the robot device based on the behavior evaluation in the behavior evaluation means of each behavior module,
A robot device comprising:
前記行動状態制御手段は、前記階層構造の下位層の行動モジュールから上位層の行動モジュールへ出力される行動評価に基いて行動モジュールを選択し、前記ロボット装置の行動を制御する、
ことを特徴とする請求項3に記載のロボット装置。The plurality of action modules form a tree-like hierarchical structure,
The behavior state control means selects a behavior module based on a behavior evaluation output from a behavior module of a lower layer of the hierarchical structure to a behavior module of an upper layer, and controls behavior of the robot device.
The robot device according to claim 3, wherein:
前記行動状態制御手段は、前記階層構造の下位層の行動モジュールから上位層の行動モジュールへ出力される行動評価及び前記ロボット装置の使用リソースに基いて、前記ロボット装置の行動を制御する、
ことを特徴とする請求項4に記載のロボット装置。The action command output means of each of the action modules outputs resources of the robot device used when executing the action command in the robot device,
The behavior state control unit controls the behavior of the robot device based on a behavior evaluation output from a behavior module of a lower layer of the hierarchical structure to a behavior module of an upper layer and resources used by the robot device.
The robot device according to claim 4, wherein:
前記ロボット装置の行動を制御する行動状態制御手段と、
内部状態又は外部入力に応じた前記ロボット装置の行動評価を出力する行動評価手段と、前記ロボット装置の行動命令並びに該行動命令を実行する際に使用する前記ロボット装置のリソースを出力する行動命令出力手段とをそれぞれ有する複数の行動モジュールとを備え、
前記行動状態制御手段は、先にある行動モジュールとは別の行動モジュールを対象毎に生成し、前記ロボット装置の行動を制御する、
ことを特徴とするロボット装置。In a robot device that generates an action based on an internal state or an external input,
Behavior state control means for controlling the behavior of the robot device,
Behavior evaluation means for outputting an evaluation of the behavior of the robot apparatus in response to an internal state or an external input, and an output of a behavior command for outputting a behavior command of the robot apparatus and resources of the robot apparatus used when executing the behavior command And a plurality of behavior modules each having a means,
The behavior state control means generates a behavior module different from the previous behavior module for each target, and controls the behavior of the robot device.
A robot device characterized by the above-mentioned.
ことを特徴とする請求項6に記載のロボット装置。The behavior state control means may generate a second behavior module having a higher priority in the behavior evaluation than the first behavior module during the generation of the first behavior module to be applied to the first object. Generating a second behavior module in response to the
The robot device according to claim 6, wherein:
ことを特徴とする請求項7に記載のロボット装置。The behavior state control means controls the behavior of the robot device by switching between a first behavior module and a second behavior module based on the behavior evaluation output from each of the behavior modules.
The robot device according to claim 7, wherein:
前記ロボット装置の行動を制御する行動状態制御手段と、
内部状態又は外部入力に応じた前記ロボット装置の行動評価を出力する行動評価手段と、前記ロボット装置の行動命令並びに該行動命令を実行する際に使用する前記ロボット装置のリソースを出力する行動命令出力手段とをそれぞれ有する複数の行動モジュールとを備え、
前記複数の行動モジュールはツリー状の階層構造をなし、
前記行動状態制御手段は、前記階層構造の下位層の行動モジュールから上位層の行動モジュールへ出力される行動評価及び前記ロボット装置の使用リソースに基いて行動モジュールを選択し、前記ロボット装置の行動を制御する、
ことを特徴とするロボット装置。In a robot device that generates an action based on an internal state or an external input,
Behavior state control means for controlling the behavior of the robot device,
Behavior evaluation means for outputting an evaluation of the behavior of the robot apparatus in response to an internal state or an external input, and an output of a behavior command for outputting a behavior command of the robot apparatus and resources of the robot apparatus used when executing the behavior command And a plurality of behavior modules each having a means,
The plurality of action modules form a tree-like hierarchical structure,
The behavior state control means selects a behavior module based on a behavior evaluation output from a behavior module in a lower layer of the hierarchical structure to a behavior module in an upper layer and a resource used by the robot device, and determines a behavior of the robot device. Control,
A robot device characterized by the above-mentioned.
前記ロボットの動作を記述したステートマシンと、前記ステートマシンにおける現在の前記ロボットの動作ステートの活性度レベルと前記ロボットの動作ステート起動時において使用する前記ロボットのリソースを評価する行動評価器とを備えた、1以上の行動モジュールと、
前記の各行動モジュールの行動評価器に対して活性度レベルと使用リソースの算出を指示し、それぞれの活性度レベルと使用リソースに応じて活性化させる行動モジュールを選択し、該選択された行動モジュールのステートマシンに実行を指示することにより、各行動モジュールの行動状態を制御する行動状態制御部と、
を具備することを特徴とするロボットの行動制御システム。In an action control system for a robot that operates autonomously,
A state machine that describes the operation of the robot, and an activity evaluator that evaluates a current activity level of the operation state of the robot in the state machine and resources of the robot used when the operation state of the robot is activated. One or more behavior modules,
Instruct the action evaluator of each action module to calculate an activity level and a used resource, select an action module to be activated according to each activity level and a used resource, and select the selected action module. A behavior state control unit that controls the behavior state of each behavior module by instructing the state machine to execute,
A behavior control system for a robot, comprising:
ことを特徴とする請求項10に記載のロボットの行動制御システム。The behavior evaluator evaluates an activity level of the state machine according to at least one of an external environment of the robot or an internal state of the robot,
The robot behavior control system according to claim 10, wherein:
前記行動状態制御部は、行動モジュール毎に実装され、前記木構造の下位の行動モジュールに対して活性度レベル及び使用リソースの評価の指示、行動モジュールの選択、並びにステートマシンの実行の指示を行なう、
ことを特徴とする請求項10に記載のロボットの行動制御システム。The behavior module is configured in a tree structure format according to a realization level of the operation of the robot,
The behavior state control unit is mounted for each behavior module, and instructs a behavior module below the tree structure to evaluate an activity level and a used resource, to select a behavior module, and to execute a state machine. ,
The robot behavior control system according to claim 10, wherein:
ことを特徴とする請求項10に記載のロボットの行動制御システム。The behavior state control unit transitions the behavior module having the decreased activity level from the active state to the standby state, and transitions the behavior module having the increased activity level from the standby state to the active state.
The robot behavior control system according to claim 10, wherein:
行動モジュールを待機状態から活性状態に遷移させるときに、保存しておいたデータを復元して行動モジュールの状態を初期化するとともに、活性状態に遷移させるために必要な行動を起動する手段と、
をさらに備えることを特徴とする請求項13に記載のロボットの行動制御システム。Means for initiating an action required to transition the active module to the standby state while saving data necessary for resuming the active module when transitioning from the active state to the standby state;
Means for initiating an action necessary for causing the behavior module to transition from the standby state to the active state, restoring the saved data and initializing the behavior module state, and transitioning to the active state;
The robot behavior control system according to claim 13, further comprising:
ロボットを動作させるコマンドと該コマンド実行に必要な前記ロボットのリソースを評価する行動評価器との組み合わせからなる、1以上の行動モジュールと、
解放されている前記ロボットのリソースを検出する手段と、
解放されている前記ロボットのリソースによって実行可能な行動モジュールを所定の優先順位に従がって選択的に起動する手段とを備え、
リソースが競合しない2以上の行動モジュールを並列実行可能である、
ことを特徴とするロボットの行動制御システム。In an action control system for a robot that operates autonomously,
One or more action modules comprising a combination of a command for operating a robot and an action evaluator for evaluating resources of the robot required for executing the command;
Means for detecting released resources of the robot;
Means for selectively activating an action module executable by resources of the released robot according to a predetermined priority,
Two or more action modules whose resources do not compete can be executed in parallel.
A robot behavior control system characterized by the following.
内部状態の指標である情動を複数の階層構造にして管理する内部状態管理部と、
各階層の情動を満たす行動を選択的に実行する行動選択部と、
を具備することを特徴とするロボットの行動制御システム。In a robot behavior control system that operates autonomously according to the internal state,
An internal state management unit that manages emotions, which are indicators of the internal state, in a plurality of hierarchical structures,
An action selection unit that selectively executes an action that satisfies the emotions of each hierarchy;
A behavior control system for a robot, comprising:
ことを特徴とする請求項16に記載のロボットの行動制御システム。The internal state management unit hierarchizes the primary emotions necessary for the survival of the individual and the secondary emotions that change depending on the excess or deficiency of the primary emotions. Hierarchy by dimension from physiological hierarchy to association,
The robot behavior control system according to claim 16, wherein:
ことを特徴とする請求項17に記載のロボットの行動制御システム。The action selection unit preferentially selects an action that satisfies a lower primary emotion,
The robot behavior control system according to claim 17, wherein:
ことを特徴とする請求項18に記載のロボットの行動制御システム。The action selecting unit suppresses selection of an action that satisfies the lower-order primary emotion when the higher-order primary emotion is significantly insufficient compared to the lower-order primary emotion,
The robot behavior control system according to claim 18, wherein:
前記行動選択部は、内部状態の指標に加え、外部環境の指標を基に行動を選択する、
ことを特徴とする請求項16に記載のロボットの行動制御システム。It further includes an external environment recognition unit that recognizes changes in the external environment of the robot,
The action selection unit, in addition to the index of the internal state, selects an action based on the index of the external environment,
The robot behavior control system according to claim 16, wherein:
ことを特徴とする請求項16に記載のロボットの行動制御システム。The internal state management unit changes the index of the internal state over time,
The robot behavior control system according to claim 16, wherein:
ことを特徴とする請求項16に記載のロボットの行動制御システム。The internal state management unit changes the index of the internal state according to the execution of the action selected in the action selection unit,
The robot behavior control system according to claim 16, wherein:
前記内部状態管理部は、外部環境の変化に応じて内部状態の指標を変更する、
ことを特徴とする請求項16に記載のロボットの行動制御システム。It further includes an external environment recognition unit that recognizes changes in the external environment of the robot,
The internal state management unit changes the index of the internal state according to a change in the external environment,
The robot behavior control system according to claim 16, wherein:
前記内部状態管理部は、前記連想記憶部が外部環境から想起した内部環境の変化を基に内部状態の指標を変更する、
ことを特徴とする請求項16に記載のロボットの行動制御システム。An external environment recognition unit that recognizes changes in the external environment of the robot; and an associative storage unit that associates and stores changes in the internal state from the external environment.
The internal state management unit changes the index of the internal state based on the change of the internal environment recalled from the external environment by the associative storage unit,
The robot behavior control system according to claim 16, wherein:
ことを特徴とする請求項24に記載のロボットの行動制御システム。The associative storage unit associatively stores a change in the internal state for each recognized object.
25. The robot behavior control system according to claim 24, wherein:
内部状態の指標である情動を複数の階層構造にして管理する内部状態管理ステップと、
各階層の情動を満たす行動を選択的に実行する行動選択ステップと、
を具備することを特徴とするロボットの行動制御方法。In a behavior control method for a robot that operates autonomously according to an internal state,
An internal state management step of managing emotions, which are indicators of the internal state, in a plurality of hierarchical structures,
An action selection step of selectively executing an action that satisfies the emotion of each layer;
A behavior control method for a robot, comprising:
ことを特徴とする請求項26に記載のロボットの行動制御方法。In the internal state management step, the primary emotion necessary for the existence of the individual and the secondary emotion that changes depending on the excess or deficiency of the primary emotion are hierarchized into stages, and the primary emotion is innately reflected or reflected. From the physiological hierarchy to the association, the internal state is handled hierarchically by dimension,
The method of controlling a robot action according to claim 26, wherein:
ことを特徴とする請求項26に記載のロボットの行動制御方法。In the action selecting step, an action that satisfies a lower primary emotion is preferentially selected.
The method of controlling a robot action according to claim 26, wherein:
ことを特徴とする請求項26に記載のロボットの行動制御方法。In the action selecting step, when a higher-order primary emotion is significantly insufficient compared to a lower-order primary emotion, the selection of an action that satisfies the lower-order primary emotion is suppressed.
The method of controlling a robot action according to claim 26, wherein:
前記行動選択ステップでは、内部状態の指標に加え、外部環境の指標を基に行動を選択する、
ことを特徴とする請求項26に記載のロボットの行動制御方法。Further comprising an external environment recognition step of recognizing a change in the external environment of the robot,
In the action selection step, in addition to the index of the internal state, select an action based on the index of the external environment,
The method of controlling a robot action according to claim 26, wherein:
ことを特徴とする請求項26に記載のロボットの行動制御方法。In the internal state management step, changing the index of the internal state according to the passage of time,
The method of controlling a robot action according to claim 26, wherein:
ことを特徴とする請求項26に記載のロボットの行動制御方法。In the internal state management step, changing the index of the internal state according to the execution of the action selected in the action selection step,
The method of controlling a robot action according to claim 26, wherein:
前記内部状態管理ステップでは、外部環境の変化に応じて内部状態の指標を変更する、
ことを特徴とする請求項26に記載のロボットの行動制御方法。Further comprising an external environment recognition step of recognizing a change in the external environment of the robot,
In the internal state management step, changing the index of the internal state according to the change of the external environment,
The method of controlling a robot action according to claim 26, wherein:
前記内部状態管理ステップでは、連想記憶により外部環境から想起した内部環境の変化を基に内部状態の指標を変更する、
ことを特徴とする請求項36に記載のロボットの行動制御方法。An external environment recognition step of recognizing a change in the external environment of the robot; and an associative memory step of associatively storing a change in the internal state from the external environment,
In the internal state management step, the index of the internal state is changed based on the change of the internal environment recalled from the external environment by the associative memory,
The method according to claim 36, wherein the behavior of the robot is controlled.
ことを特徴とする請求項34に記載のロボットの行動制御方法。In the associative storage step, the change of the internal state is associatively stored for each recognized object,
35. The method according to claim 34, wherein the behavior of the robot is controlled.
前記ロボットの行動を決定する1以上の行動モジュールと、
前記行動モジュールを管理する行動モジュール管理手段と、
前記行動モジュールの現在のステートを記憶するステート記憶手段と、
前記ステート記憶手段に記憶されたステートに対応した、外部又は内部からの入力に基づいて行動命令を出力する1又はそれ以上のステートマシンを備え、
前記ステートマシンの行動命令の出力が停止され、その後の行動出力が再開される際に、前記行動モジュール管理手段は前記ステート記憶手段に記憶されたステートに基づいて所定の行動をロボットに実行させた後、前記行動出力が再開される、
ことを特徴とするロボット装置。A robot device that generates an action based on an internal input or an external input,
One or more action modules for determining the action of the robot;
Behavior module management means for managing the behavior module,
State storage means for storing a current state of the behavior module;
One or more state machines corresponding to the states stored in the state storage means and outputting an action command based on an external or internal input,
When the output of the action command of the state machine is stopped and the subsequent action output is restarted, the action module management means causes the robot to execute a predetermined action based on the state stored in the state storage means. Later, the action output is resumed,
A robot device characterized by the above-mentioned.
前記行動モジュール管理手段は、前記行動モジュールと階層構造をなし、且つ、上位の階層に位置する他の行動モジュールに格納されている、
ことを特徴とする請求項36に記載のロボット装置。The state storage means and the state machine are provided inside the behavior module,
The behavior module management means has a hierarchical structure with the behavior module, and is stored in another behavior module located in a higher hierarchy.
The robot apparatus according to claim 36, wherein:
外部刺激と内部環境に基づいて状況判断して活動度レベルを算出する手段と、所定のステートマシンに基づいて入力とステートに対応した行動を出力する手段とを備えた行動モジュールと、
前記行動モジュールの状態を設定する状態設定手段と、
を具備することを特徴とするロボット装置。In a robot device that operates autonomously,
An action module including means for calculating an activity level by determining a situation based on an external stimulus and an internal environment, and means for outputting an action corresponding to an input and a state based on a predetermined state machine;
State setting means for setting a state of the action module;
A robot device comprising:
を特徴とする請求項38に記載のロボット装置。The state setting unit sets the behavior module to one of a ready state, an active state, and a standby state according to the activity level.
The robot device according to claim 38, wherein:
前記状態設定手段は、前記階層の上位の行動モジュールが下位の行動モジュールを選択するように構成されている、
を特徴とする請求項38に記載のロボット装置。Two or more action modules are arranged in a hierarchical structure,
The state setting means is configured such that an upper-level behavior module of the hierarchy selects a lower-level behavior module,
The robot device according to claim 38, wherein:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003072844A JP3558222B2 (en) | 2002-03-15 | 2003-03-17 | Robot behavior control system and behavior control method, and robot device |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002-72351 | 2002-03-15 | ||
JP2002072352 | 2002-03-15 | ||
JP2002072351 | 2002-03-15 | ||
JP2002-72352 | 2002-03-15 | ||
JP2003072844A JP3558222B2 (en) | 2002-03-15 | 2003-03-17 | Robot behavior control system and behavior control method, and robot device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003334785A JP2003334785A (en) | 2003-11-25 |
JP3558222B2 true JP3558222B2 (en) | 2004-08-25 |
Family
ID=29715899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003072844A Expired - Fee Related JP3558222B2 (en) | 2002-03-15 | 2003-03-17 | Robot behavior control system and behavior control method, and robot device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3558222B2 (en) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4048492B2 (en) * | 2003-07-03 | 2008-02-20 | ソニー株式会社 | Spoken dialogue apparatus and method, and robot apparatus |
JP4661074B2 (en) | 2004-04-07 | 2011-03-30 | ソニー株式会社 | Information processing system, information processing method, and robot apparatus |
JP2006110707A (en) * | 2004-09-14 | 2006-04-27 | Sony Corp | Robot device |
WO2006030530A1 (en) * | 2004-09-17 | 2006-03-23 | National Institute Of Advanced Industrial Science And Technology | Imitated animal having stimulus priority judgment means |
JP4682322B2 (en) * | 2005-03-23 | 2011-05-11 | 国立大学法人九州工業大学 | Dialog information processing apparatus and dialog information processing method |
JP5306933B2 (en) * | 2009-08-03 | 2013-10-02 | 本田技研工業株式会社 | Robot and control system |
JP5450218B2 (en) * | 2009-08-03 | 2014-03-26 | 本田技研工業株式会社 | Robot and control system |
US8849452B2 (en) | 2009-08-03 | 2014-09-30 | Honda Motor Co., Ltd. | Robot and control system |
JP5306934B2 (en) * | 2009-08-03 | 2013-10-02 | 本田技研工業株式会社 | Robot and control system |
JP5465137B2 (en) * | 2010-04-22 | 2014-04-09 | 本田技研工業株式会社 | Robot and control system |
JP6467710B2 (en) * | 2015-04-06 | 2019-02-13 | 信太郎 本多 | A versatile artificial intelligence system that adapts to the environment |
JP6844124B2 (en) * | 2016-06-14 | 2021-03-17 | 富士ゼロックス株式会社 | Robot control system |
US20200012239A1 (en) | 2017-03-31 | 2020-01-09 | Sony Corporation | Information processing apparatus and information processing method, computer program, and program manufacturing method |
JP7074130B2 (en) | 2017-04-12 | 2022-05-24 | ソニーグループ株式会社 | Information processing equipment and information processing methods, as well as computer programs |
CN113733106B (en) * | 2021-11-05 | 2022-04-15 | 深圳市优必选科技股份有限公司 | Method, device, equipment and medium for controlling whole body of force-controlled humanoid robot |
-
2003
- 2003-03-17 JP JP2003072844A patent/JP3558222B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003334785A (en) | 2003-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101137205B1 (en) | Robot behavior control system, behavior control method, and robot device | |
JP4244812B2 (en) | Action control system and action control method for robot apparatus | |
US7853357B2 (en) | Robot behavior control based on current and predictive internal, external condition and states with levels of activations | |
US8145492B2 (en) | Robot behavior control system and method, and robot apparatus | |
KR100864339B1 (en) | Robot device and behavior control method for robot device | |
US7515992B2 (en) | Robot apparatus and emotion representing method therefor | |
US7363108B2 (en) | Robot and control method for controlling robot expressions | |
JP3558222B2 (en) | Robot behavior control system and behavior control method, and robot device | |
JP2006110707A (en) | Robot device | |
JP2011115944A (en) | Robot device, robot device action control method, and program | |
JP2007125631A (en) | Robot device and motion control method | |
JP2004283958A (en) | Robot device, method of controlling its behavior and program thereof | |
JP4296736B2 (en) | Robot device | |
JP2007125629A (en) | Robot device and motion control method | |
JP2004114285A (en) | Robotic device and its behavior control method | |
JP4552465B2 (en) | Information processing apparatus, action control method for robot apparatus, robot apparatus, and computer program | |
JP4147960B2 (en) | Robot apparatus and operation control method of robot apparatus | |
JP2004209599A (en) | Robot device, action learning method for robot device and action preparation method for robot device | |
JP2002205289A (en) | Action control method for robot device, program, recording medium and robot device | |
JP2004283957A (en) | Robot device, method of controlling the same, and program | |
JP2001157980A (en) | Robot device, and control method thereof | |
JP2004283960A (en) | Robot device, method of controlling behavior and program thereof | |
JP2005193330A (en) | Robot device and its emotional expression method | |
JP2004291147A (en) | Robot's behavior control system | |
JP2007125630A (en) | Robot device and motion control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040218 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040406 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040430 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040513 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3558222 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090528 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110528 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110528 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120528 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |