(57)【要約】【課題】  外界からの複数の認識結果を統合して意味を持ったシンボル情報として扱い行動制御を行なう。【解決手段】  新たに観測されたデータと記憶内のターゲットとの対応をとる。ここで、観測されたデータに対応するターゲットがなければ、新規にターゲットを作成する。そして、記憶内のターゲットには複数の観測結果が対応付けられることになり、異なる認識器からの認識結果を１つのターゲットに対応付けすることができる。複数の観測結果を使うことにより、ターゲットへの誤対応を減らすことができる。【選択図】  図１６
2005271137.tif 000002
【特許請求の範囲】
【請求項１】
外部環境の変化に応じた自律的な動作が可能なロボット装置であって、
外部環境を観測する１以上のセンサと、
前記センサの出力を基に外部環境に存在する物体を認識する１以上の認識手段と、
前記認識手段により認識された物体に関する情報を保持する記憶手段と、
前記記憶手段に記憶されている物体と前記センサにより新たに観測された物体間の距離を算出する距離算出手段と、
を具備することを特徴とするロボット装置。
【請求項２】
前記距離算出手段は、記憶されている物体と観測された物体間の位置、大きさ、又は経過時間の少なくとも１つによって距離尺度を定義する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項３】
前記距離算出手段は、物体中心間のユークリッド距離又は距離を経過時間で割った速度により距離尺度を定義する、
ことを特徴とする請求項２に記載のロボット装置。
【請求項４】
前記距離算出手段は、物体の存在する方向を角度で表し、物体間の角度差又は角速度により距離尺度を定義する、
ことを特徴とする請求項２に記載のロボット装置。
【請求項５】
前記距離算出手段は、２以上の距離尺度の組み合わせにより物体間の距離を算出する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項６】
前記距離算出手段により算出された距離尺度に応じて観測された物体と記憶された物体との対応付けを行なう対応関係管理手段をさらに備える、
ことを特徴とする請求項１に記載のロボット装置。
【請求項７】
前記距離算出手段は、同時に観測された１以上の物体と前記記憶手段に記憶されている物体の組み合わせ毎に距離尺度を算出し、
前記対応関係管理手段は、距離尺度が最小となる物体の組み合わせを対応付ける、
ことを特徴とする請求項６に記載のロボット装置。
【請求項８】
物体属性に関する知識があらかじめ設定されており、
前記対応関係管理手段は、物体属性間に基づいた重み付けを距離尺度に施し、物体間の対応付けを行なう、
ことを特徴とする請求項６に記載のロボット装置。
【請求項９】
前記距離算出手段は、前記認識手段による出力内容に応じて観測された物体と記憶された物体間の距離尺度を制御する、
ことを特徴とする請求項６に記載のロボット装置。
【請求項１０】
前記記憶手段に記憶されている物体が前記センサの観測範囲内にあるかどうかを判別する観測範囲判定手段と、
前記観測範囲判定手段による判定結果に応じて物体に関する記憶内容を前記記憶手段から忘却又は緩和させる記憶制御手段と、
をさらに備えることを特徴とする請求項６に記載のロボット装置。
【請求項１１】
前記ロボット装置は複数の可動部を備え、前記センサはいずれかの可動部に取り付けられており、
前記観測範囲判定手段は、前記可動部の運動学を解くことにより前記センサの観測範囲を求める、
ことを特徴とする請求項１０に記載のロボット装置。
【請求項１２】
前記記憶制御手段は、観測範囲外と判定された物体の忘却又は緩和を制御する、
ことを特徴とする請求項１０に記載のロボット装置。
【請求項１３】
前記記憶制御手段は、物体の持つ属性に応じて忘却定数を設定する、
ことを特徴とする請求項１２に記載のロボット装置。
【請求項１４】
前記記憶制御手段は、物体の持つ内容に応じて忘却定数を制御する、
ことを特徴とする請求項１２に記載のロボット装置。
【請求項１５】
前記記憶制御手段は、忘却定数に応じた所定時間だけ観測の更新がない物体の記憶から観測結果を取り除く、
ことを特徴とする請求項１０に記載のロボット装置。
【請求項１６】
前記対応関係管理手段により対応付けられた物体に関するすべての認識結果が忘却されたときに、該物体を前記記憶手段から削除する削除手段をさらに備える、
ことを特徴とする請求項１０に記載のロボット装置。
【請求項１７】
前記記憶手段への認識した物体の追加と削除を独立して行なう、
ことを特徴とする請求項６に記載のロボット装置。
【請求項１８】
前記認識手段は、物体の認識結果に属性を識別する認識属性ＩＤを含める、
ことを特徴とする請求項６に記載のロボット装置。
【請求項１９】
前記認識手段は、認識物体を観測したセンサの取り付け位置を識別するセンサＩＤを含め、
認識した物体をセンサＩＤに基づいて共通の座標系に変換する座標変換手段をさらに備え、認識した各物体の位置情報を共通の座標系で管理する、
ことを特徴とする請求項６に記載のロボット装置。
【請求項２０】
前記認識手段は、センサ原点からの座標表現に関するＩＤと座標値を含める、
ことを特徴とする請求項１９に記載のロボット装置。
【請求項２１】
前記対応関係管理手段は、座標表現のＩＤに対応する距離尺度を自動選択し、記憶されている物体と観測された物体の対応をとる、
ことを特徴とする請求項２０に記載のロボット装置。
【請求項２２】
前記認識手段のうち少なくとも１つは外部環境におけるユーザの発話内容を認識する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項２３】
前記認識手段のうち少なくとも１つは外部環境における物体の色を認識する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項２４】
前記認識手段のうち少なくとも１つは外部環境におけるユーザの顔を認識する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項２５】
センサとして周囲を撮像するカメラを備え、
前記認識手段のうち少なくとも１つは前記カメラによる撮影画像中から動き領域を抽出し、該動き領域の位置又は大きさを認識する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項２６】
センサとして周囲を撮像するカメラを備え、
前記認識手段のうち少なくとも１つは前記カメラによる撮影画像に含まれる色領域から形又はその他の制約を基に、外部環境に設置された指標又は肌色顔領域を認識する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項２７】
センサとして音声入力手段を備え、
前記認識手段のうち少なくとも１つは音声以外の音から拍手恩又は鐘下気温を抽出しその推定音源方向を認識する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項２８】
前記記憶手段に記憶されている物体の情報を基に、ロボット装置自身が実行する行動を制御する行動制御手段をさらに備える、
ことを特徴とする請求項６に記載のロボット装置。
【請求項２９】
複数の関節自由度を備えたロボット装置において、
外部環境を測定する１以上のセンサと、
センサ出力に基づいて外部環境を認識し、得られた認識結果を、認識に使用したセンサの識別情報及び認識結果の座標表現とともに出力する１以上の認識器と、
各関節アクチュエータの出力を基に各センサの位置及び姿勢を求める姿勢変換手段と、
前記姿勢変換手段からの出力を基に各センサの時刻毎の位置及び姿勢に関する姿勢履歴を管理するとともに、前記の各認識器からの認識結果を座標表現に基づいて共通の座標表現に変換して保持する記憶手段と、
を具備することを特徴とするロボット装置。
【請求項３０】
前記記憶手段に記憶されている認識結果を基に、前記の関節の駆動による行動を制御する行動制御手段をさらに備える、
ことを特徴とする請求項２９に記載のロボット装置。
【請求項３１】
外部環境の変化に応じた自律的な動作が可能なロボット装置の制御方法であって、
前記ロボット装置に各部に取り付けられた１以上のセンサからの出力を基に外部環境に存在する物体を認識する１以上の認識ステップと、
前記認識ステップにおいて認識された物体に関する情報を保持する記憶ステップと、
前記記憶ステップにおいて記憶された物体と、所定の距離尺度に基づいて前記センサにより新たに観測された物体間の距離を算出する距離算出ステップと、
を具備することを特徴とするロボット装置の制御方法。
【請求項３２】
前記距離算出ステップでは、記憶されている物体と観測された物体間の位置、大きさ、又は経過時間の少なくとも１つによって距離尺度を定義する、
ことを特徴とする請求項２１に記載のロボット装置の制御方法。
【請求項３３】
前記距離算出ステップでは、物体中心間のユークリッド距離又は距離を経過時間で割った速度により距離尺度を定義する、
ことを特徴とする請求項３２に記載のロボット装置の制御方法。
【請求項３４】
前記距離算出ステップでは、物体の存在する方向を角度で表し、物体間の角度差又は角速度により距離尺度を定義する、
ことを特徴とする請求項３２に記載のロボット装置の制御方法。
【請求項３５】
前記距離算出ステップでは、２以上の距離尺度の組み合わせにより物体間の距離を算出する、
ことを特徴とする請求項３１に記載のロボット装置の制御方法。
【請求項３６】
前記距離算出ステップにおいて算出された距離尺度に応じて観測された物体と記憶された物体との対応付けを行なう対応関係管理ステップをさらに備える、
ことを特徴とする請求項３１に記載のロボット装置の制御方法。
【請求項３７】
前記距離算出ステップでは、同時に観測された１以上の物体と前記記憶手段に記憶されている複数の物体の組み合わせ毎に距離尺度を算出し、
前記対応関係管理ステップでは、距離尺度が最小となる物体の組み合わせを対応付ける、
ことを特徴とする請求項３６に記載のロボット装置の制御方法。
【請求項３８】
物体属性に関する知識があらかじめ設定されており、
前記対応関係管理ステップでは、物体属性間に基づいた重み付けを距離尺度に施し、物体間の対応付けを行なう、
ことを特徴とする請求項３６に記載のロボット装置の制御方法。
【請求項３９】
前記距離算出ステップでは、前記認識ステップにおける出力内容に応じて観測された物体と記憶された物体間の距離尺度を制御する、
ことを特徴とする請求項３６に記載のロボット装置の制御方法。
【請求項４０】
前記記憶ステップにおいて記憶されている物体が前記センサの観測範囲内にあるかどうかを判別する観測範囲判定ステップと、
前記観測範囲判定ステップにおける判定結果に応じて物体に関する記憶内容を忘却又は緩和させる記憶制御ステップと、
をさらに備えることを特徴とする請求項３６に記載のロボット装置の制御方法。
【請求項４１】
前記ロボット装置は複数の可動部を備え、前記センサはいずれかの可動部に取り付けられており、
前記観測範囲判定ステップでは、前記可動部の運動学を解くことにより前記センサの観測範囲を求める、
ことを特徴とする請求項４０に記載のロボット装置の制御方法。
【請求項４２】
前記記憶制御ステップでは、観測範囲外と判定された物体の忘却又は緩和を制御する、
ことを特徴とする請求項４０に記載のロボット装置の制御方法。
【請求項４３】
前記記憶制御ステップでは、物体の持つ属性に応じて忘却定数を設定する、
ことを特徴とする請求項４２に記載のロボット装置の制御方法。
【請求項４４】
前記記憶制御ステップでは、物体の持つ内容に応じて忘却定数を制御する、
ことを特徴とする請求項４２に記載のロボット装置の制御方法。
【請求項４５】
前記記憶制御ステップでは、忘却定数に応じた所定時間だけ観測の更新がない物体の記憶から観測結果を取り除く、
ことを特徴とする請求項４０に記載のロボット装置の制御方法。
【請求項４６】
前記対応関係管理ステップにおいて対応付けられた物体に関するすべての認識結果が忘却されたときに、該物体の記憶を削除する削除ステップをさらに備える、
ことを特徴とする請求項４０に記載のロボット装置の制御方法。
【請求項４７】
認識した物体の追加と削除を独立して行なう、
ことを特徴とする請求項３１に記載のロボット装置の制御方法。
【請求項４８】
前記認識ステップでは、物体の認識結果に属性を識別する認識属性ＩＤを含める、
ことを特徴とする請求項３１に記載のロボット装置の制御方法。
【請求項４９】
前記認識ステップでは、認識物体を観測したセンサの取り付け位置を識別するセンサＩＤを含め、
認識した物体をセンサＩＤに基づいて共通の座標系に変換する座標変換ステップをさらに備え、認識した各物体の位置情報を共通の座標系で管理する、
ことを特徴とする請求項３１に記載のロボット装置の制御方法。
【請求項５０】
前記認識ステップでは、センサ原点からの座標表現に関するＩＤと座標値を含める、
ことを特徴とする請求項４９に記載のロボット装置の制御方法。
【請求項５１】
前記対応関係管理ステップでは、座標表現のＩＤに対応する距離尺度を自動選択し、記憶されている物体と観測された物体の対応をとる、
ことを特徴とする請求項５０に記載のロボット装置の制御方法。
【請求項５２】
外部環境を測定する１以上のセンサと、複数の関節自由度を備えたロボット装置の制御方法において、
センサ出力に基づいて外部環境を認識し、得られた認識結果を、認識に使用したセンサの識別情報及び認識結果の座標表現とともに出力する１以上の認識ステップと、
各関節アクチュエータの出力を基に各センサの位置及び姿勢を求める姿勢変換ステップと、
前記姿勢変換ステップにおける出力を基に各センサの時刻毎の位置及び姿勢に関する姿勢履歴を管理するとともに、前記の各認識器からの認識結果を座標表現に基づいて共通の座標表現に変換して保持する記憶ステップと、
を具備することを特徴とするロボット装置の制御方法。
【請求項５３】
前記記憶手段に記憶されている認識結果を基に、前記の関節の駆動による行動を制御する行動制御手段をさらに備える、
ことを特徴とする請求項５２に記載のロボット装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律的な動作を行ないリアリスティックなコミュニケーションを実現するロボット装置及びその制御方法に係り、特に、画像や音声などの外界の情報を認識してそれに対して自身の行動を反映させる機能を備えた自律型のロボット装置及びその制御方法に関する。
【０００２】
さらに詳しくは、本発明は、外界からの複数の認識結果を統合して意味を持ったシンボル情報として扱い行動制御を行なうロボット装置及びその制御方法に係り、特に、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているか、この声がどの人物の声なのかといった問題を解くロボット装置及びその制御方法に関する。
【背景技術】
【０００３】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置のことを「ロボット」という。ロボットの語源は、スラブ語のＲＯＢＯＴＡ（奴隷機械）に由来すると言われている。わが国では、ロボットが普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット（ｉｎｄｕｓｔｒｉａｌ ｒｏｂｏｔ）であった。
【０００４】
最近では、イヌやネコのように４足歩行の動物の身体メカニズムやその動作を模したペット型ロボット、あるいは、ヒトやサルなどの２足直立歩行を行なう動物の身体メカニズムや動作を模した「人間形」若しくは「人間型」のロボット（ｈｕｍａｎｏｉｄ ｒｏｂｏｔ）など、脚式移動ロボットの構造やその安定歩行制御に関する研究開発が進展し、実用化への期待も高まってきている。これら脚式移動ロボットは、クローラ式ロボットに比し不安定で姿勢制御や歩行制御が難しくなるが、階段の昇降や障害物の乗り越えなど、柔軟な歩行・走行動作を実現できるという点で優れている。
【０００５】
また、最近では、ロボット装置は、産業上の用途以外に、生活密着型、すなわち人間との「共生」あるいは「エンターティンメント」という目的で使用されることが多くなってきている。従来の玩具機械では、ユーザ操作と応答動作との関係が固定的で、玩具の動作をユーザの好みに合わせて変更することはできないため、ユーザは同じ動作の繰り返しにやがては飽きてしまう。これに対し、知能型のロボット装置は、動作に起因する行動モデルや学習モデルを備え、外部からの音声や画像、触覚などの入力情報に基づいてモデルを変化させて動作を決定し、自律的な思考及び動作制御を実現する。さらに、ロボットが感情モデルや本能モデルを用意することにより、ロボット自身の感情や本能に従った自律的な行動を表出することができる。また、人間とのインターフェースとして画像認識処理や音声認識処理などの認識技術を導入し、より高度でリアリスティックなコミュニケーションが可能となる。
【０００６】
ロボットが環境変化に応じた自律動作を行なうために、従来は、ある１つの観測結果に対してその情報を受けて行動を取るような単純な行動記述の組み合わせで行動を記述していた。例えば、ロボットの作業軌道を生成するに当り、１つ以上の出発点から１つ以上の到達点に至る所定の作業環境に対応した複数の順路を各々ノード列情報として用意して置き、作業内容に応じ選択した最適ノード列情報から作業軌道を生成するロボット制御方法について提案がなされている（例えば、特許文献１を参照のこと）。
【０００７】
このように入力に対する行動のマッピングにより、ランダム性、内部状態（感情・本能）、学習、成長などの機能を導入することで一意ではない複雑な行動の発現を可能にすることができる。
【０００８】
ところが、このような単純な行動マッピング方法では、例えばボールを追いかけて蹴るといった動作の中で一瞬でもボールを見失うと、ボールに関する情報は保持されていないので、最初からボールを探すといった行動を取ることとなり、認識結果の利用に一貫性がない。
【０００９】
また、ロボットは、複数のボールが観測されたときに、どの認識結果が以前観測されたどの結果に対応するのかという対応問題を解く必要がある。また、顔の認識や肌色の認識や声の認識をなどより複雑な認識結果を利用するためには、どの肌色領域が顔でどの人物に対応しているか、この声がどの人物の声なのか、といった問題を解く必要がある。
【００１０】
【特許文献１】特開平１０−６３３２７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、画像や音声などの外界の情報を認識してそれに対して自身の行動を反映させる機能を備えた、優れたロボット装置及びその制御方法を提供することにある。
【００１２】
本発明のさらなる目的は、外界からの複数の認識結果を統合して意味を持ったシンボル情報として扱い行動制御を行なうことができる、優れたロボット装置及びその制御方法を提供することにある。
【００１３】
本発明のさらなる目的は、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているか、この声がどの人物の声なのかといった問題を好適に解くことができる、優れたロボット装置及びその制御方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、外部環境の変化に応じた自律的な動作が可能なロボット装置であって、
外部環境を観測する１以上のセンサと、
前記センサの出力を基に外部環境に存在する物体を認識する１以上の認識手段と、
前記認識手段により認識された物体に関する情報を保持する記憶手段と、
前記記憶手段に記憶されている物体と前記センサにより新たに観測された物体間の距離を算出する距離算出手段と、
を具備することを特徴とするロボット装置である。
【００１５】
本発明に係るロボット装置は、前記距離算出手段により算出された距離尺度に応じて観測された物体と記憶された物体との対応付けを行なう対応関係管理手段を備えることで、外界からの複数の認識結果を統合して意味を持ったシンボル情報として扱い、高度な行動制御を行なうことができる。また、非同期で通知される個々の認識結果を統合してから行動モジュールに渡すことができるので、行動モジュールで情報の取り扱いが容易になる。
【００１６】
したがって、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているか、この声がどの人物の声なのか、といった問題を解くことができる。
【００１７】
ここで言う認識物体間の「距離」は、いわゆるユークリッド空間上で点間の長さで表現される一般的な距離である以外に、認識結果同士の対応度、関連度、若しくは近さの尺度として表現される。また、いわゆる距離の他に、時間や認識対象が持つ意味概念など、認識の尺度となるさまざまな要素を座標軸に設定して構成される認識空間上の距離を指すこともある。
【００１８】
ここで、前記認識手段は、例えば、外部環境におけるユーザの発話内容や、物体の色、ユーザの顔などを認識する。
【００１９】
あるいは、前記認識手段は、画像中から動き領域を抽出し、該動き領域の位置又は大きさを認識したり、画像に含まれる色領域から形又はその他の制約を基に、外部環境に設置された指標又は肌色顔領域を認識したりしてもよい。
【００２０】
あるいは、前記認識手段は、音声以外の音から拍手音又は衝撃音を抽出しその推定音源方向を認識するようにしてもよい。
【００２１】
また、前記距離算出手段は、記憶されている物体と観測された物体間の位置、大きさ、又は経過時間の少なくとも１つによって距離尺度を定義する。例えば、物体中心間のユークリッド距離又は距離を経過時間で割った速度により距離尺度を定義したり、物体の存在する方向を角度で表し、物体間の角度差又は角速度により距離尺度を定義したりすることができる。前記距離算出手段は、２以上の距離尺度の組み合わせにより物体間の距離を算出するようにしてもよい。
【００２２】
前記距離算出手段は、同時に観測された１以上の物体と前記記憶手段に記憶されている複数の物体の組み合わせ毎に距離尺度を算出する。そして、前記対応関係管理手段は、距離尺度が最小となる物体の組み合わせを対応付ける。
【００２３】
また、物体属性に関する知識をあらかじめ設定し、前記対応関係管理手段は、物体属性間に基づいた重み付けを距離尺度に施し、物体間の対応付けを行なうようにしてもよい。例えば、顔とランドマークは結び付かないので重みを無限大にしたり、顔と音声は結び付き易いのでより小さな重みを与えたりするようにする。
【００２４】
また、前記距離尺度算出手段は、前記認識手段による出力内容に応じて観測された物体と記憶された物体間の距離尺度を制御するようにしてもよい。例えば、同じ顔ＩＤならば結び付き易いので、より小さな重みを与えるようにする。
【００２５】
また、本発明に係るロボット装置は、前記記憶手段に記憶されている物体が前記センサにおける現在の観測範囲内にあるかどうかを判別し、観測範囲外と判定された物体に関する記憶内容を前記記憶手段から忘却又は緩和させるような記憶制御を行なうようにしてもよい。
【００２６】
ロボット装置は通常複数の可動部を備え、前記センサはいずれかの可動部に取り付けられている。前記観測範囲判定手段は、前記可動部の運動学を解くことにより前記センサの観測範囲を求めることができる。
【００２７】
前記記憶制御手段は、観測範囲外と判定された物体の忘却又は緩和を制御するようにしてもよい。また、前記記憶制御手段は、物体の持つ属性に応じて忘却定数を設定するようにしてもよい。また、前記記憶制御手段は、物体の持つ内容に応じて忘却定数を制御するようにしてもよい。
【００２８】
また、前記記憶制御手段は、忘却定数に応じた所定時間だけ観測の更新がない物体の記憶から観測結果を取り除くようにしてもよい。
【００２９】
また、前記対応関係管理手段により対応付けられた物体に関するすべての認識結果が忘却されたときに、該物体を前記記憶手段から削除するようにしてもよい。
【００３０】
また、各認識手段をそれぞれ独立したプロセスとして実装し、プロセス間通信によりメッセージを受け取ることで認識の結果を記憶に反映させるようにしてもよい。このような場合、前記記憶手段への認識した物体の追加と削除を独立して行なうことができる。
【００３１】
また、前記認識手段は、物体の認識結果に属性を識別する認識属性ＩＤを含めるようにしてもよい。このような場合、上述した忘却定数の制御などを属性毎に管理することができる。
【００３２】
また、前記認識手段は、認識物体を観測したセンサの取り付け位置を識別するセンサＩＤを含めるようにしてもよい。そして、認識した物体をセンサＩＤに基づいて共通の座標系に変換し、認識した各物体の位置情報を共通の座標系で管理するようにしてもよい。センサ原点からの座標表現に関するＩＤと座標値を含めることにより、適切な座標表現での結果通知を許し、共通座標系への自動変換が可能となる。
【００３３】
また、前記対応関係管理手段は、座標表現のＩＤに対応する距離尺度を自動選択し、記憶されている物体と観測された物体の対応をとるようにしてもよい。
【００３４】
このように、本発明では、複数の認識結果を統合し記憶として保持するという枠組みを一般化し、さまざまなセンサや認識属性（何を認識する認識器であるか）の認識器からの認識結果メッセージを記憶モジュールに送信するだけで認識器の結果を記憶に反映させることができる。これにより、新たに開発された認識器を追加することで、ロボットの知覚する世界観をより豊かにすることができる。
【００３５】
また、本発明の第２の側面は、複数の関節自由度を備えたロボット装置において、
外部環境を測定する１以上のセンサと、
センサ出力に基づいて外部環境を認識し、得られた認識結果を、認識に使用したセンサの識別情報及び認識結果の座標表現とともに出力する１以上の認識器と、
各関節アクチュエータの出力を基に各センサの位置及び姿勢を求める姿勢変換手段と、
前記姿勢変換手段からの出力を基に各センサの時刻毎の位置及び姿勢に関する姿勢履歴を管理するとともに、前記の各認識器からの認識結果を座標表現に基づいて共通の座標表現に変換して保持する記憶手段と、
を具備することを特徴とするロボット装置である。ここで、ロボット装置は、前記記憶手段に記憶されている認識結果を基に、前記の関節の駆動による行動を制御する行動制御手段をさらに備えることができる。
【００３６】
本発明の第２の側面に係るロボット装置によれば、各認識器は、認識に使用したセンサの識別情報及び認識結果の座標表現を含めた形式で認識結果を出力することで、適切な座標表現での結果通知を行なうことができる。そして、認識結果を記憶管理する記憶手段では、センサ毎の姿勢履歴を管理しているので、認識結果に含まれているセンサの識別情報及び座標表現に基づいて認識結果を共通の座標系に変換することにより、各認識器による認識結果を共通座標系で統一的に管理することができる。したがって、認識結果同士を関連付けするときには、座標表現のＩＤに対応する距離尺度を自動選択し、記憶されている物体と観測された物体の対応をとることができる。
【００３７】
このように、認識に使用したセンサの識別情報及び認識結果の座標表現を含めた形式で認識結果を出力するという共通インターフェースを規定することにより、記憶手段や行動制御手段のような上位モジュールは、認識結果へのアクセス方法が統一され，設計が容易となる。また、後から追加される認識器は、この共通インターフェースに従がうようにすればよいので、認識器の追加拡張も容易となる。
【発明の効果】
【００３８】
本発明によれば、画像や音声などの外界の情報を認識してそれに対して自身の行動を反映させる機能を備えた、優れたロボット装置及びその制御方法を提供することができる。
【００３９】
また、本発明によれば、外界からの複数の認識結果を統合して意味を持ったシンボル情報として扱い行動制御を行なうことができる、優れたロボット装置及びその制御方法を提供することができる。
【００４０】
また、本発明によれば、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているか、この声がどの人物の声なのかといった問題を好適に解くことができる、優れたロボット装置及びその制御方法を提供することができる。
【００４１】
本発明によれば、ロボット装置において外界の認識に必要な情報を一般化することで、認識器の種別に極力依存しない記憶処理を実現することができる。これにより、センサ装置や認識の追加拡張が容易となる。
【００４２】
また、本発明によれば、認識結果が記憶モジュールの出力インターフェース上に統合することで、上位のモジュールから追加された認識結果へのアクセスも統一され、設計が容易になる。
【００４３】
また、本発明によれば、認識属性や認識結果に応じて記憶処理を柔軟に変更することができるので、より正確な記憶処理を行なうことができる。
【００４４】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００４５】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００４６】
Ａ．脚式移動ロボットの構成
図１及び図２には、本発明の実施に供される脚式移動ロボット１００が直立している様子を前方及び後方の各々から眺望した様子を示している。この脚式移動ロボット１００は、「人間形」又は「人間型」と呼ばれるタイプであり、後述するように、音声や画像などの外部刺激の認識結果に基づいて自律的に行動制御を行なうことができる。図示の通り、脚式移動ロボット１００は、脚式移動を行なう左右２足の下肢と、体幹部と、左右の上肢と、頭部とで構成される。
【００４７】
左右各々の下肢は、大腿部と、膝関節と、脛部と、足首と、足平とで構成され、股関節によって体幹部の略最下端にて連結されている。また、左右各々の上肢は、上腕と、肘関節と、前腕とで構成され、肩関節によって体幹部上方の左右各側縁にて連結されている。また、頭部は、首関節によって体幹部の略最上端中央に連結されている。
【００４８】
体幹部ユニット内には、図１及び図２上では見えていない制御部が配備されている。この制御部は、脚式移動ロボット１００を構成する各関節アクチュエータの駆動制御や各センサ（後述）などからの外部入力を処理するコントローラ（主制御部）や、電源回路その他の周辺機器類を搭載した筐体である。制御部は、その他、遠隔操作用の通信インターフェースや通信装置を含んでいてもよい。
【００４９】
図３には、本実施例に係る脚式移動ロボット１００が具備する関節自由度構成を模式的に示している。図示の通り、脚式移動ロボット１００は、２本の腕部と頭部１を含む上体と、移動動作を実現する２本の脚部からなる下肢と、上肢と下肢とを連結する体幹部とで構成される。
【００５０】
頭部１を支持する首関節は、首関節ヨー軸２と、首関節ピッチ軸３と、首関節ロール軸４という３自由度を有している。
【００５１】
また、各腕部は、肩関節ピッチ軸８と、肩関節ロール軸９と、上腕ヨー軸１０と、肘関節ピッチ軸１１と、前腕ヨー軸１２と、手首関節ピッチ軸１３と、手首関節ロール軸１４と、手部１５とで構成される。手部１５は、実際には、複数本の指を含む多関節・多自由度構造体である。但し、手部１５の動作自体は、ロボット１００の姿勢安定制御や歩行動作制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。したがって、左右の各腕部は７自由度を有するとする。
【００５２】
また、体幹部は、体幹ピッチ軸５と、体幹ロール軸６と、体幹ヨー軸７という３自由度を有する。
【００５３】
また、下肢を構成する左右各々の脚部は、股関節ヨー軸１６と、股関節ピッチ軸１７と、股関節ロール軸１８と、膝関節ピッチ軸１９と、足首関節ピッチ軸２０と、関節ロール軸２１と、足部（足底又は足平）２２とで構成される。人体の足部（足底）２２は、実際には多関節・多自由度の足底を含んだ構造体であるが、本実施例に係る脚式移動ロボット１００の足底はゼロ自由度とする。したがって、左右の各脚部は６自由度で構成される。
【００５４】
以上を総括すれば、本実施例に係る脚式移動ロボット１００全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有することになる。但し、脚式移動ロボット１００が必ずしも３２自由度に限定される訳ではない。設計・製作上の制約条件や要求仕様などに応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
【００５５】
脚式移動ロボット１００が持つ上述の各関節自由度は、実際にはアクチュエータによる能動的な動作として実現される。装置の外観上で余分な膨らみを排してヒトの自然体形状に近似させることや、２足歩行という不安定構造体に対して姿勢制御を行なうことなどの種々の要請から、関節アクチュエータは小型且つ軽量であることが好ましい。本実施形態では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ＡＣサーボ・アクチュエータを搭載することとした。なお、脚式移動ロボット１００に適用可能な小型ＡＣサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開２０００−２９９９７０号公報（特願平１１−３３３８６号明細書）に開示されている。
【００５６】
Ｂ．ロボットの行動制御システムの構成
本実施形態に係る脚式移動ロボット１００は、外部刺激の認識結果や内部状態の変化に応じて行動制御を行なうことができる。図４には、本実施形態に係る脚式移動ロボット１００において採用される行動制御システム５０の基本アーキテクチャを模式的に示している。
【００５７】
図示の行動制御システム５０にはオブジェクト指向プログラミングを採り入れることができる。この場合、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとＩｎｖｏｋｅを行なうことができる。
【００５８】
行動制御システム５０は、外部環境（Ｅｎｖｉｒｏｎｍｅｎｔｓ）を認識するために、視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３を備えている。
【００５９】
視覚認識機能部（Ｖｉｄｅｏ）５１は、例えば、ＣＣＤ（Ｃｈａｒｇｅ Ｃｏｕｐｌｅｄ Ｄｅｖｉｃｅ：電荷結合素子）カメラのような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識などの画像認識処理や特徴抽出を行なう。視覚認識機能部５１は、後述する"ＭｕｌｔｉＣｏｌｏｒＴｒａｃｋｅｒ"、"ＦａｃｅＤｅｔｅｃｔｏｒ"、"ＦａｃｅＩｄｅｎｔｉｆｙ"といった複数のオブジェクトで構成される。
【００６０】
聴覚認識機能部（Ａｕｄｉｏ）５２は、マイクなどの音声入力装置を介して入力される音声データを音声認識して、特徴抽出したり、単語セット（テキスト）認識を行なったりする。聴覚認識機能部５２は、後述する"ＡｕｄｉｏＲｅｃｏｇ"や"ＡｕｔｈｕｒＤｅｃｏｄｅｒ"といった複数のオブジェクトで構成される。
【００６１】
接触認識機能部（Ｔａｃｔｉｌｅ）５３は、例えば機体の頭部などに内蔵された接触センサによるセンサ信号を認識して、「なでられた」とか「叩かれた」という外部刺激を認識する。
【００６２】
内部状態管理部（ＩＳＭ:Ｉｎｔｅｒｎａｌ Ｓｔａｔｕｓ Ｍａｎａｇｅｒ）５４は、本能モデルや感情モデルを備え、上述の視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３によって認識された外部刺激（ＥＳ：ＥｘｔｅｒｎａｌＳｔｉｍｕｌａ）に応じてロボット１００の本能や情動といった内部状態を管理する。
【００６３】
感情モデルと本能モデルは、それぞれ認識結果と行動履歴を入力に持ち、感情値と本能値を管理している。行動モデルは、これら感情値や本能値を参照することができる。
【００６４】
短期記憶部（ＳｈｏｒｔＴｅｒｍＭｅｍｏｒｙ）５５は、上述の視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。例えば、カメラからの入力画像を約１５秒程度の短い期間だけ記憶する。
【００６５】
長期記憶部（ＬｏｎｇＴｅｒｍＭｅｍｏｒｙ）５６は、物の名前など学習により得られた情報を超期間保持するために使用される。長期記憶部５６は、例えば、ある行動モジュールにおいて外部刺激から内部状態の変化を連想記憶する。但し、長期記憶部５６における連想記憶は、本発明の要旨とは直接関連しないので、本明細書では説明を省略する。
【００６６】
本実施形態に係る脚式移動ロボット１００の行動制御は、反射行動部５９によって実現される「反射行動」と、状況依存行動階層５８によって実現される「商況依存行動」と、熟考行動階層５７によって実現される「熟考行動」に大別される。
【００６７】
熟考行動階層（ＤｅｌｉｂｅｒａｔｉｖｅＬａｙｅｒ）５７は、短期記憶部５５並びに長期記憶部５６の記憶内容に基づいて、脚式移動ロボット１００の比較的長期にわたる行動計画などを行なう。
【００６８】
熟考行動は、与えられた状況あるいは人間からの命令により、推論やそれを実現するための計画を立てて行なわれる行動である。このような推論や計画は、ロボット１００がインタラクションを保つための反応時間よりも処理時間や計算負荷を要する可能性があるので、反射行動や状況依存行動がリアルタイムで反応を返しながら、熟考行動は推論や計画を行なう。
【００６９】
状況依存行動階層（ＳｉｔｕａｔｅｄＢｅｈａｖｉｏｒｓＬａｙｅｒ）５８は、短期記憶部５５並びに長期記憶部５６の記憶内容や、内部状態管理部５４によって管理される内部状態を基に、脚式移動ロボット１００が現在置かれている状況に即応した行動を制御する。
【００７０】
状況依存行動階層５８は、行動毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類し、行動を機体上で発現する。また、状況依存行動階層５８は、内部状態をある範囲に保つための行動（「ホメオスタシス行動」とも呼ぶ）も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出易くなるようにその行動を活性化させる（実際には、内部状態と外部環境の両方を考慮した形で行動が選択される）。状況依存行動は、反射行動（後述）に比し、反応時間が遅い。
【００７１】
熟考行動階層５７や状況依存行動階層５８は、アプリケーションとして実装することができる。
【００７２】
反射的行動部（ＣｏｎｆｉｇｕｒａｔｉｏｎＤｅｐｅｎｄｅｎｔＡｃｔｉｏｎｓＡｎｄＲｅａｃｔｉｏｎｓ）５９は、上述の視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。
【００７３】
反射行動は、基本的に、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動を直接決定する行動である。例えば、人間の顔を追いかけたり、うなずいたりといった振る舞いは反射行動として実装することが好ましい。
【００７４】
本実施形態に係る脚式移動ロボット１００では、短期記憶部５５が、上述した視覚認識機能部５１、聴覚認識機能部５２、接触認識機能部５３などの複数の認識器の結果を時間的及び空間的に整合性を保つように統合して、外部環境下の各物体に関する知覚を短期間の記憶として状況依存行動階層（ＳＢＬ）５８などの行動制御モジュールに提供するようになっている。
【００７５】
したがって、上位モジュールとして構成される行動制御モジュール側では、外界からの複数の認識結果を統合して意味を持ったシンボル情報として扱い、高度な行動制御を行なうことができる。また、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているか、この声がどの人物の声なのか、といった問題を解くことができる。
【００７６】
また、認識した観測結果に関する情報を記憶として短期記憶部５５が保持しているので、自律行動する期間中に一時的に観測結果が来なかったりした場合であっても、機体の行動制御を行なうアプリケーションなどの上位モジュールからは常にそこに物体が知覚されているように見えるようにすることができる。例えば、センサの視野外の情報もすぐに忘れることなく保持しているので、ロボットが物体を一旦見失ったとしても、また後で探し出すことができる。この結果、認識器の間違いやセンサのノイズに強くなり、認識器の通知のタイミングに依存しない安定したシステムを実現することができる。また、認識器単体から見て情報が足りなくても、他の認識結果が補うことができる場合があるので、システム全体としての認識性能が向上する。
【００７７】
また、関連する認識結果が結び付けられているので、アプリケーションなどの上位モジュールで関連する情報を使って行動判断することが可能である。例えば、ロボット装置は、呼び掛けられた声を基に、その人物の名前を引き出すことができる。この結果、挨拶の応答に「こんにちは、ＸＸＸさん。」のように答えるなどのリアクションが可能である。
【００７８】
図５には、図４に示した行動制御システム５０を構成する各オブジェクトによる動作の流れを示している。
【００７９】
同図において、丸で表されているのが、「オブジェクト」又は「プロセス」と呼ばれるエンティティである。オブジェクト同士が非同期に通信し合うことで、システム全体が動作する。各オブジェクトはメッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとＩｎｖｏｋｅを行なっている。オブジェクトには、音響や画像など外部環境を観測するセンサ出力を基にターゲットを認識する各認識器を構成するオブジェクト、認識結果を記憶するオブジェクト、記憶されているオブジェクトを基にロボットの行動制御や外部出力を行なうオブジェクトなどが含まれる。以下に、各オブジェクトの機能について説明する。
【００８０】
ＡｕｄｉｏＲｅｃｏｇ：
マイクなどの音声入力装置からの音声データを受け取って、特徴抽出と音声区間検出を行なうオブジェクトである。また、マイクがステレオである場合には、水平方向の音源方向推定を行なうことができる。音声区間であると判断されると、その区間の音声データの特徴量及び音源方向がＡｒｔｈｅｒＤｅｃｏｄｅｒ（後述）に送られる。
【００８１】
ＡｒｔｈｕｒＤｅｃｏｄｅｒ：
ＡｕｄｉｏＲｅｃｏｇから受け取った音声特徴量と音声辞書及び構文辞書を使って音声認識を行なうオブジェクトである。認識された単語のセットは短期記憶部（ＳｈｏｒｔＴｅｒｍＭｅｍｏｒｙ）５５に送られる。
【００８２】
ＭｕｌｔｉＣｏｌｏｒＴｒａｃｋｅｒ：
色認識を行なうオブジェクトであり、カメラなどの画像入力装置から画像データを受け取り、あらかじめ持っている複数のカラー・モデルに基づいて色領域を抽出し、連続した領域に分割する。分割された各領域の位置や大きさ、特徴量などの情報を出力して、短期記憶部（ＳｈｏｒｔＴｅｒｍＭｅｍｏｒｙ）５５へ送る。
【００８３】
ＦａｃｅＤｅｔｅｃｔｏｒ：
画像フレーム中から顔領域を検出するオブジェクトであり、カメラなどの画像入力装置から画像データを受け取り、それを９段階のスケール画像に縮小変換する。このすべての画像の中から顔に相当する矩形領域を探索する。重なりあった候補領域を削減して最終的に顔と判断された領域に関する位置や大きさ、特徴量などの情報を出力して、ＦａｃｅＩｄｅｎｔｉｆｙ（後述）へ送る。
【００８４】
ＦａｃｅＩｄｅｎｔｉｆｙ：
検出された顔画像を識別するオブジェクトであり、顔の領域を示す矩形領域画像をＦａｃｅＤｅｔｅｃｔｏｒから受け取り、この顔画像が手持ちの人物辞書のうちでどの人物に相当するかを比較して人物の識別を行なう。この場合、顔検出から顔画像を受け取り、出力として顔画像領域の位置、大きさ情報とともに人物のＩＤ情報を出力する。
【００８５】
ＭｏｔｉｏｎＤｅｔｅｃｔｏｒ：
画像フレーム中から動き領域を抽出するオブジェクトであり、カメラなどの画像入力装置から画像データを受け取り、動き領域を検出し、それぞれの動き領域の位置や大きさを出力する。
【００８６】
ＣｏｌｏｒＯｂｊｅｃｔＲｅｃｏｇｎｉｚｅｒ：
画像フレーム中から色を基に物体を認識するオブジェクトであり、単純に色領域から形などの制約をみて、カラー・ランドマークやカラー・ボール、肌色顔領域などの検出を行ない、出力する。
【００８７】
ＳｏｕｎｄＳｏｕｒｃｅＩｎｆｏｒｍａｔｉｏｎ：
音源の方向を特定するオブジェクトであり、マイクロフォンなどの画像入力装置から音響情報を受け取ると、音声以外の音で拍手音や大きな衝撃音などを検出し、その推定音源方向を出力する。
【００８８】
ｉＫｉｎｅｍａｔｉｃｓ
ロボットの各関節を構成するアクチュエータの出力する角度又は位置情報に基づいて、ロボット装置上の各部位に配設されているセンサの位置や姿勢を算出するオブジェクトであり、アクチュエータの出力を時々刻々と受け取って、キネマティクス演算によりその時刻におけるセンサ毎の位置と姿勢を算出する姿勢変換処理を行ない、所定のロボット座標系におけるセンサの位置及び姿勢情報として出力する。
【００８９】
ＳｈｏｒｔＴｅｒｍＭｅｍｏｒｙ（短期記憶部）：
ロボット１００の外部環境に関する情報を比較的短い時間だけ保持するオブジェクトであり、ＡｒｔｈｕｒＤｅｃｏｄｅｒから音声認識結果（単語、音源方向、確信度）を受け取り、ＭｕｌｔｉＣｏｌｏｒＴｒａｃｋｅｒから肌色の領域の位置、大きさと顔領域の位置、大きさを受け取り、ＦａｃｅＩｄｅｎｔｉｆｙから人物のＩＤ情報などを受け取る。また、ロボット１００の機体上の各センサからロボットの首の方向（関節角）を受け取る。また、ｉＫｉｎｅｍａｔｉｃｓから各センサの時刻毎のロボット座標系における位置及び姿勢を受け取り、これらを各センサの姿勢履歴情報（姿勢履歴キュー）として時系列的に管理している。そして、これらの認識結果やセンサ出力を統合的に使って、現在どこにどの人物がいて、しゃべった言葉がどの人物のものであり、その人物とはこれまでにどんな対話を行なったのかという情報を保存する。こうした物体すなわちターゲットに関する物理情報と時間方向でみたイベント（履歴）を出力として、状況依存行動階層（ＳＢＬ）などの上位モジュールに渡す。
【００９０】
ＳｉｔｕａｔｅｄＢｅｈａｖｉｏｒＬａｙｅｒ（状況依存行動階層）：
上述のＳｈｏｒｔＴｅｒｍＭｅｍｏｒｙ（短期記憶部）からの情報を基にロボット１００の行動（状況に依存した行動）を決定するオブジェクトである。複数の行動を同時に評価したり、実行したりすることができる。また、行動を切り替えて機体をスリープ状態にしておき、別の行動を起動することができる。
【００９１】
ＲｅｓｏｕｒｃｅＭａｎａｇｅｒ：
出力用のコマンドに対してロボット１００の各ハードウェアのリソース調停を行なうオブジェクトである。図５に示す例では、音声出力用のスピーカをコントロールするオブジェクトと首のモーション・コントロールするオブジェクトのリソース調停を行なう。
【００９２】
ＳｏｕｎｄＰｅｒｆｏｒｍｅｒＴＴＳ：
音声出力を行なうためのオブジェクトであり、ＲｅｓｏｕｒｃｅＭａｎａｇｅｒ経由でＳｉｔｕａｔｅｄＢｅｈａｖｉｏｒＬａｙｅｒから与えられたテキスト・コマンドに応じて音声合成を行い、ロボット１００の機体上のスピーカから音声出力を行なう。
【００９３】
ＨｅａｄＭｏｔｉｏｎＧｅｎｅｒａｔｏｒ：
ＲｅｓｏｕｒｃｅＭａｎａｇｅｒ経由でＳｉｔｕａｔｅｄＢｅｈａｖｉｏｒＬａｙｅｒから首を動かすコマンドを受けたことに応答して、首の関節角を計算するオブジェクトである。「追跡」のコマンドを受けたときには、ＳｈｏｒｔＴｅｒｍＭｅｍｏｒｙから受け取った物体の位置情報を基に、その物体が存在する方向を向く首の関節角を計算して出力する。
【００９４】
本実施形態では、ロボット装置において外界の認識に必要な情報を一般化することで、認識器の種別に極力依存しない記憶処理を実現することを目指している。これにより、センサ装置や認識の追加拡張が容易となる。
【００９５】
例えば、認識器のインターフェースに、物体の認識結果に属性を識別する認識属性ＩＤを含める。このような場合、認識結果の忘却の制御を属性毎に管理することができる。
【００９６】
また、認識器のインターフェースに、認識物体を観測したセンサの取り付け位置を識別するセンサＩＤを含める。さらに、認識した物体をセンサＩＤに基づいて共通の座標系に変換し、認識した各物体の位置情報を共通の座標系で管理する。センサ原点からの座標表現に関するＩＤと座標値を含めることにより、適切な座標表現での結果通知を許し、共通座標系への自動変換が可能となる。認識結果同士を関連付けするときには（後述）、座標表現のＩＤに対応する距離尺度を自動選択し、記憶されている物体と観測された物体の対応をとることができる。
【００９７】
図１１には、各認識機能部５１〜５３において認識結果を格納する構造体の例を示している。この構造体が、すなわち短期記憶部５５へ出力される認識結果のデータ・フォーマットとなる。図示の構造体のデータ・フィールドは、共通インターフェースに続いて、それぞれの認識機能部５１〜５３に依存する特徴量などのデータ・フィールドと、認識に依存しない位置や大きさ速度などの物理的パラメータ・フィールドが設けられている。
【００９８】
図１１に示す例では、認識共通インターフェースは、Ｈｅａｄｅｒ、Ｒｅｇｉｏｎ、Ｆｅａｔｕｒｅという３つのフィールドからなるデータ構成とする。
【００９９】
Ｈｅａｄｅｒ（共通ヘッダ）では、以下に示す項目が記述される。
【０１００】
（１）認識対象の種類（ＦｅａｔｕｒｅＴｙｐｅ）
（２）認識結果（ＣｌａｓｓＩＤ、ｉｎｓｔａｎｃｅＩＤ、ｃｏｎｆｅｄｅｎｃｅ（認識の確信度））、
（３）認識対象の位置、大きさ、姿勢の表現の種類（ＲｅｇｉｏｎＴｙｐｅ）
（４）センサの種類
【０１０１】
Ｒｅｇｉｏｎフィールドには、認識した物体の位置、大きさ、姿勢が書き込まれる。また、Ｆｅａｔｕｒｅフィールドには、各認識器に固有の情報が書き込まれる。ここで、Ｒｅｇｉｏｎフィールドは、センサ原点からの座標表現に関するＩＤと座標値に相当する。例えば、Ｒｅｇｉｏｎフィールドが３２ビットで構成される場合、上位１６ビットには認識に使用したセンサ自体の識別情報（センサＩＤ）を記載し、下位１６ビットには認識結果の座標表現を記載する。ここで言う座標表現は、極座標、直交座標などを表す。
【０１０２】
他方、認識器の１つであるｉｋｉｎｅｍａｔｉｃｓは、ロボットの各関節を構成するアクチュエータの出力アクチュエータの出力を時々刻々と受け取って、これらの角度又は位置情報をキネマティクス演算することにより、ロボット装置上の各部位に配設されているセンサ毎の位置と姿勢を算出する姿勢変換処理を行なっている。所定のロボット座標系におけるセンサの位置及び姿勢情報として出力する。
【０１０３】
また、短期記憶部５５は、ｉＫｉｎｅｍａｔｉｃｓから各センサの時刻毎のロボット座標系における位置及び姿勢を受け取り、これらを各センサの指令履歴情報として時系列的に管理している。そして、各認識器から、図１１に示したようにデータ形式で認識結果を受け取ると、共通インターフェースに記載されているセンサＩＤを基に姿勢履歴情報から該当する時刻のセンサの位置及び姿勢情報を取得し、さらに共通インターフェースに記載されている座標表現に基づいて認識結果の座標系を共通座標系に変換してキュー管理する（キュー管理に関しては後述に譲る）。
【０１０４】
このように、認識器において認識共通インターフェースを規定することにより、新しい認識器を追加したとき、短期記憶部５５で既に定義されているセンサの座標表現であれば、既存の認識結果と同様に扱うことができる。すなわち、新たに追加された認識器も認識共通インターフェースに従がうことで、既存の認識器からの認識結果とともに認識オブジェクト記憶モジュールの出力インターフェース上で同様に統合されるので、追加された認識結果へのアクセスも統一される。したがって、認識器の追加拡張が容易となる。
【０１０５】
また、認識器において認識共通インターフェースを規定することにより、複数の認識オブジェクト記憶モジュールの出力インターフェースを共通座標系上に統合することができる。そして、状況依存行動階層５８などの上位のモジュールから各認識結果へのアクセスが統一されるので、設計が容易になる。
【０１０６】
ここで、認識器を追加拡張する具体例として、新たに充電ステーション認識器を追加する場合を取り上げて説明する。ここでは、充電ステーションには円柱状の色マーカーがついており（図２９を参照のこと）、ロボット装置は、その周囲のどこから見ても同じように観測することができる、という場面を想定する。
【０１０７】
ロボット装置による充電ステーションの認識は、カメラで撮像した画像からこの色領域を抽出して、マーカーと一致する色の並びを発見することで行なうものとする。そして、充電ステーションの認識器は、カメラなどの画像出力モジュールからのｉｍａｇｅ信号（画像）を入力として、認識された色マーカーの画像内位置からカメラ座標系での位置に変換して出力するように設計する。
【０１０８】
図３０には、充電ステーションの認識器を追加した場合における各オブジェクトの動作の流れを示している。必要であれば、図５と対比されたい。図３０に示すように、充電ステーションの認識器のプログラムを追加実行する。
【０１０９】
この場合、充電ステーションの認識器は、既に装備されている画像出力モジュールに接続して、画像を受け取る。そして、出力結果（すなわち認識結果）を、やはり既に装備されている短期記憶モジュールＳｈｏｒＴｅｒｍＭｅｍｏｒｙの認識結果受信ポートへ送信する。
【０１１０】
充電ステーションの認識器は、短期記憶モジュールの認識結果受信ポートへ送信する際に、上述した共通インターフェースに則り、以下の情報を認識結果に付帯して短期記憶モジュールの認識結果受信ポートに通知することで、既存の認識器と同様に記憶処理を受けることができる。
【０１１１】
（１）他のモジュールとの区別のために新規の認識属性ＩＤ
（２）画像が入力されてくるカメラのセンサＩＤ
（３）認識結果の座標表現の種類（極座標、直交座標、円筒座標、床面座標など）を表すＩＤ
（４）センシングされた時刻，
（５）認識されたサブカテゴリ（この場合例えば充電ステーションの種類など）
（６）認識結果の信頼度
【０１１２】
図３１には、充電ステーションの認識器が使用する共通インターフェースの記述例を示している。
【０１１３】
短期記憶モジュール側では、これまでと同様の記憶処理に則り、センシングされた時刻の姿勢情報を姿勢履歴キューで検索し、対応するセンサの位置及び姿勢情報から、入力された座標表現に合わせて共通座標系へと変換を行なう。したがって、既存の認識器による認識結果とともに、追加拡張された認識器による認識結果を、上位モジュールに対する出力インターフェース上に統合することができる。
【０１１４】
また、短期記憶部５５では、認識器からの認識結果に対応するターゲットが不在であれば、新規にターゲットを生成し、以後の認識結果と対応を取りながらターゲットの保持、更新、忘却などの記憶処理が行なわれる（後述）。
【０１１５】
ここで、この充電ステーションを表すターゲットは、ターゲット・メモリに追加されて上位の行動制御モジュールに伝達される。行動制御モジュールでは、認識器を設計した際に付けたＩＤを使ってターゲット・メモリ内から充電ステーションを検索することができ、記憶されている位置を基にバッテリー残量がなくなると充電ステーションに近づく行動を発現することができる。なお、ターゲット・メモリの仕組みについては、後述に譲る。
【０１１６】
Ｃ．短期記憶部
本実施形態に係る脚式移動ロボット１００では、ＳｈｏｒｔＴｅｒｍＭｅｍｏｒｙ（短期記憶部）５５が、外部刺激に関する複数の認識器の結果を時間的及び空間的に整合性を保つように統合して、意味を持ったシンボル情報として扱うようになっている。これによって、状況依存行動階層（ＳＢＬ）５８などの上位モジュールでは、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているか、この声がどの人物の声なのか、といった問題を解くことを可能にしている。
【０１１７】
短期記憶部５５は、ターゲット・メモリとイベント・メモリという２種類のメモリ・オブジェクトで構成される。
【０１１８】
ターゲット・メモリは、各認識機能部５１〜５３からの情報を統合して、現在知覚している物体に関する情報すなわちターゲットを保持している。このため、対象物体がいなくなったり現れたりすることで、該当するターゲットを記憶領域から削除したり（ＧａｒｂａｇｅＣｏｌｌｅｃｔｏｒ）、新たに生成したりする。また、１つのターゲットを複数の認識属性で表現することができる（ＴａｒｇｅｔＡｓｓｏｃｉａｔｅ）。例えば、肌色で顔のパターンで声を発する物体（人間の顔）などである。
【０１１９】
ターゲット・メモリで保持される物体（ターゲット）の位置や姿勢情報は、それぞれの認識機能部５１〜５３において使用されるセンサ座標系ではなく、ロボット１００の体幹などの機体上の特定の部位が所定の場所に固定されたワールド座標系で表現を行なうようにしている。このため、短期記憶部（ＳＴＭ）５５では、ロボット１００の各関節の現在値（センサ出力）を常に監視して、センサ座標系からこの固定座標系への変換を行なう。これにより、各認識機能部５１〜５３の情報を統合することが可能になる。例えば、ロボット１００が首などを動かしてセンサの姿勢が変化しても、状況依存行動階層（ＳＢＬ）などの行動制御モジュールから見た物体の位置は同じままであるので、ターゲットの取り扱いが容易になる。
【０１２０】
また、イベント・メモリは、外部環境下で発生した過去から現在までのイベントを時系列的に格納するオブジェクトである。イベント・メモリにおいて扱われるイベントとして、ターゲットの出現と消失、音声認識単語、自己の行動や姿勢の変化などの外界の状況の変化に関する情報を挙げることができる。
【０１２１】
イベントの中には、あるターゲットに関する状態変化が含まれている。このため、イベント情報として該当するターゲットのＩＤを含めることで、発生したイベントに関するより詳しい情報を、上述のターゲット・メモリから検索することも可能である。
【０１２２】
図６には、短期記憶部５５が動作する様子を模式的に示している。同図に示す例では、顔の認識結果（ＦＡＣＥ）と音声認識、及びその音源方向の認識結果（ＶＯＩＣＥ）が別々のタイミングで処理されて、短期記憶部５５に通知されたときの動作を表している（但し、ロボット１００の機体を原点とする極座標系で描かれている）。この場合、各認識結果は時間的にも空間的に近い（オーバーラップしている）ことから、顔の属性と音声の属性を持った１つの物体であると判断して、ターゲット・メモリを更新している。
【０１２３】
本実施形態では、複数の認識器でそれぞれ認識された物体間の位置、大きさ、又は経過時間の少なくとも１つによって距離尺度を定義する。例えば、物体中心間のユークリッド距離又は距離を経過時間で割った速度により距離尺度を定義したり、物体の存在する方向を角度で表し、物体間の角度差又は角速度により距離尺度を定義したりして、物体間の距離を算出し、認識結果がオーバーラップしているかどうかを判別する。
【０１２４】
ここで言う認識物体間の「距離」は、いわゆるユークリッド空間上で点間の長さで表現される一般的な距離である以外に、認識結果同士の対応度、関連度、若しくは近さの尺度として表現される。また、いわゆる距離の他に、時間や認識対象が持つ意味概念など、認識の尺度となるさまざまな要素を座標軸に設定して構成される認識空間上の距離を指すこともある。
【０１２５】
図７及び図８には、各認識機能部５１〜５３における認識結果に基づいて、短期記憶部５５内のターゲット・メモリ及びイベント・メモリに入る情報の流れをそれぞれ示している。
【０１２６】
図７に示すように、短期記憶部５５（ＳＴＭオブジェクト）内には、外部環境からターゲットを検出するターゲット検出器が設けられている。このターゲット検出器は、声認識結果や顔認識結果、色認識結果などの各認識機能部５１〜５３による認識結果を基に、新規ターゲットを追加したり、既存のターゲットを認識結果に反映するように更新したりする。検出されたターゲットは、ターゲット・メモリ内に保持される。
【０１２７】
また、ターゲット・メモリには、もはや観測されなくなったターゲットを探して消去するガーベッジ・コレクタ（ＧａｒｂａｇｅＣｏｌｌｅｃｔｏｒ）や、複数のターゲットの関連性を判別して同じターゲットに結び付けるターゲット・アソシエート（ＴａｒｇｅｔＡｓｓｏｃｉａｔｅ）などの機能がある。ガーベッジ・コレクタにより、短期記憶部５５における記憶の忘却を行なうことができる。また、ターゲット・アソシエートによれば、複数の認識器による認識結果の関連付け（Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）を実現することができる。記憶の忘却やＤａｔａ  Ａｓｓｏｃｉａｔｉｏｎの詳細に関しては、後述に譲る。
【０１２８】
前述した状況依存型行動階層（ＳＢＬ）は、短期記憶部５５のクライアント（ＳＴＭクライアント）となるオブジェクトであり、ターゲット・メモリからは定期的に各ターゲットに関する情報の通知（Ｎｏｔｉｆｙ）を受け取る。本実施形態では、ＳＴＭプロキシ・クラスが、短期記憶部５５（ＳＴＭオブジェクト）とは独立したクライアント・ローカルな作業領域にターゲットをコピーして、常に最新の情報を保持しておく。そして、ローカルなターゲット・リスト（Ｔａｒｇｅｔ  ｏｆ  Ｉｎｔｅｒｅｓｔ）の中から所望のターゲットを読み出して、スキーマ（ｓｃｈｅｍａ）すなわち行動モジュールを決定する。
【０１２９】
また、図８に示すように、短期記憶部５５（ＳＴＭオブジェクト）内には、外部環境において発生するイベントを検出するイベント検出器が設けられている。このイベント検出器は、ターゲット検出器によるターゲットの生成や、ガーベッジ・コレクタによるターゲットの削除をイベントとして検出する。また、認識機能部５１〜５３による認識結果が音声認識である場合には、その発話内容がイベントになる。発生したイベントは、発生した時間順にイベント・メモリ内でイベント・リストとして格納される。
【０１３０】
前述した状況依存型行動階層（ＳＢＬ）は、短期記憶部５５のクライアント（ＳＴＭクライアント）となるオブジェクトであり、イベント・メモリからは時々刻々とイベントの通知（Ｎｏｔｉｆｙ）を受け取る。本実施形態では、ＳＴＭプロキシ・クラスが、短期記憶部５５（ＳＴＭオブジェクト）とは独立したクライアント・ローカルな作業領域にイベント・リストをコピーしておく。そして、ローカルなイベント・リストの中から所望のイベントを読み出し、スキーマ（ｓｃｈｅｍａ）すなわち行動モジュールを決定する。実行された行動モジュールは新たなイベントとしてイベント検出器により検出される。また、古いイベントは、例えばＦＩＦＯ（Ｆａｓｔ Ｉｎ Ｆａｓｔ Ｏｕｔ）形式でイベント・リストから逐次的に廃棄される。
【０１３１】
図９には、ターゲット・メモリのデータ表現を示している。同図に示すように、ターゲットは、ＡｓｓｏｃｉａｔｅｄＴａｒｇｅｔという複数の認識結果を要素に持つリストである。このためにターゲットは関連する認識結果を幾つでも持つことができる。
【０１３２】
リストの先頭には、すべての認識結果から統合的に判断されたこのターゲットの位置や大きさなどの物理情報が格納され、音声（ｖｏｉｃｅ）や色（ｃｏｌｏｒ）、顔（ｆａｃｅ）などの認識結果がこれに続く。ＡｓｓｏｃｉａｔｅｄＴａｒｇｅｔは共有メモリ上に展開されて、ターゲットの出現、消失とともにメモリ上に生成されたり、消されたりする。上位モジュールはこのメモリを参照ことによって現在ロボット１００の意識下にある物体の情報を得ることができる。
【０１３３】
また、図１０には、イベント・メモリのデータ表現を示している。同図に示すように、各イベントはＳＴＭＥｖｅｎｔという構造体で表現されて、この中にはどのイベントにも共通のデータ・フィールドとイベントを検知した認識器固有のフィールドからなる。
【０１３４】
イベント・メモリは、これらＳＴＭＥｖｅｎｔ構造体のリストの要素として持つ記憶領域である。上位モジュールは、ＳＴＭＥｖｅｎｔのデータ・フィールドの中のデータから該当するデータを使って、所望のイベントを探すことができる。このようなイベント探索により、ある特定の人との対話の履歴を検索するときには、その人物に対応するターゲットＩＤとＳＰＥＥＣＨ（発話）というイベントの種類を使って、その人物の発声したすべての単語をリストすることが可能となる。
【０１３５】
また、図１１には、各認識機能部５１〜５３における認識結果を格納する構造体の例を示している（前述）。図示の構造体のデータ・フィールドには、それぞれの認識機能部５１〜５３に依存する特徴量などのデータ・フィールドと認識に依存しない位置や大きさ速度などの物理的パラメータ・フィールドが設けられている。
【０１３６】
Ｄ．ＤａｔａＡｓｓｏｓｉａｔｉｏｎ
本実施形態では、複数の認識期でそれぞれ認識された物体間の距離を算出し、認識結果がオーバーラップしているかどうかを判別し、この判別結果に基づいて、複数の認識結果の関連付け、すなわちＤａｔａ  Ａｓｓｏｃｉａｔｉｏｎを行なう。
【０１３７】
図１２〜図１４には、新たに観測されたデータと既に短期記憶部５５に記憶されているターゲットとの関連付けを行なう仕組みを図解している。
【０１３８】
図１２に示す例では、記憶の中に同じ色をした２個のボールが存在している。そして、新たに１つの観測があったときにこの観測結果はどの記憶結果と対応していて、どの記憶を更新すれば良いかを解く必要がある。
【０１３９】
また、図１３に示す例では、２人の顔が記憶されている状態で声が聞こえたときにどちらの顔から発せられた声であるかを対応付けしなければならない。この場合、異なる認識属性の対応付けをどのように行なうか、という問題を解く必要がある。
【０１４０】
また、図１４に示す例では、複数の観測結果があった場合を示している。すなわち、２人の顔が記憶されている状態で、新たにＣとＤという肌色領域が同時に観測され、それぞれの検出結果を記憶内のどちらの顔に対応付けすべきか、という問題を解く必要がある。
【０１４１】
Ｄａｔａ  Ａｓｓｏｃｉｏａｔｉｏｎを行なうことにより、新たに観測されたデータと記憶内のターゲットとの対応をとる。ここで、観測されたデータに対応するターゲットがなければ、新規にターゲットを作成する。そして、記憶内のターゲットには複数の観測結果が対応付けられることになり、異なる認識器からの認識結果を１つのターゲットに対応付けすることができる。このように、複数の観測結果を使うことにより、ターゲットへの誤対応を減らすことができる。
【０１４２】
Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎを行なうに際し、複数の認識器でそれぞれ認識された物体間の位置、大きさ、又は経過時間の少なくとも１つによって距離尺度を定義する。例えば、物体中心間のユークリッド距離又は距離を経過時間で割った速度により距離尺度を定義したり、物体の存在する方向を角度で表し、物体間の角度差又は角速度により距離尺度を定義したりして、物体間の距離の算出を行なう。
【０１４３】
観測されたデータと記憶内のターゲットの距離は、基本的には、ユークリッド空間上における物体の中心座標間の距離によって定義される。認識共通インターフェースのヘッダ領域には、認識対象の位置、大きさ、姿勢の表現の種類が書き込まれるので、任意の認識器からの認識結果の組み合わせで距離計算を行なうことができる。
【０１４４】
ここで、直交座標系（ｘ，ｙ，ｚ）と極座標系（θ，φ）のように２以上の座標表現を用いてもよい。例えば、認識結果の奥行きがわからないような場合には、角度を用いて距離を比較する。
【０１４５】
また、観測されたデータと記憶内のターゲットの距離を複数の距離尺度で算出し、これらの組み合わせの距離を最小にするもの同士の対応付けを選択するようにする。
【０１４６】
図１５〜図１７には、上述したそれぞれの場合において、新たに観測されたデータと既に短期記憶部５５に記憶されているターゲットとの関連付けの問題を解く方法について図解している。
【０１４７】
図１２に示したように、記憶の中に同じ色をした２個のボールが存在し、新たに１つの観測があるといった場合、観測されたデータ及び記憶内のターゲットともに３次元位置が明らかである。したがって、図１５に示すように、物体の中心位置間のユークリッド距離を物体間の距離の尺度とし、下式により求めることができる。
【０１４８】
【数１】
2005271137.tif 000003
【０１４９】
また、図１３に示したように、２人の顔が記憶されている状態で声が聞こえたときには、音源は方向しかわからない。このような場合には、図１６に示すように、物体中心の自己中心座標系での角度を用いて角度差を距離尺度とし、下式により求めることができる。
【０１５０】
【数２】
2005271137.tif 000004
【０１５１】
あるいは、記憶された時刻と観測時刻の差分から上記の距離尺度の単位時間当たりの変化（速度）を求め、それを物体間の距離尺度としても良い。いずれの場合であっても、観測されたデータと記憶内のターゲットとの距離尺度が最小になるようなもの同士を対応付けする。
【０１５２】
また、図１４に示したように、２人の顔が記憶されている状態で、新たにＣとＤという肌色領域が同時に観測された場合には、観測データが複数存在してしまう。このように場合には、観測と記憶のペアとの組み合わせの中から距離尺度の総和が最小になるような対応を求めることで、複数のケースにも拡張することができる。
【０１５３】
図１７に示すように、新たに観測された肌色領域ａと記憶内の顔１を関連付けると、もう一方の観測された肌色領域ｂと記憶内の顔２を関連付けすることになる。この場合の距離は、個々の観測データと記憶ターゲットとの組み合わせにおける距離Ｄa1、Ｄb2の合計として表される。これに対し、新たに観測された肌色領域ａと記憶内の顔２を関連付けると、もう一方の観測された肌色領域ｂと記憶内の顔１を関連付けすることになる。この場合の距離は、個々の観測データと記憶ターゲットとの組み合わせにおける距離Ｄa2、Ｄb1の合計として表される。したがって、下式に示すように、観測されたデータと記憶内のターゲットとの組み合わせの距離を最小にする組み合わせを選択するようにする。
【０１５４】
【数３】
2005271137.tif 000005
【０１５５】
認識結果には多くの間違いが含まれている。ここで、単純に位置関係から対応付けを行なった場合には、間違った対応付けをしたりあり得ない対応付けをしてしまったりすることがある。このような誤対応を防ぎ、より記憶結果の性能を向上するためには、認識属性や認識結果を考慮して対応付けを行なうことが好ましい。
【０１５６】
本発明者らは、認識結果の統合や対応付け（Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）には、あらかじめ持っている知識（ルール）を利用した方が有利であると考えている。例えば以下に示すようなルールを利用することができる。
【０１５７】
（１）音声は顔としか対応付けされない。
（２）ランドマークは色認識結果以外とは対応付けされない。
（３）動き検出結果は単独で存在する。
（４）近くの違う顔よりも遠くの同じ顔の方が対応付けされ易い。
（５）近くの違う色よりも遠くの同じ色の認識結果の方が対応付けされ易い。
【０１５８】
こうしたルール毎にデータ間の対応付け方法を変えるのは処理が大変である。そこで、本実施形態では、こうした特定の条件に合致した場合に求めた距離尺度に掛ける重みを変化させる方法を用いている。例えば、重みを１より大きく取ることで通常の距離尺度にペナルティーを与えて結び付きにくくさせることができる。また逆に、重みを１より小さく取ることで結び付き易くなり、この対応を優遇することができる。図１８には、距離尺度に掛ける重みを制御して距離の定義を変化させる距離計算ルーチンの擬似コードを示している。
【０１５９】
例えば、観測と記憶の組み合わせがカラー・ランドマークと色物体以外のときは重みを無限大にする。観測と記憶の色ＩＤが一致した場合は重みを０．５にし、不一致だった場合は１．５にする。このようなルールを追加しておくことにより、所望の動作を与えることができる。また、実際の対応付けの組み合わせを解く部分とは独立してこうしたルールを追加できるので、新規の認識器が加わって新規のルールを追加したい場合にも容易に行なうことができる。
【０１６０】
また、同様に、短期記憶部５５内にターゲットを生成する場合や消滅すなわち忘却（後述）させる際にも、あらかじめ持っている知識（ルール）を利用してチューニングすることができる。例えば以下に示すようなルールを利用することができる。
【０１６１】
（１）対応するターゲットとの距離がどのくらいはなれていれば、新規にターゲットを作るか（声の場合は４０度以上、顔の場合は８０ｃｍ以上）。
（２）開始した発話は、認識結果が確定するまで忘却されない。
（３）４０秒以上認識結果が確定しないとタイムアウトする。
【０１６２】
図１９には、ターゲット検出器において、各認識器から認識結果通知メッセージを受け取ったときに行なう処理動作をフローチャートの形式で示している。認識器とターゲット検出器間の通信は、オブジェクト同士のプロセス間通信により構成される。
【０１６３】
本実施形態に係るロボット装置は、各関節の駆動角度の時系列データなどからなる姿勢履歴を逐次記録している。そして、いずれかの認識器から認識結果通知を受け取ると、観測が行なわれた時刻と一致する姿勢を姿勢履歴から検索する（ステップＳ１）。また、認識結果にはセンサＩＤが付されており、センサ原点からの座標表現を取得することができる。そして、観測時の姿勢を基に運動学を解くことにより、認識結果をセンサ座標系から基準座標系へ変換する（ステップＳ２）。
【０１６４】
続いて、通知された認識結果とターゲット・メモリ内に保持されている各ターゲットとの距離計算を行ない、距離が最小となるターゲットと認識結果との対応付け検索を行なう（ステップＳ３）。
【０１６５】
ここで、距離が最小となるターゲットと認識結果との距離が十分小さい場合には（ステップＳ４）、最新の観測を当該ターゲットに追加し、あるいは古い観測結果を上書きする（ステップＳ５）。
【０１６６】
また、距離が最小となるターゲットと認識結果との距離が十分小さくない場合には（ステップＳ４）、新規ターゲットを作成し、ターゲット・メモリに追加登録する（ステップＳ６）。そして、ターゲットの追加や更新はイベントとなることから、イベントを発生し、イベント検出器へ送信する（ステップＳ７）。
【０１６７】
図２０には、図１９に示したフローチャート中のステップＳ３に相当する、ターゲットと認識結果の距離が最小となる対応付けを探索するための処理手順を詳細に示している。
【０１６８】
まず、認識結果と対になるターゲットの組み合わせパターンを計算する（ステップＳ１１）。
【０１６９】
そして、これらの組み合わせパターンの中から順に１つずつ取り出し、そのパターンの距離に初期値としてゼロを代入する（ステップＳ１２）。
【０１７０】
次いで、パターンの中から認識結果とターゲットの対を順に１つずつ選択し（ステップＳ１３）、この対に適用するルールがあるかどうかをチェックする（ステップＳ１４）。
【０１７１】
そして、適用すべきルールがない場合には、デフォルトのパラメータを選択し（ステップＳ１５）、適用すべきルールがある場合には、対応するルールからパラメータを選択する（ステップＳ１６）。
【０１７２】
そして、このパラメータを適用して、この対の距離尺度を求め（ステップＳ１７）、当該パターンにおける距離に算出した距離尺度を加える（ステップＳ１８）。このようなパターンの距離計算を、パターン内の認識結果とターゲットのすべての対に対して繰り返し行なう（ステップＳ１９）。
【０１７３】
そして、パターンの距離計算を、すべての組み合わせパターンに対して行ない（ステップＳ２０）、最小のパターン距離を返すとともに、その組み合わせを選択する（ステップＳ２１）。
【０１７４】
Ｅ．記憶の忘却
上述したように、ターゲット・メモリに記憶されているターゲットは、対応する観測がある度にその内容が逐次的に修正又は更新されていく。ところが、環境に変化があり、そのものが移動してなくなったりした場合には、観測が来なくなる。このような場合には、時間の経過をみて記憶を忘却させる。記憶の忘却は、ガーベッジ・コレクタがもはや観測されなくなったターゲットを探して消去することにより実現する。
【０１７５】
こうした忘却するまでの期間（本明細書では、「忘却定数」とも呼ぶ）は、認識器の性能や認識する対象に依存する。各認識器からの認識結果には認識属性ＩＤが含められており、忘却定数を認識属性毎に設定することができる。
【０１７６】
また、本実施形態では、忘却されるのは、あくまでも記憶した対象が観測されるセンサの範囲内にあるときに限っている。何故なら、見えていなければそこから居なく無くなっているのかそれともまだあるのかの判断は付かないからである。
【０１７７】
すなわち、観測範囲内のターゲットにおけるすべての観測結果が一定期間（忘却定数）だけ更新されなかったら、忘却する。但し、観測範囲外のターゲットはいつまでも残る。
【０１７８】
例えば、視野内のボールの観測結果が２秒更新されなかったら、ボールは忘却される。また、声や音のレンジは３６０度なので、常に５秒間更新されなければ忘却する。また、顔が見えなくても肌色が更新されれば、ターゲットは消えない（横顔でもＯＫ）。
【０１７９】
ターゲット・メモリに記憶されているターゲットすなわち物体は、共通の自己中心座標系にて表現されているので（前述）、現在の姿勢を用いてセンサ座標系での位置への変換を行なう。これは、観測結果を記憶と統合する際の処理の逆変換に相当する。この変換を行なった後に、センサのセンシング可能範囲に記憶物体が含まれているかを、ある程度のマージンを見込みながら判定する。
【０１８０】
図２１には、センサの観測範囲を計算する例を示している。同図に示す例では、脚式移動ロボットの頭部に搭載されたカメラが撮影する範囲を観測範囲として求める様子を図解している。
【０１８１】
ターゲット・メモリに記憶されているボール位置は、基準座標系で表現され、ここではｒＴballとおく。これを、下式のように、カメラ座標系でのボールの位置に変換する。認識結果にはセンサＩＤが付されており、センサ原点からの座標表現を取得することができる（前述）。
【０１８２】
【数４】
2005271137.tif 000006
【０１８３】
通常の認識結果の場合は、観測結果の中心が視野角に入っていることが観測範囲の条件である。
【０１８４】
また、色の認識結果の場合は、観測結果のすべてが視野角に入っていることが観測範囲の条件である。
【０１８５】
なお、遠くにあって見えないことは観測範囲に考慮されない。とにかく方角が合っていれば観測範囲条件を満たすものとして扱う。
【０１８６】
図２２には、ターゲット・メモリとガーベッジ・コレクタの協働的動作によりターゲットの削除により記憶の忘却を実現するための処理手順をフローチャートの形式で示している。
【０１８７】
姿勢情報の通知があると、姿勢履歴キューに追加する（ステップＳ３１）。そして、所定の制御周期（例えば１００マイクロ秒）を超えると（ステップＳ３２）、ターゲット・メモリに保持されているターゲットを１つずつ取り出し（ステップＳ３３）、最新の観測を使ってターゲットの統合情報を更新する（ステップＳ３４）。
【０１８８】
そして、当該ターゲットが観測範囲内にあるか（ステップＳ３５）、並びに、すべての観測結果が一定期間更新されなかったか（ステップＳ３６）、をチェックする。
【０１８９】
ここで、当該ターゲットが観測範囲にあり、且つすべての観測結果が一定期間更新されなかったならば、当該ターゲットをターゲット・メモリから削除し、記憶の忘却を行なう（ステップＳ３７）。
【０１９０】
ターゲットの削除はイベントとなることから、イベントを発生し、イベント検出器に送信する（ステップＳ３８）。
【０１９１】
このようなターゲットの削除処理をすべてのターゲットについて繰り返し行なう。そして、すべてのターゲットについて処理を終えると、セルフ・ターゲットを更新し（ステップＳ３９）、ターゲット・メモリへ送信する（ステップＳ４０）。
【０１９２】
図２３には、オドメトリの通知を受けたときの処理手順をフローチャートの形式で示している。
【０１９３】
姿勢履歴のうちオドメトリより古いものを更新する（ステップＳ４１）。
【０１９４】
そして、ターゲット内の基準座標でオドメトリより古いものを更新する（ステップＳ４２）。
【０１９５】
図２４には、図２２に示したフローチャートのうちステップＳ３５〜Ｓ３７における、観測範囲内のターゲットにおけるすべての観測結果が一定期間更新されなかったことにより忘却を行なうための処理手順をフローチャートの形式で示している。
【０１９６】
まず、処理対象となっているターゲット内の観測結果から順に１つずつ選択する（ステップＳ５１）。
【０１９７】
次いで、現在の姿勢からこの観測結果がセンサの観測範囲にあるかどうかを判別する（ステップＳ５２）。センサの観測範囲の判定方法は、図２１を参照しながら説明した通りである。
【０１９８】
ここで、観測結果がセンサの観測範囲内にない場合には、これが最後の観測結果であるかどうかをさらに判別する（ステップＳ５３）。最後の観測結果でない場合には、ステップＳ５１に戻る。また、最後の観測結果である場合には、次いでターゲット内の観測結果があるかどうかを判別する（ステップＳ５４）。そして、ターゲットの削除を行なう（ステップＳ５５）。
【０１９９】
一方、観測結果がセンサの観測範囲にない場合には（ステップＳ５２）、所定の忘却ルールを基に、この観測結果の忘却定数を算出する（ステップＳ５６）。また、忘却ルールがない場合には、デフォルトの忘却定数を使用する。なお、忘却ルールについては後に説明する。
【０２００】
そして、忘却定数を使用して、観測結果の忘却の度合いを更新する（ステップＳ５７）。
【０２０１】
ここで、忘却の度合いが１００％以上となった場合には（ステップＳ５８）、観測結果をターゲットから削除する（ステップＳ５９）。なお、忘却度合いは、新規ターゲットの生成時に０％とし、新しい観測で観測結果が更新される度に０％に戻る。
【０２０２】
そして、ステップＳ５３に進み、最後の観測結果でない場合には、ステップＳ５１に戻る。また、最後の観測結果である場合には、次いでターゲット内の観測結果があるかどうかを判別する（ステップＳ５４）。そして、ターゲットの削除を行なう（ステップＳ５５）。
【０２０３】
上述した忘却ルールは、忘却定数を設定するためのルールである。例えば、物体の持つ属性に応じて忘却定数を設定したり、物体の持つ内容に応じて忘却定数を制御したりすることができる。また、物体の認識結果に属性を識別する認識属性ＩＤを含めており、忘却定数の制御などを属性毎に管理することができる。図２５には、忘却ルールの例を擬似コード形式で記述している。
【０２０４】
Ｆ．ロボットによる対話処理
本実施形態に係る脚式移動ロボット１００では、外部刺激に関する複数の認識器の結果を時間的及び空間的に整合性を保つように統合して、意味を持ったシンボル情報として扱うようになっている。これによって、以前に観測された認識結果との対応問題などより複雑な認識結果を利用して、どの肌色領域が顔でどの人物に対応しているか、この声がどの人物の声なのか、といった問題を解くことを可能にしている。
【０２０５】
以下では、図２６〜図２８を参照しながら、ロボット１００によるユーザＡ及びＢとの対話処理について説明する。
【０２０６】
まず、図２６に示すように、ユーザＡが「まさひろ（ロボットの名前）くん！」と呼ぶと、各認識機能部５１〜５３により音方向検出、音声認識、及び顔識別が行なわれ、呼ばれた方向を向いて、ユーザＡの顔をトラッキングしたり、ユーザＡとの対話を開始するという状況依存の行動が行なわれる。
【０２０７】
次いで、図２７に示すように、今度はユーザＢが「まさひろ（ロボットの名前）くん！」と呼ぶと、各認識機能部５１〜５３により音方向検出、音声認識、及び顔識別が行われ、ユーザＡとの対話を中断した後（但し、会話のコンテキストを保存する）、呼ばれた方向を向いて、ユーザＢの顔をトラッキングしたり、ユーザＢとの対話を開始したりするという状況依存の行動が行なわれる。
【０２０８】
次いで、図２８に示すように、ユーザＡが「おーい！」と叫んで、会話の継続を催促すると、今度は、ユーザＢとの対話を中断した後（但し、会話のコンテキストを保存する）、呼ばれた方向を向いて、ユーザＡの顔をトラッキングしたり、保存されているコンテキストに基づいてユーザＡとの対話を再開するという状況依存の行動が行なわれる。
【産業上の利用可能性】
【０２０９】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。
【０２１０】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置であるならば、例えば玩具等のような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０２１１】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０２１２】
【図１】図１は、本発明の実施に供される脚式移動ロボット１００を前方から眺望した様子を示した図である。
【図２】図２は、本発明の実施に供される脚式移動ロボット１００を後方から眺望した様子を示した図である。
【図３】図３は、本発明の実施形態に係る脚式移動ロボット１００が具備する自由度構成モデルを模式的に示した図である。
【図４】図４は、本発明の実施形態に係る脚式移動ロボット１００において採用される行動制御システム５０のアーキテクチャを模式的に示した図である。
【図５】図５は、行動制御システム５０における動作の流れを模式的に示した図である。
【図６】図６は、短期記憶部５５が動作する様子を模式的に示した図である。
【図７】図７は、各認識機能部５１〜５３における認識結果に基づいてターゲット・メモリに入る情報の流れを示した図である。
【図８】図８は、各認識機能部５１〜５３における認識結果に基づいてイベント・メモリに入る情報の流れを示した図である。
【図９】図９は、ターゲット・メモリのデータ表現を示した図である。
【図１０】図１０は、イベント・メモリのデータ表現を示した図である。
【図１１】図１１は、各認識機能部５１〜５３における認識結果を格納する構造体の例を示した図である。
【図１２】図１２は、新たに観測されたデータと既に短期記憶部５５に記憶されているターゲットとの関連付けを行なう仕組みを説明するための図である。
【図１３】図１３は、新たに観測されたデータと既に短期記憶部５５に記憶されているターゲットとの関連付けを行なう仕組みを説明するための図である。
【図１４】図１４は、新たに観測されたデータと既に短期記憶部５５に記憶されているターゲットとの関連付けを行なう仕組みを説明するための図である。
【図１５】図１５は、新たに観測されたデータと既に短期記憶部５５に記憶されているターゲットとの関連付けの問題を解く方法を説明するための図である。
【図１６】図１６は、新たに観測されたデータと既に短期記憶部５５に記憶されているターゲットとの関連付けの問題を解く方法を説明するための図である。
【図１７】図１７は、新たに観測されたデータと既に短期記憶部５５に記憶されているターゲットとの関連付けの問題を解く方法を説明するための図である。
【図１８】図１８は、距離尺度に掛ける重みを制御して距離の定義を変化させる距離計算ルーチンの擬似コードを示した図である。
【図１９】図１９は、ターゲット検出器において、各認識器から認識結果通知メッセージを受け取ったときに行なう処理動作を示したフローチャートである。
【図２０】図２０は、ターゲットと認識結果の距離が最小となる対応付けを探索するための処理手順を詳細に示したフローチャートである。
【図２１】図２１は、センサの観測範囲を計算する例を示した図である。
【図２２】図２２は、ターゲット・メモリとガーベッジ・コレクタの協働的動作によりターゲットの削除により記憶の忘却を実現するための処理手順を示したフローチャートである。
【図２３】図２３は、オドメトリの通知を受けたときの処理手順を示したフローチャートである。
【図２４】図２４は、観測範囲内のターゲットのすべての観測結果が一定期間更新されなかったことにより忘却を行うための処理手順を示したフローチャートである。
【図２５】図２５は、忘却ルールの例を示した擬似コードである。
【図２６】図２６は、ロボット１００によるユーザＡ及びＢとの対話処理の例を示した図である。
【図２７】図２７は、ロボット１００によるユーザＡ及びＢとの対話処理の例を示した図である。
【図２８】図２８は、ロボット１００によるユーザＡ及びＢとの対話処理の例を示した図である。
【図２９】図２９は、認識器の追加拡張の具体例を説明するための図である。
【図３０】図３０は、認識器の追加拡張の具体例を説明するための図である。
【図３１】図３１は、充電ステーションの認識器が使用する共通インターフェースの記述例を示した図である。
【符号の説明】
【０２１３】
１…頭部，２…首関節ヨー軸
３…首関節ピッチ軸，４…首関節ロール軸
５…体幹ピッチ軸，６…体幹ロール軸
７…体幹ヨー軸，８…肩関節ピッチ軸
９…肩関節ロール軸，１０…上腕ヨー軸
１１…肘関節ピッチ軸，１２…前腕ヨー軸
１３…手首関節ピッチ軸，１４…手首関節ロール軸
１５…手部，１６…股関節ヨー軸
１７…股関節ピッチ軸，１８…股関節ロール軸
１９…膝関節ピッチ軸，２０…足首関節ピッチ軸
２１…足首関節ロール軸，２２…足部（足底）
５０…行動制御システム
５１…視覚認識機能部
５２…聴覚認識機能部
５３…接触認識機能部
５４…内部状態管理部
５５…短期記憶部
５６…長期記憶部
５７…熟考行動階層
５８…状況依存行動階層
５９…反射行動部
１００…脚式移動ロボット
【図１】
2005271137.tif 000007
【図２】
2005271137.tif 000008
【図３】
2005271137.tif 000009
【図４】
2005271137.tif 000010
【図５】
2005271137.tif 000011
【図６】
2005271137.tif 000012
【図７】
2005271137.tif 000013
【図８】
2005271137.tif 000014
【図９】
2005271137.tif 000015
【図１０】
2005271137.tif 000016
【図１１】
2005271137.tif 000017
【図１２】
2005271137.tif 000018
【図１３】
2005271137.tif 000019
【図１４】
2005271137.tif 000020
【図１５】
2005271137.tif 000021
【図１６】
2005271137.tif 000022
【図１７】
2005271137.tif 000023
【図１８】
2005271137.tif 000024
【図１９】
2005271137.tif 000025
【図２０】
2005271137.tif 000026
【図２１】
2005271137.tif 000027
【図２２】
2005271137.tif 000028
【図２３】
2005271137.tif 000029
【図２４】
2005271137.tif 000030
【図２５】
2005271137.tif 000031
【図２６】
2005271137.tif 000032
【図２７】
2005271137.tif 000033
【図２８】
2005271137.tif 000034
【図２９】
2005271137.tif 000035
【図３０】
2005271137.tif 000036
【図３１】
2005271137.tif 000037