(57)【要約】    【構成】  ロボット１０はＣＰＵ６０を含み、ＣＰＵ６０は、グリッドマップを用いて、オブジェクトに接触しない領域を抽出したり、オブジェクトのみならず床の模様に接触しない領域を抽出したりする。ロボット１０は、抽出（分割）された領域のうち、人間のリクエストに応じた１の領域を選択して、選択した領域の大きさや選択した領域との位置関係に応じて、発話内容を決定するとともに、ジェスチャを決定する。そして、ロボット１０は、指示語や特定のオブジェクトに対して設定された相対言語表現によって発話するとともに、指差しの動作を実行して、選択された領域を人間に指示する。    【効果】  人間と同様に領域を分割し、人間と同様にその１つを指示することができる。【選択図】  図１
2011180660.tif 000002
【特許請求の範囲】
【請求項１】
少なくともオブジェクトを含む障害物が登録された或る環境を真上から俯瞰的に見た地図情報を記憶する記憶手段、
前記地図情報において任意の直線に沿って中心を有する複数の円を描画する描画手段、
前記描画手段によって描画された複数の円の各々を障害物に接触する直前まで拡大する拡大手段、
前記拡大手段によって拡大された複数の円のうち、同一の直線に沿って中心を有する円同士を結合して１または複数の領域を生成する領域生成手段、
所定のルールに従って、前記領域生成手段によって生成された１または複数の領域から１の領域を抽出する領域抽出手段、および
前記領域抽出手段によって抽出された領域を除く前記地図情報に対して、前記拡大手段、前記領域生成手段、および前記領域抽出手段を繰り返し実行する実行手段を備える、領域分割装置。
【請求項２】
前記障害物は、前記環境における床面ないし地面の模様を含む、請求項１記載の領域分割装置。
【請求項３】
前記地図情報を格子状に分割する分割手段をさらに備え、
前記描画手段は、前記分割手段によって格子状に分割された地図情報の一枠毎に、異なる角度の直線に沿って中心を有する複数の円を描画する、請求項１または２記載の領域分割装置。
【請求項４】
前記所定のルールは、特定の点との距離が最も近いことを含む、請求項１ないし３のいずれかに記載の領域分割装置。
【請求項５】
前記実行手段は、前記領域抽出手段によって抽出された領域の総和が前記地図情報の全範囲のうちの一定を超えるまで、前記拡大手段、前記領域生成手段、および前記領域抽出手段を繰り返し実行する、請求項１ないし４のいずれかに記載の領域分割装置。
【請求項６】
少なくともオブジェクトを含む障害物が登録された或る環境を真上から俯瞰的に見た地図情報を記憶する記憶手段を備えるコンピュータのプロセッサに、
前記地図情報において任意の直線に沿って中心を有する複数の円を描画する描画ステップ、
前記描画ステップによって描画された複数の円の各々を障害物に接触する直前まで拡大する拡大ステップ、
前記拡大ステップによって拡大された複数の円のうち、同一の直線に沿って中心を有する円同士を結合して１または複数の領域を生成する領域生成ステップ、
所定のルールに従って、前記領域生成ステップによって生成された１または複数の領域から１の領域を抽出する領域抽出ステップ、および
前記領域抽出ステップによって抽出された領域を除く前記地図情報に対して、前記拡大ステップ、前記領域生成ステップ、および前記領域抽出ステップを繰り返し実行する実行ステップを実行させる、領域分割プログラム。
【請求項７】
少なくともオブジェクトを含む障害物が登録された或る環境を真上から俯瞰的に見た地図情報を記憶する記憶手段を備えるコンピュータの領域分割方法であって、
（ａ）前記地図情報において任意の直線に沿って中心を有する複数の円を描画し、
（ｂ）前記ステップ（ａ）によって描画された円を障害物に接触する直前まで拡大し、
（ｃ）前記ステップ（ｂ）によって拡大された複数の円のうち、同一の直線に沿って中心を有する円同士を結合して１または複数の領域を生成し、
（ｄ）所定のルールに従って、前記ステップ（ｃ）によって生成された１または複数の領域から１の領域を抽出し、そして
（ｅ）前記ステップ（ｄ）によって抽出された領域を除く前記地図情報に対して、前記ステップ（ｂ）、前記ステップ（ｃ）、および前記ステップ（ｄ）を繰り返し実行する、領域分割方法。
【請求項８】
請求項１ないし５のいずれかに記載する領域分割装置を備える、コミュニケーションロボット。
【請求項９】
或る環境内に配置され、人間との間で身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する、コミュニケーションロボットであって、
前記環境を複数の領域に分割した分割領域情報を記憶する記憶手段、
前記記憶手段によって記憶された分割領域情報が示す複数の領域のうち、前記人間の質問に応じた１の領域を選択する領域選択手段、
少なくとも、前記領域選択手段によって選択された１の領域の大きさに応じて、前記身体動作を決定する動作決定手段、
少なくとも、前記領域選択手段によって選択された１の領域と、自身と、前記人間との位置関係に応じて、前記音声の内容を決定する発話内容決定手段、および
前記動作決定手段よって決定された身体動作を実行するとともに、前記発話内容決定手段によって決定された発話の内容を発話することにより、前記領域選択手段によって選択された１の領域を前記人間に指示する指示手段を備える、コミュニケーションロボット。
【請求項１０】
前記動作決定手段によって決定された身体動作を実行した場合に、前記領域選択手段によって選択された１の領域のみならず、他の領域も指示する場合に、自身の位置を当該１の領域に近づける第１現在位置更新手段をさらに備える、請求項９記載のコミュニケーションロボット。
【請求項１１】
特定のオブジェクトに対して割り当てられた割当領域と当該割当領域を指示する場合の言語表現とを含む相対言語情報を記憶する相対言語情報記憶手段、および
前記動作決定手段によって決定された身体動作を実行した場合に、前記領域選択手段によって選択された１の領域のみならず、他の領域も指示する場合に、前記１の領域が前記割当領域に含まれるか否かを判断する領域包含判断手段をさらに備え、
前記発話内容決定手段は、前記領域包含判断手段によって、前記１の領域のみが前記割当領域に含まれることが判断されたとき、当該割当領域を指示する言語表現を前記音声の内容に決定する、請求項９記載のコミュニケーションロボット。
【請求項１２】
前記領域包含判断手段によって、前記１の領域のみならず、他の領域も包含することが判断された場合に、自身の位置を当該１の領域に近づける第２現在位置更新手段をさらに備える、請求項１１記載のコミュニケーションロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は領域分割装置、領域分割プログラムおよび領域分割方法ならびにコミュニケーションロボットに関し、特にたとえば、或る環境における空間を人間に伝達可能な領域に分割する、領域分割装置、領域分割プログラム、領域分割方法ならびにコミュニケーションロボットに関する。
【背景技術】
【０００２】
この種の領域分割装置の一例が特許文献１に開示されている。この特許文献１に開示される領域分割装置は、カラー画像の画素間の色差に基づいて決定された色区間の各軸方向の分割幅に従って上記色空間を分割した後、その分割された色空間の色空間分割領域毎に設定された色分類番号に基づいてカラー画像の各画素をラベリングして、ラベリングした各画素において、同一色分類番号の画素が連続する領域を同色領域として、その同色領域毎にカラー画像を分割する。
【０００３】
また、この種のコミュニケーションロボットの一例が特許文献２に開示されている。この特許文献２に開示されるコミュニケーションロボットは、モーションキャプチャシステムから自身の位置、人間の位置およびオブジェクトの位置を検出する。また、ロボットは、人間との距離、ロボットと人間とを結ぶ基線に対するロボットの視線および人間の視線に基づいて指示語決定モデルを決定する。そして、ロボットは、所望のオブジェクトを指示するように、指差し動作を実行するとともに、指示語決定モデルに従って決定された指示語（「これ」、「それ」、「あれ」）を発話する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−６７２４０号［G06T 7/00］
【特許文献２】特開２００６−２３１４９７号[B25J 13/00,B25J 5/00]
【発明の概要】
【発明が解決しようとする課題】
【０００５】
たとえば、或る領域を伝達するインタクションでは、人間に伝達可能な領域を発話・ジェスチャで伝える必要がある。しかし、特許文献２に示すコミュニケーションロボットでは、特定のオブジェクトについて発話・ジェスチャで伝えており、領域の伝達そのものを扱っていない。また、このコミュニケーションロボットでは、人間に伝達可能な領域を自身のセンサ情報から自動的に抽出することができない。
【０００６】
ここで、人間に伝達可能な領域は、周囲に存在するオブジェクトや模様によって決定される特徴がある。しかし、それらの領域上には明白な境界が存在しない場合もあり、特許文献１の領域分割装置のように、単に色差の情報に基づいて領域を分割するだけでは、人間に伝達可能な領域を抽出することは困難である。
【０００７】
それゆえに、この発明の主たる目的は、新規な、領域分割装置、領域分割プログラムおよび領域分割方法ならびにコミュニケーションロボットを提供することである。
【０００８】
また、この発明の他の目的は、人間に伝達可能な領域を抽出することができる、領域分割装置、領域分割プログラムおよび領域分割方法ならびにコミュニケーションロボットを提供することである。
【課題を解決するための手段】
【０００９】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【００１０】
第１の発明は、少なくともオブジェクトを含む障害物が登録された或る環境を真上から俯瞰的に見た地図情報を記憶する記憶手段、地図情報において任意の直線に沿って中心を有する複数の円を描画する描画手段、描画手段によって描画された複数の円の各々を障害物に接触する直前まで拡大する拡大手段、拡大手段によって拡大された複数の円のうち、同一の直線に沿って中心を有する円同士を結合して１または複数の領域を生成する領域生成手段、所定のルールに従って、領域生成手段によって生成された１または複数の領域から１の領域を抽出する領域抽出手段、および領域抽出手段によって抽出された領域を除く地図情報に対して、拡大手段、領域生成手段、および領域抽出手段を繰り返し実行する実行手段を備える、領域分割装置である。
【００１１】
第１の発明では、領域分割装置は、記憶手段（６４）、描画手段（６０、Ｓ１１１、Ｓ１１３、Ｓ１３１、Ｓ１５５、Ｓ１７５）、拡大手段（６０、Ｓ１１３、Ｓ１１５、Ｓ１１７、Ｓ１３１、Ｓ１３３、Ｓ１３５、Ｓ１５５、Ｓ１５７、Ｓ１５９）、領域生成手段（６０、Ｓ１６７）、領域抽出手段（６０、Ｓ８５、Ｓ８７）および実行手段（６０、Ｓ９３）を備える。記憶手段は、少なくともオブジェクトを含む障害物が登録された或る環境を真上から俯瞰的に見た地図情報を記憶する。描画手段は、地図情報において任意の直線に沿って中心を有する複数の円を描画する。拡大手段は、描画手段によって描画された複数の円の各々を障害物に接触する直前まで拡大する。たとえば、一定の長さずつ半径を伸ばすことにより円を拡大し、円が障害物に接触したときに、円の半径を１つ手前の長さに戻す。領域生成手段は、拡大手段によって拡大された複数の円のうち、同一の直線に沿って中心を有する円同士を結合して１または複数の領域を生成する。領域抽出手段は、所定のルールに従って、領域生成手段によって生成された１または複数の領域から１の領域を抽出する。実行手段は、領域抽出手段によって抽出された領域を除く地図情報に対して、拡大手段、領域生成手段、および領域抽出手段を繰り返し実行する。
【００１２】
第１の発明によれば、障害物に接触しない円同士を結合するので、障害物で囲まれるような一定の範囲を１つの領域として抽出することができる。つまり、人間に伝達可能な領域に分割することができる。
【００１３】
第２の発明は第１の発明に従属し、障害物は、環境における床面ないし地面の模様を含む。
【００１４】
第２の発明では、障害物は、環境における床面ないし地面の模様を含む。たとえば、タイルの継ぎ目に表れる線が検出される。これは、人間が領域を認識する際に、そのような継ぎ目によって領域を分割することがあると考えられるからである。ここでは、障害物は、円を拡大することの障害となるオブジェクトや模様（線）を意味する。
【００１５】
第２の発明によれば、床面や地面の模様も障害物に含めるので、人間に近い感覚で領域を分割することができる。
【００１６】
第３の発明は、第１または第２の発明に従属し、地図情報を格子状に分割する分割手段をさらに備え、描画手段は、分割手段によって格子状に分割された地図情報の一枠毎に、異なる角度の直線に沿って中心を有する複数の円を描画する。
【００１７】
第３の発明では、分割手段（６０、Ｓ４１）は地図情報を格子状に分割する。描画手段は、格子状に分割された地図情報の一枠毎に、異なる角度の直線に沿って中心を有する複数の円を描画する。つまり、各枠毎に、異なる角度の直線が設定され、当該直線に沿って複数の円が描画される。
【００１８】
第３の発明によれば、地図情報を格子状に分割した枠毎に設定される直線に沿って複数の円を描画するので、地図情報の全体に渡って領域を抽出することができる。
【００１９】
第４の発明は、第１ないし第３の発明に従属し、所定のルールは、特定の点との距離が最も近いことを含む。
【００２０】
第４の発明では、所定のルールは、特定の点との距離が最も近いことを含む。これは、話し手の近い位置に或る領域は、遠くに在る領域よりも正確に認識されるという知見を表現するためである。したがって、たとえば、特定の点とは、話し手の位置を意味する場合がある。
【００２１】
第４の発明によれば、話し手と聞き手とが存在するような環境において領域を抽出する場合に、人間に近い感覚で領域を分割することができる。
【００２２】
第５の発明は、第１ないし第４の発明に従属し、実行手段は、領域抽出手段によって抽出された領域の総和が地図情報の全範囲のうちの一定を超えるまで、拡大手段、領域生成手段、および領域抽出手段を繰り返し実行する。
【００２３】
第５の発明では、実行手段は、領域抽出手段によって抽出された領域の総和が地図情報の全範囲のうちの一定を超えるまで、拡大手段、領域生成手段、および領域抽出手段を繰り返し実行する。たとえば、地図情報の全範囲のうちの一割程度しか抽出可能な領域が残っていないような状況になると、そのような領域については抽出する価値が無いと考えて、領域の抽出を終了するのである。
【００２４】
第５の発明によれば、必要以上に領域の抽出処理を実行しないので、無駄な処理を省くことができる。
【００２５】
第６の発明は、少なくともオブジェクトを含む障害物が登録された或る環境を真上から俯瞰的に見た地図情報を記憶する記憶手段を備えるコンピュータのプロセッサに、地図情報において任意の直線に沿って中心を有する複数の円を描画する描画ステップ、描画ステップによって描画された複数の円の各々を障害物に接触する直前まで拡大する拡大ステップ、拡大ステップによって拡大された複数の円のうち、同一の直線に沿って中心を有する円同士を結合して１または複数の領域を生成する領域生成ステップ、所定のルールに従って、領域生成ステップによって生成された１または複数の領域から１の領域を抽出する領域抽出ステップ、および領域抽出ステップによって抽出された領域を除く地図情報に対して、拡大ステップ、領域生成ステップ、および領域抽出ステップを繰り返し実行する実行ステップを実行させる、領域分割プログラムである。
【００２６】
第７の発明は、少なくともオブジェクトを含む障害物が登録された或る環境を真上から俯瞰的に見た地図情報を記憶する記憶手段を備えるコンピュータの領域分割方法であって、（ａ）地図情報において任意の直線に沿って中心を有する複数の円を描画し、（ｂ）ステップ（ａ）によって描画された円を障害物に接触する直前まで拡大し、（ｃ）ステップ（ｂ）によって拡大された複数の円のうち、同一の直線に沿って中心を有する円同士を結合して１または複数の領域を生成し、（ｄ）所定のルールに従って、ステップ（ｃ）によって生成された１または複数の領域から１の領域を抽出し、そして（ｅ）ステップ（ｄ）によって抽出された領域を除く地図情報に対して、ステップ（ｂ）、ステップ（ｃ）、およびステップ（ｄ）を繰り返し実行する、領域分割方法である。
【００２７】
第６および第７の発明においても、第１の発明と同様に、人間に伝達可能な領域に分割することができる。
【００２８】
第８の発明は、請求項１ないし５のいずれかに記載する領域分割装置を備える、コミュニケーションロボットである。
【００２９】
第８の発明では、身体動作および音声の少なくとも一方によるコミュニケー損行動を行うコミュニケーションロボット（１０）は、上述したような領域分割装置（２４、２８、５８、６０、６４、６６、６８、７２、７４、７６、７８、８０など）を備える。
【００３０】
第８の発明によれば、サービスを提供する場合に、人間に伝達可能な領域を参照したジェスチャ（身体動作）および音声（発話）を用いたインタラクションを実行することができる。
【００３１】
第９の発明は、或る環境内に配置され、人間との間で身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する、コミュニケーションロボットであって、環境を複数の領域に分割した分割領域情報を記憶する記憶手段、記憶手段によって記憶された分割領域情報が示す複数の領域のうち、人間の質問に応じた１の領域を選択する領域選択手段、少なくとも、領域選択手段によって選択された１の領域の大きさに応じて、身体動作を決定する動作決定手段、少なくとも、領域選択手段によって選択された１の領域と、自身と、人間との位置関係に応じて、音声の内容を決定する発話内容決定手段、および動作決定手段よって決定された身体動作を実行するとともに、発話内容決定手段によって決定された発話の内容を発話することにより、領域選択手段によって選択された１の領域を人間に指示する指示手段を備える、コミュニケーションロボットである。
【００３２】
第９の発明では、コミュニケーションロボット（１０）は、或る環境内に配置され、人間との間で身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する。このコミュニケーションロボットは、記憶手段（６４）、領域選択手段（６０、Ｓ９）、動作決定手段（６０、Ｓ１１、Ｓ２４５）、発話内容決定手段（６０、Ｓ１１、Ｓ２５３、Ｓ２５５、Ｓ２６１）、指示手段（６０、Ｓ１３）を備える。記憶手段は、環境を複数の領域に分割した分割領域情報を記憶する。領域選択手段は、記憶手段によって記憶された分割領域情報が示す複数の領域のうち、人間の質問に応じた１の領域を選択する。たとえば、荷物を置いたり、人を待ったりする場所を聞かれた場合には、各々の場合に応じた１の領域が選択される。動作決定手段は、少なくとも、領域選択手段によって選択された１の領域の大きさに応じて、身体動作を決定する。つまり、選択された１の領域を人間に指示する場合の指示動作が決定される。また、発話内容決定手段は、少なくとも、領域選択手段によって選択された１の領域と、自身と、人間との位置関係に応じて、音声の内容を決定する。指示手段は、動作決定手段よって決定された身体動作を実行するとともに、発話内容決定手段によって決定された発話の内容を発話することにより、領域選択手段によって選択された１の領域を人間に指示する。
【００３３】
第９の発明によれば、人間の質問に応じた領域を選択し、それを指示するので、人間が行っているのと同様のインタラクションを実現することができる。
【００３４】
第１０の発明は、第９の発明に従属し、動作決定手段によって決定された身体動作を実行した場合に、領域選択手段によって選択された１の領域のみならず、他の領域も指示する場合に、自身の位置を当該１の領域に近づける第１現在位置更新手段をさらに備える。
【００３５】
第１０の発明では、コミュニケーションロボットは、第１現在位置更新手段（６０、Ｓ２４９、Ｓ２５１、Ｓ２５９）は、動作決定手段によって決定された身体動作を実行した場合に、領域選択手段によって選択された１の領域のみならず、他の領域も指示する場合に、自身の位置を当該１の領域に近づける。
【００３６】
第１０の発明によれば、たとえば、指差しの動作により領域を指示する場合、自身の位置を近づけることにより、当該領域のみを指差すように動作させることができる。したがって、たとえば、ここ、そこ、あそこ、この辺、その辺、あの辺のような指示語を発話したとしても、選択された１の領域を確実に指示することができる。つまり、より人間に近いインタラクションが可能である。
【００３７】
第１１の発明は、第９の発明に従属し、特定のオブジェクトに対して割り当てられた割当領域と当該割当領域を指示する場合の言語表現とを含む相対言語情報を記憶する相対言語情報記憶手段、および動作決定手段によって決定された身体動作を実行した場合に、領域選択手段によって選択された１の領域のみならず、他の領域も指示する場合に、１の領域が割当領域に含まれるか否かを判断する領域包含判断手段をさらに備え、発話内容決定手段は、領域包含判断手段によって、１の領域のみが割当領域に含まれることが判断されたとき、当該割当領域を指示する言語表現を音声の内容に決定する。
【００３８】
第１１の発明では、コミュニケーションロボットは、相対言語情報記憶手段（６４）、および領域包含判断手段（６０、Ｓ２５７）をさらに備える。相対言語情報記憶手段は、特定のオブジェクトに対して割り当てられた割当領域と当該割当領域を指示する場合の言語表現とを含む相対言語情報（２０４ｇ）を記憶する。領域包含判断手段は、動作決定手段によって決定された身体動作を実行した場合に、領域選択手段によって選択された１の領域のみならず、他の領域も指示する場合に（Ｓ２４９で“ＹＥＳ”）、１の領域が割当領域に含まれるか否かを判断する。発話内容決定手段は、領域包含判断手段によって、１の領域のみが割当領域に含まれることが判断されたとき、当該割当領域を指示する言語表現を音声の内容に決定する。
【００３９】
第１１の発明によれば、身体動作によって選択した１の領域以外の他の領域を指示してしまう場合であっても、当該選択した１の領域のみが割当領域に含まれる場合には、この割当領域を指示する言語表現によって発話するので、確実に選択した１の領域を指示することができる。
【００４０】
第１２の発明は、第１１の発明に従属し、領域包含判断手段によって、１の領域のみならず、他の領域も包含することが判断された場合に、自身の位置を当該１の領域に近づける第２現在位置更新手段をさらに備える。
【００４１】
第１２の発明では、コミュニケーションロボットは、第２現在位置更新手段（６０、Ｓ２５７、Ｓ２５９）をさらに備える。第２現在位置更新手段は、領域包含判断手段によって、１の領域のみならず、他の領域も包含することが判断された場合に（Ｓ２５７で“ＹＥＳ”）、自身の位置を当該１の領域に近づける。
【００４２】
第１２の発明においても、第１０の発明と同様に、たとえば、指差しの動作により領域を指示する場合、自身の位置を近づけることにより、当該領域のみを指差すように動作させることができる。
【発明の効果】
【００４３】
この発明によれば、障害物に接触しない円同士を結合するので、障害物で囲まれるような一定の範囲を１つの領域として抽出することができる。つまり、人間に伝達可能な領域に分割することができる。
【００４４】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００４５】
【図１】図１はこの発明の一実施例のコミュニケーションロボットの外観を正面から見た正面図である。
【図２】図２は図１に示すコミュニケーションロボットの電気的な構成を示すブロック図である。
【図３】図３は図１に示すコミュニケーションロボットに記憶されるオブジェクト地図情報データに従うオブジェクト地図情報を示す図解図である。
【図４】図４は図１に示すコミュニケーションロボットに記憶されるカメラ画像データに従うカメラ画像を示す図解図である。
【図５】図５はグリッドマップの例を示す図解図である。
【図６】図６は点と線の傾きとの組についての参照リストの例を示す図解図である。
【図７】図７は伸縮円を描画する枠の枠を決定する方法を説明するための図解図である。
【図８】図８は枠内の或る枠における伸縮円の描画方法を説明するための図解図である。
【図９】図９は或る直線に沿って中心を有する伸縮円を描画した場合の例およびそれによって生成されるバルーンを示す図解図である。
【図１０】図１０は図９に示す例から３０°傾けた直線に沿って中心を有する伸縮円を描画した場合の例およびそれによって生成されるバルーンを示す図解図である。
【図１１】図１１は分割された領域を示す図解図である。
【図１２】図１２はこの実施例の指示語切替モデルを示す図解図である。
【図１３】図１３は領域を参照したコミュニケーション行動を実行する際にコミュニケーションロボットを当該領域に近づけるか否かの判断方法を説明するための図解図である。
【図１４】図１４は図２に示すメモリのメモリマップの例を示す図解図である。
【図１５】図１５は相対言語テーブルの例を示す図解図である。
【図１６】図１６は図３に示したオブジェクト地図情報に含まれる固定オブジェクトに対応して設定される相対言語割り当て領域を示す図解図である。
【図１７】図１７は図２に示すＣＰＵの全体処理を示すフロー図である。
【図１８】図１８は図２に示すＣＰＵの領域分割処理の一部を示すフロー図である。
【図１９】図１９は図２に示すＣＰＵの領域分割処理の他の一部であって、図１８に後続するフロー図である。
【図２０】図２０は図２に示すＣＰＵの候補の集合取得処理を示すフロー図である。
【図２１】図２１は図２に示すＣＰＵのバルーン取得処理の第１の一部を示すフロー図である。
【図２２】図２２は図２に示すＣＰＵのバルーン取得処理の第２の一部であって、図２１に後続するフロー図である。
【図２３】図２３は図２に示すＣＰＵのバルーン取得処理の第３の一部であって、図２２に後続するフロー図である。
【図２４】図２４は図２に示すＣＰＵのバルーン取得処理の第４の一部であって、図２３に後続するフロー図である。
【図２５】図２５は図２に示すＣＰＵの領域選択処理の一部を示すフロー図である。
【図２６】図２６は図２に示すＣＰＵの領域選択処理の他の一部であって、図２５に後続するフロー図である。
【図２７】図２７は図２に示すＣＰＵの制御情報の決定処理の一部を示すフロー図である。
【図２８】図２８は図２に示すＣＰＵの制御情報の決定処理の他の一部であって、図２７に後続するフロー図である。
【発明を実施するための形態】
【００４６】
図１を参照して、この実施例のコミュニケーションロボット（以下、単に「ロボットという）１０は、相互作用指向のロボットであり、主として人間のようなコミュニケーションの対象（コミュニケーション対象）との間で、身振り手振りのようなジェスチャ（身体動作）および音声の少なくとも一方を含むコミュニケーション行動を実行する機能を備えている。ロボット１０は、受付や案内などの様々なサービスを提供し、たとえば或る会社やイベント会場（ショッピングモール、展示会場）などの様々な場所ないし状況（環境）に配置される。また、ロボット１０は、環境内で自走可能である。
【００４７】
なお、後で詳細に説明するように、この実施例では、ロボット１０は領域分割装置としても機能する。
【００４８】
図１は、この実施例のロボット１０の外観を示す正面図である。ロボット１０は台車１８を含み、台車１８の下面にはロボット１０を自律移動させる２つの車輪２０および１つの従輪２２が設けられる。２つの車輪２０は車輪モータ２４（図３参照）によってそれぞれ独立に駆動され、台車１８すなわちロボット１０を前後左右の任意方向に動かすことができる。また、従輪２２は車輪２０を補助する補助輪である。したがって、ロボット１０は、配置された空間内を自律制御によって移動可能である。
【００４９】
台車１８の上には、円柱形のセンサ取り付けパネル２６が設けられ、このセンサ取り付けパネル２６には、多数の距離センサ２８が取り付けられる。これらの距離センサ２８は、センサ取り付けパネル２６すなわちロボット１０の周囲の物体（人間や障害物など）との距離を測定するものである。
【００５０】
センサ取り付けパネル２６の上には、胴体３０が直立するように設けられる。また、胴体３０の前方中央上部（人の胸に相当する位置）には、上述したがさらに設けられ、ロボット１０の前方の主として人間との距離を計測する。また、胴体３０には、その側面側上端部のほぼ中央から伸びる支柱３２が設けられ、支柱３２の上には、全方位カメラ３４が設けられる。全方位カメラ３４は、ロボット１０の周囲を撮影するものであり、後述する眼カメラ５８とは区別される。この全方位カメラ３４としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。なお、これら距離センサ２８および全方位カメラ３４の設置位置は、当該部位に限定されず適宜変更され得る。
【００５１】
胴体３０の両側面上端部（人の肩に相当する位置）には、それぞれ、肩関節３６Ｒおよび肩関節３６Ｌによって、上腕３８Ｒおよび上腕３８Ｌが設けられる。図示は省略するが、肩関節３６Ｒおよび肩関節３６Ｌは、それぞれ、直交する３軸の自由度を有する。すなわち、肩関節３６Ｒは、直交する３軸のそれぞれの軸廻りにおいて上腕３８Ｒの角度を制御できる。肩関節３６Ｒの或る軸（ヨー軸）は、上腕３８Ｒの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節３６Ｌは、直交する３軸のそれぞれの軸廻りにおいて上腕３８Ｌの角度を制御できる。肩関節３６Ｌの或る軸（ヨー軸）は、上腕３８Ｌの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。
【００５２】
また、上腕３８Ｒおよび上腕３８Ｌのそれぞれの先端には、肘関節４０Ｒおよび肘関節４０Ｌが設けられる。図示は省略するが、肘関節４０Ｒおよび肘関節４０Ｌは、それぞれ１軸の自由度を有し、この軸（ピッチ軸）の軸回りにおいて前腕４２Ｒおよび前腕４２Ｌの角度を制御できる。
【００５３】
前腕４２Ｒおよび前腕４２Ｌのそれぞれの先端には、人の手に相当する球体４４Ｒおよび球体４４Ｌがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車１８の前面，肩関節３６Ｒと肩関節３６Ｌとを含む肩に相当する部位，上腕３８Ｒ，上腕３８Ｌ，前腕４２Ｒ，前腕４２Ｌ，球体４４Ｒおよび球体４４Ｌには、それぞれ、接触センサ（図３で包括的に示す）４６が設けられる。台車１８の前面の接触センサ４６は、台車１８への人間や障害物の接触を検知する。したがって、ロボット１０は、その自身の移動中に人間や障害物との接触が有ると、それを検知し、直ちに車輪２０の駆動を停止してロボット１０の移動を急停止させることができる。また、その他の接触センサ４６は、当該各部位に触れたかどうかを検知する。なお、接触センサ４６の設置位置は、当該部位に限定されず、適宜な位置（人の胸，腹，脇，背中および腰に相当する位置）に設けられてもよい。
【００５４】
胴体３０の中央上部（人の首に相当する位置）には首関節４８が設けられ、さらにその上には頭部５０が設けられる。図示は省略するが、首関節４８は、３軸の自由度を有し、３軸の各軸廻りに角度制御可能である。或る軸（ヨー軸）はロボット１０の真上（鉛直上向き）に向かう軸であり、他の２軸（ピッチ軸、ロール軸）は、それぞれ、それと異なる方向で直交する軸である。
【００５５】
頭部５０には、人の口に相当する位置に、スピーカ５２が設けられる。スピーカ５２は、ロボット１０が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク５４Ｒおよびマイク５４Ｌが設けられる。以下、右のマイク５４Ｒと左のマイク５４Ｌとをまとめてマイク５４ということがある。マイク５４は、周囲の音、とりわけコミュニケーションを実行する対象である人間の声を取り込む。さらに、人の目に相当する位置には、眼球部５６Ｒおよび眼球部５６Ｌが設けられる。眼球部５６Ｒおよび眼球部５６Ｌは、それぞれ眼カメラ５８Ｒおよび眼カメラ５８Ｌを含む。以下、右の眼球部５６Ｒと左の眼球部５６Ｌとをまとめて眼球部５６ということがある。また、右の眼カメラ５８Ｒと左の眼カメラ５８Ｌとをまとめて眼カメラ５８ということがある。
【００５６】
眼カメラ５８は、ロボット１０に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ５８は、上述した全方位カメラ３４と同様のカメラを用いることができる。たとえば、眼カメラ５８は、眼球部５６内に固定され、眼球部５６は、眼球支持部（図示せず）を介して頭部５０内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、２軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この２軸の一方は、頭部５０の上に向かう方向の軸（ヨー軸）であり、他方は、一方の軸に直交しかつ頭部５０の正面側（顔）が向く方向に直行する方向の軸（ピッチ軸）である。眼球支持部がこの２軸の各軸廻りに回転されることによって、眼球部５６ないし眼カメラ５８の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ５２，マイク５４および眼カメラ５８の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【００５７】
このように、この実施例のロボット１０は、車輪２０の独立２軸駆動，肩関節３６の３自由度（左右で６自由度），肘関節４０の１自由度（左右で２自由度），首関節４８の３自由度および眼球支持部の２自由度（左右で４自由度）の合計１７自由度を有する。
【００５８】
図２はロボット１０の電気的な構成を示すブロック図である。この図２を参照して、ロボット１０は、ＣＰＵ６０を含む。ＣＰＵ６０は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス６２を介して、メモリ６４，モータ制御ボード６６，センサ入力／出力ボード６８および音声入力／出力ボード７０に接続される。
【００５９】
メモリ６４は、図示は省略をするが、ＲＯＭ，ＨＤＤおよびＲＡＭを含む。ＲＯＭおよびＨＤＤには、ロボット１０の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力（センサ情報）を検知するための検知プログラム、および外部コンピュータとの間で必要なデータやコマンド（メッセージ）を送受信するための通信プログラムなどが記録される。また、ＲＡＭは、ワークメモリやバッファメモリとして用いられる。
【００６０】
モータ制御ボード６６は、たとえばＤＳＰで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、右眼球部５６Ｒの２軸のそれぞれの角度を制御する２つのモータ（図２では、まとめて「右眼球モータ７２」と示す）の回転角度を制御する。同様にして、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、左眼球部５６Ｌの２軸のそれぞれの角度を制御する２つのモータ（図２では、まとめて「左眼球モータ７４」と示す）の回転角度を制御する。
【００６１】
また、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、右肩関節３６Ｒの直交する３軸のそれぞれの角度を制御する３つのモータと右肘関節４０Ｒの角度を制御する１つのモータとの計４つのモータ（図２では、まとめて「右腕モータ７６」と示す）の回転角度を制御する。同様にして、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、左肩関節３６Ｌの直交する３軸のそれぞれの角度を制御する３つのモータと左肘関節４０Ｌの角度を制御する１つのモータとの計４つのモータ（図２では、まとめて「左腕モータ７８」と示す）の回転角度を制御する。
【００６２】
さらに、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、首関節４８の直交する３軸のそれぞれの角度を制御する３つのモータ（図２では、まとめて「頭部モータ８０」と示す）の回転角度を制御する。そして、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、車輪２０を駆動する２つのモータ（図２では、まとめて「車輪モータ２４」と示す）の回転角度を制御する。なお、この実施例では、車輪モータ２４を除くモータは、制御を簡素化するためにステッピングモータ（すなわち、パルスモータ）を用いる。ただし、車輪モータ２４と同様に直流モータを用いるようにしてもよい。また、ロボット１０の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更された、たとえば、他の実施例では、エアアクチュエータが適用されてもよい。
【００６３】
センサ入力／出力ボード６８もまた、同様に、ＤＳＰで構成され、各センサからの信号を取り込んでＣＰＵ６０に与える。すなわち、距離センサ２８のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード６８を通じてＣＰＵ６０に入力される。距離センサ２８としては、赤外線距離センサまたはレーザ距離センサを用いることができ、それら両方を用いるようにしてもよい。また、全方位カメラ３４からの映像信号が、必要に応じてセンサ入力／出力ボード６８で所定の処理を施してからＣＰＵ６０に入力される。眼カメラ５８からの映像信号も、同様にして、ＣＰＵ６０に入力される。また、上述した複数の接触センサ（図３では、まとめて「接触センサ４６」と示す）からの信号がセンサ入力／出力ボード６８を介してＣＰＵ６０に与えられる。
【００６４】
音声入力／出力ボード７０もまた、同様に、ＤＳＰで構成され、ＣＰＵ６０から与えられる音声合成データに従った音声または声がスピーカ５２から出力される。また、マイク５４からの音声入力が、音声入力／出力ボード７０を介してＣＰＵ６０に与えられる。
【００６５】
また、ＣＰＵ６０は、バス６２を介して通信ＬＡＮボード８２に接続される。通信ＬＡＮボード８２は、ＤＳＰで構成され、ＣＰＵ６０から与えられた送信データを無線通信装置８４に与え、無線通信装置８４から送信データを、ネットワーク１００を介して外部コンピュータ（記憶制御装置１０２など）に送信する。また、通信ＬＡＮボード８２は、無線通信装置８４を介してデータを受信し、受信したデータをＣＰＵ６０に与える。つまり、ロボット１０は、通信ＬＡＮボード８２および無線通信装置８４によって、記憶制御装置１０２と無線通信を行うことができる。
【００６６】
さらに、ＣＰＵ６０は、バス６２を介して無線タグ読取装置８６が接続される。無線タグ読取装置８６は、アンテナ（図示せず）を介して、無線タグ（ＲＦＩＤタグ）から送信される識別情報の重畳された電波を受信する。そして、無線タグ読取装置８６は、受信した電波信号を増幅し、当該電波信号から識別信号を分離し、当該識別情報を復調（デコード）してＣＰＵ６０に与える。無線タグは、会社やイベント会場などに居る人間に装着されており、無線タグ読取装置８６は、通信可能範囲内の無線タグを検出する。なお、無線タグは、アクティブ型であってもよいし、無線タグ読み取り装置８６から送信される電波に応じて駆動されるパッシブ型であってもよい。
【００６７】
このようなロボット１０は、上述したように、或る環境に配置され、当該環境内において受付や案内などのサービスを提供する。この実施例では、そのようなサービスの提供のうち、或る環境において、その一部の領域を参照しながら、コミュニケーション対象としての人間との間でコミュニケーション行動を実行する場合について説明する。
【００６８】
たとえば、人間同士のコミュニケーションを考えた場合、荷物の置き場所を聞かれると、聞かれた人間（案内人）は、その荷物を置くことができる領域を探し、指差しながら、ここ（そこ、あそこ）やこの辺（その辺、あの辺）などと発話して、荷物の置き場所（領域）を聞き手に伝える。ただし、壁、柱、机、椅子のように環境内に存在する物（オブジェクト）を参照して、たとえば、「机の横」、「柱の前」などのように、指示語に代えて、特定のオブジェクトに対応して決まる表現の言語（以下、「相対言語」ということがある）を発話することもある。
【００６９】
この実施例では、ロボット１０に、上記の案内人と同様のコミュニケーション行動を実行させるのである。つまり、或る環境（空間）において、領域を抽出（分割）し、人間からの質問（リクエスト）に対して、適切な領域を選択し、選択した領域をコミュニケーション行動によって伝達するのである。この際、適切な身体動作および発話内容も選択されるのである。
【００７０】
以下、領域を抽出（分割）する方法、領域を選択する方法および領域を参照したコミュニケーション行動の実行について順次説明することにする。
【００７１】
まず、領域を抽出（分割）する場合には、その元となるグリッドマップが生成される。グリッドマップは、オブジェクト地図情報、カメラ画像および距離情報に基づいて生成される。
【００７２】
オブジェクト地図情報は、環境を俯瞰的に真上から見た２次元の地図（見取り図）であり、当該環境に固定的に配置されるオブジェクト（固定オブジェクト）がその形状（大きさ）で記載される。図３では省略するが、オブジェクト地図情報では、各固定オブジェクトの配置位置は２次元座標で管理されている。たとえば、２次元座標の原点Ｏは、図３に示す環境を規定する四角枠の左下の頂点に設定される。ただし、２次元座標系では、図３の横方向がＸ軸方向であり、図３の縦方向がＹ軸方向である。また、図３の右方向がＸ軸のプラス方向であり、図３の上方向がＹ軸のプラス方向である。
【００７３】
なお、この実施例では、固定オブジェクトとしては、壁、柱、花壇、カウンタ、書庫などが該当する。つまり、移動できないオブジェクトや滅多に移動することがないオブジェクトが、固定オブジェクトに該当する。
【００７４】
図４には、カメラ画像の一例が示される。たとえば、カメラ画像は、ロボット１０が配置される環境を、当該ロボット１０の眼カメラ５８で撮影した画像である。ロボット１０は、環境内でオブジェクト地図情報に設定された座標系と同じ座標系で自身の位置（現在位置）を管理しており、眼カメラ５８で画像を撮影した場合には、撮影した画像を撮影した位置に対応付けてメモリ６４に記憶する。
【００７５】
この図４に示すカメラ画像から分かるように、図３に示した固定オブジェクトに加えて、環境内には、テーブルおよび椅子のような、移動可能なオブジェクト（以下、「可動オブジェクト」という）も配置される。このような可動オブジェクトは、比較的高い頻度で移動されることがあると考えられるため、オブジェクト地図情報には登録されず、必要に応じて、後述するように、カメラ画像および距離情報から検出される。
【００７６】
なお、この実施例では、可動オブジェクトとしては、机、テーブル、椅子、ソファーなどが該当する。
【００７７】
距離情報は、ロボット１０が環境内を移動することにより、或る位置（ＸＹ座標）において距離センサ２８によって距離が検出されたとき、当該位置に対応づけて、当該距離とその方向（角度）とを含む距離に関する情報（データ）である。このような距離情報によって、何らかの物体（オブジェクト）が存在することとその位置とを知ることができる。
【００７８】
ここで、カメラ画像と距離情報とから可動オブジェクトを検出する方法について説明する。この実施例では、可動オブジェクトの検出には、画像処理のエッジ検出と、セグメンテーションとが用いられる。エッジ検出には、Ｃａｎｎｙのエッジ検出法(J.Canny. A computational approach to edge detection. IEEE Trans. on Pattern Analysis and Machine Intelligence, Vol.8, No.6, 11 1986.)が用いられる。また、セグメンテーションには、オブジェクトの境界を検出する距離センサ２８からの情報と、つながった領域として抽出されたオブジェクトの領域の情報とが用いられる。この実施例では、つながった領域は、同じ色を有していることが検出される塊（領域）であり、このような領域について距離情報から何らかのオブジェクトが有ることが判断された場合に、オブジェクト（可動オブジェクト）が有ることを認識する。つまり、カメラ画像から同じ色を有する平面的な一定の領域を検出し、距離情報を参照して、その一定の領域の位置において距離が検出されている場合には、その一定の領域は高さを有していることが分かり、したがって、オブジェクトが有ると判断することができる。
【００７９】
ただし、カメラ画像には、上述した固定オブジェクトも含まれるため、当然のことならが、エッジ検出およびセグメンテーションによって、この固定オブジェクトも検出される。
【００８０】
また、図４に示すカメラ画像から分かるように、床面には、タイルなどの継ぎ目による線（床の模様）が入っている。このような床の模様についてもカメラ画像に基づいて取得（検出）される。これは、人間が領域を参照する場合に、模様によって領域を区別することが有るからである。この実施例では、床の模様の抽出には、ＯｐｅｎＣＶ(OpenCV1.0. http://opencv.willowgarage.com/wiki/.)が用いられる。また、ノイズ除去のためにガウシアンフィルタを用い、床の模様を抽出するために、上述したＣａｎｎｙのエッジ検出法が用いられる。
【００８１】
なお、この実施例では、環境として或る屋内を想定してあるため、床面の模様を検出するようにしてあるが、環境が屋外である場合には、地面（またはコンクリートや道路）の模様が検出される。ただし、屋外であっても、アーケード街などでは、床面と同様に、タイルが敷き詰められている場合もある。
【００８２】
ただし、カメラ画像に基づいて得られた可動オブジェクトおよび床の模様は、３次元の現実空間を眼カメラ５８によって斜め上方から見た場合の画像において検出されるため、その画像がオブジェクト地図情報と同様に、現実空間を真上から俯瞰的に見た２次元の画像（情報）に変換される。ただし、可動オブジェクトおよび床の模様が検出されたカメラ画像を２次元の画像に変換するとき、眼カメラ５８のキャリブレーションを行う過程で作成した変換行列が用いられる。したがって、撮影時の眼カメラ５８の角度やレンズの中心のぶれによって、カメラ画像に歪み（画像の端の付近の歪み）が生じている場合であっても、正しく２次元の情報に変換される。
【００８３】
そして、たとえば、オブジェクト地図情報に、検出された可動オブジェクトおよび床の模様を登録し、それを格子状に細分化することにより、グリッドマップが生成される。
【００８４】
このようにして生成されたグリッドマップを用いて、複数の領域（領域群）が抽出（分割）される。図５（Ａ）には、グリッドマップの一例が示されるが、簡単のため、固定オブジェクト、可動オブジェクトおよび床の模様（以下、これらをまとめて「障害物」ということがある）は省略してある。
【００８５】
なお、この実施例では、グリッドに含まれる各桝目（枠）は一辺が現実空間における２０ｃｍの長さに相当する大きさに設定されている。したがって、グリッドマップの縮尺に応じて各枠の大きさも変化される。
【００８６】
また、各枠には、図５（Ｂ）に示すように、識別情報（インデックス番号）が付されており、インデックス番号に従う順番で、各枠を基準とするバルーン（領域）の生成が実行される。バルーン（領域）の生成方法については、これ以降で詳細に説明する。
【００８７】
この実施例では、グリッドマップが生成されると、このグリッドマップに対応して、図６に示すような参照リストが作成される。この参照リストは、バルーンを生成する際の元になる円（以下、「伸縮円」という）Ｃ（ｇ）を描画する際に、参照されるリストである。図６に示すように、参照リストでは、各枠のインデックス番号に対応して、当該枠の中心の座標（点ｇ）と直線Ｐの傾きｄとの組が記述される。図６からも分かるように、１つの枠（点ｇ）に対して、０°から３０°ずつ傾きが異なる直線Ｐが設定される。この実施例では、傾きｄは、０°から３３０°まで、３０°単位で設定される。この実施例では、インデックス番号および傾きの角度の両方が小さい順に、点ｇと傾きｄの組が参照される。
【００８８】
なお、傾きｄは、もっと細かく設定してもよいが、計算が膨大になってしまう。また、オブジェクトが整然と並んでいるような環境では、傾きｄをもっと大雑把に設定してもよいと考えられる。
【００８９】
たとえば、図７（Ａ）に示すように、グリッドの或る枠の点ｇに傾きｄが０°の直線Ｐが設定されている場合には、まず、当該点ｇを中心とする伸縮円Ｃ（ｇ）が描画される。ただし、伸縮円Ｃ（ｇ）が描画された当初では、その半径は０であり、その状態から一段階ずつ半径が長くされる。この実施例では、一段階に相当する長さは、１つの枠の一辺の長さの半分である。したがって、最初に描画される伸縮円Ｃ（ｇ）は、図８（Ａ）に示すように、当該点ｇを中心とする枠に内接する円となる。図８（Ａ）に示す場合において、さらに一段階半径が大きくされると、図８（Ｂ）のように示される。このようにして、伸縮円Ｃ（ｇ）が拡大される。
【００９０】
この実施例では、伸縮円Ｃ（ｇ）の半径は、グリッドマップにおける障害物（固定オブジェクト、可動オブジェクトおよび床の模様）に接触（衝突）するまで、一段階ずつ長くされる。そして、伸縮円Ｃ（ｇ）が障害物に衝突すると、この伸縮円Ｃ（ｇ）の半径は、衝突する直前の（一段階手前）の長さに戻される。同様にして、傾きｄの直線Ｐに沿って、当該直線Ｐが通るすべての枠（点ｇ）のそれぞれについて、その点ｇを中心とする伸縮円Ｃ（ｇ）が描画されるのである。図７（Ａ）に示した例では、斜線を付した枠に対して伸縮円Ｃ（ｇ）が描画されるのである。
【００９１】
また、この実施例では、１つの伸縮円Ｃ（ｇ）を描画すると、次に、その枠（点ｇ）に隣接し、直線Ｐが通る枠（点ｇ）について伸縮円Ｃ（ｇ）が描画され、拡大される。たとえば、参照リストが示す組の枠（点ｇ）を基準として、基本的に右方向（Ｘ軸のプラス方向）に隣接し、直線Ｐが通る枠（点ｇ）に順次伸縮円Ｃ（ｇ）を描画する。そして、右方方向への伸縮円Ｃ（ｇ）の描画を終えると、参照リストが示す組の枠（点ｇ）を基準として、基本的に左の方向（Ｙ軸のマイナス方向）に隣接し、直線Ｐが通る枠（点ｇ）に順次伸縮円Ｃ（ｇ）を描画する。
【００９２】
したがって、図７（Ａ）に示す場合には、点ｇが記載された枠について伸縮円Ｃ（ｇ）を描画すると、次にその右隣の枠について伸縮円Ｃ（ｇ）を描画し、これを繰り返す。右方向への伸縮円Ｃ（ｇ）の描画を終えると、点ｇが記載された枠の左隣の枠について伸縮円Ｃ（ｇ）を描画し、次にその左隣の枠について伸縮円Ｃ（ｇ）を描画する。
【００９３】
図７（Ｂ）は、図７（Ａ）に示した点ｇに対して傾きｄ＝３０°の直線Ｐを設定した場合の例である。この場合にも、直線Ｐが通る全ての枠について伸縮円Ｃ（ｇ）が描画される。つまり、斜線を付したすべての枠に対して伸縮円Ｃが描画されるのである。ただし、図７（Ｂ）に示す場合には、まず、点ｇが記載された枠について伸縮円Ｃ（ｇ）が描画されると、次にその右隣の枠に伸縮円Ｃ（ｇ）が描画され、さらにその上側に隣接する枠に伸縮円Ｃ（ｇ）が描画される。上述したように、基本的に右方向に隣接すると言うのは、図８（Ｂ）に示すように、上方向に隣接したり、後述するように、下方向に隣接したりする場合があるためである。右方向への伸縮円Ｃ（ｇ）の描画を終えると、点ｇが記載された枠の左隣の枠に伸縮円Ｃ（ｇ）が描画され、さらにその下側に隣接する枠に伸縮枠Ｃ（ｇ）が描画される。
【００９４】
この実施例では、直線Ｐが通るすべての枠について伸縮円Ｃ（ｇ）を描画したり、隣接する枠の点ｇが障害物上であったり、隣接する枠に描画された２つの伸縮円Ｃ（ｇ）の半径が大きく異なったりする場合には、参照リストが示す現在の組における伸縮円Ｃ（ｇ）の描画を終了する。このように、直線Ｐが通るすべての枠について伸縮円Ｃ（ｇ）を描画した場合や隣接する枠の点ｇが障害物上である場合のみならず、隣接する枠に描画された２つの伸縮円Ｃ（ｇ）の半径が大きく異なった場合についても、伸縮円Ｃ（ｇ）の描画を終了するのは、このような場合には、障害物等によって領域が分割されていると考えられ、１つの領域として抽出するのは適切でないからである。
【００９５】
参照リストが示す現在の組についての伸縮円Ｃ（ｇ）の描画を終了すると、今回の組について描画されたすべての伸縮円Ｃ（ｇ）が結合される。この実施例では、今回の組について描画されたすべての伸縮円Ｃ（ｇ）に含まれるすべての枠が塗り潰され、塗り潰されたすべての枠の塊によって、１つの領域（バルーン）Ｐ（Ｃ（ｇ），ｄ）が生成される。
【００９６】
このように、着目する（インデックス番号が示す）枠の点ｇと直線Ｐの傾きｄとの組において、伸縮円Ｃ（ｇ）の描画を終了し、バルーンＰ（Ｃ（ｇ），ｄ）が生成されると、次の組についての伸縮円Ｃ（ｇ）の描画が開始される。つまり、直線Ｐの傾きｄが３０°回転される。ただし、直前の組の直線Ｐの傾きｄが３３０°であった場合には、次のインデックス番号が示す枠の点ｇについての最初の組（ｄ＝０°の直線Ｐ）についてバルーンＰ（Ｃ（ｇ），ｄ）の生成処理が実行される。
【００９７】
ただし、図６では省略したが、１つの組についてのバルーンＰ（Ｃ（ｇ），ｄ）の生成処理を終了すると、当該組に対応する参照リストの欄にチェックが付される。つまり、当該組について、バルーンＰ（Ｃ（ｇ），ｄ）の生成処理を終了したことが登録される。
【００９８】
図９および図１０には、環境に４つの障害物が存在する場合において、或る枠（図示せず）に着目して、伸縮円Ｃ（ｇ）を描画および拡大した結果の例を示す図解図である。図９（Ａ）および図９（Ｂ）では、直線Ｐの傾きｄが０°の場合について示し、図１０（Ａ）および図１０（Ｂ）では、直線Ｐの傾きｄが３０°の場合について示す。ただし、図９および図１０では、分かり易く示すために、代表的な伸縮円Ｃ（ｇ）のみを示してあるが、実際には、さらに多数の伸縮円Ｃ（ｇ）が描画される。
【００９９】
図９（Ａ）では、直線Ｐの傾きｄは０°であり、直線Ｐの上下に配置される２つの障害物が斜めとなっているため、直線Ｐの両端に向かうに従って伸縮円Ｃ（ｇ）が小さくなっている。したがって、図９（Ｂ）に示すように、４つの障害物で囲まれる空間（領域）の形状とは異なり、ひし形に近い形状のバルーンＰ（Ｃ（ｇ），ｄ）が生成される。
【０１００】
一方、図１０（Ａ）では、直線Ｐの傾きｄは３０°であり、これと平行するように、直線Ｐの上下に２つの障害物が配置されるため、それらの２つの障害物が配置される間隔と同じ或いはほぼ同じ直径を有する伸縮円Ｃ（ｇ）が直線Ｐに沿って描画される。したがって、図１０（Ｂ）に示すように、４つの障害物で囲まれる領域と一致ないしほぼ一致するように、バルーンＰ（Ｃ（ｇ），ｄ）が生成される。
【０１０１】
このようなバルーンＰ（Ｃ（ｇ），ｄ）は、参照リストの組毎に抽出されるが、抽出されたすべてのバルーンＰ（Ｃ（ｇ），ｄ）から、所定のルールに従って、１のバルーンＰ（Ｃ（ｇ），ｄ）が選択され、分割される領域の候補としての集合（候補の集合）Ｒｅｇｉｏｎｓ−ｐａｒｔに登録（追加）される。ここで、１のバルーンＰ（Ｃ（ｇ），ｄ）を選択する方法について説明する。
【０１０２】
一般的に、話し手の近い位置に在る領域は、遠くに在る領域よりも正確に認識されると言える。この知見を表現するために、エネルギの概念を用いることにする。簡単に言うと、近くに在る小さい領域は、遠くにある大きい領域と同程度のエネルギを持つようにする。ロボット１０の現在位置と枠（点ｇ）との距離をｄ（ｇ）とすると、当該枠のエネルギＥ（ｇ）は数１のように表すことができる。
【０１０３】
[数１]
Ｅ（ｇ）＝１／ｄ（ｇ）２
抽出されたバルーンＰ（Ｃ（ｇ），ｄ）毎に、バルーンＰ（Ｃ（ｇ），ｄ）に含まれるすべての枠についてのエネルギＥ（ｇ）を算出し、その総和も求める。そして、エネルギＥ（ｇ）の総和が最大となる１のバルーンＰ（Ｃ（ｇ），ｄ）が選択され、候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔに登録（追加）される。
【０１０４】
１のバルーンＰ（Ｃ（ｇ），ｄ）が候補の集合Ｒｅｇｉｏｎ−ｐａｒｔに登録されると、当該バルーンＰ（Ｃ（ｇ），ｄ）に含まれる枠を除いた残りの枠について、図６に示したような参照リストが作成され、新しく作成された参照リストに従って伸縮円Ｃ（ｇ）の描画処理（バルーンＰ（Ｃ（ｇ），ｄ）の生成処理）が実行される。そして、バルーンＰ（Ｃ（ｇ），ｄ）毎に、エネルギＥ（ｇ）の総和が求められ、その総和が最大となるバルーンＰ（Ｃ（ｇ），ｄ）が候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔに登録（追加）される。このような処理が繰り返し実行される。そして、領域の候補としてのバルーンＰ（Ｃ（ｇ），ｄ）を生成することができなくなると、候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔの生成処理を終了する。この実施例では、グリッドマップに存在する枠の総数の９０％に相当する数を超える枠が、バルーンＰ（Ｃ（ｇ），ｄ）を抽出（生成）する対象から除外された場合に、候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔの生成を終了する。これは、領域として抽出できる枠がほとんど残っていないと考えられるからである。その結果として、無駄な処理の実行を回避することができる。
【０１０５】
このような候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔの生成処理は、カメラ画像からエッジ検出する際のパラメータＥＳを０以上１以下の間で可変的に設定する毎に実行される。ただし、この実施例では、パラメータＥＳは、０から０．３、０．６、０．９、１．０に順次設定される。パラメータＥＳが０に設定された場合には、床の模様が無い場合のグリッドマップが生成される。また、パラメータＥＳが大きくなるにつれて、床の模様がはっきりと現れる。
【０１０６】
また、パラメータＥＳが０である場合に生成された候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔを親階層とし、パラメータＥＳが増加された場合に、生成された候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔに含まれる領域（バルーンＰ（Ｃ（ｇ），ｄ））のうち、親階層の候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔに含まれる領域（バルーンＰ（Ｃ（ｇ），ｄ））を子階層の領域として登録する。ただし、親階層の領域に含まれる子階層の領域が当該親階層の領域の８０％以上の範囲を占める場合には、実質的に同じ領域であると判断して、子階層の領域から除去する。このようにして、木構造Ｔｒｅｅに配列された領域が、分割された領域の集合Ｒｅｇｉｏｎｓとして抽出される。図１１には、図４に示したカメラ画像を撮影した環境において、分割された領域Ｒ１−Ｒ７の例を示す。図１１に示すように、領域Ｒ１は、Ｒ２−Ｒ４を含む。これは、領域Ｒ１が親階層であり、領域Ｒ２−Ｒ４がその子階層であることを示す。このように、親階層の領域Ｒ１の中に子階層Ｒ２−Ｒ４が現れるのは、パラメータＥＳを大きくすることにより、床の模様が現れ、それによって伸縮円Ｃ（ｇ）を描画する範囲が狭くなるためである。ただし、図１１に示すように、環境におけるロボット１０の位置は領域Ｒ１およびＲ２の少し下側である。
【０１０７】
分割された領域の集合Ｒｅｇｉｏｎｓから、人間からの質問（リクエスト）に応じた１つの領域Ｒが選択される。たとえば、人間から荷物を置く場所を質問された場合には、分割された領域の集合Ｒｅｇｉｏｎｓに含まれる複数の領域から当該荷物の底面積以上の面積を有する領域を、候補の領域Ｒ＿Ｃａｎｄとして抽出し、抽出した候補のうちから所定の条件を満たす１の領域Ｒを選択する。この実施例では、所定の条件は、ロボット１０（特定の位置）との距離が最短距離であることである。ただし、所定の条件は、質問した人間との距離が最短距離であることでもよい。
【０１０８】
領域Ｒを選択すると、リクエストした人間に対してその領域Ｒを伝達する場合のロボット１０のジェスチャ（身体動作）、発話内容および位置（ジェスチャや発話を実行する場合のロボット１０の位置）が決定される。つまり、領域Ｒを参照したコミュニケーション行動を行うロボット１０の制御情報が決定される。
【０１０９】
たとえば、領域Ｒを参照したコミュニケーション行動をロボット１０に実行させるために、人間が領域Ｒを参照する際に、どのようなジェスチャを用い、どのような指示語を用い、どのように領域Ｒを認識するのかを実験によって導き出した。
【０１１０】
実験には、１０名の被験者（２０代、３０代の男性４人と女性６人）が参加した。また、実験では、被験者に、或る建物内の５箇所において、実験者から１ｍ離れて立つように指示した。その際、被験者と実験者とは同じ方向を向いた。各場所においては、必要とする領域のサイズが異なると考えられる６つのタスク（ロボット１０に対するリクエストに相当する）を用意した。タスクＴ１は、「かばんを置く」である。タスクＴ２は、「人を立って待つ」である。タスクＴ３は、「立ち話をする」である。タスクＴ４は、「２０個ほどの引っ越しの荷物を置く」である。タスクＴ５は、「次々に来る幼稚園児を誘導し待機させておく」である。タスクＴ６は、「ラジコン自動車を走らせる」である。まず、各タスクを実行できると考えられる領域を思い浮かべ、その後に、実験者に領域を伝えるよう、各被験者に指示された。
【０１１１】
ただし、この実施例では、領域を参照する際の指示語モデルを構築するために、発話内容を「ここ」、「そこ」、「あそこ」、「この辺」、「その辺」、「あの辺」の６つから選択するように制限した。また、各被験者には、ジェスチャも使用するよう指示された。
【０１１２】
このような実験の結果では、領域を参照する場合、腕と人差し指を領域に向けて伸ばし、一時的にその状態を保つ身体動作（説明の都合上、「第１動作」という）と、腕と人差し指を領域に向けて伸ばした後に、領域を指示するように、人差し指で円を描く身体動作（説明の都合上、「第２動作」という）とが大多数を占めた。また、第１動作の回数と第２動作の回数との割合を調べたところ、第２動作によって領域を参照するケースが８割を超えていた。したがって、この実施例では、領域を参照する際には、ロボット１０に第２動作を実行させることにする。ただし、ロボット１０は、指に相当する部位を有していないため、球状に形成された手の全体によって領域を指示するものとする。
【０１１３】
また、領域を第２動作によって参照する場合には、領域の大きさによって、人差し指で描く円の大きさが異なることも、上記の実験の結果に基づいて導き出された。具体的には、実験において、被験者が第２動作で参照し、写真上に描いた領域のピクセル数を数えた。その結果、ピクセル数が０よりも多く５０以下である場合には、つまり被験者からの見た目の領域の大きさが小さい場合には、小さな円を描く。また、ピクセル数が５０よりも多く４００以下である場合には、つまり被験者からの見た目の領域の大きさが中程度である場合には、中程度の大きさの円を描く。さらに、ピクセル数が４００よりも多い場合には、つまり被験者からの見た目の領域の大きさが大きい場合には、大きい円を描く。
【０１１４】
指示語については、領域の面積が１．７ｍ２よりも大きい場合には、被験者は「辺」の付いた指示語（「この辺」、「その辺」、「あの辺」）を使用する頻度が高い。また、領域の面積が１．７ｍ２以下である場合には、被験者は「辺」の付いていない指示語（「ここ」、「そこ」、「あそこ」）を使用する頻度が高い。したがって、ロボット１０に指示語を発話させる場合には、参照する領域の大きさに応じて「辺」を付けるか否かを判別することができる。
【０１１５】
また、「こ」、「そ」、「あ」の使い分け（指示語切替）については、上述の実験の結果と、本件の出願人が先に出願し既に公開された特開２００６−２３１４９７号（参考文献）に開示された指示語決定モデルおよび指示語決定方法とに従って決定される。この実施例の指示語切替モデルは、図１２に示される。ただし、この実施例では、領域を参照するため、参照する領域のうち、ロボット１０（話し手）に最も近い点（以下、「領域の最近点」という）を、上記の参考文献におけるオブジェクトに置き換えて考えてある。
【０１１６】
具体的には、領域の最近点が聞き手（リクエストした人間）よりも話し手（ロボット１０）に近い場合には、次のように、「こ（ここ、この辺）」、「そ（そこ、その辺）」、「あ（あそこ、あの辺）」が決定される。パラメータｄＳＯがパラメータｆＫＳ（ｄＳＬ，θＳＯ，θＬＯ）以下である場合には、「ここ」または「この辺」に決定される。パラメータｄＳＯがパラメータｆＳＡ（ｄＳＬ，θＳＯ，θＬＯ）以下である場合には、「そこ」または「その辺」に決定される。パラメータｄＳＯがパラメータｆＳＡ（ｄＳＬ，θＳＯ，θＬＯ）以上である場合には、「あそこ」または「あの辺」に決定される。
【０１１７】
また、領域の最近点が話し手よりも聞き手に近い場合には、次のように、「そ」、「あ」が決定される。パラメータｄＬＯがパラメータｆＳＡ（ｄＳＬ，θＳＯ，θＬＯ）以下である場合には、「そこ」または「その辺」に決定される。また、パラメータｄＬＯがパラメータｆＳＡ（ｄＳＬ，θＳＯ，θＬＯ）以上である場合には、「あそこ」または「あの辺」に決定される。
【０１１８】
ただし、パラメータｄＳＯは、話し手から領域の最近点までの距離である。パラメータｄＬＯは、聞き手から領域の最近点までの距離である。パラメータｆＫＳは、「こ」と「そ」の境界曲線である。また、パラメータｆＳＡは、「そ」と「あ」の境界曲線である。パラメータｄＳＬは、話し手と聞き手との距離である。パラメータθＳＯは、話し手と聞き手とを結ぶ線分と、話し手と最近点とを結ぶ線分とがなす角度である。そして、パラメータθＬＯは、話し手と聞き手とを結ぶ線分と、聞き手と最近点とを結ぶ線分とがなす角度である。
【０１１９】
したがって、指示語は、参照する領域の大きさによって、「辺」付きかどうかを決定し、図１２に示すような指示語切替モデルに従って、「こ」、「そ」、「あ」のいずれかを決定することにより、決定される。
【０１２０】
なお、図１２では、「こ」、「そ」、「あ」領域の上半分のみを記載してあるが、それらの領域の下半分は上半分と上下対称に表される。
【０１２１】
次に、領域Ｒを参照する場合のロボット１０の位置について説明する。上述したように、ロボット１０は、領域Ｒを参照する際、第２動作を実行するため、図１３に示すように、その第２動作によって描かれる円が参照する領域Ｒ（図１３では、Ｒ１１）に隣接する他の領域（図１３では、Ｒ１２）までも指示してしまうことがある。このような場合には、相対言語の割り当てられた領域（説明の都合上、「相対言語割り当て領域」という）ＲＥｒに、参照する領域Ｒが含まれているかどうかを判断する。ここで、相対言語割り当て領域ＲＥｒに領域Ｒが含まれている場合には、指示語に代えて、相対言語を用いた発話によって、領域Ｒを参照する。ただし、その相対言語割り当て領域ＲＥｒに、上記した隣接する他の領域（図１３では、Ｒ１２）が含まれている場合には、領域Ｒを正しく指示することができない。また、相対割り当て領域ＲＥｒに領域Ｒが含まれていない場合には、相対言語を用いた発話によって、領域Ｒを指示することもできない。
【０１２２】
かかる場合には、第２動作によって描かれる円が参照する領域Ｒのみを指示するように、ロボット１０の位置を領域Ｒに近づけるようにしてある。たとえば、ロボット１０を、所定距離Ｄ（この実施例では、２０ｃｍ）ずつ、参照する領域Ｒに近づけて、その都度、第２動作によって描かれる円が参照する領域Ｒのみを指示するか否かが判断される。ただし、図１３に示すように、ロボット１０の腕の長手方向の軸を中心とし、角度θＰだけ傾斜させるようにして描いた円を２次元平面に投影した円ないし楕円（指示領域ＡＰ）が領域Ｒのみを指示するか、または他の領域も指示するかを判断するのである。ただし、角度θＰは、上述したように、領域Ｒの大きさに従って変化される。
【０１２３】
図１４には、図２に示したメモリ６４（ＲＡＭ）のメモリマップ２００の一例が示される。図１４に示すように、メモリ６４は、プログラム記憶領域２０２およびデータ記憶領域２０４を含む。プログラム記憶領域２０２には、メイン処理プログラム２０２ａ、領域分割プログラム２０２ｂ、領域選択プログラム２０２ｃ、制御プログラム２０２ｄなどが記憶される。
【０１２４】
メイン処理プログラム２０２ａは、ロボット１２の全体制御のメインルーチンを処理するためのプログラムである。領域分割プログラム２０２ｂは、グリッドマップから木構造の領域群を抽出（分割）するためのプログラムである。領域選択プログラム２０２ｃは、人間からのリクエストに応じた１つの領域を木構造の領域群から選択するためのプログラムである。制御プログラム２０２ｄは、コミュニケーション行動の行動モジュールに従って、身体動作および発話の少なくとも一方を実行するためのプログラムである。
【０１２５】
なお、図示は省略するが、プログラム記憶領域には、上述したように、検知プログラムや通信プログラムが記憶されるとともに、撮影プログラムや音声認識プログラムなども記憶される。撮影プログラムは、全方位カメラ３４や眼カメラ５６を用いて撮影処理を実行し、撮影した画像（カメラ画像）をメモリ６４に記憶するためのプログラムである。音声認識プログラムは、人間が発話した音声をマイク５４を通して検出し、辞書データ（図示せず）を用いてＤＰマッチングやＨＭＭ法により、検出した音声を認識するためのプログラムである。
【０１２６】
データ記憶領域２０４には、リクエストバッファ２０４ａが設けられる。リクエストバッファ２０４ａは、人間からの質問（リクエスト）の内容を時系列に従って記憶するための記憶領域である。したがって、人間からのリクエストを処理した後では、当該リクエストはリクエストバッファ２０４ａから削除される。
【０１２７】
また、データ記憶領域２０４には、マップデータ２０４ｂ、カメラ画像データ２０４ｃ、距離データ２０４ｄ、領域群データ２０４ｅ、指示語切替データ２０４ｆ、相対言語テーブルデータ２０４ｇが記憶される。
【０１２８】
マップデータは、図３に示した固定オブジェクトが記述されたオブジェクト地図情報についてのデータである。カメラ画像データ２０４ｃは、ロボット１０の眼カメラ５８で環境内を撮影したときのカメラ画像についてのデータである。距離データ２０４ｄは、位置（ＸＹ座標）に対応して記憶された方向（角度）および距離についてのデータである。
【０１２９】
領域群データ２０４ｅは、領域分割プログラム２０２ｂに従って取得された木構造の領域群についてのデータである。指示語切替データ２０４ｆは、図１２に示した指示語切替モデルに対応する指示語を切り替えるためのパラメータ（ｄＳＯ，ｄＬＯ，ｆＫＳ，ｆＳＡ）についてのデータである。相対言語テーブルデータ２０４ｇは、固定オブジェクトに対して予め設定されている領域およびその領域に対応する発話内容についてのデータである。これは、指示語では、領域を参照するのが困難な場合に、領域を簡単に区別するために用いられる発話内容および対応する領域である。図１５に、相対言語テーブルの具体例が示される。図１５に示す例では、相対言語テーブルは、ＩＤに対応して、相対言語割り当て領域ＲＥｒを規定する４つの頂点の座標および相対言語表現Ｅｒが記述される。たとえば、相対言語割り当て領域ＲＥｒは、図１６の点線枠で示すように、図３に示したオブジェクト地図情報における固定オブジェクトに対応して予め設定されるのである。
【０１３０】
図１４に戻って、図示は省略するが、データ記憶領域２０４には、ロボット１０の制御に必要な他のデータが記憶されたり、カウンタ（タイマ）やフラグが設けられたりする。
【０１３１】
図１７は図２に示したＣＰＵ６０のロボット制御の全体処理を示すフロー図である。たとえば、ロボット１０が人間に遭遇したり人間に触られたりすると、ＣＰＵ６０は全体処理を開始する。図１７に示すように、ＣＰＵ６０は、全体処理を開始すると、ステップＳ１で、オブジェクト地図情報を取得する。つまり、ＣＰＵ６０は、マップデータ２０４ｂを不揮発性のメモリや外部のコンピュータから読み込む。次のステップ３では、カメラ画像を取得する。つまり、ＣＰＵ６０は、眼カメラ５８によって撮影された画像（カメラ画像）を取得し、取得したカメラ画像に対応するカメラ画像データ２０４ｃをデータ記憶領域２０４に記憶する。
【０１３２】
なお、ロボット１０は、最初に、ＸＹ座標が既知である環境の所定の位置に配置され、その後、自走する場合の移動方向および移動距離によって自身の現在位置を更新している。ただし、環境センサを設けておき、現在位置を適宜修正できるようにしてもよい。
【０１３３】
次のステップＳ５では、距離情報を取得する。つまり、ＣＰＵ６０は、予めロボット１０を移動させ、距離センサ２８によって距離を検出したときのロボット１０の位置に対応して、そのときのロボット１０の方向（角度）および検出した距離についての距離データ２０４ｄを、不揮発性のメモリなどから取得して、データ記憶領域２０４に記憶する。これは、主として、グリッドマップに、可動オブジェクトの情報を追加するために用いられる。
【０１３４】
続いて、ステップＳ７では、後述する領域分割処理（図１８および図１９参照）を実行する。次のステップＳ９では、後述する領域選択処理（図２５および図２６参照）を実行する。さらに、ステップＳ１１では、後述する制御情報の決定処理（図２７および図２８参照）を実行する。そして、ステップＳ１３では、ステップＳ１１で決定した制御情報（身体動作Ｇ、発話内容Ｅ、位置Ｐｏｓ）を実行する。つまり、領域Ｒを参照したコミュニケーション行動が実行される。
【０１３５】
続いて、ステップＳ１５では、他の質問（リクエスト）が有るかどうかを判断する。つまり、ＣＰＵ６０は、リクエストバッファ２０４ａに記憶されたリクエストデータに従うリクエストをすべて処理したかどうかを判断する。ステップＳ１５で“ＹＥＳ”であれば、つまり他の質問があれば、ステップＳ９に戻る。一方、ステップＳ１５で“ＹＥＳ”であれば、そのまま全体処理を終了する。
【０１３６】
図１８および図１９は、図１７に示したステップＳ７の領域分割処理のフロー図である。図１８に示すように、ＣＰＵ６０は、領域群抽出処理を開始すると、ステップＳ３１で、領域の木構造を初期化する。つまり、ＣＰＵ６０は、領域群データ２０４ｅをリセットする。続くステップＳ３３では、エッジ検出のパラメータＥＳを初期化する（ＥＳ＝０）。ただし、パラメータＥＳは０以上１以下の範囲で変化され、この実施例では、後述するように、０．３ずつ変化される。このパラメータＥＳの値が小さい程、領域の境界が検出され難い。
【０１３７】
続くステップＳ３５では、カメラ画像からパラメータＥＳでエッジ検出を実行する。次のステップＳ３７では、床の模様を検出する。ただし、パラメータＥＳが０の場合には、床の模様は検出されない。次のステップＳ３９では、カメラ画像と距離情報とから可動オブジェクトを検出する。ただし、ステップＳ３９の処理が実行されることにより、固定オブジェクトも検出される。そして、ステップＳ４１では、グリッドマップを生成する。つまり、オブジェクト地図情報に、可動オブジェクトおよび床の模様の情報が追加され、格子状に細分化される。
【０１３８】
次に、ステップＳ４３で、後述する候補の集合取得処理（図２０参照）を実行し、図１９に示すステップＳ４５で、候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔから１つの領域Ｒｃを取り出す。次のステップＳ４７では、木構造Ｔｒｅｅから領域Ｒｃの上位階層になる領域Ｒｐを探す。つまり、ＣＰＵ６０は、領域Ｒｃを含む領域Ｒｐが有るかどうかを検索するのである。
【０１３９】
そして、ステップＳ４９では、領域Ｒｃが領域Ｒｐと閾値以上重なっているいかどうかを判断する。ここでは、閾値は８０％であり、領域Ｒｃが領域Ｒｐの８０％以上の範囲となっている場合には、それらは同じ或いは略同じ領域であると判断される。したがって、ステップＳ４９で“ＹＥＳ”であれば、つまり領域Ｒｃが領域Ｒｐと閾値以上重なっている場合には、ステップＳ５１で、領域Ｒｃを破棄して、ステップＳ５５に進む。一方、ステップＳ４９で“ＮＯ”であれば、つまり領域Ｒｃが領域Ｒｐと閾値以上重なっていない場合には、領域Ｒｃを領域Ｒｐの子階層として登録して、ステップＳ５５に進む。
【０１４０】
ステップＳ５５では、候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔ中に領域が残っているかどうかを判断する。ステップＳ５５で“ＹＥＳ”であれば、つまり候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔ中に領域が残っていれば、ステップＳ４５に戻って次の領域Ｒｃを取り出す。一方、ステップＳ５５で“ＮＯ”であれば、つまり候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔ中に領域が残っていない場合には、ステップＳ５７で、パラメータＥＳが１であるかどうかを判断する。
【０１４１】
ステップＳ５７で“ＮＯ”であれば、つまりパラメータＥＳが１でなければ、ステップＳ５９で、パラメータＥＳを所定値増加させて、図１８に示したステップＳ３５に戻る。たとえば、所定値は０．３に設定してある。ただし、パラメータＥＳは１（１．０）を超えると、その値は１．０に設定される。したがって、パラメータＥＳは、０．３、０．６、０．９、１．０と設定される。ただし、これは一例であり、パラメータＥＳは、０．１または０．２ずつ増加させてもよい。一方、ステップＳ５７で“ＹＥＳ”であれば、つまりパラメータＥＳが１であれば、ステップＳ６１で、木構造Ｔｒｅｅ中の領域を、分割された領域の集合Ｒｅｇｉｏｎｓとして抽出し、全体処理にリターンする。つまり、人間に伝達可能な領域が抽出（分割）される。図示は省略したが、この分割された領域の集合Ｒｅｇｉｏｎｓのデータもデータ記憶領域２０４の作業領域に記憶される。
【０１４２】
図２０は、図１８のステップＳ４３に示した候補の集合取得処理のフロー図である。図２０に示すように、ＣＰＵ６０は、候補の集合取得処理を開始すると、ステップＳ８１で、グリッドマップに対応する図６に示したような参照リストを作成する。次のステップＳ８３では、後述するバルーン取得処理（図２１ないし図２４参照）を実行して、ステップＳ８５で、すべてのバルーンＰ（Ｃ（ｇ），ｄ）のエネルギＥ（Ｐ（Ｃ（ｇ），ｄ））を算出する。そして、ステップＳ８７で、最大のエネルギとなるバルーンＰ（Ｃ（ｇ＿ｍａｘ），ｄ＿ｍａｘ）を抽出する。つまり、ロボット１０に、より近く、より大きなバルーンＰ（Ｃ（ｇ），ｄ）が抽出されるのである。
【０１４３】
次のステップＳ８９では、候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔに、抽出したバルーンＰ（Ｃ（ｇ＿ｍａｘ），ｄ＿ｍａｘ）を登録する。図示は省略したが、候補の集合Ｒｅｇｉｏｎｓ−ｐａｒｔは、メモリ６４の作業領域に記憶される。続くステップＳ９１では、グリッドマップからバルーンＰ（Ｃ（ｇ＿ｍａｘ），ｄ＿ｍａｘ）を削除する。つまり、バルーンＰ（Ｃ（ｇ＿ｍａｘ），ｄ＿ｍａｘ）に含まれるすべての枠を、グリッドマップにおいて、領域を抽出する範囲から除外するのである。
【０１４４】
続くステップＳ９３では、グリッドマップ中に領域を抽出できるだけの枠が残っているかどうかを判断する。この実施例では、ＣＰＵ６０は、全枠数の１０％以上の枠数が残っているかどうかを判断しているのである。ステップＳ９３で“ＹＥＳ”であれば、つまりグリッドマップ中に領域を抽出できるだけの枠が残っていれば、ステップＳ８１に戻る。つまり、残りの枠についてインデックス番号が付され、図６に示したような参照リストが作成し直される。一方、ステップＳ９３で“ＮＯ”であれば、つまりグリッドマップ中に領域を抽出できるだけの枠が残っていなければ、そのまま全体処理にリターンする。
【０１４５】
図２１−図２４は、図２０に示したステップＳ８３のバルーン取得処理のフロー図である。図２１に示すように、ＣＰＵ６０は、バルーン取得処理を開始すると、ステップＳ１１１で、参照リストの最初の組の点ｇおよび直線Ｐ（ｄ＝０°）を設定する。次のステップＳ１１３では、点ｇを中心とする伸縮円Ｃ（ｇ）の半径を一段階拡大する。つまり、ＣＰＵ６０は、１つの枠（桝目）の一辺の長さの半分だけ、伸縮円Ｃ（ｇ）の半径を延ばす。続くステップＳ１１５では、伸縮円Ｃ（ｇ）が障害物に当ったかどうかを判断する。つまり、ＣＰＵ６０は、伸縮円Ｃ（ｇ）が、少なくとも、障害物が描画された枠に接触してしまったかどうかを判断する。
【０１４６】
ステップＳ１１５で“ＮＯ”であれば、つまり伸縮円Ｃ（ｇ）が障害物に当っていなければ、ステップＳ１１３に戻る。一方、ステップＳ１１５で“ＹＥＳ”であれば、つまり伸縮円Ｃ（ｇ）が障害物に当れば、ステップＳ１１７で、一段階手前の伸縮円Ｃ（ｇ）の半径に設定して、ステップＳ１１９で、点ｇを変数ｇ−ｐｒｅに設定し、伸縮円Ｃ（ｇ）の半径を変数ｒ−ｐｒｅに設定する。ただし、変数ｇ−ｐｒｅは、現在の点ｇについての座標を示し、変数ｒ−ｐｒｅは、変数ｇ−ｐｒｅに設定された点ｇにおける伸縮円Ｃ（ｇ）の半径を示す。
【０１４７】
続くステップＳ１２１では、傾きｄが９０°または２７０°であるかどうかを判断する。ステップＳ１２１で“ＮＯ”であれば、つまり傾きｄが９０°または２７０°でなければ、ステップＳ１２３で、傾きｄの直線Ｐ上の点ｇ−ｐｒｅのＸ軸のプラス方向またはＹ軸の方向（プラス方向またはマイナス方向）の隣の点ｇ−ｃｕｒを取得して、図２２に示すステップＳ１２７に進む。つまり、ステップＳ１２３では、点ｇ−ｐｒｅが存在する枠の隣（右側の隣、上側の隣、または下側の隣）であり、直線Ｐが通る枠の点ｇ−ｃｕｒが取得されるのである。一方、ステップＳ１２１で“ＹＥＳ”であれば、つまり傾きｄが９０°または２７０°であれば、ステップＳ１２５で、傾きｄの直線Ｐ上の点ｇ−ｐｒｅのＹ軸のプラス方向の隣の点ｇ−ｃｕｒを取得して、ステップＳ１２７に進む。
【０１４８】
図２２に示すように、ステップＳ１２７では、点ｇ−ｃｕｒが有るかどうかを判断する。つまり、当該直線Ｐ上において、現在参照リストが示す枠のＸ軸のプラス方向に隣接する（Ｙ軸方向に隣接する場合もある）すべての枠に伸縮円Ｃ（ｇ）を描画したかどうかを判断する。ステップＳ１２７で“ＮＯ”であれば、つまり点ｇ−ｃｕｒが無ければ、Ｘ軸のプラス方向への伸縮円Ｃ（ｇ）の描画を終了したと判断して、図２３に示すステップＳ１４３に進む。一方、ステップＳ１２７で“ＹＥＳ”であれば、つまり点ｇ−ｃｕｒが有れば、ステップＳ１２９で、点ｇ−ｃｕｒが障害物上であるかどうかを判断する。
【０１４９】
ステップＳ１２９で“ＹＥＳ”であれば、つまり点ｇ−ｃｕｒが障害物上であれば、Ｘ軸のプラス方向への伸縮円Ｃ（ｇ）の描画を終了して、ステップＳ１４３に進む。これは、障害物によって、領域が分割されている（途切れている）と考えられるためである。一方、ステップＳ１２９で“ＮＯ”であれば、つまり点ｇ−ｃｕｒが障害物上でなければ、ステップＳ１３１で、点ｐ−ｃｕｒを中心とする伸縮円Ｃ（ｇ−ｃｕｒ）の半径を一段階拡大する。続くステップＳ１３３では、伸縮円Ｃ（ｇ−ｃｕｒ）が障害物に当ったかどうかを判断する。
【０１５０】
ステップＳ１３３で“ＮＯ”であれば、つまり伸縮円Ｃ（ｇ−ｃｕｒ）が障害物に当ってなければ、そのままステップＳ１３１に戻る。一方、ステップＳ１３３で“ＹＥＳ”であれば、つまり伸縮円Ｃ（ｇ−ｃｕｒ）が障害物に当れば、ステップＳ１３５で、伸縮円Ｃ（ｇ−ｃｕｒ）の半径を一段階前の半径に設定し、ステップＳ１３７で、伸縮円Ｃ（ｇ−ｃｕｒ）の半径を変数ｒ−ｃｕｒに設定する。
【０１５１】
そして、ステップＳ１３９では、ｒ−ｐｒｅ／ｒ−ｃｕｒが第１閾値（たとえば、１．３）以上であるかどうかを判断する。ステップＳ１３９で“ＹＥＳ”であれば、つまりｒ−ｐｒｅ／ｒ−ｃｕｒが第１閾値以上であれば、領域を分割するべきであると判断し、Ｘ軸のプラス方向への伸縮円Ｃ（ｇ）の描画を終了して、ステップＳ１４３に進む。一方、ステップＳ１３９で“ＮＯ”であれば、つまりｒ−ｐｒｅ／ｒ−ｃｕｒが第１閾値未満であれば、ステップＳ１４１で、ｒ−ｐｒｅ／ｒ−ｃｕｒが第２閾値（たとえば、０．７）以下であるかどうかを判断する。ステップＳ１４１で“ＮＯ”であれば、つまりｒ−ｐｒｅ／ｒ−ｃｕｒが第２閾値を超えていれば、図２１に示したステップＳ１２１に戻って、Ｘ軸のプラス方向への伸縮円Ｃ（ｇ）の描画を継続する。一方、ステップＳ１４１で“ＹＥＳ”であれば、つまりｒ−ｐｒｅ／ｒ−ｃｕｒが第２閾値（たとえば、０．７）以下であれば、領域を分割するべきであると判断し、Ｘ軸のプラス方向への伸縮円Ｃ（ｇ）の描画を終了して、ステップＳ１４３に進む。
【０１５２】
ステップＳ１３９およびステップＳ１４１では、隣接する枠に描画された伸縮円Ｃ（ｇ）の半径（大きさ）が急激に変化したかどうかを判断し、急激に変化している場合には、領域を分割するべきと判断しているのである。
【０１５３】
図２３に示すように、ステップＳ１４３では、参照リストが示す着目する枠の点ｇに戻す。これは、Ｘ軸のプラス方向に続いて、Ｘ軸のマイナス方向への伸縮円Ｃ（ｇ）の描画を開始するためである。Ｘ軸のマイナス方向の伸縮円Ｃ（ｇ）の描画処理は、上述したＸ軸のプラス方向への描画処理と同様の処理が実行されるため、重複する内容については簡単に説明することにする。
【０１５４】
次のステップＳ４５では、傾きｄが９０°または２７０°であるかどうかを判断する。ステップＳ１４５で“ＮＯ”であれば、ステップＳ１４７で、傾きｄの直線Ｐ上の点ｇ−ｐｒｅのＸ軸のマイナス方向またはＹ軸方向（プラス方向またはマイナス方向）の隣の点ｇ−ｃｕｒを取得して、ステップＳ１５１に進む。一方、ステップＳ１４５で“ＹＥＳ”であれば、つまり、傾きｄの直線Ｐ上の点ｇ−ｐｒｅのＹ軸のマイナス方向の隣の点ｇ−ｃｕｒを取得して、ステップＳ１５１に進む。
【０１５５】
ステップＳ１５１では、点ｇ−ｃｕｒが有るかどうかを判断する。ステップＳ１５１で“ＮＯ”であれば、図２４に示すステップＳ１６７にそのまま進む。一方、ステップＳ１５１で“ＹＥＳ”であれば、ステップＳ１５３で、点ｇ−ｃｕｒが障害物上であるかどうかを判断する。ステップＳ１５３で“ＹＥＳ”であれば、そのままステップＳ１６７に進む。一方、ステップＳ１５３で“ＮＯ”であれば、ステップＳ１５５で、点ｇ−ｃｕｒを中心とする伸縮円Ｃ（ｇ−ｃｕｒ）の半径を一段階拡大する。そして、ステップＳ１５７で、伸縮円Ｃ（ｇ−ｃｕｒ）が障害物に当ったかどうかを判断する。
【０１５６】
ステップＳ１５７で“ＮＯ”であれば、そのままステップＳ１５５に戻る。一方、ステップＳ１５７で“ＹＥＳ”であれば、図２４に示すステップＳ１５９で、伸縮円Ｃ（ｇ−ｃｕｒ）の半径を一段階前の半径に設定して、ステップＳ１６１で、伸縮円Ｃ（ｇ−ｃｕｒ）の半径を変数ｒ−ｃｕｒに設定する。続くステップＳ１６３では、ｒ−ｐｒｅ／ｒ−ｃｕｒが第１閾値以上であるかどうかを判断する。ステップＳ１６３で“ＹＥＳ”であれば、そのままステップＳ１６７に進む。一方、ステップＳ１６３で“ＮＯ”であれば、ステップＳ１６５で、ｒ−ｐｒｅ／ｒ−ｃｕｒが第２閾値以下であるかどうかを判断する。ステップＳ１６５で“ＮＯ”であれば、図２３に示したステップＳ１４５に戻って、Ｘ軸のマイナス方向への伸縮円Ｃ（ｇ）の描画を継続する。一方、ステップＳ１６５で“ＹＥＳ”であれば、ステップＳ１６７に進む。
【０１５７】
ステップＳ１６７では、すべての伸縮円Ｃ（ｇ）を結合して、バルーンＰ（Ｃ（ｇ），ｄ）を生成する。つまり、参照リストが示す今回の組について描画された伸縮円Ｃ（ｇ）に含まれるすべての枠が１つの塊として抽出され、バルーンＰ（Ｃ（ｇ），ｄ）が生成される。
【０１５８】
次のステップＳ１６９では、参照リストが示す直線Ｐの傾きｄが３３０°であるかどうかを判断する。ステップＳ１６９で“ＮＯ”であれば、つまり参照リストが示す直線Ｐの傾きｄが３３０°でなければ、ステップＳ１７１で、現在の枠の点に、次の組が示す傾きｄの直線Ｐを設定して、図２１のステップＳ１１３に戻る。つまり、ステップＳ１７１では、直前の組の枠と同じ枠の点ｇに、傾きｄを３０°変えた直線Ｐが設定される。
【０１５９】
一方、ステップＳ１６９で“ＹＥＳ”であれば、つまり参照リストが示す直線Ｐの傾きｄが３３０°であれば、ステップＳ１７３で、参照リストのすべての組について伸縮円Ｃ（ｇ）の描画処理を実行したかどうかを判断する。ステップＳ１７３で“ＮＯ”であれば、つまり参照リストにおいて伸縮円Ｃ（ｇ）の描画処理を行っていない組が残っている場合には、ステップＳ１７５で、次の組が示す枠の点ｇおよび傾きｄの直線Ｐを設定して、ステップＳ１１３に戻る。つまり、ステップＳ１７５では、直前の組の枠の次のインデックス番号で示される枠の点ｇに、傾きｄ＝０°の直線Ｐが設定される。一方、ステップＳ１７５で“ＹＥＳ”であれば、つまり参照リストのすべての組について伸縮円Ｃ（ｇ）の描画処理を実行すると、候補の集合取得処理にリターンする。
【０１６０】
なお、図示は省略するが、ステップＳ１６９で“ＹＥＳ”と判断された場合には、直前に伸縮円Ｃ（ｇ）の描画処理を実行した組について、当該描画処理を終了したことが参照リストにおいてチェックされる。
【０１６１】
図２５および図２６は、図１７に示したステップＳ９の領域選択処理のフロー図である。図２５に示すように、ＣＰＵ６０は、領域選択処理を開始すると、ステップＳ１９１で、人間から荷物についての情報を聞く。ここでは、ＣＰＵ６０は、荷物の大きさについて質問するための合成音声をスピーカ５２から出力する。次のステップＳ１９３では、荷物の底面積Ｓｉｚeを取得する。たとえば、ＣＰＵ６０は、人間の返答に対応する音声を、マイク５４を通して検出し、その音声を認識することにより、荷物の大きさから底面積Ｓｉｚeを取得する。図示は省略するが、荷物の大きさに対応する底面積を記載したテーブルについてのデータを記憶しておき、ＣＰＵ６０は、そのテーブルを参照して、荷物の大きさに応じた底面積Ｓｉｚeを取得する。
【０１６２】
なお、この実施例では、ロボット１０が人間とインタラクションすることにより、荷物の底面積Ｓｉｚeを取得するようにしてあるが、眼カメラ５８で撮影した画像から荷物の大きさを推定して底面積Ｓｉｚeを取得するようにしてもよい。または、眼カメラ５８で撮影した画像から直接底面積Ｓｉｚeを推定（取得）するようにしてもよい。
【０１６３】
図２５に戻って、次のステップＳ１９５では、変数ｉを初期化する（ｉ＝１）。この変数ｉは、分割された領域の集合Ｒｅｇｉｏｎｓに含まれる複数の領域Ｒを個別に識別するために設定される。続くステップＳ１９７では、分割された領域の集合Ｒｅｇｉｏｎｓから領域Ｒｉを読み出す。次のステップＳ１９９では、領域Ｒｉの面積Ｒｉ＿Ｓｉｚｅが底面積Ｓｉｚeよりも大きいかどうかを判断する。ただし、領域Ｒｉ＿Ｓｉｚeは、それに含まれる枠の数に、１つの枠についての実空間における面積（この実施例では、２０ｃｍ×２０ｃｍ）を乗算して求められる。
【０１６４】
ステップＳ１９９で“ＮＯ”であれば、つまり領域Ｒｉの面積Ｒｉ＿Ｓｉｚeが底面積Ｓｉｚｅ以下であれば、荷物を置ける大きさを有していないと判断して、そのままステップＳ２０３に進む。一方、ステップＳ１９９で“ＹＥＳ”であれば、つまり領域Ｒｉの面積Ｒｉ＿Ｓｉｚeが底面積Ｓｉｚeを超えていれば、荷物を置ける大きさを有していると判断して、ステップＳ２０１で、領域Ｒｉを選択候補の集合Ｒ＿ｃａｎｄｓに登録して、ステップＳ２０３に進む。つまり、ステップＳ２０１では、領域Ｒｉが、参照（人間に指示）する領域Ｒの候補として選択されるのである。
【０１６５】
ステップＳ２０３では、変数ｉを１加算する（ｉ＝ｉ＋１）。そして、ステップＳ２０５で、変数ｉが最大値を超えたかどうかを判断する。つまり、ステップＳ２０５では、分割された領域の集合Ｒｅｇｉｏｎｓに登録されているすべての領域ＲｉについてステップＳ１９９の判断処理を実行したかどうかを判断しているのである。ステップＳ２０５で“ＮＯ”であれば、つまり変数ｉが最大値以下であれば、そのままステップＳ１９７に戻る。つまり、次の領域ＲｉについてステップＳ１９９の処理が実行される。一方、ステップＳ２０５で“ＹＥＳ”であれば、つまり変数ｉが最大値を超えると、図２６に示すステップＳ２７で、変数ｊを初期化する（ｊ＝１）。この変数ｊは、選択候補の集合Ｒ＿ｃａｎｄｓに含まれる領域を識別するために設定される。
【０１６６】
次のステップＳ２０９では、変数ｄｍｉｎに初期値を設定する（ｄｍｉｎ＝∞）。この変数ｄｍｉｎは、領域Ｒｊと人間との最短距離を検出するために用いられる。続くステップＳ２１１では、選択候補の集合Ｒ＿ｃａｎｄｓから領域Ｒｊを読み出す。そして、ステップＳ２１３で、領域Ｒｊと人間との距離ｄｊ（上記したパラメータｄＬＯに相当する）が変数ｄｍｉｎよりも小さいかどうかを判断する。ただし、領域Ｒｊと人間との距離ｄｊは、領域Ｒｊに含まれる点のうち、最も人間に近い点と人間の現在位置との距離である。
【０１６７】
ステップＳ２１３で“ＮＯ”であれば、つまり領域Ｒｊと人間との距離ｄｊが変数ｄｍｉｎ以上であれば、距離ｄｊは最短距離でないと判断して、そのままステップＳ２１９に進む。一方、ステップＳ２１３で“ＹＥＳ”であれば、つまり領域Ｒｊと人間との距離ｄｊが変数ｄｍｉｎよりも小さければ、距離ｄｊは現時点において最短距離であると判断して、ステップＳ２１５で、変数ｄｍｉｎに距離ｄｊを代入して、ステップＳ２１７で、領域Ｒｊを参照する領域Ｒに設定（選択）して、ステップＳ２１９に進む。
【０１６８】
ステップＳ２１９では、変数ｊを１加算する（ｊ＝ｊ＋１）。続くステップＳ２２１では、変数ｊが最大値を超えたかどうかを判断する。つまり、ステップＳ２２１では、選択候補の集合Ｒ＿ｃａｎｄｓに登録されたすべての領域ＲｊについてステップＳ２１３の処理を実行したかどうかを判断するのである。ステップＳ２２１で“ＮＯ”であれば、つまり変数ｊが最大値以下であれば、ステップＳ２１１に戻って、次の領域ＲｊについてステップＳ２１３の処理を実行する。一方、ステップＳ２２１で“ＹＥＳ”であれば、つまり変数ｊが最大値を超えれば、全体処理にリターンする。
【０１６９】
図２７および図２８は、図１７に示したステップＳ１１の制御情報の決定処理のフロー図である。図２７に示すように、ＣＰＵ６０は、制御情報の決定処理を開始すると、ステップＳ２４１で初期化処理を実行する。ここでは、領域Ｒを設定し、領域Ｒを参照するときのロボット１０の位置Ｐｏｓ、実行するジェスチャＧおよび発話内容Ｅをクリアする。次のステップＳ２４３では、自身の現在位置をＰｏｓ´に設定する。続いて、ステップＳ２４５では、領域Ｒを参照する場合に実行するジェスチャＧを決定する。この実施例では、円を描くように腕を回転させて領域Ｒを指示するようにしてあるため、領域Ｒの大きさに応じて手で描く円の大きさ（回転軸に対して腕がなす角θＰ）が決定され、それを実行する場合に、腕を斜めに保持するためのモータの制御情報および円を描くように腕を回転させるためのモータの制御情報が決定されるのである。
【０１７０】
次のステップＳ２４７では、ジェスチャＧで誤認され得る領域の集合Ｒ＿ｗｒｏｎｇを分割された領域の集合Ｒｅｇｉｏｎｓから抽出する。つまり、図１３に示したように、ジェスチャＧを実行したと仮定して、参照する領域Ｒ（図１３では、Ｒ１１）以外の他の領域（図１３では、Ｒ１２）を含んでしまう場合に、他の領域（Ｒ１２）を誤認され得る領域として、集合Ｒ＿ｗｒｏｎｇに登録するのである。つまり、図１３に示したように、指示領域ＡＰによって指示される、参照（指示）する領域Ｒ以外の領域を抽出するのである。
【０１７１】
図２８に示すように、次のステップＳ２４９では、相対言語テーブル内の領域ＲＥｒに、参照する領域Ｒが含まれるかどうかを判断する。ステップＳ２４９で“ＹＥＳ”であれば、つまり相対テーブル内の領域ＲＥｒに参照する領域Ｒが含まれている場合には、後述するステップＳ２５７に進む。一方、ステップＳ２４９で“ＮＯ”であれば、つまり相対言語テーブル内の領域ＲＥｒに参照する領域Ｒが含まれていない場合には、ステップＳ２５１で、集合Ｒ＿ｗｒｏｎｇの要素数が０であるかどうかを判断する。ステップＳ２５１で“ＮＯ”であれば、つまり集合Ｒ＿ｗｒｏｎｇの要素数が１以上であれば、ステップＳ２５９に進む。
【０１７２】
一方、ステップＳ２５１であれば、つまり領域Ｒ＿ｗｒｏｎｇの要素数が０であれば、ステップＳ２５３で、指示語Ｅｉを決定する。ここでは、上述したように、領域Ｒの大きさに応じて「辺」を付けるか否かを決定し、ロボット１０自身と領域Ｒとの距離ｄＳＯまたは人間と領域Ｒとの距離ｄＬＯに応じて、つまり領域Ｒの最近点と、ロボット１０の現在位置と、人間の現在位置との位置関係に応じて、「こ」、「そ」、「あ」の別を決定する。そして、ステップＳ２５５で、発話内容Ｅに、ステップＳ２５３で決定した指示語Ｅｉを設定し、位置Ｐｏｓに現在位置Ｐｏｓ´を設定して、全体処理に戻る。
【０１７３】
また、ステップＳ２５７では、集合Ｒ＿ｗｒｏｎｇに登録された領域のうち、領域ＲＥｒに含まれる領域が存在するかどうかを判断する。ステップＳ２５７で“ＹＥＳ”であれば、つまり集合Ｒ＿ｗｒｏｎｇに登録された領域のうち、領域ＲＥｒに含まれる領域が存在する場合には、ステップＳ２５９で、現在位置Ｐｏｓ´を参照する領域Ｒに距離Ｄだけ近づけて、図２７に示したステップＳ２４７に戻る。ただし、この実施例では、距離Ｄは２０ｃｍであり、ステップＳ２５９では、実際にロボット１０が移動されるのではなく、現在位置Ｐｏｓ´のみが更新され、移動後の現在位置Ｐｏｓ´でジェスチャＧを実行したと仮定して、それによって描かれる円を投影した円または楕円つまり指示領域ＡＰによって指示される、参照する領域Ｒ以外の他の領域を抽出するのである。
【０１７４】
一方、ステップＳ２５７で“ＮＯ”であれば、つまり集合Ｒ＿ｗｒｏｎｇに登録された領域のうち、領域ＲＥｒに含まれる領域が存在しない場合には、ステップＳ２６１で、発話内容Ｅに領域Ｒを含む領域ＲＥｒに対応して相対言語テーブルに記載された相対言語表現Ｅｒを設定し、位置Ｐｏに現在位置Ｐｏｓ´を設定して、全体処理にリターンする。
【０１７５】
この実施例によれば、床の模様およびオブジェクトを含む障害物が登録されたグリッドマップを用いて、障害物に接触しないように描画された複数の伸縮円を結合した領域を抽出するので、人間が空間を見た場合に分割する場合と同じように領域を分割することができる。
【０１７６】
また、この実施例によれば、エッジ検出の際に、床の模様を検出しないレベルから検出可能なレベルまで段階的にパラメータを変化させるので、廊下のような比較的広い空間の全体を１つの領域として抽出したり、それを床の模様に従って複数に区分した２以上の領域として抽出したりすることができる。つまり、参照する領域に大きさに応じて、適宜参照する領域を変化させることができる。
【０１７７】
さらに、この実施例によれば、指示語や特定のオブジェクトに対応付けられた相対言語表現を発話するとともに、指差しの動作を実行することにより、人間のリクエストに応じて、分割した複数の領域の中から選択した１の領域を参照するので、人間と同じようなコミュニケーション行動を実行することができる。
【０１７８】
なお、この実施例では、ロボットがグリッドマップを生成するようにしたが、ロボット以外の他のコンピュータによってグリッドマップを生成し、これをロボットが取得するようにしてもよい。かかる場合には、距離センサを環境内に設けて、その距離センサから他のコンピュータが距離情報を取得してもよいし、距離情報をロボットが収集し、それを他のコンピュータに送信するようにしてもよい。
【０１７９】
また、この実施例では、ロボットが領域を分割するようにしたが、領域を分割するまでの処理（図１７のステップＳ１−Ｓ７）については、他のコンピュータで実行し、その結果（分割された領域の集合Ｒｅｇｉｏｎｓ）を受けて、ロボットがその後の処理（図１７のステップＳ９−Ｓ１５）を実行するようにしてもよい。
【０１８０】
さらに、この実施例では、ロボットは指差し動作をする場合、円を描くように動作（第２動作）させるようにしたが、発話する内容によっては、腕を伸ばした状態を保持するように指差し動作（第１動作）を実行するようにしてもよい。たとえば、「辺」付きの指示語を発話する場合のみ、第２動作を実行し、「辺」付きでない指示語や相対言語表現により発話する場合には、第１動作を実行するようにしてもよい。または、「辺」付きの指示語や相対言語表現により発話する場合には、第２動作を実行し、「辺」付きでない指示語を発話する場合のみ、第１動作を実行するようにしてもよい。
【０１８１】
さらにまた、この実施例では、距離情報をロボットが自身のセンサを用いて予め取得しておくようにしたが、環境にレーザーレンジファインダなどの距離センサを設定して、環境に設置された距離センサから距離情報を取得するようにしてもよい。
【０１８２】
また、この実施例では、伸縮円を描画する際に、各枠に対して９０°，２７０°の傾きの直線を設定するようにしたが、この２つの直線は実質的に同じ直線であるため、いずれか一方については設定しなくてもよい。
【符号の説明】
【０１８３】
１０  …コミュニケーションロボット
２４，７２，７４，７６，７８，８０  …モータ
２８  …赤外線距離センサ
３４  …全方位カメラ
５２  …スピーカ
５４  …マイク
５８  …眼カメラ
６０  …ＣＰＵ
６４  …メモリ
６６  …モータ制御ボード
６８  …センサ入力／出力ボード
７０  …音声入力／出力ボード
８２  …通信ＬＡＮボード
１６ｃ  …加速度センサ
８４  …無線通信装置
８６  …無線タグ読取装置
【図１】
2011180660.tif 000003
【図２】
2011180660.tif 000004
【図３】
2011180660.tif 000005
【図４】
2011180660.tif 000006
【図５】
2011180660.tif 000007
【図６】
2011180660.tif 000008
【図７】
2011180660.tif 000009
【図８】
2011180660.tif 000010
【図９】
2011180660.tif 000011
【図１０】
2011180660.tif 000012
【図１１】
2011180660.tif 000013
【図１２】
2011180660.tif 000014
【図１３】
2011180660.tif 000015
【図１４】
2011180660.tif 000016
【図１５】
2011180660.tif 000017
【図１６】
2011180660.tif 000018
【図１７】
2011180660.tif 000019
【図１８】
2011180660.tif 000020
【図１９】
2011180660.tif 000021
【図２０】
2011180660.tif 000022
【図２１】
2011180660.tif 000023
【図２２】
2011180660.tif 000024
【図２３】
2011180660.tif 000025
【図２４】
2011180660.tif 000026
【図２５】
2011180660.tif 000027
【図２６】
2011180660.tif 000028
【図２７】
2011180660.tif 000029
【図２８】
2011180660.tif 000030