ロボットの対象物認識方法
【課題】領域内に存在する対象物をセンサからの検知情報に基づいて、コンピュータに大きな負担を掛けることなく人間などの対象物を頑健に認識することができる。
【解決手段】ロボット10の周囲に存在する人間は、超音波センサ22,全方位カメラ30,眼カメラ52R,52L,焦電センサ82などの複数のセンサによって検知される。各センサから出力されたセンサデータは、センサ入力/出力ボードを介してメモリに取り込まれる。CPUは、取り込まれたセンサデータのうち複数のサンプリング領域に対応する一部のセンサデータに基づいて、人間の存在確信度の正規分布を仮定する。CPUはまた、仮定された正規分布に基づいて人間の存在位置を認識し、存在確信度が増大するほど領域サイズが拡大するように複数のサンプリング領域を規定する。
【解決手段】ロボット10の周囲に存在する人間は、超音波センサ22,全方位カメラ30,眼カメラ52R,52L,焦電センサ82などの複数のセンサによって検知される。各センサから出力されたセンサデータは、センサ入力/出力ボードを介してメモリに取り込まれる。CPUは、取り込まれたセンサデータのうち複数のサンプリング領域に対応する一部のセンサデータに基づいて、人間の存在確信度の正規分布を仮定する。CPUはまた、仮定された正規分布に基づいて人間の存在位置を認識し、存在確信度が増大するほど領域サイズが拡大するように複数のサンプリング領域を規定する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ロボットおよびロボットの対象物認識方法に関し、特にたとえば、所定領域内に存在する対象物をセンサからの検知情報に基づいて認識する、ロボットおよびロボットの対象物認識方法に関する。
【背景技術】
【0002】
従来のこの種の装置の一実施例が、特許文献1に開示されている。この従来技術は、超音波センサ,イメージセンサおよびIRセンサを用いて、障害物(対象物)を回避しながら、予め決められた経路で目的地に移動しようとするものである。
【特許文献1】特開2001−129787号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、対象物の検知範囲を高めるには、より多くのセンサを用いて全方位を監視する必要がある。その一方、全てのセンサからの出力の評価基準と同じにしたのでは、負担が大きすぎる。つまり、周囲に存在する対象物を認識するにあたって、全てのセンサの出力を公平に評価すると、そのセンサ出力を処理するコンピュータに多大の労力がかかり、リアルタイムの認識は不可能である。
【0004】
それゆえに、この発明の主たる目的は、新規な、ロボットおよびロボットの対象物認識方法を提供することである。
【0005】
この発明の他の目と的は、対象物の認識に要するコンピュータの処理量を軽減し、対象物を頑健に認識することを可能とした、ロボットおよびロボットの対象物認識方法を提供することである。
【課題を解決するための手段】
【0006】
第1の発明は、ロボットの周囲に存在する対象物を検出するために、ロボットの周囲をセンシングしてそれぞれ異なる情報を取得する複数のセンサを備えるロボットにおける対象物認識方法であって、各センサデータに基づいて、センサ毎に、対象物が存在すると推定する、ロボット座標系の正面に対する角度を示す存在確信度分布を算出する第1算出ステップ、センサ毎の存在確信度分布から統合存在確信度分布を算出する第2算出ステップ、および統合存在確信度分布に基づいて、各センサデータを取り込むサンプリング領域を決定する決定ステップを含み、サンプリング領域で得られるセンサデータに基づいて対象物を認識する、ロボットにおける対象物認識方法である。
【発明の効果】
【0007】
この発明によれば、サンプリング領域を限定するので、対象物認識に必要な情報処理量が抑制される。
【0008】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0009】
【図1】この発明の一実施例の使用状態を示す図解図である。
【図2】図1に示すコミュニケーションロボットの外観を示す図解図である。
【図3】図1に示すコミュニケーションロボットの内部構成を示すブロック図である。
【図4】全方位カメラおよび眼カメラの動作の一部を示す図解図である。
【図5】全方位カメラおよび眼カメラの動作の他の一部を示す図解図である。
【図6】超音波距離センサの動作の一例を示す図解図である。
【図7】超音波距離センサの動作の他の一部を示す図解図である。
【図8】焦電センサの動作の一部を示す図解図である。
【図9】焦電センサの動作の他の一部を示す図解図である。
【図10】ロボットの正面に対する角度と正規化存在確信度との関係を示すグラフである。
【図11】サンプリング点の割り当て状態を示す図解図である。
【図12】サンプリング領域の割り当て状態を示す図解図である。
【図13】図1に示すコミュニケーションロボットの動作の一部を示すフロー図である。
【図14】図1に示すコミュニケーションロボットの動作の他の一部を示すフロー図である。
【図15】図1に示すコミュニケーションロボットの動作のその他の一部を示すフロー図である。
【図16】図1に示すコミュニケーションロボットの動作のさらにその他の一部を示すフロー図である。
【発明を実施するための最良の形態】
【0010】
図1を参照して、この実施例のコミュニケーションロボット10は、対象物である人間12を頑健に認識しかつ追跡するロボットである。
【0011】
この実施例で適用されるロボット10を、図2に示す外観図および図3に示す内部構成図を用いて詳細に説明する。ロボット10は、台車16を含み、この台車16の下面には、このロボット10を自律移動させる車輪18が設けられる。この車輪18は、車輪モータ系74によって駆動され、台車16すなわちロボット10を前後左右任意の方向に動かすことができる。
【0012】
台車16の上には、多角形柱のセンサ取付パネル20が設けられる。センサ取付パネル20は36個の面を有し、各々の面に超音波距離センサ22が取り付けられる。超音波距離センサ22は、取付パネル20すなわちロボット10の周囲に存在する対象物までの距離を計測するものであり、水平方向における検知範囲は10°である。これによって、ロボット10の全方位にわたる検知が可能となる。
【0013】
台車16の上には、さらに、下部が上述の取付パネル20に囲まれて、ロボット10の胴体が直立するように取り付けられる。この胴体は下部胴体24と上部胴体26とから構成され、これら下部胴体24および上部胴体26は、連結部28によって連結される。連結部28には、図示しないが、昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体26の高さすなわちロボット10の高さを変化させることができる。昇降機構は、腰モータ系72によって駆動される。
【0014】
下部胴体24の周囲には、3つの焦電センサ82,82,82が均等な距離をおいて設けられる。焦電センサ82は熱源を検知するセンサであり、水平方向における検知範囲は左右60°である。かかる焦電センサ82を3つ設けることで、全方位にわたる熱源の検知が可能となる。
【0015】
上部胴体26の背面上方には全方位カメラ30が設けられ、上部胴体26の前面にはマイク32が設けられる。全方位カメラ30は、ロボット10の周囲を撮影するもので、後述の眼カメラ52と区別される。マイク32は、周囲の音、とりわけ人の声を取り込む。
【0016】
上部胴体26の両肩には、それぞれ、肩関節34Rおよび34Lによって、上腕36Rおよび36Lが取り付けられる。肩関節34Rおよび34Lの各々は、3軸の自由度を有する。すなわち、肩関節34Rは、X軸,Y軸およびZ軸の各々の軸廻りにおいて上腕36Rの角度を制御できる。Y軸は、上腕36Rの長手方向(または軸)に平行な軸であり、X軸およびZ軸は、そのY軸に、それぞれ異なる方向から直交する軸である。肩関節34Lは、A軸,B軸およびC軸の各々の軸廻りにおいて上腕36Lの角度を制御できる。B軸は、上腕36Lの長手方向(または軸)に平行な軸であり、A軸およびC軸は、そのB軸に、それぞれ異なる方向から直交する軸である。
【0017】
上腕36Rおよび36Lの先端には、それぞれ、肘関節38Rおよび38Lを介して、前腕40Rおよび40Lが取り付けられる。肘関節38Rおよび38Lは、それぞれ、W軸およびD軸の軸廻りにおいて、前腕40Rおよび40Lの角度を制御できる。
【0018】
右の肩関節34Rおよび肘関節38Rは右腕モータ系66によって駆動され、左の肩関節34Lおよび肘関節38Lは左腕モータ系68によって駆動される。
【0019】
前腕40Rおよび40Lのそれぞれの先端には、手に相当する球体42Rおよび42Lがそれぞれ固定的に取り付けられる。なお、この球体42Rおよび42Lに代えて、この実施例のロボット10と異なり指の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【0020】
上部胴体26の中央上方には、首関節44を介して、頭部46が取り付けられる。この首関節44は、3つの自由度を有し、S軸,T軸およびU軸の各軸廻りに角度制御可能である。S軸は首から真上に向かう軸であり、T軸およびU軸は、それぞれ、このS軸に対して異なる方向で直交する軸である。頭部46には、人の口に相当する位置に、スピーカ48が設けられる。スピーカ48は、ロボット10が、それの周囲の人に対して音声または声によってコミュニケーションを図るために用いられる。
【0021】
また、頭部46には、目に相当する位置に眼球部50Rおよび50Lが設けられる。眼球部50Rおよび50Lは、それぞれ眼カメラ52Rおよび52Lを含む。なお、右の眼球部50Rおよび左の眼球部50Lをまとめて眼球部50といい、右の眼カメラ52Rおよび左の眼カメラ52Lをまとめて眼カメラ52ということもある。眼カメラ52は、ロボット10に接近した人の顔や他の部分ないし物体等を撮影してその画像を取り込む。
【0022】
なお、上述の全方位カメラ30および眼カメラ52のいずれも、たとえばCCDやCMOSのように固体撮像素子を用いるカメラであってよい。
【0023】
たとえば、眼カメラ52は眼球部50内に固定され、眼球部50は眼球支持部(図示せず)を介して頭部46内の所定位置に取り付けられる。眼球支持部は、2軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部46に対して設定される軸であり、α軸は頭部46の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部46の正面側(顔)が向く方向に直交する方向の軸である。
【0024】
首関節44は頭部モータ系70によって制御される。また、右眼球部50Rの向きは右眼球モータ系76によって制御され、左眼球部50Lの向きは左眼球モータ系78によって制御される。
【0025】
図3を参照して、このロボット10は、全体の制御のためにCPU54を含み、このCPU54には、バス56を介して、メモリ58,モータ制御ボード60,センサ入力/出力ボード62および音声入力/出力ボード64が接続される。
【0026】
メモリ58は、図示しないが、ROM,HDDやRAMを含み、ROMやHDDにはこのロボット10を全体的に制御するためのプログラム等の各種データが予め書き込まれている。RAMは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用される。なお、後述するサンプリング領域情報を保持するレジスタ58rを特に図示する。
【0027】
モータ制御ボード60は、たとえばDSP(Digital Signal Processor)で構成され、CPU54からの制御データに従って、右腕モータ系66,左腕モータ系68,頭部モータ系70,腰モータ系72,車輪モータ系74,右眼球モータ系76,および左眼球モータ系78を駆動する。
【0028】
なお、この実施例の上述のモータ系は、車輪モータ系74を除いて、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、車輪モータ系74と同様に、直流モータであってよい。
【0029】
センサ入力/出力ボード62も、同様に、DSPで構成される。センサ入力/出力ボード62は、超音波距離センサ22,22,…から出力された距離データ(反射時間に関連する),全方位カメラ30および眼カメラ52の各々から出力された画像データ,および焦電センサ82,82,…から出力された熱源データを、CPU54に入力する。
【0030】
スピーカ48には、音声入力/出力ボード64を介して、CPU54から、合成音声データが与えられる。スピーカ48からは、与えられた合成音声データに従った合成音声が出力される。マイク32から入力された音声データは、音声入力/出力ボード64を介して、CPU54に取り込まれる。
【0031】
この実施例では、上述の全方位カメラ30,眼カメラ52,超音波距離センサ22および焦電センサ82を用いて、ロボット10の周囲に人間が存在する確信度分布を求める。ここで、人間の存在確信度分布とは、各センサからのセンサデータ(検知情報)に基づいて推定されるロボット周囲の人間の存在の確からしさの分布である。分布を表す変数xは、ロボット10に固定された座標系におけるロボット10の正面に対する角度であり、{x|0,1,2,…360}である。また、ロボット10の周囲とは、各センサの有効範囲によって決められる一定の半径の円内を指す。以下に、確信度分布の算出方法を示す。
【0032】
全方位カメラ30は、ロボット10の周囲360°の画像を取得することができるセンサである。この全方位カメラ30から得られる画像データは、メモリ58に一旦取り込まれる。CPU54は、メモリ58に取り込まれた画像データに基づいてフレーム間のRGB値の差分を求め、求められた差分値から移動物体を特定し、そして特定された移動物体を評価して人間の存在確信度分布を求める。
【0033】
具体的には、時刻tにおける640×480ピクセルのカラー全方位画像に対して、各ピクセルのRGB値から時刻(t−1)のフレームのRGB値を減算する。減算した画像に対して、値を持つピクセルの拡大・縮小を行い、ノイズを除去する。最後にラベリングを行い、その中で最も大きい領域を時刻tにおける移動物体領域とする。
【0034】
移動物体検出情報から求める人間の存在確信度分布は、実験によって得られたデータを元に、平均μ1,分散σ12の正規分布N(μ1,σ12)に重みα1を掛けたものを仮定
する。このときの存在確信度分布を表す関数F1(x)は数1によって定義される。
【0035】
【数1】
【0036】
図4を参照して、x,Msize,Md,およびMθはそれぞれ、ロボット座標系でのロボット10の正面からの角度,移動物体領域の大きさ[pixel],画像中心から移動物体
領域の重心までの距離[pixel],および移動物体が存在する角度を表す。数1に示す関数F1(x)は、図5に示す曲線を描く。
【0037】
なお、ロボット10が移動すると全方位カメラ30の出力にこの移動に伴う差分が出てしまう。このため、ロボット10が移動するときは、全方位カメラ30は利用しない。
【0038】
眼カメラ52では、人間の顔領域,肌色領域および人間の服の色の領域を検出する。顔の検出手法としては、Gabor filterbankを用いる。この手法は、眼カメラ52から得られたフレーム毎に顔を検出するものであり、ロボット10の動作が眼カメラ52のフレームレートに比べて十分遅い場合は、ロボット10の動作の影響を受けにくい。
【0039】
肌色領域を抽出するにあたって、CPU54は、眼カメラ52から得られた画像データをメモリ58に一旦格納し、この画像データを形成する各ピクセルのRGB値をHSV値に変換し、そしてHSV空間上で求めた肌色のボクセル内のピクセルを抽出する。ノイズは、上述したピクセルの拡大・縮小によって除去する。服の色領域の抽出にあたっては、顔の検出ができた際に顔の下側の一様な色情報をメモリ58から検出する。色領域抽出は肌色の場合と同じである。こうして顔・肌色・服の色の領域が抽出されると、CPU54は、かかる領域抽出情報に基づいて人間の存在確信度分布を求める。
【0040】
顔領域情報,肌色領域情報および服色領域情報からそれぞれ得られる人間の存在確信度分布を示す関数F2(x),F3(x)およびF4(x)は、数2,数3および数4によって定義される。
【0041】
【数2】
【0042】
【数3】
【0043】
【数4】
【0044】
これらは、移動物体領域に基づく存在確信度分布と同じく、平均μ2,分散σ22の正規分布N(μ2,σ22)に重みα2を掛けたもの、平均μ3,分散σ32の正規分布N(μ3,σ32)に重みα3を掛けたもの、ならびに平均μ4,分散σ42の正規分布N(μ4,σ42)に重みα1を掛けたものと仮定する。
【0045】
ここで、Fsize,Fd,Fθ,Ssize,Sd,Sθ,Csize,Cd,Cθは、図4に示すとおり、Gaborfilterbankによって検出された顔領域の大きさ[pixel],画像中心から顔領域の重心までの距離[pixel],顔が存在する角度,色抽出によって検出された肌色領域の大きさ[pixe1],画像中心から肌色領域の重心までの距離[pixel],肌色領域が存在する角度,色抽出によって検出された服色領域の大きさ[pixel],画像中心から服色領域の重心までの距離[pixe1],服色領域が存在する角度を表す。数2〜数4に示す関数F2(x)〜F4(x)も、図5に示す曲線を描く。
【0046】
ロボット10には、複数の超音波距離センサ22,22,…がリング状に配置されているため、全方位の距離情報を取得することができる。そこで、CPU54は、各々の超音波距離センサ22から出力される距離データをメモリ58に書き込み、この距離データの変化を用いて移動物体がどの方向に存在するかを検出し、そして検出された移動物体情報に基づいて人間の存在確信度分布を求める。
【0047】
距離データの変化に基づく人間の存在確信度分布を表す関数F5(x)は、数5によって定義される。上述した存在確信度分布と同じく、関数F5(x)は、平均μ5,分散σ52の正規分布N(μ5,σ52)に重みα5を掛けたものと仮定する。
【0048】
【数5】
【0049】
ここで、Ud,Udmin,Uθはそれぞれ、対象物までの距離,超音波距離センサ22の最小計測距離,対象物が存在する角度である。図6に示すように、各々の超音波距離センサ22の検知範囲は、センサ正面を基準として水平方向において±5°である。数5に示す関数F5(x)は、図7に示す曲線を描く。
【0050】
なお、ロボット10の移動時には自らの移動によって距離が変化してしまう。このため、ロボット10が移動するときは、超音波距離センサ22は利用しない。
【0051】
焦電センサ82は赤外線の変化に反応する2値出力のセンサであり、熱源の移動を検出することができる。人間も熱源であることから、熱源の移動に基づき人間の存在確信度分布を求めることができる。そこで、CPU54は、焦電センサ82から出力された熱源データをメモリ58に一旦書き込み、この熱源データから人間の存在確信度分布を求める。熱源データに基づく存在確信度分布を表す関数F6(x)は、実験によって得られたデータから、数6に示すように定義する。
【0052】
【数6】
【0053】
xpは、焦電センサ82の向きである。図8に示すように、各々の焦電センサ82の検知範囲は、センサ正面を基準として水平方向において±30°である。数6に示す関数F5(x)は、図9に示す特性を有する。
【0054】
なお、ロボット10の移動時には、自らの移動に伴って周囲の熱源も変化する。このため、ロボット10が移動するときは、焦電センサ82は利用しない。
【0055】
CPU54は、こうして求められた人間の存在確信度分布F1(x)〜F6(x)を、数7によって一つの確信度分布F(x)に統合する。数7において、maxは、引数の値の最大値を返す関数である。たとえば、x=5における存在確信度分布F1(5)〜F6(5)のうち、F4(5)が最大であれば、F(5)=F4(5)となる。
【0056】
【数7】
【0057】
上述のように、存在確信度分布F1(x)〜F5(x)は、メモリ58に格納された画像データ,距離データおよび熱源データに基づいて求められる。しかし、画像データ,距離データおよび熱源データを全方位について平等に評価したのでは、処理の負担が大きくなる。そこで、この実施例では、存在確信度が高い一部の領域を抽出し、抽出された領域にMCMC(Markov Chain Monte Carlo)アルゴリズムに従ってサンプリング点の割り当てるようにしている。次回の評価領域つまりサンプリング領域は、こうして割り当てられたサンプリング点を包含する一部の領域となる。
【0058】
サンプリング領域の決定にあたって、CPU54はまず、今回求められた人間の存在確信度分布F(x)に数8に従う演算を施し、正規化確信度分布π(x)を求める。正規化確信度分布π(x)は、たとえば図10に示すように変化する。
【0059】
【数8】
【0060】
次に、閾値Tsを上回る角度xを特定し、特定された角度xに向けられたサンプリング数sを数9に従って決定する。数9によれば、正規化確信度分布π(x)が高いほど、サンプリング数sが増大する。
【0061】
【数9】
【0062】
次回のサンプリング点ni(x)は、数10に従って決定する。数10によれば、s個のサンプリング点が、注目する角度xを中心とする±15°の範囲でランダムに選択される。図10に示す領域Eに注目すると、サンプリング点は、図11に示す要領で決定される。
【0063】
【数10】
【0064】
サンプリング領域の決定にあたっては、複数のサンプリング点を隣り合う間隔が閾値を下回るサンプリング点毎にグループ化する。間隔が閾値以上の2つのサンプリング点に注目したとき、各々のサンプリング点は、互いに別のサンプリング領域の端部を形成する。これによって、図12に示すように、複数のサンプリング領域が短冊状に形成される。
【0065】
以上の手順により、存在確信度の高い角度の周辺ではサンプリング領域の幅が増大し、存在確信度の低い角度の周辺ではサンプリング領域の幅が減少する。こうして、過去の検知データから今回どの部分をサンプリングすれば良いかが推定される。上記の処理の繰り返しによってサンプリング領域が変更され、その瞬間において重要であると予測される情報が効率よく取得される。
【0066】
また、人間の存在確信度に従ってサンプリングしていくため、人間が存在しているという仮説を複数維持したままサンプリング領域を限定していくことができる。そのため、センサ処理に必要な時間が減少し、なおかつ不規則に動く人間を頑健に認識・追跡することが可能となる。
【0067】
CPU54は、具体的には図13〜図16に示すフロー図に従う処理を実行する。このフロー図に対応する制御プログラムは、メモリ58に記憶される。なお、このフロー図に従う処理では、右眼球モータ系76,左眼球モータ系78,右腕モータ系66,左腕モータ系68および頭部モータ系70が駆動されることはない。つまり、眼カメラ52は、常にロボット10の正面を向く。
【0068】
まずステップS1で現時点のロボット10の向きである方位αを取得し、ステップS3で変数αt1に取得された方位αを設定する。ステップS5では、各センサのサンプリング領域を初期化する。具体的には、全方位を示すサンプリング領域情報をレジスタ58rに設定する。
【0069】
ステップS7ではロボット10の方位αを再度取得し、ステップS9では変数αt1を変数αt2に退避させ、ステップS11ではステップS7で取得した方位αを変数αt1に設定する。変数αt1およびαt2はそれぞれ、連続して取得された2つの方位αを示す。
【0070】
ステップS13では変数αt1およびαt2の差分を示す角度Δαを求め、ステップS15ではレジスタ58rに設定されたサンプリング領域情報を角度Δαだけ平行移動させる。これによって、ロボット10の回転に起因するオフセットが解消される。
【0071】
ステップS17では、眼カメラ52から出力されかつメモリ58に格納された画像データに基づいて、数2〜数4に示す存在確信度分布F2(x)〜F4(x)を仮定する。ただし、仮定する範囲は、レジスタ58rに設定されたサンプリング領域情報に従う範囲である。
【0072】
ステップS19では、ロボット10が移動中であるか否かを判別する。YESであればステップS21に進み、NOであればステップS23に進む。ステップS21では、存在確信度分布F1(x),F5(x)およびF6(x)を“0”と仮定する。
【0073】
ステップS23では、全方位カメラ30から出力されかつメモリ58に格納された画像データに基づいて数1に示す存在確信度分布F1(x)を仮定し、超音波センサ22から出力されかつメモリ58に格納された距離データに基づいて数5に示す存在確信度分布F5(x)を仮定し、そして焦電センサ82から出力されかつメモリ58に格納された熱源データに基づいて数6に示す存在確信度分布F6(x)を仮定する。仮定する範囲は、レジスタ58rに設定されたサンプリング領域情報に従う範囲である。
【0074】
こうして存在確信度分布F1(x)〜F6(x)が求められると、ステップS25で数7に従って統合存在確信度分布F(x)を算出する。ステップS27では統合存在確信度が最大となる角度xsを特定し、ステップS29では角度xsが“0”となる方向への回転をモータ制御ボード60に命令する。
【0075】
ステップS31では、角度xsに対応する超音波距離センサ22の測定距離Udを検出し、ステップS33ではこの測定距離Udを閾値Tdと比較する。そして、Ud≦TdであればそのままステップS37に進むが、Ud>TdであればステップS35で差分値“Td−Ud”が“0”となる方向への移動をモータ制御ボード60に命令し、その後ステップS37に進む。
【0076】
モータ制御ボード60は、ステップS29またはS35で発行された命令に従って車輪モータ系74を駆動する。回転命令が発行されたときはロボット10の向きが変化し、移動命令が発行されたときはロボット10の位置が変化する。
【0077】
ステップS37では統合存在確信度分布F(x)を数8に従って正規化し、ステップS39ではサンプリング領域決定処理を実行する。ステップS41では、ステップS39で決定されたサンプリング領域を示すサンプリング領域情報をレジスタ58rに設定する。レジスタ58rが更新されると、ステップS7に戻る。
【0078】
ステップS39のサンプリング領域決定処理は、図16に示すサブルーチンに従う。まずステップS51で変数xを“0”に設定し、ステップS53で正規化確信度分布π(x)を閾値Tsと比較する。ここで、π(x)<Tsであれば直接ステップS59に進むが、π(x)≧Tであれば、ステップS55で数9に従ってサンプリング数を決定し、ステップS57で数10に従ってサンプリング点を決定してからステップS59に進む。
【0079】
ステップS59では変数xをインクリメントし、続くステップS61では変数xを“360”と比較する。そして、変数xが“360”に満たなければステップS53に戻るが、変数xが“360”に達すれば、ステップS63でサンプリング領域を決定する。具体的には、決定された複数のサンプリング点を隣り合う間隔が閾値を下回るサンプリング点毎にグループ化し、各グループが存在する領域をサンプリング領域として決定する。ステップS63の処理が完了すると、上階層のルーチンに復帰する。
【0080】
以上の説明から分かるように、ロボット10の周囲に存在する人間(対象物)は、超音波センサ22,全方位カメラ30,眼カメラ52,焦電センサ82などの複数のセンサによって検知される。各センサから出力されたセンサデータ(検知情報)は、センサ入力/出力ボード62を介してメモリ58に取り込まれる。
【0081】
CPU54は、取り込まれたセンサデータのうち複数のサンプリング領域に対応する一部のセンサデータに基づいて、人間の存在確信度の正規分布F1(x)〜F6(x)を仮定する(S17, S21, S23)。
【0082】
CPU54は、仮定された正規分布F1(x)〜F6(x)に基づいて人間の存在位置を認識し、存在確信度が増大するほど領域サイズが拡大するように複数のサンプリング領域を規定する(S39)。
【0083】
このように、人間の存在位置は、複数のサンプリング領域に対応するセンサデータに基づいて認識される。これによって、認識に必要な処理量が抑制される。また、複数のサンプリング領域は、人間の存在確信度が増大するほど領域サイズが拡大するように規定される。これによって、認識の精度が向上する。この結果、対象物を頑健に認識することが可能となる。
【符号の説明】
【0084】
10 … コミュニケーションロボット
12 … 人間
22 … 超音波距離センサ
30 … 全方位カメラ
52 … 眼カメラ
54 … CPU
58 … メモリ
74 … 車輪モータ系
82 … 焦電センサ
【技術分野】
【0001】
この発明は、ロボットおよびロボットの対象物認識方法に関し、特にたとえば、所定領域内に存在する対象物をセンサからの検知情報に基づいて認識する、ロボットおよびロボットの対象物認識方法に関する。
【背景技術】
【0002】
従来のこの種の装置の一実施例が、特許文献1に開示されている。この従来技術は、超音波センサ,イメージセンサおよびIRセンサを用いて、障害物(対象物)を回避しながら、予め決められた経路で目的地に移動しようとするものである。
【特許文献1】特開2001−129787号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、対象物の検知範囲を高めるには、より多くのセンサを用いて全方位を監視する必要がある。その一方、全てのセンサからの出力の評価基準と同じにしたのでは、負担が大きすぎる。つまり、周囲に存在する対象物を認識するにあたって、全てのセンサの出力を公平に評価すると、そのセンサ出力を処理するコンピュータに多大の労力がかかり、リアルタイムの認識は不可能である。
【0004】
それゆえに、この発明の主たる目的は、新規な、ロボットおよびロボットの対象物認識方法を提供することである。
【0005】
この発明の他の目と的は、対象物の認識に要するコンピュータの処理量を軽減し、対象物を頑健に認識することを可能とした、ロボットおよびロボットの対象物認識方法を提供することである。
【課題を解決するための手段】
【0006】
第1の発明は、ロボットの周囲に存在する対象物を検出するために、ロボットの周囲をセンシングしてそれぞれ異なる情報を取得する複数のセンサを備えるロボットにおける対象物認識方法であって、各センサデータに基づいて、センサ毎に、対象物が存在すると推定する、ロボット座標系の正面に対する角度を示す存在確信度分布を算出する第1算出ステップ、センサ毎の存在確信度分布から統合存在確信度分布を算出する第2算出ステップ、および統合存在確信度分布に基づいて、各センサデータを取り込むサンプリング領域を決定する決定ステップを含み、サンプリング領域で得られるセンサデータに基づいて対象物を認識する、ロボットにおける対象物認識方法である。
【発明の効果】
【0007】
この発明によれば、サンプリング領域を限定するので、対象物認識に必要な情報処理量が抑制される。
【0008】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0009】
【図1】この発明の一実施例の使用状態を示す図解図である。
【図2】図1に示すコミュニケーションロボットの外観を示す図解図である。
【図3】図1に示すコミュニケーションロボットの内部構成を示すブロック図である。
【図4】全方位カメラおよび眼カメラの動作の一部を示す図解図である。
【図5】全方位カメラおよび眼カメラの動作の他の一部を示す図解図である。
【図6】超音波距離センサの動作の一例を示す図解図である。
【図7】超音波距離センサの動作の他の一部を示す図解図である。
【図8】焦電センサの動作の一部を示す図解図である。
【図9】焦電センサの動作の他の一部を示す図解図である。
【図10】ロボットの正面に対する角度と正規化存在確信度との関係を示すグラフである。
【図11】サンプリング点の割り当て状態を示す図解図である。
【図12】サンプリング領域の割り当て状態を示す図解図である。
【図13】図1に示すコミュニケーションロボットの動作の一部を示すフロー図である。
【図14】図1に示すコミュニケーションロボットの動作の他の一部を示すフロー図である。
【図15】図1に示すコミュニケーションロボットの動作のその他の一部を示すフロー図である。
【図16】図1に示すコミュニケーションロボットの動作のさらにその他の一部を示すフロー図である。
【発明を実施するための最良の形態】
【0010】
図1を参照して、この実施例のコミュニケーションロボット10は、対象物である人間12を頑健に認識しかつ追跡するロボットである。
【0011】
この実施例で適用されるロボット10を、図2に示す外観図および図3に示す内部構成図を用いて詳細に説明する。ロボット10は、台車16を含み、この台車16の下面には、このロボット10を自律移動させる車輪18が設けられる。この車輪18は、車輪モータ系74によって駆動され、台車16すなわちロボット10を前後左右任意の方向に動かすことができる。
【0012】
台車16の上には、多角形柱のセンサ取付パネル20が設けられる。センサ取付パネル20は36個の面を有し、各々の面に超音波距離センサ22が取り付けられる。超音波距離センサ22は、取付パネル20すなわちロボット10の周囲に存在する対象物までの距離を計測するものであり、水平方向における検知範囲は10°である。これによって、ロボット10の全方位にわたる検知が可能となる。
【0013】
台車16の上には、さらに、下部が上述の取付パネル20に囲まれて、ロボット10の胴体が直立するように取り付けられる。この胴体は下部胴体24と上部胴体26とから構成され、これら下部胴体24および上部胴体26は、連結部28によって連結される。連結部28には、図示しないが、昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体26の高さすなわちロボット10の高さを変化させることができる。昇降機構は、腰モータ系72によって駆動される。
【0014】
下部胴体24の周囲には、3つの焦電センサ82,82,82が均等な距離をおいて設けられる。焦電センサ82は熱源を検知するセンサであり、水平方向における検知範囲は左右60°である。かかる焦電センサ82を3つ設けることで、全方位にわたる熱源の検知が可能となる。
【0015】
上部胴体26の背面上方には全方位カメラ30が設けられ、上部胴体26の前面にはマイク32が設けられる。全方位カメラ30は、ロボット10の周囲を撮影するもので、後述の眼カメラ52と区別される。マイク32は、周囲の音、とりわけ人の声を取り込む。
【0016】
上部胴体26の両肩には、それぞれ、肩関節34Rおよび34Lによって、上腕36Rおよび36Lが取り付けられる。肩関節34Rおよび34Lの各々は、3軸の自由度を有する。すなわち、肩関節34Rは、X軸,Y軸およびZ軸の各々の軸廻りにおいて上腕36Rの角度を制御できる。Y軸は、上腕36Rの長手方向(または軸)に平行な軸であり、X軸およびZ軸は、そのY軸に、それぞれ異なる方向から直交する軸である。肩関節34Lは、A軸,B軸およびC軸の各々の軸廻りにおいて上腕36Lの角度を制御できる。B軸は、上腕36Lの長手方向(または軸)に平行な軸であり、A軸およびC軸は、そのB軸に、それぞれ異なる方向から直交する軸である。
【0017】
上腕36Rおよび36Lの先端には、それぞれ、肘関節38Rおよび38Lを介して、前腕40Rおよび40Lが取り付けられる。肘関節38Rおよび38Lは、それぞれ、W軸およびD軸の軸廻りにおいて、前腕40Rおよび40Lの角度を制御できる。
【0018】
右の肩関節34Rおよび肘関節38Rは右腕モータ系66によって駆動され、左の肩関節34Lおよび肘関節38Lは左腕モータ系68によって駆動される。
【0019】
前腕40Rおよび40Lのそれぞれの先端には、手に相当する球体42Rおよび42Lがそれぞれ固定的に取り付けられる。なお、この球体42Rおよび42Lに代えて、この実施例のロボット10と異なり指の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【0020】
上部胴体26の中央上方には、首関節44を介して、頭部46が取り付けられる。この首関節44は、3つの自由度を有し、S軸,T軸およびU軸の各軸廻りに角度制御可能である。S軸は首から真上に向かう軸であり、T軸およびU軸は、それぞれ、このS軸に対して異なる方向で直交する軸である。頭部46には、人の口に相当する位置に、スピーカ48が設けられる。スピーカ48は、ロボット10が、それの周囲の人に対して音声または声によってコミュニケーションを図るために用いられる。
【0021】
また、頭部46には、目に相当する位置に眼球部50Rおよび50Lが設けられる。眼球部50Rおよび50Lは、それぞれ眼カメラ52Rおよび52Lを含む。なお、右の眼球部50Rおよび左の眼球部50Lをまとめて眼球部50といい、右の眼カメラ52Rおよび左の眼カメラ52Lをまとめて眼カメラ52ということもある。眼カメラ52は、ロボット10に接近した人の顔や他の部分ないし物体等を撮影してその画像を取り込む。
【0022】
なお、上述の全方位カメラ30および眼カメラ52のいずれも、たとえばCCDやCMOSのように固体撮像素子を用いるカメラであってよい。
【0023】
たとえば、眼カメラ52は眼球部50内に固定され、眼球部50は眼球支持部(図示せず)を介して頭部46内の所定位置に取り付けられる。眼球支持部は、2軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部46に対して設定される軸であり、α軸は頭部46の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部46の正面側(顔)が向く方向に直交する方向の軸である。
【0024】
首関節44は頭部モータ系70によって制御される。また、右眼球部50Rの向きは右眼球モータ系76によって制御され、左眼球部50Lの向きは左眼球モータ系78によって制御される。
【0025】
図3を参照して、このロボット10は、全体の制御のためにCPU54を含み、このCPU54には、バス56を介して、メモリ58,モータ制御ボード60,センサ入力/出力ボード62および音声入力/出力ボード64が接続される。
【0026】
メモリ58は、図示しないが、ROM,HDDやRAMを含み、ROMやHDDにはこのロボット10を全体的に制御するためのプログラム等の各種データが予め書き込まれている。RAMは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用される。なお、後述するサンプリング領域情報を保持するレジスタ58rを特に図示する。
【0027】
モータ制御ボード60は、たとえばDSP(Digital Signal Processor)で構成され、CPU54からの制御データに従って、右腕モータ系66,左腕モータ系68,頭部モータ系70,腰モータ系72,車輪モータ系74,右眼球モータ系76,および左眼球モータ系78を駆動する。
【0028】
なお、この実施例の上述のモータ系は、車輪モータ系74を除いて、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、車輪モータ系74と同様に、直流モータであってよい。
【0029】
センサ入力/出力ボード62も、同様に、DSPで構成される。センサ入力/出力ボード62は、超音波距離センサ22,22,…から出力された距離データ(反射時間に関連する),全方位カメラ30および眼カメラ52の各々から出力された画像データ,および焦電センサ82,82,…から出力された熱源データを、CPU54に入力する。
【0030】
スピーカ48には、音声入力/出力ボード64を介して、CPU54から、合成音声データが与えられる。スピーカ48からは、与えられた合成音声データに従った合成音声が出力される。マイク32から入力された音声データは、音声入力/出力ボード64を介して、CPU54に取り込まれる。
【0031】
この実施例では、上述の全方位カメラ30,眼カメラ52,超音波距離センサ22および焦電センサ82を用いて、ロボット10の周囲に人間が存在する確信度分布を求める。ここで、人間の存在確信度分布とは、各センサからのセンサデータ(検知情報)に基づいて推定されるロボット周囲の人間の存在の確からしさの分布である。分布を表す変数xは、ロボット10に固定された座標系におけるロボット10の正面に対する角度であり、{x|0,1,2,…360}である。また、ロボット10の周囲とは、各センサの有効範囲によって決められる一定の半径の円内を指す。以下に、確信度分布の算出方法を示す。
【0032】
全方位カメラ30は、ロボット10の周囲360°の画像を取得することができるセンサである。この全方位カメラ30から得られる画像データは、メモリ58に一旦取り込まれる。CPU54は、メモリ58に取り込まれた画像データに基づいてフレーム間のRGB値の差分を求め、求められた差分値から移動物体を特定し、そして特定された移動物体を評価して人間の存在確信度分布を求める。
【0033】
具体的には、時刻tにおける640×480ピクセルのカラー全方位画像に対して、各ピクセルのRGB値から時刻(t−1)のフレームのRGB値を減算する。減算した画像に対して、値を持つピクセルの拡大・縮小を行い、ノイズを除去する。最後にラベリングを行い、その中で最も大きい領域を時刻tにおける移動物体領域とする。
【0034】
移動物体検出情報から求める人間の存在確信度分布は、実験によって得られたデータを元に、平均μ1,分散σ12の正規分布N(μ1,σ12)に重みα1を掛けたものを仮定
する。このときの存在確信度分布を表す関数F1(x)は数1によって定義される。
【0035】
【数1】
【0036】
図4を参照して、x,Msize,Md,およびMθはそれぞれ、ロボット座標系でのロボット10の正面からの角度,移動物体領域の大きさ[pixel],画像中心から移動物体
領域の重心までの距離[pixel],および移動物体が存在する角度を表す。数1に示す関数F1(x)は、図5に示す曲線を描く。
【0037】
なお、ロボット10が移動すると全方位カメラ30の出力にこの移動に伴う差分が出てしまう。このため、ロボット10が移動するときは、全方位カメラ30は利用しない。
【0038】
眼カメラ52では、人間の顔領域,肌色領域および人間の服の色の領域を検出する。顔の検出手法としては、Gabor filterbankを用いる。この手法は、眼カメラ52から得られたフレーム毎に顔を検出するものであり、ロボット10の動作が眼カメラ52のフレームレートに比べて十分遅い場合は、ロボット10の動作の影響を受けにくい。
【0039】
肌色領域を抽出するにあたって、CPU54は、眼カメラ52から得られた画像データをメモリ58に一旦格納し、この画像データを形成する各ピクセルのRGB値をHSV値に変換し、そしてHSV空間上で求めた肌色のボクセル内のピクセルを抽出する。ノイズは、上述したピクセルの拡大・縮小によって除去する。服の色領域の抽出にあたっては、顔の検出ができた際に顔の下側の一様な色情報をメモリ58から検出する。色領域抽出は肌色の場合と同じである。こうして顔・肌色・服の色の領域が抽出されると、CPU54は、かかる領域抽出情報に基づいて人間の存在確信度分布を求める。
【0040】
顔領域情報,肌色領域情報および服色領域情報からそれぞれ得られる人間の存在確信度分布を示す関数F2(x),F3(x)およびF4(x)は、数2,数3および数4によって定義される。
【0041】
【数2】
【0042】
【数3】
【0043】
【数4】
【0044】
これらは、移動物体領域に基づく存在確信度分布と同じく、平均μ2,分散σ22の正規分布N(μ2,σ22)に重みα2を掛けたもの、平均μ3,分散σ32の正規分布N(μ3,σ32)に重みα3を掛けたもの、ならびに平均μ4,分散σ42の正規分布N(μ4,σ42)に重みα1を掛けたものと仮定する。
【0045】
ここで、Fsize,Fd,Fθ,Ssize,Sd,Sθ,Csize,Cd,Cθは、図4に示すとおり、Gaborfilterbankによって検出された顔領域の大きさ[pixel],画像中心から顔領域の重心までの距離[pixel],顔が存在する角度,色抽出によって検出された肌色領域の大きさ[pixe1],画像中心から肌色領域の重心までの距離[pixel],肌色領域が存在する角度,色抽出によって検出された服色領域の大きさ[pixel],画像中心から服色領域の重心までの距離[pixe1],服色領域が存在する角度を表す。数2〜数4に示す関数F2(x)〜F4(x)も、図5に示す曲線を描く。
【0046】
ロボット10には、複数の超音波距離センサ22,22,…がリング状に配置されているため、全方位の距離情報を取得することができる。そこで、CPU54は、各々の超音波距離センサ22から出力される距離データをメモリ58に書き込み、この距離データの変化を用いて移動物体がどの方向に存在するかを検出し、そして検出された移動物体情報に基づいて人間の存在確信度分布を求める。
【0047】
距離データの変化に基づく人間の存在確信度分布を表す関数F5(x)は、数5によって定義される。上述した存在確信度分布と同じく、関数F5(x)は、平均μ5,分散σ52の正規分布N(μ5,σ52)に重みα5を掛けたものと仮定する。
【0048】
【数5】
【0049】
ここで、Ud,Udmin,Uθはそれぞれ、対象物までの距離,超音波距離センサ22の最小計測距離,対象物が存在する角度である。図6に示すように、各々の超音波距離センサ22の検知範囲は、センサ正面を基準として水平方向において±5°である。数5に示す関数F5(x)は、図7に示す曲線を描く。
【0050】
なお、ロボット10の移動時には自らの移動によって距離が変化してしまう。このため、ロボット10が移動するときは、超音波距離センサ22は利用しない。
【0051】
焦電センサ82は赤外線の変化に反応する2値出力のセンサであり、熱源の移動を検出することができる。人間も熱源であることから、熱源の移動に基づき人間の存在確信度分布を求めることができる。そこで、CPU54は、焦電センサ82から出力された熱源データをメモリ58に一旦書き込み、この熱源データから人間の存在確信度分布を求める。熱源データに基づく存在確信度分布を表す関数F6(x)は、実験によって得られたデータから、数6に示すように定義する。
【0052】
【数6】
【0053】
xpは、焦電センサ82の向きである。図8に示すように、各々の焦電センサ82の検知範囲は、センサ正面を基準として水平方向において±30°である。数6に示す関数F5(x)は、図9に示す特性を有する。
【0054】
なお、ロボット10の移動時には、自らの移動に伴って周囲の熱源も変化する。このため、ロボット10が移動するときは、焦電センサ82は利用しない。
【0055】
CPU54は、こうして求められた人間の存在確信度分布F1(x)〜F6(x)を、数7によって一つの確信度分布F(x)に統合する。数7において、maxは、引数の値の最大値を返す関数である。たとえば、x=5における存在確信度分布F1(5)〜F6(5)のうち、F4(5)が最大であれば、F(5)=F4(5)となる。
【0056】
【数7】
【0057】
上述のように、存在確信度分布F1(x)〜F5(x)は、メモリ58に格納された画像データ,距離データおよび熱源データに基づいて求められる。しかし、画像データ,距離データおよび熱源データを全方位について平等に評価したのでは、処理の負担が大きくなる。そこで、この実施例では、存在確信度が高い一部の領域を抽出し、抽出された領域にMCMC(Markov Chain Monte Carlo)アルゴリズムに従ってサンプリング点の割り当てるようにしている。次回の評価領域つまりサンプリング領域は、こうして割り当てられたサンプリング点を包含する一部の領域となる。
【0058】
サンプリング領域の決定にあたって、CPU54はまず、今回求められた人間の存在確信度分布F(x)に数8に従う演算を施し、正規化確信度分布π(x)を求める。正規化確信度分布π(x)は、たとえば図10に示すように変化する。
【0059】
【数8】
【0060】
次に、閾値Tsを上回る角度xを特定し、特定された角度xに向けられたサンプリング数sを数9に従って決定する。数9によれば、正規化確信度分布π(x)が高いほど、サンプリング数sが増大する。
【0061】
【数9】
【0062】
次回のサンプリング点ni(x)は、数10に従って決定する。数10によれば、s個のサンプリング点が、注目する角度xを中心とする±15°の範囲でランダムに選択される。図10に示す領域Eに注目すると、サンプリング点は、図11に示す要領で決定される。
【0063】
【数10】
【0064】
サンプリング領域の決定にあたっては、複数のサンプリング点を隣り合う間隔が閾値を下回るサンプリング点毎にグループ化する。間隔が閾値以上の2つのサンプリング点に注目したとき、各々のサンプリング点は、互いに別のサンプリング領域の端部を形成する。これによって、図12に示すように、複数のサンプリング領域が短冊状に形成される。
【0065】
以上の手順により、存在確信度の高い角度の周辺ではサンプリング領域の幅が増大し、存在確信度の低い角度の周辺ではサンプリング領域の幅が減少する。こうして、過去の検知データから今回どの部分をサンプリングすれば良いかが推定される。上記の処理の繰り返しによってサンプリング領域が変更され、その瞬間において重要であると予測される情報が効率よく取得される。
【0066】
また、人間の存在確信度に従ってサンプリングしていくため、人間が存在しているという仮説を複数維持したままサンプリング領域を限定していくことができる。そのため、センサ処理に必要な時間が減少し、なおかつ不規則に動く人間を頑健に認識・追跡することが可能となる。
【0067】
CPU54は、具体的には図13〜図16に示すフロー図に従う処理を実行する。このフロー図に対応する制御プログラムは、メモリ58に記憶される。なお、このフロー図に従う処理では、右眼球モータ系76,左眼球モータ系78,右腕モータ系66,左腕モータ系68および頭部モータ系70が駆動されることはない。つまり、眼カメラ52は、常にロボット10の正面を向く。
【0068】
まずステップS1で現時点のロボット10の向きである方位αを取得し、ステップS3で変数αt1に取得された方位αを設定する。ステップS5では、各センサのサンプリング領域を初期化する。具体的には、全方位を示すサンプリング領域情報をレジスタ58rに設定する。
【0069】
ステップS7ではロボット10の方位αを再度取得し、ステップS9では変数αt1を変数αt2に退避させ、ステップS11ではステップS7で取得した方位αを変数αt1に設定する。変数αt1およびαt2はそれぞれ、連続して取得された2つの方位αを示す。
【0070】
ステップS13では変数αt1およびαt2の差分を示す角度Δαを求め、ステップS15ではレジスタ58rに設定されたサンプリング領域情報を角度Δαだけ平行移動させる。これによって、ロボット10の回転に起因するオフセットが解消される。
【0071】
ステップS17では、眼カメラ52から出力されかつメモリ58に格納された画像データに基づいて、数2〜数4に示す存在確信度分布F2(x)〜F4(x)を仮定する。ただし、仮定する範囲は、レジスタ58rに設定されたサンプリング領域情報に従う範囲である。
【0072】
ステップS19では、ロボット10が移動中であるか否かを判別する。YESであればステップS21に進み、NOであればステップS23に進む。ステップS21では、存在確信度分布F1(x),F5(x)およびF6(x)を“0”と仮定する。
【0073】
ステップS23では、全方位カメラ30から出力されかつメモリ58に格納された画像データに基づいて数1に示す存在確信度分布F1(x)を仮定し、超音波センサ22から出力されかつメモリ58に格納された距離データに基づいて数5に示す存在確信度分布F5(x)を仮定し、そして焦電センサ82から出力されかつメモリ58に格納された熱源データに基づいて数6に示す存在確信度分布F6(x)を仮定する。仮定する範囲は、レジスタ58rに設定されたサンプリング領域情報に従う範囲である。
【0074】
こうして存在確信度分布F1(x)〜F6(x)が求められると、ステップS25で数7に従って統合存在確信度分布F(x)を算出する。ステップS27では統合存在確信度が最大となる角度xsを特定し、ステップS29では角度xsが“0”となる方向への回転をモータ制御ボード60に命令する。
【0075】
ステップS31では、角度xsに対応する超音波距離センサ22の測定距離Udを検出し、ステップS33ではこの測定距離Udを閾値Tdと比較する。そして、Ud≦TdであればそのままステップS37に進むが、Ud>TdであればステップS35で差分値“Td−Ud”が“0”となる方向への移動をモータ制御ボード60に命令し、その後ステップS37に進む。
【0076】
モータ制御ボード60は、ステップS29またはS35で発行された命令に従って車輪モータ系74を駆動する。回転命令が発行されたときはロボット10の向きが変化し、移動命令が発行されたときはロボット10の位置が変化する。
【0077】
ステップS37では統合存在確信度分布F(x)を数8に従って正規化し、ステップS39ではサンプリング領域決定処理を実行する。ステップS41では、ステップS39で決定されたサンプリング領域を示すサンプリング領域情報をレジスタ58rに設定する。レジスタ58rが更新されると、ステップS7に戻る。
【0078】
ステップS39のサンプリング領域決定処理は、図16に示すサブルーチンに従う。まずステップS51で変数xを“0”に設定し、ステップS53で正規化確信度分布π(x)を閾値Tsと比較する。ここで、π(x)<Tsであれば直接ステップS59に進むが、π(x)≧Tであれば、ステップS55で数9に従ってサンプリング数を決定し、ステップS57で数10に従ってサンプリング点を決定してからステップS59に進む。
【0079】
ステップS59では変数xをインクリメントし、続くステップS61では変数xを“360”と比較する。そして、変数xが“360”に満たなければステップS53に戻るが、変数xが“360”に達すれば、ステップS63でサンプリング領域を決定する。具体的には、決定された複数のサンプリング点を隣り合う間隔が閾値を下回るサンプリング点毎にグループ化し、各グループが存在する領域をサンプリング領域として決定する。ステップS63の処理が完了すると、上階層のルーチンに復帰する。
【0080】
以上の説明から分かるように、ロボット10の周囲に存在する人間(対象物)は、超音波センサ22,全方位カメラ30,眼カメラ52,焦電センサ82などの複数のセンサによって検知される。各センサから出力されたセンサデータ(検知情報)は、センサ入力/出力ボード62を介してメモリ58に取り込まれる。
【0081】
CPU54は、取り込まれたセンサデータのうち複数のサンプリング領域に対応する一部のセンサデータに基づいて、人間の存在確信度の正規分布F1(x)〜F6(x)を仮定する(S17, S21, S23)。
【0082】
CPU54は、仮定された正規分布F1(x)〜F6(x)に基づいて人間の存在位置を認識し、存在確信度が増大するほど領域サイズが拡大するように複数のサンプリング領域を規定する(S39)。
【0083】
このように、人間の存在位置は、複数のサンプリング領域に対応するセンサデータに基づいて認識される。これによって、認識に必要な処理量が抑制される。また、複数のサンプリング領域は、人間の存在確信度が増大するほど領域サイズが拡大するように規定される。これによって、認識の精度が向上する。この結果、対象物を頑健に認識することが可能となる。
【符号の説明】
【0084】
10 … コミュニケーションロボット
12 … 人間
22 … 超音波距離センサ
30 … 全方位カメラ
52 … 眼カメラ
54 … CPU
58 … メモリ
74 … 車輪モータ系
82 … 焦電センサ
【特許請求の範囲】
【請求項1】
周囲に存在する対象物を検出するために、周囲をセンシングしてそれぞれ異なる情報を取得する複数のセンサ、
前記各センサから出力された各センサデータに基づいて、センサ毎に、対象物が存在すると推定する前記ロボットの正面を基準とした角度における存在確信度分布を算出する第1算出手段、
前記センサ毎の存在確信度分布から統合存在確信度分布を算出する第2算出手段、および
前記統合存在確信度分布に基づいて、前記サンプリング領域を決定する決定手段を備える、ロボット。
【請求項2】
前記決定手段は、前記第2算出手段によって算出された統合存在確信度分布を正規化する正規化手段を含み、前記正規化手段によって正規化された統合存在確信度分布に基づいて、前記サンプリング領域を決定する、請求項1記載のロボット。
【請求項3】
前記決定手段は前記統合存在確信度分布が閾値を超える一部の領域を抽出する、請求項2記載のロボット。
【請求項4】
前記決定手段は、前記抽出した領域にMCMCに従ってサンプリング点を割り当て、前記サンプリング領域はこのようにして割り当てられたサンプリング点を包含する領域である、請求項1ないし3のいずれかに記載のロボット。
【請求項5】
ロボットの周囲に存在する対象物を検出するために、周囲をセンシングしてそれぞれ異なる情報を取得する複数のセンサを備えるロボットにおける対象物認識方法であって、
前記各センサから出力された各センサデータに基づいて、センサ毎に、対象物が存在すると推定する前記ロボットの正面を基準とした角度における存在確信度分布を算出する第1算出ステップ、
前記センサ毎の存在確信度分布から統合存在確信度分布を算出する第2算出ステップ、および
前記統合存在確信度分布に基づいて、前記サンプリング領域を決定する決定ステップを含み、
前記サンプリング領域で得られるセンサデータに基づいて対象物を認識する、ロボットにおける対象物認識方法。
【請求項1】
周囲に存在する対象物を検出するために、周囲をセンシングしてそれぞれ異なる情報を取得する複数のセンサ、
前記各センサから出力された各センサデータに基づいて、センサ毎に、対象物が存在すると推定する前記ロボットの正面を基準とした角度における存在確信度分布を算出する第1算出手段、
前記センサ毎の存在確信度分布から統合存在確信度分布を算出する第2算出手段、および
前記統合存在確信度分布に基づいて、前記サンプリング領域を決定する決定手段を備える、ロボット。
【請求項2】
前記決定手段は、前記第2算出手段によって算出された統合存在確信度分布を正規化する正規化手段を含み、前記正規化手段によって正規化された統合存在確信度分布に基づいて、前記サンプリング領域を決定する、請求項1記載のロボット。
【請求項3】
前記決定手段は前記統合存在確信度分布が閾値を超える一部の領域を抽出する、請求項2記載のロボット。
【請求項4】
前記決定手段は、前記抽出した領域にMCMCに従ってサンプリング点を割り当て、前記サンプリング領域はこのようにして割り当てられたサンプリング点を包含する領域である、請求項1ないし3のいずれかに記載のロボット。
【請求項5】
ロボットの周囲に存在する対象物を検出するために、周囲をセンシングしてそれぞれ異なる情報を取得する複数のセンサを備えるロボットにおける対象物認識方法であって、
前記各センサから出力された各センサデータに基づいて、センサ毎に、対象物が存在すると推定する前記ロボットの正面を基準とした角度における存在確信度分布を算出する第1算出ステップ、
前記センサ毎の存在確信度分布から統合存在確信度分布を算出する第2算出ステップ、および
前記統合存在確信度分布に基づいて、前記サンプリング領域を決定する決定ステップを含み、
前記サンプリング領域で得られるセンサデータに基づいて対象物を認識する、ロボットにおける対象物認識方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−8791(P2011−8791A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2010−149078(P2010−149078)
【出願日】平成22年6月30日(2010.6.30)
【分割の表示】特願2004−103991(P2004−103991)の分割
【原出願日】平成16年3月31日(2004.3.31)
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願日】平成22年6月30日(2010.6.30)
【分割の表示】特願2004−103991(P2004−103991)の分割
【原出願日】平成16年3月31日(2004.3.31)
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】
[ Back to top ]