JP2004283957A - Robot device, method of controlling the same, and program - Google Patents
Robot device, method of controlling the same, and program Download PDFInfo
- Publication number
- JP2004283957A JP2004283957A JP2003079144A JP2003079144A JP2004283957A JP 2004283957 A JP2004283957 A JP 2004283957A JP 2003079144 A JP2003079144 A JP 2003079144A JP 2003079144 A JP2003079144 A JP 2003079144A JP 2004283957 A JP2004283957 A JP 2004283957A
- Authority
- JP
- Japan
- Prior art keywords
- schema
- value
- frustration
- action
- 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.)
- Withdrawn
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、ロボット装置、その制御方法及びプログラムに関し、特に、人間や動物を模倣したエンターテイメント性を有するロボット装置、その制御方法及びプログラムに関する。
【0002】
【従来の技術】
電気的又は磁気的な作用を用いて人間(生物)の動作に似た運動を行う機械装置を「ロボット装置」という。我が国においてロボット装置が普及し始めたのは、1960年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータ及び搬送ロボット装置等の産業用ロボット装置(Industrial Robot)であった。
【0003】
最近では、人間のパートナーとして生活を支援する、即ち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボット装置の開発が進められている。このような実用ロボット装置は、産業用ロボット装置とは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬又は猫のように4足歩行の動物の身体メカニズム及びその動作を模した「ペット型」ロボット装置、或いは、2足直立歩行を行う人間等の身体メカニズム及びその動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット装置(Humanoid Robot)等のロボット装置は、既に実用化されつつある。
【0004】
これらのロボット装置は、産業用ロボット装置と比較して、例えばエンターテインメント性を重視した様々な動作等を行うことができるため、エンターテインメントロボット装置と呼称される場合もある。また、そのようなロボット装置には、外部からの情報及び内部の状態に応じて自律的に動作するものがある。
【0005】
ところで、かかるペットロボット装置においては、人間又は本物の犬や猫などのように、現在の状況に応じた最適な次の行動及び動作を行わせる機能や、過去の経験に基づいて次の行動及び動作を変化させる機能を搭載することができれば、より一層の親近感や満足感をユーザに与えて、ペットロボット装置としてのアミューズメント性をより向上させることができる。そこで、このようなアミューズメント性の向上を図ったロボット装置及びその制御方法が下記特許文献1に記載されている。
【0006】
この特許文献1に記載されたロボット装置においては、複数種類の行動モデルを有し、行動選択手段を用いて、外部からの入力情報と自己の行動履歴及び又は成長履歴との少なくとも一方に基づいて、各行動モデルの出力の中から1つの行動モデルの出力を選択するよう構成されており、これにより、現在の状況に応じた最適な次の行動を連続して行わせることができる。
【0007】
【特許文献1】
特開2001−157981号公報
【0008】
【発明が解決しようとする課題】
ところで、上記特許文献1等に記載の従来のロボット装置においては、予め定められた優先順位の高い行動モデルから出力された行動を選択するようになされているものの、選択された行動は、所定の終了条件を満たすまで行われる。又は所定の移行条件を満たすまでは次の行動に移行せず、同じ行動が継続される。即ち、ロボット装置は、自身がやりたいと判断した行動を選択することができるが、これを終了するには、選択した行動の終了又は移行条件を満たす必要があった。従って、選択した行動が終了又は移行条件を満たすまでは、他の行動が発現されずに同じ行動をやり続けていた。
【0009】
しかしながら、一度選択されて発現されている行動を、人間等と同様に例えばうまくできなければ、不快になる、悲しくなる等の感情を有して、これを動作に反映させることができれば、うまくできない行動は途中で止めてしまったり、これをユーザに伝えたりすることができ、より人間又は犬や猫等の動物の行動に模したものとなり、更に一層の親近感や満足感をユーザに与えることができて、エンターテイメント性を更に向上させることができる。
【0010】
本発明は、このような従来の実情に鑑みて提案されたものであり、行動の発現中においても、外部環境及び自身の内部状態を考慮することができ、これを行動に反映させ多彩な行動バリエーションを持たせ、更にエンターテイメント性を向上することができるロボット装置、その制御方法及びプログラムを提供することを目的とする。
【0011】
【課題を解決するための手段】
上述した目的を達成するために、本発明に係るロボット装置は、所定の終了条件又は次の動作に移行する移行条件を有する複数の動作から選択された動作を発現するロボット装置において、上記複数の動作から発現する動作を選択する選択手段と、上記選択手段に選択された後の経過時間に応じてフラストレーション値を算出するフラストレーション値算出手段と、上記フラストレーション値に応じて上記選択された動作を変化させる制御手段を有することを特徴とする。
【0012】
本発明においては、所定の終了条件を有する動作、即ち、所定の目的を達成するための動作を複数有し、動作開始後の経過時間に応じて変動するフラストレーション値を算出し、これを使用することによって、動作を変化させることができ、例えば、一度選択された動作を途中で停止させたり、又は当該動作の選択を所定期間禁止したり、更には、そのような場合に違う行動を選択する状況を作り出したり、また、上記フラストレーション値に応じて感情(内部状態)を変化させてこれを動作に反映させたりすることができ、例えば、当該動作の選択を所定期間禁止することで、この所定期間内に再度同じ状況・同じ条件になった場合に繰り返し同じ動作を選択するのを防ぐことができる。
【0013】
本発明に係るロボット装置の制御方法は、所定の終了条件又は次の動作に移行する移行条件を有する複数の動作から選択された動作を発現するロボット装置の制御方法において、上記複数の動作から発現する動作を選択する選択工程と、上記選択工程にて選択された後の経過時間に応じてフラストレーション値を算出するフラストレーション値算出工程と、上記フラストレーション値に応じて上記選択された動作を変化させる制御工程を有することを特徴とする。
【0014】
また、本発明に係るプログラムは、上述した制御処理をコンピュータに実行させるものである。
【0015】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、ロボット装置自身の内部の状態を得る手段をもち、その内部状態と、ロボット装置の外部の状況から行動を選択するロボット装置において、心理学の観念を取り入れたフラストレーションという値を使用することによって、行動実行中の内部状態を行動に反映させ、例えば選択された行動を途中で終了することが可能になる等、多彩な動作バリエーションを有するロボット装置及びその行動制御方法に適用したものである。
【0016】
ここでは先ず、このようなロボット装置の好適な構成、及び制御システムについて説明し、次に本実施の形態におけるフラストレーション値を算出可能なロボット装置について詳細に説明する。
【0017】
(1)ロボット装置の構成
図1は、本実施の形態のロボット装置の外観を示す斜視図である。図1に示すように、ロボット装置1は、体幹部ユニット2の所定の位置に頭部ユニット3が連結されると共に、左右2つの腕部ユニット4R/Lと、左右2つの脚部ユニット5R/Lが連結されて構成されている(但し、R及びLの各々は、右及び左の各々を示す接尾辞である。)。
【0018】
図2は、本実施の形態におけるロボット装置1の機能構成を模式的に示すブロック図である。図2に示すように、ロボット装置1は、全体の動作の統括的制御及びその他のデータ処理を行う制御ユニット20と、入出力部40と、駆動部50と、電源部60とで構成される。以下、各部について説明する。
【0019】
入出力部40は、入力部として人間の目に相当し、外部の状況を撮影するCCDカメラ15、及び耳に相当するマイクロフォン16や頭部や背中等の部位に配設され、所定の押圧を受けるとこれを電気的に検出することで、ユーザの接触を感知するタッチ・センサ18、前方に位置する物体までの距離を測定するための距離センサ、五感に相当するその他の各種のセンサ等を含む。また、出力部として、頭部ユニット3に備えられ、人間の口に相当するスピーカ17、及び人間の目の位置に設けられ、感情表現や視覚認識状態を表現する例えばLEDインジケータ(目ランプ)19等を装備しており、これら出力部は、音声やLEDインジケータ19の点滅等、脚等による機械運動パターン以外の形式でもロボット装置1からのユーザ・フィードバックを表現することができる。
【0020】
例えば頭部ユニットの頭頂部の所定箇所に複数のタッチ・センサ18を設け、各タッチ・センサ18における接触検出を複合的に活用して、ユーザからの働きかけ、例えばロボット装置1の頭部を「撫でる」「叩く」「軽く叩く」等を検出することができ、例えば、押圧センサのうちの幾つかが所定時間をおいて順次接触したことを検出した場合、これを「撫でられた」と判別し、短時間のうちに接触を検出した場合、「叩かれた」と判別する等場合分けし、これに応じて内部状態も変化し、このような内部状態の変化に応じて動作を発現することができる。
【0021】
駆動部50は、制御ユニット20が指令する所定の運動パターンに従ってロボット装置1の機体動作を実現する機能ブロックであり、行動制御による制御対象である。駆動部50は、ロボット装置1の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール、ピッチ、ヨー等各軸毎に設けられた複数の駆動ユニット541〜54nで構成される。各駆動ユニット541〜54nは、所定軸回りの回転動作を行うモータ511〜51nと、モータ511〜51nの回転位置を検出するエンコーダ521〜52nと、エンコーダ521〜52nの出力に基づいてモータ511〜51nの回転位置や回転速度を適応的に制御するドライバ531〜53nとの組み合わせで構成される。
【0022】
本ロボット装置1は、2足歩行としたが、駆動ユニットの組み合わせ方によって、ロボット装置1を例えば4足歩行等の脚式移動ロボット装置として構成することもできる。
【0023】
電源部60は、その字義通り、ロボット装置1内の各電気回路等に対して給電を行う機能モジュールである。本実施の形態に係るロボット装置1は、バッテリを用いた自律駆動式であり、電源部60は、充電バッテリ61と、充電バッテリ61の充放電状態を管理する充放電制御部62とで構成される。
【0024】
充電バッテリ61は、例えば、複数本のリチウムイオン2次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【0025】
また、充放電制御部62は、バッテリ61の端子電圧や充電/放電電流量、バッテリ61の周囲温度等を測定することでバッテリ61の残存容量を把握し、充電の開始時期や終了時期等を決定する。充放電制御部62が決定する充電の開始及び終了時期は制御ユニット20に通知され、ロボット装置1が充電オペレーションを開始及び終了するためのトリガとなる。
【0026】
制御ユニット20は、人間の「頭脳」に相当し、例えばロボット装置1の機体頭部あるいは胴体部等に搭載することができる。
【0027】
図3は、制御ユニット20の構成を更に詳細に示すブロック図である。図3に示すように、制御ユニット20は、メイン・コントローラとしてのCPU(Central Processing Unit)21が、メモリ及びその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。バス28は、データ・バス、アドレス・バス、コントロール・バス等を含む共通信号伝送路である。バス28上の各装置にはそれぞれに固有のアドレス(メモリ・アドレス又はI/Oアドレス)が割り当てられている。CPU21は、アドレスを指定することによってバス28上の特定の装置と通信することができる。
【0028】
RAM(Random Access Memory)22は、DRAM(Dynamic RAM)等の揮発性メモリで構成された書き込み可能メモリであり、CPU21が実行するプログラム・コードをロードしたり、実行プログラムによる作業データの一時的に保存そたりするために使用される。
【0029】
ROM(Read Only Memory)23は、プログラムやデータを恒久的に格納する読み出し専用メモリである。ROM23に格納されるプログラム・コードには、ロボット装置1の電源投入時に実行する自己診断テスト・プログラムや、ロボット装置1の動作を規定する動作制御プログラム等が挙げられる。
【0030】
ロボット装置1の制御プログラムには、カメラ15やマイクロフォン16等のセンサ入力を処理してシンボルとして認識する「センサ入力・認識処理プログラム」、短期記憶や長期記憶等の記憶動作(後述)を司りながらセンサ入力と所定の行動制御モデルとに基づいてロボット装置1の行動(動作)を制御する「行動制御プログラム」、行動制御モデルに従って各関節モータの駆動やスピーカ17の音声出力等を制御する「駆動制御プログラム」等が含まれる。
【0031】
不揮発性メモリ24は、例えばEEPROM(Electrically Erasable and Programmable ROM)のように電気的に消去再書き込みが可能なメモリ素子で構成され、逐次更新すべきデータを不揮発的に保持するために使用される。逐次更新すべきデータには、暗号鍵やその他のセキュリティ情報、出荷後にインストールすべき装置制御プログラム等が挙げられる。
【0032】
インターフェース25は、制御ユニット20外の機器と相互接続し、データ交換を可能にするための装置である。インターフェース25は、例えば、カメラ15、マイクロフォン16、又はスピーカ17等との間でデータ入出力を行う。また、インターフェース25は、駆動部50内の各ドライバ531〜53nとの間でデータやコマンドの入出力を行う。
【0033】
また、インターフェース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カードやメモリ・スティックを受容するメモリ・カード・インターフェース(カード・スロット)等のような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続された外部機器との間でプログラムやデータの移動を行うようにしてもよい。
【0034】
また、インターフェース25の他の例として、赤外線通信(IrDA)インターフェースを備え、外部機器と無線通信を行うようにしてもよい。
【0035】
更に、制御ユニット20は、無線通信インターフェース26やネットワーク・インターフェース・カード(NIC)27等を含み、Bluetoothのような近接無線データ通信や、IEEE 802.11bのような無線ネットワーク、あるいはインターネット等の広域ネットワークを経由して、外部のさまざまなホスト・コンピュータとデータ通信を行うことができる。
【0036】
このようなロボット装置1とホスト・コンピュータ間におけるデータ通信により、遠隔のコンピュータ資源を用いて、ロボット装置1の複雑な動作制御を演算したり、リモート・コントロールしたりすることができる。
【0037】
(2)ロボット装置の制御システム
次に、ロボット装置の制御システムについて説明する。図4は、本実施の形態におけるロボット装置1の制御システム10の機能構成を示す模式図である。本実施の形態におけるロボット装置1は、外部刺激の認識結果や内部状態の変化に応じて、動作制御を行なうことができるものである。また、長期記憶機能を備え、外部刺激から内部状態の変化を連想記憶することにより、外部刺激の認識結果や内部状態の変化に応じて動作制御を行うことができる。
【0038】
ここで、外的刺激とは、ロボット装置1がセンサ入力を認識して得られた知覚情報であり、例えば、カメラ15から入力された画像に対して処理された色情報、形情報、顔情報等であり、より具体的には、色、形、顔、3D一般物体、ハンドジェスチャー、動き、音声、接触、匂い、味等の構成要素からなる。
【0039】
また、内的状態とは、例えば、ロボット装置の身体に基づいた本能や感情等の情動を指す。本能的要素は、例えば、疲れ(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つである。
【0040】
図示の制御システム10には、オブジェクト指向プログラミングを採り入れて実装することができる。この場合、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとInvokeを行なうことができる。
【0041】
制御システム10は、外部環境(Environments)70を認識するために、視覚認識機能部81、聴覚認識機能部82、及び接触認識機能部83等からなる機能モジュールである状態認識部80を備えている。
【0042】
視覚認識機能部(Video)81は、例えば、CCD(Charge Coupled Device:電荷結合素子)カメラのような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識等の画像認識処理や特徴抽出を行う。また、聴覚認識機能部(Audio)82は、マイク等の音声入力装置を介して入力される音声データを音声認識して、特徴抽出したり、単語セット(テキスト)認識を行ったりする。更に、接触認識機能部(Tactile)83は、例えば機体の頭部等に内蔵された接触センサによるセンサ信号を認識して、「なでられた」とか「叩かれた」という外部刺激を認識する。
【0043】
内部状態管理部(ISM:Internal Status Manager)91は、上述した本能や感情といった数種類の情動を数式モデル化して管理しており、上述の視覚認識機能部81、聴覚認識機能部82、及び接触認識機能部83によって認識された外部刺激(ES:ExternalStimula)に応じてロボット装置1の本能や情動といった内部状態を管理する。
【0044】
このような感情モデルと本能モデルは、それぞれ認識結果と行動(動作)履歴を入力に持ち、感情値と本能値を管理している。行動モデルは、これら感情値や本能値を参照することができる。
【0045】
また、外部刺激の認識結果や内部状態の変化に応じて動作制御を行なうために、時間の経過とともに失われる短期的な記憶を行なう短期記憶部(STM:Short Term Memory)92と、情報を比較的長期間保持するための長期記憶部(LTM:Long Term Memory)93を備えている。短期記憶と長期記憶という記憶メカニズムの分類は神経心理学に依拠する。
【0046】
短期記憶部92は、上述の視覚認識機能部81、聴覚認識機能部82、及び接触認識機能部83によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。例えば、図2に示すカメラ15からの入力画像を約15秒程度の短い期間だけ記憶する。
【0047】
長期記憶部93は、物の名前等学習により得られた情報を長期間保持するために使用される。長期記憶部93は、例えば、ある行動記述モジュールにおいて外部刺激から内部状態の変化を連想記憶することができる。
【0048】
また、本ロボット装置1の動作制御は、反射行動部(Reflexive Situated Behaviors Layer)103によって実現される「反射行動」と、状況依存行動階層(SBL:Situated Behaviors Layer)102によって実現される「状況依存行動」と、熟考行動階層(Deliberative Layer)101によって実現される「熟考行動」に大別される。
【0049】
反射行動部103は、上述の視覚認識機能部81、聴覚認識機能部82、及び接触認識機能部83によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。反射行動とは、基本的に、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動(動作)を直接決定する行動のことである。例えば、人間の顔を追いかけたり、うなずいたりといった振る舞いは反射行動として実装することが好ましい。
【0050】
状況依存行動階層102は、短期記憶部92及び長期記憶部93の記憶内容や、内部状態管理部91によって管理される内部状態を基に、ロボット装置1が現在置かれている状況に即応した行動を制御する。
【0051】
状況依存行動階層102は、目的に応じた行動(動作)が記述された複数の行動記述モジュール(スキーマ)を有し、各行動(スキーマ)毎にステートマシンを用意しており、それ以前の動作や状況に依存して、センサ入力された外部情報の認識結果を分類して、動作を機体上で発現する。また、状況依存行動階層102は、内部状態をある範囲に保つための行動(「ホメオスタシス行動」とも呼ぶ)も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出現し易くなるようにその行動を活性化させる(実際には、内部状態と外部環境の両方を考慮した形で行動(動作)が選択される)。
【0052】
具体的には、各スキーマが、内部状態の変化及び外部刺激に基づき、そのスキーマの実行優先度を示す活動度レベル(アクティベーションレベル:activation level、以下ALともいう。)を算出し、このアクティベーションレベルが高いスキーマが1以上選択され、選択された動作が発現されるようになされている。即ち、例えばアクティベーションレベルが最も高いスキーマを選択したり、アクティベーションレベルが所定の閾値を越えた2以上のスキーマを選択して並列的に実行したりすることができる(但し、並列実行するときは各スキーマどうしでハードウェアリソースの競合がないことを前提とする)。この状況依存行動は、反射行動に比し、反応時間が遅い。
【0053】
熟考行動階層101は、短期記憶部92及び長期記憶部93の記憶内容に基づいて、ロボット装置1の比較的長期にわたる行動計画等を行う。熟考行動とは、与えられた状況あるいは人間からの命令により、推論やそれを実現するための計画を立てて行われる行動のことである。例えば、ロボット装置の位置と目標の位置から経路を探索することは熟考行動に相当する。このような推論や計画は、ロボット装置1がインタラクションを保つための反応時間よりも処理時間や計算負荷を要する(すなわち処理時間がかかる)可能性があるので、上記の反射行動や状況依存行動がリアルタイムで反応を返しながら、熟考行動は推論や計画を行う。
【0054】
熟考行動階層101、状況依存行動階層102、及び反射行動部103は、ロボット装置1のハードウェア構成に非依存の上位のアプリケーション・プログラムとして記述することができる。これに対し、ハードウェア依存層制御部(Configuration Dependent Actions And Reactions)104は、これら上位アプリケーション、即ち、行動記述モジュール(スキーマ)からの命令に応じて、関節アクチュエータの駆動等の機体のハードウェア(外部環境)を直接操作する。このような構成により、ロボット装置1は、制御プログラムに基づいて自己及び周囲の状況を判断し、使用者からの指示及び働きかけに応じて自律的に行動できる。
【0055】
次に、行動制御システム10について更に詳細に説明する。図5は、本実施の形態における行動制御システム10のオブジェクト構成を示す模式図である。
【0056】
図5に示すように、視覚認識機能部81は、Face Detector114、Mulit Color Tracker113、Face Identify115という3つのオブジェクトで構成される。
【0057】
Face Detector114は、画像フレーム中から顔領域を検出するオブジェクトであり、検出結果をFace Identify115に出力する。Mulit Color Tracker113は、色認識を行うオブジェクトであり、認識結果をFace Identify115及びShort Term Memory(STM)92に出力する。また、Face Identify115は、検出された顔画像を手持ちの人物辞書で検索する等して人物の識別を行ない、顔画像領域の位置、大きさ情報とともに人物のID情報をSTM92に出力する。
【0058】
聴覚認識機能部82は、Audio Recog111とSpeech Recog112という2つのオブジェクトで構成される。Audio Recog111は、マイク等の音声入力装置からの音声データを受け取って、特徴抽出と音声区間検出を行うオブジェクトであり、音声区間の音声データの特徴量及び音源方向をSpeech Recog112やSTM92に出力する。Speech Recog112は、Audio Recog111から受け取った音声特徴量と音声辞書及び構文辞書を使って音声認識を行うオブジェクトであり、認識された単語のセットをSTM92に出力する。
【0059】
触覚認識記憶部83は、接触センサからのセンサ入力を認識するTactile Sensor119というオブジェクトで構成され、認識結果はSTM92や内部状態を管理するオブジェクトであるInternal State Model(ISM)91に出力する。
【0060】
STM92は、短期記憶部を構成するオブジェクトであり、上述の認識系の各オブジェクトによって外部環境から認識されたターゲットやイベントを短期間保持(例えばカメラ15からの入力画像を約15秒程度の短い期間だけ記憶する)する機能モジュールであり、STMクライアントであるSBL102に対して外部刺激の通知(Notify)を定期的に行なう。
【0061】
LTM93は、長期記憶部を構成するオブジェクトであり、物の名前等学習により得られた情報を長期間保持するために使用される。LTM93は、例えば、ある行動記述モジュール(スキーマ)において外部刺激から内部状態の変化を連想記憶することができる。
【0062】
ISM91は、内部状態管理部を構成するオブジェクトであり、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の認識系の各オブジェクトによって認識された外部刺激(ES:External Stimula)に応じてロボット装置1の本能や情動といった内部状態を管理する。
【0063】
SBL102は状況依存型行動階層を構成するオブジェクトである。SBL102は、STM92のクライアント(STMクライアント)となるオブジェクトであり、STM92からは定期的に外部刺激(ターゲットやイベント)に関する情報の通知(Notify)を受け取ると、スキーマ(Schema)すなわち実行すべき行動記述モジュールを決定する(後述)。
【0064】
ReflexiveSBL(Situated Behaviors Layer)103は、反射的行動部を構成するオブジェクトであり、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する。例えば、人間の顔を追いかけたり、うなずく、障害物の検出により咄嗟に避けるといった振る舞いを行なう。
【0065】
SBL102は外部刺激や内部状態の変化等の状況に応じた動作を選択する。これに対し、ReflexiveSBL103は、外部刺激に応じて反射的な動作を選択する。これら2つのオブジェクトによる行動選択は独立して行なわれるため、互いに選択された行動記述モジュール(スキーマ)を機体上で実行する場合に、ロボット装置1のハードウェア・リソースが競合して実現不可能なこともある。RM(Resource Manager)116というオブジェクトは、SBL102とReflexiveSBL103とによる行動選択時のハードウェアの競合を調停する。そして、調停結果に基づいて機体動作を実現する各オブジェクトに通知することにより機体が駆動する。
【0066】
Sound Performer172、Motion Controller173、LEDController174は、機体動作を実現するオブジェクトである。Sound Performer172は、音声出力を行うためのオブジェクトであり、RM116経由でSBL102から与えられたテキスト・コマンドに応じて音声合成を行い、ロボット装置1の機体上のスピーカから音声出力を行う。また、Motion Controller173は、機体上の各関節アクチュエータの動作を行なうためのオブジェクトであり、RM116経由でSBL102から手や脚等を動かすコマンドを受けたことに応答して、該当する関節角を計算する。また、LEDController174は、LED19の点滅動作を行なうためのオブジェクトであり、RM116経由でSBL102からコマンドを受けたことに応答してLED19の点滅駆動を行なう。
【0067】
(2−1)状況依存行動制御
次に、状況依存行動階層について更に詳細に説明する。図6には、状況依存行動階層(SBL)(但し、反射行動部を含む)による状況依存行動制御の形態を模式的に示している。認識系の視覚認識機能部81、聴覚認識機能部82、及び接触認識機能部83の機能モジュールによる外部環境70の認識結果(センサ情報)182は、外部刺激183として状況依存行動階層(反射行動部103を含む)102aに与えられる。また、認識系による外部環境70の認識結果に応じた内部状態の変化184も状況依存行動階層102aに与えられる。そして、状況依存行動階層102aでは、外部刺激183や内部状態の変化184に応じて状況を判断して、行動選択を実現することができる。
【0068】
図7には、図6に示した反射行動部103を含む状況依存行動階層(SBL)102aによる行動制御の基本的な動作例を示している。同図に示すように、状況依存行動階層102aでは、外部刺激183や内部状態の変化184によって各行動記述モジュール(スキーマ)のアクティベーションレベルを算出して、アクティベーションレベルの度合いに応じてスキーマを選択して行動(動作)を実行する。アクティベーションレベルの算出には、例えばライブラリ185を利用することにより、すべてのスキーマについて統一的な計算処理を行なうことができる(以下、同様)。例えば、アクティベーションレベルが最も高いスキーマを選択したり、アクティベーションレベルが所定の閾値を越えた2以上のスキーマを選択して並列的に行動実行するようにしてもよい(但し、並列実行するときは各スキーマどうしでハードウェア・リソースの競合がないことを前提とする)。
【0069】
また、図8には、図6に示した状況依存行動階層102aにより反射行動を行なう場合の動作例を示している。この場合、同図に示すように、状況依存行動階層102aに含まれる反射行動部(ReflexiveSBL)103は、認識系の各オブジェクトによって認識された外部刺激183を直接入力としてアクティベーションレベルを算出して、アクティベーションレベルの度合いに応じてスキーマを選択して行動を実行する。この場合、内部状態の変化184は、アクティベーションレベルの計算には使用されない。
【0070】
また、図9には、図6に示した状況依存行動階層102により感情表現を行なう場合の動作例を示している。内部状態管理部91では、本能や感情等の情動を数式モデルとして管理しており、情動パラメータの状態値が所定値に達したことに応答して、状況依存行動階層102に内部状態の変化184を通知(Notify)する。状況依存行動階層102は、内部状態の変化184を入力としてアクティベーションレベルを算出して、アクティベーションレベルの度合いに応じてスキーマを選択して行動を実行する。この場合、認識系の各オブジェクトによって認識された外部刺激183は、内部状態管理部(ISM)91における内部状態の管理・更新に利用されるが、スキーマのアクティベーションレベルの算出には使用されない。
【0071】
(2−2)スキーマ
図10には、状況依存行動階層102が複数のスキーマ132によって構成されている様子を模式的に示している。状況依存行動階層102は、各行動記述モジュール、即ちスキーマ毎にステートマシンを用意しており、それ以前の行動(動作)や状況に依存して、センサ入力された外部情報の認識結果を分類し、動作を機体上で発現する。スキーマは、外部刺激や内部状態に応じた状況判断を行なうMonitor機能と、行動実行に伴う状態遷移(ステートマシン)を実現するAction機能とを備えたスキーマ(Schema)132として記述される。
【0072】
状況依存行動階層102b(より厳密には、状況依存行動階層102のうち、通常の状況依存行動を制御する階層)は、複数のスキーマ132が階層的に連結されたツリー構造として構成され、外部刺激や内部状態の変化に応じてより最適なスキーマ132を統合的に判断して行動制御を行なうようになっている。ツリー300は、例えば動物行動学的(Ethological)な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリー等、複数のサブツリー(又は枝)を含んでいる。
【0073】
図11には、状況依存行動階層102におけるスキーマのツリー構造を模式的に示している。同図に示すように、状況依存行動階層102は、短期記憶部92から外部刺激の通知(Notify)を受けるルート・スキーマ2011、2021、2031を先頭に、抽象的な行動カテゴリから具体的な行動カテゴリに向かうように、各階層毎にスキーマが配設されている。例えば、ルート・スキーマの直近下位の階層では、「探索する(Investigate)」、「食べる(Ingestive)」、「遊ぶ(Play)」というスキーマ2012、2022、2032が配設される。そして、スキーマ2012「探索する(Investigate)」の下位には、「InvestigativeLocomotion」等というより具体的な探索行動を記述した複数のスキーマ2013が配設されている。同様に、スキーマ2022「食べる(Ingestive)」の下位には「Eat」や「Drink」等のより具体的な飲食行動を記述した複数のスキーマ2023が配設され、スキーマ2032「遊ぶ(Play)」の下位には「PlayBowing」、「PlayGreeting」等のより具体的な遊ぶ行動を記述した複数のスキーマ2033が配設されている。
【0074】
図示の通り、各スキーマは外部刺激183と内部状態(の変化)184を入力している。また、各スキーマは、少なくともMonitor関数とActionと関数を備えている。
【0075】
ここで、Monitor関数とは、外部刺激183と内部状態184に応じて当該スキーマのアクティベーションレベル(Activation Level:AL値)を算出する関数である。図11に示すようなツリー構造を構成する場合、上位(親)のスキーマは外部刺激183と内部状態184を引数として下位(子供)のスキーマのMonitor関数をコールすることができ、子供のスキーマはアクティベーションレベルを返り値とする。また、スキーマは自分のアクティベーションレベルを算出するために、更に子供のスキーマのMonitor関数をコールすることができる。そして、ルートのスキーマには各サブツリーからのアクティベーションレベルが返されるので、外部刺激と内部状態の変化に応じた最適なスキーマすなわち行動を統合的に判断することができる。
【0076】
例えばアクティベーションレベルが最も高いスキーマを選択したり、アクティベーションレベルが所定の閾値を越えた2以上のスキーマを選択して並列的に行動実行するようにしてもよい(但し、並列実行するときは各スキーマどうしでハードウェア・リソースの競合がないことを前提とする)。
【0077】
また、Action関数は、スキーマ自身が持つ行動を記述したステートマシンを備えている。図11に示すようなツリー構造を構成する場合、親スキーマは、Action関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。本実施の形態では、ActionのステートマシンはReadyにならないと初期化されない。言い換えれば、中断しても状態はリセットされず、スキーマが実行中の作業データを保存することから、中断再実行が可能である。
【0078】
図12には、状況依存行動階層102において通常の状況依存行動を制御するためのメカニズムを模式的に示している。
【0079】
同図に示すように、状況依存行動階層(SBL)102には、短期記憶部(STM)92から外部刺激183が入力(Notify)されるとともに、内部状態管理部91から内部状態の変化184が入力される。状況依存行動階層102は、例えば動物行動学的(Ethological)な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリー等、複数のサブツリーで構成されており、ルート・スキーマは、外部刺激183の通知(Notify)に応答して、各サブツリーのMonitor関数をコールし、その返り値としてのアクティベーションレベル(AL)値を参照して、統合的な行動選択を行ない、選択された行動を実現するサブツリーに対してAction関数をコールする。また、状況依存行動階層102において決定された状況依存行動は、リソース・マネージャRM116により反射行動部103による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作(Motion Controller)に適用される。
【0080】
また、状況依存行動層102のうち、反射的行動部103は、上述した認識系の各オブジェクトによって認識された外部刺激183に応じて、例えば、障害物の検出により咄嗟に避ける等、反射的・直接的な機体動作を実行する。このため、図11に示す通常の状況依存行動を制御する場合とは相違し、図10に示すように、認識系の各オブジェクトからの信号を直接入力する複数のスキーマ142が階層化されずに並列的に配置されている。
【0081】
図13には、反射行動部103におけるスキーマの構成を模式的に示している。同図に示すように、反射行動部103には、聴覚系の認識結果に応答して動作するスキーマとしてAvoid Big Sound204、Face to Big Sound205及びNodding Sound209、視覚系の認識結果に応答して動作するスキーマとしてFace to Moving Object206及びAvoid Moving Object207、並びに、触覚系の認識結果に応答して動作するスキーマとして手を引っ込める208が、それぞれ対等な立場で(並列的に)配設されている。
【0082】
図示の通り、反射的行動を行なう各スキーマは外部刺激183を入力に持つ。また、各スキーマは、少なくともMonitor関数とAction関数を備えている。Monitor関数は、外部刺激183に応じて当該スキーマのアクティベーションレベルを算出して、これに応じて該当する反射的行動を発現すべきかどうかが判断される。また、Action関数は、スキーマ自身が持つ反射的行動を記述したステートマシン(後述)を備えており、コールされることにより、該当する反射的行動を発現するとともにActionの状態を遷移させていく。
【0083】
図14には、反射行動部103において反射的行動を制御するためのメカニズムを模式的に示している。図13にも示したように、反射行動部103内には、反応行動を記述したスキーマや、即時的な応答行動を記述したスキーマが並列的に存在している。認識系の機能モジュール80を構成する各オブジェクトから認識結果が入力されると、対応する反射行動スキーマがAonitor関数によりアクティベーションレベルを算出し、その値に応じてActionを軌道すべきかどうかが判断される。そして、反射行動部103において起動が決定された反射的行動は、リソース・マネージャRM116により状況依存行動階層102による状況依存行動とのハードウェア・リソースの競合の調停を経て、機体動作(Motion Controller173)に適用される。
【0084】
状況依存行動階層102及び反射行動部103を構成するスキーマは、例えばC++言語ベースで記述される「クラス・オブジェクト」として記述することができる。図15には、状況依存行動階層102において使用されるスキーマのクラス定義を模式的に示している。同図に示されている各ブロックはそれぞれ1つのクラス・オブジェクトに相当する。
【0085】
図示の通り、状況依存行動階層(SBL)102は、1以上のスキーマと、SBL102の入出力イベントに対してIDを割り振るEvent Data Handler(EDH)211と、SBL102内のスキーマを管理するSchema Handler(SH)212と、外部オブジェクト(STMやLTM、リソース・マネージャ、認識系の各オブジェクト等)からデータを受信する1以上のReceive Data Handler(RDH)213と、外部オブジェクトにデータを送信する1以上のSend Data Handler(SDH)214とを備えている。
【0086】
Schema Handler212は、状況依存行動階層(SBL)102や反射行動部103を構成する各スキーマやツリー構造等の情報(SBLのコンフィギュレーション情報)をファイルとして保管している。例えばシステムの起動時等に、Schema Handler212は、このコンフィギュレーション情報ファイルを読み込んで、図11に示したような状況依存行動階層102のスキーマ構成を構築(再現)して、メモリ空間上に各スキーマのエンティティをマッピングする。
【0087】
各スキーマは、スキーマのベースとして位置付けられるOpenR_Guest215を備えている。OpenR_Guest215は、スキーマが外部にデータを送信するためのDsubject216、並びに、スキーマが外部からデータを受信するためのDObject217というクラス・オブジェクトをそれぞれ1以上備えている。例えば、スキーマが、SBL102の外部オブジェクト(STMやLTM、認識系の各オブジェクト等)にデータを送るときには、Dsubject216はSend Data Handler214に送信データを書き込む。また、DObject217は、SBL102の外部オブジェクトから受信したデータをReceive Data Handler213から読み取ることができる。
【0088】
Schema Manager218及びSchema Base219は、ともにOpenR_Guest215を継承したクラス・オブジェクトである。クラス継承は、元のクラスの定義を受け継ぐことであり、この場合、OpenR_Guest215で定義されているDsubject216やDObject217等のクラス・オブジェクトをSchema Manager Base218やSchema Base219も備えていることを意味する(以下、同様)。例えば図11に示すように複数のスキーマがツリー構造になっている場合、Schema Manager Base218は、子供のスキーマのリストを管理するクラス・オブジェクトSchema List220を持ち(子供のスキーマへのポインタを持ち)、子供スキーマの関数をコールすることができる。また、Schema Base219は、親スキーマへのポインタを持ち、親スキーマからコールされた関数の返り値を戻すことができる。
【0089】
Schema Base219は、State Machine221及びPronome222という2つのクラス・オブジェクトを持つ。State Machine221は当該スキーマの行動(Action関数)についてのステートマシンを管理している。親スキーマは子供スキーマのAction関数のステートマシンを切り替える(状態遷移させる)ことができる。また、Pronome222には、当該スキーマが行動(Action関数)を実行又は適用するターゲットを代入する。後述するように、スキーマはPronome222に代入されたターゲットによって占有され、行動(動作)が終了(完結、異常終了等)するまでスキーマは解放されない。新規のターゲットのために同じ行動を実行するためには同じクラス定義のスキーマをメモリ空間上に生成する。この結果、同じスキーマをターゲット毎に独立して実行することができ(個々のスキーマの作業データが干渉し合うことはなく)、行動のReentrance性が確保される(後述)。
【0090】
Parent Schema Base223は、Schema Manager218及びSchema Base219を多重継承するクラス・オブジェクトであり、スキーマのツリー構造において、当該スキーマ自身についての親スキーマ及び子供スキーマすなわち親子関係を管理する。
【0091】
Intermediate Parent Schema Base224は、Parent Schema Base223を継承するクラス・オブジェクトであり、各クラスのためのインターフェース変換を実現する。また、Intermediate Parent Schema Base224は、Schema Status Info225を持つ。このSchema Status Info225は、当該スキーマ自身のステートマシンを管理するクラス・オブジェクトである。親スキーマは、子供スキーマのAction関数をコールすることによってそのステートマシンの状態を切り換えることができる。また、子供スキーマのMonitor関数をコールしてそのステートマシンの常態に応じたアクティベーションレベルを問うことができる。但し、スキーマのステートマシンは、前述したAction関数のステートマシンとは異なるということを留意されたい。
【0092】
And Parent Schema226、Num Or Parent Schema227、Or Parent Schema228は、Intermediate Parent Schema Base224を継承するクラス・オブジェクトである。And Parent Schema226は、同時実行する複数の子供スキーマへのポインタを持つ。Or Parent Schema228は、いずれか択一的に実行する複数の子供スキーマへのポインタを持つ。また、Num Or Parent Schema227は、所定数のみを同時実行する複数の子供スキーマへのポインタを持つ。
【0093】
Parent Schema229は、これらAnd Parent Schema226、Num Or Parent Schema227、Or Parent Schema228を多重継承するクラス・オブジェクトである。
【0094】
図16には、状況依存行動階層(SBL)102内のクラスの機能的構成を模式的に示している。状況依存行動階層(SBL)102は、STMやLTM、リソース・マネージャ、認識系の各オブジェクト等外部オブジェクトからデータを受信する1以上のReceive Data Handler(RDH)213と、外部オブジェクトにデータを送信する1以上のSend Data Handler(SDH)214とを備えている。
【0095】
Event Data Handler(EDH)211は、SBL102の入出力イベントに対してIDを割り振るためのクラス・オブジェクトであり、RDH213やSDH214から入出力イベントの通知を受ける。
【0096】
Schema Handler212は、スキーマ132を管理するためのクラス・オブジェクトであり、SBL102を構成するスキーマのコンフィギュレーション情報をファイルとして保管している。例えばシステムの起動時等に、Schema Handler212は、このコンフィギュレーション情報ファイルを読み込んで、SBL102内のスキーマ構成を構築する。
【0097】
各スキーマは、図15に示したクラス定義に従って生成され、メモリ空間上にエンティティがマッピングされる。各スキーマは、OpenR_Guest215をベースのクラス・オブジェクトとし、外部にデータ・アクセスするためのDSubject216やDObject217等のクラス・オブジェクトを備えている。
【0098】
スキーマ132が主に持つ関数とステートマシンを以下に示しておく。以下の関数は、Schema Base219で記述されている。
ActivationMonitor():スキーマがReady時にActiveになるための評価関数
Actions():Active時の実行用ステートマシン
Goal():Active時にスキーマがGoalに達したかを評価する関数
Fail():Active時にスキーマがfail状態かを判定する関数
SleepActions():Sleep前に実行されるステートマシン
SleepMonitor():Sleep時にResumeするための評価関数
ResumeActions():Resume前にResumeするためのステートマシン
DestroyMonitor():Sleep時にスキーマがfail状態か判定する評価関数
MakePronome():ツリー全体のターゲットを決定する関数
【0099】
(2−3)状況依存行動階層の機能
状況依存行動階層(SBL)102は、短期記憶部92及び長期記憶部93の記憶内容や、内部状態管理部91によって管理される内部状態を基に、ロボット装置1が現在置かれている状況に即応した動作を制御する。
【0100】
前項で述べたように、本実施の形態における状況依存行動階層102は、スキーマのツリー構造(図11を参照のこと)で構成されている。各スキーマは、自分の子供と親の情報を知っている状態で独立性を保っている。このようなスキーマ構成により、状況依存行動階層102は、Concurrentな評価、Concurrentな実行、Preemption、Reentrantという主な特徴を持っている。以下、これらの特徴について詳解する。
【0101】
(2−3−1)Concurrentな評価:
行動記述モジュールとしてのスキーマは外部刺激や内部状態の変化に応じた状況判断を行なうMonitor機能を備えていることは既に述べた。Monitor機能は、スキーマがクラス・オブジェクトSchema BaseでMonitor関数を備えていることにより実装されている。Monitor関数とは、外部刺激と内部状態に応じて当該スキーマのアクティベーションレベルを算出する関数である。
【0102】
図11に示すようなツリー構造を構成する場合、上位(親)のスキーマは外部刺激183と内部状態の変化184を引数として下位(子供)のスキーマのMonitor関数をコールすることができ、子供のスキーマはアクティベーションレベルを返り値とする。また、スキーマは自分のアクティベーションレベルを算出するために、更に子供のスキーマのMonitor関数をコールすることができる。そして、ルートのスキーマ2011〜2031には各サブツリーからのアクティベーションレベルが返されるので、外部刺激183と内部状態の変化184に応じた最適なスキーマすなわち動作を統合的に判断することができる。
【0103】
このようにツリー構造になっていることから、外部刺激183と内部状態の変化184による各スキーマの評価は、まずツリー構造の下から上に向かってConcurrentに行なわれる。即ち、スキーマに子供スキーマがある場合には、選択した子供のMonitor関数をコールしてから、自身のMonitor関数を実行する。次いで、ツリー構造の上から下に向かって評価結果としての実行許可を渡していく。評価と実行は、その動作が用いるリソースの競合を解きながら行なわれる。
【0104】
本実施の形態における状況依存行動階層102は、スキーマのツリー構造を利用して、並列的に行動の評価を行なうことができるので、外部刺激183や内部状態の変化184等の状況に対しての適応性がある。また、評価時には、ツリー全体に関しての評価を行ない、このとき算出されるアクティベーションレベル(AL)値によりツリーが変更されるので、スキーマすなわち実行する動作を動的にプライオリタイズすることができる。
【0105】
(2−3−2)Concurrentな実行:
ルートのスキーマには各サブツリーからのアクティベーションレベルが返されるので、外部刺激183と内部状態の変化184に応じた最適なスキーマすなわち動作を統合的に判断することができる。例えばアクティベーションレベルが最も高いスキーマを選択したり、アクティベーションレベルが所定の閾値を越えた2以上のスキーマを選択して並列的に行動実行するようにしてもよい(但し、並列実行するときは各スキーマどうしでハードウェア・リソースの競合がないことを前提とする)。
【0106】
実行許可をもらったスキーマは実行される。すなわち、実際にそのスキーマは更に詳細の外部刺激183や内部状態の変化184を観測して、コマンドを実行する。実行に関しては、ツリー構造の上から下に向かって順次すなわちConcurrentに行なわれる。即ち、スキーマに子供スキーマがある場合には、子供のActions関数を実行する。
【0107】
Action関数は、スキーマ自身が持つ行動(動作)を記述したステートマシンを備えている。図11に示すようなツリー構造を構成する場合、親スキーマは、Action関数をコールして、子供スキーマの実行を開始したり中断させたりすることができる。
【0108】
本実施の形態における状況依存行動階層(SBL)102は、スキーマのツリー構造を利用して、リソースが競合しない場合には、余ったリソースを使う他のスキーマを同時に実行することができる。但し、Goalまでに使用するリソースに対して制限を加えないと、ちぐはぐな行動出現が起きる可能性がある。状況依存行動階層102において決定された状況依存行動は、リソース・マネージャにより反射行動部(ReflexiveSBL)103による反射的行動とのハードウェア・リソースの競合の調停を経て、機体動作(Motion Controller)に適用される。
【0109】
(2−3−3)Preemption:
1度実行に移されたスキーマであっても、それよりも重要な(優先度の高い)行動があれば、スキーマを中断してそちらに実行権を渡さなければならない。また、より重要な行動が終了(完結又は実行中止等)したら、元のスキーマを再開して実行を続けることも必要である。
【0110】
このような優先度に応じたタスクの実行は、コンピュータの世界におけるOS(オペレーティング・システム)のPreemptionと呼ばれる機能に類似している。OSでは、スケジュールを考慮するタイミングで優先度のより高いタスクを順に実行していくという方針である。
【0111】
これに対し、本実施の形態におけるロボット装置1の制御システム10は、複数のオブジェクトにまたがるため、オブジェクト間での調停が必要になる。例えば反射行動を制御するオブジェクトである反射行動部103は、上位の状況依存行動を制御するオブジェクトである状況依存行動階層102の行動評価を気にせずに物を避けたり、バランスをとったりする必要がある。これは、実際に実行権を奪い取り実行を行なう訳であるが、上位の行動記述モジュール(SBL)に、実行権利が奪い取られたことを通知して、上位はその処理を行なうことによってPreemptiveな能力を保持する。
【0112】
また、状況依存行動層102内において、外部刺激183と内部状態の変化184に基づくアクティベーションレベルの評価の結果、あるスキーマに実行許可がなされたとする。更に、その後の外部刺激183と内部状態の変化184に基づくアクティベーションレベルの評価により、別のスキーマの重要度の方がより高くなったとする。このような場合、実行中のスキーマのActions関数を利用してSleep状態にして中断することにより、Preemptiveな行動の切り替えを行なうことができる。
【0113】
実行中のスキーマのActions()の状態を保存して、異なるスキーマのActions()を実行する。また、異なるスキーマのActions()が終了した後、中断されたスキーマのActions()を再度実行することができる。
【0114】
また、実行中のスキーマのActions()を中断して、異なるスキーマに実行権が移動する前に、SleepActions()を実行する。例えば、ロボット装置1は、対話中にサッカーボールを見つけると、「ちょっと待ってね」と言って、サッカーすることができる。
【0115】
(2−3−4)Reentrant:
状況依存行動階層102を構成する各スキーマは、一種のサブルーチンである。スキーマは、複数の親からコールされた場合には、その内部状態を記憶するために、それぞれの親に対応した記憶空間を持つ必要がある。
【0116】
これは、コンピュータの世界では、OSが持つReentrant性に類似しており、本明細書ではスキーマのReentrant性と呼ぶ。図16に示したように、スキーマ132はクラス・オブジェクトで構成されており、クラス・オブジェクトのエンティティすなわちインスタンスをターゲット(Pronome)毎に生成することによりReentrant性が実現される。
【0117】
スキーマのReentrant性について、図17を参照しながらより具体的に説明する。Schema Handler212は、スキーマを管理するためのクラス・オブジェクトであり、SBL102を構成するスキーマのコンフィギュレーション情報をファイルとして保管している。システムの起動時に、Schema Handler212は、このコンフィギュレーション情報ファイルを読み込んで、SBL102内のスキーマ構成を構築する。図17に示す例では、Eat221やDialog222等の行動(動作)を規定するスキーマのエンティティがメモリ空間上にマッピングされているとする。
【0118】
ここで、外部刺激183と内部状態の変化184に基づくアクティベーションレベルの評価により、スキーマDialog222に対してAというターゲット(Pronome)が設定されて、Dialog222が人物Aとの対話を実行するようになったとする。
【0119】
そこに、人物Bがロボット装置1と人物Aとの対話に割り込み、その後、外部刺激183と内部状態の変化184に基づくアクティベーションレベルの評価を行なった結果、Bとの対話を行なうスキーマ223の方がより優先度が高くなったとする。
【0120】
このような場合、Schema Handler212は、Bとの対話を行なうためのクラス継承した別のDialogエンティティ(インスタンス)をメモリ空間上にマッピングする。別のDialogエンティティを使用して、先のDialogエンティティとは独立して、Bとの対話を行なうことから、Aとの対話内容は破壊されずに済む。従って、DialogAはデータの一貫性を保持することができ、Bとの対話が終了すると、Aとの対話を中断した時点から再開することができる。
【0121】
Readyリスト内のスキーマは、その対象物(外部刺激183)に応じて評価すなわちアクティベーションレベルの計算が行なわれ、実行権が引き渡される。その後、Readyリスト内に移動したスキーマのインスタンスを生成して、これ以外の対象物に対して評価を行なう。これにより、同一のスキーマをactive又はsleep状態にすることができる。
【0122】
(3)ロボット装置への本発明の適用
次に、上述のようなロボット装置に本発明を適用した例について詳細に説明する。本実施の形態におけるロボット装置は、ロボット装置自身の内部の情報を得る手段をもち、その内部情報と、ロボットの外部の情報から発現する動作を選択するロボット装置において、上述したように、内部状態をある範囲に保つための行動を行うものであり、動作を実行したときに、その動作によって満たすとされる内部状態が満たされない場合、即ち、所定時間経過しても、所定の目的を達成できない(終了条件を満たさない)場合は、その経過時間に応じて変化するフラストレーション値を算出し、このフラストレーション値に基づき発現する動作を変化させるものである。
【0123】
上述したように、本実施の形態におけるロボット装置は自身の内外の情報を考慮したうえで動作選択を行うアルゴリズムとしてSBLを有する。SBLは、スキーマツリーを有し、各スキーマは、外部刺激と内部状態に応じ、上述したように、各スキーマのやりたさ度合い(実行優先度)を示すアクティベーションレベルを算出する。
【0124】
ここで、各スキーマは、各種センサ等の外部入力装置(状態認識部)から入力された外部情報(外部刺激)と、ロボット装置の内部情報(自らの内部状態パラメータ及び感情パラメータの算出を行う感情・本能モデルから得られた内部状態パラメータ)、即ちロボットの一次情動(本能)の満足度、及びそれによって変化する二次情動(感情)の値との双方に応じて、アクティベーションレベルを算出する。
【0125】
アクティベーションレベルは、外部からの刺激、対象物があればその物理的な外部情報、現在の内部状態、及びロボット装置自身が有する記憶(過去の履歴)等を利用して算出されるもので、例えば、現在の状況においてロボット装置がその動作を発現することが可能か否か(やれることができるか否か)を示すReleaseValueと、ロボット装置自身がやりたいか否かを示すMotivationValueとに基づき算出することができる。
【0126】
ReleaseValueは、外部からの刺激、対象物があればその物理的な外部情報(対象物の有無、対象物との間の距離、対象物の色及び形状等)及び各記憶部からの記憶に基づく値が例えば加算される等して算出されるものであり、例えば、ボールを蹴る動作を発現するスキーマは、カメラ等によりボールを認識できない期間は自身の動作(ボールを蹴る動作)を発現できないと判定し、その値を小さくすることができる。
【0127】
また、MotivationValueは、ロボットの内部状態、即ち、上述した内部状態管理部における本能・感情モデルにおいて算出された本能(欲求)値及び感情(情動)値に基づき算出されるもので、例えば、ボールを蹴るスキーマは、バッテリの充電が充分であったり、好きな色のボールを発見した場合にボールを蹴りたいという欲求が大きくなり、その値が大きくなる。本実施の形態のロボット装置の感情モデルは、「喜び(Joy)」、「悲しみ(Sadness)」、「怒り(Anger)」、「驚き(Surprise)」、「嫌悪(Disgust)」及び「恐れ(Fear)」の合計6つの情動について、各情動毎にその情動の強さを表すパラメータを保持し、本能モデルは、「運動欲(exercise)」、「愛情欲(affection)」、「食欲(appetite)」及び「好奇心(curiosity)」の互いに独立した4つの欲求について、これら欲求毎にその欲求の強さを表すパラメータを保持しており、これらの各値に基づきMotivationValueを算出することができる。
【0128】
上述したように、ロボット装置は、このようにして算出されたアクティベーションレベルの大小で実行するスキーマ(行動)を選択するように構成することができる。選択されたスキーマは、自身に記述された行動(動作)を発現する。各スキーマは行動を発現すると、自身の目的を果たすまで、即ち、所定の終了条件又は次の動作へ移行するための移行条件(以下、単に終了又は移行条件という。)を満たすまで行動を継続して発現する。ここで、ロボット装置は、各スキーマが自身の動作が終了又は移行条件を満たすことで、内部状態のある種の欲求、例えば、上述した「喜び」等の情動値や、「運動欲」等の欲求値を変動させるように構成される。
【0129】
具体的には、例えば、機体動作として「ボールを探す」という動作が記述されている場合、カメラの画像等によって「ボールを発見する」という終了条件を有し、この終了条件を満たすまで、ボールを探し続ける。又は、所定の条件が次の動作に移行するための移行条件となっている場合、即ち「ボールを発見する」ことが、次の「ボールを蹴る」という動作に移行するための移行条件となっている場合があり、この場合も、この移行条件を満たすまで、次の動作に移行ぜずに動作を継続し続ける。そして終了又は移行条件を満たすことで、「喜び」等の感情値を上昇させたり、「運動欲」等の欲求値を満たしたりすることができる。
【0130】
ここで、発現した動作を途中で停止(中断)するためには、外部からの刺激等、何らかの条件により、発火中のスキーマより、発火していない他のスキーマのアクティベーションレベルを高くする必要があり、このような場合には、発火中のスキーマを中断して、アクティベーションレベルが高くなった方のスキーマを起動することができる。具体的には、ロボット装置がサッカーをするスキーマを起動させてサッカーをしている最中に、ユーザに話しかけられて、サッカーをするスキーマのアクティベーションレベルより、ユーザとの対話を行うスキーマのアクティベーションレベルが高くなる等である。
【0131】
このように、動作が終了又は途中で停止するためには、所定の終了又は移行条件を満たすか、又は外部からの刺激が必要である。しかしながら、この方法では「やりたい」と主張することはできるが、途中でその動作を止める等「やめたい」ことを主張することができない。
【0132】
ところで、外部状況の変化や自身の行動の制限等の様々な要因から、選択された動作の終了又は移行条件を満たすのが困難な場合が存在する。そこで、このような場合に、終了又は移行条件を満たしていなくてもその動作を途中で停止し、次の動作を発現するというストラテジーを取るために、本発明においては、フラストレーション値という値を導入する。このフラストレーション値により、動作中であっても外部状況の変化や内部状態の変化に応じて、発現中の動作を停止させる等、動作を変化させることができる。
【0133】
フラストレーションは、心理学で「欲求満足行動を何らかの事情で阻害された時の状態、欲求不満(フラストレーション)状態」と位置付けられており、その状態になった場合、攻撃、代償、迂回、逃避反応などの反応を示すとされている。本実施の形態においては、これらを参考に、ロボット装置におけるフラストレーション状態とその際の振る舞い(フラストレーション反応)を定めるものとする。
【0134】
次に、本実施の形態におけるフラストレーション値を有するスキーマの動作について詳細に説明する。先ず、ロボット装置の複数のスキーマの中で、アクティベーションレベルが例えば最も大きいスキーマAが選択されて実行される。このスキーマAに記述された動作が最後まで実行されると欲求αを満たすと予測されているが、なかなか欲求αを満たす方向に変化させることができない場合、経過時間に応じてそのスキーマAを実行することに対するフラストレーション値Fを増加させる。
【0135】
図18(a)及び図18(b)は、本実施の形態における行動制御を説明する図である。図18(a)に示すように、SBLは、動作が実行されると満たす欲求=αのスキーマA、Bを有するスキーマツリー310と、動作が実行されると満たす欲求=βのスキーマB、Cを有するスキーマツリー320とを有している。各スキーマA、B、C、Dには、自身の行動を終了するまでの許容時間t1が例えばt1=5〜30秒等として設定され、フラストレーション値Fの閾値が例えばFth=100〜200等として設定され、更に各スキーマが上記Fthを超えた場合に、行動を停止する動作停止時間t2が例えばt2=30〜120秒等として設定されているものとする。これらのフラストレーション値Fの閾値、許容時間t1及び停止時間t2は、各スキーマ毎に可変設定されるものとする。
【0136】
スキーマAのアクティベーションレベルが外部刺激又は内部状態に応じて上昇して選択されると、スキーマAは行動を発現する。ここで、行動を発現してから許容時間t1=30sを経過しても行動が達成できない場合、即ち、スキーマAによって満たされるはずである欲求αが得られない場合、スキーマAのフラストレーション値Fを増加させる。フラストレーション値は、例えばシグモイド関数等、経過時間に応じて増加する関数等を使用して、各スキーマ自身又はその他の制御手段において算出することができる。このフラストレーション値を算出するための所定の増加関数においても、各スキーマ毎に個別に異なる関数を設定したり、該関数に使用する各種パラメータをスキーマ毎に個別に設定したりすることができる。
【0137】
ここで、例えば、スキーマAのフラストレーション値Fは、選択される前までと選択されてから許容期間t1(=30s)の間とは、F=0とし、許容期間t1以降は、その経過時間に応じて増大させるように設定される。なお、選択された時刻を基準にその後の経過時間に応じて増大させるように設定してもよい。
【0138】
そして、スキーマAは、スキーマAのフラストレーション値Fが閾値Fthを超えた時刻から所定の動作停止時間t2(=120s)の間は、スキーマAに記述された動作を発現しないものとする。
【0139】
即ち、動作停止時間t2の間は、スキーマAのアクティベーションレベルに拘わらず、スキーマAの動作を発現することを停止し、スキーマAの選択を禁止するものとする。以下、このように、スキーマAの動作を制限することをスキーマAにペナルティを与えるともいう。
【0140】
SBLでは、スキーマツリー310,320のように、通常は、各スキーマが満たす、例えば「運動欲(exercise)」、「愛情欲(affection)」、「食欲(appetite)」又は「好奇心(curiosity)」等の欲求の種類毎に異なるスキーマツリーを有しており、スキーマAの選択が禁止された場合、この間は、スキーマAと同じ欲求αを満たすスキーマのうち、最もアクティベーションレベルが高いスキーマBが選択される。
【0141】
この際、スキーマAと同じ欲求αを有するスキーマが選択されるよう、欲求αを有するスキーマツリー310を構成する各スキーマ(図18(a)においては、スキーマBのみ図示)のアクティベーションレベルALを、スキーマAの期間t2の間のみ、例えば50等、上昇させる。このようにすることで、スキーマAと同じ欲求αを有するスキーマを選択されやすくすることができる。こうして、図18(b)においては、スキーマAと同じ欲求αを有するスキーマBが選択される。
【0142】
また、スキーマAと同じ欲求αのスキーマが存在しない場合、又は、スキーマAと同じ欲求αを有するスキーマのアクティベーションレベルを上昇させても、他の欲求βを有するスキーマのアクティベーションレベルの方が高い場合等においては、スキーマAとは異なる欲求を有するスキーマを選択するようにしてもよい。
【0143】
このように、スキーマは、その機体動作を発現した後、所定の時間t1を経過しても、所定の終了又は移行条件を満たさない場合、欲求を満たす方向に変化させることができないものとし、フラストレーション値を増加させることにより、このフラストレーション値に応じて発現する動作を変化させることができる。
【0144】
そして、フラストレーション値が所定の閾値を超えた場合には、スキーマAに一定期間、動作の発現を禁止してペナルティを与えるだけではなく、上述した攻撃、代償、迂回、逃避反応等のフラストレーション反応にあたる反応を表現するよう設定することができる。例えば、攻撃反応であれば対象物を攻撃する、代償反応であればスキーマA以外のスキーマで、スキーマAと同じ欲求Aを満たすと予測されるスキーマBを実行する等である。
【0145】
また、図18(a)に示すスキーマツリー310のように、スキーマツリー310に属するいずれかのスキーマが選択され、該スキーマのフラストレーション値Fが所定の閾値を超えた場合にのみ選択されて、フラストレーション反応を表現する動作が記述されスキーマEを設け、欲求αを有するスキーマのフラストレーション値Fが所定の閾値を超えた場合にこれを選択するようにしてもよい。このスキーマEは、例えば各スキーマツリー(各欲求)に対して1つずつ設けて、そのスキーマツリーにおけるスキーマが満たすとされる欲求が満たされなかった場合に選択されるようにしてもよいし、各スキーマ毎に個別に設けてもよい。
【0146】
更に、各スキーマに対して、本来の機体動作(第1の機体動作)と共に、このような場合にのみ発現するようフラストレーション反応を示す機体動作(第2の機体動作)を記述しておいてもよい。又は、スキーマAの下層に、スキーマAのフラストレーション反応を行う1以上のスキーマを用意し、フラストレーション値Fが閾値Fthを超えると、それらのフラストレーション反応用のスキーマをコールするようにしてもよい。
【0147】
更にまた、このフラストレーション値をロボット装置の内部状態に反映させることで、フラストレーション値に応じて様々な動作を発現させることができる。例えば、動作が終了した時点、即ち所定の終了又は移行条件を満たした時点でのフラストレーション値が0である場合、「満足」又は「うれしい」等の情動値を上昇させ、これを動作に反映させるようにしてもよい。
【0148】
(3−1)実施の形態の第1の具体例:ボールを蹴るスキーマを実行しているのにボールが蹴れない場合
ボールを蹴るスキーマS1が選択され、そのスキーマS1の動作終了又は移行条件がボールを蹴ることであったとする。しかし、スキーマS1の実行中に照明条件の変化等からボールが見えなくなってしまったり、ボールとの間の距離が測れなかったりした場合、ボールを蹴ることが困難になる。こうして、これだけ与えればボールを蹴れるであろうと予測されて設定された許容時間t1を超えた場合であってもボールが蹴れない場合、フラストレーション値Fを増加させる。そして、このフラストレーション値が上記閾値Fthを超えた場合、スキーマS1の動作、即ちボールを蹴る動作を停止させ、このスキーマS1を一定時間t2選択させないようにし、スキーマS1以外の他のスキーマを選択させたり、このような場合のために代償行動を表現する代償スキーマを用意しておき、これを起動させたり、例えば「怒る」、「悲しい」等の感情を表現するスキーマをコールして、このような感情を動作に反映させたりする。これにより、例えば「がんばったけどうまくできなかったから怒ってほかの事をする」ように見える。
【0149】
(3−2)実施の形態の第2の具体例:おしゃべりスキーマを実行しているのに返事をしてくれない場合
おしゃべりスキーマS2が選択され、そのスキーマS2の終了条件又は移行条件が「人が返事をする」ことであるとする。ロボット装置が一生懸命話し掛けても、ユーザが返事をしてくれない場合等には、この条件を満たすことができない。この場合においても、ロボット装置が返事を待つことができる許容時間t1を定めておき、その許容時間t1を超えた場合にフラストレーション値Fを増加させ、このフラストレーション値Fが閾値Fthを超えたときまでに返事をもらうことができなかった場合、スキーマS2を一定時間t2選択させないようにし、次の行動をスキーマS2以外のスキーマより選択させるようにする。これにより、この時間t2の間に、例えば、他のユーザから話かけられた場合においても、お話するスキーマS2は、起動が停止されているため、ロボット装置は、これを無視することで、例えば「怒っている」ように見える。また、フラストレーションを感情に反映させると共に、他のスキーマを選択したり、代償スキーマを起動したりすることで、例えば「がんばったけど返事してくれなかったから悲しくなって他のことをする」ように見える。
【0150】
本実施の形態においては、このようなフラストレーション値を算出し、更に、スキーマ毎に、異なるフラストレーション値の閾値や、許容時間t1及び動作停止時間t2等を設定することにより、例えばスキーマAのフラストレーション値が上昇した場合、スキーマAの動作を所定時間t2停止し、スキーマAと同じ欲求αを有する他のスキーマBを選択するようにすることができ、スキーマAが所定の終了又は移行条件を満たさない場合には、同じ動作をやり続けることを防止し、同じ欲求を満たす他のスキーマBを起動させる等してロボット装置が自分で行動を「止める」ことが可能となると共に、やめ方においても、多くのバリエーションを持たせることが可能となる。
【0151】
また、フラストレーション値Fの閾値Fthを超えた場合に行うフラストレーション反応を複数用意したり、このフラストレーション反応として表出する動作として、上述したように、他のスキーマの中から、アクティベーションレベルに基づいて選択したり、欲求の種類を考慮して選択したりすることで、より多くのフラストレーション反応を持たせることが可能となる。こうして、選択した行動ができなかったことによる感情変化の実現が可能となるため、ロボット装置がより知的に見える手助けとなる。
【0152】
更に、同様の環境・条件で同一の動作が繰り返し発現されることを防止することができので、ユーザのロボット装置に対する厭きを防止し、エンターテイメント性を更に向上することができる。
【0153】
【発明の効果】
以上詳細に説明したように本発明に係るロボット装置は、所定の終了条件又は次の動作に移行する移行条件を有する複数の動作から選択された動作を発現するロボット装置において、上記複数の動作から発現する動作を選択する選択手段と、上記選択手段に選択された後の経過時間に応じてフラストレーション値を算出するフラストレーション値算出手段と、上記フラストレーション値に応じて上記選択された動作を変化させる制御手段を有するので、選択された動作開始後の経過時間に応じて変動するフラストレーション値に応じて動作を変化させることができ、行動にバリエーションを持たせて更にエンターテイメント性を向上することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるロボット装置の外観を示す斜視図である。
【図2】本発明の実施の形態におけるロボット装置の機能構成を模式的に示すブロック図である。
【図3】本発明の実施の形態におけるロボット装置の制御ユニットの構成を更に詳細に示すブロック図である。
【図4】本発明の実施の形態におけるロボット装置の行動制御システムの機能構成を示す模式図である。
【図5】本発明の実施の形態における行動制御システムのオブジェクト構成を示す模式図である。
【図6】本発明の実施の形態における状況依存行動階層による状況依存行動制御の形態を示す模式図である。
【図7】状況依存行動階層による行動制御の基本的な動作例を示す模式図である。
【図8】状況依存行動階層により反射行動を行なう場合の動作例を示す模式図である。
【図9】状況依存行動階層により感情表現を行なう場合の動作例を示す模式図である。
【図10】状況依存行動階層が複数のスキーマによって構成されている様子を示す模式図である。
【図11】状況依存行動階層におけるスキーマのツリー構造を示す模式図である。
【図12】状況依存行動階層において通常の状況依存行動を制御するためのメカニズムを示す模式図である。
【図13】反射行動部におけるスキーマの構成を示す模式図である。
【図14】反射行動部により反射的行動を制御するためのメカニズムを示す模式図である。
【図15】状況依存行動階層において使用されるスキーマのクラス定義を示す模式図である。
【図16】状況依存行動階層内のクラスの機能的構成を示す模式図である。
【図17】スキーマのReentrant性を説明する図である。
【図18】(a)及(b)は、本発明の実施の形態における行動制御を説明する図である。
【符号の説明】
1 ロボット装置、10 行動制御システム、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 ドライバ、81 視覚認識機能部、82 聴覚認識機能部、83 接触認識機能部、91 内部状態管理部、92 短期記憶部(STM)、93 長期記憶部(LTM)、101 熟考行動階層、102 状況依存行動階層(SBL)、103 反射行動部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a robot device, a control method and a program thereof, and more particularly to a robot device having entertainment characteristics imitating a human or an animal, a control method and a program thereof.
[0002]
[Prior art]
A mechanical device that performs a motion similar to the motion of a human (living organism) using an electric or magnetic action is called a “robot device”. Robotic devices have begun to spread in Japan since the late 1960s, and most of them have been industrial robotic devices such as manipulators and transfer robotic devices for the purpose of automation and unmanned production work in factories. (Industrial Robot).
[0003]
Recently, practical robot devices have been developed to support life as a human partner, that is, to support human activities in various situations in a living environment and other daily lives. Unlike a practical robot device, such a practical robot device has the ability to individually learn a human having different personalities or a method of adapting to various environments in various aspects of a human living environment. I have. For example, a “pet-type” robot device that simulates the body mechanism and operation of a four-legged animal such as a dog or a cat, or a body mechanism and operation of a human or the like that walks upright on two legs as a model Robotic devices such as the "humanoid" or "humanoid" robotic devices (Humanoid Robot) are already being put to practical use.
[0004]
Since these robot devices can perform, for example, various operations with an emphasis on entertainment, as compared with industrial robot devices, they are sometimes referred to as entertainment robot devices. Some of such robot devices operate autonomously according to external information and internal conditions.
[0005]
By the way, in such a pet robot device, like a human or a real dog or cat, a function for performing an optimal next action and action according to the current situation, and a next action and action based on past experience are performed. If a function for changing the operation can be provided, the user can be provided with a further sense of intimacy and satisfaction, and the amusement of the pet robot device can be further improved. Therefore, a robot apparatus and a control method thereof for improving such amusement properties are described in Patent Document 1 below.
[0006]
The robot device described in Patent Literature 1 has a plurality of types of behavior models, and uses a behavior selection unit based on at least one of externally input information and its own behavior history and / or growth history. The configuration is such that the output of one behavior model is selected from the outputs of the respective behavior models, whereby the optimal next behavior according to the current situation can be continuously performed.
[0007]
[Patent Document 1]
JP 2001-157981 A
[0008]
[Problems to be solved by the invention]
By the way, in the conventional robot device described in Patent Document 1 and the like, an action output from a predetermined high-priority action model is selected, but the selected action is a predetermined action. The process is performed until the termination condition is satisfied. Alternatively, the same action is continued without shifting to the next action until a predetermined shift condition is satisfied. That is, the robot apparatus can select an action that the robot apparatus has determined to do, but in order to end the action, it is necessary to satisfy an end or transition condition of the selected action. Therefore, until the selected action ends or satisfies the transition condition, another action is not performed and the same action is continuously performed.
[0009]
However, if the behavior once selected and expressed is, for example, not as good as humans, if it has emotions such as discomfort and sadness, and if this can be reflected in the motion, it will not be good The behavior can be stopped on the way or communicated to the user, and more simulate the behavior of humans or animals such as dogs and cats, and give the user further intimacy and satisfaction. And the entertainment can be further improved.
[0010]
The present invention has been proposed in view of such a conventional situation. Even during the appearance of the behavior, the external environment and the internal state of the user can be considered, and this is reflected in the behavior and various actions are taken. It is an object of the present invention to provide a robot apparatus having a variety of functions and further improving entertainment properties, a control method thereof, and a program.
[0011]
[Means for Solving the Problems]
In order to achieve the above-described object, a robot device according to the present invention includes a robot device that expresses an operation selected from a plurality of operations having a predetermined end condition or a transition condition for shifting to a next operation, Selecting means for selecting an action that emerges from the action, frustration value calculating means for calculating a frustration value according to an elapsed time after being selected by the selecting means, and the frustration value selected according to the frustration value It is characterized by having control means for changing the operation.
[0012]
In the present invention, an operation having a predetermined end condition, that is, having a plurality of operations for achieving a predetermined object, calculating a frustration value that fluctuates according to an elapsed time after the start of the operation, and using this By doing so, it is possible to change the operation, for example, to stop the operation once selected in the middle, or to prohibit the selection of the operation for a predetermined period, and further, select a different action in such a case Can be created, or the emotion (internal state) can be changed according to the frustration value and reflected in the operation. For example, by prohibiting the selection of the operation for a predetermined period, It is possible to prevent the same operation from being repeatedly selected when the same situation and the same condition are reached again within the predetermined period.
[0013]
A method for controlling a robot apparatus according to the present invention is a method for controlling a robot apparatus that expresses an operation selected from a plurality of operations having a predetermined end condition or a transition condition for transition to a next operation, wherein A selecting step of selecting an operation to be performed, a frustration value calculating step of calculating a frustration value according to an elapsed time after the selection in the selecting step, and the selected operation according to the frustration value. It is characterized by having a control step of changing.
[0014]
A program according to the present invention causes a computer to execute the above-described control processing.
[0015]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings. In this embodiment, the present invention incorporates the idea of psychology in a robot device having means for obtaining the internal state of the robot device itself and selecting an action from the internal state and a situation outside the robot device. By using the value of frustration, the internal state during the action is reflected in the action, and for example, it is possible to end the selected action halfway, and the robot apparatus having various motion variations and the action This is applied to the control method.
[0016]
Here, first, a preferred configuration and a control system of such a robot device will be described, and then a robot device capable of calculating a frustration value in the present embodiment will be described in detail.
[0017]
(1) Robot device configuration
FIG. 1 is a perspective view illustrating an appearance of a robot device according to the present embodiment. As shown in FIG. 1, in the robot apparatus 1, a head unit 3 is connected to a predetermined position of a
[0018]
FIG. 2 is a block diagram schematically illustrating a functional configuration of the robot device 1 according to the present embodiment. As shown in FIG. 2, the robot device 1 includes a
[0019]
The input /
[0020]
For example, a plurality of
[0021]
The
[0022]
Although the robot device 1 is a bipedal walking, the robotic device 1 may be configured as a legged mobile robot device such as a quadrupedal walking, depending on how the drive units are combined.
[0023]
The
[0024]
The charging
[0025]
Further, the charge /
[0026]
The
[0027]
FIG. 3 is a block diagram showing the configuration of the
[0028]
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
[0029]
The ROM (Read Only Memory) 23 is a read-only memory that permanently stores programs and data. The program codes stored in the
[0030]
The control program of the robot apparatus 1 includes a “sensor input / recognition processing program” that processes sensor inputs from the camera 15 and the
[0031]
The
[0032]
The
[0033]
The
[0034]
As another example of the
[0035]
Further, the
[0036]
By such data communication between the robot device 1 and the host computer, complicated operation control of the robot device 1 can be calculated or remotely controlled using a remote computer resource.
[0037]
(2) Robot system control system
Next, a control system of the robot device will be described. FIG. 4 is a schematic diagram illustrating a functional configuration of the
[0038]
Here, the external stimulus is perceptual information obtained by the robot apparatus 1 recognizing a sensor input, and is, for example, color information, shape information, face information processed for an image input from the camera 15. More specifically, it is composed of components such as color, shape, face, 3D general object, hand gesture, movement, voice, contact, smell, taste and the like.
[0039]
The internal state refers to, for example, emotions such as instinct and emotions based on the body of the robot device. 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.
[0040]
The illustrated
[0041]
The
[0042]
The visual recognition function unit (Video) 81 performs image recognition such as face recognition or color recognition based on a captured image input via an image input device such as a CCD (Charge Coupled Device) camera. Perform processing and feature extraction. Further, the auditory recognition function unit (Audio) 82 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. Further, the contact recognition function unit (Tactile) 83 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”. .
[0043]
An internal status manager (ISM: Internal Status Manager) 91 manages several types of emotions, such as the instinct and emotions described above, by using mathematical models, and manages the above-described visual
[0044]
Such an emotion model and an instinct model each have a recognition result and an action (action) history as inputs, and manage an emotion value and an instinct value. The behavior model can refer to these emotion values and instinct values.
[0045]
In addition, in order to perform operation control in accordance with the recognition result of the external stimulus and the change in the internal state, the information is compared with a short-term memory (STM) 92 which stores a short-term memory which is lost over time. It has a long term memory (LTM: Long Term Memory) 93 for holding for a long period of time. The classification of short-term memory and long-term memory depends on neuropsychology.
[0046]
The short-
[0047]
The long-
[0048]
The operation control of the robot apparatus 1 is performed by a “reflex behavior” realized by a reflexive behavior behavior layer (Reflexive Situated Behaviors Layer) 103 and a “situation-dependent behavior layer (SBL) realized by a Situation Behavior Layer (SBL) 102”. Behavior "and" contemplation behavior "realized by the
[0049]
The
[0050]
The situation-
[0051]
The situation-
[0052]
Specifically, each schema calculates an activity level (activation level, hereinafter also referred to as AL) indicating the execution priority of the schema based on the change in the internal state and the external stimulus. At least one schema having a high activation level is selected, and the selected operation is expressed. That is, for example, a schema having the highest activation level can be selected, or two or more schemas having an activation level exceeding a predetermined threshold can be selected and executed in parallel (however, when executing in parallel). Assumes that there is no hardware resource conflict between each schema). This situation-dependent action has a slower reaction time than the reflex action.
[0053]
The
[0054]
The
[0055]
Next, the
[0056]
As shown in FIG. 5, the visual
[0057]
The
[0058]
The auditory
[0059]
The tactile
[0060]
The
[0061]
The
[0062]
The
[0063]
The
[0064]
A Reflexive SBL (Suited Behaviors Layer) 103 is an object that constitutes a reflexive behavior unit, and executes reflexive and direct body motion in response to an external stimulus recognized by each of the above-described recognition system objects. For example, a behavior such as following a human face, nodding, or avoiding immediately by detecting an obstacle is performed.
[0065]
The
[0066]
The
[0067]
(2-1) Situation-dependent behavior control
Next, the situation-dependent action hierarchy will be described in more detail. FIG. 6 schematically illustrates a form of situation-dependent behavior control using a situation-dependent behavior hierarchy (SBL) (including a reflex behavior unit). The recognition result (sensor information) 182 of the
[0068]
FIG. 7 shows a basic operation example of behavior control by the situation-dependent behavior hierarchy (SBL) 102a including the
[0069]
FIG. 8 shows an operation example when a reflex action is performed by the situation-
[0070]
FIG. 9 shows an operation example when emotion expression is performed by the situation-
[0071]
(2-2) Schema
FIG. 10 schematically illustrates a situation in which the situation-
[0072]
The context-dependent behavior hierarchy 102b (more strictly, of the context-
[0073]
FIG. 11 schematically shows a tree structure of a schema in the context-
[0074]
As shown, each schema inputs an
[0075]
Here, the Monitor function is a function that calculates an activation level (Activation Level: AL value) of the schema according to the
[0076]
For example, a schema having the highest activation level may be selected, or two or more schemas whose activation levels exceed a predetermined threshold may be selected and executed in parallel (however, when executing in parallel, (Assuming that there is no hardware resource conflict between each schema).
[0077]
The Action function has a state machine that describes the behavior of the schema itself. When the tree structure shown in FIG. 11 is configured, 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.
[0078]
FIG. 12 schematically shows a mechanism for controlling normal context-dependent behavior in the context-
[0079]
As shown in the figure, an
[0080]
In addition, in the context-
[0081]
FIG. 13 schematically illustrates the configuration of the schema in the
[0082]
As shown, each schema performing reflexive behavior has an
[0083]
FIG. 14 schematically shows a mechanism for controlling the reflex behavior in the
[0084]
The schema that configures the situation-
[0085]
As illustrated, the context-dependent behavior hierarchy (SBL) 102 includes one or more schemas, an Event Data Handler (EDH) 211 that assigns IDs to input / output events of the
[0086]
The
[0087]
Each schema has an
[0088]
[0089]
The
[0090]
The
[0091]
The Intermediate
[0092]
The And
[0093]
The
[0094]
FIG. 16 schematically shows a functional configuration of a class in the context-dependent behavior hierarchy (SBL) 102. The context-dependent behavior hierarchy (SBL) 102 transmits one or more Receive Data Handlers (RDH) 213 for receiving data from an external object such as an STM or LTM, a resource manager, or a recognition system object, and transmits data to the external object. And one or more Send Data Handlers (SDH) 214.
[0095]
An Event Data Handler (EDH) 211 is a class object for allocating an ID to an input / output event of the
[0096]
The
[0097]
Each schema is generated according to the class definition shown in FIG. 15, and entities are mapped on the memory space. Each schema has an
[0098]
The functions and state machines that the
ActivationMonitor (): Evaluation function for making the schema Active when the schema is Ready
Actions (): Execution state machine at the time of Active
Goal (): a function that evaluates whether the schema has reached Goal during Active
Fail (): Function for determining whether the schema is in the Fail state during 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 (): Evaluation function for determining whether the schema is in the fail state at the time of sleep
MakePronome (): a function that determines the target of the whole tree
[0099]
(2-3) Situation-dependent behavior hierarchy function
The situation-dependent behavior hierarchy (SBL) 102 is based on the storage contents of the short-
[0100]
As described in the previous section, the situation-
[0101]
(2-3-1) Concurrent evaluation:
It has already been described that the schema as the action description module has a Monitor function for making a situation judgment according 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 Schema Base. The Monitor function is a function that calculates the activation level of the schema according to the external stimulus and the internal state.
[0102]
When the tree structure shown in FIG. 11 is configured, the upper (parent) schema can call the Monitor function of the lower (child) schema with the
[0103]
Because of the tree structure, the evaluation of each schema by the
[0104]
The situation-
[0105]
(2-3-2) Concurrent execution:
Since the activation level from each subtree is returned to the root schema, the optimal schema, that is, the operation according to the
[0106]
The schema for which permission has been granted is executed. That is, the schema actually observes the
[0107]
The Action function includes a state machine that describes an action (operation) of the schema itself. When the tree structure shown in FIG. 11 is configured, the parent schema can call the Action function to start or interrupt the execution of the child schema.
[0108]
The context-dependent behavior hierarchy (SBL) 102 according to the present embodiment can execute another schema using the surplus resources at the same time by using the tree structure of the schema when resources do not conflict. However, if there is no restriction on the resources used up to Goal, an unusual behavior may occur. The context-dependent behavior determined in the context-
[0109]
(2-3-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. In addition, when more important actions are completed (completed or stopped), it is necessary to resume the original schema and continue the execution.
[0110]
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.
[0111]
On the other hand, since the
[0112]
Further, it is assumed that, as a result of the evaluation of the activation level based on the
[0113]
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.
[0114]
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 robot apparatus 1 finds a soccer ball during a conversation, it can say, "Wait a moment" and play soccer.
[0115]
(2-3-4) Reentrant:
Each schema constituting the context-
[0116]
This is similar to the reentrant property of the OS in the computer world, and is referred to as a schema reentrant property in this specification. As shown in FIG. 16, the
[0117]
The reentrancy of the schema will be described more specifically with reference to FIG. The
[0118]
Here, by evaluating the activation level based on the
[0119]
Then, the person B interrupts the dialogue between the robot apparatus 1 and the person A, and then evaluates the activation level based on the
[0120]
In such a case, the
[0121]
The schema in the Ready list is evaluated according to the object (external stimulus 183), that is, the activation level is calculated, and the execution right is delivered. 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.
[0122]
(3) Application of the present invention to a robot device
Next, an example in which the present invention is applied to the above-described robot device will be described in detail. The robot apparatus according to the present embodiment has a means for obtaining information inside the robot apparatus itself, and in the robot apparatus for selecting an operation expressed from the internal information and information external to the robot, as described above, Is performed in order to keep the value within a certain range, and when the operation is performed, if the internal state assumed to be satisfied by the operation is not satisfied, that is, the predetermined object cannot be achieved even after the predetermined time has elapsed. In the case where the termination condition is not satisfied, a frustration value that changes according to the elapsed time is calculated, and the operation that appears based on this frustration value is changed.
[0123]
As described above, the robot apparatus according to the present embodiment has SBL as an algorithm for selecting an operation in consideration of information inside and outside the robot apparatus. The SBL has a schema tree, and each schema calculates an activation level indicating the degree of simplicity (execution priority) of each schema according to the external stimulus and the internal state, as described above.
[0124]
Here, each schema includes external information (external stimulus) input from an external input device (state recognition unit) such as various sensors, and internal information of the robot device (emotion for calculating its own internal state parameter and emotion parameter). The activation level is calculated according to both the internal state parameter obtained from the instinct model), that is, the satisfaction level of the primary emotion (instinct) of the robot and the value of the secondary emotion (emotion) that changes accordingly. .
[0125]
The activation level is calculated by using a stimulus from the outside, physical external information of an object (if any), a current internal state, a memory (past history) of the robot device itself, and the like. For example, it is calculated based on ReleaseValue indicating whether or not the robot device can perform the operation in the current situation (whether the robot device can perform the operation) and MotivationValue indicating whether the robot device itself wants to perform the operation. be able to.
[0126]
The ReleaseValue is based on external stimuli, physical external information (if there is an object, distance to the object, color and shape of the object, and the like) of the object, if any, and storage from each storage unit. The value is calculated by, for example, adding, for example. For example, a schema that expresses a ball kicking operation does not express its own operation (ball kicking operation) during a period when the ball cannot be recognized by a camera or the like. Judgment and its value can be reduced.
[0127]
Further, the MotivationValue is calculated based on the internal state of the robot, that is, the instinct (desire) value and the emotion (emotional) value calculated in the instinct / emotional model in the internal state management unit described above. In the kicking scheme, if the battery is sufficiently charged or a ball of a desired color is found, the desire to kick the ball increases, and the value increases. The emotion model of the robot apparatus according to the present embodiment includes “Joy”, “Sadness”, “Anger”, “Surprise”, “Disgust”, and “Disgust”. Fear), a parameter representing the intensity of the emotion is stored for each emotion, and the instinct model is “exercise”, “affection”, “appetite”. )) And "curiosity", each of which has a parameter indicating the strength of the desire for each of the desires, and the MotivationValue can be calculated based on each of these values. .
[0128]
As described above, the robot device can be configured to select a schema (action) to be executed depending on the activation level calculated in this way. The selected schema expresses the action (action) described therein. When each schema expresses an action, the action continues until it fulfills its purpose, that is, it satisfies a predetermined termination condition or a transition condition for transition to the next operation (hereinafter, simply referred to as termination or transition condition). Expressed. Here, when each schema satisfies the termination or transition condition of its own operation, the robot apparatus obtains a certain kind of desire in the internal state, for example, an emotion value such as the above-mentioned “joy” or a “motion desire” or the like. It is configured to vary the desire value.
[0129]
Specifically, for example, when an operation of “searching for a ball” is described as a body operation, the game has an end condition of “finding a ball” based on an image of a camera or the like. Keep looking. Alternatively, when the predetermined condition is a transition condition for transitioning to the next operation, that is, “finding the ball” is a transition condition for transitioning to the next operation of “kicking the ball”. In this case as well, the operation continues without shifting to the next operation until the transition condition is satisfied. By satisfying the termination or transition condition, it is possible to increase the emotion value such as “joy” or satisfy the desire value such as “exercise desire”.
[0130]
Here, in order to stop (interrupt) the expressed operation halfway, the activation level of the other schema that has not fired needs to be higher than that of the schema that is firing due to some condition such as an external stimulus. In such a case, the schema being fired can be interrupted and the schema with the higher activation level can be activated. Specifically, while the robot apparatus activates the schema for playing soccer and is playing soccer, the user speaks to the user and activates the schema for dialogue with the user based on the activation level of the schema for playing soccer. For example, the tivation level increases.
[0131]
As described above, in order to end or stop the operation halfway, it is necessary to satisfy a predetermined end or transition condition or to provide an external stimulus. However, in this method, it is possible to claim "I want to do", but it is not possible to claim "I want to stop", such as stopping the operation halfway.
[0132]
By the way, there are cases in which it is difficult to satisfy the termination or transition condition of the selected operation due to various factors such as a change in an external situation or a restriction on own behavior. Therefore, in such a case, in order to take a strategy of stopping the operation halfway even if the termination or transition condition is not satisfied and developing the next operation, in the present invention, a value called a frustration value is set. Introduce. With this frustration value, even during operation, the operation can be changed, such as stopping the developing operation, according to a change in the external situation or a change in the internal state.
[0133]
Frustration is positioned in psychology as "a state in which frustration-satisfying behavior is impeded for some reason, frustration", and when that state occurs, attacks, compensation, detours, and escapes It is said to show a reaction such as a reaction. In the present embodiment, the state of frustration in the robot apparatus and the behavior at that time (frustration reaction) are determined with reference to these.
[0134]
Next, the operation of the schema having a frustration value in the present embodiment will be described in detail. First, of the plurality of schemas of the robot device, the schema A having the highest activation level, for example, is selected and executed. When the operation described in the schema A is executed to the end, it is predicted that the desire α is satisfied. However, when it is difficult to change the direction to satisfy the desire α, the schema A is executed according to the elapsed time. Increase the frustration value F for doing
[0135]
FIG. 18A and FIG. 18B are diagrams illustrating the behavior control according to the present embodiment. As shown in FIG. 18A, the SBL includes a
[0136]
When the activation level of schema A is selected to increase in response to an external stimulus or internal state, schema A will exhibit behavior. Here, if the action cannot be achieved even after the allowable time t1 = 30 s has elapsed since the action was expressed, that is, if the desire α that should be satisfied by the schema A cannot be obtained, the frustration value F of the schema A Increase. The frustration value can be calculated by each schema itself or other control means using a function or the like that increases with the elapsed time, such as a sigmoid function. In the predetermined increasing function for calculating the frustration value, a different function can be individually set for each schema, and various parameters used for the function can be individually set for each schema.
[0137]
Here, for example, the frustration value F of the schema A is set to F = 0 before the selection and during the allowable period t1 (= 30 s) from the selection, and the elapsed time after the allowable period t1. Is set so as to increase according to. In addition, you may set so that it may increase according to the elapsed time after that based on the selected time.
[0138]
The schema A does not exhibit the operation described in the schema A for a predetermined operation stop time t2 (= 120 s) from the time when the frustration value F of the schema A exceeds the threshold Fth.
[0139]
That is, during the operation stop time t2, the operation of the schema A is stopped to be expressed and the selection of the schema A is prohibited regardless of the activation level of the schema A. Hereinafter, limiting the operation of schema A in this manner is also referred to as giving a penalty to schema A.
[0140]
In SBL, as in the
[0141]
At this time, the activation level AL of each schema constituting the
[0142]
Further, when there is no schema having the same desire α as the schema A, or even if the activation level of the schema having the same desire α as the schema A is increased, the activation level of the schema having another desire β is higher. In a case where the price is high, a schema having a desire different from the schema A may be selected.
[0143]
In this way, the schema assumes that if the predetermined end or transition condition is not satisfied even after the predetermined time t1 has elapsed after the occurrence of the airframe operation, the schema cannot be changed in a direction that satisfies the desire. By increasing the ration value, it is possible to change the action that appears according to the frustration value.
[0144]
When the frustration value exceeds a predetermined threshold value, not only does the operation of the schema A be prohibited for a certain period of time to give a penalty, but also the frustration of the above-mentioned attack, compensation, detour, escape reaction, etc. It can be set to express the reaction that corresponds to the reaction. For example, in the case of an attack response, the target object is attacked. In the case of a compensation response, a schema other than the schema A is executed, and the schema B predicted to satisfy the same desire A as the schema A is executed.
[0145]
Also, as in a
[0146]
Further, for each schema, the original body operation (first body operation) and the body operation (second body operation) showing a frustration reaction so as to appear only in such a case are described. Is also good. Alternatively, one or more schemas that perform the frustration reaction of the schema A are prepared below the schema A, and when the frustration value F exceeds the threshold value Fth, the schema for the frustration reaction is called. Good.
[0147]
Furthermore, by reflecting this frustration value in the internal state of the robot device, various operations can be developed according to the frustration value. For example, if the frustration value at the end of the operation, that is, at the time when the predetermined end or the transition condition is satisfied, is 0, the emotion value such as “satisfied” or “happy” is increased and reflected in the operation. You may make it do.
[0148]
(3-1) First Specific Example of Embodiment: When the ball is not kicked even though the ball kicking scheme is executed
It is assumed that the schema S1 for kicking the ball is selected, and the operation end or transition condition of the schema S1 is to kick the ball. However, if the ball becomes invisible due to a change in lighting conditions or the like during the execution of the schema S1, or if the distance from the ball cannot be measured, it becomes difficult to kick the ball. Thus, the frustration value F is increased if the ball is not kicked even if it exceeds the set permissible time t1, which is predicted that the ball will be kicked if given only. When the frustration value exceeds the threshold value Fth, the operation of the schema S1, that is, the operation of kicking the ball is stopped, the schema S1 is not selected for a certain time t2, and another schema other than the schema S1 is selected. In such a case, prepare a compensation schema that expresses the compensation action for such a case, activate it, or call a schema that expresses emotions such as “angry” or “sad”, and call this schema. Such emotions are reflected in movement. This looks like, for example, "I've been angry because I did my best but couldn't do it."
[0149]
(3-2) Second specific example of the embodiment: a case where no reply is made even though the chat schema is executed.
It is assumed that the chatting schema S2 is selected, and the end condition or the transition condition of the schema S2 is that "a person replies". This condition cannot be satisfied if the user does not reply even if the robot device speaks hard. Also in this case, an allowable time t1 during which the robot device can wait for a reply is determined, and when the allowable time t1 is exceeded, the frustration value F is increased, and the frustration value F exceeds the threshold value Fth. If a response cannot be received by that time, the schema S2 is not selected for a certain period of time t2, and the next action is selected from a schema other than the schema S2. As a result, even if, for example, another user speaks during this time t2, the starting of the schema S2 to be spoken has been suspended, and the robot apparatus ignores the schema S2. Looks "angry". In addition to reflecting frustration on emotions, by selecting another schema or activating a compensation schema, for example, "I did my best but did not reply and I feel sad and do other things" Looks like.
[0150]
In the present embodiment, such a frustration value is calculated, and further, a threshold value of a different frustration value, an allowable time t1, an operation stop time t2, and the like are set for each schema. When the frustration value rises, the operation of the schema A can be stopped for a predetermined time t2, and another schema B having the same desire α as the schema A can be selected. Is not satisfied, it is possible to prevent the robot apparatus from continuing to perform the same operation, to activate another schema B that satisfies the same desire, and to “stop” the action by itself, and to stop. , It is possible to have many variations.
[0151]
In addition, a plurality of frustration reactions to be performed when the value exceeds the threshold value Fth of the frustration value F is prepared, and as an operation expressed as this frustration reaction, as described above, the activation level is selected from among other schemas. Or based on the type of desire, it is possible to have more frustration reactions. In this way, it is possible to realize an emotional change due to the inability to perform the selected action, which helps the robot apparatus to look more intelligent.
[0152]
Furthermore, since it is possible to prevent the same operation from being repeatedly expressed under the same environment and conditions, it is possible to prevent the user from feeling uncomfortable with the robot apparatus, and to further improve the entertainment.
[0153]
【The invention's effect】
As described in detail above, the robot device according to the present invention is a robot device that expresses an operation selected from a plurality of operations having a predetermined termination condition or a transition condition for transition to the next operation, Selecting means for selecting an action to be expressed, frustration value calculating means for calculating a frustration value according to an elapsed time after being selected by the selecting means, and selecting the selected action according to the frustration value. With the control means for changing, it is possible to change the action according to the frustration value that changes according to the elapsed time after the start of the selected action, and to further enhance the entertainment property by giving a variation to the action. Can be.
[Brief description of the drawings]
FIG. 1 is a perspective view showing an appearance of a robot device according to an embodiment of the present invention.
FIG. 2 is a block diagram schematically showing a functional configuration of the robot device according to the embodiment of the present invention.
FIG. 3 is a block diagram showing the configuration of a control unit of the robot device in more detail in the embodiment of the present invention.
FIG. 4 is a schematic diagram showing a functional configuration of a behavior control system of the robot device according to the embodiment of the present invention.
FIG. 5 is a schematic diagram showing an object configuration of the behavior control system according to the embodiment of the present invention.
FIG. 6 is a schematic diagram showing a form of situation-dependent behavior control by a situation-dependent behavior hierarchy according to an embodiment of the present invention.
FIG. 7 is a schematic diagram illustrating a basic operation example of behavior control using a situation-dependent behavior hierarchy.
FIG. 8 is a schematic diagram showing an operation example when a reflex action is performed by a situation-dependent action hierarchy.
FIG. 9 is a schematic diagram showing an operation example when emotion expression is performed by a situation-dependent behavior hierarchy.
FIG. 10 is a schematic diagram showing a situation where a situation-dependent behavior hierarchy is composed of a plurality of schemas.
FIG. 11 is a schematic diagram showing a tree structure of a schema in a situation-dependent behavior hierarchy.
FIG. 12 is a schematic diagram showing a mechanism for controlling normal context-dependent behavior in a context-dependent behavior hierarchy.
FIG. 13 is a schematic diagram showing a configuration of a schema in a reflex action unit.
FIG. 14 is a schematic diagram showing a mechanism for controlling reflex behavior by a reflex behavior unit.
FIG. 15 is a schematic diagram showing a class definition of a schema used in a situation-dependent behavior hierarchy.
FIG. 16 is a schematic diagram showing a functional configuration of a class in a situation-dependent behavior hierarchy.
FIG. 17 is a diagram illustrating the reentrant property of a schema.
FIGS. 18A and 18B are diagrams illustrating behavior control according to the embodiment of the present invention.
[Explanation of symbols]
Reference Signs List 1 robot device, 10 behavior control system, 15 CCD camera, 16 microphone, 17 speaker, 18 touch sensor, 19 LED indicator, 20 control unit, 21 CPU, 22 RAM, 23 ROM, 24 nonvolatile 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, 81 visual recognition function unit, 82 auditory recognition function unit, 83 contact recognition function Unit, 91 internal state management unit, 92 short-term storage unit (STM), 93 long-term storage unit (LTM), 101 reflection behavior hierarchy, 102 context-dependent behavior hierarchy (SBL), 103 reflex behavior unit
Claims (23)
上記複数の動作から発現する動作を選択する選択手段と、
上記選択手段により選択された後の経過時間に応じてフラストレーション値を算出するフラストレーション値算出手段と、
上記フラストレーション値に応じて上記選択された動作を変化させる制御手段とを有することを特徴とするロボット装置。In a robot device that expresses an operation selected from a plurality of operations having a predetermined end condition or a transition condition to transition to a next operation,
Selecting means for selecting an operation to be expressed from the plurality of operations,
Frustration value calculation means for calculating a frustration value according to the elapsed time after being selected by the selection means,
Control means for changing the selected operation according to the frustration value.
上記選択手段は、上記優先度に基づき上記動作を選択することを特徴とする請求項1記載のロボット装置。Based on the external stimulus and the internal state, has a priority calculation means to calculate the priority when expressing each operation,
2. The robot device according to claim 1, wherein the selection unit selects the operation based on the priority.
上記情動を示すパラメータは、上記動作が終了するか又は次の動作に移行された場合に変動することを特徴とする請求項9記載のロボット装置。The internal state has parameters indicating a plurality of emotions,
The robot apparatus according to claim 9, wherein the parameter indicating the emotion changes when the operation ends or when the operation is shifted to the next operation.
上記制御手段は、上記第1の行動記述モジュールのフラストレーション値が所定の閾値以上となった場合に、上記第1の機体動作を停止し、上記第2の行動記述モジュールを選択して上記第2の機体動作を発現させることを特徴とする請求項10記載のロボット装置。A first behavior description module and a second behavior description module in which a first fuselage operation and a second fuselage movement that is expressed in place of the first body behavior stop are described, respectively.
When the frustration value of the first action description module is equal to or greater than a predetermined threshold, the control means stops the first body operation, selects the second action description module, and selects the second action description module. 11. The robot apparatus according to claim 10, wherein the robot apparatus exhibits the second body operation.
上記複数の動作から発現する動作を選択する選択工程と、
上記選択工程にて選択された後の経過時間に応じてフラストレーション値を算出するフラストレーション値算出工程と、
上記フラストレーション値に応じて上記選択された動作を変化させる制御工程とを有することを特徴とするロボット装置の制御方法。In a control method of a robot device that expresses an operation selected from a plurality of operations having a predetermined end condition or a transition condition for transition to a next operation,
A selecting step of selecting an operation that emerges from the plurality of operations,
A frustration value calculation step of calculating a frustration value according to the elapsed time after being selected in the selection step,
A control step of changing the selected operation in accordance with the frustration value.
上記選択工程では、上記優先度に基づき上記動作が選択されることを特徴とする請求項14記載のロボット装置の制御方法。Based on the external stimulus and the internal state, has a priority calculation step of calculating the priority when expressing each operation,
The method according to claim 14, wherein in the selecting step, the operation is selected based on the priority.
上記フラストレーション値算出工程では、上記行動記述モジュールにより上記フラストレーション値が算出される
ことを特徴とする請求項21記載のロボット装置の制御方法。In the selection step, based on the external stimulus and the internal state, the operation is selected according to the activation level indicating the priority to express the body operation calculated by the action description module,
22. The control method according to claim 21, wherein in the frustration value calculating step, the frustration value is calculated by the behavior description module.
上記複数の動作から発現する動作を選択する選択工程と、
上記選択工程にて選択された後の経過時間に応じてフラストレーション値を算出するフラストレーション値算出工程と、
上記フラストレーション値に応じて上記選択された動作を変化させる制御工程とを有することを特徴とするプログラム。In a program for causing a computer to execute an operation that expresses an operation selected from a plurality of operations having a predetermined termination condition or a transition condition for transitioning to a next operation,
A selecting step of selecting an operation that emerges from the plurality of operations,
A frustration value calculation step of calculating a frustration value according to the elapsed time after being selected in the selection step,
A control step of changing the selected operation according to the frustration value.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003079144A JP2004283957A (en) | 2003-03-20 | 2003-03-20 | Robot device, method of controlling the same, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003079144A JP2004283957A (en) | 2003-03-20 | 2003-03-20 | Robot device, method of controlling the same, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004283957A true JP2004283957A (en) | 2004-10-14 |
Family
ID=33293343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003079144A Withdrawn JP2004283957A (en) | 2003-03-20 | 2003-03-20 | Robot device, method of controlling the same, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004283957A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101060155B1 (en) | 2008-04-28 | 2011-08-29 | 한양대학교 산학협력단 | Alternative Behavior Determination Method of Robot Using Weight-Based Behavior-Combined Semantic Technology |
JP2014098962A (en) * | 2012-11-13 | 2014-05-29 | Sharp Corp | Behavior control device, behavior control method, and control program |
JP2020089929A (en) * | 2018-12-04 | 2020-06-11 | カシオ計算機株式会社 | Robot, method for controlling robot, and program |
CN111515970A (en) * | 2020-04-27 | 2020-08-11 | 腾讯科技(深圳)有限公司 | Interaction method, mimicry robot and related device |
-
2003
- 2003-03-20 JP JP2003079144A patent/JP2004283957A/en not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101060155B1 (en) | 2008-04-28 | 2011-08-29 | 한양대학교 산학협력단 | Alternative Behavior Determination Method of Robot Using Weight-Based Behavior-Combined Semantic Technology |
JP2014098962A (en) * | 2012-11-13 | 2014-05-29 | Sharp Corp | Behavior control device, behavior control method, and control program |
JP2020089929A (en) * | 2018-12-04 | 2020-06-11 | カシオ計算機株式会社 | Robot, method for controlling robot, and program |
JP7247560B2 (en) | 2018-12-04 | 2023-03-29 | カシオ計算機株式会社 | Robot, robot control method and program |
CN111515970A (en) * | 2020-04-27 | 2020-08-11 | 腾讯科技(深圳)有限公司 | Interaction method, mimicry robot and related device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004268235A (en) | Robot device, its behavior control method and program | |
US7363108B2 (en) | Robot and control method for controlling robot expressions | |
KR101137205B1 (en) | Robot behavior control system, behavior control method, and robot device | |
JP4244812B2 (en) | Action control system and action control method for robot apparatus | |
JP2005193331A (en) | Robot device and its emotional expression method | |
US8321221B2 (en) | Speech communication system and method, and robot apparatus | |
US8145492B2 (en) | Robot behavior control system and method, and robot apparatus | |
EP1136194A1 (en) | Robot, method of robot control, and program recording medium | |
JP2004283958A (en) | Robot device, method of controlling its behavior and program thereof | |
JP3558222B2 (en) | Robot behavior control system and behavior control method, and robot device | |
JP2006110707A (en) | Robot device | |
JP2007125631A (en) | Robot device and motion control method | |
JP2021153680A (en) | Equipment control device, equipment, and equipment control method and program | |
JP2007125629A (en) | Robot device and motion control method | |
JP2004283957A (en) | Robot device, method of controlling the same, and program | |
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 | |
JP2004283960A (en) | Robot device, method of controlling behavior and program thereof | |
JP2005321954A (en) | Robot device, information processing system, information processing method, and computer program | |
JP2004209599A (en) | Robot device, action learning method for robot device and action preparation method for robot device | |
JP2001157980A (en) | Robot device, and control method thereof | |
JP2005193330A (en) | Robot device and its emotional expression method | |
JP2007125630A (en) | Robot device and motion control method | |
JP2004291147A (en) | Robot's behavior control system | |
JP4491951B2 (en) | Action expression device and toy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060606 |