(57)【要約】【課題】　複数の行動モジュールにより複雑な行動を実現すると共にユニットの組み換えを容易とする。【解決手段】　状況依存行動階層（SBL）５８は、複数のスキーマ（行動モジュール）が階層的に連結されたツリー構造として構成され、各スキーマが独自の行動を実行できるように独立性が高められている。この際、親スキーマは、子供スキーマに対して独自に行動を実行させるORタイプパターン、複数の子供スキーマに対して同時に行動を実行させるANDタイプパターン、或いは複数の子供スキーマの行動順序を示すSEQUENCEタイプパターンのように、子供スキーマの接続パターンを規定することができ、発現する行動パターンを変化させることができる。また、スキーマを書き換えることなく新たな子供スキーマを追加することができ、これによりロボット装置に新たな動作或いは機能を追加することができる。【選択図】　図１７
2004114285.tif 000002
【特許請求の範囲】
【請求項１】
　可動部を有するロボット装置において、
　上記可動部を制御する可動部制御手段と、
　上記ロボット装置の機体動作を記述する複数の行動モジュールが木構造形式に構成された行動決定手段とを備え、
　上記行動モジュールは、自身に接続される一以上の下位の行動モジュールの制御ポリシーを記憶した記憶手段を有し、
　上記一以上の下位の行動モジュールが接続される上位の行動モジュールは、上記制御ポリシーに基づいて、上記一以上の下位の行動モジュールを制御し、
　上記可動部制御手段は、上記上位の行動モジュール又は上記一以上の下位の行動モジュールが決定した行動に基づいて、上記可動部を制御する
　ことを特徴とするロボット装置。
【請求項２】
　上記行動モジュールは、外部刺激又は内部状態の変化に応じた状況判断を行うモニター機能と、行動実行に伴う状態遷移を実現するアクション機能とを備えたスキーマであることを特徴とする請求項１記載のロボット装置。
【請求項３】
　上記制御ポリシーは、上記一以上の下位の行動モジュールを独自に実行させるものであることを特徴とする請求項１記載のロボット装置。
【請求項４】
　上記上位の行動モジュールは、上記一以上の下位の行動モジュールのうち、少なくとも１つの行動モジュールが実行可能である場合に、上記一以上の下位の行動モジュールを実行させるように制御することを特徴とする請求項３記載のロボット装置。
【請求項５】
　上記制御ポリシーは、上記一以上の下位の行動モジュールを同時に実行させるものであることを特徴とする請求項１記載のロボット装置。
【請求項６】
　上記上位の行動モジュールは、上記一以上の下位の行動モジュールのうち、全ての行動モジュールが実行可能である場合に、上記一以上の下位の行動モジュールを実行させるように制御することを特徴とする請求項５記載のロボット装置。
【請求項７】
　上記上位の行動モジュールは、上記一以上の下位の行動モジュールのうち、一の行動モジュールの実行が終了した場合に、他の行動モジュールの実行を停止させるように制御することを特徴とする請求項５記載のロボット装置。
【請求項８】
　上記制御ポリシーは、上記一以上の下位の行動モジュールのうち、一の行動モジュールをメインの行動モジュールとして実行させるものであることを特徴とする請求項１記載のロボット装置。
【請求項９】
　上記上位の行動モジュールは、上記一以上の下位の行動モジュールのうち、少なくとも上記メインの行動モジュールが実行可能である場合に、上記一以上の下位の行動モジュールを実行させるように制御することを特徴とする請求項８記載のロボット装置。
【請求項１０】
　上記上位の行動モジュールは、上記一以上の下位の行動モジュールのうち、上記メインの行動モジュールの実行が終了した場合に、他の行動モジュールの実行を停止させるように制御することを特徴とする請求項８記載のロボット装置。
【請求項１１】
　上記制御ポリシーは、上記一以上の下位の行動モジュールを所定の順序で実行させるものであることを特徴とする請求項１記載のロボット装置。
【請求項１２】
　可動部を有するロボット装置の行動制御方法において、
　上記ロボット装置の機体動作を記述する複数の行動モジュールが、上位の行動モジュールに一以上の下位の行動モジュールが接続される木構造形式に構成されており、
　上記上位の行動モジュールが、記憶手段に記憶された制御ポリシーに基づいて、上記一以上の下位の行動モジュールを制御するステップと、
　上記上位の行動モジュール又は上記一以上の下位の行動モジュールが決定した行動に基づいて、上記可動部を制御するステップと
　を有することを特徴とする行動制御方法。
【請求項１３】
　上記行動モジュールは、外部刺激又は内部状態の変化に応じた状況判断を行うモニター機能と、行動実行に伴う状態遷移を実現するアクション機能とを備えたスキーマであることを特徴とする請求項１２記載の行動制御方法。
【請求項１４】
　上記制御ポリシーは、上記一以上の下位の行動モジュールを独自に実行させるものであることを特徴とする請求項１２記載の行動制御方法。
【請求項１５】
　上記上位の行動モジュールは、上記一以上の下位の行動モジュールのうち、少なくとも１つの行動モジュールが実行可能である場合に、上記一以上の下位の行動モジュールを実行させるように制御することを特徴とする請求項１４記載の行動制御方法。
【請求項１６】
　上記制御ポリシーは、上記一以上の下位の行動モジュールを同時に実行させるものであることを特徴とする請求項１２記載の行動制御方法。
【請求項１７】
　上記上位の行動モジュールは、上記一以上の下位の行動モジュールのうち、全ての行動モジュールが実行可能である場合に、上記一以上の下位の行動モジュールを実行させるように制御することを特徴とする請求項１６記載の行動制御方法。
【請求項１８】
　上記上位の行動モジュールは、上記一以上の下位の行動モジュールのうち、一の行動モジュールの実行が終了した場合に、他の行動モジュールの実行を停止させるように制御することを特徴とする請求項１６記載の行動制御方法。
【請求項１９】
　上記制御ポリシーは、上記一以上の下位の行動モジュールのうち、一の行動モジュールをメインの行動モジュールとして実行させるものであることを特徴とする請求項１２記載の行動制御方法。
【請求項２０】
　上記上位の行動モジュールは、上記一以上の下位の行動モジュールのうち、少なくとも上記メインの行動モジュールが実行可能である場合に、上記一以上の下位の行動モジュールを実行させるように制御することを特徴とする請求項１９記載の行動制御方法。
【請求項２１】
　上記上位の行動モジュールは、上記一以上の下位の行動モジュールのうち、上記メインの行動モジュールの実行が終了した場合に、他の行動モジュールの実行を停止させるように制御することを特徴とする請求項１９記載の行動制御方法。
【請求項２２】
　上記制御ポリシーは、上記一以上の下位の行動モジュールを所定の順序で実行させるものであることを特徴とする請求項１２記載の行動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、自律的な動作を行いリアリスティックなコミュニケーションを実現するロボット装置及びその行動制御方法に関し、特に、画像や音声などの外界の状況を認識してそれに対して自身の行動を反映させる機能を備えた自律型のロボット装置及びその行動制御方法に関する。
【背景技術】
【０００２】
　電気的又は磁気的な作用を用いて人間（生物）の動作に似た運動を行う機械装置を「ロボット」という。我が国においてロボットが普及し始めたのは、１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータや搬送ロボット等の産業用ロボット（Industrial Robot）であった。
【０００３】
　最近では、人間のパートナーとして生活を支援する、すなわち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬、猫のように４足歩行の動物の身体メカニズムやその動作を模した「ペット型」ロボット、或いは、２足直立歩行を行う人間等の身体メカニズムや動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット（Humanoid Robot）等のロボット装置は、既に実用化されつつある。
【０００４】
　これらのロボット装置は、産業用ロボットと比較して、エンターテインメント性を重視した様々な動作を行うことができるため、エンターテインメントロボットと称される場合もある。また、そのようなロボット装置には、外部からの情報や内部の状態に応じて自律的に動作するものがある。
【０００５】
　このような自律型のロボット装置は、視覚や聴覚など外部環境の変化に応じて逐次的に行動を選択していくのが一般的である。また、行動選択メカニズムの他の例として、本能や感情といった情動をモデル化してシステムの内部状態を管理し、内部状態の変化に応じて行動を選択するものを挙げることができる。なお、システムの内部状態は、外部環境の変化によっても、選択された行動を発現することによっても変化する。
【０００６】
　ところで、ロボット装置の行動をデザインする際には、ロボット装置のハードウェア、ソフトウェアといったリソースや、要求される行動を考慮する必要があるため、行動モジュールがオンデマンドで実現される場合が多い。
【０００７】
　実際のデザインとしては、モノリシック（monolithic）、すなわち１つのソフトウェアモジュールでロボット装置の行動全体を実現することもできるが、より複雑な行動を実現するために、モジュール化、すなわち行動を複数の単純なユニットに分解し、その相互作用により行動全体を実現することもできる（例えば下記特許文献１参照）。
【０００８】
【特許文献１】特開２００３−１１１９８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
　しかしながら、従来、あるユニットを別の行動を実現するために用いようとした場合、ユニット同士の相互作用の手順（procedure）やユニット自体を根本的に書き換えなければならない場合があり、ユニットの組み換えが困難であるという問題があった。
【００１０】
　本発明は、このような従来の実情に鑑みて提案されたものであり、複数の行動モジュールにより複雑な行動を実現すると共にユニットの組み換えを容易とするロボット装置及びその行動制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
　上述した目的を達成するために、本発明に係るロボット装置は、可動部を有するロボット装置において、上記可動部を制御する可動部制御手段と、上記ロボット装置の機体動作を記述する複数の行動モジュールが木構造形式に構成された行動決定手段とを備え、上記行動モジュールは、自身に接続される一以上の下位の行動モジュールの制御ポリシーを記憶した記憶手段を有し、上記一以上の下位の行動モジュールが接続される上位の行動モジュールは、上記制御ポリシーに基づいて、上記一以上の下位の行動モジュールを制御し、上記可動部制御手段は、上記上位の行動モジュール又は上記一以上の下位の行動モジュールが決定した行動に基づいて、上記可動部を制御するものである。
【００１２】
　また、上述した目的を達成するために、本発明に係る行動制御方法は、可動部を有するロボット装置の行動制御方法において、上記ロボット装置の機体動作を記述する複数の行動モジュールが、上位の行動モジュールに一以上の下位の行動モジュールが接続される木構造形式に構成されており、上記上位の行動モジュールが、記憶手段に記憶された制御ポリシーに基づいて、上記一以上の下位の行動モジュールを制御するステップと、上記上位の行動モジュール又は上記一以上の下位の行動モジュールが決定した行動に基づいて、上記可動部を制御するステップとを有するものである。
【００１３】
　このようなロボット装置及びその行動制御方法では、木構造形式に構成された複数の行動モジュールのうち、上位の行動モジュールは、記憶手段に記憶された制御ポリシーに基づいて、自身に接続された一以上の行動モジュールを制御する。
【発明の効果】
【００１４】
　本発明に係るロボット装置及びその行動制御方法では、木構造形式に構成された複数の行動モジュールのうち、上位の行動モジュールが、記憶手段に記憶された制御ポリシーに基づいて、自身に接続された一以上の行動モジュールを制御するため、各行動モジュールの独立性を高めることができ、したがって行動モジュールの木構造の組み換えが容易とされる。
【発明を実施するための最良の形態】
【００１５】
　以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００１６】
　本発明の一構成例として示す２足歩行タイプのロボット装置は、住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットであり、内部状態（怒り、悲しみ、喜び、楽しみ等）に応じて行動できるほか、人間が行う基本的な動作を表出できるエンターテインメントロボットである。
【００１７】
　図１に示すように、ロボット装置１は、体幹部ユニット２の所定の位置に頭部ユニット３が連結されると共に、左右２つの腕部ユニット４Ｒ／Ｌと、左右２つの脚部ユニット５Ｒ／Ｌが連結されて構成されている（但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下において同じ。）。
【００１８】
　このロボット装置１が具備する関節自由度構成を図２に模式的に示す。頭部ユニット３を支持する首関節は、首関節ヨー軸１０１と、首関節ピッチ軸１０２と、首関節ロール軸１０３という３自由度を有している。
【００１９】
　また、上肢を構成する各々の腕部ユニット４Ｒ／Ｌは、、肩関節ピッチ軸１０７と、肩関節ロール軸１０８と、上腕ヨー軸１０９と、肘関節ピッチ軸１１０と、前腕ヨー軸１１１と、手首関節ピッチ軸１１２と、手首関節ロール軸１１３と、手部１１４とで構成される。手部１１４は、実際には、複数本の指を含む多関節・多自由度構造体である。但し、手部１１４の動作は、ロボット装置１の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。したがって、各腕部は７自由度を有するとする。
【００２０】
　また、体幹部ユニット２は、体幹ピッチ軸１０４と、体幹ロール軸１０５と、体幹ヨー軸１０６という３自由度を有する。
【００２１】
　また、下肢を構成する各々の脚部ユニット５Ｒ／Ｌは、股関節ヨー軸１１５と、股関節ピッチ軸１１６と、股関節ロール軸１１７と、膝関節ピッチ軸１１８と、足首関節ピッチ軸１１９と、足首関節ロール軸１２０と、足部１２１とで構成される。本明細書中では、股関節ピッチ軸１１６と股関節ロール軸１１７の交点は、ロボット装置１の股関節位置を定義する。人体の足部１２１は、実際には多関節・多自由度の足底を含んだ構造体であるが、ロボット装置１の足底は、ゼロ自由度とする。したがって、各脚部は、６自由度で構成される。
【００２２】
　以上を総括すれば、ロボット装置１全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有することになる。但し、エンターテインメント向けのロボット装置１が必ずしも３２自由度に限定されるわけではない。設計・制作上の制約条件や要求仕様等に応じて、自由度すなわち関節数を適宜増減することができることはいうまでもない。
【００２３】
　上述したようなロボット装置１が持つ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、２足歩行という不安定構造体に対して姿勢制御を行うことなどの要請から、アクチュエータは小型且つ軽量であることが好ましい。
【００２４】
　図３には、ロボット装置１の制御システム構成を模式的に示している。同図に示すように、ロボット装置１は、ヒトの四肢を表現した体幹部ユニット２，頭部ユニット３，腕部ユニット４Ｒ／Ｌ，脚部ユニット５Ｒ／Ｌと、各ユニット間の協調動作を実現するための適応制御を行う制御ユニット１０とで構成される。
【００２５】
　ロボット装置１全体の動作は、制御ユニット１０によって統括的に制御される。制御ユニット１０は、ＣＰＵ（Central Processing Unit）や、ＤＲＡＭ、フラッシュＲＯＭ等の主要回路コンポーネント（図示しない）で構成される主制御部１１と、電源回路やロボット装置１の各構成要素とのデータやコマンドの授受を行うインターフェイス（何れも図示しない）などを含んだ周辺回路１２とで構成される。
【００２６】
　本発明を実現する上で、この制御ユニット１０の設置場所は、特に限定されない。図３では体幹部ユニット２に搭載されているが、頭部ユニット３に搭載してもよい。あるいは、ロボット装置１外に制御ユニット１０を配備して、ロボット装置１の機体とは有線又は無線で交信するようにしてもよい。
【００２７】
　図２に示したロボット装置１内の各関節自由度は、それぞれに対応するアクチュエータによって実現される。すなわち、頭部ユニット３には、首関節ヨー軸１０１、首関節ピッチ軸１０２、首関節ロール軸１０３の各々を表現する首関節ヨー軸アクチュエータＡ２、首関節ピッチ軸アクチュエータＡ３、首関節ロール軸アクチュエータＡ４が配設されている。
【００２８】
　また、頭部ユニット３には、外部の状況を撮像するためのＣＣＤ（Charge Coupled Device）カメラが設けられているほか、前方に位置する物体までの距離を測定するための距離センサ、外部音を集音するためのマイクロホン、音声を出力するためのスピーカ、使用者からの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出するためのタッチセンサ等が配設されている。
【００２９】
　また、体幹部ユニット２には、体幹ピッチ軸１０４、体幹ロール軸１０５、体幹ヨー軸１０６の各々を表現する体幹ピッチ軸アクチュエータＡ５、体幹ロール軸アクチュエータＡ６、体幹ヨー軸アクチュエータＡ７が配設されている。また、体幹部ユニット２には、このロボット装置１の起動電源となるバッテリを備えている。このバッテリは、充放電可能な電池によって構成されている。
【００３０】
　また、腕部ユニット４Ｒ／Ｌは、上腕ユニット４１Ｒ／Ｌと、肘関節ユニット４２Ｒ／Ｌと、前腕ユニット４３Ｒ／Ｌに細分化されるが、肩関節ピッチ軸１０７、肩関節ロール軸１０８、上腕ヨー軸１０９、肘関節ピッチ軸１１０、前腕ヨー軸１１１、手首関節ピッチ軸１１２、手首関節ロール軸１１３の各々表現する肩関節ピッチ軸アクチュエータＡ８、肩関節ロール軸アクチュエータＡ９、上腕ヨー軸アクチュエータＡ１０、肘関節ピッチ軸アクチュエータＡ１１、肘関節ロール軸アクチュエータＡ１２、手首関節ピッチ軸アクチュエータＡ１３、手首関節ロール軸アクチュエータＡ１４が配備されている。
【００３１】
　また、脚部ユニット５Ｒ／Ｌは、大腿部ユニット５１Ｒ／Ｌと、膝ユニット５２Ｒ／Ｌと、脛部ユニット５３Ｒ／Ｌに細分化されるが、股関節ヨー軸１１５、股関節ピッチ軸１１６、股関節ロール軸１１７、膝関節ピッチ軸１１８、足首関節ピッチ軸１１９、足首関節ロール軸１２０の各々を表現する股関節ヨー軸アクチュエータＡ１６、股関節ピッチ軸アクチュエータＡ１７、股関節ロール軸アクチュエータＡ１８、膝関節ピッチ軸アクチュエータＡ１９、足首関節ピッチ軸アクチュエータＡ２０、足首関節ロール軸アクチュエータＡ２１が配備されている。各関節に用いられるアクチュエータＡ２，Ａ３・・・は、より好ましくは、ギア直結型で旦つサーボ制御系をワンチップ化してモータ・ユニット内に搭載したタイプの小型ＡＣサーボ・アクチュエータで構成することができる。
【００３２】
　体幹部ユニット２、頭部ユニット３、各腕部ユニット４Ｒ／Ｌ、各脚部ユニット５Ｒ／Ｌなどの各機構ユニット毎に、アクチュエータ駆動制御部の副制御部２０，２１，２２Ｒ／Ｌ，２３Ｒ／Ｌが配備されている。さらに、各脚部ユニット５Ｒ／Ｌの足底が着床したか否かを検出する接地確認センサ３０Ｒ／Ｌを装着するとともに、体幹部ユニット２内には、姿勢を計測する姿勢センサ３１を装備している。
【００３３】
　接地確認センサ３０Ｒ／Ｌは、例えば足底に設置された近接センサ又はマイクロ・スイッチなどで構成される。また、姿勢センサ３１は、例えば、加速度センサとジャイロ・センサの組み合わせによって構成される。
【００３４】
　接地確認センサ３０Ｒ／Ｌの出力によって、歩行・走行などの動作期間中において、左右の各脚部が現在立脚又は遊脚何れの状態であるかを判別することができる。また、姿勢センサ３１の出力により、体幹部分の傾きや姿勢を検出することができる。
【００３５】
　主制御部１１は、各センサ３０Ｒ／Ｌ，３１の出力に応答して制御目標をダイナミックに補正することができる。より具体的には、副制御部２０，２１，２２Ｒ／Ｌ，２３Ｒ／Ｌの各々に対して適応的な制御を行い、ロボット装置１の上肢、体幹、及び下肢が協調して駆動する全身運動パターンを実現できる。
【００３６】
　ロボット装置１の機体上での全身運動は、足部運動、ＺＭＰ（Zero Moment Point）軌道、体幹運動、上肢運動、腰部高さなどを設定するとともに、これらの設定内容に従った動作を指示するコマンドを各副制御部２０，２１，２２Ｒ／Ｌ，２３Ｒ／Ｌに転送する。そして、各々の副制御部２０，２１，・・・等では、主制御部１１からの受信コマンドを解釈して、各アクチュエータＡ２，Ａ３・・・等に対して駆動制御信号を出力する。ここでいう「ＺＭＰ」とは、歩行中の床反力によるモーメントがゼロとなる床面上の点のことであり、また、「ＺＭＰ軌道」とは、例えばロボット装置１の歩行動作期間中にＺＭＰが動く軌跡を意味する。なお、ＺＭＰの概念並びにＺＭＰを歩行ロボットの安定度判別規範に適用する点については、Miomir Vukobratovic著“LEGGED LOCOMOTION ROBOTS”（加藤一郎外著『歩行ロボットと人工の足』（日刊工業新聞社））に記載されている。
【００３７】
　以上のように、ロボット装置１は、各々の副制御部２０，２１，・・・等が、主制御部１１からの受信コマンドを解釈して、各アクチュエータＡ２，Ａ３・・・に対して駆動制御信号を出力し、各ユニットの駆動を制御している。これにより、ロボット装置１は、目標の姿勢に安定して遷移し、安定した姿勢で歩行できる。
【００３８】
　また、ロボット装置１における制御ユニット１０では、上述したような姿勢制御のほかに、加速度センサ、タッチセンサ、接地確認センサ等の各種センサ、及びＣＣＤカメラからの画像情報、マイクロホンからの音声情報等を統括して処理している。制御ユニット１０では、図示しないが加速度センサ、ジャイロ・センサ、タッチセンサ、距離センサ、マイクロホン、スピーカなどの各種センサ、各アクチュエータ、ＣＣＤカメラ及びバッテリが各々対応するハブを介して主制御部１１と接続されている。
【００３９】
　主制御部１１は、上述の各センサから供給されるセンサデータや画像データ及び音声データを順次取り込み、これらをそれぞれ内部インターフェイスを介してＤＲＡＭ内の所定位置に順次格納する。また、主制御部１１は、バッテリから供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、これをＤＲＡＭ内の所定位置に格納する。ＤＲＡＭに格納された各センサデータ、画像データ、音声データ及びバッテリ残量データは、主制御部１１がこのロボット装置１の動作制御を行う際に利用される。
【００４０】
　主制御部１１は、ロボット装置１の電源が投入された初期時、制御プログラムを読み出し、これをＤＲＡＭに格納する。また、主制御部１１は、上述のように主制御部１１よりＤＲＡＭに順次格納される各センサデータ、画像データ、音声データ及びバッテリ残量データに基づいて自己及び周囲の状況や、使用者からの指示及び働きかけの有無などを判断する。
【００４１】
　さらに、主制御部１１は、この判断結果及びＤＲＡＭに格納した制御プログラムに基づいて自己の状況に応じて行動を決定するとともに、当該決定結果に基づいて必要なアクチュエータを駆動させることによりロボット装置１に、いわゆる「身振り」、「手振り」といった行動をとらせる。
【００４２】
　このようにしてロボット装置１は、制御プログラムに基づいて外部刺激の認識結果や内部状態の変化に応じて行動制御を行うことができる。図４には、ロボット装置１において採用される行動制御システム５０の基本アーキテクチャを模式的に示している。
【００４３】
　図示の行動制御システム５０には、オブジェクト指向プログラミングを採り入れることができる。この場合、各ソフトウェアは、データ（プロパティ）とそのデータに対する処理手続き（メソッド）とを一体化させた「オブジェクト」というモジュール単位で扱われる。また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法により、プロパティの受け渡しとメソッドの継承を行うことができる。
【００４４】
　行動制御システム５０は、外部環境（Environment）６１を認識するために、視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３を備えている。
【００４５】
　視覚認識機能部（Video）５１は、例えば、ＣＣＤカメラのような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識などの画像認識処理や特徴抽出を行う。視覚認識機能部５１は、後述する"MultiColorTracker"，"FaceDetector"，"FaceIdentify"といった複数のオブジェクトで構成される。
【００４６】
　聴覚認識機能部（Audio）５２は、マイクロホンなどの音声入力装置を介して入力される音声データを音声認識して、特徴抽出したり、単語セット（テキスト）認識を行ったりする。聴覚認識機能部５２は、後述する"AudioRecog"，"SpeechRecog"といった複数のオブジェクトで構成される。
【００４７】
　接触認識機能部（Tactile）５３は、例えば機体の頭部などに内蔵されたタッチセンサによるセンサ信号を認識して、「撫でられた」とか「叩かれた」という外部刺激を認識する。
【００４８】
　内部状態管理部（ISM:InternalStatusManager）５４は、本能モデルや感情モデルを備え、上述の視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３によって認識された外部刺激（ES:ExternalStimula）に応じてロボット装置１の本能や情動といった内部状態を管理する。
【００４９】
　感情モデルと本能モデルは、それぞれ認識結果と行動履歴を入力に持ち、感情値と本能値を管理している。行動モデルは、これら感情値や本能値を参照することができる。
【００５０】
　短期記憶部（ShortTermMemory）５５は、上述の視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。例えば、ＣＣＤカメラからの入力画像を約１５秒程度の短い期間だけ記憶する。
【００５１】
　長期記憶部（LongTermMemory）５６は、物の名前など学習により得られた情報を超期間保持するために使用される。長期記憶部５６は、例えば、ある行動モジュールにおいて外部刺激から内部状態の変化を連想記憶する。
【００５２】
　ロボット装置１の行動制御は、反射行動部５９によって実現される「反射行動」と、状況依存行動階層５８によって実現される「状況依存行動」と、熟考行動階層５７によって実現される「熟考行動」に大別される。
【００５３】
　熟考行動階層（DeliberativeLayer）５７は、短期記憶部５５並びに長期記憶部５６の記憶内容に基づいて、ロボット装置１の比較的長期にわたる行動計画などを行う。
【００５４】
　熟考行動は、与えられた状況或いは人間からの命令により、推論やそれを実現するための計画を立てて行われる行動である。このような推論や計画は、インタラクションを保つための反応時間よりも処理時間や計算負荷を要するので、ロボット装置１は反射行動や状況依存行動をリアルタイムで反応を返しながら行い、熟考行動を推論や計画を立てて行う。
【００５５】
　状況依存行動階層（SBL:SituatedBehaviorsLayer）５８は、短期記憶部５５及び長期記憶部５６の記憶内容や、内部状態管理部５４によって管理される内部状態を基に、ロボット装置１が現在置かれている状況に即応した行動を制御する。
【００５６】
　状況依存行動階層５８は、各行動毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。また、状況依存行動階層５８は、内部状態をある範囲に保つための行動（「ホメオスタシス行動」とも呼ぶ）も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出やすくなるようにその行動を活性化させる（実際には、内部状態と外部環境の両方を考慮した形で行動が選択される）。状況依存行動は、反射行動（後述）に比し、反応時間が遅い。
【００５７】
　反射行動部（Reflexive SBL）５９は、上述の視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。
【００５８】
　反射行動は、基本的に、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動を直接決定する行動である。例えば、検出された障害物を咄嗟に避けるといった振る舞いは反射行動として実装することが好ましい。
【００５９】
　本実施の形態におけるロボット装置１では、短期記憶部５５が、上述した視覚認識機能部５１、聴覚認識機能部５２、接触認識機能部５３などの複数の認識器の結果を時間的及び空間的に整合性を保つように統合して、外部環境下の各物体に関する知覚を短期間の記憶として状況依存行動階層（SBL）５８などに提供するようになっている。また、センサ入力された外部情報の認識結果を直接、反射行動部（Reflexive SBL）５９に提供するようになっている。
【００６０】
　一般的に、様々な条件を加味した上で行動を決定する状況依存行動階層（SBL）５８や、熟考行動階層５７のみであるとロボットの反応は遅くなる。そこで、本実施の形態のロボット装置１の行動制御システム５０は、様々な条件（内部状態と外部状態）を加味して行動の発現を決定しようとするために、状況依存行動階層（SBL）５８や、熟考行動階層５７のほか、ある単一のセンサ条件において行動の発現を決定する反射行動部（Reflexive SBL）５９も別プロセスとなるようにシステム構成されている。
【００６１】
　なお、上述した熟考行動階層５７や状況依存行動階層（SBL）５８、反射行動部（Reflexive SBL）５９は、ロボット装置１のハードウェア構成に非依存の上位のアプリケーション・プログラムとして記述することができる。これに対し、ハードウェア依存行動制御部（ConfigurationDependentActionAndReactions）６０は、これら上位アプリケーション（「スキーマ」と呼ばれる行動モジュール）からの命令に応じて、上述したアクチュエータＡ２，Ａ３・・・の駆動などの機体のハードウェア（外部環境）を直接操作する。
【００６２】
　ここで、図４に示したようなロボット装置１の行動制御システム５０における各機能モジュールは、オブジェクトとして構成される。各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータ（プロパティ）の受け渡しと、事物の振る舞いを記述したプログラム（メソッド）の継承を行っている。以下、行動制御システム５０におけるオブジェクト構成を模式的に示した図５を参照しながら、各オブジェクトの機能について説明する。
【００６３】
　視覚認識機能部５１は、"FaceDetector"、"MultiColotTracker”、"FaceIdentify"という３つのオブジェクトで構成される。FaceDetectorは、画像フレーム中から顔領域を検出するオブジェクトであり、検出結果をFaceIdentifyに出力する。MultiColorTrackerは、色認識を行うオブジェクトであり、認識結果をFaceIdentify及びShortTermMemory（短期記憶部５５を構成するオブジェクト）に出力する。また、FaceIdentifyは、検出された顔画像を手持ちの人物辞書で検索するなどして人物の識別を行い、顔画像領域の位置、大きさ情報とともに人物のＩＤ情報をShortTermMemoryに出力する。
【００６４】
　聴覚認識機能部５２は、"AudioRecog"と"SpeechRecog"という２つのオブジェクトで構成される。AudioRecogは、マイクロホンなどの音声入力装置からの音声データを受け取って、特徴抽出と音声区間検出を行うオブジェクトであり、音声区間の音声データの特徴量及び音源方向をSpeechRecogやShortTermMemoryに出力する。SpeechRecogは、AudioRecogから受け取った音声特徴量と音声辞書及び構文辞書を使って音声認識を行うオブジェクトであり、認識された単語のセットをShortTermMemoryに出力する。
【００６５】
　接触認識機能部５３は、タッチセンサからのセンサ入力を認識する"TactileSensor"というオブジェクトで構成され、認識結果はShortTermMemoryや内部状態を管理するオブジェクトであるInternalStatusManager（ISM）に出力する。
【００６６】
　ShortTermMemory（STM）は、短期記憶部５５を構成するオブジェクトであり、上述の認識系の各オブジェクトによって外部環境から認識されたターゲットやイベントを短期間保持（例えばＣＣＤカメラからの入力画像を約１５秒程度の短い期間だけ記憶する）する機能モジュールであり、ＳＴＭクライアントであるSituatedBehaviorsLayerに対して外部刺激の通知（Notify）を定期的に行う。
【００６７】
　LongTermMemory（LTM）は、長期記憶部５６を構成するオブジェクトであり、物の名前など学習により得られた情報を長期間保持するために使用される。LongTermMemoryは、例えば、ある行動モジュールにおいて外部刺激から内部状態の変化を連想記憶することができる。
【００６８】
　InternalStatusManager（ISM）は、内部状態管理部５４を構成するオブジェクトであり、本能や感情といった数種類の情動を数式モデル化して管理しており、上述の認識系の各オブジェクトによって認識された外部刺激（ES:ExternalStimula）に応じてロボット装置１の本能や情動といった内部状態を管理する。
【００６９】
　SituatedBehaviorsLayer（SBL）は、状況依存行動階層５８を構成するオブジェクトである。ＳＢＬは、ShorTermMemoryのクライアント（ＳＴＭクライアント）となるオブジェクトであり、ShorTermMemoryから定期的に外部刺激（ターゲットやイベント）に関する情報の通知（Notify）を受け取り、スキーマ（schema）、すなわち実行すべき行動モジュールを決定する。このＳＢＬについての詳細は後述する。
【００７０】
　Reflexive SBLは、反射行動部５９を構成するオブジェクトであり、上述した認識系の各オブジェクトによって認識された外部刺激に応じて反射的・直接的な機体動作を実行する。例えば、検出された障害物を咄嗟に避けるといった振る舞いを行う。
【００７１】
　上述したように、SituatedBehaviorsLayerは、外部刺激や内部状態の変化などの状況に応じて行動を選択する。これに対し、Reflexive SBLは、外部刺激に応じて反射的を行動する。これら２つのオブジェクトによる行動選択は独立して行われるため、互いに選択された行動モジュール（スキーマ）を機体上で実行する場合に、ロボット１のハードウェア・リソースが競合して実現不可能なこともある。そこで、ResourceManagerというオブジェクトは、SituatedBehaviorsLayerとReflexive SBLによる行動選択時のハードウェアの競合を調停する。そして、調停結果に基づいて機体動作を実現する各オブジェクトに通知することにより機体が駆動する。
【００７２】
　SoundPerformer、MotionController、LEDControllerは、機体動作を実現するオブジェクトである。SoundPerformerは、音声出力を行うためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerから与えられたテキスト・コマンドに応じて音声合成を行い、ロボット１の機体上のスピーカから音声出力を行う。また、MotionControllerは、機体上のアクチュエータＡ２，Ａ３・・・の動作を行うためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerから手や脚などを動かすコマンドを受けたことに応答して、該当する関節角を計算する。また、LEDControllerは、ＬＥＤ（Light Emitting Diode）の点滅動作を行うためのオブジェクトであり、ResourceManager経由でSituatedBehaviorLayerからコマンドを受けたことに応答してＬＥＤの点滅駆動を行う。
【００７３】
　上述した状況依存行動階層（SBL）５８（但し、反射行動部５９を含む。）による状況依存行動制御の形態を図６に模式的に示す。認識系５１〜５３による外部環境の認識結果は、外部刺激として状況依存行動階層（SBL）５８に与えられる。また、認識系５１〜５３による外部環境の認識結果に応じた内部状態の変化も状況依存行動階層（SBL）５８に与えられる。そして、状況依存行動階層（SBL）５８では、外部刺激や内部状態の変化に応じて状況を判断して、行動選択を実現することができる。
【００７４】
　ところで、状況依存行動階層（SBL）５８は、各行動モジュール毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。行動モジュールは、外部刺激や内部状態に応じた状況判断を行うモニター機能と、行動実行に伴う状態遷移（ステートマシン）を実現するアクション機能とを備えたスキーマ（schema）として記述される。状況依存行動階層（SBL）５８が複数のスキーマによって構成されている様子を図７に模式的に示す。
【００７５】
　状況依存行動階層（SBL）５８（より厳密には、状況依存行動階層５８のうち、通常の状況依存行動を制御する階層）は、複数のスキーマが階層的に連結されたツリー構造として構成され、外部刺激や内部状態の変化に応じてより最適なスキーマを統合的に判断して行動制御を行うようになっている。ツリーは、例えば動物行動学的（Ethological）な状況依存行動を数式化した行動モデルや、感情表現を実行するためのサブツリーなど、複数のサブツリー（又は枝）を含んでいる。
【００７６】
　ここで、ロボット装置１の行動として人間とのインタラクションを想定し、実際の人間で観察される行動を参考として状況依存行動階層（SBL）５８のツリーを構成することにする。
【００７７】
　具体的に、人間が誰か他人と話したいときの行動を、
　（ａ）パートナー（ターゲット）を探し、
　（ｂ）そのパートナー（ターゲット）に近づき、
　（ｃ）そのパートナー（ターゲット）と話す（会話する）
という独立した行動に単純化し、これらの行動を実現できるように状況依存行動階層（SBL）５８のツリーを構成する例を図８を用いて説明する。
【００７８】
　図８に示すように、状況依存行動階層（SBL）５８は、短期記憶部（ShortTermMemory）５５から外部刺激の通知（Notify）を受けるルート（Root）・スキーマを先頭に、抽象的な行動カテゴリから具体的な行動カテゴリに向かうように、各階層毎にスキーマが配設される。すなわち、Rootスキーマの直近下位の階層には、「SearchTarget（ターゲットを探す）」、「ApproachTarget（ターゲットに近づく）」、「Dialogue（対話する）」というスキーマが配設され、これにより行動アルゴリズムがモデル化される。そして、SearchTargetスキーマの下位には、「LookTo」、「LookFor」という具体的な探索行動に関わる行動を記述したスキーマが配設される。同様に、ApproachTargetスキーマの下位には、「Tracking」、「Approach」という具体的なターゲットに近づく行動に関わる行動を記述したスキーマが配設され、Dialogueスキーマの下位には、「Tracking」、「Chat」という具体的な対話行動に関わる行動を記述したスキーマが配設される。なお、図におけるTrackingスキーマのように、同じスキーマを異なるサブツリーに配設することも可能である。
【００７９】
　ここで、本実施の形態における各スキーマは、それぞれ独自に行動を発現する機能を有しており、他のスキーマからの独立性（モジュラリティ（Modularity））が高められている。このため、スキーマをデザインする際にも、設計しようとする動作の特徴のみにフォーカスを絞ることができ、ツリー構造の中で実際に動作する際に発生する可能性のある他の要求を考慮する必要がない。実際上、各スキーマは、動作関連情報としてのフォーカスを有しており、動作する際には特定のターゲットとなる例えば環境中の物体や人物を参照することができる。スキーマ毎の特定の動作に応じて、そのスキーマが動作するために必要十分な最小限の情報が存在し、そのような情報により上述したフォーカスが構成される。なお、各スキーマは、異なったフォーカスを有することができる。
【００８０】
　各スキーマは、そのフォーカスに含まれる情報に依存しているため、他のスキーマや、自身が配設されているツリー構造から独立している。但し、後述するように、各スキーマは他のスキーマと協調して行動を発現することもできる。
【００８１】
　例えば、トラッキング行動を実現するTrackingスキーマは、ターゲットの位置をトラッキングし、又はその動きの経路を観察し、ターゲットの方向に顔（頭）を向ける。ターゲットが環境中の人間である場合、Trackingスキーマが実行されると、ロボット装置１は、自身とターゲットとの相対位置関係に応じて頭部ユニット３を継続的に左右に振り、これにより頭部ユニット３は常にターゲットに正対する。ここで、Trackingスキーマのフォーカスとしては、行動制御システム５０の視覚認識機能部５１によって認識されたターゲットを同定するためのシンボルを用いることができる。例えば、視覚認識機能部５１が認識された物体（物或いは人物）や検出されたイベント毎にＩＤ情報を関連付けている場合には、そのＩＤ情報をフォーカスとして用いることができる。
【００８２】
　図８に示したツリー構造に各スキーマ毎のフォーカス情報を追加した図を図９に示す。図９の例では、殆どのスキーマは、ターゲット、例えば会話のパートナーとなる環境中の人物についてのＩＤ情報（ターゲットＩＤ）以外のフォーカス情報を必要としておらず、Dialogueスキーマ及びChatスキーマのみが会話の内容（トピック）を示すフォーカス情報を必要とする。ここで、LookForスキーマは、特定のターゲットを必要としないためフォーカスを有していない。すなわち、LookForスキーマは、環境中のどのようなターゲットであっても探すことができる。
【００８３】
　また、図９から分かるように、フォーカスに含まれる情報間には干渉（coherence）による制約がない。言い換えれば、各ターゲットＩＤが環境中の異なるターゲット（物体や人物）に対応することができる。干渉性がない場合には、全体として発現される行動は、各スキーマによる動作の単純な結合となる。例えば、図１０に示すように、ApproachTarget行動のサブツリーにおいて、下位（子供）のTrackingスキーマ及びApproachスキーマが、例えばターゲットＴ１及びターゲットＴ２という異なったターゲットをフォーカスとした場合、ロボット装置１は、図１１に示すように、ターゲットＴ１をトラッキングしながらターゲットＴ２に向かって歩く行動を行う。
【００８４】
　ところで、本実施の形態において、各スキーマは、互いにデータや制御信号を交換するためのインターフェイスを有しており、複雑な行動を実現するためのツリー構造に組み換えることができる。また、各スキーマは、子供スキーマ、すなわち残りの構造とインタラクションするための他のスキーマを有することができる。以下、このようなスキーマを親スキーマ、或いはハブ（hub）スキーマと呼ぶ。
【００８５】
　親スキーマは、子供スキーマの接続パターン（制御ポリシー）を規定し、又は子供スキーマをある程度まで制御する。逆に子供スキーマは、親スキーマが規定した接続パターンに従うのみで親スキーマからは独立して動作し、又は親スキーマの制御の下に動作する。なお、この接続パターンの情報は、親スキーマが有する図示しない記憶手段に記憶されている。例えば、インターフェイスを介して各スキーマがフォーカスの情報を交換することもでき、また、例えばApproachTargetスキーマがTrackingスキーマを制御可能な場合に、ApproachTargetスキーマがTrackingスキーマのフォーカスを設定することもできる。この場合、親スキーマは、子供スキーマの見ているフォーカスをモニターし、要求があると、例えばフォーカスを設定することで子供スキーマの動作を制御する。親スキーマであるApproachTargetスキーマが、子供スキーマであるTrackingスキーマ及びApproachスキーマのフォーカスとして、ターゲットＴ１を設定した例を図１２に示す。
【００８６】
　ここで、上述したように、各スキーマは、ターミナルノード（Terminal Nodes）、すなわち子供スキーマとなることもでき、ハブノード（Hub Nodes）、すなわち親スキーマとなることもできる。また、親スキーマは、子供スキーマの接続パターンを規定することができる。そこで、以下では、この接続パターンについて詳細に説明する。
【００８７】
　図７の例において、各サブツリー毎に典型的な親−子供接続パターン、すなわちインタラクションのパターンが存在する。以下、順に説明する。
【００８８】
　先ず、SearchTargetスキーマは、LookForスキーマ及びLookToスキーマの親スキーマであり、この３つのスキーマによりSearchTarget行動のサブツリーが構成される。LookForスキーマは、探索行動（何かを探す行動）を行うスキーマであり、例えば人物の顔を視覚的に探索する。このスキーマは、環境中をスキャンして顔を探すために、ロボット装置１の頭部ユニット３を用いる。なお、物体等の他のターゲットを探索してもよいことは勿論である。LookToスキーマは、音に振り向く行動（音の方向を見る行動）を行うスキーマであり、例えば声が聞こえたときに、頭部ユニット３をその声の方向に向ける。このように、LookForスキーマ及びLookToスキーマは独立したスキーマであり、他のスキーマとは独立して動作を実行することができる。
【００８９】
　一方、SearchTarget行動のサブツリーにおいて、SearchTargetスキーマは、より複雑な行動を実現するためにLookForスキーマ及びLookToスキーマを子供スキーマとして用いる。その子供スキーマは、親スキーマ（SearchTargetスキーマ）からの干渉（制御）を何ら受けることなく、互いに独立して動作する。言い換えれば、SearchTarget行動のサブツリーが実行されている場合、ロボット装置１は、LookForスキーマの動作によって頭部を継続的に左右に振り、ターゲットとなる人物の顔が検出された時点で止まる。同時に、ロボット装置１は、LookToスキーマの動作によって環境中で声が聞こえた場合に声の方向に頭部を向ける。
【００９０】
　このように、SearchTargetスキーマは、子供スキーマを制御するのではなく、中立的なハブスキーマとして動作する。本明細書では、このような接続パターンをORタイプパターン（ORポリシー）と呼ぶ。このORタイプパターンの接続関係では、任意の子供スキーマは、他のスキーマからの相互作用を何ら受けることなく、任意の時間に動作を実行することができる。この場合のSearchTarget行動のサブツリーを図１３に示す。
【００９１】
　なお、本実施の形態では、１つのスキーマによる単純な行動と比較してこのような複雑な行動を、特定の状況に適するようにスキーマを組み換えることなく、子供スキーマの接続パターンを規定するのみで実現することができる。
【００９２】
　次に、ApproachTargetスキーマは、Trackingスキーマ及びApproachスキーマの親スキーマであり、この３つのスキーマによりApproachTarget行動のサブツリーが構成される。Trackingスキーマは、ターゲットの位置をトラッキングし、又はその動きの経路を観察し、ターゲットの方向に顔（頭）を向ける。Approachスキーマは、ターゲットに向かって歩く行動を行うスキーマであり、ターゲットとなる例えば環境中の人物が所定の距離以内となるまで、その人物に向かって歩く。このように、Trackingスキーマ及びApproachスキーマは独立したスキーマであり、他のスキーマとは独立して動作を実行することができる。
【００９３】
　しかしながら、ApproachTarget行動のサブツリーにおいて、ApproachTargetスキーマは、より複雑な行動を実現するためにTrackingスキーマ及びApproachスキーマを子供スキーマとして用いる。特に、ApproachTargetスキーマは、
　（ａ）全ての子供スキーマが協調して動作し、
　（ｂ）全ての子供スキーマが同じフォーカス、例えば同じターゲットを有する
ことを保証するために、子供スキーマの動作の一貫性をチェックする。言い換えれば、ApproachTarget行動のサブツリーが実行されており、ターゲットが例えば環境中の人物である場合、ロボット装置１は、Trackingスキーマの動作によって自身とターゲットとの相対位置関係、及びその人物と自身の動作に応じて頭部ユニット３を継続的に左右に振り、これにより頭部ユニット３は常にターゲットに正対する。同時に、ロボット装置１は、Approachスキーマの動作によってその人物の方向に向かって歩く。
【００９４】
　このように、ApproachTargetスキーマは、子供スキーマを制御する。本明細書では、このような接続パターンをANDタイプパターン（ANDポリシー）と呼ぶ。このANDタイプパターンの接続関係では、全ての子供スキーマが協調して動作を実行する。この場合のApproachTarget行動のサブツリーを図１４に示す。
【００９５】
　なお、上述と同様に、本実施の形態では、１つのスキーマによる単純な行動と比較してこのような複雑な行動を、特定の状況に適するようにスキーマを組み換えることなく、子供スキーマの接続パターンを規定するのみで実現することができる。
【００９６】
　また、ApproachTarget行動のサブツリーでは、ANDタイプパターンで接続された子供スキーマは、全て同じフォーカスを有する必要がある。親スキーマであるApproachTargetスキーマが、子供スキーマであるTrackingスキーマ及びApproachスキーマのフォーカスとして、ターゲットＴ２を設定した例を図１５に示す。この場合、ロボット装置１は、図１６に示すように、ターゲットＴ２をトラッキングしながらターゲットＴ２に向かって歩く行動を行う。
【００９７】
　続いて、Dialogueスキーマは、Trackingスキーマ及びChatスキーマの親スキーマであり、この３つのスキーマによりDialogue行動のサブツリーが構成される。このDialogue行動のサブツリーにおける子供スキーマの接続関係はANDタイプパターンであり、上述したApproachTarget行動のサブツリーと同様であるため、詳細な説明を省略する。
【００９８】
　前述したように、本実施の形態における具体例は、人間が誰か他人と話したいときの行動を模したものであり、ロボット装置１の行動を、SearchTarget行動、ApproachTarget行動及びDialogue行動のサブツリーで構成している。この複雑な行動についてもある接続パターン、すなわち連続して実行されるような接続パターンを有する必要がある。つまり、会話をするためには、その人物がロボット装置１から所定距離内にいる必要があり、その人物の近くにいるためには、ロボット装置１はその人物に近づく必要がある。そして、その人物は、環境中にいる必要があり、ロボット装置１は、その人物を探さなければならない。言い換えれば、ある人物と会話するという全体の行動は、
　（ａ）パートナー（ターゲット）を探し、
　（ｂ）そのパートナー（ターゲット）に近づき、
　（ｃ）そのパートナー（ターゲット）と話す（会話する）
という単純な行動の連続として記述される。本明細書では、このような接続パターンをSEQUENCEタイプパターン（SEQUENCEポリシー）と呼ぶ。この場合の全体の行動のツリー構造を図１７に示す。このSEQUENCEタイプパターンでは、現在の状況に応じた異なる時点から行動を開始することができる。例えば、会話する人物が既にロボット装置１の近くにいる場合には、ApproachTarget行動を省略することができる。
【００９９】
　なお、以上説明したORタイプパターン、ANDタイプパターン及びSEQUENCEタイプパターンといった接続パターンは一例であり、この例に限定されるものではない。
【０１００】
　ところで、同じスキーマは、あるツリー構造においてはターミナルノードとなり、別のツリー構造においてはハブノードとなることができる。スキーマのインターフェイスは、スキーマからデータや制御信号といった情報を送り、異なる状況を自動的に処理する。
【０１０１】
　各スキーマは、子供スキーマがあればそれを検出し、特定の制御パターンを規定するようにデザインすることもでき、また、“純粋な”ターミナルノードとしてデザインすることもできる。後者の場合、子供スキーマが配設されると、デフォルトの制御パターン、例えばORタイプパターンが用いられる。
【０１０２】
　具体的にApproachTarget行動のサブツリーを例にとり、どのようにしてターミナルスキーマ、例えばApproachスキーマがあるツリー構造中でハブスキーマとなるかについて説明する。上述したように、Approachスキーマは、ターゲットに向かって歩く行動を行うスキーマであり、ターゲットとなる例えば環境中の人物が所定の距離以内となるまで、その人物に向かって歩く。しかしながら、このような行動では、ターゲットまでの経路上にある障害物について考慮していないため、障害物とぶつかり、ターゲットに辿り着けないという問題が発生する可能性がある。
【０１０３】
　そこで、ロボット装置１のパフォーマンスを向上させるために、障害物を避ける行動を行うNavigationスキーマを配設することができる。このNavigationスキーマは、方向をナビゲートする行動を行うスキーマであり、ロボット装置１が進む方向の障害物を調べ、障害物が検出された場合に代替経路、例えば障害物を迂回する経路を示す。このNavigationスキーマは、Approachスキーマの子供スキーマとして配設することができ、Approachスキーマをデザインし直す必要はない。Approachスキーマがデフォルトの制御パターン、例えばORタイプパターンでNavigationスキーマを接続するのみで、ApproachスキーマとNavigationスキーマとが協調して動作することができるようになる。この場合のApproachTarget行動のサブツリーを図１８に示す。この結果、ロボット装置１は、図１９に示すように、Trackingスキーマの動作によって特定の人物をトラッキングし、同時に、Approachスキーマの動作によってその人物の方向に向かって歩く。そして、障害物Obが検出された場合には、ロボット装置１は、Navigationスキーマによってその障害物Obを例えば迂回する。
【０１０４】
　このように、本実施の形態における状況依存行動階層（SBL）５８は、複数のスキーマが階層的に連結されたツリー構造として構成され、各スキーマが独自の行動を実行できるように独立性が高められているため、ツリー構造の組み換えが容易である。この際、親スキーマは、例えば上述したORタイプパターン、ANDタイプパターン及びSEQUENCEタイプパターンのように、子供スキーマの接続パターンを規定することができ、発現する行動パターンを変化させることができる。
【０１０５】
　また、各スキーマの独立性が高められていることから、スキーマを書き換えることなく新たな子供スキーマを追加することができ、これによりロボット装置に新たな動作或いは機能を追加することができる。
【０１０６】
　続いて、親スキーマによる子供スキーマの制御について、図面を用いてさらに詳細に説明する。
上述の通り、親スキーマは、図示しない記憶手段に記憶された接続パターンに基づいて、自身に接続された子供スキーマを制御するが、子供スキーマと共通の情報（後述する実行要求度ＡＬ及びリソースの情報）をやりとりすることで、行動の開始及び終了等についてもその接続パターンに応じて制御することができる。この制御は、基本的には図２０に示すようなものである。すなわち、先ず子供スキーマＳ１，Ｓ２，Ｓ３が外部刺激及び内部状態に基づいて算出した自身の行動の実行要求度ＡＬと必要なリソースとを親スキーマＳ０に伝達し、親スキーマＳ０は、この受け取った情報と自身の情報（実行要求度ＡＬ及びリソース）とを統合してさらに上位の親スキーマＳＰに伝達する。そして、親スキーマＳＰは、行動に必要な実行権とリソースとを親スキーマＳ０に伝達し、親スキーマＳ０は、自身に必要なリソースを除いてから、残りのリソースを子供スキーマＳ１，Ｓ２，Ｓ３に分配する。このように、共通の情報をやりとりすることにより、親スキーマは、子供スキーマの内容を知らなくても子供スキーマを制御することができる。
【０１０７】
　具体的に、先ず図２１に示すようなORタイプパターンの場合を考える。図２１に示すSearchTargetスキーマは、LookForスキーマ、LookToスキーマ及びUtterスキーマの親スキーマであり、この４つのスキーマによりSearchTarget行動のサブツリーが構成される。LookForスキーマは、探索行動（何かを探す行動）を行うスキーマであり、例えば人物の顔を視覚的に探索する。このスキーマは、環境中をスキャンしてターゲットを探すために、ロボット装置１の頭部ユニット３を用いる。LookToスキーマは、音に振り向く行動（音の方向を見る行動）を行うスキーマであり、例えば声が聞こえたときに、頭部ユニット３をその声の方向に向ける。Utterスキーマは、例えばターゲットを探していることを示す言葉（「どこかな？」など）等を発するスキーマであり、スピーカ等の音声出力装置を用いる。
【０１０８】
　この図２１に示すサブツリーにおいて、LookForスキーマ、LookToスキーマ及びUtterスキーマは、それぞれ自身の実行要求度ＡＬとリソース（頭部ユニット、スピーカ等）とをSearchTargetスキーマに伝達し、SearchTargetスキーマは、それらの情報を統合してさらに上位のスキーマに伝達する。そして、上位のスキーマから実行権とリソースとが伝達されると、SearchTargetスキーマは、これらを子供スキーマに分配する。
【０１０９】
　このとき、LookForスキーマとLookToスキーマとは、必要なリソースが競合しているため、SearchTargetスキーマは、この２つのスキーマのうち、実行要求度ＡＬが大きいスキーマに対してリソースを分配する。例えば、通常の状態であれば、LookForスキーマの方がLookToスキーマよりも実行要求度ＡＬが大きくなるため、LookForスキーマにリソースが分配される。この結果、ロボット装置１は、言葉を発しながら探索行動を行うことになる。一方、何か声を掛けられた場合や音がした場合等には、LookToスキーマの方がLookForスキーマよりも実行要求度ＡＬが大きくなるため、LookToスキーマにリソースが分配される。この結果、ロボット装置１は、言葉を発しながら音に振り向く行動を行うことになる。
【０１１０】
　以上示したORタイプパターンでは、LookForスキーマ、LookToスキーマ及びUtterスキーマの全てを同時に実行させる必要はないため、サブツリーの開始条件は、
　（ａ）SearchTargetスキーマが起動できること、
　（ｂ）LookForスキーマ、LookToスキーマ及びUtterスキーマの少なくとも１つのスキーマの実行要求度ＡＬが０よりも大きいこと、
　（ｃ）LookForスキーマ、LookToスキーマ及びUtterスキーマのうち、実行要求度ＡＬが０よりも大きいスキーマの少なくとも１つのスキーマにリソースを分配できること
となる。
【０１１１】
　また、ORタイプパターンでは、LookForスキーマ、LookToスキーマ及びUtterスキーマの何れかが実行されていればよいため、サブツリーの終了条件は、
　（ｄ）SearchTargetスキーマ、LookForスキーマ、LookToスキーマ及びUtterスキーマの全てが成功又は失敗により終了していること
となる。したがって、LookToスキーマの実行中にターゲットを見失った場合であっても、サブツリーは終了せず、再びLookForスキーマによりターゲットを探す行動を行う。
【０１１２】
　次に、図１４に示したようなANDタイプパターンの場合を考える。図１４に示したApproachTargetスキーマは、Trackingスキーマ及びApproachスキーマの親スキーマであり、この３つのスキーマによりApproachTarget行動のサブツリーが構成される。Trackingスキーマは、ターゲットの位置をトラッキングし、又はその動きの経路を観察し、ターゲットの方向に顔（頭）を向ける。Approachスキーマは、ターゲットに向かって歩く行動を行うスキーマであり、ターゲットとなる例えば環境中の人物が所定の距離以内となるまで、その人物に向かって歩く。
【０１１３】
　この図１４に示したサブツリーにおいて、Trackingスキーマ及びApproachスキーマは、それぞれ自身の実行要求度ＡＬとリソース（頭部ユニット、脚部ユニット等）とをApproachTargetスキーマに伝達し、ApproachTargetスキーマは、それらの情報を統合してさらに上位のスキーマに伝達する。そして、上位のスキーマから実行権とリソースとが伝達されると、ApproachTargetスキーマは、これらをTrackingスキーマ及びApproachスキーマに分配する。
【０１１４】
　このとき、Trackingスキーマ及びApproachスキーマは同時に実行する必要があるため、Trackingスキーマ及びApproachスキーマに必要なリソースの何れか一方でも足りない場合には、ApproachTargetスキーマに対して上位のスキーマからリソースが伝達されない。
【０１１５】
　以上示したANDタイプパターンでは、Trackingスキーマ及びApproachスキーマを同時に実行させる必要があるため、サブツリーの開始条件は、
　（ａ）ApproachTargetスキーマが起動できること、
　（ｂ）Trackingスキーマ及びApproachスキーマのそれぞれの実行要求度ＡＬが０よりも大きいこと、
　（ｃ）Trackingスキーマ及びApproachスキーマのそれぞれにリソースを分配できること
となる。
【０１１６】
　また、ANDタイプパターンでは、Trackingスキーマ及びApproachスキーマの両方が実行されている必要があるため、サブツリーの終了条件は、
　（ｄ）Trackingスキーマ及びApproachスキーマの少なくとも１つのスキーマが成功又は失敗により終了したこと
となる。したがって、障害物等によりターゲットに対してそれ以上進めなくなった場合、Approachスキーマは失敗終了するが、この場合、ApproachTargetスキーマはTrackingスキーマについても終了させる。
【０１１７】
　ここで、上述したORタイプパターン及びANDタイプパターンでは、各子供スキーマが並列の関係にあったが、子供スキーマのうち何れか１つのスキーマをメインスキーマとし、サブツリー全体の結果をこのメインスキーマに依存させるようにしても構わない。本明細書では、このような接続パターンをDependOnタイプパターン（DependOnポリシー）と呼ぶ。
【０１１８】
　具体的に、図２２に示すDependOnタイプパターンの場合を考える。図２２に示すKickTargetスキーマは、Trackingスキーマ及びKickスキーマの親スキーマであり、この３つのスキーマによりKickTarget行動のサブツリーが構成される。Trackingスキーマは、ターゲットの位置をトラッキングし、又はその動きの経路を観察し、ターゲットの方向に体全体を向ける。Kickスキーマは、ターゲットを蹴る行動を行うスキーマであり、ターゲットとなる例えば環境中のボールを蹴る。
【０１１９】
　この図２２に示すサブツリーにおいて、Trackingスキーマ及びKickスキーマは、それぞれ自身の実行要求度ＡＬとリソース（頭部ユニット、脚部ユニット等）とをKickTargetスキーマに伝達する。また、Kickスキーマは、自身がメインスキーマであるという情報をKickTargetスキーマに伝達する。そして、KickTargetスキーマは、それらの情報を統合してさらに上位のスキーマに伝達する。上位のスキーマから実行権とリソースとが伝達されると、KickTargetスキーマは、これらをTrackingスキーマ及びKickスキーマに分配する。
【０１２０】
　このとき、Trackingスキーマ及びKickスキーマのうち、少なくともKickスキーマを実行する必要があるため、Kickスキーマに必要なリソースが足りない場合には、KickTargetスキーマに対して上位のスキーマからリソースが伝達されない。
【０１２１】
　以上示したDependOnタイプパターンでは、Trackingスキーマ及びKickスキーマのうち、少なくともKickスキーマを実行させる必要があるため、サブツリーの開始条件は、
　（ａ）KickTargetスキーマが起動できること、
　（ｂ）Trackingスキーマ及びKickスキーマのうち、少なくともKickスキーマの実行要求度ＡＬが０よりも大きいこと、
　（ｃ）Trackingスキーマ及びKickスキーマのうち、少なくともKickスキーマにリソースを分配できること
となる。
【０１２２】
　また、DependOnタイプパターンでは、サブツリー全体の結果がメインスキーマであるKickスキーマに依存しているため、サブツリーの終了条件は、
　（ｄ）KickTargetスキーマ及びKickスキーマが成功又は失敗により終了したこと
となる。したがって、ターゲットを蹴ってKickスキーマが成功終了した場合、KickTargetスキーマはTrackingスキーマについても終了させる。
【０１２３】
　続いて、サッカーの行動を例とし、
　（ａ）ボール（ターゲット）を探し、
　（ｂ）ボール（ターゲット）に近づき、
　（ｃ）そのボール（ターゲット）を蹴る
という行動全体のツリー構造を図２３に示す。図２３において、Rootスキーマは、KickTargetスキーマをメインスキーマとするDependOnタイプパターンをとる。また、KickTargetスキーマは、図２２と同様に、KickスキーマをメインスキーマとするDependOnタイプパターンをとる。
【０１２４】
　この図２３に示すツリーにおいては、SearchTargetスキーマのサブツリーによってボールを探し、ApproachTargetスキーマのサブツリーによってボールが所定の距離になるまで近づく。そして、KickTargetスキーマのサブツリーによってボールを蹴り、ツリーが終了する。ここで、ボールを探し、ボールに近づく途中でボールを見失った場合、ApproachTargetスキーマは失敗終了するが、メインスキーマであるKickTargetスキーマが終了していないため、ツリーとしては終了しない。この場合には、再びSearchTargetスキーマのサブツリーが実行され、ボールを探すというリカバリー行動を行うことができる。
【０１２５】
　以上説明したように、本実施の形態における状況依存行動階層（SBL）５８は、複数のスキーマが階層的に連結されたツリー構造として構成され、複雑な行動を実現することができる一方で、各スキーマが独自の行動を実行できるように独立性（モジュラリティ）が高められているため、ツリー構造の組み換えが容易であり、スキーマ間で共通の情報をやりとりし、さらに親スキーマと子供スキーマとの接続関係を規定することにより、スキーマの記述を簡略化することができる。
【０１２６】
　つまり、親スキーマに子供スキーマの制御に必要な情報・機能を全て記述することは、スキーマのツリー構造が複雑になった場合には困難であり、特にツリー構造内で子供スキーマを制御するスキーマの方が子供スキーマの数よりも多くなってしまう虞がある。
【０１２７】
　これに対して、上述した本実施の形態では、やりとりする情報を共通化することでスキーマの独立性を担保し、ユニット（ツリー構造）の組み換えを容易とすることができる。さらに、複数のスキーマが共通にできることを抽出して幾つかの接続パターンを作ることで、スキーマの記述を簡略化することができる。
【０１２８】
　なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【０１２９】
　例えば、上述の実施の形態では、２足歩行の脚式移動ロボットに関して説明したが、ロボット装置は、外部環境及び内部状態に応じて動作するものであれば適用可能であり、移動手段も２足歩行、さらには脚式移動方式に限定されない。
【産業上の利用可能性】
【０１３０】
　以上説明した本発明によれば、木構造形式に構成された複数の行動モジュールのうち、上位の行動モジュールが、記憶手段に記憶された制御ポリシーに基づいて、自身に接続された一以上の行動モジュールを制御するため、各行動モジュールの独立性を高めることができ、したがって行動モジュールの木構造を組み換えてロボット装置の行動のデザイン変更を行うことが容易に実現できる。
【図面の簡単な説明】
【０１３１】
【図１】本実施の形態におけるロボット装置の外観構成を示す斜視図である。
【図２】同ロボット装置の自由度構成モデルを模式的に示す図である。
【図３】同ロボット装置の回路構成を示すブロック図である。
【図４】同ロボット装置の行動制御システムの基本アーキテクチャを示す図である。
【図５】同行動制御システムのオブジェクト構成を模式的に示す図である。
【図６】同行動制御システムの状況依存行動階層による状況依存行動制御の形態を模式的に示す図である。
【図７】同状況依存行動階層が複数のスキーマによって構成されている様子を模式的に示す図である。
【図８】同状況依存行動階層におけるスキーマのツリー構造を模式的に示す図である。
【図９】同ツリー構造に各スキーマ毎のフォーカス情報を追加した様子を示す図である。
【図１０】Trackingスキーマ及びApproachスキーマが、それぞれ異なるターゲットをフォーカスとした場合のApproachTarget行動のサブツリー構造を示す図である。
【図１１】Trackingスキーマ及びApproachスキーマが、それぞれ異なるターゲットをフォーカスとした場合のロボット装置の行動を模式的に示す図である。
【図１２】ApproachTargetスキーマが、Trackingスキーマ及びApproachスキーマに対して同じフォーカスを設定した場合のApproachTarget行動のサブツリー構造を示す図である。
【図１３】子供スキーマがORタイプパターンで接続された場合のSearchTarget行動のサブツリー構造を示す図である。
【図１４】子供スキーマがANDタイプパターンで接続された場合のApproachTarget行動のサブツリー構造を示す図である。
【図１５】ApproachTargetスキーマが、子供スキーマに対して同じフォーカスを設定した場合のApproachTarget行動のサブツリー構造を示す図である。
【図１６】ApproachTargetスキーマが、子供スキーマに対して同じフォーカスを設定した場合のロボット装置の行動を模式的に示す図である。
【図１７】SearchTargetスキーマ、ApproachTargetスキーマ及びDialogueスキーマがSEQUENCEタイプパターンで接続された場合のツリー構造を示す図である。
【図１８】Approachスキーマの下位にNavigationスキーマが配設された場合のApproachTarget行動のサブツリー構造を示す図である。
【図１９】Approachスキーマの下位にNavigationスキーマが配設された場合のロボット装置の行動を模式的に示す図である。
【図２０】スキーマ間での情報のやりとりを示す図である。
【図２１】子供スキーマがORタイプパターンで接続された場合のSearchTarget行動のサブツリー構造を示す図である。
【図２２】子供スキーマがDependOnタイプパターンで接続された場合のApproachTarget行動のサブツリー構造を示す図である。
【図２３】SearchTargetスキーマ、ApproachTargetスキーマ及びKickTargetスキーマがDependOnタイプパターンで接続された場合のツリー構造を示す図である。
【符号の説明】
【０１３２】
　１　ロボット装置、２　体幹部ユニット、３　頭部ユニット、４Ｒ／Ｌ　腕部ユニット、５Ｒ／Ｌ　脚部ユニット、５０　行動制御システム、５１　視覚認識機能部、５２　聴覚認識機能部、５３　接触認識機能部、５４　内部状態管理部、５５　短期記憶部、５６　長期記憶部、５７　熟考行動階層、５８　状況依存行動階層、５９　反射行動部、６０　ハードウェア依存行動制御部、６１　外部環境
【図１】
2004114285.tif 000003
【図２】
2004114285.tif 000004
【図３】
2004114285.tif 000005
【図４】
2004114285.tif 000006
【図５】
2004114285.tif 000007
【図６】
2004114285.tif 000008
【図７】
2004114285.tif 000009
【図８】
2004114285.tif 000010
【図９】
2004114285.tif 000011
【図１０】
2004114285.tif 000012
【図１１】
2004114285.tif 000013
【図１２】
2004114285.tif 000014
【図１３】
2004114285.tif 000015
【図１４】
2004114285.tif 000016
【図１５】
2004114285.tif 000017
【図１６】
2004114285.tif 000018
【図１７】
2004114285.tif 000019
【図１８】
2004114285.tif 000020
【図１９】
2004114285.tif 000021
【図２０】
2004114285.tif 000022
【図２１】
2004114285.tif 000023
【図２２】
2004114285.tif 000024
【図２３】
2004114285.tif 000025