JP2007125631A - ロボット装置及びその行動制御方法 - Google Patents
ロボット装置及びその行動制御方法 Download PDFInfo
- Publication number
- JP2007125631A JP2007125631A JP2005318852A JP2005318852A JP2007125631A JP 2007125631 A JP2007125631 A JP 2007125631A JP 2005318852 A JP2005318852 A JP 2005318852A JP 2005318852 A JP2005318852 A JP 2005318852A JP 2007125631 A JP2007125631 A JP 2007125631A
- Authority
- JP
- Japan
- Prior art keywords
- action
- value
- schema
- behavior
- bias
- 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
【課題】レイヤ間の依存関係を軽減することが可能なロボット装置及びその行動制御方法を提供する。
【解決手段】要素行動A、B、Cからなる一連の行動を繰り返し実行すると、スキーマBはスキーマAをトリガスキーマとして学習し、スキーマCはスキーマBをトリガスキーマとして学習し、一連の行動がルーチンワークとして獲得される。その後、スキーマAの行動開始時にスキーマAの行動価値に対してインテンショナルバイアスを与えてスキーマAを実行すると、スキーマBは自身の行動価値にルーチンバイアスRSEを加える。スキーマAが終了すると、その時点ではルーチンバイアスRSEの加えられたスキーマBの行動価値が最も大きいため、スキーマAの次にはスキーマBが実行される。同様にして、スキーマBの次にはスキーマCが実行される。
【選択図】図19
【解決手段】要素行動A、B、Cからなる一連の行動を繰り返し実行すると、スキーマBはスキーマAをトリガスキーマとして学習し、スキーマCはスキーマBをトリガスキーマとして学習し、一連の行動がルーチンワークとして獲得される。その後、スキーマAの行動開始時にスキーマAの行動価値に対してインテンショナルバイアスを与えてスキーマAを実行すると、スキーマBは自身の行動価値にルーチンバイアスRSEを加える。スキーマAが終了すると、その時点ではルーチンバイアスRSEの加えられたスキーマBの行動価値が最も大きいため、スキーマAの次にはスキーマBが実行される。同様にして、スキーマBの次にはスキーマCが実行される。
【選択図】図19
Description
本発明は、外部刺激や自己の内部状態に応じて自律的に行動可能なロボット装置及びその行動制御方法に関する。
電気的又は磁気的な作用を用いて人間(生物)の動作に似た運動を行う機械装置を「ロボット」という。我が国においてロボットが普及し始めたのは、1960年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータや搬送ロボット等の産業用ロボット(Industrial Robot)であった。
最近では、人間のパートナーとして生活を支援する、すなわち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬、猫のように4足歩行の動物の身体メカニズムやその動作を模した「ペット型」ロボット、或いは、2足直立歩行を行う人間等の身体メカニズムや動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット(Humanoid Robot)等のロボット装置は、既に実用化されつつある。
これらのロボット装置は、産業用ロボットと比較して、エンターテインメント性を重視した様々な動作を行うことができるため、エンターテインメントロボットと称される場合もある。また、そのようなロボット装置には、外部刺激や自己の内部状態に応じて自律的に行動可能なものがある。
例えば、特許文献1に記載されたロボット装置は、視覚や聴覚などのセンサ入力を外部刺激の情報とすると共に、本能や感情などの内部状態モデルから得られる情報を内部状態の情報とし、これらの情報に応じて自律的に行動選択を行っている。
この特許文献1のように、ロボット装置の内部にある価値基準によって内外の状況判断を行い、自律的に行動選択を行うと、その行動形態は創発的なものとなり、より複雑な行動を発現することが可能となる。その反面、状況判断基準がロボット装置内部で閉じているため、ロボット装置がどのような計画に基づいて一連の行動を発現しているのかが、第三者的な立場にあるユーザからは分かりづらくなる場合がある。
そこで、特許文献2には、下位レイヤ内において各要素行動が記述された行動記述モジュール(スキーマ)毎に実行優先度を表す行動価値を外部刺激及び/又は内部状態に基づいて計算し、その行動価値の大きさに基づいて一又は複数の行動記述モジュールを選択して行動を発現するようなロボット装置において、上位レイヤが一連の行動記述モジュールの行動価値を各行動記述モジュールに記述された要素行動の開始時から終了時まで強制的に引き上げ、一連の行動を発現させる技術が提案されている。この特許文献2記載の技術によれば、ロボット装置がある計画に基づいて、すなわちある意図に基づいて行動しているように見せることができる。
しかしながら、上述した特許文献2に記載の技術では、繰り返し発現した一連の行動であっても、一連の行動の開始時から終了時まで上位レイヤが下位レイヤにおける一連の行動記述モジュールの行動価値を制御する必要があったため、レイヤ間の依存関係が必要以上に増大してしまうという問題があった。
本発明は、このような従来の実情に鑑みて提案されたものであり、レイヤ間の依存関係を軽減することが可能なロボット装置及びその行動制御方法を提供することを目的とする。
上述した目的を達成するために、本発明に係るロボット装置は、外部刺激及び/又は内部状態に応じて自律的に行動可能なロボット装置において、それぞれ所定の要素行動が記述され、外部刺激及び/又は内部状態に応じて自身の要素行動の実行優先度を表す行動価値を算出する複数の行動記述モジュールと、各行動記述モジュールの実行優先度の大きさに基づいて一又は複数の行動記述モジュールを選択し、選択した行動記述モジュールに記述された要素行動を発現させる行動選択手段と、所定の計画に基づく一又は複数の行動記述モジュールに含まれる各行動記述モジュールの行動価値に対して、各行動記述モジュールに記述された要素行動の開始時から終了時までの間、第1のバイアス値を加える行動制御手段とを備え、上記行動制御手段は、複数の行動記述モジュールからなる行動計画が学習されている場合、最初の行動記述モジュールに記述された要素行動の開始時のみ、当該最初の行動記述モジュールの行動価値に対して上記第1のバイアス値を加えることを特徴とする。
また、上述した目的を達成するために、本発明に係るロボット装置の制御方法は、外部刺激及び/又は内部状態に応じて自律的に行動可能なロボット装置の行動制御方法において、それぞれ所定の要素行動が記述された複数の行動記述モジュールが、外部刺激及び/又は内部状態に応じて自身の要素行動の実行優先度を表す行動価値を算出する行動価値算出工程と、所定の計画に基づく一又は複数の行動記述モジュールに含まれる各行動記述モジュールの行動価値に対して、各行動記述モジュールに記述された要素行動の開始時から終了時までの間、第1のバイアス値を加える行動価値制御工程と、上記複数の行動記述モジュールから、行動価値の大きさに基づいて一又は複数の行動記述モジュールを選択する行動選択工程と、上記行動選択工程にて選択された行動記述モジュールに記述された要素行動を発現する行動発現工程とを有し、上記行動価値制御工程では、複数の行動記述モジュールからなる行動計画が学習されている場合、最初の行動記述モジュールに記述された要素行動の開始時のみ、当該最初の行動記述モジュールの行動価値に対して上記第1のバイアス値を加えることを特徴とする。
本発明に係るロボット装置及びその行動制御方法によれば、所定の計画に基づく一又は複数の行動記述モジュールを実行させたい場合には、各行動記述モジュールの行動価値に対して、各行動記述モジュールに記述された要素行動の開始時から終了時までの間、第1のバイアス値を加えるが、複数の行動記述モジュールからなる行動計画が学習されている場合には、最初の行動記述モジュールに記述された要素行動の開始時のみ、当該最初の行動記述モジュールの行動価値に対して第1のバイアス値を加えればよいため、行動記述モジュールに対する干渉を軽減することができる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、人間を模した外観形状とされ、外部刺激や自己の内部状態に応じて自律的に行動可能なロボット装置に適用したものである。以下では、先ずロボット装置の構成について説明し、次にロボット装置の行動制御システムについて説明し、最後にロボット装置の行動制御に関する具体的な実験例について説明する。
(1)ロボット装置の構成
先ず、本実施の形態におけるロボット装置の外観構成を図1に示す。図1に示すように、ロボット装置1は、体幹部ユニット2の所定の位置に頭部ユニット3が連結されると共に、左右2つの腕部ユニット4R/Lと、左右2つの脚部ユニット5R/Lとが連結されて構成されている。但し、R及びLの各々は、右及び左の各々を示す接尾辞である。
先ず、本実施の形態におけるロボット装置の外観構成を図1に示す。図1に示すように、ロボット装置1は、体幹部ユニット2の所定の位置に頭部ユニット3が連結されると共に、左右2つの腕部ユニット4R/Lと、左右2つの脚部ユニット5R/Lとが連結されて構成されている。但し、R及びLの各々は、右及び左の各々を示す接尾辞である。
このロボット装置1の機能構成を図2に模式的に示す。図2に示すように、ロボット装置1は、全体の動作の統括的制御及びその他のデータ処理を行う制御ユニット20と、入出力部40と、駆動部50と、電源部60とで構成される。
入出力部40は、入力部として、人間の「目」に相当し外部の状況を撮影するCCD(Charge Coupled Device)カメラ41、人間の「耳」に相当するマイクロフォン42や、頭部や背中等の部位に配設され、所定の押圧を受けるとこれを電気的に検出することでユーザの接触を感知するタッチセンサ44、前方に位置する物体までの距離を測定するための距離センサ、五感に相当するその他の各種センサを装備している。また、入出力部40は、出力部として、頭部ユニット3に備えられ、人間の「口」に相当するスピーカ43、人間の目の位置に設けられ、視覚認識状態等を表現するLED(Light Emission Diode)45等を装備している。これらの出力部は、音声やLED45の点滅など、腕部ユニット4R/Lや脚部ユニット5R/L等を用いたモーション以外の形式によっても、ロボット装置1からのユーザ・フィードバックを実現することができる。
例えば、頭部ユニット3の頭頂部の所定箇所に複数のタッチセンサ44を設け、各タッチセンサ44における接触検出を複合的に活用することで、例えばロボット装置1の頭部を「撫でる」、「叩く」、「軽く叩く」等のユーザからの働きかけを検出することができる。具体的には、例えばタッチセンサ44のうちの幾つかが所定時間をおいて順次接触したことを検出した場合、これを「撫でられた」と判別し、短時間のうちに接触を検出した場合、これを「叩かれた」と判別するなど場合分けすることができる。ロボット装置1は、この検出結果に応じて内部状態を変化させ、この内部状態の変化を上述の出力部等により表現することができる。
駆動部50は、制御ユニット20が指令する所定の運動パターンに従ってロボット装置1の機体動作を実現する機能ブロックであり、行動制御による制御対象である。駆動部50は、ロボット装置1の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール軸、ピッチ軸、ヨー軸等の各軸毎に設けられた複数の駆動ユニット541〜54nで構成される。各駆動ユニット541〜54nは、所定軸回りの回転動作を行うモータ511〜51nと、モータ511〜51nの回転位置を検出するエンコーダ521〜52nと、エンコーダ521〜52nの出力に基づいてモータ511〜51nの回転位置や回転速度を適応的に制御するドライバ531〜53nとの組み合わせで構成される。
電源部60は、その字義通り、ロボット装置1内の各電気回路等に対して給電を行う機能モジュールである。本実施の形態におけるロボット装置1は、バッテリを用いた自律駆動式であり、電源部60は、充電バッテリ61と、充電バッテリ61の充放電状態を管理する充放電制御部62とで構成される。
充電バッテリ61は、例えば、複数本のリチウムイオン2次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
また、充放電制御部62は、充電バッテリ61の端子電圧や充電/放電電流量、充電バッテリ61の周囲温度等を測定することで充電バッテリ61の残存容量を把握し、充電の開始時期や終了時期等を決定する。充放電制御部62が決定する充電の開始及び終了時期は制御ユニット20に通知され、ロボット装置1が充電オペレーションを開始及び終了するためのトリガとなる。
制御ユニット20は、人間の「頭脳」に相当し、例えばロボット装置1の頭部ユニット3或いは体幹部ユニット2に搭載されている。
この制御ユニット20の内部構成を図3に示す。図3に示すように、制御ユニット20は、メイン・コントローラとしてのCPU(Central Processing Unit)21が、メモリ及びその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。バス28は、データ・バス、アドレス・バス、コントロール・バス等を含む共通信号伝送路である。バス28上の各装置にはそれぞれに固有のアドレス(メモリ・アドレス又はI/Oアドレス)が割り当てられている。CPU21は、アドレスを指定することによってバス28上の特定の装置と通信することができる。
RAM(Random Access Memory)22は、DRAM(Dynamic RAM)等の揮発性メモリで構成された書き込み可能なメモリであり、CPU21が実行するプログラム・コードをロードしたり、実行プログラムによる作業データの一時的に保存したりするために使用される。
ROM(Read Only Memory)23は、プログラムやデータを恒久的に格納する読み出し専用メモリである。ROM23に格納されるプログラム・コードとしては、ロボット装置1の電源投入時に実行する自己診断テスト・プログラムや、ロボット装置1の動作を規定する動作制御プログラム等が挙げられる。なお、ロボット装置1の制御プログラムには、CCDカメラ41やマイクロフォン42等のセンサ入力を処理してシンボルとして認識する「センサ入力・認識処理プログラム」、短期記憶や長期記憶等の記憶動作(後述)を司りながらセンサ入力と所定の行動制御モデルとに基づいてロボット装置1の行動を制御する「行動制御プログラム」、行動制御モデルに従って各関節モータの駆動やスピーカ43の音声出力等を制御する「駆動制御プログラム」等が含まれる。
不揮発性メモリ24は、例えばEEPROM(Electrically Erasable and Programmable ROM)のように電気的に消去再書き込みが可能なメモリ素子で構成され、逐次更新すべきデータを不揮発的に保持するために使用される。逐次更新すべきデータとしては、暗号鍵やその他のセキュリティ情報、出荷後にインストールすべき装置制御プログラム等が挙げられる。
インターフェース25は、制御ユニット20の外部の機器と相互接続し、データ交換を可能にするための装置である。インターフェース25は、例えば、CCDカメラ41、マイクロフォン42、又はスピーカ43等との間でデータ入出力を行う。また、インターフェース25は、駆動部50内の各ドライバ531〜53nとの間でデータやコマンドの入出力を行う。
また、インターフェース25は、RS(Recommended Standard)−232C等のシリアル・インターフェース、IEEE(Institute of Electrical and electronics Engineers)1284等のパラレル・インターフェース、USB(Universal Serial Bus)インターフェース、i−Link(IEEE1394)インターフェース、SCSI(Small Computer System Interface)インターフェース、PCカードやメモリカードを受容するメモリカード・インターフェース(カード・スロット)等のような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続された外部機器との間でプログラムやデータの移動を行うようにしてもよい。
また、インターフェース25の他の例として、赤外線通信(IrDA)インターフェースを備え、外部機器と無線通信を行うようにしてもよい。
さらに、制御ユニット20は、無線通信インターフェース26やネットワーク・インターフェース・カード(NIC)27等を含み、Bluetooth(登録商標)のような近接無線データ通信や、IEEE 802.11bのような無線ネットワーク、或いはインターネット等の広域ネットワークを経由して、外部の様々なホスト・コンピュータとデータ通信を行うことができる。
このようなロボット装置1とホスト・コンピュータとの間におけるデータ通信により、遠隔のコンピュータ資源を用いて、ロボット装置1の複雑な動作制御を演算したり、遠隔操作したりすることも可能とされる。
(2)ロボット装置の行動制御システム
次に、上述したロボット装置1の行動制御システムについて詳細に説明する。ここで、上述したロボット装置1は、自己及び周囲の状況や、ユーザからの指示及び働きかけに応じて自律的に行動し得るようになされている。すなわち、ロボット装置1は、外部刺激及び内部状態に応じて自律的に行動を発現することができる。詳細は後述するが、ロボット装置1は、自身の各要素行動が記述された行動記述モジュール(スキーマ)を複数有している。各スキーマは、自身の要素行動の実行優先度を表す行動価値(Activation Level;AL)を外部刺激及び内部状態に基づいて単位時間毎に計算し、ロボット装置1は、その行動価値の大きさに基づいて一又は複数のスキーマを選択して行動を発現する。
次に、上述したロボット装置1の行動制御システムについて詳細に説明する。ここで、上述したロボット装置1は、自己及び周囲の状況や、ユーザからの指示及び働きかけに応じて自律的に行動し得るようになされている。すなわち、ロボット装置1は、外部刺激及び内部状態に応じて自律的に行動を発現することができる。詳細は後述するが、ロボット装置1は、自身の各要素行動が記述された行動記述モジュール(スキーマ)を複数有している。各スキーマは、自身の要素行動の実行優先度を表す行動価値(Activation Level;AL)を外部刺激及び内部状態に基づいて単位時間毎に計算し、ロボット装置1は、その行動価値の大きさに基づいて一又は複数のスキーマを選択して行動を発現する。
ロボット装置1の行動制御システム10の機能構成を図4に模式的に示す。この行動制御システム10は、オブジェクト指向プログラミングを採り入れて実装することができる。この場合、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとInvokeとを行うことができる。
行動制御システム10は、外部環境70を認識するために、視覚認識機能部81、聴覚認識機能部82、及び接触認識機能部83等からなる機能モジュールである外部刺激認識部80を備えている。
視覚認識機能部81は、例えばCCDカメラ41のような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識等の画像認識処理や特徴抽出を行う。
また、聴覚認識機能部82は、マイクロフォン42等の音声入力装置を介して入力される音声データを音声認識して、特徴抽出を行ったり、単語セット(テキスト)を認識したりする。
さらに、接触認識機能部83は、例えば機体の頭部ユニット3等に内蔵されたタッチセンサ44によるセンサ信号を認識して、「撫でられた」とか「叩かれた」という外部刺激を認識する。
内部状態管理部91は、本能や感情といった数種類の情動を数式モデル化して管理する感情・本能モデルを有しており、上述の視覚認識機能部81、聴覚認識機能部82、及び接触認識機能部83によって認識された外部刺激に応じてロボット装置1の本能や感情といった内部状態を管理する。この感情・本能モデルは、それぞれ認識結果と行動履歴とを入力に持ち、それぞれ感情値と本能値とを管理している。行動モデルは、これらの感情値や本能値を参照することができる。
また、行動制御システム10は、外部刺激の認識結果や内部状態の変化に応じて行動制御を行うために、時間経過に従って失われる短期的な記憶を行う短期記憶部92と、情報を比較的長期間保持するための長期記憶部93とを備えている。短期記憶及び長期記憶という記憶メカニズムの分類は神経心理学に依拠する。
短期記憶部92は、上述の視覚認識機能部81、聴覚認識機能部82、及び接触認識機能部83によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。例えば、図2に示すCCDカメラ41からの入力画像を約15秒程度の短い期間だけ記憶する。
長期記憶部93は、物の名前など学習により得られた情報を長期間保持するために使用される。長期記憶部93は、例えばあるスキーマにおいて外部刺激から内部状態の変化を連想記憶することができる。
また、ロボット装置1の行動制御は、反射行動部103によって実現される「反射行動」と、状況依存行動階層102によって実現される「状況依存行動」と、熟考行動階層101によって実現される「熟考行動」とに大別される。
反射行動部103は、上述の視覚認識機能部81、聴覚認識機能部82、及び接触認識機能部83によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。反射行動とは、基本的に、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動を直接決定する行動のことである。例えば、人間の顔を追いかけたり、頷いたりといった振る舞いは反射行動として実装することが好ましい。
状況依存行動階層102は、上述の短期記憶部92及び長期記憶部93の記憶内容や、内部状態管理部91によって管理されるロボット装置1の内部状態を基に、ロボット装置1が現在置かれている状況に即応した行動を制御する。
この状況依存行動階層102は、要素行動毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。また、状況依存行動階層102は、内部状態をある範囲に保つためのホメオスタシス行動も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出現し易くなるようにその行動を活性化させる(実際には、内部状態と外部環境の両方を考慮した形で行動が選択される)。状況依存行動は、反射行動に比し、反応時間が遅い。
熟考行動階層101は、上述の短期記憶部92及び長期記憶部93の記憶内容に基づいて、ロボット装置1の比較的長期に亘る行動計画等を行う。熟考行動とは、与えられた状況或いは人間からの命令により、推論やそれを実現するための計画を立てて行われる行動のことである。例えば、ロボット装置1の現在位置と目標位置とから経路を探索することは熟考行動に相当する。このような推論や計画は、ロボット装置1がインタラクションを保つための反応時間よりも処理時間や計算負荷を要する(すなわち処理時間がかかる)可能性があるため、上述の反射行動部103や状況依存行動階層102がリアルタイムで反応を返しながら、熟考行動階層101は推論や計画を行う。また、熟考行動階層101は、状況依存行動階層102から通知される情報に基づいて、要素行動毎の実行状況等を管理する。
熟考行動階層101、状況依存行動階層102、及び反射行動部103は、ロボット装置1のハードウェア構成に非依存の上位のアプリケーション・プログラムとして記述することができる。これに対し、ハードウェア依存行動制御部104は、これら上位アプリケーションからの命令に応じて、関節アクチュエータの駆動等の機体のハードウェア(外部環境)を直接操作する。このような構成により、ロボット装置1は、制御プログラムに基づいて自己及び周囲の状況を判断し、ユーザからの指示及び働きかけに応じて自律的に行動できる。
以下、行動制御システム10についてさらに説明する。図5は、行動制御システム10のオブジェクト構成を示す模式図である。
図5に示すように、視覚認識機能部81は、Face Detector111、Multi Color Tracker112、Face Identify113という3つのオブジェクトで構成される。Face Detector111は、画像フレーム中から顔領域を検出するオブジェクトであり、検出結果をFace Identify113に出力する。Multi Color Tracker112は、色認識を行うオブジェクトであり、認識結果をFace Identify113及びShort Term Memory92に出力する。また、Face Identify113は、検出された顔画像を手持ちの人物辞書で検索する等して人物の識別を行い、顔画像領域の位置、大きさ情報と共に人物のID情報をShort Term Memory92に出力する。
聴覚認識機能部82は、Audio Recog114とSpeech Recog115という2つのオブジェクトで構成される。Audio Recog114は、マイクロフォン42等の音声入力装置からの音声データを受け取って、特徴抽出及び音声区間検出を行うオブジェクトであり、音声区間の音声データの特徴量及び音源方向をSpeech Recog115やShort Term Memory92に出力する。Speech Recog115は、Audio Recog114から受け取った音声特徴量と音声辞書及び構文辞書とを使って音声認識を行うオブジェクトであり、認識された単語セットをShort Term Memory92に出力する。
触覚認識記憶部83は、タッチセンサ44からのセンサ入力を認識するTactile Sensor116というオブジェクトで構成され、認識結果はShort Term Memory92や内部状態を管理するオブジェクトであるInternal Status Manager91に出力する。
Internal Status Manager91は、内部状態管理部を構成するオブジェクトであり、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の認識系の各オブジェクトによって認識された外部刺激に応じてロボット装置1の本能や感情といった内部状態を管理する。
Short Term Memory92は、短期記憶部を構成するオブジェクトであり、上述の認識系の各オブジェクトによって外部環境から認識されたターゲットやイベントを短期間保持(例えばCCDカメラ41からの入力画像を約15秒程度の短い期間だけ記憶)する機能モジュールであり、Short Term Memory92のクライアント(STMクライアント)であるNormalSBL(Situated Behavior Layer)102に対して外部刺激の通知(Notify)を定期的に行う。
Long Term Memory93は、長期記憶部を構成するオブジェクトであり、物の名前など学習により得られた情報を長期間保持するために使用される。Long Term Memory93は、例えばあるスキーマにおいて外部刺激から内部状態の変化を連想記憶することができる。
NormalSBL102は、状況依存行動階層を構成するオブジェクトである。NormalSBL102は、STMクライアントとなるオブジェクトであり、Short Term Memory92から定期的に外部刺激(ターゲットやイベント)に関する情報の通知を受け取ると、実行すべきスキーマを決定する(後述)。
ReflexiveSBL103は、反射行動部を構成するオブジェクトであり、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する。例えば、人間の顔を追いかける、頷く、障害物の検出により咄嗟に避けるといった振る舞いを行う。
NormalSBL102は、外部刺激や内部状態の変化等の状況に応じた動作を選択する。これに対し、ReflexiveSBL103は、外部刺激に応じて反射的な動作を選択する。これら2つのオブジェクトによる行動選択は独立して行われるため、互いに選択されたスキーマを機体上で実行する場合に、ロボット装置1のハードウェア・リソースが競合して実現不可能なこともある。Resource Manager121というオブジェクトは、NormalSBL102とReflexiveSBL103とによる行動選択時のハードウェアの競合を調停する。そして、調停結果に基づいて機体動作を実現する各オブジェクトに通知することにより機体が駆動する。
Sound Performer122、Motion Controller123、LED Controller124は、機体動作を実現するオブジェクトである。Sound Performer122は、音声出力を行うためのオブジェクトであり、Resource Manager121経由でNormalSBL102から与えられたテキスト・コマンドに応じて音声合成を行い、ロボット装置1の機体上のスピーカ43から音声出力を行う。また、Motion Controller123は、機体上の各関節アクチュエータの動作を行うためのオブジェクトであり、Resource Manager121経由でNormalSBL102から手や脚等を動かすコマンドを受けたことに応答して、該当する関節角を計算する。また、LED Controller124は、LED44の点滅動作を行うためのオブジェクトであり、Resource Manager121経由でNormalSBL102からコマンドを受けたことに応答してLED44の点滅駆動を行う。
以上、行動制御システム10の機能構成及びオブジェクト構成について説明したが、以下では、この行動制御システム10の要部について説明する。
(2−1)状況依存行動
先ず、ロボット装置1の状況依存行動について説明する。状況依存行動は、上述のように状況依存行動階層102によって制御される。状況依存行動階層102による状況依存行動制御の形態を図6に模式的に示す。
先ず、ロボット装置1の状況依存行動について説明する。状況依存行動は、上述のように状況依存行動階層102によって制御される。状況依存行動階層102による状況依存行動制御の形態を図6に模式的に示す。
視覚認識機能部81、聴覚認識機能部82、及び接触認識機能部83からなる外部刺激認識部80における外部環境70の認識結果(センサ情報)131は、外部刺激132として状況依存行動階層(NormalSBL)102に与えられる。また、外部刺激認識部80による外部環境70の認識結果に応じた内部状態の変化133も状況依存行動階層102に与えられる。そして、状況依存行動階層102では、外部刺激132や内部状態の変化133に応じて状況を判断して、行動選択を実現することができる。状況依存行動階層102では、外部刺激132や内部状態の変化133によって、各要素行動が記述されたスキーマの行動価値を算出し、行動価値の大きさに基づいて選択されたスキーマの要素行動を実行する。行動価値の算出には、例えばライブラリを利用することにより、全てのスキーマについて統一的な計算処理を行うことができる。
(2−1−1)スキーマ
図7には、状況依存行動階層102が複数のスキーマ(要素行動)141によって構成されている様子を模式的に示している。状況依存行動階層102は、要素行動として行動記述モジュールを有し、行動記述モジュール毎にステートマシンを用意しており、それ以前の行動(動作)や状況に依存して、センサ入力された外部情報の認識結果を分類し、動作を機体上で発現する。要素行動となる行動記述モジュールは、外部刺激や内部状態に応じた状況判断を行うMonitor機能と、行動実行に伴う状態遷移(ステートマシン)を実現するAction機能とを備えたスキーマとして記述される。
図7には、状況依存行動階層102が複数のスキーマ(要素行動)141によって構成されている様子を模式的に示している。状況依存行動階層102は、要素行動として行動記述モジュールを有し、行動記述モジュール毎にステートマシンを用意しており、それ以前の行動(動作)や状況に依存して、センサ入力された外部情報の認識結果を分類し、動作を機体上で発現する。要素行動となる行動記述モジュールは、外部刺激や内部状態に応じた状況判断を行うMonitor機能と、行動実行に伴う状態遷移(ステートマシン)を実現するAction機能とを備えたスキーマとして記述される。
状況依存行動階層102(より厳密には、状況依存行動階層102のうち、通常の状況依存行動を制御する階層)は、複数のスキーマ141が階層的に連結されたツリー構造として構成され、外部刺激や内部状態の変化に応じてより最適なスキーマ141を統合的に判断して行動制御を行うようになっている。このツリー142は、例えば動物行動学的(Ethological)な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリー等、複数のサブツリー(又は枝)を含んでいる。
状況依存行動階層102におけるスキーマのツリー構造の一例を図8に模式的に示す。図8に示すように、状況依存行動階層102は、短期記憶部92から外部刺激の通知(Notify)を受けるルートスキーマ1511、1521、1531を先頭に、抽象的な行動カテゴリから具体的な行動カテゴリに向かうように、各階層毎にスキーマが配設されている。例えば、ルートスキーマの直近下位の階層には、「探索する(Investigate)」、「食べる(Ingestive)」、「遊ぶ(Play)」というスキーマ1512、1522、1532が配設されている。そして、スキーマ1512「探索する(Investigate)」の下位には、「InvestigativeLocomotion」、「HeadinAirSniffing」、「InvestigativeSniffing」等の、より具体的な探索行動を記述した複数のスキーマ1513が配設されている。同様に、スキーマ1522「食べる(Ingestive)」の下位には、「Eat」、「Drink」等の、より具体的な飲食行動を記述した複数のスキーマ1523が配設され、スキーマ1532「遊ぶ(Play)」の下位には、「PlayBowing」、「PlayGreeting」、「PlayPawing」等の、より具体的な遊ぶ行動を記述した複数のスキーマ1533が配設されている。
図示の通り、各スキーマは外部刺激132と内部状態(の変化)133を入力としている。また、各スキーマは、少なくともMonitor関数とAction関数とを備えている。
Monitor関数とは、外部刺激と内部状態とに応じて当該スキーマの行動価値を算出する関数であり、各スキーマは、このような行動価値算出手段としてのMonitor機能を有する。図8に示すようなツリー構造を構成する場合、上位(親)のスキーマは外部刺激及び内部状態を引数として下位(子供)のスキーマのMonitor関数をコールすることができ、子スキーマは行動価値を返値とする。また、スキーマは自分の行動価値を算出するために、さらに下位のスキーマのMonitor関数をコールすることができる。そして、最上位のルートスキーマには各サブツリーからの行動価値が返されるので、外部刺激及び内部状態の変化に応じた最適なスキーマ、すなわち行動を統合的に判断することができる。この際、ルートスキーマは、行動価値が最も高いスキーマを選択してもよく、行動価値が所定の閾値を超えた2以上のスキーマを選択して並列的に実行させるようにしてもよい。但し、並列実行させる場合には各スキーマ同士でハードウェア・リソースの競合がないことを前提とする。
一方、Action関数は、スキーマ自身が持つ行動を記述したステートマシンを備えている。図8に示すようなツリー構造を構成する場合、親スキーマは、Action関数をコールして、子スキーマの実行を開始したり中断させたりすることができる。但し、ActionのステートマシンはReadyにならないと初期化されない。言い換えれば、中断しても状態はリセットされず、スキーマが実行中の作業データを保存することから、中断再実行が可能である。
各スキーマは、上述のように上位(親)のスキーマに対して自身の行動価値を返す以外に、熟考行動階層101に対しても自身の行動価値や、自身の実行状況等の情報を通知する。熟考行動階層101は、これらの情報に基づいて各スキーマを管理する。
(2−1−2)行動価値の算出
上述したように、スキーマ毎に算出される行動価値とは、その要素行動をロボット装置1がどの程度実行したいか(実行優先度)を表すものであり、ロボット装置1は、この行動価値に基づいて一又は複数の要素行動を選択することにより、行動を発現する。
上述したように、スキーマ毎に算出される行動価値とは、その要素行動をロボット装置1がどの程度実行したいか(実行優先度)を表すものであり、ロボット装置1は、この行動価値に基づいて一又は複数の要素行動を選択することにより、行動を発現する。
この際、各スキーマは、自身に対応付けられた外部刺激及び内部状態に基づいて行動価値を算出するが、この行動価値は、
(a)モチベーション値(Motivation value;Mot)
(b)リリーシング値(Releasing value;Rel)
(c)行動価値バイアス(Self Excitation value;SE)
(d)デフォルト行動価値(Rest Level;RL)
(e)ランダムノイズ(Random noise;Noise)
の各要素の重み付け和によって算出される。
(a)モチベーション値(Motivation value;Mot)
(b)リリーシング値(Releasing value;Rel)
(c)行動価値バイアス(Self Excitation value;SE)
(d)デフォルト行動価値(Rest Level;RL)
(e)ランダムノイズ(Random noise;Noise)
の各要素の重み付け和によって算出される。
以下では、ある「種類」、「大きさ」の対象物が存在するとき、スキーマ「食べる(Ingestive)」の行動価値を算出する場合を例として、上記(a)〜(e)の各要素について説明すると共に、(f)最終的な行動価値、についても説明する。
(a)モチベーション値
モチベーション値Motは、各スキーマの要素行動に対する欲求を示す欲求値Ins[i]に基づいて算出され、この欲求値Ins[i]は、各スキーマに対応付けられた内部状態値Int[i]に基づいて算出される。例えば、スキーマ「食べる(Ingestive)」には、内部状態値Int[NOURISHMENT(栄養状態)]が対応付けられており、この内部状態値Int[NOURISHMENT]から欲求値Ins[NOURISHMENT(食欲)]が算出される。
モチベーション値Motは、各スキーマの要素行動に対する欲求を示す欲求値Ins[i]に基づいて算出され、この欲求値Ins[i]は、各スキーマに対応付けられた内部状態値Int[i]に基づいて算出される。例えば、スキーマ「食べる(Ingestive)」には、内部状態値Int[NOURISHMENT(栄養状態)]が対応付けられており、この内部状態値Int[NOURISHMENT]から欲求値Ins[NOURISHMENT(食欲)]が算出される。
欲求値Ins[i]の算出には、内部状態値Int[i]と欲求値Ins[i]との関係を表す関数を用いることができる。具体的には、図9に示すような関数が挙げられる。図9では、内部状態値Int[NOURISHMENT]の大きさを0乃至100とし、そのときの欲求値Ins[NOURISHMENT]の大きさが−1乃至1となるような関数を示している。例えば内部状態値が8割満たされているときに欲求値が0となるような内部状態値−欲求値曲線L1を設定することで、ロボット装置1は、常に内部状態値が8割の状態を維持するように行動を選択するようになる。これにより、例えば、空腹であれば食欲が増大し、腹八分目以上では食欲がなくなるという状態を反映した行動を発現させることができる。
なお、上述した具体例では、内部状態値が0乃至100の範囲において欲求値が−1乃至1の範囲で変化するものとしたが、内部状態値が0乃至100の範囲において欲求値が1乃至0に変化するようにしてもよい。また、内部状態毎に異なる内部状態値−欲求値関数を用意してもよい。
モチベーション値Motは、以上のようにして求められた欲求値Ins[i]に基づいて、以下の式(1)のように求められる。ここで、WMot[i]は重み係数である。
(b)リリーシング値
リリーシング値Relは、要素行動を発現することによって現在の満足度Sat[i]がどの程度変化するかを表す予想満足度変化値dSat[i]と、変化後の予想満足度ESat[i]とから算出される。
リリーシング値Relは、要素行動を発現することによって現在の満足度Sat[i]がどの程度変化するかを表す予想満足度変化値dSat[i]と、変化後の予想満足度ESat[i]とから算出される。
ここで、ロボット装置1の内部状態値と満足度とは互いに関連しているため、予想満足度変化値dSat[i]は、要素行動を発現することによって現在の内部状態値Int[i]がどの程度変化するかを表す予想内部状態変化値dInt[i]に基づいて算出することができる。
この予想内部状態変化値dInt[i]は、行動価値算出データベースの行動価値算出データを参照して求めることができる。行動価値算出データは、外部刺激と予想内部状態変化値dInt[i]との対応が記述されたものであり、この行動価値算出データベースを参照することで、入力された外部刺激に応じた予想内部状態変化値dInt[i]を取得することができる。
具体的に、行動価値算出データとしては、図10に示すものが挙げられる。図10に示すように、内部状態値Int[NOURISHMENT]は、要素行動である「食べる」を発現した結果、対象物の大きさ(OBJECT_SIZE)が大きいほど、また対象物の種類(OBJECT_ID)がOBJECT_ID=0に対応する対象物M1より、OBJECT_ID=1に対応する対象物M2が、また、OBJECT_ID=1に対応する対象物M2より、OBJECT_ID=2に対応する対象物M3の方が満たされる量が大きいであろうと予想されている。
上述の予想満足度変化値dSat[i]及び予想満足度ESat[i]の算出には、内部状態値Int[i]と満足度Sat[i]との関係を表す関数を用いることができる。具体的には、図11に示すような関数が挙げられる。図11では、内部状態値Int[NOURISHMENT]の大きさを0乃至100とし、内部状態値Int[NOURISHMENT]が0から80近傍までは満足度Sat[NOURISHMENT]が0から増加し、それ以降は減少して内部状態値Int[NOURISHMENT]が100で再び満足度Sat[NOURISHMENT]が0になるような曲線L2を示している。
リリーシング値Relは、以上のようにして求められた予想満足度変化値dSat[i]及び予想満足度ESat[i]に基づいて、以下の式(2)のように求められる。ここで、WRel[i]、WdSatは重み係数である。
(c)行動価値バイアス
行動価値バイアスSEは、行動価値にバイアスをかける、すなわち行動価値を底上げするための要素であり、以下の式(3)のように、ステータスバイアス(Status Self Excitation value;SSE)とルーチンバイアス(Routine Self Excitation value;RSE)との和として表される。
行動価値バイアスSEは、行動価値にバイアスをかける、すなわち行動価値を底上げするための要素であり、以下の式(3)のように、ステータスバイアス(Status Self Excitation value;SSE)とルーチンバイアス(Routine Self Excitation value;RSE)との和として表される。
ステータスバイアスSSEは、あるスキーマが実行されているときに、そのスキーマの行動価値を底上げし、行動が容易に切り替わらないようにするものである。例えば、図12に示すように、実行中のスキーマAが時刻t1で終了したとき、その時刻ではスキーマBの行動価値が最も高いため、時刻t2から時刻t3まではスキーマBが実行されることになる。このスキーマBの実行中には、スキーマBの行動価値にステータスバイアスSSEが加えられる。これにより、スキーマBの要素行動が他のスキーマの要素行動によって妨げられるのを防止することができる。
一方、ルーチンバイアスRSEは、後述のように一連の行動をルーチンワークとして獲得した後、自身の直前の要素行動(トリガスキーマ)が実行された場合に、自身の行動価値を底上げするものである。このルーチンバイアスRSEについての詳細は後述する。
(d)デフォルト行動価値
デフォルト行動価値RLは、各スキーマについてのデフォルトの行動価値を表した要素である。この行動価値をスキーマ毎に異ならせることにより、各要素行動についての生まれつきの優先順位を表現することができる。また、ロボット装置毎にその優先順位を異ならせることにより、ロボット装置の個性を表現することができる。
デフォルト行動価値RLは、各スキーマについてのデフォルトの行動価値を表した要素である。この行動価値をスキーマ毎に異ならせることにより、各要素行動についての生まれつきの優先順位を表現することができる。また、ロボット装置毎にその優先順位を異ならせることにより、ロボット装置の個性を表現することができる。
ここで、あるスキーマの実行中に、上述のモチベーション値Motやリリーシング値Relが急激に低下したとき、そのスキーマの行動価値はデフォルト行動価値RLまで低下するが、この際、行動価値を急激に低下させるのではなく、所定の減衰パラメータに従って徐々に減少させることが好ましい。例えば、図13に示すように、実行中のスキーマAについて、時刻t1にモチベーション値Motやリリーシング値Relが急激に低下したとき、所定の減衰パラメータに従って行動価値を徐々に減少させ、その行動価値がスキーマBの行動価値よりも低くなりスキーマBが実行されて初めて、デフォルト行動価値RLまで急激に低下させることが好ましい。
このように、行動価値を徐々に減少させていくことによって、例えば次のような行動を実現することができる。ロボット装置1がボールを蹴る行動を実行していたときに、その行動を引き起こす内部状態である運動欲と、外部刺激であるボールが突然なくなったとする。このとき、上述の減衰メカニズムによって、ボールを蹴る行動の行動価値は徐々に減少するが、ロボット装置1は、他の行動の行動価値がボールを蹴る行動の行動価値よりも高くなるまで、ボールを捜し続けるなど、ボールを蹴る行動に関する一連の動作を行う。この間にボールが見つかれば、ボールを蹴る行動の行動価値は再び増加するため、その行動を続けることが可能になる。つまり、行動が突然切り替わるのではなく、行動を続けてみて、それでも駄目ならば諦める、といったことが実現可能になる。
(e)ランダムノイズ
ランダムノイズNoiseは、行動価値にランダムな値を付加するための要素である。この要素を導入することにより、行動価値にバリエーションを持たせることができる。例えば、図14に示すように、スキーマA、B、Cについての行動価値は、要素行動を実行しているときも実行していないときも常に変動している。
ランダムノイズNoiseは、行動価値にランダムな値を付加するための要素である。この要素を導入することにより、行動価値にバリエーションを持たせることができる。例えば、図14に示すように、スキーマA、B、Cについての行動価値は、要素行動を実行しているときも実行していないときも常に変動している。
なお、ランダムノイズの変動幅は任意に設定でき、例えば行動価値の大きさに比例させることができる。
(f)最終的な行動価値
上述したように、最終的な行動価値は、モチベーション値Mot、リリーシング値Rel、行動価値バイアスSE、デフォルト行動価値RL、ランダムノイズNoiseの各要素の重み付け和によって算出される。
上述したように、最終的な行動価値は、モチベーション値Mot、リリーシング値Rel、行動価値バイアスSE、デフォルト行動価値RL、ランダムノイズNoiseの各要素の重み付け和によって算出される。
最終的な行動価値を算出する前に、以下の式(4)に従ってモチベーション・リリーシング値MRが算出される。ここで、WMは重み係数である。
(2−2)熟考行動
次に、ロボット装置1の熟考行動について説明する。熟考行動とは、与えられた状況或いは人間からの命令により、推論やそれを実現するための計画を立てて行われる行動のことである。この熟考行動は、上述のように熟考行動階層101によって制御される。
次に、ロボット装置1の熟考行動について説明する。熟考行動とは、与えられた状況或いは人間からの命令により、推論やそれを実現するための計画を立てて行われる行動のことである。この熟考行動は、上述のように熟考行動階層101によって制御される。
例えば、ボールを蹴る行動を実行する場合、ロボット装置1は、ボールを見つけ、ボールに近付き、ボールを蹴るという各要素行動を順に実行するように計画を立て、この計画に従って各要素行動を順次実行する必要がある。しかしながら、状況依存行動階層102では、上述したように、外部刺激及び内部状態に基づいてスキーマ毎に行動価値を算出し、その行動価値に基づいて一又は複数のスキーマを選択するようにしているため、必ずしも計画通りの順序でスキーマが選択されるとは限らない。
そこで、熟考行動階層101は、このように特定の計画に従って所望の要素行動を実行させたい場合には、所望の一以上のスキーマに対してインテンショナルバイアス(Intentional Bias;IB)を与え、そのスキーマの行動価値を強制的に引き上げる。インテンショナルバイアスIBが与えられたスキーマは、以下の式(6)に示すように、自身で算出した行動価値ALとインテンショナルバイアスIBとの和を自身の行動価値ALTOTALとし、この行動価値ALTOTALを上位(親)のスキーマに対して返す。
インテンショナルバイアスIBによって行動価値を引き上げる例を図15(A)、(B)に示す。図15(A)は、スキーマA、B、Cの行動価値をこの順序に従って引き上げたときの行動価値の推移を示すグラフであり、図15(B)は、このとき各スキーマに与えられるインテンショナルバイアスIBの推移を示すグラフである。
図15(A)、(B)に示すように、熟考行動階層101は、時刻t1にスキーマAに対してインテンショナルバイアスIBを与えてスキーマAを実行させ、時刻t2にスキーマAが終了するまでインテンショナルバイアスIBを与え続ける。スキーマAが終了すると、次は時刻t3にスキーマBに対してインテンショナルバイアスIBを与えてスキーマBを実行させ、時刻t4にスキーマBが終了すると、次は時刻t5にスキーマCに対してインテンショナルバイアスIBを与えてスキーマCを実行させ、時刻t6にスキーマCが終了するまでインテンショナルバイアスIBを与え続ける。本明細書では、図15(B)のように、各スキーマについて要素行動の開始から終了までインテンショナルバイアスIBを与えて制御する制御形式をインテンション型と称する。
上述したインテンショナルバイアスIBは、以下の式(7)に従って算出される。この式(7)において、mは計画の実行強度を指定するパラメータであるインテンショナルマグニチュードを示し、例えば0乃至100の値を有する。熟考行動階層101は、このように、インテンショナルバイアスIBの大きさを正規化されたインテンショナルマグニチュードにより指定する。また、aiは要素行動iについての行動価値を示す。
ここで、式(7)に示すように、インテンショナルバイアスIBの大きさは全スキーマの行動価値の総和に比例するが、各スキーマは単位時間毎に行動価値を算出するため、インテンション型の制御を行っている場合には、熟考行動階層101は単位時間毎にインテンショナルバイアスIBを算出する。
例えば、図16に示すように、時刻t1にスキーマAに対してインテンショナルバイアスIBを与えてスキーマAを実行させていたところ、時刻t2にスキーマBの行動価値が一時的に上昇し、スキーマAの行動価値よりも大きくなったとしても、スキーマBの行動価値の上昇に伴い、熟考行動階層101が再計算したインテンショナルバイアスIBの値も上昇するため、時刻t3には再びスキーマAの行動価値の方が大きくなる。
なお、熟考行動階層101は、所望のスキーマに対してインテンショナルバイアスIBを与え、そのスキーマの元の行動価値を単純に引き上げているだけであるため、他のスキーマの行動価値がインテンショナルバイアスIBの加算後の当該スキーマの行動価値よりも大きい場合には、インテンショナルバイアスIBが意味を持たないこともあり得る。
例えば、図17に示すように、スキーマDのデフォルト行動価値RLが低い場合には、時刻t1にスキーマDに対してインテンショナルバイアスIBを与えたとしても、現在実行中のスキーマAよりも行動価値が低くなり、スキーマDが実行されない場合もあり得る。熟考行動階層101は、このような場合にもスキーマDに対してインテンショナルバイアスIBを与え続ける。その後、時刻t3にスキーマAが終了し、スキーマAの行動価値がスキーマDの行動価値よりも低くなると、スキーマDが実行される。但し、スキーマAの行動価値の低下に伴い、時刻t4に熟考行動階層101が再計算したインテンショナルバイアスIBの値が低下するため、スキーマDの行動価値もその分だけ低下する。
(2−3)ルーチンワークの獲得
ところで、同じ一連の行動を何度も繰り返し実行する場合、熟考行動階層101は、毎回その一連の行動の計画を立て、その計画に従って一連のスキーマに対してインテンショナルバイアスIBを与えることになる。しかしながら、計算負荷の軽減という観点からは、熟考行動階層101が毎回計画を立て、一連のスキーマに対してインテンショナルバイアスIBを与えるのではなく、状況依存行動階層102の各スキーマが算出する行動価値に基づいてスキーマを順に選択していった結果、その一連の行動が実行されることが好ましい。
ところで、同じ一連の行動を何度も繰り返し実行する場合、熟考行動階層101は、毎回その一連の行動の計画を立て、その計画に従って一連のスキーマに対してインテンショナルバイアスIBを与えることになる。しかしながら、計算負荷の軽減という観点からは、熟考行動階層101が毎回計画を立て、一連のスキーマに対してインテンショナルバイアスIBを与えるのではなく、状況依存行動階層102の各スキーマが算出する行動価値に基づいてスキーマを順に選択していった結果、その一連の行動が実行されることが好ましい。
そこで、本実施の形態では、上述したルーチンバイアスRSEを行動価値の算出に導入することにより、熟考行動階層101が計画を立てることなく、状況依存行動階層102のみで、繰り返し実行された一連の行動(ルーチンワーク)を実行可能としている。すなわち、上述したルーチンバイアスRSEは、インテンショナルバイアスIBの代わりとなるものである。各スキーマは、自身と特定のスキーマ(後述するトリガスキーマ)との組み合わせが学習されたものである場合、このトリガスキーマが実行されると、自身の行動価値にルーチンバイアスRSEを加える。この結果、トリガスキーマの次には自身が実行されることとなる。
ルーチンワークを獲得する過程の概要を図18に示す。以下、この図18の各ステップについて説明する。
先ずステップS1では、熟考行動階層101により一連の行動を計画し、実行する。すなわち、上述のように計画を立て、その計画に従って一連のスキーマに対してインテンショナルバイアスIBを与えることにより、一連の行動を実行する。
次にステップS2では、状況依存行動階層102がインテンショナルバイアスIBの与えられたスキーマを監視し、インテンションスキーマ履歴(Intentional Schema History;ISH)を作成する。このインテンションスキーマ履歴ISHは、インテンショナルバイアスIBの与えられたスキーマの順序と、そのときのインテンショナルバイアスIBの値とを含む。
続いてステップS3では、インテンションスキーマ履歴ISHに基づいてルーチンワークを獲得する。具体的には、インテンションスキーマ履歴ISHから実行されているスキーマとその直前に実行されたスキーマとの2つ組を抜き出す。この直前に実行されたスキーマをトリガスキーマと呼ぶ。各スキーマは、自身のトリガスキーマと、自身に与えられたインテンショナルバイアスIBとからなる候補獲得ルーチンリスト(Candidate Captured Routine List;CCRL)を作成する。そして、この候補獲得ルーチンリストCCRL内のトリガスキーマを所定の条件に基づいてルーチンバイアスRSEを与えるための獲得ルーチンリスト(Captured Routine List;CRL)に移すことにより、獲得ルーチンリストCRLを作成する。
ここで、トリガスキーマを候補獲得ルーチンリストCCRLから獲得ルーチンリストCRLに移す条件としては、例えば、
(a)各スキーマとトリガスキーマとの組み合わせが所定回数以上発生したこと
(b)各スキーマとトリガスキーマとの組み合わせが所定回数以上発生し、且つ、その発生確率が所定値以上であること
の何れかとすることができる。
(a)各スキーマとトリガスキーマとの組み合わせが所定回数以上発生したこと
(b)各スキーマとトリガスキーマとの組み合わせが所定回数以上発生し、且つ、その発生確率が所定値以上であること
の何れかとすることができる。
また、ルーチンバイアスRSEの加え方としては、例えば、
(c)トリガスキーマが実行されたときに、過去に与えられたインテンショナルバイアスIBの平均値IBaveを加える
(d)トリガスキーマが実行されたときに、過去に与えられたインテンショナルバイアスIBの平均値IBaveを、当該スキーマの要素行動とトリガスキーマの要素行動との組み合わせの発生確率でスケーリングした値(インテンショナルバイアスIBの期待値)を加える
(e)トリガスキーマが実行されたときに、過去に与えられたインテンショナルバイアスIBの平均値IBaveを、当該スキーマとトリガスキーマとの組み合わせの発生確率に従って確率論的に加える
の何れかとすることができる。
(c)トリガスキーマが実行されたときに、過去に与えられたインテンショナルバイアスIBの平均値IBaveを加える
(d)トリガスキーマが実行されたときに、過去に与えられたインテンショナルバイアスIBの平均値IBaveを、当該スキーマの要素行動とトリガスキーマの要素行動との組み合わせの発生確率でスケーリングした値(インテンショナルバイアスIBの期待値)を加える
(e)トリガスキーマが実行されたときに、過去に与えられたインテンショナルバイアスIBの平均値IBaveを、当該スキーマとトリガスキーマとの組み合わせの発生確率に従って確率論的に加える
の何れかとすることができる。
最後にステップS4では、一連の行動をルーチンワークとして実行する。すなわち、各スキーマは、自身のトリガスキーマが実行されると、自身の行動価値にルーチンバイアスRSEを加え、実行準備する。このようにルーチンバイアスRSEを加えることにより、当該スキーマの行動価値は他のスキーマよりも大きくなるため、トリガスキーマが終了すると、次はルーチンバイアスRSEを加えたスキーマが実行されることになる。
なお、最初のスキーマにはトリガスキーマが存在しないが、この最初のスキーマに対してインテンショナルバイアスIBを一瞬だけ与えることにより、そのスキーマの行動価値を一瞬だけ引き上げればよい。一瞬だけ行動価値を引き上げることによりそのスキーマが選択され、実行されると、最初のスキーマの行動価値にはステータスバイアスSSEが加えられ、行動価値が引き上げられるため、その最初のスキーマは、他のスキーマによって妨げられることなく自身の要素行動を実行することができる。
ルーチンバイアスRSEにより行動価値を引き上げる例を図19(A)、(B)に示す。図19(A)は、スキーマA、B、Cの要素行動をこの順序でルーチンワークとして獲得したときの行動価値の推移を示すグラフである。すなわち、スキーマBのトリガスキーマはスキーマAであり、スキーマCのトリガスキーマはスキーマBである。また、図19(B)は、このとき各スキーマに与えられるインテンショナルバイアスIBの推移を示すグラフである。
図19(A)、(B)に示すように、熟考行動階層101は、時刻t1にスキーマAに対してインテンショナルバイアスIBを一瞬だけ与えてスキーマAを実行させる。スキーマAが実行されると、スキーマAがトリガスキーマとなるスキーマBは、時刻t2に行動価値にルーチンバイアスRSEを加える。時刻t3にスキーマAが終了すると、その時点ではルーチンバイアスRSEの加えられたスキーマBの行動価値が最も大きいため、時刻t4にスキーマBが実行され、スキーマBの行動価値にステータスバイアスSSEが加えられる。同様に、時刻t4にスキーマBが実行されると、スキーマBがトリガスキーマとなるスキーマCは、時刻t5に行動価値にルーチンバイアスRSEを加える。時刻t6にスキーマBが終了すると、その時点ではルーチンバイアスRSEの加えられたスキーマCの行動価値が最も大きいため、時刻t7にスキーマCが実行され、時刻t8にスキーマCが終了するまで、スキーマCの行動価値にステータスバイアスSSEが加えられる。本明細書では、図19(B)のように、最初のスキーマの開始時のみインテンショナルバイアスIBを一瞬だけ与えて制御する制御形式をアテンション型と称し、このとき一瞬だけ与えるインテンショナルバイアスIBのことを特にアテンショナルトリガと称する。
なお、各スキーマは、トリガスキーマが実行されたときに自身の行動価値にルーチンバイアスRSEを加え、自身の行動価値を単純に引き上げているだけであるため、自身のデフォルト行動価値RLが低い場合には、ルーチンバイアスRSEを加えたとしても、他のスキーマの行動価値より低くなることもあり得る。
ここで、熟考行動階層101は、状況依存行動階層102がルーチンワークを獲得したことを知らないため、同じ一連の行動を実行させたいときに、一連のスキーマに対してインテンショナルバイアスIBを与えてしまう虞がある。そこで、各スキーマは、自身の行動価値にルーチンバイアスRSEを加えた場合には、そのルーチンバイアスRSEを熟考行動階層101に通知するものとする。このルーチンバイアスRSEが通知されると、熟考行動階層101は、その一連のスキーマに対してインテンショナルバイアスIBを与えることを停止する。なお、一連の行動の最初のスキーマはトリガスキーマを有さず、自身の行動価値にルーチンバイアスRSEを加えないため、熟考行動階層101は、この最初のスキーマに対してはインテンション型の制御をしてしまうことになるが、この一連の行動を記憶しておくことで、次回以降はアテンション型の制御を行うことができる。
(2−4)インテンション型とアテンション型との切り替え
次に、ロボット装置1におけるインテンション型の制御とアテンション型の制御との切り替えについて、熟考行動階層101の内部構成を中心としながら説明する。この熟考行動階層101の内部構成を図20に示す。
次に、ロボット装置1におけるインテンション型の制御とアテンション型の制御との切り替えについて、熟考行動階層101の内部構成を中心としながら説明する。この熟考行動階層101の内部構成を図20に示す。
熟考行動階層101は、所定の計画に基づく行動を実行するために、知識ベース161、計画部162、及び計画表現変換部163をサブモジュールとして備えている。
知識ベース161には、外部環境に関する情報、ロボット装置1の状態、ロボット装置1がなし遂げるべき目標、ロボット装置1が取り得る要素行動及びその効果など、ロボット装置1が行動を計画するために必要な情報が格納される。この知識ベース161内の情報は、ロボット装置1が行動した結果生じた変化に応じて書き換えられることもある。
計画部162は、知識ベース161に格納された情報を利用して、所定の目標を達成するための一連の行動を計画し、抽象内部表現(Abstract Plan Representation;APR)として計画表現変換部163に供給する。このように、後段に計画表現変換部163が存在するため、この計画部162では、例えばSHOP2など、任意の計画アルゴリズムを用いることができる。
計画表現変換部163は、計画部162から供給された抽象内部表現を実行部165が解釈可能な内部計画表現(Internal Plan Representation;IPR)に変換する。この内部計画表現は、実行すべき行動ステートメントが順番に記述されたものである。
各行動ステートメントは、<s a(b) m i>という形式で表される。ここで、sは行動ステートメントが有効になるための条件を示す。この条件としては、例えば短期記憶部92に所定の外部刺激又は内部状態の情報が保持されていること、ロボット装置1の姿勢、時間の制約、バッテリ残量の制約、計画の進捗状況等が挙げられる。複数の条件をANDやORを用いて記述することも可能である。また、aは実行すべきスキーマ(要素行動)を示し、bはスキーマaに渡すべきパラメータを示す。また、iはインテンション型の制御を行うかアテンション型の制御を行うかのフラグ(アテンションフラグ)を示す。
ここで、アテンション型の制御を行うのは、実行すべき行動計画がルーチンワークとして獲得されている場合であり、それ以外の場合にはインテンション型の制御を行う。例えば、スキーマA→スキーマB、或いはスキーマD→スキーマEというようにルーチンワークが獲得されている場合、獲得されたルーチンワークを知識ベース161に格納しておくことで、スキーマA或いはスキーマDに対してアテンション型の制御を行うことができる。アテンション型の制御を行ってスキーマA、Dが実行されると、スキーマB、Eは自身の行動価値にルーチンバイアスRSEを加え、スキーマA、Dの終了後に実行される。
また、熟考行動階層101は、短期記憶部92及び長期記憶部93に保持されている記憶表象を実行部165が解釈可能な表現に変換する表象変換部164を備えている。この表象変換部164は、内部状態管理部91で内部状態が更新されると、関連するデータを実行部165内の表象監視部166に供給する。また、表象変換部164は、短期記憶部92に外部刺激が保持されると、それが何であるのかを判別すると共に、その外部刺激のターゲットIDを判断する。表象変換宇164で変換された情報は、実行部165内の表象監視部166を介して、知識ベース161に格納される。
熟考行動階層101における行動計画は、実行部165及びインテンショナル・バス167によって最終的に制御される。
実行部165は、複数存在する行動計画のうち、実行すべき行動計画を選択すると共に、その実行の制御を行う。この際、実行部165は、内部計画表現に含まれるアテンションフラグを参照し、インテンション型の制御を行うかアテンション型の制御を行うかを切り替える。ここで、アテンション型の制御を行うのは、その行動計画が上述のようにルーチンワークとして獲得されている場合であり、それ以外の場合にはインテンション型の制御を行う。
実行部165においてインテンション型の制御とアテンション型の制御とを切り替える手順を図21のフローチャートに示す。
先ずステップS11において、実行部165は、実行していない行動計画のうち、初期条件を満たすものを選択し、ステップS12において、選択した行動計画の最初の行動ステートメントを選択する。
次にステップS13において、その行動ステートメントのアテンションフラグを確認し、アテンションフラグがFalseであればステップS14においてインテンション型の制御を行う。すなわち、その行動ステートメントで実行すべきスキーマの開始から終了までインテンショナルバイアスIBを与えるよう制御する。一方、アテンションフラグがTrueであればステップS15においてアテンション型の制御を行う。すなわち、その行動ステートメントで実行すべきスキーマの開始時にアテンショナルトリガを与えるよう制御する。なお、実行部165は実際にはインテンションマグニチュードとアテンションフラグとをインテンショナル・バス167に通知するのみであり、インテンショナル・バス167がインテンショナルバイアスIBを算出して対象となるスキーマに与える。
続いてステップS16において、全ての行動ステートメントが終了したか否かを判別し、終了していなければステップS17において次の行動ステートメントを選択してステップS13に戻る。一方、全ての行動ステートメントが終了していれば処理を終了する。
インテンショナル・バス167は、熟考行動階層101と状況依存行動階層102とを繋ぐインターフェースである。このインテンショナル・バス167には、上述のように実行部165からインテンションマグニチュードとアテンションフラグとが通知される以外に、状況依存行動階層102の各スキーマから、各スキーマの行動価値、「実行中」又は「停止中」の状態を表す情報、ルーチンバイアスRSEが通知される。インテンショナル・バス167は、このように実行部165や状況依存行動階層102の各スキーマから通知された情報を、実行部165が参照可能なように例えば図22に示すような形式で保持する。
実行部165や状況依存行動階層102の各スキーマとの情報の受け渡しについて、図23を用いて説明する。図23に示すように、スキーマ「ダンスをする(Dance)」からは、自身の行動価値、状態を表す情報、ルーチンバイアスRSEが通知される。スキーマ「ダンスをする(Dance)」が実行される前は、状態を表す情報は「停止中」となっており、完了フラグはFalseである。一方、実行部165からは、インテンションマグニチュードとアテンションフラグとが通知される。インテンショナル・バス167は、各スキーマから通知された行動価値とこのインテンションマグニチュードとから、上述した式(7)のようにインテンショナルバイアスIBを算出するが、図23ではアテンションフラグがFalseであるため、インテンショナル・バス167は、スキーマ「ダンスをする(Dance)」の実行開始から実行終了までインテンショナルバイアスIBを与え続ける。インテンショナルバイアスIBを与えることによりスキーマ「ダンスをする(Dance)」が実行されると、スキーマ「ダンスをする(Dance)」からは「実行中」の状態を表す情報が通知される。この時点では完了フラグはFalseであるが、スキーマ「ダンスをする(Dance)」が終了し、「停止中」を表す情報が通知されると、インテンショナル・バス167は、完了フラグをTrueに設定する。
(3)行動制御に関する具体的な実験例
最後に、ロボット装置1の行動制御に関する具体的な実験例について説明する。この実験例では、状況依存構造階層102に図24のようなスキーマのツリー構造が構成されているものとする。このツリー構造は、図24に示すように、ルートスキーマ「Root」の下位の階層に、「ベルを見つける(FindBell)」、「ベルを鳴らす(RingBell)」、「眠る(Sleep)」、「教室に行く(GoToClass)」、「サッカーをする(Soccer)」、「歌う(Sing)」というスキーマが配設されたものである。
最後に、ロボット装置1の行動制御に関する具体的な実験例について説明する。この実験例では、状況依存構造階層102に図24のようなスキーマのツリー構造が構成されているものとする。このツリー構造は、図24に示すように、ルートスキーマ「Root」の下位の階層に、「ベルを見つける(FindBell)」、「ベルを鳴らす(RingBell)」、「眠る(Sleep)」、「教室に行く(GoToClass)」、「サッカーをする(Soccer)」、「歌う(Sing)」というスキーマが配設されたものである。
以下に示す第1乃至第4の実験では、「ベルを見つける(FindBell)」、「ベルを鳴らす(RingBell)」、「教室に行く(GoToClass)」、「歌う(Sing)」の各要素行動からなる一連の行動をルーチンワークとして獲得した例について説明する。
なお、この第1乃至第4の実験では、各スキーマは、自身とトリガスキーマとの組み合わせが所定の回数以上、且つ所定の確率以上発生した場合に、トリガスキーマを候補獲得ルーチンリストCCRLから獲得ルーチンリストCRLに移した。
(3−1)第1の実験
先ず、第1の実験について説明する。第1の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとを図25に示す。第1の実験では、「教室に行く(GoToClass)」、「ベルを見つける(FindBell)」、「ベルを鳴らす(RingBell)」、「歌う(Sing)」という計画のみを100%の割合で実行した。熟考行動階層101は、この計画に従って各スキーマに対してインテンショナルバイアスIBを与えた。
先ず、第1の実験について説明する。第1の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとを図25に示す。第1の実験では、「教室に行く(GoToClass)」、「ベルを見つける(FindBell)」、「ベルを鳴らす(RingBell)」、「歌う(Sing)」という計画のみを100%の割合で実行した。熟考行動階層101は、この計画に従って各スキーマに対してインテンショナルバイアスIBを与えた。
各スキーマの獲得ルーチンリストCRLには、トリガスキーマ、自身に与えられたインテンショナルバイアスIBの平均値IBave、トリガスキーマの発生割合が記述されている。例えば、スキーマ「ベルを見つける(FindBell)」の獲得ルーチンリストCRLでは、スキーマ「教室に行く(GoToClass)」がトリガスキーマとなっている。括弧内の“100”という数字は、スキーマ「ベルを見つける(FindBell)」に与えられたインテンショナルバイアスIBの平均値IBaveを示している。また、“20/20”という数字は、計画を実行した20回のうち、スキーマ「教室に行く(GoToClass)」がトリガスキーマであった回数が20回であることを示している。スキーマ「教室に行く(GoToClass)」は、常に最初に実行されるため、トリガスキーマは存在しない。
ここで、インテンション型の制御により計画を実行させる場合の行動価値の推移を図26(A)に示す。図26(A)に示すように、ロボット装置1は、スキーマ「眠る(Sleep)」を実行していたが、熟考行動階層101により中断される。熟考行動階層101は、一連のスキーマに対して順にインテンショナルバイアスIBを与えることにより、計画を実行する。行動価値の推移のグラフは、図15(A)と同様の形状となっている。
一方、第1の実験におけるアテンション型の制御により計画を実行させる場合の行動価値の推移を図26(B)に示す。この第1の実験では、過去に与えられたインテンショナルバイアスIBの期待値をルーチンバイアスRSEとした。図26(B)に示すように、ロボット装置1は、スキーマ「眠る(Sleep)」を実行していたが、熟考行動階層101により中断される。熟考行動階層101は、スキーマ「教室に行く(GoToClass)」に対してアテンショナルトリガを与えることにより、計画を開始する。スキーマ「教室に行く(GoToClass)」が実行されると、その次のスキーマ「ベルを見つける(FindBell)」の行動価値にルーチンバイアスRSEが加えられ、実行準備中となる。同様にして、一連の行動が実行される。行動価値の推移のグラフは、図19(A)と同様の形状となっている。
(3−2)第2の実験
次に、第2の実験について説明する。第2の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとを図27に示す。第2の実験では、「教室に行く(GoToClass)」、「ベルを見つける(FindBell)」、「ベルを鳴らす(RingBell)」、「歌う(Sing)」という計画を50%の割合で実行すると共に、「教室に行く(GoToClass)」、「歌う(Sing)」、「ベルを見つける(FindBell)」という計画を50%の割合で実行した。熟考行動階層101は、この計画に従って各スキーマに対してインテンショナルバイアスIBを与えた。
次に、第2の実験について説明する。第2の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとを図27に示す。第2の実験では、「教室に行く(GoToClass)」、「ベルを見つける(FindBell)」、「ベルを鳴らす(RingBell)」、「歌う(Sing)」という計画を50%の割合で実行すると共に、「教室に行く(GoToClass)」、「歌う(Sing)」、「ベルを見つける(FindBell)」という計画を50%の割合で実行した。熟考行動階層101は、この計画に従って各スキーマに対してインテンショナルバイアスIBを与えた。
この実験では2種類の計画を実行したため、スキーマ「ベルを見つける(FindBell)」及びスキーマ「歌う(Sing)」は、2種類のトリガスキーマを有している。一方、2種類の計画の何れにおいても、スキーマ「ベルを鳴らす(RingBell)」の直前にはスキーマ「ベルを見つける(FindBell)」が実行されるため、スキーマ「ベルを鳴らす(RingBell)」のトリガスキーマはスキーマ「ベルを見つける(FindBell)」のみである。
第2の実験における行動価値の推移を図28に示す。この第2の実験では、過去に与えられたインテンショナルバイアスIBの期待値をルーチンバイアスRSEとした。図28(A)は、スキーマ「ベルを見つける(FindBell)」とスキーマ「歌う(Sing)」とのデフォルト行動価値RLが略々同じ場合の行動価値の推移を示すものであり、図28(B)は、スキーマ「ベルを見つける(FindBell)」のデフォルト行動価値RLがスキーマ「歌う(Sing)」のデフォルト行動価値RLよりも小さい場合の行動価値の推移を示すものである。
スキーマ「ベルを見つける(FindBell)」とスキーマ「歌う(Sing)」とのデフォルト行動価値RLが略々同じ場合、図28(A)に示すように、スキーマ「教室に行く(GoToClass)」が実行されると、スキーマ「ベルを見つける(FindBell)」及びスキーマ「歌う(Sing)」の行動価値にルーチンバイアスRSEが加えられ、実行準備中となる。但し、両者のデフォルト行動価値RLが略々同じであり、また、両者の発生割合が50%同士で等しく、両者に与えられるルーチンバイアスRSEも略々同じとなるため、両者の行動価値の大小はランダムノイズNoiseによって決定される。スキーマ「教室に行く(GoToClass)」の次に何れのスキーマが実行されるかは、スキーマ「教室に行く(GoToClass)」が終了したときの行動価値の大小による。図28(A)の場合、スキーマ「教室に行く(GoToClass)」が終了したときの行動価値は、スキーマ「歌う(Sing)」よりもスキーマ「ベルを見つける(FindBell)」の方が大きかったため、スキーマ「教室に行く(GoToClass)」の次にはスキーマ「ベルを見つける(FindBell)」が実行されている。その後、スキーマ「ベルを鳴らす(RingBell)」、スキーマ「歌う(Sing)」が順に実行され、計画を終了する。
一方、スキーマ「ベルを見つける(FindBell)」のデフォルト行動価値RLがスキーマ「歌う(Sing)」のデフォルト行動価値RLよりも小さい場合、図28(B)に示すように、両者に与えられるルーチンバイアスRSEは略々同じであるものの、両者のデフォルト行動価値RLが異なるため、スキーマ「ベルを見つける(FindBell」の行動価値よりもスキーマ「歌う(Sing)」の行動価値の方が大きくなり、スキーマ「教室に行く(GoToClass)」の次にはスキーマ「歌う(Sing)」が実行されている。その後、スキーマ「ベルを見つける(FindBell」、スキーマ「ベルを鳴らす(RingBell)」が順に実行され、計画を終了する。
(3−3)第3の実験
次に、第3の実験について説明する。第3の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとを図29に示す。第3の実験では、「教室に行く(GoToClass)」、「ベルを見つける(FindBell)」、「ベルを鳴らす(RingBell)」、「歌う(Sing)」という計画を75%の割合で実行すると共に、「教室に行く(GoToClass)」、「歌う(Sing)」、「ベルを見つける(FindBell)」という計画を25%の割合で実行した。熟考行動階層101は、この計画に従って各スキーマに対してインテンショナルバイアスIBを与えた。
次に、第3の実験について説明する。第3の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとを図29に示す。第3の実験では、「教室に行く(GoToClass)」、「ベルを見つける(FindBell)」、「ベルを鳴らす(RingBell)」、「歌う(Sing)」という計画を75%の割合で実行すると共に、「教室に行く(GoToClass)」、「歌う(Sing)」、「ベルを見つける(FindBell)」という計画を25%の割合で実行した。熟考行動階層101は、この計画に従って各スキーマに対してインテンショナルバイアスIBを与えた。
この実験でも2種類の計画を実行したため、スキーマ「ベルを見つける(FindBell)」及びスキーマ「歌う(Sing)」は、2種類のトリガスキーマを有している。一方、2種類の計画の何れにおいても、スキーマ「ベルを鳴らす(RingBell)」の直前にはスキーマ「ベルを見つける(FindBell)」が実行されるため、スキーマ「ベルを鳴らす(RingBell)」のトリガスキーマはスキーマ「ベルを見つける(FindBell)」のみである。
第3の実験における行動価値の推移を図30に示す。この第3の実験では、過去に与えられたインテンショナルバイアスIBの期待値をルーチンバイアスRSEとした。図30(A)は、スキーマ「ベルを見つける(FindBell)」とスキーマ「歌う(Sing)」とのデフォルト行動価値RLが略々同じ場合の行動価値の推移を示すものであり、図30(B)は、スキーマ「ベルを見つける(FindBell)」のデフォルト行動価値RLがスキーマ「歌う(Sing)」のデフォルト行動価値RLよりも小さい場合の行動価値の推移を示すものである。
スキーマ「ベルを見つける(FindBell)」とスキーマ「歌う(Sing)」とのデフォルト行動価値RLが略々同じ場合、図30(A)に示すように、スキーマ「教室に行く(GoToClass)」が実行されると、スキーマ「ベルを見つける(FindBell)」及びスキーマ「歌う(Sing)」の行動価値にルーチンバイアスRSEが加えられ、実行準備中となる。この際、両者に与えられるルーチンバイアスRSEは、過去に与えられたインテンショナルバイアスIBの期待値である。すなわち、第3の実験では、スキーマ「教室に行く(GoToClass)」の次にスキーマ「ベルを見つける(FindBell)」が実行される割合が75%であり、スキーマ「歌う(Sing)」が実行される割合が25%であるため、両者に与えられるルーチンバイアスRSEもその割合を反映した値となる。この結果、スキーマ「歌う(Sing)」の行動価値よりもスキーマ「ベルを見つける(FindBell)」の行動価値の方が大きくなるため、スキーマ「教室に行く(GoToClass)」の次にはスキーマ「ベルを見つける(FindBell)」が実行されている。その後、スキーマ「ベルを鳴らす(RingBell)」、スキーマ「歌う(Sing)」が順に実行され、計画を終了する。
一方、スキーマ「ベルを見つける(FindBell)」のデフォルト行動価値RLがスキーマ「歌う(Sing)」のデフォルト行動価値RLよりも小さい場合、図30(B)に示すように、スキーマ「ベルを見つける(FindBell)」に与えられるルーチンバイアスRSEは、スキーマ「歌う(Sing)」に与えられるルーチンバイアスRSEよりも大きいものの、両者のデフォルト行動価値RLが異なるため、スキーマ「ベルを見つける(FindBell)」の行動価値よりもスキーマ「歌う(Sing)」の行動価値の方が大きくなり、スキーマ「教室に行く(GoToClass)」の次にはスキーマ「歌う(Sing)」が実行されている。その後、スキーマ「ベルを見つける(FindBell」、スキーマ「ベルを鳴らす(RingBell)」が順に実行され、計画を終了する。
(3−4)第4の実験
最後に、第4の実験について説明する。第4の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとは、上述の第3の実験と同じである。
最後に、第4の実験について説明する。第4の実験で実行した計画及びその割合と、各スキーマが作成した獲得ルーチンリストCRLとは、上述の第3の実験と同じである。
第4の実験における行動価値の推移を図31に示す。この第4の実験では、ルーチンバイアスRSEを加えるスキーマを確率論に基づいて決定した。図31に示すように、スキーマ「教室に行く(GoToClass)」が実行されると、スキーマ「ベルを見つける(FindBell)」又はスキーマ「歌う(Sing)」の行動価値にルーチンバイアスRSEが加えられ、実行準備中となる。この際、何れのスキーマにルーチンバイアスRSEが加えられるかは、確率論に基づいて決定される。すなわち、第3の実験では、スキーマ「教室に行く(GoToClass)」の次にスキーマ「ベルを見つける(FindBell)」が実行される割合が75%であり、スキーマ「歌う(Sing)」が実行される割合が25%であるため、75%の確率でスキーマ「ベルを見つける(FindBell)」に対してルーチンバイアスRSEが加えられ、25%の確率でスキーマ「歌う(Sing)」に対してルーチンバイアスRSEが加えられる。なお、各スキーマの行動価値は単位時間毎に算出されるため、ルーチンバイアスRSEが加えられるスキーマも単位時間毎に決定される。図31の場合、スキーマ「教室に行く(GoToClass)」が終了したときの行動価値は、スキーマ「歌う(Sing)」よりもスキーマ「ベルを見つける(FindBell)」の方が大きかったため、スキーマ「教室に行く(GoToClass)」の次にはスキーマ「ベルを見つける(FindBell)」が実行されている。その後、スキーマ「ベルを鳴らす(RingBell)」、スキーマ「歌う(Sing)」が順に実行され、計画を終了する。
以上、本発明を実施するための最良の形態について説明したが、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
1 ロボット装置、 10 行動制御システム、 20 制御ユニット、 40 入出力部、 50 駆動部、 80 外部刺激認識部、 91 内部状態管理部、 92 短期記憶部、 93 長期記憶部、 101 熟考行動階層、 102 状況依存行動階層、 161 知識ベース、 162 計画部、 163 計画表現変換部、 164 表象変換部、 165 実行部、 166 表象監視部、 167 インテンショナル・バス
Claims (5)
- 外部刺激及び/又は内部状態に応じて自律的に行動可能なロボット装置において、
それぞれ所定の要素行動が記述され、外部刺激及び/又は内部状態に応じて自身の要素行動の実行優先度を表す行動価値を算出する複数の行動記述モジュールと、
各行動記述モジュールの実行優先度の大きさに基づいて一又は複数の行動記述モジュールを選択し、選択した行動記述モジュールに記述された要素行動を発現させる行動選択手段と、
所定の計画に基づく一又は複数の行動記述モジュールに含まれる各行動記述モジュールの行動価値に対して、各行動記述モジュールに記述された要素行動の開始時から終了時までの間、第1のバイアス値を加える行動制御手段とを備え、
上記行動制御手段は、複数の行動記述モジュールからなる行動計画が学習されている場合、最初の行動記述モジュールに記述された要素行動の開始時のみ、当該最初の行動記述モジュールの行動価値に対して上記第1のバイアス値を加える
ことを特徴とするロボット装置。 - 上記行動計画に含まれる各行動記述モジュールは、自身の直前の要素行動が発現されると、自身の行動価値に第2のバイアス値を加える
ことを特徴とする請求項1記載のロボット装置。 - 各行動記述モジュールは、自身に記述された要素行動が発現されると、自身の行動価値に第3のバイアス値を加える
ことを特徴とする請求項1記載のロボット装置。 - 上記行動制御手段は、上記複数の行動記述モジュールの行動価値の総和と所定のパラメータとに基づいて上記第1のバイアス値を算出する
ことを特徴とする請求項1記載のロボット装置。 - 外部刺激及び/又は内部状態に応じて自律的に行動可能なロボット装置の行動制御方法において、
それぞれ所定の要素行動が記述された複数の行動記述モジュールが、外部刺激及び/又は内部状態に応じて自身の要素行動の実行優先度を表す行動価値を算出する行動価値算出工程と、
所定の計画に基づく一又は複数の行動記述モジュールに含まれる各行動記述モジュールの行動価値に対して、各行動記述モジュールに記述された要素行動の開始時から終了時までの間、第1のバイアス値を加える行動価値制御工程と、
上記複数の行動記述モジュールから、行動価値の大きさに基づいて一又は複数の行動記述モジュールを選択する行動選択工程と、
上記行動選択工程にて選択された行動記述モジュールに記述された要素行動を発現する行動発現工程とを有し、
上記行動価値制御工程では、複数の行動記述モジュールからなる行動計画が学習されている場合、最初の行動記述モジュールに記述された要素行動の開始時のみ、当該最初の行動記述モジュールの行動価値に対して上記第1のバイアス値を加える
ことを特徴とするロボット装置の行動制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005318852A JP2007125631A (ja) | 2005-11-01 | 2005-11-01 | ロボット装置及びその行動制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005318852A JP2007125631A (ja) | 2005-11-01 | 2005-11-01 | ロボット装置及びその行動制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007125631A true JP2007125631A (ja) | 2007-05-24 |
Family
ID=38148723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005318852A Withdrawn JP2007125631A (ja) | 2005-11-01 | 2005-11-01 | ロボット装置及びその行動制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007125631A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010160669A (ja) * | 2009-01-08 | 2010-07-22 | Linfops Kk | ロボットの制御方法 |
WO2011016280A1 (ja) * | 2009-08-03 | 2011-02-10 | 本田技研工業株式会社 | ロボットおよび制御システム |
JP2011031349A (ja) * | 2009-08-03 | 2011-02-17 | Honda Motor Co Ltd | ロボットおよび制御システム |
JP2011031350A (ja) * | 2009-08-03 | 2011-02-17 | Honda Motor Co Ltd | ロボットおよび制御システム |
JP2011051088A (ja) * | 2009-08-03 | 2011-03-17 | Honda Motor Co Ltd | ロボットおよび制御システム |
JP2011201002A (ja) * | 2010-03-26 | 2011-10-13 | Sony Corp | ロボット装置、ロボット装置の遠隔制御方法及びプログラム |
JP2011240475A (ja) * | 2010-04-22 | 2011-12-01 | Honda Motor Co Ltd | ロボットおよび制御システム |
JP2014508660A (ja) * | 2011-03-21 | 2014-04-10 | 本田技研工業株式会社 | 人型ロボットの転倒損傷低減制御法 |
CN109214887A (zh) * | 2018-08-16 | 2019-01-15 | 榆林学院 | 一种远程购物系统及方法 |
-
2005
- 2005-11-01 JP JP2005318852A patent/JP2007125631A/ja not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010160669A (ja) * | 2009-01-08 | 2010-07-22 | Linfops Kk | ロボットの制御方法 |
WO2011016280A1 (ja) * | 2009-08-03 | 2011-02-10 | 本田技研工業株式会社 | ロボットおよび制御システム |
JP2011031349A (ja) * | 2009-08-03 | 2011-02-17 | Honda Motor Co Ltd | ロボットおよび制御システム |
JP2011031350A (ja) * | 2009-08-03 | 2011-02-17 | Honda Motor Co Ltd | ロボットおよび制御システム |
JP2011051088A (ja) * | 2009-08-03 | 2011-03-17 | Honda Motor Co Ltd | ロボットおよび制御システム |
US8849452B2 (en) | 2009-08-03 | 2014-09-30 | Honda Motor Co., Ltd. | Robot and control system |
JP2011201002A (ja) * | 2010-03-26 | 2011-10-13 | Sony Corp | ロボット装置、ロボット装置の遠隔制御方法及びプログラム |
US10105843B2 (en) | 2010-03-26 | 2018-10-23 | Sony Corporation | Robot device, remote control method of robot device, and program |
JP2011240475A (ja) * | 2010-04-22 | 2011-12-01 | Honda Motor Co Ltd | ロボットおよび制御システム |
JP2014508660A (ja) * | 2011-03-21 | 2014-04-10 | 本田技研工業株式会社 | 人型ロボットの転倒損傷低減制御法 |
CN109214887A (zh) * | 2018-08-16 | 2019-01-15 | 榆林学院 | 一种远程购物系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7363108B2 (en) | Robot and control method for controlling robot expressions | |
US7515992B2 (en) | Robot apparatus and emotion representing method therefor | |
US8145492B2 (en) | Robot behavior control system and method, and robot apparatus | |
CN100364731C (zh) | 机器人装置、其行为控制方法及程序 | |
JP2007125631A (ja) | ロボット装置及びその行動制御方法 | |
KR101137205B1 (ko) | 로봇의 행동 제어 시스템 및 행동 제어 방법, 및 로봇 장치 | |
JP4244812B2 (ja) | 行動制御システム及びロボット装置の行動制御方法 | |
JP2006110707A (ja) | ロボット装置 | |
JP3558222B2 (ja) | ロボットの行動制御システム及び行動制御方法、並びにロボット装置 | |
JP2004283958A (ja) | ロボット装置、その行動制御方法及びプログラム | |
JP4296736B2 (ja) | ロボット装置 | |
JP2007125629A (ja) | ロボット装置及びその行動制御方法 | |
JP2003111981A (ja) | ロボット装置及びその制御方法、ロボットのための情報提供システム及び情報提供方法、並びに記憶媒体 | |
JP4449372B2 (ja) | ロボット装置及びその行動制御方法 | |
JP4552465B2 (ja) | 情報処理装置、ロボット装置の行動制御方法、ロボット装置及びコンピュータ・プログラム | |
JP4147960B2 (ja) | ロボット装置、及びロボット装置の動作制御方法 | |
JP2007125630A (ja) | ロボット装置及びその行動制御方法 | |
JP2004283957A (ja) | ロボット装置、その制御方法、及びプログラム | |
JP4649806B2 (ja) | ロボット装置及びロボット装置の衝撃吸収方法 | |
JP2005321954A (ja) | ロボット装置、情報処理システム及び情報処理方法、並びにコンピュータ・プログラム | |
JP2005193330A (ja) | ロボット装置及びその情動表出方法 | |
JP2004283960A (ja) | ロボット装置、その行動制御方法、及びプログラム | |
JP2004209599A (ja) | ロボット装置、ロボット装置の行動学習方法、ロボット装置の行動生成方法 | |
JP2003266352A (ja) | ロボット装置及びロボット装置の制御方法 | |
JP2004291147A (ja) | ロボットの行動制御システム |
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: 20090106 |