(57)【要約】      （修正有）【課題】領域内に存在する対象物をセンサからの検知情報に基づいて、コンピュータに大きな負担を掛けることなく人間などの対象物を頑健に認識することができる。【解決手段】ロボット１０の周囲に存在する人間は、超音波センサ２２，全方位カメラ３０，眼カメラ５２Ｒ，５２Ｌ，焦電センサ８２などの複数のセンサによって検知される。各センサから出力されたセンサデータは、センサ入力／出力ボードを介してメモリに取り込まれる。ＣＰＵは、取り込まれたセンサデータのうち複数のサンプリング領域に対応する一部のセンサデータに基づいて、人間の存在確信度の正規分布を仮定する。ＣＰＵはまた、仮定された正規分布に基づいて人間の存在位置を認識し、存在確信度が増大するほど領域サイズが拡大するように複数のサンプリング領域を規定する。【選択図】図２
2011008791.tif 000002
【特許請求の範囲】
【請求項１】
周囲に存在する対象物を検出するために、周囲をセンシングしてそれぞれ異なる情報を取得する複数のセンサ、
前記各センサから出力された各センサデータに基づいて、センサ毎に、対象物が存在すると推定する前記ロボットの正面を基準とした角度における存在確信度分布を算出する第１算出手段、
前記センサ毎の存在確信度分布から統合存在確信度分布を算出する第２算出手段、および
前記統合存在確信度分布に基づいて、前記サンプリング領域を決定する決定手段を備える、ロボット。
【請求項２】
前記決定手段は、前記第２算出手段によって算出された統合存在確信度分布を正規化する正規化手段を含み、前記正規化手段によって正規化された統合存在確信度分布に基づいて、前記サンプリング領域を決定する、請求項１記載のロボット。
【請求項３】
前記決定手段は前記統合存在確信度分布が閾値を超える一部の領域を抽出する、請求項２記載のロボット。
【請求項４】
前記決定手段は、前記抽出した領域にＭＣＭＣに従ってサンプリング点を割り当て、前記サンプリング領域はこのようにして割り当てられたサンプリング点を包含する領域である、請求項１ないし３のいずれかに記載のロボット。
【請求項５】
ロボットの周囲に存在する対象物を検出するために、周囲をセンシングしてそれぞれ異なる情報を取得する複数のセンサを備えるロボットにおける対象物認識方法であって、
前記各センサから出力された各センサデータに基づいて、センサ毎に、対象物が存在すると推定する前記ロボットの正面を基準とした角度における存在確信度分布を算出する第１算出ステップ、
前記センサ毎の存在確信度分布から統合存在確信度分布を算出する第２算出ステップ、および
前記統合存在確信度分布に基づいて、前記サンプリング領域を決定する決定ステップを含み、
前記サンプリング領域で得られるセンサデータに基づいて対象物を認識する、ロボットにおける対象物認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボットおよびロボットの対象物認識方法に関し、特にたとえば、所定領域内に存在する対象物をセンサからの検知情報に基づいて認識する、ロボットおよびロボットの対象物認識方法に関する。
【背景技術】
【０００２】
従来のこの種の装置の一実施例が、特許文献１に開示されている。この従来技術は、超音波センサ，イメージセンサおよびＩＲセンサを用いて、障害物（対象物）を回避しながら、予め決められた経路で目的地に移動しようとするものである。
【特許文献１】特開２００１−１２９７８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、対象物の検知範囲を高めるには、より多くのセンサを用いて全方位を監視する必要がある。その一方、全てのセンサからの出力の評価基準と同じにしたのでは、負担が大きすぎる。つまり、周囲に存在する対象物を認識するにあたって、全てのセンサの出力を公平に評価すると、そのセンサ出力を処理するコンピュータに多大の労力がかかり、リアルタイムの認識は不可能である。
【０００４】
それゆえに、この発明の主たる目的は、新規な、ロボットおよびロボットの対象物認識方法を提供することである。
【０００５】
この発明の他の目と的は、対象物の認識に要するコンピュータの処理量を軽減し、対象物を頑健に認識することを可能とした、ロボットおよびロボットの対象物認識方法を提供することである。
【課題を解決するための手段】
【０００６】
第１の発明は、ロボットの周囲に存在する対象物を検出するために、ロボットの周囲をセンシングしてそれぞれ異なる情報を取得する複数のセンサを備えるロボットにおける対象物認識方法であって、各センサデータに基づいて、センサ毎に、対象物が存在すると推定する、ロボット座標系の正面に対する角度を示す存在確信度分布を算出する第１算出ステップ、センサ毎の存在確信度分布から統合存在確信度分布を算出する第２算出ステップ、および統合存在確信度分布に基づいて、各センサデータを取り込むサンプリング領域を決定する決定ステップを含み、サンプリング領域で得られるセンサデータに基づいて対象物を認識する、ロボットにおける対象物認識方法である。
【発明の効果】
【０００７】
この発明によれば、サンプリング領域を限定するので、対象物認識に必要な情報処理量が抑制される。
【０００８】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【０００９】
【図１】この発明の一実施例の使用状態を示す図解図である。
【図２】図１に示すコミュニケーションロボットの外観を示す図解図である。
【図３】図１に示すコミュニケーションロボットの内部構成を示すブロック図である。
【図４】全方位カメラおよび眼カメラの動作の一部を示す図解図である。
【図５】全方位カメラおよび眼カメラの動作の他の一部を示す図解図である。
【図６】超音波距離センサの動作の一例を示す図解図である。
【図７】超音波距離センサの動作の他の一部を示す図解図である。
【図８】焦電センサの動作の一部を示す図解図である。
【図９】焦電センサの動作の他の一部を示す図解図である。
【図１０】ロボットの正面に対する角度と正規化存在確信度との関係を示すグラフである。
【図１１】サンプリング点の割り当て状態を示す図解図である。
【図１２】サンプリング領域の割り当て状態を示す図解図である。
【図１３】図１に示すコミュニケーションロボットの動作の一部を示すフロー図である。
【図１４】図１に示すコミュニケーションロボットの動作の他の一部を示すフロー図である。
【図１５】図１に示すコミュニケーションロボットの動作のその他の一部を示すフロー図である。
【図１６】図１に示すコミュニケーションロボットの動作のさらにその他の一部を示すフロー図である。
【発明を実施するための最良の形態】
【００１０】
図１を参照して、この実施例のコミュニケーションロボット１０は、対象物である人間１２を頑健に認識しかつ追跡するロボットである。
【００１１】
この実施例で適用されるロボット１０を、図２に示す外観図および図３に示す内部構成図を用いて詳細に説明する。ロボット１０は、台車１６を含み、この台車１６の下面には、このロボット１０を自律移動させる車輪１８が設けられる。この車輪１８は、車輪モータ系７４によって駆動され、台車１６すなわちロボット１０を前後左右任意の方向に動かすことができる。
【００１２】
台車１６の上には、多角形柱のセンサ取付パネル２０が設けられる。センサ取付パネル２０は３６個の面を有し、各々の面に超音波距離センサ２２が取り付けられる。超音波距離センサ２２は、取付パネル２０すなわちロボット１０の周囲に存在する対象物までの距離を計測するものであり、水平方向における検知範囲は１０°である。これによって、ロボット１０の全方位にわたる検知が可能となる。
【００１３】
台車１６の上には、さらに、下部が上述の取付パネル２０に囲まれて、ロボット１０の胴体が直立するように取り付けられる。この胴体は下部胴体２４と上部胴体２６とから構成され、これら下部胴体２４および上部胴体２６は、連結部２８によって連結される。連結部２８には、図示しないが、昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体２６の高さすなわちロボット１０の高さを変化させることができる。昇降機構は、腰モータ系７２によって駆動される。
【００１４】
下部胴体２４の周囲には、３つの焦電センサ８２，８２，８２が均等な距離をおいて設けられる。焦電センサ８２は熱源を検知するセンサであり、水平方向における検知範囲は左右６０°である。かかる焦電センサ８２を３つ設けることで、全方位にわたる熱源の検知が可能となる。
【００１５】
上部胴体２６の背面上方には全方位カメラ３０が設けられ、上部胴体２６の前面にはマイク３２が設けられる。全方位カメラ３０は、ロボット１０の周囲を撮影するもので、後述の眼カメラ５２と区別される。マイク３２は、周囲の音、とりわけ人の声を取り込む。
【００１６】
上部胴体２６の両肩には、それぞれ、肩関節３４Ｒおよび３４Ｌによって、上腕３６Ｒおよび３６Ｌが取り付けられる。肩関節３４Ｒおよび３４Ｌの各々は、３軸の自由度を有する。すなわち、肩関節３４Ｒは、Ｘ軸，Ｙ軸およびＺ軸の各々の軸廻りにおいて上腕３６Ｒの角度を制御できる。Ｙ軸は、上腕３６Ｒの長手方向（または軸）に平行な軸であり、Ｘ軸およびＺ軸は、そのＹ軸に、それぞれ異なる方向から直交する軸である。肩関節３４Ｌは、Ａ軸，Ｂ軸およびＣ軸の各々の軸廻りにおいて上腕３６Ｌの角度を制御できる。Ｂ軸は、上腕３６Ｌの長手方向（または軸）に平行な軸であり、Ａ軸およびＣ軸は、そのＢ軸に、それぞれ異なる方向から直交する軸である。
【００１７】
上腕３６Ｒおよび３６Ｌの先端には、それぞれ、肘関節３８Ｒおよび３８Ｌを介して、前腕４０Ｒおよび４０Ｌが取り付けられる。肘関節３８Ｒおよび３８Ｌは、それぞれ、Ｗ軸およびＤ軸の軸廻りにおいて、前腕４０Ｒおよび４０Ｌの角度を制御できる。
【００１８】
右の肩関節３４Ｒおよび肘関節３８Ｒは右腕モータ系６６によって駆動され、左の肩関節３４Ｌおよび肘関節３８Ｌは左腕モータ系６８によって駆動される。
【００１９】
前腕４０Ｒおよび４０Ｌのそれぞれの先端には、手に相当する球体４２Ｒおよび４２Ｌがそれぞれ固定的に取り付けられる。なお、この球体４２Ｒおよび４２Ｌに代えて、この実施例のロボット１０と異なり指の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【００２０】
上部胴体２６の中央上方には、首関節４４を介して、頭部４６が取り付けられる。この首関節４４は、３つの自由度を有し、Ｓ軸，Ｔ軸およびＵ軸の各軸廻りに角度制御可能である。Ｓ軸は首から真上に向かう軸であり、Ｔ軸およびＵ軸は、それぞれ、このＳ軸に対して異なる方向で直交する軸である。頭部４６には、人の口に相当する位置に、スピーカ４８が設けられる。スピーカ４８は、ロボット１０が、それの周囲の人に対して音声または声によってコミュニケーションを図るために用いられる。
【００２１】
また、頭部４６には、目に相当する位置に眼球部５０Ｒおよび５０Ｌが設けられる。眼球部５０Ｒおよび５０Ｌは、それぞれ眼カメラ５２Ｒおよび５２Ｌを含む。なお、右の眼球部５０Ｒおよび左の眼球部５０Ｌをまとめて眼球部５０といい、右の眼カメラ５２Ｒおよび左の眼カメラ５２Ｌをまとめて眼カメラ５２ということもある。眼カメラ５２は、ロボット１０に接近した人の顔や他の部分ないし物体等を撮影してその画像を取り込む。
【００２２】
なお、上述の全方位カメラ３０および眼カメラ５２のいずれも、たとえばＣＣＤやＣＭＯＳのように固体撮像素子を用いるカメラであってよい。
【００２３】
たとえば、眼カメラ５２は眼球部５０内に固定され、眼球部５０は眼球支持部（図示せず）を介して頭部４６内の所定位置に取り付けられる。眼球支持部は、２軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部４６に対して設定される軸であり、α軸は頭部４６の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部４６の正面側（顔）が向く方向に直交する方向の軸である。
【００２４】
首関節４４は頭部モータ系７０によって制御される。また、右眼球部５０Ｒの向きは右眼球モータ系７６によって制御され、左眼球部５０Ｌの向きは左眼球モータ系７８によって制御される。
【００２５】
図３を参照して、このロボット１０は、全体の制御のためにＣＰＵ５４を含み、このＣＰＵ５４には、バス５６を介して、メモリ５８，モータ制御ボード６０，センサ入力／出力ボード６２および音声入力／出力ボード６４が接続される。
【００２６】
メモリ５８は、図示しないが、ＲＯＭ，ＨＤＤやＲＡＭを含み、ＲＯＭやＨＤＤにはこのロボット１０を全体的に制御するためのプログラム等の各種データが予め書き込まれている。ＲＡＭは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用される。なお、後述するサンプリング領域情報を保持するレジスタ５８ｒを特に図示する。
【００２７】
モータ制御ボード６０は、たとえばＤＳＰ(Digital Signal Processor)で構成され、ＣＰＵ５４からの制御データに従って、右腕モータ系６６，左腕モータ系６８，頭部モータ系７０，腰モータ系７２，車輪モータ系７４，右眼球モータ系７６，および左眼球モータ系７８を駆動する。
【００２８】
なお、この実施例の上述のモータ系は、車輪モータ系７４を除いて、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、車輪モータ系７４と同様に、直流モータであってよい。
【００２９】
センサ入力／出力ボード６２も、同様に、ＤＳＰで構成される。センサ入力／出力ボード６２は、超音波距離センサ２２，２２，…から出力された距離データ（反射時間に関連する），全方位カメラ３０および眼カメラ５２の各々から出力された画像データ，および焦電センサ８２，８２，…から出力された熱源データを、ＣＰＵ５４に入力する。
【００３０】
スピーカ４８には、音声入力／出力ボード６４を介して、ＣＰＵ５４から、合成音声データが与えられる。スピーカ４８からは、与えられた合成音声データに従った合成音声が出力される。マイク３２から入力された音声データは、音声入力／出力ボード６４を介して、ＣＰＵ５４に取り込まれる。
【００３１】
この実施例では、上述の全方位カメラ３０，眼カメラ５２，超音波距離センサ２２および焦電センサ８２を用いて、ロボット１０の周囲に人間が存在する確信度分布を求める。ここで、人間の存在確信度分布とは、各センサからのセンサデータ（検知情報）に基づいて推定されるロボット周囲の人間の存在の確からしさの分布である。分布を表す変数ｘは、ロボット１０に固定された座標系におけるロボット１０の正面に対する角度であり、｛ｘ｜０，１，２，…３６０｝である。また、ロボット１０の周囲とは、各センサの有効範囲によって決められる一定の半径の円内を指す。以下に、確信度分布の算出方法を示す。
【００３２】
全方位カメラ３０は、ロボット１０の周囲３６０°の画像を取得することができるセンサである。この全方位カメラ３０から得られる画像データは、メモリ５８に一旦取り込まれる。ＣＰＵ５４は、メモリ５８に取り込まれた画像データに基づいてフレーム間のＲＧＢ値の差分を求め、求められた差分値から移動物体を特定し、そして特定された移動物体を評価して人間の存在確信度分布を求める。
【００３３】
具体的には、時刻ｔにおける６４０×４８０ピクセルのカラー全方位画像に対して、各ピクセルのＲＧＢ値から時刻（ｔ−１）のフレームのＲＧＢ値を減算する。減算した画像に対して、値を持つピクセルの拡大・縮小を行い、ノイズを除去する。最後にラベリングを行い、その中で最も大きい領域を時刻ｔにおける移動物体領域とする。
【００３４】
移動物体検出情報から求める人間の存在確信度分布は、実験によって得られたデータを元に、平均μ１，分散σ１２の正規分布Ｎ(μ１,σ１２)に重みα１を掛けたものを仮定
する。このときの存在確信度分布を表す関数Ｆ１（ｘ）は数１によって定義される。
【００３５】
【数１】
2011008791.tif 000003
【００３６】
図４を参照して、ｘ，Ｍｓｉｚｅ，Ｍｄ，およびＭθはそれぞれ、ロボット座標系でのロボット１０の正面からの角度，移動物体領域の大きさ[pixel]，画像中心から移動物体
領域の重心までの距離[pixel]，および移動物体が存在する角度を表す。数１に示す関数Ｆ１（ｘ）は、図５に示す曲線を描く。
【００３７】
なお、ロボット１０が移動すると全方位カメラ３０の出力にこの移動に伴う差分が出てしまう。このため、ロボット１０が移動するときは、全方位カメラ３０は利用しない。
【００３８】
眼カメラ５２では、人間の顔領域，肌色領域および人間の服の色の領域を検出する。顔の検出手法としては、Gabor filterbankを用いる。この手法は、眼カメラ５２から得られたフレーム毎に顔を検出するものであり、ロボット１０の動作が眼カメラ５２のフレームレートに比べて十分遅い場合は、ロボット１０の動作の影響を受けにくい。
【００３９】
肌色領域を抽出するにあたって、ＣＰＵ５４は、眼カメラ５２から得られた画像データをメモリ５８に一旦格納し、この画像データを形成する各ピクセルのＲＧＢ値をＨＳＶ値に変換し、そしてＨＳＶ空間上で求めた肌色のボクセル内のピクセルを抽出する。ノイズは、上述したピクセルの拡大・縮小によって除去する。服の色領域の抽出にあたっては、顔の検出ができた際に顔の下側の一様な色情報をメモリ５８から検出する。色領域抽出は肌色の場合と同じである。こうして顔・肌色・服の色の領域が抽出されると、ＣＰＵ５４は、かかる領域抽出情報に基づいて人間の存在確信度分布を求める。
【００４０】
顔領域情報，肌色領域情報および服色領域情報からそれぞれ得られる人間の存在確信度分布を示す関数Ｆ２（ｘ），Ｆ３（ｘ）およびＦ４（ｘ）は、数２，数３および数４によって定義される。
【００４１】
【数２】
2011008791.tif 000004
【００４２】
【数３】
2011008791.tif 000005
【００４３】
【数４】
2011008791.tif 000006
【００４４】
これらは、移動物体領域に基づく存在確信度分布と同じく、平均μ２，分散σ２２の正規分布Ｎ(μ２,σ２２)に重みα２を掛けたもの、平均μ３，分散σ３２の正規分布Ｎ(μ３,σ３２)に重みα３を掛けたもの、ならびに平均μ４，分散σ４２の正規分布Ｎ(μ４,σ４２)に重みα１を掛けたものと仮定する。
【００４５】
ここで、Ｆｓｉｚｅ，Ｆｄ，Ｆθ，Ｓｓｉｚｅ，Ｓｄ，Ｓθ，Ｃｓｉｚｅ，Ｃｄ，Ｃθは、図４に示すとおり、Gaborfilterbankによって検出された顔領域の大きさ[pixel]，画像中心から顔領域の重心までの距離[pixel]，顔が存在する角度，色抽出によって検出された肌色領域の大きさ[pixe1]，画像中心から肌色領域の重心までの距離[pixel]，肌色領域が存在する角度，色抽出によって検出された服色領域の大きさ[pixel]，画像中心から服色領域の重心までの距離[pixe1]，服色領域が存在する角度を表す。数２〜数４に示す関数Ｆ２（ｘ）〜Ｆ４（ｘ）も、図５に示す曲線を描く。
【００４６】
ロボット１０には、複数の超音波距離センサ２２，２２，…がリング状に配置されているため、全方位の距離情報を取得することができる。そこで、ＣＰＵ５４は、各々の超音波距離センサ２２から出力される距離データをメモリ５８に書き込み、この距離データの変化を用いて移動物体がどの方向に存在するかを検出し、そして検出された移動物体情報に基づいて人間の存在確信度分布を求める。
【００４７】
距離データの変化に基づく人間の存在確信度分布を表す関数Ｆ５（ｘ）は、数５によって定義される。上述した存在確信度分布と同じく、関数Ｆ５（ｘ）は、平均μ５，分散σ５２の正規分布Ｎ(μ５,σ５２)に重みα５を掛けたものと仮定する。
【００４８】
【数５】
2011008791.tif 000007
【００４９】
ここで、Ｕｄ，Ｕｄｍｉｎ，Ｕθはそれぞれ、対象物までの距離，超音波距離センサ２２の最小計測距離，対象物が存在する角度である。図６に示すように、各々の超音波距離センサ２２の検知範囲は、センサ正面を基準として水平方向において±５°である。数５に示す関数Ｆ５（ｘ）は、図７に示す曲線を描く。
【００５０】
なお、ロボット１０の移動時には自らの移動によって距離が変化してしまう。このため、ロボット１０が移動するときは、超音波距離センサ２２は利用しない。
【００５１】
焦電センサ８２は赤外線の変化に反応する２値出力のセンサであり、熱源の移動を検出することができる。人間も熱源であることから、熱源の移動に基づき人間の存在確信度分布を求めることができる。そこで、ＣＰＵ５４は、焦電センサ８２から出力された熱源データをメモリ５８に一旦書き込み、この熱源データから人間の存在確信度分布を求める。熱源データに基づく存在確信度分布を表す関数Ｆ６（ｘ）は、実験によって得られたデータから、数６に示すように定義する。
【００５２】
【数６】
2011008791.tif 000008
【００５３】
ｘｐは、焦電センサ８２の向きである。図８に示すように、各々の焦電センサ８２の検知範囲は、センサ正面を基準として水平方向において±３０°である。数６に示す関数Ｆ５（ｘ）は、図９に示す特性を有する。
【００５４】
なお、ロボット１０の移動時には、自らの移動に伴って周囲の熱源も変化する。このため、ロボット１０が移動するときは、焦電センサ８２は利用しない。
【００５５】
ＣＰＵ５４は、こうして求められた人間の存在確信度分布Ｆ１（ｘ）〜Ｆ６（ｘ）を、数７によって一つの確信度分布Ｆ（ｘ）に統合する。数７において、ｍａｘは、引数の値の最大値を返す関数である。たとえば、ｘ＝５における存在確信度分布Ｆ１（５）〜Ｆ６（５）のうち、Ｆ４（５）が最大であれば、Ｆ（５）＝Ｆ４（５）となる。
【００５６】
【数７】
2011008791.tif 000009
【００５７】
上述のように、存在確信度分布Ｆ１（ｘ）〜Ｆ５（ｘ）は、メモリ５８に格納された画像データ，距離データおよび熱源データに基づいて求められる。しかし、画像データ，距離データおよび熱源データを全方位について平等に評価したのでは、処理の負担が大きくなる。そこで、この実施例では、存在確信度が高い一部の領域を抽出し、抽出された領域にＭＣＭＣ（Markov Chain Monte Carlo）アルゴリズムに従ってサンプリング点の割り当てるようにしている。次回の評価領域つまりサンプリング領域は、こうして割り当てられたサンプリング点を包含する一部の領域となる。
【００５８】
サンプリング領域の決定にあたって、ＣＰＵ５４はまず、今回求められた人間の存在確信度分布Ｆ（ｘ）に数８に従う演算を施し、正規化確信度分布π（ｘ）を求める。正規化確信度分布π（ｘ）は、たとえば図１０に示すように変化する。
【００５９】
【数８】
2011008791.tif 000010
【００６０】
次に、閾値Ｔｓを上回る角度ｘを特定し、特定された角度ｘに向けられたサンプリング数ｓを数９に従って決定する。数９によれば、正規化確信度分布π（ｘ）が高いほど、サンプリング数ｓが増大する。
【００６１】
【数９】
2011008791.tif 000011
【００６２】
次回のサンプリング点ｎｉ（ｘ）は、数１０に従って決定する。数１０によれば、ｓ個のサンプリング点が、注目する角度ｘを中心とする±１５°の範囲でランダムに選択される。図１０に示す領域Ｅに注目すると、サンプリング点は、図１１に示す要領で決定される。
【００６３】
【数１０】
2011008791.tif 000012
【００６４】
サンプリング領域の決定にあたっては、複数のサンプリング点を隣り合う間隔が閾値を下回るサンプリング点毎にグループ化する。間隔が閾値以上の２つのサンプリング点に注目したとき、各々のサンプリング点は、互いに別のサンプリング領域の端部を形成する。これによって、図１２に示すように、複数のサンプリング領域が短冊状に形成される。
【００６５】
以上の手順により、存在確信度の高い角度の周辺ではサンプリング領域の幅が増大し、存在確信度の低い角度の周辺ではサンプリング領域の幅が減少する。こうして、過去の検知データから今回どの部分をサンプリングすれば良いかが推定される。上記の処理の繰り返しによってサンプリング領域が変更され、その瞬間において重要であると予測される情報が効率よく取得される。
【００６６】
また、人間の存在確信度に従ってサンプリングしていくため、人間が存在しているという仮説を複数維持したままサンプリング領域を限定していくことができる。そのため、センサ処理に必要な時間が減少し、なおかつ不規則に動く人間を頑健に認識・追跡することが可能となる。
【００６７】
ＣＰＵ５４は、具体的には図１３〜図１６に示すフロー図に従う処理を実行する。このフロー図に対応する制御プログラムは、メモリ５８に記憶される。なお、このフロー図に従う処理では、右眼球モータ系７６，左眼球モータ系７８，右腕モータ系６６，左腕モータ系６８および頭部モータ系７０が駆動されることはない。つまり、眼カメラ５２は、常にロボット１０の正面を向く。
【００６８】
まずステップＳ１で現時点のロボット１０の向きである方位αを取得し、ステップＳ３で変数αｔ１に取得された方位αを設定する。ステップＳ５では、各センサのサンプリング領域を初期化する。具体的には、全方位を示すサンプリング領域情報をレジスタ５８ｒに設定する。
【００６９】
ステップＳ７ではロボット１０の方位αを再度取得し、ステップＳ９では変数αｔ１を変数αｔ２に退避させ、ステップＳ１１ではステップＳ７で取得した方位αを変数αｔ１に設定する。変数αｔ１およびαｔ２はそれぞれ、連続して取得された２つの方位αを示す。
【００７０】
ステップＳ１３では変数αｔ１およびαｔ２の差分を示す角度Δαを求め、ステップＳ１５ではレジスタ５８ｒに設定されたサンプリング領域情報を角度Δαだけ平行移動させる。これによって、ロボット１０の回転に起因するオフセットが解消される。
【００７１】
ステップＳ１７では、眼カメラ５２から出力されかつメモリ５８に格納された画像データに基づいて、数２〜数４に示す存在確信度分布Ｆ２（ｘ）〜Ｆ４（ｘ）を仮定する。ただし、仮定する範囲は、レジスタ５８ｒに設定されたサンプリング領域情報に従う範囲である。
【００７２】
ステップＳ１９では、ロボット１０が移動中であるか否かを判別する。ＹＥＳであればステップＳ２１に進み、ＮＯであればステップＳ２３に進む。ステップＳ２１では、存在確信度分布Ｆ１（ｘ），Ｆ５（ｘ）およびＦ６（ｘ）を“０”と仮定する。
【００７３】
ステップＳ２３では、全方位カメラ３０から出力されかつメモリ５８に格納された画像データに基づいて数１に示す存在確信度分布Ｆ１（ｘ）を仮定し、超音波センサ２２から出力されかつメモリ５８に格納された距離データに基づいて数５に示す存在確信度分布Ｆ５（ｘ）を仮定し、そして焦電センサ８２から出力されかつメモリ５８に格納された熱源データに基づいて数６に示す存在確信度分布Ｆ６（ｘ）を仮定する。仮定する範囲は、レジスタ５８ｒに設定されたサンプリング領域情報に従う範囲である。
【００７４】
こうして存在確信度分布Ｆ１（ｘ）〜Ｆ６（ｘ）が求められると、ステップＳ２５で数７に従って統合存在確信度分布Ｆ（ｘ）を算出する。ステップＳ２７では統合存在確信度が最大となる角度ｘｓを特定し、ステップＳ２９では角度ｘｓが“０”となる方向への回転をモータ制御ボード６０に命令する。
【００７５】
ステップＳ３１では、角度ｘｓに対応する超音波距離センサ２２の測定距離Ｕｄを検出し、ステップＳ３３ではこの測定距離Ｕｄを閾値Ｔｄと比較する。そして、Ｕｄ≦ＴｄであればそのままステップＳ３７に進むが、Ｕｄ＞ＴｄであればステップＳ３５で差分値“Ｔｄ−Ｕｄ”が“０”となる方向への移動をモータ制御ボード６０に命令し、その後ステップＳ３７に進む。
【００７６】
モータ制御ボード６０は、ステップＳ２９またはＳ３５で発行された命令に従って車輪モータ系７４を駆動する。回転命令が発行されたときはロボット１０の向きが変化し、移動命令が発行されたときはロボット１０の位置が変化する。
【００７７】
ステップＳ３７では統合存在確信度分布Ｆ（ｘ）を数８に従って正規化し、ステップＳ３９ではサンプリング領域決定処理を実行する。ステップＳ４１では、ステップＳ３９で決定されたサンプリング領域を示すサンプリング領域情報をレジスタ５８ｒに設定する。レジスタ５８ｒが更新されると、ステップＳ７に戻る。
【００７８】
ステップＳ３９のサンプリング領域決定処理は、図１６に示すサブルーチンに従う。まずステップＳ５１で変数ｘを“０”に設定し、ステップＳ５３で正規化確信度分布π（ｘ）を閾値Ｔｓと比較する。ここで、π（ｘ）＜Ｔｓであれば直接ステップＳ５９に進むが、π（ｘ）≧Ｔであれば、ステップＳ５５で数９に従ってサンプリング数を決定し、ステップＳ５７で数１０に従ってサンプリング点を決定してからステップＳ５９に進む。
【００７９】
ステップＳ５９では変数ｘをインクリメントし、続くステップＳ６１では変数ｘを“３６０”と比較する。そして、変数ｘが“３６０”に満たなければステップＳ５３に戻るが、変数ｘが“３６０”に達すれば、ステップＳ６３でサンプリング領域を決定する。具体的には、決定された複数のサンプリング点を隣り合う間隔が閾値を下回るサンプリング点毎にグループ化し、各グループが存在する領域をサンプリング領域として決定する。ステップＳ６３の処理が完了すると、上階層のルーチンに復帰する。
【００８０】
以上の説明から分かるように、ロボット１０の周囲に存在する人間（対象物）は、超音波センサ２２，全方位カメラ３０，眼カメラ５２，焦電センサ８２などの複数のセンサによって検知される。各センサから出力されたセンサデータ（検知情報）は、センサ入力／出力ボード６２を介してメモリ５８に取り込まれる。
【００８１】
ＣＰＵ５４は、取り込まれたセンサデータのうち複数のサンプリング領域に対応する一部のセンサデータに基づいて、人間の存在確信度の正規分布Ｆ１（ｘ）〜Ｆ６（ｘ）を仮定する(S17, S21, S23)。
【００８２】
ＣＰＵ５４は、仮定された正規分布Ｆ１（ｘ）〜Ｆ６（ｘ）に基づいて人間の存在位置を認識し、存在確信度が増大するほど領域サイズが拡大するように複数のサンプリング領域を規定する(S39)。
【００８３】
このように、人間の存在位置は、複数のサンプリング領域に対応するセンサデータに基づいて認識される。これによって、認識に必要な処理量が抑制される。また、複数のサンプリング領域は、人間の存在確信度が増大するほど領域サイズが拡大するように規定される。これによって、認識の精度が向上する。この結果、対象物を頑健に認識することが可能となる。
【符号の説明】
【００８４】
１０  …  コミュニケーションロボット
１２  …  人間
２２  …  超音波距離センサ
３０  …  全方位カメラ
５２  …  眼カメラ
５４  …  ＣＰＵ
５８  …  メモリ
７４  …  車輪モータ系
８２  …  焦電センサ
【図１】
2011008791.tif 000013
【図２】
2011008791.tif 000014
【図３】
2011008791.tif 000015
【図４】
2011008791.tif 000016
【図５】
2011008791.tif 000017
【図６】
2011008791.tif 000018
【図７】
2011008791.tif 000019
【図８】
2011008791.tif 000020
【図９】
2011008791.tif 000021
【図１０】
2011008791.tif 000022
【図１１】
2011008791.tif 000023
【図１２】
2011008791.tif 000024
【図１３】
2011008791.tif 000025
【図１４】
2011008791.tif 000026
【図１５】
2011008791.tif 000027
【図１６】
2011008791.tif 000028