図1を参照して、この実施例のロボット制御システム100は、展示物Eが置かれた展示会場などの空間(環境)で利用される。展示会場の中では、ユーザ(来場者)およびロボット10が任意に移動することができ、天井には、この展示会場内でのすべてのユーザの位置やその身体の向きを検出するための複数の距離画像センサ12(12a,12b,…)が設けられている。
ロボット10は、相互作用指向のロボット(コミュニケーションロボット)でもあり、ユーザのようなコミュニケーションの対象との間で、身振り手振りのような身体動作や音声でのコミュニケーション行動を実行する機能を備えている。また、ロボット10はコミュニケーションの一環として、展示物Eについての説明(発話コンテンツ)をユーザに対して出力したり、展示会場を案内したりするサービスを行う。ロボット10は、サービスを行う上で必要であれば、展示会場内を自律的に移動したり、中央制御装置14が付与する行動命令に基づいて動作したりする。
また、実施例の空間は展示物Eが置かれた展示会場であるが、これに限らずショッピングモール、会社のフロア、博物館またはアトラクション会場などでも、ロボット制御システム100は利用可能である。
なお、図1では簡単のため、ユーザは1人しか示していないが、展示会場にはさらに多くのユーザがいてもよい。同様にロボット10も1台しか示していないが、ロボット制御システム100は2台より多くのロボット10を同時に制御することができる。
図2はこのような展示会場(空間)の平面的な位置を示す地図である。図2を参照して、展示会場には、複数の(この実施例では3つの)展示物E(E1,E2,E3)が展示される。展示会場には出入口が形成され、この出入口にはRFIDタグのデータを読み取るためのタグリーダ13(図3、図4)が設置されている。たとえば、ユーザは、自身が持つRFIDタグをタグリーダに読み取らせた後、展示会場に入場する。RFIDタグにはユーザIDが記憶されており、タグリーダはRFIDタグからユーザIDを読み取り、それを中央制御装置14(図3、図4)に送信する。
なお、RFIDタグとしては任意のものが利用可能である。ただし、この実施例は、同じ来場者が2回目以降に来場した際に、前回の閲覧行動の履歴を参照して、適切な案内情報を提示する(たとえば、発話コンテンツを出力する)ことを意図したものであるので、この実施例では来場者(ユーザ)を個別的に特定する必要がある。そのため、実施例で用いられるRFIDタグとしては、各個人に固有のものである、たとえば会員カード、携帯電話機(スマートフォンを含む)、車のキーなどに仕込まれたものが考えられる。
ただし、展示会場の出入口に、カメラを設けておき、そのカメラで撮影したユーザの顔画像を画像処理することによって、ユーザ個人を特定するようにしてもよい。そうすれば、ユーザにRFIDタグを提示させる面倒が回避できる。
展示会場内の各展示物E1、E2、E3にはそれぞれ説明可能範囲A1、A2、A3が設定されている。説明可能範囲Aとは、ユーザがこの範囲に入っていれば、当該展示物に対する説明(案内情報)をロボット10がユーザに提供する、そのような範囲のことである。これら説明可能範囲A1、A2、A3の位置、形状、サイズなどの座標データは、対応の展示物E1、E2、E3の重心C1、C2、C3の位置、形状、サイズなどの座標データと一緒に、後述の地図データ332(図7)として、予め記憶されている。
なお、この実施例では、ユーザが各展示物Eiの説明可能範囲Ai内に存在するとき、そのユーザは展示物Eiを閲覧したものとみなす。
図3を参照して、ロボット制御システム100の中央制御装置14は、一定時間(たとえば、1秒)毎に距離画像センサ12a,12b、…によって、任意に移動するユーザの位置を検出すると共に、ユーザの向きを検出する。また、中央制御装置14は、ネットワーク1000を介してロボット10と無線通信を行い、必要であればロボット10の行動を制御する。
図3は中央制御装置14の電気的な構成を示すブロック図である。図3を参照して、中央制御装置14は、距離画像センサ12a,12bおよびプロセサ16などを含む。プロセサ16は、コンピュータ或いはCPUと呼ばれることもある。プロセサ16には、先述した距離画像センサ12aおよび距離画像センサ12bに加えて、他の距離画像センサ12が接続される。なお、距離画像センサ12a,12bを区別する必要がない場合、単に「距離画像センサ12」と言う。
プロセサ16にはメモリ18および通信LANボード20が接続される。
距離画像センサ12は、赤外光またはレーザーなどの光を照射し、対象物から反射した光(反射光)をCCDセンサなどの光学センサによって捉える。距離画像センサ12は、光が戻るまでの時間を画素毎に計測することで、対象物までの実際の距離を測定する。実施例の距離画像センサ12には、ASUS(登録商標)製のXtion(登録商標)と呼ばれる製品が採用されている。なお、他の実施例では、距離画像センサ12は、Microsoft(登録商標)製のKinect(登録商標)センサ、パナソニック(登録商標)製の3次元距離画像センサD-IMager(登録商標)などを使用することも可能である。この種のセンサは、3次元距離計測センサ、3Dスキャナなどと呼ばれる場合もある。
プロセサ16は、このような距離画像センサ12を通じて対象(ユーザ)の3次元情報を取得する。距離画像センサ12からの3次元情報には、対象の形状および対象までの距離が含まれている。たとえば、ユーザが天井に設けられた距離画像センサ12によってセンシングされると、ユーザを上から見た状態の頭部および両肩の形状と、頭部および両肩までの距離が3次元情報として得られる。
たとえば、展示会場には35個の距離画像センサ12が所定の位置(既知)に設置されており、プロセサ16は、各々から3次元情報を取得して、3次元空間(ワールド座標系)における位置(たとえば、重心など特徴点の位置座標(x,y,z))およびユーザの向き(たとえば、頭部および両肩など特徴部位の向き)を計算することができる。
なお、他の実施例では、距離画像センサ12ではなく、2次元または3次元のLRFを利用して、ユーザの位置および向きが検出されてもよい。
メモリ18はROM,HDDおよびRAMを含む。ROMおよびHDDには、中央制御装置14の動作を制御するための制御プログラム予め記憶される。また、RAMは、プロセサ16のワークメモリやバッファメモリとして用いられる。
通信LANボード20は、たとえばDSPで構成され、プロセサ16から与えられた送信データを無線通信装置22に与え、無線通信装置22は送信データを、ネットワーク1000を介してロボット10に送信する。たとえば、送信データは、ロボット10の自律移動に必要なデータや、サービスを行うために必要なデータおよびロボット10に指示する行動命令の信号(コマンド)などである。また、通信LANボード20は、無線通信装置22を介してデータを受信し、受信したデータをプロセサ16に与える。
なお、他の実施例では、中央制御装置14は、ディスプレイなどの出力装置と、マウスおよびキーボードなどの入力装置とを備えていてもよい。
図5はこの実施例のロボット10の外観を示す正面図である。図5を参照して、ロボット10は台車40を含み、台車40の下面にはロボット10を自律移動させる2つの車輪42および1つの従輪44が設けられる。2つの車輪42は車輪モータ46(図6参照)によってそれぞれ独立に駆動され、台車40すなわちロボット10を前後左右の任意方向に動かすことができる。また、従輪44は車輪42を補助する補助輪である。したがって、ロボット10は、配置された空間内を自律制御によって移動可能である。
台車40の上には、円柱形のセンサ取り付けパネル48が設けられ、このセンサ取り付けパネル48には、多数の赤外線距離センサ50が取り付けられる。これらの赤外線距離センサ50は、センサ取り付けパネル48すなわちロボット10の周囲の物体(ユーザや障害物など)との距離を測定するものである。
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、LRFや、超音波距離センサおよびミリ波レーダなどを用いることもできる。
センサ取り付けパネル48の上には、胴体52が直立するように設けられる。また、胴体52の前方中央上部(ユーザの胸に相当する位置)には、上述した赤外線距離センサ50がさらに設けられ、ロボット10の前方の主としてユーザとの距離を計測する。また、胴体52には、その側面側上端部のほぼ中央から伸びる支柱54が設けられ、支柱54の上には、全方位カメラ56が設けられる。全方位カメラ56は、ロボット10の周囲を撮影するものであり、後述する眼カメラ80とは区別される。この全方位カメラ56としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ50および全方位カメラ56の設置位置は、当該部位に限定されず適宜変更され得る。
胴体52の両側上端部(ユーザの肩に相当する位置)には、それぞれ、肩関節58Rおよび肩関節58Lによって、上腕60Rおよび上腕60Lが設けられる。図示は省略するが、肩関節58Rおよび肩関節58Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節58Rは、直交する3軸のそれぞれの軸廻りにおいて上腕60Rの角度を制御できる。肩関節58Rの或る軸(ヨー軸)は、上腕60Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節58Lは、直交する3軸のそれぞれの軸廻りにおいて上腕60Lの角度を制御できる。肩関節58Lの或る軸(ヨー軸)は、上腕60Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
また、上腕60Rおよび上腕60Lのそれぞれの先端には、肘関節62Rおよび肘関節62Lが設けられる。図示は省略するが、肘関節62Rおよび肘関節62Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕64Rおよび前腕64Lの角度を制御できる。
前腕64Rおよび前腕64Lのそれぞれの先端には、手66Rおよび手66Lがそれぞれ設けられる。各手66には、ユーザと同じように親指、ユーザ差し指、中指、薬指および小指が設けられている。手66の親指およびユーザ差し指の根本には指関節(図示せず)が設けられており、それぞれを独立して動かすことができる。また、中指、薬指および小指は一体成型され、親指およびユーザ差し指と同様、根元に指関節が設けられている。そして、中指、薬指および小指はまとめて動かすことが出来る。
また、手66Rおよび手66Lのそれぞれ根元には、手首が設けられる。図示は省略するが、左右の手首は、それぞれ1軸の自由度を有し、この軸(ヨー軸)の軸回りにおいて手66Rおよび手66Lの角度を制御できる。また、図示は省略するが手66Rおよび手66Lの親指、ユーザ差し指および残りの3本の指(中指、薬指および小指)の指関節は、それぞれ1自由度を有し、この軸の軸回りにおいて指の角度を制御できる。
従って、ロボット10は、親指、中指、薬指および小指が折り曲げられた指さしの状態の手66で任意の対象をポインティングしたり、手を開いた状態で上腕60、前腕64および手66の全体を使って任意の対象をポインティングしたりすることが可能となる。そのため、上腕60、前腕64および手66はポインティング手段と呼ばれることもある。
なお、他の実施例では、ユーザと同じようにそれぞれの指が独立し、かつユーザの指と同じ数の指関節を持つ手66が採用されてもよい。この場合、ロボット10は、ポインティングだけでなく、物を指で掴んだり、手話によるコミュニケーションを行ったりすることが可能となる。
また、図示は省略するが、台車40の前面、肩関節58Rと肩関節58Lとを含む肩に相当する部位、上腕60R、上腕60L、前腕64R、前腕64L、手66Rおよび手66Lには、それぞれ、接触センサ68(図5で包括的に示す)が設けられる。台車40の前面の接触センサ68は、台車40へのユーザや他の障害物の接触を検知する。したがって、ロボット10は、自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪42の駆動を停止してロボット10の移動を急停止させることができる。また、その他の接触センサ68は、当該各部位に触れたかどうかを検知する。なお、接触センサ68の設置位置は、当該部位に限定されず、適宜な位置(ユーザの胸、腹、脇、背中および腰に相当する位置)に設けられてもよい。
胴体52の中央上部(ユーザの首に相当する位置)には首関節70が設けられ、さらにその上には頭部72が設けられる。図示は省略するが、首関節70は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット10の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
頭部72には、ユーザの口に相当する位置に、スピーカ74が設けられる。スピーカ74は、ロボット10が、それの周辺のユーザに対して音声ないし音によってコミュニケーションを取るためや、後述の発話コンテンツをユーザに対して出力するためなど用いられる。また、ユーザの耳に相当する位置には、マイク76Rおよびマイク76Lが設けられる。以下、右のマイク76Rと左のマイク76Lとをまとめてマイク76と言うことがある。マイク76は、周囲の音、とりわけコミュニケーションを実行する対象であるユーザの音声を取り込む。さらに、ユーザの目に相当する位置には、眼球部78Rおよび眼球部78Lが設けられる。眼球部78Rおよび眼球部78Lは、それぞれ眼カメラ80Rおよび眼カメラ80Lを含む。以下、右の眼球部78Rと左の眼球部78Lとをまとめて眼球部78と言うことがある。また、右の眼カメラ80Rと左の眼カメラ80Lとをまとめて眼カメラ80と言うことがある。
眼カメラ80は、ロボット10に接近したユーザの顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ80は、上述した全方位カメラ56と同様のカメラを用いることができる。たとえば、眼カメラ80は、眼球部78内に固定され、眼球部78は、眼球支持部(図示せず)を介して頭部72内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部72の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部72の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部78ないし眼カメラ80の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ74、マイク76および眼カメラ80の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
このように、この実施例のロボット10は、車輪42の独立2軸駆動、肩関節58の3自由度(左右で6自由度)、肘関節62の1自由度(左右で2自由度)、手首の1自由度(左右で2自由度)、指関節の1自由度(左右の各指で6自由度)、首関節70の3自由度および眼球支持部の2自由度(左右で4自由度)の合計25自由度を有する。
図6はロボット10の電気的な構成を示すブロック図である。この図6を参照して、ロボット10は、プロセサ90を含む。プロセサ90は、マイクロコンピュータ或いはプロセサとも呼ばれ、バス92を介して、メモリ94、モータ制御ボード96、センサ入力/出力ボード98、音声入力/出力ボード110および通信LANボード130に接続される。
メモリ94はROMおよびRAMを含む。ROMには、ロボット10の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力(センサ情報)を検知するための検知プログラムや、外部コンピュータ(中央制御装置14)との間で必要なデータやコマンドを送受信するための通信プログラムなどが記憶される。また、RAMは、プロセサ90のワークメモリやバッファメモリとして用いられる。
モータ制御ボード96は、たとえばDSPで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード96は、プロセサ90からの制御データを受け、右眼球部78Rの2軸のそれぞれの角度を制御する2つのモータ(図6では、まとめて「右眼球モータ112」と示す)の回転角度を制御する。同様に、モータ制御ボード96は、プロセサ90からの制御データを受け、左眼球部78Lの2軸のそれぞれの角度を制御する2つのモータ(図6では、まとめて「左眼球モータ114」と示す)の回転角度を制御する。
また、モータ制御ボード96は、プロセサ90からの制御データを受け、肩関節58Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節62Rの角度を制御する1つのモータとの計4つのモータ(図6では、まとめて「右腕モータ116」と示す)の回転角度を制御する。同様に、モータ制御ボード96は、プロセサ90からの制御データを受け、肩関節58Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節62Lの角度を制御する1つのモータとの計4つのモータ(図6では、まとめて「左腕モータ118」と示す)の回転角度を制御する。
また、モータ制御ボード96は、プロセサ90からの制御データを受け、右の手首の1軸の角度を制御する1つのモータと右手66Rの3つの指関節のそれぞれの角度を制御する3つのモータとの4つのモータ(図6では、まとめて「右手モータ120」と示す)の回転角度を制御する。同様に、モータ制御ボード96は、プロセサ90からの制御データを受け、左手の手首の1軸の角度を制御する1つのモータと左手66Lの3つの指関節のそれぞれの角度を制御する3つのモータとの4つのモータ(図6では、まとめて「左手モータ122」と示す)の回転角度を制御する。
ここで、指関節の角度は、モータの回転がそのまま反映されるわけではなく、モータの回転によって動作する流体圧シリンダによって制御される。具体的には、流体圧シリンダには、動作流体を移動させるピストンが移動自在に収容されており、このピストンの位置がモータの回転によって変化する。そして、流体圧シリンダの動きに応じて指関節の角度が変化する。なお、流体圧シリンダを用いたロボットの手については、たとえば特開2013−96514号公報に詳しく説明されているので、ここでは、その公開公報を参照することによって、詳細な説明を省略する。
さらに、モータ制御ボード96は、プロセサ90からの制御データを受け、首関節70の直交する3軸のそれぞれの角度を制御する3つのモータ(図6では、まとめて「頭部モータ124」と示す)の回転角度を制御する。
そして、モータ制御ボード96は、プロセサ90からの制御データを受け、車輪42を駆動する2つのモータ(図6では、まとめて「車輪モータ46」と示す)の回転角度を制御する。なお、この実施例では、車輪モータ46を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ46と同様に直流モータを用いるようにしてもよい。また、ロボット10の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更されてもよい。たとえば、他の実施例では、エアアクチュエータなどが適用されてもよい。
センサ入力/出力ボード98は、モータ制御ボード96と同様に、DSPで構成され、各センサからの信号を取り込んでプロセサ90に与える。すなわち、赤外線距離センサ50のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード98を通じてプロセサ90に入力される。また、全方位カメラ56からの映像信号が、必要に応じてセンサ入力/出力ボード98で所定の処理を施してからプロセサ90に入力される。眼カメラ80からの映像信号も、同様に、プロセサ90に入力される。また、上述した複数の接触センサ68(図6では、まとめて「接触センサ68」と示す)からの信号がセンサ入力/出力ボード98を介してプロセサ90に与えられる。
音声入力/出力ボード110もまた、同様に、DSPで構成され、プロセサ90から与えられる音声合成データに従った音声または声がスピーカ74から出力される。また、マイク76からの音声入力が、音声入力/出力ボード110を介してプロセサ90に与えられる。
通信LANボード130は、たとえばDSPで構成され、プロセサ90から与えられた送信データを無線通信装置132に与え、無線通信装置132は送信データを、ネットワーク1000を介して外部コンピュータ(中央制御装置14)に送信する。また、通信LANボード130は、無線通信装置132を介してデータを受信し、受信したデータをプロセサ90に与える。たとえば、送信データとしては、全方位カメラ56および目カメラ80によって撮影された周囲の映像データなどである。
図7は図4に示す中央制御装置14におけるメモリ18のメモリマップの一例を示す図解図である。図7で示すように、メモリ18はプログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、中央制御装置14を動作させるためのプログラムとして、オペレーティングシステム(OS)の他、展示会場に来場した各ユーザの閲覧行動の履歴を記録する記録プログラム310、各ロボットの動作を決定するための動作決定プログラム312などが記憶される。なお、図示は省略するが、このプログラム記憶領域302には、上述の距離画像センサ12の出力からユーザの位置および向きを検出するためのプログラムなども含まれる。
データ記憶領域304には、ユーザ情報バッファ330が設けられると共に、地図データ332が記憶される。たとえば、ユーザ情報バッファ330には、3次元情報に基づいて計算された、ユーザの位置およびユーザの向きがユーザ情報として一時的に記憶される。
地図データ332には、図2に示すような平面図を表す地図データが含まれる。地図データは、たとえば展示物Eおよびその展示物Eと対応する所定範囲の情報(座標)など、先に説明した種々の座標データを含む。
なお、図示は省略するが、データ記憶領域304には、様々な計算の結果を一時的に格納するバッファや、中央制御装置14の動作に必要な他のカウンタやフラグなども設けられる。
ユーザ管理テーブル334は、たとえば図8に示すものであり、ユーザ毎に、来場回数と、現在来場中かどうかを示す来場中フラグを記録するものであり、先に説明したように、出入口から入るときにRFIDを読み取ったことで、当該ユーザが来場したことを検知し、出入口から出るときにRFIDを読み取ったことで、当該ユーザが退場したことを検知することができる。ユーザが来場したとき来場回数がインクリメントされるとともに、来場中フラグがセットされる。ユーザが退場したとき来場中フラグがリセットされる。
閲覧行動テーブル336は、たとえば図9に示すものであり、ユーザ毎に、来場毎に、各展示物E1、E2、E3、…に対する当該ユーザの閲覧時間を記録する。図9は、たとえばユーザAAAについての閲覧行動テーブルを示すが、他のユーザについても同様のものが設けられる。この閲覧行動テーブル336も、先のユーザ管理テーブル334と同様に、該当のユーザが最初に来場したときにメモリ18内に形成され、その後の来場毎に来場回数がインクリメント(更新)される。そして、来場回毎に、そのユーザがどの展示物をどのぐらいの時間した閲覧したかが記録される。それとともに、この閲覧行動テーブル336には、そのユーザが展示会場内をどのように移動したかを示す移動軌跡を記録する。移動軌跡は、たとえばΔt秒ごとのユーザの位置を取得することによって、記録できる。ただし、図9ではこの移動軌跡については、煩瑣になるので、記載を省略している。
発話コンテンツテーブル338は、たとえば図10に示すように、コンテンツ番号毎に、発話コンテンツのデータが記録されている。この発話コンテンツは、展示会場や展示物に固有のものであるので、発話コンテンツテーブル338は展示会場や展示物が変更される都度、予め設定(準備)される。この実施例では、一例として、コンテンツ番号1は「前回はあまり見てくれなかったようですが、今回はゆっくりみてください。」という発話コンテンツであり、コンテンツ番号2は「前回は展示物Eiをよく見ていたようですが、今回は展示物Ejも見ていってください。」という発話コンテンツであり、コンテンツ番号3は「前回はいろいろ見ていただいたようですが、今回もじっくり見ていってください。」という発話コンテンツであり、コンテンツ番号4は「新しい展示物Enewがありますので、見て行ってください。」という発話コンテンツである。
コンテンツ番号1‐3は、上述のように、当該ユーザの前回来場時の閲覧行動に言及して、今回の閲覧を案内するものである。しかしながら、発話コンテンツは、このように前回来場時の閲覧行動に言及するものでなく、たとえばコンテンツ番号4のように、前回の閲覧行動の履歴には直接には関係しないが、過去の閲覧行動の履歴に関連する発話コンテンツであってもよい。
この実施例のロボット制御システム100では、ユーザの閲覧行動の履歴に基づいて発話コンテンツをこの発話コンテンツテーブル338から選択して、ユーザに案内情報として提供するものである。
このようなロボット制御システム100において、中央制御装置14は、展示会場の出入口(図2)に設けられたタグリーダ13が来場者のRFIDタグを読み取ると、図11の記録処理を実行する。
タグリーダ13から、読み取ったIDデータが中央制御装置14に入力されると、中央制御装置14は最初のステップS1において、そのときの来場者が1回目の来場かどうか、たとえば図8のユーザ管理テーブル334を参照することによって、判断する。たとえば、ユーザ管理テーブル334に記録がなければ、今回の来場が当該ユーザにとって1回目の来場であると判断することができる。そして、ステップS1で“YES”のとき、中央制御装置14は、次のステップS3において、ユーザ管理テーブル334および閲覧行動テーブル336に、そのユーザUiを登録するとともに、ユーザ管理テーブル334においてそのユーザについて来場中フラグをセットする。
ステップS1で“NO”を判断したとき、つまり、そのユーザUiが2回目以降の来場であると判断したときは、次のステップS3で、中央制御装置14はユーザ管理テーブル334および閲覧行動テーブル336を更新する。詳しく言うと、このステップS3では、ユーザ管理テーブル334の来場回数を更新するとともに、来場中フラグをセットする。さらに、このステップS3では、閲覧行動テーブル336に、今回来場分のデータを記録する記憶領域を確保する。たとえば、ユーザAAAが2回目の来場であれば、図9の「来場回数=2」の記憶領域を確保する。
ステップS3またはS5を経た後、中央制御装置14は、ステップS7において、ユーザUiの位置Pi(=x,y,θ)を取得する。詳しく言うと、中央制御装置14は、各距離画像センサ12からの距離情報を受け取り、その距離情報と各距離画像センサの既知の設置位置の情報に基づいて、ユーザの位置を計算することができる。ただし、角度θは、ユーザの向きを示す角度であり、一例として、図2の平面図において水平に対する角度で表される。このステップS7ではさらに、現在時刻と前回取得時刻との差Δt(秒)を計算する。閲覧行動テーブル336の移動軌跡を記録する。つまり、時間の経過とともに変化するユーザの位置を移動軌跡として記録する。
その後、ステップS9において、中央制御装置14は、それぞれの展示物Eiの説明可能範囲Aiにユーザが存在する時間(閲覧時間)を計測して、閲覧行動テーブル336の閲覧時間の欄に記録する。
このステップS7およびS9は、ステップS11でユーザが退場したことを検出するまで、そのユーザに対して繰り返し実行される。つまり、ユーザは、展示会場に入場してから退場するまで、距離画像センサ12によって追跡(トラッキング)され、どの展示物をどの程度の時間閲覧したかという閲覧行動や、移動軌跡が閲覧行動テーブル334に記録される。
ただし、このような閲覧行動テーブルを記録するための各ユーザのトラッキング方法はこの実施例に限られるものではなく、他の任意の方法で行われてもよい。
そして、ステップS11でユーザの退場を、たとえば先に説明したタグリーダ13からの情報に基づいて検出すると、ステップS13において、ユーザ管理テーブル334における該当するユーザの来場中フラグをリセットして、この記録処理を終了する。
なお、上述の実施例では、ユーザが入場してから退場するまでの閲覧行動を、リアルタイムで閲覧行動テーブル336中に記録するようにしたが、必ずしもユーザをトラッキングしながらリアルタイムで記録する必要はなく、上で説明したようなユーザの閲覧行動を示すデータをバッファに蓄積しておき、たとえばユーザが退場するときに、バッジ処理で、閲覧行動テーブル336を記録するようにしてもよい。
図12に示すロボット行動決定処理は、先の記録処理と同様に、展示会場に新しい来場者があったとき開始される。そして、ステップS21で終了しない限り、ステップS23に進み、ユーザUiの閲覧合計時間を計算する。図9のユーザAAAの閲覧行動テーブルでいえば、ユーザAAAは今回2回目の来場であるので、前回(1回目)の来場の際の閲覧行動の履歴を読み出し、それに含まれる閲覧時間を合計することによって、閲覧合計時間を計算する。
そして、ステップS25で、中央制御装置14は、計算した閲覧合計時間が所定時間、たとえば60秒未満かどうか判断する。ユーザAAAの1回目の閲覧合計時間は400秒(=300+60+40)であるので、ステップS25では“YES”が判断される。
したがって、次のステップS27では、中央制御装置14は、ロボット10をユーザUiに近づかせるように移動制御させるとともに、たとえば前回閲覧時間が最長の展示物Ei(実施例では、展示物E1)について、コンテンツ番号2の発話コンテンツを出力させる。たとえば、「前回は展示物Eiをよく見ていたようですが、今回は展示物Ejも見ていってください。」という発話コンテンツを、ロボット10の音声入力/出力ボード110を介してスピーカ74から出力させる。
逆に、前回の閲覧合計時間が所定時間(実施例では、60秒)未満の時、ステップS25で“NO”が判断される。その場合、中央制御装置14は、次のステップS29で、ロボット10をユーザUiに近づかせるように移動制御させるとともに、たとえばコンテンツ番号1の発話コンテンツを出力させる。たとえば、「前回はあまり見てくれなかったようですが、今回はゆっくり見てください。」という発話コンテンツを、ロボット10のスピーカ74から出力させる。
この実施例のように、ユーザの前回来場時の閲覧行動の履歴に言及するフレーズを含み、しかも今回来場時に適した発話コンテンツをロボットが出力するようにすれば、ユーザにより適切な案内情報を提供することができるだけでなく、ロボットがユーザをよく観察しているという強い印象をユーザに与えるので、顔なじみの説明員や店員に接する場合のように、ユーザのロボットに対する親近感を増すことが期待できる。
ただし、ステップS27および/またはS29でユーザに出力する発話コンテンツは、必ずしも前回来場時の閲覧行動の履歴に言及したものでなくてもよい。たとえば、新しい展示物が展示された場合などでは、前回来場時の閲覧行動の履歴に関係なく、図10の発話コンテンツテーブル338のコンテンツ番号4のような発話コンテンツを出力させるようにしてもよい。
その後、中央制御装置14は、ステップS31において、ロボット10に対して、同じユーザまたは別のユーザに対して適宜の案内行動を実施するよう、命令を与える。ただし、ロボット10の案内行動それ自体は重要ではないので、ここでは説明は省略する。
なお、上述の実施例では、ステップS25において前回来場時の閲覧合計時間が所定時間以上あるかどうかを判定することによって、ステップS27またはS29で出力する発話コンテンツを選択、決定したが、発話コンテンツを選択的に決定する要因としてはこの実施例の前回来場時の閲覧合計時間に限られるものではない。
たとえば、図11のステップS9で閲覧行動テーブル336に記録したユーザの移動軌跡に基づいて、発話コンテンツを選択または決定するようにしてもよい。たとえば、その移動軌跡をパターンで分類し、その分類に従って発話コンテンツを選択して出力するような実施例が考えられる。
また、さらにその他の実施例では、ロボット10がディスプレイを有している場合は、発話コンテンツに加えて映像コンテンツも利用してユーザに案内情報を提供するようにしてもよい。
上述の実施例では、図11の記録処理および図12の行動決定処理のいずれも、中央制御装置14によって実行するものとして説明した。しかしながら、これらの処理はロボット10がすべて実行するようにしてもよい。その場合には、図3に示す距離画像センサ12からの出力データやタグリーダ13からの出力データをロボット10のプロセサ90(図6)が直接受け取るようにすればよい。しかしながら、実施例と同様に距離画像センサ12からの出力データやタグリーダ13からの出力データは中央処理装置14に入力され、中央処理装置14で必要な処理を施した後、結果のデータだけをロボット10に与えるようにしてもよい。その方がロボット10のプロセサ90の処理負担が少なくなるので望ましいかもしれない。
上で説明した実施例では、ユーザに対して発話コンテンツとして案内情報を提供するロボット10は、車輪移動型のロボットであった。しかしながら、ロボットとしては他の形式のものが利用されてもよく、たとえば2足歩行型のロボットが用いられてもよい。
さらに、上述の実施例では、前回来場時の閲覧合計時間が所定時間より短いかどうか判断するために、図12のステップS25において「閲覧合計時間が60秒未満かどうか」を判断するようにした。しかしながら、必ずしも「未満」である必要はなく、「閲覧合計時間が60秒以下かどうか」判断するようにしてもよい。
また、本実施例で説明した複数のプログラムは、データ配信用のサーバのHDDに記憶され、ネットワークを介して本実施例と同等の構成のシステムに配信されてもよい。また、CD, DVD, BD (Blu-ray(登録商標)Disc)などの光学ディスク、USBメモリおよびメモリカードなどの記憶媒体にこれらのプログラムを記憶させた状態で、その記憶媒体が販売または配布されてもよい。そして、上記したサーバや記憶媒体などを通じてダウンロードされた、上記複数のプログラムが、本実施例と同等の構成のシステムに適用された場合、本実施例と同等の効果が得られる。
そして、本明細書中で挙げた、具体的な数値や具体的な発話コンテンツは、いずれも単なる例示であり、展示会場の種類やその他の仕様変更などに応じて適宜変更可能である。