(57)【要約】【課題】効率的に周囲の画像を収集する。【解決手段】ロボット装置１が物体を探査する空間にロボット装置１を中心とした探査空間を形成する。そして、ロボット装置１が物体を認識できる距離認識限界距離と、ロボット装置１の視野範囲とを基に、ロボット装置１が物体を探査した範囲を特定し、探査空間に反映する。探査空間は、複数のブロックから構成されており、各ブロックが探査された時刻を記憶する探査時刻記憶領域が確保されている。信号処理回路１０は、ブロックが探査された範囲に含まれた探査時刻を探査時刻記憶領域に記憶させる。そして、信号処理回路１０は、探査時刻をもとにＣＣＤカメラ２１の撮像方向を切り換える。【選択図】  図７
2004229003.tif 000002
【特許請求の範囲】
【請求項１】
外部情報、外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的動作を実行するロボット装置において、
画像情報を取得する撮像手段と、
当該ロボット装置を中心とした仮想座標系を生成し、該座標系上の空間を複数の単位ブロックに分割する座標系生成手段と、
上記撮像手段及び当該ロボット装置の特性に基づく撮像範囲を上記仮想座標系に反映し、該撮像範囲に含まれた単位ブロックに撮像時刻情報を付加する撮像時刻情報付加手段と、
上記撮像時刻情報と上記仮想座標系とを対応付けて記憶する記憶手段と、
上記単位ブロックに付加された撮像時刻情報に基づいて、実際の撮像方向を決定する撮像方向決定手段と
を備えることを特徴とするロボット装置。
【請求項２】
上記撮像方向決定手段は、
上記単位ブロックを複数まとめた１領域内において、上記撮像時刻情報がある時刻より新しいブロックを新規撮像ブロックと判定し、該領域の全単位ブロック数に対する新規撮像ブロックの割合を探査率として算出する探査率撮像手段を備え、
上記探査率を基に実際の撮像方向を決定することを特徴とする請求項１記載のロボット装置。
【請求項３】
上記撮像方向決定手段は、
上記撮像範囲と、上記撮像範囲外の領域との距離を求める領域距離出力手段を備え、
上記撮像範囲から近い距離にある領域に上記撮像手段の撮像方向を切り換えることを特徴とする請求項１記載のロボット装置。
【請求項４】
上記撮像方向決定手段は、
当該ロボット装置から離れた領域に上記撮像手段の撮像方向を切り換えることを特徴とする請求項１記載のロボット装置。
【請求項５】
画像情報を取得する撮像手段を備え、外部情報、外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的動作を実行するロボット装置の撮像方向切換方法であって、
当該ロボット装置を中心とした仮想座標系を生成し、該座標系上の空間を複数の単位ブロックに分割する座標系生成工程と、
上記撮像手段及び当該ロボット装置の特性に基づく撮像範囲を上記仮想座標系に反映し、該撮像範囲に含まれた単位ブロックに撮像時刻情報を付加する撮像時刻情報付加工程と、
上記撮像時刻情報と上記仮想座標系とを対応付けて記憶する記憶手段と、
上記単位ブロックに付加された撮像時刻情報に基づいて、実際の撮像方向を決定する撮像方向決定工程と
を有することを特徴とする撮像方向切換方法。
【請求項６】
上記撮像方向決定工程は、
上記単位ブロックを複数まとめた１領域内において、上記撮像時刻情報がある時刻より新しいブロックを新規撮像ブロックと判定し、該領域の全単位ブロック数に対する新規撮像ブロックの割合を探査率として算出する探査率撮像工程を含み、
上記探査率を基に実際の撮像方向を決定することを特徴とする請求項５記載の撮像方向切換方法。
【請求項７】
上記撮像方向決定工程は、
上記撮像範囲と、上記撮像範囲外の領域との距離を求める領域距離出力工程を含み、
上記撮像範囲から近い距離にある領域に上記撮像手段の撮像方向を切り換えることを特徴とする請求項５記載の撮像方向切換方法。
【請求項８】
上記撮像方向決定工程は、
当該ロボット装置と、領域との距離を求める距離出力工程を含み、
当該ロボット装置から離れた領域に上記撮像手段の撮像方向を切り換えることを特徴とする請求項５記載の撮像方向切換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、撮像手段を備え、上記撮像手段の撮像方向を自律的に切り換えるロボット装置、及び上記ロボット装置の撮像方向切換方法に関する。
【０００２】
【従来の技術】
従来、外部情報、外部からの働きかけに応じた動作及び／又は内部状態に基づき自律的に行動するロボット装置が存在する。このようなロボット装置には、自立的に物体を探査する機能を有するものもある。ロボット装置は、物体を探査する場合、ＣＣＤカメラなどの撮像手段によって、周囲の画像を取り込み、取り込んだ画像中に目的の物体が存在するか否かを判断する。
【０００３】
従来のロボット装置は、ロボット装置が周囲の画像を取り込む順序に特別な規則はなく、例えば、ロボット装置の周囲の空間全体を撮像したり、ランダムに撮像方向を切り換えていた。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記のような方法で撮像方向を切り換えても、撮像範囲に物体が存在する可能性は低く、物体が発見されるまで、多くの空間を撮像しなければならなくなり、探査処理に時間がかかってしまう。
【０００５】
本発明は、上記課題に鑑みてなされたものであって、効率的に周囲の画像を収集するロボット装置及び上記ロボット装置が物体の探査時間を短縮するための撮像方向切換方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上述した目的を達成するために、本発明にかかるロボット装置は、外部情報、外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的動作を実行するロボット装置であって、画像情報を取得する撮像手段と、当該ロボット装置を中心とした仮想座標系を生成し、該座標系上の空間を複数の単位ブロックに分割する座標系生成手段と、撮像手段及び当該ロボット装置の特性に基づく撮像範囲を仮想座標系に反映し、該撮像範囲に含まれた単位ブロックに撮像時刻情報を付加する撮像時刻情報付加手段と、撮像時刻情報と仮想座標系とを対応付けて記憶する記憶手段と、単位ブロックに付加された撮像時刻情報に基づいて、実際の撮像方向を決定する撮像方向決定手段とを備えることを特徴とする。
【０００７】
また、本発明にかかる撮像方向切換方法は、画像情報を取得する撮像手段を備え、外部情報、外部からの働きかけに応じた動作及び／又は内部状態に基づく自律的動作を実行するロボット装置の撮像方向切換方法であって、当該ロボット装置を中心とした仮想座標系を生成し、該座標系上の空間を複数の単位ブロックに分割する座標系生成工程と、撮像手段及び当該ロボット装置の特性に基づく撮像範囲を仮想座標系に反映し、該撮像範囲に含まれた単位ブロックに撮像時刻情報を付加する撮像時刻情報付加工程と、撮像時刻情報と仮想座標系とを対応付けて記憶する記憶手段と、単位ブロックに付加された撮像時刻情報に基づいて、実際の撮像方向を決定する撮像方向決定工程とを有することを特徴とする。
【０００８】
【発明の実施の形態】
本発明は、外部状態及び内部状態に従って自立的に行動するロボット装置において、ロボット装置１を中心とした仮想的な座標系を生成し、この座標系を複数のブロックに分割し、このブロック毎に、ブロックを探査した時刻情報を付加し、この時刻情報をもとに実際の撮像範囲を決定することによって、当該ロボット装置の周囲を効率的に探査できるようにした点を特徴としており、ロボット装置、特にエンターテインメントロボットがあるインタラクションを実行する際に、この対象を探し出して認識するまでの処理として適用することができる。
【０００９】
以下、図面を参照して本発明を適用したロボット装置１について説明する。図１は、ロボット装置１の外観を示している。ロボット装置１は、人間の外観を模した形状をしており、体幹部ユニット２の所定の位置に頭部ユニット３が連結されるとともに、左右２つの腕部ユニット４Ｒ／Ｌと、左右２つの脚部ユニット５Ｒ／Ｌが連結されて構成されている（但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下において同じ。）。
【００１０】
ロボット装置１を構成する各ユニットは、関節を介して可動的に接合されている。図２は、ロボット装置１が具備する関節の自由度を示している。頭部ユニット３を支持する首関節は、首関節ヨー軸１０１と、首関節ピッチ軸１０２と、首関節ロール軸１０３という３自由度を有している。
【００１１】
ここで、ヨー軸とはロボット装置１の運動面、すなわち、床に対して垂直な軸であり、ピッチ軸とはロボット装置１の進行方向に対して直角な軸であり、ロール軸とはロボット装置１の進行方向に対して平行な軸である。首関節ヨー軸１０１、首関節ピッチ軸１０２、首関節ロール軸１０３は、これらの軸を中心として回転する（図３参照）。
【００１２】
また、上肢を構成する各々の腕部ユニット４Ｒ／Ｌは、肩関節ピッチ軸１０７と、肩関節ロール軸１０３と、上腕ヨー軸１０９と、肘関節ピッチ軸１１０と、前腕ヨー軸１１１と、手首関節ピッチ軸１１２と、手首関節ロール軸１１３と、手部とで構成される。手部は、実際には、複数本の指を含む多関節・多自由度構造体である。但し、手部の動作は、ロボット装置１の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。したがって、各腕部は７自由度を有するとする。
【００１３】
また、体幹部ユニット２２は、体幹ピッチ軸１０４と、体幹ロール軸１０５と、体幹ヨー軸１０６という３自由度を有する。
【００１４】
また、下肢を構成する各々の脚部ユニット５Ｒ／Ｌは、股関節ヨー軸１１４と、股関節ピッチ軸１１５と、股関節ロール軸１１６と、膝関節ピッチ軸１１７と、足首関節ピッチ軸１１９と、足首関節ロール軸１１８と、足部とで構成される。本明細書中では、股関節ピッチ軸１１５と股関節ロール軸１１６の交点は、ロボット装置１の股関節位置を定義する。人体の足部は、実際には多関節・多自由度の足底を含んだ構造体であるが、ロボット装置１の足底は、ゼロ自由度とする。したがって、各脚部は、６自由度で構成される。以上を総括すれば、ロボット装置１全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有する。
【００１５】
ロボット装置１は、これらの関節を軸にして各ユニットを駆動し、人間と同様の動作を行う。関節は、関節を駆動するアクチュエータ３１と、関節の屈折量を検出するポテンショメータ３２とから構成される。ポテンショメータ３２とアクチュエータ３１とは、図４に示すように、ハブ３３を介して信号処理回路１０に接続されている。信号処理回路１０は、ポテンショメータ３２から関節の実際の屈折量を入力するとともに、この屈折量をもとにアクチュエータ３１を制御する。
【００１６】
信号処理回路１０には、ポテンショメータ３２のほかに複数のセンサが接続されている。これらのセンサは、人間の目や耳など五感を構成する器官に相当する。例えば、ＣＣＤカメラ２１は人間の目に相当し、マイクロフォン２４は人間の耳に相当し、タッチセンサ２２は人間の触覚に相当する。
【００１７】
信号処理回路１０は、さらに、距離センサ２３や角速度センサ２６、加速度センサ２７が接続されている。ロボット装置１は、距離センサ２３や角速度センサ２６からの出力をもとに、ロボット装置１自身の移動速度や移動方向などを検出する。
【００１８】
信号処理回路１０は、フラッシュＲＯＭ１３、メモリカード１５などの記憶手段からプログラムを読み出し、所定の処理を実行する。また。ＤＲＡＭ１２は、信号処理回路の作業領域であり、信号処理回路１０は、センサデータ、画像データ及び音声データを順次取り込み、これらのデータをＤＲＡＭ１２内の所定位置に格納する。信号処理回路１０は、ＤＲＡＭ１２に格納したセンサデータ、画像データ、音声データをもとに、ロボット装置１の行動を決定する。ＤＲＡＭ１２、フラッシュＲＯＭ１３、ＰＣカードインターフェース１４等の記憶手段は、ＣＰＵ１１によって制御されている。
【００１９】
ロボット装置１は、信号処理回路１０での各種処理によって、例えば、寝そべる、立つ、歩くなどの動作、各センサにより周囲の状況を把握して障害物を回避するといった、取得した情報に基づいた動作などができる。また、人間との会話、人間やロボット同士でボールを蹴るなどのインタラクションが行える。ロボット装置１の動作において、会話をする相手、蹴るためのボール、ボールを蹴る相手などのインタラクションの対象を探す行為は、その後の動作を行う前段階の動作として非常に重要である。
【００２０】
本具体例として示すロボット装置１は、特に、インタラクション対象を探査する処理に特徴を有している。すなわち、本具体例として示すロボット装置１は、このロボット装置１を中心とする仮想座標系（グローバルビュー）を設定し、実際に視ている視野画像（ＣＣＤカメラによって取得している画像）の領域をこの仮想座標系に対応付けて、仮想座標系において視野領域となった部分に、視野領域に含まれたときの時刻情報を付加して記憶する。そして、この仮想座標系上に付加された時刻情報に基づいて実際の視点（ＣＣＤカメラ）を向けることによって目標とする対象物の探査を行っている。
【００２１】
一例として、本具体例では、この仮想座標系を、予め決められた単位ブロックに区分し、複数の単位ブロックの集合から構成される単位領域内にて所定時間分過去の単位ブロックの割合を探査率として算出している。算出された探査率の低い単位領域から優先的に視点（ＣＣＤカメラ）を向けることによって、効率的にロボット装置１の周囲を探査している。
【００２２】
この探査動作を実現するために、ロボット装置１は、探査処理部４０を備える。図５は、探査処理部４０を示す機能ブロック図である。
【００２３】
探査処理部４０は、仮想座標系を生成する座標系生成部４１と、ＣＣＤカメラ２１の撮像方向を特定する撮像方向特定部４２と、ＣＣＤカメラ２１の探査範囲を特定する探査範囲特定部４３と、上記仮想座標系において視野範囲となった部分に視野範囲に含まれたときの時刻情報を付加して記憶する探査時刻記憶部４４と、上記探査時刻記憶部４４に記憶された探査時刻をもとにＣＣＤカメラ２１の撮像方向を決定する撮像方向決定部４５とを備える。
【００２４】
但し、ここで、座標系生成部４１、撮像方向特定部４２、探査範囲特定部４３、探査時刻記憶部４４、撮像方向決定部４５は、信号処理部１０がソフトウェア的に実現するものであってもよい。また、上記各部は、信号処理部１０以外の専用のハードウェアによって実現されるものであってもよい。
【００２５】
以下、ロボット装置１がカメラの撮像方向を切り換えてインタラクション対象を探査する探査処理部４０について具体的に説明する。
【００２６】
まず、座標系生成部４１について説明する。座標系生成部４１は、物体を探査する空間として仮想的な座標系を設定する。ここでは、座標系生成部４１は、２次元の探査空間を生成するものとする。探査空間は、例えば、図６に示すように、ロボットを中心として正方形の探査空間が形成される。座標系は、ロボット装置１の正面方向をＸ軸、Ｘ軸に垂直な軸をＹ軸としている。探査空間の広さは、認識限界距離に基づいて決められている。
【００２７】
認識限界距離とは、カメラの解像度など、カメラの性能によって決まる値であり、画像内の物体が何であるかを判別できる限界の距離である。ロボット装置１は、視野範囲に物体が入っていても認識限界距離より離れた位置にあると、その物体が何であるかを特定することができない。認識限界距離外の物体は、探査できないため、座標系生成部４１は、認識限界距離内である範囲を探査空間としている。
【００２８】
また、探査空間を構成する座標は、複数のブロックに分割されている。このブロックに対して探査時刻が付加される。ブロックの一辺の長さは、認識限界精度によって決められている。この認識限界精度とは、上述した認識限界距離にある対象物の大きさに基づいて決まる。すなわち、認識限界精度は、認識できる物体の大きさの限界である。
【００２９】
続いて、撮像方向特定部について説明する。上述したように、ロボット装置１は、複数の関節から構成され、これらの関節を駆動することにより人間のように動作する。ロボット装置１が動作するとロボット装置１の頭部に取り付けられたＣＣＤカメラ２１も移動しＣＣＤカメラ２１の撮像方向を切り換えることができる。
【００３０】
例えば、図２の首関節ヨー軸１０１を回転させるとＣＣＤカメラ２１はロボット装置１の頭部とともに左右に回転し、首関節ピッチ軸１０２を回転するとＣＣＤカメラ２１はロボット装置１の頭部とともに上下に回転する。また、ロボット装置１が前進するとＣＣＤカメラ２１はロボット装置１の移動距離と同じだけ前進し、ロボット装置１が回転すると、ＣＣＤカメラ２１もロボット装置１とともに回転する。このように、ＣＣＤカメラ２１の撮像方向は、ロボット装置１が動作するごとに変化する。なお、カメラの撮像方向を切り換える場合には、頭部ユニット３だけを駆動してカメラの撮像方向を切り換えるときと、ロボット装置１全体を駆動してカメラの撮像方向を切り換えるときがある。混乱を避けるため、ロボット装置１の回転による撮像方向の回転に対してはロボットによる撮像方向の回転と記載し、頭部ユニット３の回転による撮像方向の回転をカメラの回転と記載する。
【００３１】
ＣＣＤカメラ２１の撮像方向は、ＣＣＤカメラ２１の高さや傾きによって決まる。信号処理回路１０は、ＣＣＤカメラ２１の撮像方向として、ＣＣＤカメラ２１の高さや傾きを算出する。信号処理回路１０には、ロボット装置１の身体構造が記憶されている。ロボット装置１の身体構造とは、例えば、ロボット装置１を構成するユニットの配置や各ユニットのサイズなどである。また、信号処理回路１０は、ポテンショメータ３２から各関節の屈折量を入力している。信号処理回路１０は、ロボット装置１の身体構造と関節の屈折量とをもとに頭部ユニット３に配設されたＣＣＤカメラ２１の高さ、ＣＣＤカメラ２１の傾き等を算出する。
【００３２】
探査範囲特定部４３は、ＣＣＤカメラ２１が目標の物体を探査した範囲を特定し、探査した時刻を探査時刻記憶部４４に記憶する。探査範囲は、ＣＣＤカメラ２１の視野範囲を探査空間に反映させたものである。探査範囲特定部４３は、ＣＣＤカメラ２１の撮像方向と、ＣＣＤカメラ２１の撮像方向から、ＣＣＤカメラ２１の視野範囲を求める。そして、探査範囲特定部４３は、探査空間の各ブロックが視野範囲に入った時刻を探査時刻記憶部４４に記憶する。
【００３３】
ロボット装置１を起動した時点では、ロボット装置１は、何れのブロックも撮像しておらず、探査時刻記憶部４４はクリアである。ロボット装置１を起動すると、まず、座標系生成部４１が仮想的な座標系を生成する。そして、ＣＣＤカメラ２１の撮像動作に応じて、探査したブロックの探査時刻を探査時刻記憶部４４に記憶する。
【００３４】
撮像方向決定部４５は、探査時刻をもとにＣＣＤカメラ２１の撮像方向を決定する。撮像方向決定部４５は、まだ探査されていない方向、または過去に探査されたが探査された時間が古い方向をＣＣＤカメラ２１の次の撮像方向に決定する。
【００３５】
撮像方向を決定するために、探査空間上に単位エリアを設定する。単位エリアは、複数のブロックから構成される。撮像方向決定部４５は、ブロックの探査時刻が古いか新しいかを判定するための閾値（探査扱い時間と記す）を定義している。撮像方向決定部４５は、現在時刻と探査扱い時間の差をとり、探査判定時刻を算出する。そして、各ブロックの探査時刻が探査判定時刻より新しい場合には、そのブロックを探査済みブロックである判定する。
【００３６】
また、ロボット装置１が探査処理を開始した段階では、まだ、探査されていないブロックが多数存在する。探査されていないブロックには、ブロックの探査時刻が記憶されていない。撮像方向決定部４５は、探査時刻が記憶されていないブロックを未探査ブロックであると判定する。
【００３７】
撮像方向決定部４５は、単位エリア内のブロックうち探査時刻の探査済みブロックの割合を算出する。この割合を探査率と定義し、式（１）をもとに算出する。
【００３８】
探査率＝探査済みブロックの個数／単位エリア内のブロックの総数×１００・・・（１）
【００３９】
図７に示す単位エリアを例として探査率の算出例を説明する。図７は、１つの単位エリアと、この単位エリアの探査時刻との関係を概念的に示している。この単位エリアは、縦横５ブロックの２５ブロックから構成されてるとすると、図面左上から図面右下にかけて探査時刻が１５から７（もしくは１）と徐々に古くなっている。信号処理回路１０は、まず、現在時刻と探査扱い時間の差をとり、探査判定時刻を算出する。この例では、現在時刻が１６、探査扱い時間が７であるため、探査判定時刻は９（＝１６−７）となる。そして、撮像方向決定部４５は、探査判定時刻と探査時刻とを比較し、探査時刻が探査判定時刻より新しいブロックを探査済みブロックと判定する。図７において、探査済みブロックは、右上のハッチングがかけられた部分である。図７の例では、２５個のブロックのうち１５個のブロックが探査済みブロックと判定されている。これを式（１）に代入すると、探査率は以下のようになる。
【００４０】
探査率＝１５／２５×１００＝６０（％）
【００４１】
撮像方向決定部４５は、探査率の低い単位エリアから優先的に探査を行うことで、まだ探査されていない方向や過去に探査されたが探査された時間が非常に古い方向を特定する。
【００４２】
撮像方向決定部４５は、探査率の他に、ロボット装置１からエリアまでの距離や現在のロボット装置１の視野範囲から単位エリアまでの距離などをもとに、撮像方向を決定する。
【００４３】
撮像方向決定部４５は、探査率が等しいエリアが複数ある場合、ロボット自身から離れたエリアから優先的に探査を行う。これは、ＣＣＤカメラ２１の撮像方向が近いよりも、ＣＣＤカメラ２１の撮像方向が遠い方が、探査範囲が広いため、効率的に探査できるからである。また、ロボット装置１には、足元を探査するために現在の位置を離れなければならないものがある。このようなロボット装置１では、ロボット装置１から離れた単位エリアを優先的に探査することにより、ロボット装置１が足元を見るために移動する可能性を低くすることができる。
【００４４】
撮像方向決定部４５は、探査率が等しい単位エリアが複数ある場合には、現在のロボット装置１の視野範囲に近い単位エリアを優先的に探査する。これは、ＣＣＤカメラ２１の撮像方向を切り換えるための動作を短縮するためである。
【００４５】
図８のフローチャートは、探査処理部４０による、処理手順を示している。ここで、ロボット装置１は、ボールを蹴るという行動を起こす対象としてのボールを探索する処理を行う。
【００４６】
ロボット装置１がボールの探査を開始すると、撮像方向特定部４２は、まず、ＣＣＤカメラ２１の撮像方向を特定する。探査範囲特定部４３は、撮像方向特定部４２がＣＣＤカメラ２１の撮像方向を特定すると、ＣＣＤカメラ２１の探査範囲を特定する（ステップＳ１）。なお、ロボット装置１の探査空間は、ロボット装置１の起動時に既に生成されているものとする。
【００４７】
次いで、撮像方向決定部４５は、まだ撮像されていない範囲、または過去に撮像したが撮像時間が古く信頼性の低い範囲の探査を開始する。撮像方向決定部４５は、まず、各エリアの探査率を算出する（ステップＳ２）。そして、探査率の低いエリアを優先的に探査するよう、探査率の優先順位を付ける（ステップＳ３）。
【００４８】
次いで、撮像方向決定部４５は、優先順位が同じエリアが存在するか否かを判定し（ステップＳ４）、優先順位が同じエリアが存在する場合には（ステップＳ４；ＹＥＳ）、優先順位が等しいエリアとロボット装置１との距離、及び現在のＣＣＤカメラ２１の探査範囲と優先順位の等しいエリアとの距離を比較し、ロボット装置１から離れているエリア、及び現在の探査範囲から近いエリアの優先順位を高くする（ステップＳ５）。
【００４９】
一方、優先順位が同じエリアが存在しない場合には（ステップＳ４；ＮＯ）、撮像方向特定部４２は、ロボット装置１の各関節を駆動して、優先順位の高いエリアに撮像方向を切り換える（ステップＳ６）。
【００５０】
ＣＣＤカメラ２１は、優先順位の高いエリアに撮像方向を切り換える間、撮像した画像を探査処理部４０に出力する。探査処理部４０は、ＣＣＤカメラ２１から入力した画像から目的のボールを探査し（ステップＳ７）、目的のボールを発見した場合には（ステップＳ７；ＹＥＳ）、ボールの探査処理を終了する。
【００５１】
一方、目的のボールが発見できなかった場合（ステップＳ７；ＮＯ）、撮像方向特定部４２は、撮像方向の移動軌跡を算出する。そして、探査範囲特定部４３は、撮像方向の移動軌跡から各ブロックが視野範囲に入った時刻を計算し（ステップＳ８）、この時刻を探査時刻記憶部４４に記憶する（ステップＳ７）。探査範囲特定部４３は、探査時刻記憶部４４を更新すると、ステップＳ２に処理を移行し、ボールが発見されるまで、ステップＳ２〜ステップＳ９の処理を繰り返す。
【００５２】
このように、本発明を適用したロボット装置１は、探査範囲を自律的に切り換える探査機能を有し、まだ探査していない範囲や過去に探査しているがその情報が古く信頼性の低い範囲などを優先的に探査する。そのため、一度探査した範囲を何度も探査することがなくなり、探査処理にかかる時間を短縮することができる。
【００５３】
以下、信号処理回路が実行するソフトウェアの構成例について、図９〜図１３を用いて説明する。なお、予めフラッシュＲＯＭ１３に格納されており、ロボット装置１の電源投入初期時において読み出される。また、上述した探査処理に関するプログラムも予めフラッシュＲＯＭ１３に格納されている。
【００５４】
図９において、デバイス・ドライバ・レイヤ５０は、制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット５１から構成されている。この場合、各デバイス・ドライバは、ＣＣＤカメラ２１等の通常のコンピュータで用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、対応するハードウェアからの割り込みを受けて処理を行う。
【００５５】
また、ロボティック・サーバ・オブジェクト５２は、デバイス・ドライバ・レイヤ５０の最下位層に位置し、例えば上述の各種センサやアクチュエータ３１等のハードウェアにアクセスするためのインターフェイスを提供するソフトウェア群でなるバーチャル・ロボット５３と、電源の切り換えなどを管理するソフトウェア群でなるパワーマネジャ５４と、他の種々のデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネジャ５５と、ロボット装置１の機構を管理するソフトウェア群でなるデザインド・ロボット５６とから構成されている。
【００５６】
マネジャ・オブジェクト５７は、オブジェクト・マネジャ５８及びサービス・マネジャ５９から構成されている。オブジェクト・マネジャ５８は、ロボティック・サーバ・オブジェクト５２、ミドル・ウェア・レイヤ６０、及びアプリケーション・レイヤ６１に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群であり、サービス・マネジャ５９は、メモリカードに格納されたコネクションファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【００５７】
ミドル・ウェア・レイヤ６０は、ロボティック・サーバ・オブジェクト５２の上位層に位置し、画像処理や音声処理などのこのロボット装置１の基本的な機能を提供するソフトウェア群から構成されている。また、アプリケーション・レイヤ６１は、ミドル・ウェア・レイヤ６０の上位層に位置し、当該ミドル・ウェア・レイヤ６０を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット装置１の行動を決定するためのソフトウェア群から構成されている。
【００５８】
なお、ミドル・ウェア・レイヤ６０及びアプリケーション・レイヤ６１の具体なソフトウェア構成をそれぞれ図１０、図１１に示す。
【００５９】
ミドル・ウェア・レイヤ６０は、図１１に示すように、騒音検出用、温度検出用、明るさ検出用、音階認識用、距離検出用、姿勢検出用、タッチセンサ用、動き検出用及び色認識用の各信号処理モジュール７０〜７８並びに入力セマンティクスコンバータモジュール７９などを有する認識系８０と、出力セマンティクスコンバータモジュール８８並びに姿勢管理用、トラッキング用、モーション再生用、歩行用、転倒復帰用、ＬＥＤ点灯用及び音再生用の各信号処理モジュール８１〜８７などを有する出力系８９とから構成されている。
【００６０】
認識系８０の各信号処理モジュール７０〜７８は、ロボティック・サーバ・オブジェクト５２のバーチャル・ロボット５３によりＤＲＡＭ１２から読み出される各センサデータや画像データ及び音声データのうちの対応するデータを取り込み、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクスコンバータモジュール７９に与える。ここで、例えば、バーチャル・ロボット５３は、所定の通信規約によって、信号の授受或いは変換をする部分として構成されている。
【００６１】
入力セマンティクスコンバータモジュール７９は、これら各信号処理モジュール７０〜７８から与えられる処理結果に基づいて、「うるさい」、「暑い」、「明るい」、「ボールを検出した」、「転倒を検出した」、「撫でられた」、「叩かれた」、「ドミソの音階が聞こえた」、「動く物体を検出した」又は「障害物を検出した」などの自己及び周囲の状況や、使用者からの指令及び働きかけを認識し、認識結果をアプリケーション・レイヤ５１に出力する。
【００６２】
アプリケーション・レイヤ６１は、図１１に示すように、行動モデルライブラリ９０、行動切換モジュール９１、学習モジュール９２、感情モデル９３及び本能モデル９４の５つのモジュールから構成されている。
【００６３】
行動モデルライブラリ９０には、図１２に示すように、「バッテリ残量が少なくなった場合」、「転倒復帰する」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」などの予め選択されたいくつかの条件項目にそれぞれ対応させて、それぞれ独立した行動モデルが設けられている。
【００６４】
そして、これら行動モデルは、それぞれ入力セマンティクスコンバータモジュール７９から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、必要に応じて後述のように感情モデル９３に保持されている対応する情動のパラメータ値や、本能モデル９４に保持されている対応する欲求のパラメータ値を参照しながら続く行動をそれぞれ決定し、決定結果を行動切換モジュール９１に出力する。
【００６５】
なお、この実施の形態の場合、各行動モデルは、次の行動を決定する手法として、図１３に示すような１つのノード（状態）ＮＯＤＥ０〜ＮＯＤＥｎから他のどのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移するかを各ノードＮＯＤＥ０〜ＮＯＤＥｎに間を接続するアークＡＲＣ１〜ＡＲＣｎ１に対してそれぞれ設定された遷移確率Ｐ１〜Ｐｎに基づいて確率的に決定する有限確率オートマトンと呼ばれるアルゴリズムを用いる。
【００６６】
具体的に、各行動モデルは、それぞれ自己の行動モデルを形成するノードＮＯＤＥ０〜ＮＯＤＥｎにそれぞれ対応させて、これらノードＮＯＤＥ０〜ＮＯＤＥｎ毎に図１４に示すような状態遷移表を有している。
【００６７】
この状態遷移表では、そのノードＮＯＤＥ０〜ＮＯＤＥｎにおいて遷移条件とする入力イベント（認識結果）が「入力イベント名」の列に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の列における対応する行に記述されている。
【００６８】
したがって、図１４の状態遷移表で表されるノードＮＯＤＥ１００では、「ボールを検出（ＢＡＬＬ）」という認識結果が与えられた場合に、当該認識結果とともに与えられるそのボールの「大きさ（ＳＩＺＥ）」が「０から１０００」の範囲であることや、「障害物を検出（ＯＢＳＴＡＣＬＥ）」という認識結果が与えられた場合に、当該認識結果とともに与えられるその障害物までの「距離（ＤＩＳＴＡＮＣＥ）」が「０から１００」の範囲であることが他のノードに遷移するための条件となっている。
【００６９】
また、このノードＮＯＤＥ１００では、認識結果の入力がない場合においても、行動モデルが周期的に参照する感情モデル９３及び本能モデル９４にそれぞれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル９３に保持された「喜び（Ｊｏｙ）」、「驚き（Ｓｕｒｐｒｉｓｅ）」又は「悲しみ（Ｓａｄｎｅｓｓ）」の何れかのパラメータ値が「５０から１００」の範囲であるときには他のノードに遷移することができるようになっている。
【００７０】
また、状態遷移表では、「他のノードヘの遷移確率」の欄における「遷移先ノード」の行にそのノードＮＯＤＥ０〜ＮＯＤＥｎから遷移できるノード名が列記されているとともに、「入力イベント名」、「データ名」及び「データの範囲」の列に記述された全ての条件が揃ったときに遷移できるほかの各ノードＮＯＤＥ０〜ＮＯＤＥｎへの遷移確率が「他のノードヘの遷移確率」の欄内の対応する箇所にそれぞれ記述され、そのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移する際に出力すべき行動が「他のノードヘの遷移確率」の欄における「出力行動」の行に記述されている。なお、「他のノードヘの遷移確率」の欄における各行の確率の和は１００［％］となっている。
【００７１】
したがって、図１４の状態遷移表で表されるノードＮＯＤＥ１００では、例えば「ボールを検出（ＢＡＬＬ）」し、そのボールの「ＳＩＺＥ（大きさ）」が「０から１０００」の範囲であるという認識結果が与えられた場合には、「３０［％］」の確率で「ノードＮＯＤＥ１２０（ｎｏｄｅ１２０）」に遷移でき、そのとき「ＡＣＴＩＯＮ１」の行動が出力されることとなる。
【００７２】
各行動モデルは、それぞれこのような状態遷移表として記述されたノードＮＯＤＥ０〜  ＮＯＤＥｎが幾つも繋がるようにして構成されており、入力セマンティクスコンバータモジュール７９から認識結果が与えられたときなどに、対応するノードＮＯＤＥ０〜ＮＯＤＥｎの状態遷移表を利用して確率的に次の行動を決定し、決定結果を行動切換モジュール９１に出力するようになされている。
【００７３】
図１２に示す行動切換モジュール９１は、行動モデルライブラリ９０の各行動モデルからそれぞれ出力される行動のうち、予め定められた優先順位の高い行動モデルから出力された行動を選択し、当該行動を実行すべき旨のコマンド（以下、行動コマンドという。）をミドル・ウェア・レイヤ６０の出力セマンティクスコンバータモジュール８８に送出する。なお、この実施の形態においては、図１２において下側に表記された行動モデルほど優先順位が高く設定されている。
【００７４】
また、行動切換モジュール９１は、行動完了後に出力セマンティクスコンバータモジュール８８から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール９２、感情モデル９３及び本能モデル９４に通知する。
【００７５】
一方、学習モジュール９２は、入力セマンティクスコンバータモジュール７９から与えられる認識結果のうち、「叩かれた」や「撫でられた」など、使用者からの働きかけとして受けた教示の認識結果を入力する。
【００７６】
そして、学習モジュール９２は、この認識結果及び行動切換えモジュール８１からの通知に基づいて、「叩かれた（叱られた）」ときにはその行動の発現確率を低下させ、「撫でられた（誉められた）」ときにはその行動の発現確率を上昇させるように、行動モデルライブラリ８０における対応する行動モデルの対応する遷移確率を変更する。
【００７７】
他方、感情モデル９３は、「喜び（Ｊｏｙ）」、「悲しみ（Ｓａｄｎｅｓｓ）」、「怒り（Ａｎｇｅｒ）」、「驚き（Ｓｕｒｐｒｉｓｅ）」、「嫌悪（Ｄｉｓｇｕｓｔ）」及び「恐れ（Ｆｅａｒ）」の合計６つの情動について、各情動毎にその情動の強さを表すパラメータを保持している。そして、感情モデル９３は、これら各情動のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール７９から与えられる「叩かれた」及び「撫でられた」などの特定の認識結果や、経過時間及び行動切換モジュール９１からの通知などに基づいて周期的に更新する。
【００７８】
具体的には、感情モデル９３は、入力セマンティクスコンバータモジュール７９から与えられる認識結果と、そのときのロボット装置１の行動と、前回更新してからの経過時間となどに基づいて所定の演算式により算出されるそのときのその情動の変動量を△Ｅ［ｔ］、現在のその情動のパラメータ値をＥ［ｔ］、その情動の感度を表す係数をｋｅとして、（１）式によって次の周期におけるその情動のパラメータ値Ｅ［ｔ＋１］を算出し、これを現在のその情動のパラメータ値Ｅ［ｔ］と置き換えるようにしてその情動のパラメータ値を更新する。また、感情モデル９３は、これと同様にして全ての情動のパラメータ値を更新する。
【００７９】
【数１】
2004229003.tif 000003
【００８０】
なお、各認識結果や出力セマンティクスコンバータモジュール８８からの通知が各情動のパラメータ値の変動量△Ｅ［ｔ］にどの程度の影響を与えるかは予め決められており、例えば「叩かれた」といった認識結果は「怒り」の情動のパラメータ値の変動量△Ｅ［ｔ］に大きな影響を与え、「撫でられた」といった認識結果は「喜び」の情動のパラメータ値の変動量△Ｅ［ｔ］に大きな影響を与えるようになっている。
【００８１】
ここで、出力セマンティクスコンバータモジュール８８からの通知とは、いわゆる行動のフィードバック情報（行動完了情報）であり、行動の出現結果の情報であり、感情モデル９３は、このような情報によっても感情を変化させる。これは、例えば、「叫ぶ」といった行動により怒りの感情レベルが下がるといったようなことである。なお、出力セマンティクスコンバータモジュール８８からの通知は、上述した学習モジュール９２にも入力されており、学習モジュール９２は、その通知に基づいて行動モデルの対応する遷移確率を変更する。
【００８２】
なお、行動結果のフィードバックは、行動切換モジュール９１の出力（感情が付加された行動）によりなされるものであってもよい。
【００８３】
一方、本能モデル９４は、「運動欲（ｅｘｅｒｃｉｓｅ）」、「愛情欲（ａｆｆｅｃｔｉｏｎ）」、「食欲（ａｐｐｅｔｉｔｅ）」及び「好奇心（ｃｕｒｉｏｓｉｔｙ）」の互いに独立した４つの欲求について、これら欲求毎にその欲求の強さを表すパラメータを保持している。そして、本能モデル９４は、これらの欲求のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール７９から与えられる認識結果や、経過時間及び行動切換モジュール９１からの通知などに基づいて周期的に更新する。
【００８４】
具体的には、本能モデル９４は、「運動欲」、「愛情欲」及び「好奇心」については、認識結果、経過時間及び出力セマンティクスコンバータモジュール８８からの通知などに基づいて所定の演算式により算出されるそのときのその欲求の変動量をΔＩ［ｋ］、現在のその欲求のパラメータ値をＩ［ｋ］、その欲求の感度を表す係数ｋｉとして、所定周期で（２）式を用いて次の周期におけるその欲求のパラメータ値Ｉ［ｋ＋１］を算出し、この演算結果を現在のその欲求のパラメータ値Ｉ［ｋ］と置き換えるようにしてその欲求のパラメータ値を更新する。また、本能モデル８４は、これと同様にして「食欲」を除く各欲求のパラメータ値を更新する。
【００８５】
【数２】
2004229003.tif 000004
【００８６】
なお、認識結果及び出力セマンティクスコンバータモジュール８８からの通知などが各欲求のパラメータ値の変動量△Ｉ［ｋ］にどの程度の影響を与えるかは予め決められており、例えば出力セマンティクスコンバータモジュール７８からの通知は、「疲れ」のパラメータ値の変動量△Ｉ［ｋ］に大きな影響を与えるようになっている。
【００８７】
なお、本実施の形態においては、各情動及び各欲求（本能）のパラメータ値がそれぞれ０から１００までの範囲で変動するように規制されており、また係数ｋｅ、ｋｉの値も各情動及び各欲求毎に個別に設定されている。
【００８８】
一方、ミドル・ウェア・レイヤ６０の出力セマンティクスコンバータモジュール８８は、図１０に示すように、上述のようにしてアプリケーション・レイヤ５１の行動切換モジュール９１から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング（ボールを追いかける）」といった抽象的な行動コマンドを出力系８９の対応する信号処理モジュール８１〜８７に与える。
【００８９】
そしてこれら信号処理モジュール８１〜８７は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動をするために対応するアクチュエータに与えるべきサーボ指令値や、スピーカ２５から出力する音の音声データ及び又はＬＥＤに与える駆動データを生成し、これらのデータをロボティック・サーバ・オブジェクト５２のバーチャル・ロボット５３及び信号処理回路を順次介して対応するアクチュエータ３１又はスピーカ２５に順次送出する。
【００９０】
このようにしてロボット装置１は、上述した制御プログラムに基づいて、自己（内部）及び周囲（外部）の状況や、使用者からの指示及び働きかけに応じた自律的な行動ができる。
【００９１】
このような制御プログラムは、ロボット装置が読取可能な形式で記録された記録媒体を介して提供される。制御プログラムを記録する記録媒体としては、磁気読取方式の記録媒体（例えば、磁気テープ、フレキシブルディスク、磁気カード）、光学読取方式の記録媒体（例えば、ＣＤ−ＲＯＭ、ＭＯ、ＣＤ−Ｒ、ＤＶＤ）等が考えられる。記録媒体には、半導体メモリ（いわゆるメモリカード（矩形型、正方形型など形状は問わない。）、ＩＣカード）等の記憶媒体も含まれる。また、制御プログラムは、いわゆるインターネット等を介して提供されてもよい。
【００９２】
これらの制御プログラムは、専用の読込ドライバ装置、又はパーソナルコンピュータ等を介して再生され、有線又は無線接続によってロボット装置１に伝送されて読み込まれる。また、ロボット装置１は、半導体メモリ、又はＩＣカード等の小型化された記憶媒体のドライブ装置を備える場合、これら記憶媒体から制御プログラムを直接読み込むこともできる。
【００９３】
以上、本発明を適用したロボット装置について説明したが、本発明は、本実施の形態で説明したロボット装置に限定されるものではなく、本発明の要旨を含む範囲での変形・改良は本発明に含まれるものとする。
【００９４】
例えば、上記実施の形態ではロボット装置は、２足歩行をする人型ロボットであるとしたが、ロボット装置の足の数及び歩行方法は特に限定されるものではない。
【００９５】
また、上記実施の形態では、探査空間を２次元としたが、探査空間を３次元に拡張してもよい。この場合、ブロックやエリアは立体となる。なお、ボールのように地面に拘束された物体を探査する場合には、探査空間を２次元としたほうが、演算量が減少し、効率的である。
【００９６】
【発明の効果】
本発明によれば、ロボット装置は、ロボット装置の周囲の空間を単位ブロックに分割し、各ブロックを撮像した撮像時刻情報をもとに撮像方向を決定するため、既に撮像された範囲を何度も撮像することなく、効率的に撮像手段の撮像方向を切り換えることができる。
【００９７】
また、本発明によれば、ロボット装置の探査範囲と、領域との距離を求め、ロボット装置の探査範囲から近い距離にある領域に撮像方向を切り換えるため、新しい撮像方向に早く切り換えることができる。
【００９８】
さらに、本発明によれば、ロボット装置は、ロボット装置から離れた領域に撮像方向を切り換える。これは、撮像方向が遠い方が、撮像手段の探査範囲が広く効率的であるためである。
【００９９】
【発明の効果】
本発明によれば、ロボット装置は、ロボット装置の周囲の空間を単位ブロックに分割し、各ブロックを撮像した撮像時刻情報をもとに撮像方向を決定するため、既に撮像された範囲を何度も撮像することなく、効率的に撮像手段の撮像方向を切り換えることができる。
【０１００】
また、本発明によれば、ロボット装置の撮像範囲と、領域との距離を求め、ロボット装置の撮像範囲から近い距離にある領域に撮像方向を切り換えるため、新しい撮像方向に早く切り換えることができる。
【０１０１】
さらに、本発明によれば、ロボット装置は、ロボット装置から離れた領域に撮像方向を切り換える。これは、撮像方向が遠い方が、撮像手段の撮像範囲が広く効率的であるためである。
【図面の簡単な説明】
【図１】本発明を適用したロボット装置の外観構成を示す斜視図である。
【図２】同ロボット装置の自由度構成モデルを模式的に示す図である。
【図３】関節の軸方向を示す図である。
【図４】同ロボット装置の回路構成を示す図である。
【図５】探査処理部を示す機能ブロック図である。
【図６】探査空間を示す図である。
【図７】探査時刻とエリアの一例を示す図である。
【図８】探索処理の手順を示す図である。
【図９】同ロボット装置のソフトウェア構成を示す図である。
【図１０】同ロボット装置のミドル・ウェア・レイヤの構成を示す図である。
【図１１】同ロボット装置のアプリケーション・レイヤの構成を示す図である。
【図１２】アプリケーション・レイヤの行動モデルライブラリの構成を示す図である。
【図１３】同ロボット装置が行動決定のための情報となる有限確率オートマトンを説明する図である。
【図１４】有限確率オートマトンの各ノードに用意された状態遷移表を示す図である。
【符号の説明】
１  ロボット装置、２  体幹部ユニット、３  頭部ユニット、４  腕部ユニット、５  脚部ユニット、１０  信号処理回路、１２  ＤＲＡＭ１２、２１  ＣＣＤカメラ、３１  アクチュエータ、３２  ポテンショメータ、３３  ハブ、４０  探査処理部、４１  座標系生成部、４２  撮像方向特定部、４３  探査範囲特定部、４４  探査時刻記憶部、４５  撮像方向決定部
【図１】
2004229003.tif 000005
【図２】
2004229003.tif 000006
【図３】
2004229003.tif 000007
【図４】
2004229003.tif 000008
【図５】
2004229003.tif 000009
【図６】
2004229003.tif 000010
【図７】
2004229003.tif 000011
【図８】
2004229003.tif 000012
【図９】
2004229003.tif 000013
【図１０】
2004229003.tif 000014
【図１１】
2004229003.tif 000015
【図１２】
2004229003.tif 000016
【図１３】
2004229003.tif 000017
【図１４】
2004229003.tif 000018