(57)【要約】【課題】対象物に対してより自然な動作を行えて、エンターテイメント性を向上したロボット装置及びロボット装置の行動制御方法を提供する。【解決手段】ロボット装置１は、ＣＣＤカメラ２２と、マイクロホン２４と、画像データから動体を検出する動体検出モジュール３２及び人物の顔を検出する顔検出モジュール３３と、音声データから音源方向を推定する音源方向推定モジュール３４と、上記動体検出結果に基づく動体方向、上記顔検出結果に基づく顔方向、及び上記推定された音源方向の何れかに移動するよう制御する制御手段とを有し、制御手段は、動体方向又は音源推定方向に歩行中に顔検出された場合、顔方向に移動するよう制御すると共に、顔検出対象となっている対象物に所定の範囲内に近づいたとき、歩行を停止するよう制御する。【選択図】　図９
2004130427.tif 000002
【特許請求の範囲】
【請求項１】
外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的な動作を実行するロボット装置において、
音声を検出する音声検出手段と、
上記音声検出手段により検出された音声データから音源方向を推定する音源方向推定手段と、
上記音源方向推定手段により推定された音源方向に移動するよう制御する制御手段とを有し、
上記音源方向推定手段は、過去に推定された音源方向に関する情報の履歴に基づき現在の音源方向を推定する
ことを特徴とするロボット装置。
【請求項２】
胴体部と、
上記胴体部に対して回転可能に接続された頭部とを有し、
上記音声検出手段は、上記頭部に設けられ、
上記制御手段は、上記過去に推定された音源方向に関する情報の履歴が存在しないときに、上記頭部を回転するよう制御し、
上記音源方向推定手段は、回転前後に検出された音声データから音源方向を推定する
ことを特徴とする請求項１記載のロボット装置。
【請求項３】
上記音声検出手段は異なる位置に複数設けられ、
上記音源方向推定手段は、各音声検出手段により検出された音声データに基づいて音源方向を推定する
ことを特徴とする請求項１記載のロボット装置。
【請求項４】
上記音源方向推定手段は、各音声検出手段により検出された音声データの時間差に基づき、音源方向及び位置を算出する
ことを特徴とする請求項３記載のロボット装置。
【請求項５】
外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的な動作を実行するロボット装置において、
撮像手段と、
音声を検出する音声検出手段と、
上記撮像手段により撮像された画像データから動体を検出する動体検出手段と、
上記画像データから人物の顔を検出する顔検出手段と、
上記音声検出手段により検出された音声データから音源方向を推定する音源方向推定手段と、
少なくとも上記動体検出、上記顔検出、及び上記音源方向推定のうち、上記顔検出を優先して行うよう制御する制御手段とを有する
ことを特徴とするロボット装置。
【請求項６】
上記制御手段は、上記動体検出結果、又は上記音源方向推定結果に基づく動作中に顔検出された場合に、該顔検出結果を優先する
ことを特徴とする請求項５記載のロボット装置。
【請求項７】
上記制御手段は、上記動体検出処理、又は上記音源方向推定処理中に顔検出された場合に、該顔検出処理を優先する
ことを特徴とする請求項５記載のロボット装置。
【請求項８】
上記音源方向推定手段は、過去に推定された音源方向に関する情報の履歴に基づき現在の音源方向を推定する
ことを特徴とする請求項５記載のロボット装置。
【請求項９】
対象物との距離を検出する距離検出手段と、
対象物との接触を検出する接触検出手段とを有し、
上記制御手段は、上記距離検出手段により対象物との距離が所定値以下であることが検出されたとき、上記音声検出手段により予め決められた音声データが検出されたとき、又は上記接触検出手段により接触が検出されたときに上記移動を停止するよう制御する
ことを特徴とする請求項５記載のロボット装置。
【請求項１０】
外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的な動作を実行するロボット装置の行動制御方法において、
音声検出手段により音声を検出する音声検出工程と、
上記音声検出工程にて検出された音声データから音源方向を推定する音源方向推定工程と、
上記音源方向推定工程にて推定された音源方向に移動するよう制御する制御工程とを有し、
上記音源方向推定工程では、過去に推定された音源方向に関する情報の履歴に基づき現在の音源方向が推定される
ことを特徴とするロボット装置の行動制御方法。
【請求項１１】
胴体部と、該胴体部に対して回転可能に接続された頭部とを有し、上記音声検出手段は、該頭部に設けられ、
上記制御工程では、上記過去に推定された音源方向の履歴に関する情報が存在しないときに、上記頭部を回転するよう制御され、
上記音源方向推定工程では、回転前後に検出された音声データから音源方向が推定される
ことを特徴とする請求項１０記載のロボット装置の行動制御方法。
【請求項１２】
上記音源方向推定工程では、異なる位置に複数設けられた各音声検出手段により検出された音声データに基づいて音源方向が推定される
ことを特徴とする請求項１０記載のロボット装置の行動制御方法。
【請求項１３】
上記音源方向推定工程では、各音声検出手段により検出された音声データの時間差に基づき、音源方向及び位置が算出される
ことを特徴とする請求項１２記載のロボット装置の行動制御方法。
【請求項１４】
外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的な動作を実行するロボット装置の行動制御方法において、
音声検出手段により音声を検出する音声検出工程と、
撮像手段により撮像された画像データから動体を検出する動体検出工程と、
上記画像データから人物の顔を検出する顔検出工程と、
上記音声検出工程にて検出された音声データから音源方向を推定する音源方向推定工程と、
少なくとも上記動体検出、上記顔検出、及び上記音源方向推定のうち、上記顔検出を優先して行うよう制御する制御工程と
を有することを特徴とするロボット装置の行動制御方法。
【請求項１５】
上記制御工程では、上記動体検出結果、又は上記音源方向推定結果に基づく動作中に顔検出された場合に、該顔検出結果が優先される
ことを特徴とする請求項１４記載のロボット装置の行動制御方法。
【請求項１６】
上記制御工程では、上記動体検出処理、又は上記音源方向推定結果処理中に顔検出された場合に、該顔検出処理が優先される
ことを特徴とする請求項１４記載のロボット装置の行動制御方法。
【請求項１７】
上記音源方向推定工程では、過去に推定された音源方向に関する情報の履歴に基づき現在の音源方向が推定される
ことを特徴とする請求項１４記載のロボット装置の行動制御方法。
【請求項１８】
上記制御工程では、対象物との距離を検出する距離検出手段により対象物との距離が所定値以下であることが検出されたとき、上記音声検出手段により予め決められた音声データが検出されたとき、又は上記対象物との接触を検出する接触検出手段により接触が検出されたときに、上記検出結果に基づく動作を停止するよう制御される
ことを特徴とする請求項１４記載のロボット装置の行動制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２足又は４足等の脚部を備えて移動可能であって、自律的に動作するロボット装置及びその動作制御方法に関し、特に人間の顔、呼びかけ、又は動き等に反応して自律的に移動するようなロボット装置及びその動作制御方法に関する。
【０００２】
【従来の技術】
電気的又は磁気的な作用を用いて人間（生物）の動作に似た運動を行う機械装置を「ロボット」という。我が国においてロボットが普及し始めたのは、１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータや搬送ロボット等の産業用ロボット（Ｉｎｄｕｓｔｒｉａｌ　Ｒｏｂｏｔ）であった。
【０００３】
最近では、人間のパートナーとして生活を支援する、すなわち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬、猫のように４足歩行の動物の身体メカニズムやその動作を模した「ペット型」ロボット、或いは、２足直立歩行を行う動物の身体メカニズムや動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット（Ｈｕｍａｎｏｉｄ　Ｒｏｂｏｔ）等の脚式移動ロボットは、既に実用化されつつある。
【０００４】
これらの脚式移動ロボットは、産業用ロボットと比較して、エンターテインメント性を重視した様々な動作を行うことができるため、エンターテインメントロボットと呼称される場合もある。
【０００５】
脚式移動ロボットは、動物や人間の容姿にできる限り近い外観形状とされ、動物や人間の動作にできる限り近い動作を行うように設計されている。例えば、上述した４足歩行の「ペット型」ロボットの場合は、一般家庭において飼育される犬や猫に似た外観形状を有し、ユーザ（飼い主）からの「叩く」や「撫でる」といった働きかけや、周囲の環境等に応じて自律的に行動する。例えば、自律的な行動として、実際の動物と同様に、「吠える」、「寝る」等といった行動をする。
【０００６】
ところで、このようなエンターテイメント型のロボット装置において、画像内の動体を検出することにより、エンターテイメント性の向上を図ったロボット装置が下記特許文献１に開示されている。
【０００７】
この特許文献１に記載のロボット装置は、外部を撮像する撮像手段と、撮像手段からの画像情報に基づく画像全体の移動を検出する第１の検出手段と、第１の検出手段の検出結果を考慮した所定の動き検出処理により、画像内の動きを検出する第２の検出手段とを備え、第２の検出手段の検出結果を上記行動に反映させるものである。この第１の検出手段は、画像情報に基づく現フレームの分割画像と、前フレームの対応する位置の分割画像とのマッチングスコアを算出し、この算出結果に基づき画像全体の移動量を検出するものであり、第２の検出手段は、検出した移動量が小さいときは画像内の動き検出の感度を上げて小さな動きでも検出可能とし、移動量が大きいときは、感度を低下させることにより、誤検出を低減しつつ、検出した動体検出結果を自身の動きに反映させる。即ち、例えば、大きな動きが突然検出された場合は、ロボット装置の行動生成モジュールにおける「驚き」のパラメータが上昇し、「驚き」の感情表出の行動が決定される等することにより、エンターテイメント性を向上させることができる。
【０００８】
【特許文献１】
特開平１４−２５１６１５号公報
【０００９】
【発明が解決しようとする課題】
しかしながら、エンターテイメント型のロボット装置においては、特に人間等の特定の対象物のみの動きに反応させるようにしたい場合があり、そのような場合、上述の特許文献１に記載のロボット装置のように、検出された動体の動きのみを使用しても、例えば撮像された画像内に複数の動体が存在する場合、対象物が移動していない場合等に行動をとらせることが難しい。例えば、ロボット装置が動きのない対象物であっても対象物を検出でき、また、対象者の呼びかけ、動き等に敏感に反応して行動を実行するようにすれば、ペットらしさ、動物らしさが表出して更にエンターテイメント性が向上する。
【００１０】
本発明は、このような従来の実情に鑑みて提案されたものであり、対象物に対してより自然な動作を行えて、エンターテイメント性を向上したロボット装置及びロボット装置の行動制御方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上述した目的を達成するために、本発明に係るロボット装置は、外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的な動作を実行するロボット装置において、音声を検出する音声検出手段と、上記音声検出手段により検出された音声データから音源方向を推定する音源方向推定手段と、上記音源方向推定手段により推定された音源方向に移動するよう制御する制御手段とを有し、上記音源方向推定手段は、過去に推定された音源方向に関する情報の履歴に基づき現在の音源方向を推定することを特徴とする。
【００１２】
本発明においては、音声データに基づき音源方向を推定する際に、現在の音声データのみでは音源方向を推定できない場合があるが、その際、過去に推定された音源方向等の履歴を参照することにより、現在の音源方向の推定を行うことができる。
【００１３】
また、上記音声検出手段は、胴体部に対して回転可能に接続された頭部に設けられ、上記制御手段は、上記過去に推定された音源方向に関する情報の履歴が存在しないときに、上記頭部を回転するよう制御し、上記音源方向推定手段は、回転前後に検出された音声データから音源方向を推定することができ、過去の音源方向の履歴がなくても、頭部を回転して検出した回転前後の音声データにより音源方向の推定を行うことができる。
【００１４】
本発明に係るロボット装置は、外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的な動作を実行するロボット装置において、撮像手段と、音声を検出する音声検出手段と、上記撮像手段により撮像された画像データから動体を検出する動体検出手段と、上記画像データから人物の顔を検出する顔検出手段と、上記音声検出手段により検出された音声データから音源方向を推定する音源方向推定手段と、少なくとも上記動体検出、上記顔検出、及び上記音源方向推定のうち、上記顔検出を優先して行うよう制御する制御手段とを有することを特徴とする。
【００１５】
本発明においては、ロボット装置は、顔検出、動体検出、音声検出等の複数の処理を並行して行っている場合、顔検出を優先的に行い、これを行動に反映することにより、より対象物の特定率を向上する。
【００１６】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を周囲環境（或いは外部刺激）や内部状態に応じて自律行動をする自律型のロボット装置に適用したものである。
【００１７】
本実施の形態では、先ず、ロボット装置の構成について説明して、その後、ロボット装置における本発明の適用部分について詳細に説明する。
【００１８】
（１）本実施の形態によるロボット装置の構成
図１に示すように、本実施の形態におけるロボット装置１は、「犬」等の動物を模した形状のいわゆるペット型ロボットとされ、胴体部ユニット２の前後左右にそれぞれ脚部ユニット３Ａ，３Ｂ，３Ｃ，３Ｄが連結されると共に、胴体部ユニット２の前端部に頭部ユニット４が連結されて構成されている。
【００１９】
胴体部ユニット２には、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１０、ＤＲＡＭ（Ｄｙｎａｍｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１１、フラッシュＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）１２、ＰＣ（Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）カードインターフェイス回路１３及び信号処理回路１４が内部バス１５を介して相互に接続されることにより形成されたコントロール部１６と、このロボット装置１の動力源としてのバッテリ１７とが収納されている。また、胴体部ユニット２には、ロボット装置１の向きや動きの加速度を検出するための角速度センサ１８及び加速度センサ１９が収納されている。また、胴体部ユニット２には、鳴き声等の音声又はメロディを出力するためのスピーカ２０が、図１に示すように所定位置に配置されている。また、胴体部ユニット２の尻尾部５には、使用者からの操作入力を検出する検出機構としての操作スイッチ２１が備えられている。操作スイッチ２１は、使用者による操作の種類を検出できるスイッチであって、ロボット装置１は、操作スイッチ２１によって検出される操作の種類に応じて、例えば「誉められた」か、「叱られた」かを認識する。
【００２０】
頭部ユニット４には、ロボット装置１の「目」に相当し、外部の状況や対象物の色、形、動き等を撮像するためのＣＣＤ（Ｃｈａｒｇｅ　Ｃｏｕｐｌｅｄ　Ｄｅｖｉｃｅ）カメラ２２と、前方に位置する対象物までの距離を測定するための距離センサ２３と、ロボット装置１の左右の「耳」に相当し、外部音を集音するためのマイクロホン２４と、例えばＬＥＤ（Ｌｉｇｈｔ　Ｅｍｉｔｔｉｎｇ　Ｄｉｏｄｅ）を備えた発光部２５等が、図１に示すように所定位置にそれぞれ配置されている。ただし、発光部２５は、構成の説明等においては、必要に応じてＬＥＤ２５と示す。また、頭部ユニット４内部には、図１には図示しないが、ユーザの頭部ユニット４に対する接触を間接的に検出するための検出機構として頭部スイッチ２６が備えられている。頭部スイッチ２６は、例えば、使用者の接触によって頭部が動かされた場合、その傾き方向を検出できるスイッチであって、ロボット装置１は、頭部スイッチ２６によって検出される頭部の傾き方向に応じて、「誉められた」か「叱られた」かを認識する。
【００２１】
各脚部ユニット３Ａ〜３Ｄの関節部分、各脚部ユニット３Ａ〜３Ｄと胴体部ユニット２との連結部分、頭部ユニット４と胴体部ユニット２との連結部分には、自由度数分のアクチュエータ２８１〜２８ｎ及びポテンショメータ２９１〜２９ｎがそれぞれ配設されている。アクチュエータ２８１〜２８ｎは、例えば、サーボモータを備えている。サーボモータの駆動により、脚部ユニット３Ａ〜３Ｄが制御されて目標の姿勢、或いは動作に遷移する。各脚部ユニット３Ａ〜３Ｄの先端の「肉球」に相当する位置には、主としてユーザからの接触を検出する検出機構としての肉球スイッチ２７Ａ〜２７Ｄが設けられ、ユーザによる接触等を検出できるようになっている。
【００２２】
ロボット装置１は、この他にも、ここでは図示しないが、該ロボット装置１の内部状態とは別の動作状態（動作モード）を表すための発光部や、充電中、起動中、起動停止等、内部電源の状態を表す状態ランプ等を、適切な箇所に適宜備えていてもよい。
【００２３】
そして、ロボット装置１において、操作スイッチ２１、頭部スイッチ２６及び肉球スイッチ２７等の各種スイッチと、角速度センサ１８、加速度センサ１９、距離センサ２３等の各種センサと、スピーカ２０、マイクロホン２４、発光部２５、各アクチュエータ２８１〜２８ｎ、各ポテンショメータ２９１〜２９ｎは、それぞれ対応するハブ３０１〜３０ｎを介してコントロール部１６の信号処理回路１４と接続されている。一方、ＣＣＤカメラ２２及びバッテリ１７は、それぞれ信号処理回路１４と直接接続されている。
【００２４】
信号処理回路１４は、上述の各種スイッチから供給されるスイッチデータ、各種センサから供給されるセンサデータ、画像データ及び音声データを順次取り込み、これらをそれぞれ内部バス１５を介してＤＲＡＭ１１内の所定位置に順次格納する。また信号処理回路１４は、これとともにバッテリ１７から供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、ＤＲＡＭ１１内の所定位置に格納する。
【００２５】
このようにしてＤＲＡＭ１１に格納された各スイッチデータ、各センサデータ、画像データ、音声データ及びバッテリ残量データは、ＣＰＵ１０が当該ロボット装置１の動作制御を行う際に使用される。
【００２６】
ＣＰＵ１０は、ロボット装置１の電源が投入された初期時において、フラッシュＲＯＭ１２に格納された制御プログラムを読み出して、ＤＲＡＭ１１に格納する。又は、ＣＰＵ１０は、図１に図示しない胴体部ユニット２のＰＣカードスロットに装着された半導体メモリ装置、例えば、メモリカード３１に格納された制御プログラムをＰＣカードインターフェイス回路１３を介して読み出してＤＲＡＭ１１に格納する。
【００２７】
ＣＰＵ１０は、上述のように信号処理回路１４よりＤＲＡＭ１１に順次格納される各センサデータ、画像データ、音声データ、及びバッテリ残量データに基づいて自己及び周囲の状況や、使用者からの指示及び働きかけの有無を判断している。
【００２８】
さらに、ＣＰＵ１０は、この判断結果及びＤＲＡＭ１１に格納した制御プログラムに基づいて続く行動を決定すると共に、当該決定結果に基づいて必要なアクチュエータ２８１〜２８ｎを駆動させることにより、頭部ユニット４を上下左右に振らせたり、各脚部ユニット３Ａ〜３Ｄを駆動させて歩行させるなどの行動を行わせる。
【００２９】
また、この際ＣＰＵ１０は、必要に応じて音声データを生成し、これを信号処理回路１４を介して音声信号としてスピーカ２０に与えることにより当該音声信号に基づく音声を外部に出力させたり、上述の発光部２５におけるＬＥＤの点灯及び消灯を指示する信号を生成し、発光部２５を点灯したり消灯したりする。
【００３０】
このようにしてこのロボット装置１においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るようになされている。
【００３１】
（２）制御プログラムのソフトウェア構成
ここで、ロボット装置１における上述の制御プログラムのソフトウェア構成は、図３に示すようになる。この図３において、デバイス・ドライバ・レイヤ４０は、この制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット４１から構成されている。この場合、各デバイス・ドライバは、ＣＣＤカメラ２２（図２）やタイマ等の通常のコンピュータで用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、対応するハードウェアからの割り込みを受けて処理を行う。
【００３２】
また、ロボティック・サーバ・オブジェクト４２は、デバイス・ドライバ・レイヤ４０の最下位層に位置し、例えば上述の各種センサやアクチュエータ２８１〜２８ｎ等のハードウェアにアクセスするためのインターフェースを提供するソフトウェア群でなるバーチャル・ロボット４３と、電源の切換えなどを管理するソフトウェア群でなるパワーマネージャ４４と、他の種々のデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネージャ４５と、ロボット装置１の機構を管理するソフトウェア群でなるデザインド・ロボット４６とから構成されている。
【００３３】
マネージャ・オブジェクト４７は、オブジェクト・マネージャ４８及びサービス・マネージャ４９から構成されている。オブジェクト・マネージャ４８は、ロボティック・サーバ・オブジェクト４２、ミドル・ウェア・レイヤ５０、及びアプリケーション・レイヤ５１に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群であり、サービス・マネージャ４９は、メモリカード３１（図２）に格納されたコネクションファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【００３４】
ミドル・ウェア・レイヤ５０は、ロボティック・サーバ・オブジェクト４２の上位層に位置し、画像処理や音声処理などのこのロボット装置１の基本的な機能を提供するソフトウェア群から構成されている。また、アプリケーション・レイヤ５１は、ミドル・ウェア・レイヤ５０の上位層に位置し、当該ミドル・ウェア・レイヤ５０を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット装置１の行動を決定するためのソフトウェア群から構成されている。
【００３５】
なお、ミドル・ウェア・レイヤ５０及びアプリケーション・レイヤ５１の具体なソフトウェア構成をそれぞれ図４に示す。
【００３６】
ミドル・ウェア・レイヤ５０は、図４に示すように、騒音検出用、温度検出用、明るさ検出用、音階認識用、距離検出用、姿勢検出用、接触検出用、操作入力検出用、動き検出用及び色認識用の各信号処理モジュール６０〜６９並びに入力セマンティクスコンバータモジュール７０などを有する認識系７１と、出力セマンティクスコンバータモジュール７９並びに姿勢管理用、トラッキング用、モーション再生用、歩行用、転倒復帰用、ＬＥＤ点灯用及び音再生用の各信号処理モジュール７２〜７８などを有する出力系８０とから構成されている。
【００３７】
認識系７１の各信号処理モジュール６０〜６９は、ロボティック・サーバ・オブジェクト４２のバーチャル・ロボット４３によりＤＲＡＭ１１（図２）から読み出される各センサデータや画像データ及び音声データのうちの対応するデータを取り込み、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクスコンバータモジュール７０に与える。ここで、例えば、バーチャル・ロボット４３は、所定の通信規約によって、信号の授受或いは変換をする部分として構成されている。
【００３８】
入力セマンティクスコンバータモジュール７０は、これら各信号処理モジュール６０〜６９から与えられる処理結果に基づいて、「うるさい」、「暑い」、「明るい」、「ドミソの音階が聞こえた」、「障害物を検出した」、「転倒を検出した」、「叱られた」、「誉められた」、「動く物体を検出した」又は「ボールを検出した」などの自己及び周囲の状況や、使用者からの指令及び働きかけを認識し、認識結果をアプリケーション・レイヤ５１（図２）に出力する。
【００３９】
アプリケーション・レイヤ５ｌは、図５に示すように、行動モデルライブラリ９０、行動切換モジュール９１、学習モジュール９２、感情モデル９３及び本能モデル９４の５つのモジュールから構成されている。
【００４０】
行動モデルライブラリ９０には、図６に示すように、「バッテリ残量が少なくなった場合」、「転倒復帰する」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」などの予め選択されたいくつかの条件項目にそれぞれ対応させて、それぞれ独立した行動モデル９０１〜９０ｎが設けられている。
【００４１】
そして、これら行動モデル９０１〜９０ｎは、それぞれ入力セマンティクスコンバータモジュール７１から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、必要に応じて後述のように感情モデル９３に保持されている対応する情動のパラメータ値や、本能モデル９４に保持されている対応する欲求のパラメータ値を参照しながら続く行動をそれぞれ決定し、決定結果を行動切換モジュール９１に出力する。
【００４２】
なお、この実施の形態の場合、各行動モデル９０１〜９０ｎは、次の行動を決定する手法として、図７に示すような１つのノード（状態）ＮＯＤＥ０〜ＮＯＤＥｎから他のどのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移するかを各ノードＮＯＤＥ０〜ＮＯＤＥｎに間を接続するアークＡＲＣ１〜ＡＲＣｎに対してそれぞれ設定された遷移確率Ｐ１〜Ｐｎに基づいて確率的に決定する有限確率オートマトンと呼ばれるアルゴリズムを用いる。
【００４３】
具体的に、各行動モデル９０１〜９０ｎは、それぞれ自己の行動モデル９０１〜９０ｎを形成するノードＮＯＤＥ０〜ＮＯＤＥｎにそれぞれ対応させて、これらノードＮＯＤＥ０〜ＮＯＤＥｎごとに図８に示すような状態遷移表１００を有している。
【００４４】
この状態遷移表１００では、そのノードＮＯＤＥ０〜ＮＯＤＥｎにおいて遷移条件とする入力イベント（認識結果）が「入力イベント名」の列に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の列における対応する行に記述されている。
【００４５】
したがって、図８の状態遷移表１００で表されるノードＮＯＤＥ１００では、「ボールを検出（ＢＡＬＬ）」という認識結果が与えられた場合に、当該認識結果と共に与えられるそのボールの「大きさ（ＳＩＺＥ）」が「０から１０００」の範囲であることや、「障害物を検出（ＯＢＳＴＡＣＬＥ）」という認識結果が与えられた場合に、当該認識結果と共に与えられるその障害物までの「距離（ＤＩＳＴＡＮＣＥ）」が「０から１００」の範囲であることが他のノードに遷移するための条件となっている。
【００４６】
また、このノードＮＯＤＥ１００では、認識結果の入力がない場合においても、行動モデル９０１〜９０ｎが周期的に参照する感情モデル９３及び本能モデル９４にそれぞれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル９３に保持された「喜び（ＪＯＹ）」、「驚き（ＳＵＲＰＲＩＳＥ）」若しくは「悲しみ（ＳＵＤＮＥＳＳ）」のいずれかのパラメータ値が「５０から１００」の範囲であるときには他のノードに遷移することができるようになっている。
【００４７】
また、状態遷移表１００では、「他のノードヘの遷移確率」の欄における「遷移先ノード」の行にそのノードＮＯＤＥ０〜　ＮＯＤＥｎから遷移できるノード名が列記されていると共に、「入力イベント名」、「データ値」及び「データの範囲」の列に記述された全ての条件が揃ったときに遷移できる他の各ノードＮＯＤＥ０〜ＮＯＤＥｎへの遷移確率が「他のノードヘの遷移確率」の欄内の対応する箇所にそれぞれ記述され、そのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移する際に出力すべき行動が「他のノードヘの遷移確率」の欄における「出力行動」の行に記述されている。なお、「他のノードヘの遷移確率」の欄における各行の確率の和は１００［％］となっている。
【００４８】
したがって、図８の状態遷移表１００で表されるノードＮＯＤＥ１００では、例えば「ボールを検出（ＢＡＬＬ）」し、そのボールの「ＳＩＺＥ（大きさ）」が「０から１０００」の範囲であるという認識結果が与えられた場合には、「３０［％］」の確率で「ノードＮＯＤＥ１２０（ｎｏｄｅ　１２０）」に遷移でき、そのとき「ＡＣＴＩＯＮ１」の行動が出力されることとなる。
【００４９】
各行動モデル９０１〜９０ｎは、それぞれこのような状態遷移表１００として記述されたノードＮＯＤＥ０〜ＮＯＤＥｎがいくつも繋がるようにして構成されており、入力セマンティクスコンバータモジュール７１から認識結果が与えられたときなどに、対応するノードＮＯＤＥ０〜ＮＯＤＥｎの状態遷移表を利用して確率的に次の行動を決定し、決定結果を行動切換モジュール９１に出力するようになされている。
【００５０】
図５に示す行動切換モジュール９１は、行動モデルライブラリ９０の各行動モデル９０１〜９０ｎからそれぞれ出力される行動のうち、予め定められた優先順位の高い行動モデル９０１〜９０ｎから出力された行動を選択し、当該行動を実行すべき旨のコマンド（以下、これを行動コマンドという。）をミドル・ウェア・レイヤ５０の出力セマンティクスコンバータモジュール７９に送出する。なお、この実施の形態においては、図６において下側に表記された行動モデル９０１〜９０ｎほど優先順位が高く設定されている。
【００５１】
また、行動切換モジュール９１は、行動完了後に出力セマンティクスコンバータモジュール７９から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール９２、感情モデル９３及び本能モデル９４に通知する。
【００５２】
一方、学習モジュール９２は、入力セマンティクスコンバータモジュール７１から与えられる認識結果のうち、「叱られた」や「誉められた」など、使用者からの働きかけとして受けた教示の認識結果を入力する。そして、学習モジュール９２は、この認識結果及び行動切換モジュール９１からの通知に基づいて、「叱られた」ときにはその行動の発現確率を低下させ、「誉められた」ときにはその行動の発現確率を上昇させるように、行動モデルライブラリ９０における対応する行動モデル９０１〜９０ｎの対応する遷移確率を変更する。
【００５３】
他方、感情モデル９３は、「喜び（ｊｏｙ）」、「悲しみ（ｓａｄｎｅｓｓ）」、「怒り（ａｎｇｅｒ）」、「驚き（ｓｕｒｐｒｉｓｅ）」、「嫌悪（ｄｉｓｇｕｓｔ）」及び「恐れ（ｆｅａｒ）」の合計６つの情動について、各情動ごとにその情動の強さを表すパラメータを保持している。そして、感情モデル９３は、これら各情動のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール７１から与えられる「叱られた」及び「誉められた」などの特定の認識結果と、経過時間及び行動切換モジュール９１からの通知などに基づいて周期的に更新する。
【００５４】
具体的には、感情モデル９３は、入力セマンティクスコンバータモジュール７１から与えられる認識結果と、そのときのロボット装置１の行動と、前回更新してからの経過時間などに基づいて所定の演算式により算出されるそのときのその情動の変動量を△Ｅ［ｔ］、現在のその情動のパラメータ値をＥ［ｔ］、その情動の感度を表す係数をｋｅとして、（１）式によって次の周期におけるその情動のパラメータ値Ｅ［ｔ＋１］を算出し、これを現在のその情動のパラメータ値Ｅ［ｔ］と置き換えるようにしてその情動のパラメータ値を更新する。また、感情モデル７３は、これと同様にして全ての情動のパラメータ値を更新する。
【００５５】
【数１】
2004130427.tif 000003
【００５６】
なお、各認識結果や出力セマンティクスコンバータモジュール７９からの通知が各情動のパラメータ値の変動量△Ｅ［ｔ］にどの程度の影響を与えるかは予め決められており、例えば「叩かれた」といった認識結果は「怒り」の情動のパラメータ値の変動量△Ｅ［ｔ］に大きな影響を与え、「撫でられた」といった認識結果は「喜び」の情動のパラメータ値の変動量△Ｅ［ｔ］に大きな影響を与えるようになっている。
【００５７】
ここで、出力セマンティクスコンバータモジュール７９からの通知とは、いわゆる行動のフィードバック情報（行動完了情報）であり、行動の出現結果の情報であり、感情モデル９３は、このような情報によっても感情を変化させる。これは、例えば、「吠える」といった行動により怒りの感情レベルが下がるといったようなことである。なお、出力セマンティクスコンバータモジュール７９からの通知は、上述した学習モジュール９２にも入力されており、学習モジュール９２は、その通知に基づいて行動モデル９０１〜９０ｎの対応する遷移確率を変更する。
【００５８】
なお、行動結果のフィードバックは、行動切換モジュール９１の出力（感情が付加された行動）によりなされるものであってもよい。
【００５９】
一方、本能モデル９４は、「運動欲（ｅｘｅｒｃｉｓｅ）」、「愛情欲（ａｆｆｅｃｔｉｏｎ）」、「食欲（ａｐｐｅｔｉｔｅ）」及び「好奇心（ｃｕｒｉｏｓｉｔｙ）」の互いに独立した４つの欲求について、これら欲求ごとにその欲求の強さを表すパラメータを保持している。そして、本能モデル９４は、これらの欲求のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール７１から与えられる認識結果や、経過時間及び行動切換モジュール９１からの通知などに基づいて周期的に更新する。
【００６０】
具体的には、本能モデル９４は、「運動欲」、「愛情欲」及び「好奇心」については、認識結果、経過時間及び出力セマンティクスコンバータモジュール６８からの通知などに基づいて所定の演算式により算出されるそのときのその欲求の変動量をΔＩ［ｋ］、現在のその欲求のパラメータ値をＩ［ｋ］、その欲求の感度を表す係数ｋｉとして、所定周期で（２）式を用いて次の周期におけるその欲求のパラメータ値Ｉ［ｋ＋１］を算出し、この演算結果を現在のその欲求のパラメータ値Ｉ［ｋ］と置き換えるようにしてその欲求のパラメータ値を更新する。また、本能モデル９４は、これと同様にして「食欲」を除く各欲求のパラメータ値を更新する。
【００６１】
【数２】
2004130427.tif 000004
【００６２】
なお、認識結果及び出力セマンティクスコンバータモジュール７９からの通知などが各欲求のパラメータ値の変動量△Ｉ［ｋ］にどの程度の影響を与えるかは予め決められており、例えば出力セマンティクスコンバータモジュール７９からの通知は、「疲れ」のパラメータ値の変動量△Ｉ［ｋ］に大きな影響を与えるようになっている。
【００６３】
なお、本実施の形態においては、各情動及び各欲求（本能）のパラメータ値がそれぞれ０から１００までの範囲で変動するように規制されており、また係数ｋｅ、ｋｉの値も各情動及び各欲求ごとに個別に設定されている。
【００６４】
一方、ミドル・ウェア・レイヤ５０の出力セマンティクスコンバータモジュール７９は、図４に示すように、上述のようにしてアプリケーション・レイヤ５１の行動切換モジュール９１から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング（ボールを追いかける）」といった抽象的な行動コマンドを出力系８０の対応する信号処理モジュール７２〜７８に与える。
【００６５】
そしてこれら信号処理モジュール７２〜７８は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ２８１〜２８ｎ（図２）に与えるべきサーボ指令値や、スピーカ２０（図２）から出力する音の音声データ及び／又は発光部２５（図２）のＬＥＤに与える駆動データを生成し、これらのデータをロボティック・サーバ・オブジェクト４２のバーチャル・ロボット４３及び信号処理回路１４（図２）を順次介して対応するアクチュエータ２８１〜２８ｎ、スピーカ２０又は発光部２５に順次送出する。
【００６６】
このようにしてロボット装置１においては、制御プログラムに基づいて、自己（内部）及び周囲（外部）の状況や、使用者からの指示及び働きかけに応じた自律的な行動を行うことができるようになされている。
【００６７】
（３）ロボット装置における行動制御方法
ここで、上述したような構造を有するロボット装置１において、対象者の音声、顔、動き等を検出し、これらの検出結果に基づき行動を実行するロボット装置の行動制御方法について説明する。本実施の形態におけるロボット装置は、図１に示す音声検出手段であるマイクロホン２４により、対象者の音声を検出し、その音声データに基づきその音源方向を推定する。また、図１に示す撮像手段によるＣＣＤカメラ２２により取得された画像データに基づき、対象物の顔を検出する。更に、画像データに基づき、動体検出を行う。そして、推定された音源方向、顔検出結果に基づく顔方向、動体検出結果に基づく動体方向のいずれかの方向にロボット装置自身が移動を開始し、例えば対象物にある程度近づいた場合等の所定の条件により、その移動を停止するものである。ここで、本実施の形態においては、音声、顔、及び動体が検出された場合、顔検出結果を優先的に使用してその行動に反映させるものである。これは、顔検出が最も高精度に検出可能であるためであるが、更に音声検出及び動体検出結果を利用することにより、検出効率を向上し、検出結果をロボット装置の動作に反映させて更にエンターテイメント性を向上させるものである。
【００６８】
図９は、図２乃至図６に示すロボット装置において、音声、顔、動体検出により、その行動を制御するために必要な構成部分を抽出して示すブロック図である。図９に示すように、ＣＣＤカメラ２２により撮像された画像データ、及びマイクロホン２４により検出された音声データは、ＤＲＡＭ１１の所定の場所に格納され、ロボティック・サーバ・オブジェクト４２におけるバーチャル・ロボット４３に供給される。このバーチャル・ロボット４３は、画像データをＤＲＡＭ１１から読み出し、ミドル・ウェア・レイヤ５０における動体検出モジュール３２及び顔検出モジュール３３に供給し、音声データを読み出し、音源方向推定モジュール３４に供給する。各モジュールでは、後述する動体検出処理、顔検出処理、音源方向推定処理がなされ、その検出処理結果がアプリケーション・レイヤ５１における行動モデルライブラリ９０に供給される。
【００６９】
行動モデルライブラリ９０は、必要に応じて情動のパラメータ値や欲求のパラメータ値を参照しながら続く行動を決定し、決定結果を行動切換モジュール９１に与える。そして、行動切換モジュール９１は、当該決定結果に基づく行動コマンドをミドル・ウェア・レイヤ５０の出力系８０におけるトラッキング用信号処理モジュール７３、歩行モジュール７５に送出する。
【００７０】
トラッキング用信号処理モジュール７３、歩行モジュール７５は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ２８１〜２８ｎに与えるべきサーボ指令値を生成し、このデータをロボティック・サーバ・オブジェクト４２のバーチャル・ロボット４３及び信号処理回路１４（図２）を順次介して対応するアクチュエータ２８１〜２８ｎに順次送出する。この結果、ロボット装置１の行動が制御され、例えば対象物に対して近づく等の行動を発現する。
【００７１】
先ず、顔検出モジュール３３における顔検出処理について具体的に説明する。顔検出モジュール３３では、例えば平均的な正面顔のテンプレート画像を使用し、入力画像と、テンプレート画像との相関を求めることにより、顔検出を行うことができる。
【００７２】
顔検出モジュール３３は、ＣＣＤカメラ等の撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求めるテンプレートマッチング部（図示せず）と、相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定部（図示せず）と、顔画像が含まれると判定された場合に、該顔画像を抽出する顔抽出部（図示せず）とから構成される。
【００７３】
テンプレートマッチング部に供給される入力画像は、用意されたテンプレート画像における顔の大きさと一致させるため、フレーム画像を例えば複数のスケールに変換した後、所定の大きさに切り出した画像とすることができ、テンプレートマッチング部は、各スケール毎の入力画像についてマッチングを行う。テンプレート画像としては、例えば１００人程度の人物の平均からなる平均的な顔画像を使用することができる。
【００７４】
判定部は、テンプレートマッチング部におけるテンプレートマッチングにおいて、所定の閾値以上の相関値を示した場合にその入力画像に顔画像が含まれると判定し、顔抽出部により、該当する顔領域を抽出する。
【００７５】
ここで、判定部において、いずれのマッチング結果も所定の閾値未満である場合は、入力画像にはテンプレート画像が示す顔が含まれていないと判定し、その判定結果をテンプレートマッチング部に返す。マッチング部は、入力画像に顔画像が含まれないと判定された場合、次のスケール画像とのマッチングを行う。
【００７６】
そして、判定部は、次のスケール画像とテンプレート画像とのマッチング結果から、当該スケール画像に顔画像が含まれるか否かを判定する。そして、上述した如く、相関値が所定の閾値以上である場合、顔画像が含まれると判定する。全てのスケール画像とのマッチングを行い、顔検出されなかった場合は、次のフレーム画像の処理を行う。
【００７７】
また、通常、テンプレートマッチングで使用される平均顔は、正面から撮影された一般的なものを使用して行うため、正面から撮影した顔以外（以下、非正面顔という。）を検出することが難しい。例えば、ロボット装置において、画像を取得するためのＣＣＤカメラが例えばロボット装置の顔部に搭載されていると、転倒して仰向けになったロボット装置を使用者等が覗き込んだ際等に撮影される顔画像は、通常の正面顔とは逆方向、即ち、正面顔を略１８０°回転した状態の非正面顔となる。そこで、このような非正面顔が撮影された場合であっても顔検出を可能とするため、正面顔のテンプレート画像を使用し、正面顔のテンプレート画像を使用しても顔検出できなかった場合は、テンプレート画像を所定の角度回転して使用すると共に、顔検出された場合は、検出時の回転角度のテンプレート画像を使用して、次の入力画像とのマッチングを行うことにより、非正面顔であっても検出可能になると共に、前回の回転角度を記憶することにより、顔検出処理を高速化するようにしてもよい。
【００７８】
こうして顔検出モジュールでは、画像データから顔検出し、ロボット装置は、この検出結果に基づき、検出した顔の方向に近づく、顔方向を向く、或いはトラッキングする等の行動を行うことができる。
【００７９】
次に、動体検出モジュール３２における動体検出について具体的に説明する。動体検出処理は、図４に示したミドル・ウェア・レイヤ５０の認識系７１における動体検出モジュールでは、ＣＣＤカメラ２２（図２）によって撮像した画像データ内の動体を検出し、検出した動体の方向を向く、或いはトラッキングするなどといった行動を行う。
【００８０】
例えば、フレーム間の差分画像を生成し、この差分画像から動体を検出することができる。例えば静止画像において、フレーム間の差分値は動体の動きが停止した時点で０となる。例えば、図１０に示すように、それぞれ時刻ｔ１〜ｔ４における人間を撮像した画像データＰ１〜Ｐ４について差分画像データＤ１〜Ｄ３を生成した場合、時刻ｔ３及びｔ４間で顔が静止していると、差分画像データＤ３から顔の差分データが消失してしまう。つまり、差分画像データから動体が消失したということは、動体がその場から消失したのではなく、消えた場所に動体が存在するということを意味している。
【００８１】
そこで、ロボット装置１は、この差分が０となる時点を検出すれば動体の位置を検出することができる。このような動体検出により、例えば、その直前の差分画像における重心位置の方向にＣＣＤカメラ２２を向けることで重心位置の方向を向き、又は重心位置の方向に近付くことができる。すなわち、図１１のフローチャートに示すように、先ずステップＳ１において、差分画像データの重心位置を計算することで動体を検出し、ステップＳ２において、検出した動体が差分画像データから消失したか否かが判別される。ステップＳ２において動体が消えていない場合（Ｎｏ）にはステップＳ１に戻る。一方、ステップＳ２において動体が消えた場合（Ｙｅｓ）にはステップＳ３に進み、消失した方向、すなわち直前の差分画像における重心位置の方向を向く、或いはその重心位置の方向に近付く。
【００８２】
なお、検出した動体がロボット装置１の視覚範囲から外れた場合にも差分画像から動体が消失するが、この場合にも上述のステップＳ３において最後に検出された重心位置の方向を向くことで、ほぼ動体の方向を向くことができる。
【００８３】
このように、ロボット装置１は、視覚範囲内で動体が静止したことにより差分画像データから消失するのを検出し、その重心位置の方向を向くようにすることで、例えば人間等の動体の気配を感じてその方向を向くという自律的なインタラクションを実現できる。また、動体が視覚範囲から外れたことにより差分画像データから消失するのを検出し、最後に検出された重心位置の方向を向くようにすることで、ほぼ動体の方向を向くことができる。
【００８４】
また、ロボット装置１は、差分画像データから動体が消失した場合のみならず、所定の時間間隔毎、或いは動体の重心位置が視覚範囲から外れそうになる毎に検出された重心方向を向き、動体をトラッキングするようにしても構わない。すなわち、図１２のフローチャートに示すように、先ずステップＳ１０において、差分画像データの重心位置を計算することで動体を検出し、ステップＳ１１において、所定の時間間隔毎、或いは動体が視覚範囲から外れそうになる毎に検出された重心位置の方向を向く。
【００８５】
ここで、ロボット装置１は、前述のように差分画像データから動体が消失した場合の他、ステップＳ１１におけるロボット装置１の動きが大きい場合には、動き補償によって自己の動きと動体の動きとを区別することができなくなり、動体を見失ってしまう。そこでステップＳ１２において、動体を見失ったか否かが判別される。ステップＳ１２において動体を見失っていない場合（Ｎｏ）にはステップＳ１０に戻る。一方、ステップＳ１２において動体を見失った場合（Ｙｅｓ）にはステップＳ１３に進み、最後に検出された重心位置の方向を向く。
【００８６】
このように、ロボット装置１は、所定の時間間隔毎、或いは動体が視覚範囲から外れそうになる毎に検出された重心方向を向き、動体を見失った場合に最後に検出された重心位置の方向を向くようにすることで、頭部ユニット４に設けられたＣＣＤカメラ２２によって撮像した画像内の動体を簡易な手法により検出し、トラッキングすることが可能となる。
【００８７】
このような動体検出処理は、先ず、図９に示すロボティック・サーバ・オブジェクト４２のバーチャル・ロボット４３がＣＣＤカメラ２２によって撮像されたフレーム単位の画像データをＤＲＡＭ１１から読み出し、この画像データをミドル・ウェア・レイヤ５０の認識系７１に含まれる動体検出モジュール３２に送出する。
【００８８】
そして、動体検出モジュール３２は、画像データを入力する毎に隣接する前フレームの画像データとの差分をとって差分画像データを生成する。例えば、上述した画像データＰ２と画像データＰ３との差分画像データＤ２を生成する場合、位置（ｉ，ｊ）における差分画像データＤ２の輝度値Ｄ２（ｉ，ｊ）は、位置（ｉ，ｊ）における画像データＰ３の輝度値Ｐ３（ｉ，ｊ）から同位置における画像データＰ２の輝度値Ｐ２（ｉ，ｊ）を減算することで得られる。そして、全画素について同様の計算を行って差分画像データＤ２を生成し、この差分画像データＤ２を生成する。そして、差分画像データのうち、輝度値が閾値Ｔｈよりも大きい部分についての重心位置Ｇ（ｘ，ｙ）を計算する。ここで、ｘ、ｙは、それぞれ以下の（３）式、（４）式を用いて計算される。
【００８９】
【数３】
2004130427.tif 000005
【００９０】
これにより、図１３に示すように、例えば上述した画像データＰ２と画像データＰ３との差分画像データＤ２から、重心位置Ｇ２が求められる。求めた重心位置のデータをアプリケーション・レイヤ５１の行動モデルライブラリ９０に送出する。
【００９１】
行動モデルライブラリ９０は、上述したように、必要に応じて情動のパラメータ値や欲求のパラメータ値を参照しながら続く行動を決定し、決定結果を行動切換モジュール９１に与える。例えば、差分画像データから動体が消失した場合には、直前に検出された重心位置を向く、或いは近付く行動を決定し、決定結果を行動切換モジュール９１に与える。また、所定の時間間隔毎に動体をトラッキングする場合には、その時間間隔毎に検出された重心位置を向く、或いは近付く行動を決定し、決定結果を行動切換モジュール９１に与える。そして、行動切換モジュール９１は、当該決定結果に基づく行動コマンドをミドル・ウェア・レイヤ５０の出力系８０におけるトラッキング用信号処理モジュール７３に送出する。
【００９２】
トラッキング用信号処理モジュール７３は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ２８１〜２８ｎに与えるべきサーボ指令値を生成し、このデータをロボティック・サーバ・オブジェクト４２のバーチャル・ロボット４３及び信号処理回路１４（図２）を順次介して対応するアクチュエータ２８１〜２８ｎに順次送出する。
【００９３】
この結果、例えば、差分画像データから動体が消失した場合には、行動モデルライブラリ９０によって、直前に検出された重心位置を向く、或いは近付く行動が決定され、行動切換モジュール９１によって、その行動を行わせるための行動コマンドが生成される。また、所定の時間間隔毎に動体をトラッキングする場合には、行動モデルライブラリ９０によって、その時間間隔毎に検出された重心位置を向く、或いは近付く行動が決定され、行動切換モジュール９１によって、その行動を行わせるための行動コマンドが生成される。
【００９４】
そして、この行動コマンドがトラッキング用信号処理モジュール７３に与えられると、当該トラッキング用信号処理モジュール７３は、その行動コマンドに基づくサーボ指令値を対応するアクチュエータ２８１〜２８ｎに送出し、これによりロボット装置１が動体に興味を示して頭部をその方向に向けたり、動体の方向に近付いたりする行動が発現される。
【００９５】
次に、音源方向推定モジュール３４における音源推定処理について具体的に説明する。上述したように、ロボット装置１の頭部ユニット４には、左右の「耳」に相当するマイクロホン２４が備えられており、ロボット装置１は、このマイクロホン２４を用いて音源方向を推定することができる。具体的には、例えば「大賀、山崎、金田『音響システムとディジタル処理』（電子情報通信学会）ｐ１９７」に記載されているように、音源方向と複数のマイクロホンで受音した信号の時間差とに一対一の関係があることを利用して音源方向を推定することができる。
【００９６】
すなわち、図１４に示すように、θＳ方向から到来する平面波を、距離ｄだけ離れて設置された２つのマイクロホンＭ１，Ｍ２で受音する場合、各マイクロホンＭ１，Ｍ２の受音信号（音声データ）ｘ１（ｔ）とｘ２（ｔ）との間には、下記式（５）、（６）に示すような関係が成立する。ここで、下記式（５）、（６）において、ｃは音速であり、τＳは２つのマイクロホンＭ１，Ｍ２で受音した信号の時間差である。
【００９７】
【数４】
2004130427.tif 000006
【００９８】
したがって、受音信号ｘ１（ｔ）とｘ２（ｔ）との間の時間差τＳが分かれば、下記式（７）により、音波の到来方向、すなわち音源方向を求めることができる。
【００９９】
【数５】
2004130427.tif 000007
【０１００】
ここで、時間差τＳは、下記式（８）に示すような、受音信号ｘ１（ｔ）とｘ２（ｔ）との間の相互相関関数φ１２（τ）から求めることができる。ここで、下記式（８）において、Ｅ［・］は期待値である。
【０１０１】
【数６】
2004130427.tif 000008
【０１０２】
上記式（５）と式（８）とから、相互相関関数φ１２（τ）は、下記式（９）のように表される。ここで、下記式（９）において、φ１１（τ）は受音信号ｘ１（ｔ）の自己相関関数である。
【０１０３】
【数７】
2004130427.tif 000009
【０１０４】
この自己相関関数φ１１（τ）は、τ＝０で最大値をとることが知られているため、式（５）より相互相関関数φ１２（τ）は、τ＝τＳで最大値をとる。したがって、相互相関関数φ１２（τ）を計算して、最大値を与えるτを求めればτＳが得られ、それを上述した式（３）に代入することにより、音波の到来方向、すなわち音源方向を求めることができる。そして、現在ロボット装置１が向いている方向と音源の方向との差が計算され、体幹の向きに対する音源方向の相対角度が求められる。
【０１０５】
ここで、図１５（ａ）に示すように、ロボット装置１は、頭部ユニットに備えられた異なる位置に設けられたマイクロホン２４Ｒ／Ｌと、音源Ａとの間の距離の違い、即ち受音信号の時間差により、その音源の位置を推定するものであるが、あるＡ点に対して、左右のマイクロホン２４Ｌとマイクロホン２４Ｒとを結ぶ直線１０１と線対称のＢ点を考えた場合、即ち、直線１０１との間の距離ＬＡ，ＬＢが等しいＡ点、Ｂ点を考えた場合、Ａ点から左右のマイクロホン２４Ｒ／Ｌまでの間の距離と、Ｂ点からマイクロホン２４Ｒ／Ｌまでの間の距離とが等しくなるため、受音信号の時間差も等しくなり、従って、受音信号の時間差によってはその音源の方向が何れかは特定することができない。
【０１０６】
そこで、本実施の形態においては、前回、１つの方角に特定された音源方向か、又は、推定された２つの音源方向を音源方向に関する情報の履歴として記憶しておき、音源方向が特定できない場合、前回の履歴を参考にするものとする。前回の音源方向が１つに特定されていれば、対象物が短時間でそれほど大きく移動せず、現在の音声データの音源は、前回の音声データの音源方向と同一の方向の可能性が高いことを利用することができる。また、前回の音源方向が１つに特定されていない場合、又は履歴が全くない場合であっても、下記のようにマイクロホンが備えられた頭部ユニットを回転させ、回転前後の音声データを得ることにより、音源方向を特定するこができる。
【０１０７】
即ち、図１５（ａ）において、実際はロボット装置の画面左側上方のＡ点が音源であった場合、頭部ユニット４を左回転させると、右のマイクロホン２４Ｒの方が音源であるＡ点により近づくことになる。即ち、回転前後における左右の受音信号の時間差により音源方向を特定することができる。同じく、画面左側下方の点Ｂが音源である場合、頭部ユニット４を左回転させると左マイクロホン２４Ｌの方がＢ点により近くづくため、音源方向がＢ点であることが特定できる。こうして、実際の音源がＡ点であるかＢ点であるかは、回転前後の音声データから特定することができる。
【０１０８】
こうして、音源方向推定モジュール３４により音源方向を推定し、ロボット装置はこの音源方向推定結果に基づき、推定した音源方向を向いたり、音源に近づく等の動作を発現することができる。
【０１０９】
次に、これらの顔検出結果、動体検出結果、音源方向推定結果に基づくロボット装置の行動を制御する制御方法について説明する。本実施の形態においては、ロボット装置１の顔検出モジュール３３により顔検出した場合は、ロボット装置１は、顔方向に歩行を開始して、顔検出対象に近づく動作を行うよう制御される。ここで、顔方向とは、例えば、顔領域の重心が画面の中心を通る垂直線上に略重なる位置となる方向を示すものとする。また、動体検出モジュール３２により動体検出された場合は、差分画像における重心位置方向（動体方向）に歩行を開始することで、動体に近づく動作を行い、音源推定方向が検出された場合は、音源方向に歩行を開始し、音源に近づく動作を行うように制御される。ここで、顔検出、動体検出、及び音源方向推定が同時になされた場合、顔検出結果を優先して使用するよう制御される。即ち、例えば推定された音源方向と検出された顔方向とが異なる場合、顔方向へ移動するよう制御されるものとする。
【０１１０】
図１６は、本実施の形態におけるロボット装置の行動制御方法を示すフローチャートである。図１６に示すように、先ず、ロボット装置は、一定間隔で首振りしながら待機する（ステップＳ２１）。次に音声検出、動体検出、顔検出されたか否かが順次判定され（ステップＳ２２〜ステップＳ２４）、いずれも検出されていない場合は、再びステップＳ２１に戻り、待機状態となる。
【０１１１】
一方、ステップＳ２４にて顔検出された場合は、例えば、検出された顔領域の重心位置が画面の中央を通る垂直線上にくるよう、頭部ユニットを回転することにより、顔位置を同定し（ステップＳ３１）、その顔方向に歩行を開始する（ステップＳ３２）。歩行時においては、後述する所定の終了条件を満たすまで歩行を続ける。
【０１１２】
また、ステップＳ２２において、音声検出された場合、音源の方向を特定する。上述したように、音源方向を特定することが困難である場合、即ち、上述のように、２つの音源方向が算出されてしまった場合、音源方向の履歴があるか否かが検出される（ステップＳ２５）。ここで、音源方向の履歴がある場合は、音源方向の履歴を参照して、現在の音源方向を特定し、その音源方向に歩行を行う（ステップＳ２９）。一方、ステップＳ２５において、履歴が検出されない場合、ロボット装置１は、音声検出手段を有する頭部ユニットを回転（首振り）し、算出された２つの音源方向を記憶し、再び待機状態となる。そして、再び音声データを検出すると、上述のステップＳ２６において音源方向が記憶されているため、音源方向を特定することができる。
【０１１３】
なお、ここで、ステップＳ２６においては、算出された２つの音源方向の履歴を記憶しておくものとしたが、前回、特定された１つの音源方向を記憶するものとしてもよい。即ち、ステップＳ２５にて履歴がないと判定された場合、頭部ユニットを回転させ、回転前後の音声データから１つの音源方向を算出し、回転前後の音声データから特定された音源方向を履歴として記憶するようにしてもよい。
【０１１４】
また、ステップＳ２３において動体が検出された場合は、動体の動きに合わせて頭部ユニットを回転させてトラッキングし（ステップＳ２７）、動体が静止する位置を検出する（ステップＳ２８）。動体の静止を検出するまで、動体のトラッキングを続ける。そして、動体の静止が検出されると、例えば前後の画像データの差分データにおける重心位置方向に歩行を開始する（ステップＳ２９）。
【０１１５】
ステップＳ２９において、音声検出又は動体検出の結果に基づき歩行を開始した場合、定期的に顔が検出されたか否かを判定する（ステップＳ３０）。そして、ステップＳ２９において、歩行途中であっても、顔検出された場合は、顔検出処理を行うものとする。即ち、例えば顔領域が画面の中央位置にくるように頭部を回転させる等して検出された顔位置を同定し（ステップＳ３１）、顔方向に歩行を開始する（ステップＳ３２）。
【０１１６】
次に、ステップＳ３２における終了判定について説明する。本実施の形態においては、顔検出等により歩行を開始し、所定の終了条件を満たすとき、歩行停止するものとする。この終了判定の条件としては、下記に示すものがある。即ち、
１．顔が検出された顔方向がロボット装置の正面であり、且つ、顔検出対象物との距離が所定の距離以下である場合
２．対象物との距離が所定の距離以下である場合
３．所定の音声単語を検出した場合
４．接触センサにより接触が検出された場合
の何れか１つの終了条件を満たす場合に歩行を停止する。
【０１１７】
顔方向がロボット装置の正面であるか否かは、図１７に示すように、ロボット装置１の垂直視野角をθ１としたとき、対象物３００の顔３０１がロボット装置１の正面から例えば画面水平方向±２２．５°等の範囲内となるように移動方向を制御する。また、顔検出対象、又は対象物３００との距離Ｈは、例えば、ＰＳＤ（Ｐｏｓｉｔｉｏｎ　Ｓｅｎｓｏｒ　Ｄｅｖｉｓｅ）若しくは距離センサ等により検出するか、又は画像中の顔領域の大きさ、対象物の大きさ等により推測し、その距離は、例えば４０ｃｍ以下となった場合に停止制御するようにすることができる。ここで、例えば、ロボット装置１の垂直視野角が５５°である場合、指定する距離によっては、対象物の顔が検出されない場合がある。このような場合は、対象物との距離データのみを使用して、停止条件とすることができる。
【０１１８】
また、例えば、「おすわり」、「とまれ」等、所定の音声単語を検出した場合にも歩行停止する。また、使用者に頭を撫でられたり、障害物に接触したりした場合に、接触センサにより、その接触を検出して歩行を停止するものとする。また、例えば頭部以外の接触センサにより接触が検出された場合、障害物に接触した可能性が高いと判断することができるが、そのような場合は、歩行を停止すると共に一旦後退するか、又はその場で障害物を迂回するよう動作制御するような行動を生成するようにしてもよい。
【０１１９】
図１８は、ロボット装置が対象物に接近する際の歩行経路を模式的に示す図である。ロボット装置１が、顔振りしながら顔検出した場合、図１８に示すように、自身の姿勢方向Ｃから角度θ２の位置に対象物３００の顔が検出された場合、その場でθ２回転してから対象物３００に対して歩行を開始するより、円弧Ｄを描きながらθ２回転して移動する方が動きが自然に見える場合がある。このように移動するように制御することにより、視覚効果を向上させることができる。
【０１２０】
次に、ロボット装置が対象物に近づく動作について更に詳細に説明する。上述したように、ロボット装置１は、顔検出、音声検出又は動体検出により、所定の方向に歩行を開始するが、その際、対象物によって、頭部ユニットの垂直方向の角度を異ならせることにより、更にエンターテイメント性を向上することができる。図１９（ａ）及び（ｂ）は、ロボット装置歩行時の様子を示す図であって、夫々本実施の形態及び従来におけるロボット装置を示す側面図である。
【０１２１】
図１９（ａ）に示すように、例えば人間の顔を検出し、人間に対して近くづく動作を行う場合、図１９（ｂ）に示す従来の歩行姿勢に比して、視野を上向きにして上方を向いて移動することにより、人間の顔の発見・追従性能が向上する。また、音声又は動体の方向に移動する場合においても、上を向いたまま移動することにより、例えばロボット装置に声をかけた対象者に対し、ロボット装置１が目を向けているという印象を与えて視覚効果が発生する。
【０１２２】
また、歩行目標が人間であるか、又はボール等の物体であるかによって、頭部ユニット４の垂直方向の角度を変え、視野を異ならせる、即ち、顔位置のパターンを変更するようにしてもよく、更に動物に近い動作となり、エンターテイメント性が向上する。
【０１２３】
本実施の形態においては、顔検出結果と共に音声及び動体検出結果を利用し、対象物に近づく動作を制御することにより、誤動作を低減することができる。また、音声データを検出して音源方向を推定する際、過去の音源方向に関する情報の履歴を使用することにより、音源方向の推定率を向上することができる。また、所定の距離以上近づいた場合、所定の呼びかけ等により、近づく動作を停止すると共に、顔方向、音源方向、又は動体検出方向に単に近づくのみでなく、円弧を描いて歩行を行うようにしたり、使用者の顔を見るように視野を上向きにして歩行させるように制御することにより、実際の動物に近い動きとなり、ペット型ロボット装置として、エンターテイメント性を向上することができる。
【０１２４】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態においては、顔検出、音声検出、動体検出を行い、対象物に近づく動作を行うものとしたが、音声検出結果のみを使用して対象物に近づく動作制御を行うようにすることも可能である。音声検出では、過去において推定された音源方向の履歴を使用し、履歴がない場合は頭部ユニットを回転させて音源方向を特定するため、音源方向を正確に推定でき、行動に反映させることができる。
【０１２５】
また、上述の実施の形態では、ソフトウェアの構成として説明したが、これに限定されるものではなく、少なくとも一部をハードウェアにより実現することも可能である。
【０１２６】
【発明の効果】
以上詳細に説明したように本発明に係るロボット装置は、外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的な動作を実行するロボット装置において、音声を検出する音声検出手段と、上記音声検出手段により検出された音声データから音源方向を推定する音源方向推定手段と、上記音源方向推定手段により推定された音源方向に移動するよう制御する制御手段とを有し、上記音源方向推定手段は、過去に推定された音源方向に関する情報の履歴に基づき現在の音源方向を推定するので、音声データに基づき音源方向を推定する際に、現在の音声データのみでは音源方向を推定できない場合があるが、その際、過去の音源方向等の履歴を参照することにより、現在の音源方向の推定を行うことができ、例えば音源方向に近づく等の動作に反映することができ、エンターテイメント性を向上させることができる。
【０１２７】
本発明に係るロボット装置は、外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的な動作を実行するロボット装置において、撮像手段と、音声を検出する音声検出手段と、上記撮像手段により撮像された画像データから動体を検出する動体検出手段と、上記画像データから人物の顔を検出する顔検出手段と、上記音声検出手段により検出された音声データから音源方向を推定する音源方向推定手段と、少なくとも上記動体検出、上記顔検出、及び上記音源方向推定のうち、上記顔検出を優先して行うよう制御する制御手段とを有するので、顔検出、動体検出、音声検出等の複数の処理を並行して行っている場合、顔検出を優先的に行い、これにより、対象物の特定率を向上して対象物に近づく動作等の行動に反映することができ、エンターテイメント性を向上させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態におけるロボット装置の外観構成を示す斜視図である。
【図２】同ロボット装置の回路構成を示すブロック図である。
【図３】同ロボット装置のソフトウェア構成を示すブロック図である。
【図４】同ロボット装置のソフトウェア構成におけるミドル・ウェア・レイヤの構成を示すブロック図である。
【図５】同ロボット装置のソフトウェア構成におけるアプリケーション・レイヤの構成を示すブロック図である。
【図６】同アプリケーション・レイヤの行動モデルライブラリの構成を示すブロック図である。
【図７】同ロボット装置の行動決定のための情報となる有限確率オートマトンを説明するために使用した図である。
【図８】有限確率オートマトンの各ノードに用意された状態遷移表を示す図である。
【図９】図２乃至図６に示すロボット装置において、顔検出、音声検出、動体検出してその行動を制御するために必要な構成部分を取り出して示すブロック図である。
【図１０】画像データＰ１〜Ｐ４と、そこから生成された差分画像データＤ１〜Ｄ３を示す模式図である。
【図１１】本発明の実施の形態におけるロボット装置の動体検出モジュールにおいて、動体が消失した場合に、差分画像における重心位置の方向を向く動作、又は重心位置の方向に近付く動作を行う方法を示すフローチャートである。
【図１２】本発明の実施の形態におけるロボット装置の動体検出モジュールにおいて、所定の時間間隔毎、或いは動体の重心位置が視覚範囲から外れそうになる毎に検出された重心方向を向き動作又は動体をトラッキングする動作を行う方法を示すフローチャートであある。
【図１３】画像データＰ２と画像データＰ３との差分画像データＤ２から、求められる重心位置Ｇ２を説明する模式図である。
【図１４】本発明の実施の形態におけるロボット装置の音源方向推定モジュールにおいて音源方向を推定する原理を説明する模式図である。
【図１５】音源方向を特定する方法を説明する模式図である。
【図１６】本発明の実施の形態におけるロボット装置の行動制御方法を示すフローチャートである。
【図１７】本発明の実施の形態におけるロボット装置の歩行停止条件の一例を説明する模式図である。
【図１８】本発明の実施の形態におけるロボット装置が対象物に接近する際の歩行経路を模式的に示す図である。
【図１９】（ａ）及び（ｂ）は、ロボット装置歩行時の様子を示す図であって、夫々本発明の実施の形態及び従来におけるロボット装置を示す側面図である。
【符号の説明】
１　ロボット装置、１０　ＣＰＵ、１１　ＤＲＡＭ、１４　信号処理回路、２２　ＣＣＤカメラ、２８１〜２８ｎ　アクチュエータ、３３　顔検出モジュール、４２　ロボティック・サーバ・オブジェクト、４３　バーチャル・ロボット、５０　ミドル・ウェア・レイヤ、５１　アプリケーション・レイヤ、６８　動き検出用信号処理モジュール、７０　入力セマンティクスコンバータモジュール、７１　認識系、７３　トラッキング用信号処理モジュール、７５　歩行モジュール、７９　出力セマンティクスコンバータモジュール、８０　出力系、９０　行動モデルライブラリ、９１　行動切換モジュール
【図１】
2004130427.tif 000010
【図２】
2004130427.tif 000011
【図３】
2004130427.tif 000012
【図４】
2004130427.tif 000013
【図５】
2004130427.tif 000014
【図６】
2004130427.tif 000015
【図７】
2004130427.tif 000016
【図８】
2004130427.tif 000017
【図９】
2004130427.tif 000018
【図１０】
2004130427.tif 000019
【図１１】
2004130427.tif 000020
【図１２】
2004130427.tif 000021
【図１３】
2004130427.tif 000022
【図１４】
2004130427.tif 000023
【図１５】
2004130427.tif 000024
【図１６】
2004130427.tif 000025
【図１７】
2004130427.tif 000026
【図１８】
2004130427.tif 000027
【図１９】
2004130427.tif 000028