(57)【特許請求の範囲】
【請求項１】
ロボットが人に対してサービスを提供するサービス提供ロボットシステムであって、
人追跡システムによって取得したそれぞれの人の属性に従って、グループを認識するグループ認識部、
グループの構成員にサービスを提供する際、当該グループの属性に適合するコンテンツを選択するコンテンツ選択部、および
前記選択したコンテンツを前記構成員に提供するコンテンツ提供部を備え、
前記グループ認識部は、ペアの２人の移動軌跡の類似度とそれぞれの周囲の平均密度に基づいて前記ペアがグループを形成するかどうか認識する、サービス提供ロボットシステム。
【請求項２】
前記グループ認識部は、ペアの２人の移動方向の類似度、移動速度の類似度および平均移動距離の少なくとも１つを別のパラメータとして加味して前記ペアの２人が同じグループに含まれるかどうか認識する、請求項１記載のサービス提供ロボットシステム。
【請求項３】
ロボットが人に対してサービスを提供するサービス提供ロボットシステムのコンテンツによって実行されるサービス提供プログラムであって、前記プログラムは前記コンテンツを、
人追跡システムによって取得したそれぞれの人の属性に従って、グループを認識するグループ認識部、
グループの構成員にサービスを提供する際、当該グループの属性に従ったコンテンツを選択するコンテンツ選択部、および
前記選択したコンテンツを前記構成員に提供するコンテンツ提供部として機能させ、
前記グループ認識部は、ペアの２人の移動軌跡の類似度とそれぞれの周囲の平均密度に基づいて前記ペアがグループを形成するかどうか認識する、サービス提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、サービス提供ロボットシステムに関し、特に、ロボットによって人に対してたとえば店舗の宣伝や広告などのサービスを提供する、サービス提供ロボットシステムに関する。
【背景技術】
【０００２】
特許文献１および特許文献２などにおいて、広告や宣伝をロボットが実施するために、広告の内容を場所に応じて変化させる技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2007-229855 [G05D 1/02]
【特許文献２】特開2005-172879 [G09F 21/00、B25J 5/00、…]
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１および２のいずれも、ロボットから人に対してアクティブに話しかけて、その人に適したサービスを提供することを考慮していない。
【０００５】
それゆえに、この発明の主たる目的は、新規な、サービス提供ロボットシステムを提供することである。
【０００６】
この発明の他の目的は、人に適したサービスをできる、サービス提供ロボットシステムを提供することである。
【課題を解決するための手段】
【０００７】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００８】
第１の発明は、ロボットが人に対してサービスを提供するサービス提供ロボットシステムであって、人追跡システムによって取得したそれぞれの人の属性に従って、グループを認識するグループ認識部、グループの構成員にサービスを提供する際、当該グループの属性に適合するコンテンツを選択するコンテンツ選択部、および選択したコンテンツを構成員に提供するコンテンツ提供部を備え、グループ認識部は、ペアの２人の移動軌跡の類似度とそれぞれの周囲の平均密度に基づいてペアがグループを形成するかどうか認識する、サービス提供ロボットシステムである。
【０００９】
第１の発明では、サービス提供ロボットシステム（１００：実施例において相当する部分を例示する参照符号。以下同様。）は、たとえば発話可能なロボット（１０）を含み、そのロボットが人に対してサービス（たとえば、各種情報の提供、店舗や商品の宣伝、広告）を提供する。グループ認識部（１４、Ｓ５、Ｓ７）は、それぞれの人の属性、たとえば位置情報や履歴に基づいて、グループを認識する。グループ認識部（１４、Ｓ５、Ｓ７）は、たとえば、ペア（ｐ１，ｐ２）の各人ｐ１、ｐ２の振る舞い（たとえば移動）の時系列的な類似性を示すパラメータに基づいてそのペア（ｐ１，ｐ２）の２人がグループを形成するかどうか認識する。そのパラメータとして、ペアの２人の移動軌跡の類似度を採用する。そして、グループ認識部は、別途検出した各人の周囲の平均密度とこの移動軌跡の類似度に基づいて、ペアの２人が同じグループを形成するかどうか判断する。発明者等の実験によれば、グループを構成する人には、追従現象時(グループのメンバの後ろを、別のグループのメンバが少し離れて追いかける現象)では、ペアの２人は、ほぼ同じ場所を通ることを確認し、この移動軌跡の類似度は、周囲の平均密度に影響されることも確認した。そこで、グループ認識部（１４、Ｓ５、Ｓ７）は，移動軌跡の類似度と平均密度を組み合わせて、ペアの２人がグループを形成するかどうか判定する。どれかのグループの構成員にサービスを提供しようとするとき、コンテンツ選択部（１４、Ｓ１３）が、たとえば発話コンテンツデータベース（２０）から、そのグループの属性に適合するコンテンツを選択し、サービス提供部（１４、Ｓ１５）がそのコンテンツを当該構成員に提供する。
【００１０】
第１の発明によれば、構成員が属するグループの属性に適合したコンテンツを提供することができるので、サービス提供の成功率が高くなり、サービスを効率的に提供することができる。このとき、移動軌跡の類似度をグループ認識のためのパラメータに採用するので、グループ認識がさらに正確に行える。
【００１７】
第２の発明は、第１の発明に従属し、グループ認識部は、ペアの２人の移動方向の類似度、移動速度の類似度および平均移動距離の少なくとも１つを別のパラメータとして加味してペアの２人が同じグループに含まれるかどうか認識する、サービス提供ロボットシステムである。
【００１８】
第２の発明では、或る程度の時間、或る程度近くで、或る程度同じ方向で、或る程度似た速度で移動している人どうしは、グループである、という考えに基づいて、ペアの２人がグループかどうか判断する。
【００１９】
第２の発明によれば、平均密度によって移動軌跡の類似性が影響を受けたときでも、ペアの２人がグループかどうか確実に認識することができる。
【００２０】
第３の発明は、ロボットが人に対してサービスを提供するサービス提供ロボットシステムのコンテンツによって実行されるサービス提供プログラムであって、プログラムはコンテンツを、人追跡システムによって取得したそれぞれの人の属性に従って、グループを認識するグループ認識部、グループの構成員にサービスを提供する際、当該グループの属性に従ったコンテンツを選択するコンテンツ選択部、および選択したコンテンツを構成員に提供するコンテンツ提供部として機能させ、グループ認識部は、ペアの２人の移動軌跡の類似度とそれぞれの周囲の平均密度に基づいてペアがグループを形成するかどうか認識する、サービス提供プログラムである。
【００２１】
第３の発明でも第１の発明と同様の効果が期待できる。
【発明の効果】
【００２２】
この発明のサービス提供ロボットシステムによれば、サービスを提供する人が含まれるグループの属性に応じたコンテンツを提供するので、サービス提供の成功率が高くなり、サービスを効率的に提供することができる。
【００２３】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２４】
【図１】図１はこの発明の一実施例であるサービス提供ロボットシステムが適用され得る場所の一例としてのショッピングセンタの配置例を示す図解図である。
【図２】図２はこの発明の一実施例のサービス提供ロボットシステムを示すブロック図である。
【図３】図３は実施例のサービス提供ロボットシステムに利用可能なロボットの一例を示す図解図である。
【図４】図４は図３実施例のロボットの電気的構成を示すブロック図である。
【図５】図５は図２のコンピュータに付属するメモリのメモリマップの一例を示す図解図である。
【図６】図６は実施例のコンピュータが実行するサービス提供処理の一例を示すフロー図である。
【図７】図７はグループ認識処理の一例を示すフロー図である。
【図８】図８は人位置や高さをセンシングする方法の一例を示す図解図である。
【図９】図９は図７に示すグループ認識処理の結果の一例を示す図解図である。
【図１０】図１０は図６に示す実施例においてグループの属性に応じた発話コンテンツを例示する図解図である。
【図１１】図１１は図７に示すグループ認識処理をチューニングするチューニング処理の一例を示すフロー図である。
【発明を実施するための形態】
【００２５】
図１を参照して、この実施例のサービス提供ロボットシステム１００は、たとえばショッピングモールなどのように多様な人々が往来する空間（環境）で利用される。その空間の中では、ロボット１０や人は任意に移動することができ、天井などの比較的高所には複数の距離画像センサ１２が設けられている。
【００２６】
ロボット１０は、相互作用指向のロボット（コミュニケーションロボット）であり、コミュニケーションの対象である人との間で、音声を含むコミュニケーション行動を実行する機能を備えている。また、ロボット１０はコミュニケーションの一環として、イベント情報の告知、ショッピングモール内の店舗の宣伝や広告のようなサービスを人々に対して提供する。このロボット１０は基本的には、後述する遠隔操作コンピュータ１４（図２）から与えられる行動命令に基づいて行動するが、サービスを提供する上で必要であれば、ショッピングモール内を自律的に移動することもできる。
【００２７】
この実施例のサービス提供ロボットシステム１００は、ショッピングモールに限らず、イベント会場、アトラクション会場などでも利用可能である。
【００２８】
なお、図１では簡単のため、人は１人しか示していないが、ショッピングモール内には通常多くの人々が存在する。さらには、ロボット１０も１台しか示していないが、サービス提供ロボットシステム１００は２台以上のロボット１０を同時に制御することができる。
【００２９】
図２を参照して、サービス提供ロボットシステム１００の遠隔操作用のコンピュータ１４は、後に詳細に説明するが、一定時間（たとえば、１秒）毎に複数の距離画像センサ１２によって、任意に移動する人の位置を検出すると共に、その人の向いている方向などを検出する。そのために、コンピュータ１４は、距離画像センサ１２からのセンサ出力を受ける。
【００３０】
コンピュータ１４にはメモリ１６、通信ＬＡＮボード１８が接続されると共に、発話コンテンツデータベース（ＤＢ）２０も接続される。発話コンテンツデータベース２０は、ロボット１０が人に対して広告、宣伝などのサービスを提供する際に人に対して話しかけるときに必要な発話文および広告、宣伝などに必要な発話文を予め登録しておき、必要なとき、コンテンツ４が必要な発話文を読み出してロボット１０に与える。
【００３１】
ただし、発話コンテンツデータベース２０は、ロボット１０に設けられていてもよい。その場合には、コンピュータ１４は、ロボット１０に対して、発話すべき発話文を指定する命令だけをロボット１０に送ればよい。
【００３２】
距離画像センサ１２は、赤外光またはレーザなどの光を照射し、対象物から反射した光（反射光）をＣＣＤセンサなどの光学センサによって捉える。距離画像センサ１２は、光が戻るまでの時間を画素ごとに計測したり、画像パターンの歪みを計測したりすることで、対象物までの実際の距離を測距する。実施例の距離画像センサ１２には、ＡＳＵＳ（登録商標）社製のＸｔｉｏｎと呼ばれる製品が採用されている。なお、他の実施例では、距離画像センサ１２は、Ｍｉｃｒｏｓｏｆｔ（登録商標）社製のＫｉｎｅｃｔ（登録商標）センサ、パナソニック（登録商標）社製の３次元距離画像センサＤ−ＩＭａｇｅｒ（登録商標）などを使用することも可能である。この種のセンサは、３次元距離計測センサ、３Ｄスキャナなどと呼ばれる場合もある。
【００３３】
距離画像センサ１２はそのレーザ走査面（スキャン面）の傾斜角を変化させながら計測することができ、そのため、１回の計測によって（最小傾斜角から最大傾斜角まで変化する期間に）、対象の３次元形状を計算することができる。また、対象が停止していても、その３次元形状を計算することができる（ただし、対象が動いていれば、多様な位置関係で計測が行えるので、３次元形状の計算精度が高まる点で好ましい）。
【００３４】
また、スキャン面の傾斜角がこのように変化することで、計測領域が拡がると共に、複数の対象が密集している状態でも、対象群を直上ないしその近傍から計測した計測データに基づいて１つ１つの対象に容易に分離することができる。そして、様々な傾斜角で計測した計測データに基づいて、分離した１つ１つの対象の３次元形状を精度よく計算することができる。
【００３５】
ここで、このように距離画像センサ１２を利用する人追跡システムを実現するコンピュータ１４の処理手順を説明するが、詳しい処理手順は、本件出願人の出願に係る、同時係属中の特開２０１２‐２１５５５５号に説明されているので、その記述を引用することとし、ここでは概要を説明するにとどめる。
【００３６】
コンピュータ１４は、まず、各距離画像センサ１２からの計測データに基づいて、対象の状態（たとえば位置，移動方向，３次元形状および姿勢など）をパーティクルフィルタでリアルタイムに推定する状態推定処理を実行する。
【００３７】
この実施例では、たとえば図８に示すように、人の上方に設置した３次元距離画像センサ１２からの検出データを、頭の高さおよび肩の高さの２つの高さでクラスタリング処理を行い、クラスタの最も長い線（主成分分析）から肩ラインを計算する。そして、肩ラインの上にあるクラスタを頭とし、頭の重心位置をその人の位置（x,y）とした。ただし、肩のクラスタのやや前方に頭のクラスタが存在するというモデルに従った。そして、肩ラインと直交する前方を人の体の向き（移動方向θ）とする。
【００３８】
ただし、このようなクラスタリングから人の位置や移動方向を抽出する方法は、一例として、上述の特開２０１２‐２１５５５５号や論文D. Brscic, T. Kanda, T. Ikeda, T. Miyashita, Person tracking in large public spaces using 3D range sensors, IEEE Transactions on Human-Machine Systems, Vol. 43, No. 6, pp. 522-534, 2013に詳しく説明されているので、ここでは詳細は省略する。
【００３９】
なお、パーティクルフィルタは、よく知られているように、予測および観測を繰り返すことによって現在の対象の状態を推定する時系列フィルタの一種であり、具体的には、現状態から起こりうる次状態を多数のパーティクルに見立てて、観測された状態との間の尤度（類似度）をパーティクル毎に求め、全パーティクルを尤度に応じて加重平均した結果を現在の対象の状態であると推定する。そして、重みに従う新たなパーティクルを発生させ、同様の処理を繰り返すことで、対象の状態を逐次推定することができる。
【００４０】
状態推定処理では、１つ１つの対象の状態を専用のパーティクルフィルタで推定する。したがって、たとえば１０個の対象が検出されている状態では、１０個のパーティクルフィルタが並列に動作しており、別の対象が検出されると、１１個目のパーティクルフィルタが新たに生成される。
【００４１】
コンピュータ１４はまた、上記のような状態推定処理と並列的に、各対象の状態に基づいて、各対象が「１人」であるかグループに属するかを推定するグループ推定処理、および各対象が個別に行う行動（たとえば店舗や案内板を見る行動）を推定する個別行動推定処理をも実行する。
【００４２】
そして、各種の推定処理が完了した後、コンピュータ１４はさらに、推定結果に基づいてグループ行動を解析する。このグループ行動解析処理では、各グループを「友達同士」、「家族連れ」、「カップル」などのカテゴリに分類したり、個別行動情報をグループ毎に解析してグループ行動情報を作成したり、グループ行動情報をカテゴリ毎に解析してグループ行動パターンたとえば、友人同士が特定の店舗や案内板に注目したり、家族連れが特定の通路を通ったり、といった行動パターン）情報を作成したりする。
【００４３】
ただし、この実施例では、後に図７を参照して詳細に説明するように、上述のようにして計測したデータの、現時刻ｔからΔｔ秒前までの、全ての人の位置情報（ｘ，ｙ，ｚ）、履歴に基づく移動速度ｖや移動方向θを利用して、グループ認識処理を実行する。
【００４４】
図２に示すメモリ１６はＲＯＭ、ＨＤＤおよびＲＡＭなどを含む。ＲＯＭおよびＨＤＤには、コンピュータ１４の動作を制御するための制御プログラムが予め記憶される。また、ＲＡＭは、コンピュータ１４のワークメモリやバッファメモリとして用いられる。
【００４５】
通信ＬＡＮボード１８は、たとえばＤＳＰで構成され、コンピュータ１４から与えられた送信データを無線通信モジュール２２に与え、無線通信モジュール２２は送信データを、ネットワーク２４を介してロボット１０に送信する。たとえば、送信データは、ロボット１０の自律移動に必要なデータや、サービスを提供ために必要なデータおよびロボット１０に指示する行動命令の信号（コマンド）などである。また、通信ＬＡＮボード１８は、無線通信モジュール２２を介してデータを受信し、受信したデータをコンピュータ１４に与える。
【００４６】
なお、コンピュータ１４は、ディスプレイなどの出力装置と、マウスおよびキーボードなどの入力装置とを備えていてもよい。
【００４７】
ここで、図２および図３を参照して、この発明の理解に必要な範囲でロボット１０の構成について説明する。ロボット１０は台車３０を含み、台車３０の下面にはロボット１０を自律移動させる２つの車輪３２および１つの従輪３４が設けられる。２つの車輪３２は車輪モータ３６（図３参照）によってそれぞれ独立に駆動され、台車３０すなわちロボット１０を前後左右の任意方向に動かすことができる。
【００４８】
台車３０の上には、円柱形のセンサ取り付けパネル３８が設けられ、このセンサ取り付けパネル３８には、多数の距離センサ４０が取り付けられる。これらの距離センサ４０は、たとえば赤外線や超音波などを用いてロボット１０の周囲の物体（人や障害物など）との距離を測定するものである。
【００４９】
センサ取り付けパネル３８の上には、胴体４２が直立して設けられる。また、胴体４２の前方中央上部（人の胸に相当する位置）には、上述した距離センサ４０がさらに設けられ、ロボット１０の前方の主として人との距離を計測する。また、胴体４２には、その側面側上端部のほぼ中央から伸びる支柱４４が設けられ、支柱４４の上には、全方位カメラ４６が設けられる。全方位カメラ４６は、ロボット１０の周囲を撮影するものであり、後述する眼カメラ７０とは区別される。この全方位カメラ４６としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。
【００５０】
胴体４２の両側面上端部（人の肩に相当する位置）には、それぞれ、肩関節４８Ｒおよび肩関節４８Ｌによって、上腕５０Ｒおよび上腕５０Ｌが設けられる。図示は省略するが、肩関節４８Ｒおよび肩関節４８Ｌは、それぞれ、直交する３軸の自由度を有する。すなわち、肩関節４８Ｒは、直交する３軸のそれぞれの軸廻りにおいて上腕５０Ｒの角度を制御できる。肩関節４８Ｒの或る軸（ヨー軸）は、上腕５０Ｒの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節４８Ｌは、直交する３軸のそれぞれの軸廻りにおいて上腕５０Ｌの角度を制御できる。肩関節４８Ｌの或る軸（ヨー軸）は、上腕５０Ｌの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。
【００５１】
また、上腕５０Ｒおよび上腕５０Ｌのそれぞれの先端には、肘関節５２Ｒおよび肘関節５２Ｌが設けられる。図示は省略するが、肘関節５２Ｒおよび肘関節５２Ｌは、それぞれ１軸の自由度を有し、この軸（ピッチ軸）の軸回りにおいて前腕５４Ｒおよび前腕５４Ｌの角度を制御できる。
【００５２】
前腕５４Ｒおよび前腕５４Ｌのそれぞれの先端には、人の手に相当するハンド５６Ｒおよびハンド５６Ｌがそれぞれ設けられる。これらのハンド５６Ｒおよび５６Ｌは、詳細な図示は省略するが、開閉可能に構成され、それによってロボット１０は、ハンド５６Ｒおよび５６Ｌを用いて物体を把持または挟持することができる。ただし、ハンド５６Ｒ、５６Ｌの形状は実施例の形状に限らず、人の手に酷似した形状や機能を持たせるようにしてもよい。
【００５３】
また、図示は省略するが、台車３０の前面、肩関節４８Ｒと肩関節４８Ｌとを含む肩に相当する部位、上腕５０Ｒ、上腕５０Ｌ、前腕５４Ｒ、前腕５４Ｌ、ハンド５６Ｒおよびハンド５６Ｌには、それぞれ、接触センサ５８（図３で包括的に示す）が設けられる。台車３０の前面の接触センサ５８は、台車３０への人間１６や他の障害物の接触を検知する。したがって、ロボット１０は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪３２の駆動を停止してロボット１０の移動を急停止させることができる。また、その他の接触センサ５８は、当該各部位に触れたかどうかを検知する。
【００５４】
胴体４２の中央上部（人の首に相当する位置）には首関節６０が設けられ、さらにその上には頭部６２が設けられる。図示は省略するが、首関節６０は、３軸の自由度を有し、３軸の各軸廻りに角度制御可能である。或る軸（ヨー軸）はロボット１０の真上（鉛直上向き）に向かう軸であり、他の２軸（ピッチ軸、ロール軸）は、それぞれ、それと異なる方向で直交する軸である。
【００５５】
頭部６２には、人の口に相当する位置に、スピーカ６４が設けられる。スピーカ６４は、ロボット１０が、それの周辺の人に対して音声によってコミュニケーションをとるために用いられる。また、人の耳に相当する位置には、マイク６６Ｒおよびマイク６６Ｌが設けられる。以下、右のマイク６６Ｒと左のマイク６６Ｌとをまとめてマイク６６ということがある。マイク６６は、周囲の音、とりわけコミュニケーションを実行する対象である人間１６の音声を取り込む。さらに、人の目に相当する位置には、右の眼球部６８Ｒおよび左の眼球部６８Ｌが設けられる。右の眼球部６８Ｒおよび左の眼球部６８Ｌは、それぞれ右の眼カメラ７０Ｒおよび左の眼カメラ７０Ｌを含む。以下、右の眼球部６８Ｒと左の眼球部６８Ｌとをまとめて眼球部６８ということがある。また、右の眼カメラ７０Ｒと左の眼カメラ７０Ｌとをまとめて眼カメラ７０ということがある。
【００５６】
眼カメラ７０は、ロボット１０に接近した人の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。この実施例では、ロボット１０は、この眼カメラ７０からの映像信号によって、人の左右両目のそれぞれの視線方向（ベクトル）を検出する。
【００５７】
また、眼カメラ７０は、上述した全方位カメラ４６と同様のカメラを用いることができる。たとえば、眼カメラ７０は、眼球部６８内に固定され、眼球部６８は、眼球支持部（図示せず）を介して頭部６２内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、２軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この２軸の一方は、頭部６２の上に向かう方向の軸（ヨー軸）であり、他方は、一方の軸に直交しかつ頭部６２の正面側（顔）が向く方向に直行する方向の軸（ピッチ軸）である。眼球支持部がこの２軸の各軸廻りに回転されることによって、眼球部６８ないし眼カメラ７０の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ６４、マイク６６および眼カメラ７０の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【００５８】
このように、この実施例のロボット１０は、車輪３２の独立２軸駆動、肩関節４８の３自由度（左右で６自由度）、肘関節５２の１自由度（左右で２自由度）、首関節６０の３自由度および眼球支持部の２自由度（左右で４自由度）の合計１７自由度を有する。
【００５９】
図３はロボット１０の電気的な構成を示すブロック図である。この図３を参照して、ロボット１０は、ＣＰＵ８０を含む。ＣＰＵ８０は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス８２を介して、メモリ８４、モータ制御ボード８６、センサ入力／出力ボード８８および音声入力／出力ボード９０に接続される。
【００６０】
メモリ８４は、図示は省略をするが、ＲＯＭ、ＨＤＤおよびＲＡＭを含む。ＲＯＭおよびＨＤＤには、後述の各種プログラムが予め記憶される。
【００６１】
モータ制御ボード８６は、たとえばＤＳＰで構成され、各腕や首関節６０および眼球部６８などの各軸モータの駆動を制御する。すなわち、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、右眼球部６８Ｒの２軸のそれぞれの角度を制御する２つのモータ（図３では、まとめて「右眼球モータ９２」と示す）の回転角度を制御する。同様にして、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、左眼球部６８Ｌの２軸のそれぞれの角度を制御する２つのモータ（図３では、まとめて「左眼球モータ９４」と示す）の回転角度を制御する。
【００６２】
また、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、肩関節４８Ｒの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節５２Ｒの角度を制御する１つのモータとの計４つのモータ（図３では、まとめて「右腕モータ９６」と示す）の回転角度を制御する。同様にして、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、肩関節４８Ｌの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節５２Ｌの角度を制御する１つのモータとの計４つのモータ（図３では、まとめて「左腕モータ９８」と示す）の回転角度を制御する。
【００６３】
さらに、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、首関節６０の直交する３軸のそれぞれの角度を制御する３つのモータ（図３では、まとめて「頭部モータ１００」と示す）の回転角度を制御する。そして、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、車輪３２を駆動する２つのモータ（図３では、まとめて「車輪モータ３６」と示す）の回転角度を制御する。
【００６４】
モータ制御ボード８６にはさらにハンドアクチュエータ１０８が結合され、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、ハンド５６Ｒ、５６Ｌの開閉を制御する。
【００６５】
センサ入力／出力ボード８８は、モータ制御ボード８６と同様に、ＤＳＰで構成され、各センサからの信号を取り込んでＣＰＵ８０に与える。すなわち、距離センサ４０のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード８８を通じてＣＰＵ８０に入力される。また、全方位カメラ４６からの映像信号が、必要に応じてセンサ入力／出力ボード８８で所定の処理を施してからＣＰＵ８０に入力される。眼カメラ７０からの映像信号も、同様にして、ＣＰＵ８０に入力される。また、上述した複数の接触センサ５８（図３では、まとめて「接触センサ５８」と示す）からの信号がセンサ入力／出力ボード８８を介してＣＰＵ８０に与えられる。音声入力／出力ボード９０もまた、同様に、ＤＳＰで構成され、ＣＰＵ８０から与えられる音声合成データに従った音声または声がスピーカ６４から出力される。また、マイク６６からの音声入力が、音声入力／出力ボード９０を介してＣＰＵ８０に与えられる。
【００６６】
また、ＣＰＵ８０は、バス８２を介して通信ＬＡＮボード１０２に接続される。通信ＬＡＮボード１０２は、たとえばＤＳＰで構成され、ＣＰＵ８０から与えられた送信データを無線通信モジュール１０４に与え、無線通信モジュール１０４は送信データを、ネットワークを介してサーバ（図示せず）等に送信する。また、通信ＬＡＮボード１０２は、無線通信モジュール１０４を介してデータを受信し、受信したデータをＣＰＵ８０に与える。
【００６７】
図５は図２に示すコンピュータ１４におけるメモリ１６のメモリマップの一例を示す図解図であり、メモリ１６はプログラム記憶領域２０２およびデータ記憶領域２０４を含む。プログラム記憶領域２０２には、上で説明した特開２０１２‐２１５５５５号が開示している計測プログラム２０６が記憶される。プログラム記憶領域２０２はさらに、図７に詳細に示すグループ認識プログラム２０８および図６に詳しく示すサービス提供プログラム２１０を含む。ただし、ループ認識プログラム２０８は、図１０に示す、グループ認識プログラムをチューニングするチューニングプログラムも含む。
【００６８】
データ記憶領域２０４には、計測データバッファ２１２が設けられる。計測データバッファ２１０には、上で説明したような人追跡システムによる計測結果、各対象の状態や属性／プロファイルを示す情報であり、状態としての位置、移動方向、３次元形状および姿勢、ならびに属性／プロファイルとしての身長、性別および大人／子供の区別がストアされる。ただし、グループ認識は、上述のグループ認識プログラム２０８で実行し、その結果がグループデータ２１４として、データ記憶領域２０４に記憶される。グループデータ２１４は、人の識別番号ｉｄのペア（ｉｄ１，ｉｄ２，）とグループかどうかを示すグループフラグ（図示せず）が格納される。もし、人ｉｄ１とｉｄ２が同一のグループの場合、グループデータ（ｉｄ１,ｉｄ２,ｔｒｕｅ（「１」））がグループデータ２１４として格納され、もし、人ｉｄ１とｉｄ３が同一グループでない場合、（ｉｄ１，ｉｄ３，ｆａｌｓｅ（「０」））がグループデータ２１４として格納される。
【００６９】
なお、地図データ２１６は、このサービス提供ロボットシステム１００が適用される場所、イベント会場、ショッピングセンタなどの商業施設などの地図であり、ロボット１０や人の位置を判別するためなどに使用される。
【００７０】
なお、データ記憶領域２０４には、図８で示す３次元形状モデルデータなどが記憶されるが、ここでは一例として、特開２０１２‐２１５５５５号を引用することによって、省略する。
【００７１】
図６を参照して、サービス提供処理の最初のステップＳ１では、コンピュータ１４は、図５に示す計測データバッファ２１０から、その時刻における、すべての人の位置情報（ｉｄ，ｘ，ｙ，ｚ）を取得する。ただし、ｉｄは各人の識別番号であり、ｘはｘ座標、ｙはｙ座標であり、ｚは人の背の高さである。なお、図１のショッピングモールにおいて、紙面の幅方向がｘ軸（ｘ座標）であり、紙面の奥行方向がＹ軸（ｙ座標）である。
【００７２】
次のステップＳ３において、コンピュータ１４は、ステップＳ１で取得した各人の位置情報に含まれる高さ情報ｚに基づいて、各人が大人か子供か判別する。ただし、このプログラムでは一例としてｚ情報が「１３０ｃｍ」未満の数値を示している人は「子供」と判定する。ただし、大人／子供の判定には他のパラメータを、高さ情報ｚとともに、または高さ情報ｚに代えて、採用してもよい。
【００７３】
続くステップＳ７でコンピュータ１４は、グループを同定する。つまり、各人の位置情報に基づいて同じグループに属する人のｉｄを１つのグループに纏める。なお、計測データバッファ２１０（図５）に、計測結果のデータとしてグループ情報が記憶されている場合には、このステップＳ７は省略してもよいが、この実施例では、先に説明したように、図７に示すグループ認識サブルーチンを実行することによって、グループを認識する。
【００７４】
ここで、図７を参照してグループ認識処理を説明する。図７の最初のステップＳ２１では、計測データバッファ２１２（図５）から、人追跡システムで計測し、取得した、現時刻ｔからΔｔ秒前までの、全ての人ｉｄ（ｉｄ＝人の識別番号）の位置情報（図８の×印の位置）ｘ，ｙ、人の高さｚ、人の移動速度ｖおよび人の移動方向θを取得する。
【００７５】
その後、ステップＳ２３で、コンピュータ１４は、グループを初期化する。つまり、すべての人を別のグループとして設定、要素数が「１」の集合｛ｐｉｄ｝を形成する。ただし、ｐｉｄは、集合に含まれる人ｐのｉｄを示す。
【００７６】
次いで、ステップＳ２５で、コンピュータ１４は、各人ｐ１の半径５ｍ以内にいる人の平均密度Ｄ（ｐ）を計算する。この平均密度Ｄ（ｐ）は、Δｔ秒間に人ｐ１を中心とした半径５ｍの範囲内に存在する人の数である。平均密度Ｇ（ｐ）が小さいほどグループを形成している可能性が高いので、後述のステップＳ３５では、この数値を使ってペア（ｐ１，ｐ２）が同じグループかどうか判定する。
【００７７】
ステップＳ２７‐Ｓ３３では、コンピュータ１４は、各人のペア（ｐ１，ｐ２）の位置情報（ｘ，ｙ）を使って、そのペアを形成している各人ｐ１およびｐ２の、移動軌跡の類似度ＳｉｍＴｒａｊ（ｐ１，ｐ２）、移動方向の類似度Ｓｉｍθ（ｐ１，ｐ２）の平均、移動速度の類似度ＳｉｍＶ（ｐ１，ｐ２）の平均、ペア間の人々の距離Ｄ（ｐ１，ｐ２）の平均を計算する。
【００７８】
移動軌跡が類似しているということは、同じグループである可能性が高いので、後述のステップＳ３５では、この数値ＳｉｍＴｒａｊ（ｐ１，ｐ２）を使ってペア（ｐ１，ｐ２）が同じグループかどうか判定することとした。つまり、従来のグループ認識で考慮されていない移動軌跡の類似度ＳｉｍＴｒａｊ（ｐ１，ｐ２）を第１パラメータとして用いることが、この実施例の特徴の１つである。
【００７９】
発明者等の実験によれば、グループどうしの振る舞いは、単に近くで同じ移動をしているだけではなく、たとえば、あるグループメンバが先行し、他のメンバがその後ろを追従する、といった、追従現象（たとえば、男性が先を歩き、女性がその後ろを追いかけるなど）も存在する。発明者等は、そうした追従現象時では、（たとえ回りにスペースがあっても）この２人は、ほぼ同じ場所を通ることを確認している。
【００８０】
この実施例において移動軌跡の類似度をグループ認識のパラメータとして採用する理由は、この追従現象をグループ認識に取り込むことである。
【００８１】
ただし、この移動軌跡の類似度は、一方で、周囲の密度Ｄがあまり高い場所（通路狭い通路なと）では、必ずしも正しい認識結果を出さないことがある。そこで、この実施例では、ステップＳ２５で計算する平均密度Ｄ（ｐ）を利用する。
【００８２】
このように、移動軌跡の類似性は、グループの認識特に追従現象を認識するのに多大に機能するが、上述のように各人の周囲の平均密度Ｄ（ｐ）によって認識結果が影響を受ける。
【００８３】
そこで、この実施例では、さらに移動方向の類似度等を、グループ認識のパラメータとして採用する。
【００８４】
すなわち、移動方向が類似しているということは、同じグループである可能性が高いので、後述のステップＳ３５では、第２パラメータである数値Ｓｉｍθ（ｐ1，ｐ2）を使ってペア（ｐ１，ｐ２）が同じグループかどうか判定する。同様の理由で、後述のステップＳ３５では、第３パラメータである移動速度の類似度ＳｉｍＶ（ｐ１，ｐ２）、さらには第４パラメータである平均移動距離ＡｖｇＤ（ｐ１，ｐ２）の数値を使ってペア（ｐ１，ｐ２）が同じグループかどうか判定する。
【００８５】
ただし、これらの第２‐第４パラメータは、従来のグループ認識方法においても使われることがある。それは、或る程度の時間（たとえば、５秒間）、或る程度近くで、或る程度同じ方向で、或る程度似た速度で移動している人どうしは、グループである、という考えに基づいている。
【００８６】
なお、第２‐第４パラメータは、すべてが利用される必要はなく、そのうちの少なくとも１つが、前述の第１パラメータ（移動軌跡の類似度）と共に用いられればよい。
【００８７】
そして、ステップＳ３５でコンピュータ１４は、たとえばＳＶＭ（サポートベクタマシン：support vector machine）等の学習機に上記で計算した、ＳｉｍＴｒａｊ（ｐ1，ｐ2）、Ｓｉｍθ（ｐ１，ｐ２）、ＳｉｍＶ（ｐ１，ｐ２）、ＡｖｇＤ（ｐ１，ｐ２）を投入して、ペア（ｐ１，ｐ２）が同じグループに含まれるかどうか判定する。ただし、学習機による他、グループを形成するかどうかの確率の計算には、計算テーブルの利用、数式のモデル化が考えられる。
【００８８】
なお、ステップＳ３５では、移動軌跡の類似度ＳｉｍＴｒａｊ（ｐ１，ｐ２）が所定の閾値を超えて、２人の移動軌跡が非類似である場合、そのことだけで２は別のグループに属するという判定を行ってもよい。つまり、移動軌跡の類似度ＳｉｍＴｒａｊ（ｐ１，ｐ２）に最も大きい重み（weight）を付与しておき、まず、移動軌跡の類似度ＳｉｍＴｒａｊ（ｐ１，ｐ２）に基づいて同一グループかどうか判定し、その結果同一グループであると認識したペアについて、上記の第２パラメータ‐第４パラメータを用いて、同一グループかどうか判定するようにしてもよい。
【００８９】
そして、ステップＳ３５で同一グループを形成すると判定したＰｇｒｏｕｐ（ｐ１，ｐ２）が同一グループに含まれる場合、ｐ１およびｐ２の集合を結合する。
【００９０】
このようにして、図９で示すようなグループが認定される。図９に示すように、Ｐｇｒｏｕｐ（ｐ１,ｐ２）が同一グループと判定されたペアは、直線で結ばれる。また、破線で囲まれた領域が同一のグループとして認識される。このようなグループとそれを構成する構成員および構成員の属性（大人、子供など）がグループデータとして、図５に示すデータ記憶領域２０４に記憶される。
【００９１】
なお、上述の説明では、平均密度Ｇ（ｐ）、移動軌跡の類似度ＳｉｍＴｒａｊ（ｐ１，ｐ２）、移動方向の類似度Ｓｉｍθ（ｐ１，ｐ２）、移動速度の類似度ＳｉｍＶ（ｐ１，ｐ２）、平均移動距離ＡｖｇＤ（ｐ１，ｐ２）を、たとえばＳＶＭのような判定器に投入したが、これらの数値を全部使用する必要はなく、必要な１つ以上の数値を用いてグループを認識することができる。特に、移動軌跡の類似度ＳｉｍＴｒａｊ（ｐ１，ｐ２）、移動方向の類似度Ｓｉｍθ（ｐ１，ｐ２）、移動速度の類似度ＳｉｍＶ（ｐ１，ｐ２）あるいは平均移動距離ＡｖｇＤ（ｐ１，ｐ２）のような時系列的な類似性に基づいて、ペア（ｐ１，ｐ２）が同じグループかどうか判定すればよい。
【００９２】
このようにして、グループと各グループに属する人を特定した後、ステップＳ７で、コンピュータ１４は、図５のグループデータ２１４を参照して、グループ構成の認識処理を行う。つまり、グループ毎に、含まれている大人と子供の情報（ステップＳ３）から、構成員ラベルを判定して、そのグループに大人と子供が含まれている場合「家族連れ」、グループがすべて大人の場合「大人のみ」、グループがすべて子供の場合「子供のみ」と分類する。
【００９３】
コンピュータ１４は、ステップＳ９において、各人の位置情報を参照して、ロボット１０が話しかけられる範囲（たとえば半径２‐２０ｍの範囲）内に人が存在するかどうか判断する。
【００９４】
このステップＳ９で“ＮＯ”が判断されれば、先のステップＳ１に戻り、“ＹＥＳ”なら、コンピュータ１４は、次のステップＳ１１を実行して、たとえばロボット１０に最も近い人のような、ロボット１０が話しかける対象を、選択する。
【００９５】
そして、ステップＳ１３で、たとえば図１０に示すような、先のステップＳ７で認識したそのグループの属性に適合する（ふさわしい）発話コンテンツを、発話コンテンツデータベース２０から選択し、ステップＳ１５でその発話コンテンツに従って発話する。
【００９６】
たとえば、構成員がすべて大人であるグループの人に話かける場合、アルコール類の割引情報をコンテンツとして発話する。構成員が家族連れであるグループの人に話かける場合、ファミリーレストランの割引情報をコンテンツとして発話する。構成員がすべて子供であるグループの人に話かける場合、おもちゃ屋さんのイベント情報をコンテンツとして発話する。グループがカップルである場合、たとえばケーキ屋のペア招待券の情報をコンテンツとして発話する。
【００９７】
ただし、コンテンツを提供する発火条件としては、グループの属性だけでなく、特定の時間や、特定の場所なども発火条件として加味することも考えられる。
【００９８】
さらに、提供するサービスも、発話コンテンツに従った発話だけでなく、ロボットの手足を使って表現するコンテンツ、連携する機器（たとえば、ディスプレイ等）を使って費用減するコンテンツがあってもよい。
【００９９】
さらに、提供するサービスとしては、店舗や商品の割引券やクーポンを配るようなサービスがあってもよい。この場合、ロボット１０にプリンタ（図示せず）を搭載し、ロボット１０がその場で割引券やクーポンを印刷して配るようにすることも考えられる。
【０１００】
この実施例では、グループの属性に合ったサービスを提供するので、サービス提供の成功率が高く、サービスを効率的に提供することができる。
【０１０１】
なお、図９のＧｒｏｕｐ３のように、要素数が１の場合、すなわちグループを構成していない人に対しても、その人が大人か、子供か、男性か、女性か、などの属性に応じてコンテンツを選択して提供することもできる。
【０１０２】
図１１は、図７に示すグループ認識処理が正しくグループを認識するかどうかパラメータをチューニングするための動作を示すフロー図である。
【０１０３】
このチューニング処理の最初のステップＳ４１では、コンピュータ１４は、チューニング用のデータセットから、Δｔ秒間のすべての人の位置情報（ｉｄ，ｘ，ｙ，ｚ）および移動情報（ｖ，θ）を取得する。
【０１０４】
このチューニング用のデータセットは、人位置計測システムの結果のデータにグループ関係のラベルの有無を付加したデータで、別途データベースとして準備したものである。位置情報（ｔ，ｉｄ，ｘ，ｙ，ｚ，ｖ，θ）が記載された移動軌跡データベース（計測データ２１２に相当する）と、グループラベルデータベース（グループデータ２１４に相当する）で構成されている。グループデータ２１４は、前述のように、ｉｄのペアとグループ情報（フラグ）の３つのデータを含む。
【０１０５】
その後ステップＳ４３‐Ｓ５１では、先に説明した図７のステップＳ２５‐Ｓ３３と同様の処理を実行する。
【０１０６】
そして、ステップＳ５３において、各人のペア（ｐ１，ｐ２）が同じグループに含まれるか、含まれないかを示すクラス情報Ｃを読み出す。クラス情報Ｃ＝０が、ペア（ｐ１，ｐ２）が別グループであることを示し、Ｃ＝１が同じグループであることを示す。
【０１０７】
そして、ステップＳ５５で、たとえばＳＶＭへ各数値ＳｉｍＴｒａｊ（ｐ1，ｐ2）、Ｓｉｍθ（ｐ１，ｐ２）、ＳｉｍＶ（ｐ１，ｐ２）、ＡｖｇＤ（ｐ１，ｐ２）を投入した際、クラス情報Ｃを予測率が最も高くなるように、ＳＶＭのパラメータをチューニングする。
【０１０８】
それによって、図７のグループ認識処理において、正しくグループ認識を行えるようになる。
【０１０９】
詳しく説明すると、ＳＶＭのような学習器では、通常、学習用のパラメータ（ＳＶＭの場合、認識方法を決定するカーネル関数の種類（線形、ガウシアン関数）やそれらの基本パラメータなど）が複数存在する。そして、学習用のパラメータを決定した後、学習用データと正解ラベルを与えることで、認識率が最も高くなるよう内部変数の調整（＝学習）を行う。しかしながら、学習パラメータ毎に認識率に違いがでるため、最も高い認識率を示す数字を探す必要があり、そのような作業を「チューニング」と呼ぶ。
【０１１０】
さらには、過学習を避けるための作業も実施するが、その点はこの発明に係る点ではなくかつ当該分野ではよく知られていることなので、ここではこれ以上の説明は省略する。
【０１１１】
なお、この発明に利用できるコミニュケーションロボットは、図３および図４の実施例で説明したロボット１０に限定されるものではない。
【０１１２】
さらに、ロボット１０の周囲の人の位置や姿勢などを検出するための人追跡システムも、実施例で説明したシステムに限定されるものではない。他の構成の人追跡システムが利用されてもよい。
【０１１３】
さらに、実施例では遠隔操作コンピュータ１４がロボット１０に命令を与えてサービスを提供させたが、コンピュータ１４に代わって、ロボット１０たとえば図４のＣＰＵ８０が計測プログラム２０６、グループ認識プログラム２０８および／またはサービス提供プログラム２１０（図５）を実行するようにしてもよい。
【符号の説明】
【０１１４】
１０  …ロボット
１２  …距離画像センサ
１４  …コンピュータ
１００  …サービス提供ロボットシステム
【図１】
0006713637.tif 000002
【図２】
0006713637.tif 000003
【図３】
0006713637.tif 000004
【図４】
0006713637.tif 000005
【図５】
0006713637.tif 000006
【図６】
0006713637.tif 000007
【図７】
0006713637.tif 000008
【図８】
0006713637.tif 000009
【図９】
0006713637.tif 000010
【図１０】
0006713637.tif 000011
【図１１】
0006713637.tif 000012