図1および図2を参照して、この発明の一実施例であるロボット制御システム(以下、単に「システム」という。)100は、説明ロボット10および中央制御装置12等を含み、展示物Xが各所に配置される展示会場、科学館、博物館およびショッピングモール等の環境に適用される。詳細は後述するように、ロボット制御システム100では、或る展示物Xの説明を受けていない、或いはその展示物Xの見所部分(注目ポイント)を見ていない訪問客がいる場合などに、説明ロボット10からその訪問客に対して働きかけることによって、展示物Xの見所部分を見易い位置まで訪問客を導くと共に、訪問客の注目を見所部分に向けさせる。そしてその後、説明ロボット10が訪問客に対して展示物Xの見所部分の説明を行う。
この実施例では、オートバイ(モータサイクル)の展示会場に対してロボット制御システム100を適用した場合を想定して以下の説明を行う。この展示会場の天井には、複数(この実施例では35個)の距離画像センサ14が設置されており、これら距離画像センサ14のそれぞれは、中央制御装置12に接続される。また、訪問客のそれぞれには、ユーザIDが付与される。
中央制御装置12は、一定時間(たとえば、1秒)毎に、任意に移動する訪問客の位置および向きを距離画像センサ14によって検出すると共に、連続して検出された位置および向きを訪問客の移動履歴(移動情報)としてユーザIDと対応付けて記憶する。また、中央制御装置14は、ネットワーク102を介して説明ロボット10と無線通信を行い、必要に応じて説明ロボット10の行動を制御する。
説明ロボット10は、人間のようなコミュニケーションの対象との間で、身振り手振りのような身体動作および音声を含むコミュニケーション行動を実行する機能を備える、相互作用指向のロボットである。説明ロボット10は、中央制御装置14が付与する行動命令に基づいて、展示会場内を移動し、展示物Xについての説明を訪問客に対して行う。
なお、図1では簡単のため、訪問客は1人しか示していないが、展示会場にはさらに多くの訪問客がいてもよい。同様に、図1では3つの展示物X(X1,X2,X3)を示しているが、展示会場に配置される展示物Xの数は適宜変更可能である。
以下、システム100の構成について具体的に説明する。上述のように、システム100は、ネットワーク102を介して接続される説明ロボット10および中央制御装置12を備える。なお、この実施例では、1台の説明ロボット10を制御するようにしているが、ロボット制御システム100は、2台以上の説明ロボット10を同時に制御することもできる。
図3は、中央制御装置12の電気的な構成を示すブロック図である。図3を参照して、中央制御装置12は、パーソナルコンピュータやワークステーションのような汎用のコンピュータであり、プロセッサ16を含む。プロセッサ16は、マイクロコンピュータ或いはCPUと呼ばれることもある。プロセッサ16には、上述の距離画像センサ12に加えて、メモリ18および通信LANボード20が接続されると共に、ユーザDB24および展示物DB26が接続される。
距離画像センサ12は、赤外光またはレーザーなどの光を照射し、対象物から反射した光(反射光)をCCDセンサなどの光学センサによって捉える。距離画像センサ12は、光が戻るまでの時間を画素ごとに計測することで、対象物までの実際の距離を検出する。この実施例の距離画像センサ12には、ASUS社製のXtionと呼ばれる製品が採用されている。なお、他の実施例では、距離画像センサ12は、Microsoft社製のKinect(登録商標)センサ、パナソニック社製の3次元距離画像センサD−IMager(登録商標)などを使用することも可能である。この種のセンサは、3次元距離計測センサ、3Dスキャナなどと呼ばれる場合もある。
プロセッサ16は、このような距離画像センサ12を通じて対象の3次元情報を取得する。距離画像センサ12からの3次元情報には、対象物の形状および対象物までの距離が含まれている。たとえば、天井に設けられた距離画像センサ12によって訪問客がセンシングされると、訪問客を上から見た状態の頭部および両肩の形状と、頭部および両肩までの距離が3次元情報として得られる。すなわち、プロセッサ16は、複数の距離画像センサ12の各々から3次元情報を取得して、3次元空間(ワールド座標系)における位置(たとえば、重心などの特徴点の位置座標(x,y,z))および人の向き(たとえば、頭部および両肩など特徴部位の向き)を計算することが出来る。
なお、他の実施例では、距離画像センサ12にではなく、2次元または3次元のLRFを利用して、人の位置および向きが検出されてもよい。
メモリ18は、ROM,HDDおよびRAMを含む。ROMおよびHDDには、中央制御装置14の動作を制御するための制御プログラムが予め記憶される。また、RAMは、プロセッサ16のワークメモリやバッファメモリとして用いられる。
図4は、メモリ18のメモリマップの一例を示す図解図である。図4に示すように、メモリ18は、プログラム記憶領域202およびデータ記憶領域204を含む。プログラム記憶領域202には、たとえば、説明ロボット10に説明行動を実行させるためのプログラムとして、説明ロボット10が訪問客に対して展示物Xの説明を行う説明位置(立ち位置)を決定するためのロボット位置計算プログラム210、説明ロボット10に実行させる行動(移動行動、発話行動および指差しや首振り等の身体動作など)を決定するための行動命令選択プログラム212、および説明ロボット10との間で必要なデータやコマンド(行動命令)を送受信するための通信プログラム214等が記憶される。また、プログラム記憶領域202には、距離画像センサ12の検出データに基づいて訪問客の位置および向きを検出するための位置検出プログラム216等も記憶される。
データ記憶領域204には、展示物Xの位置情報などを含む環境(展示会場)の地図データ220等が予め記憶されている。また、図示は省略するが、データ記憶領域204には、様々な計算の結果を一時的に格納するバッファや、中央制御装置14の動作に必要な他のカウンタやフラグなども設けられる。
図3に戻って、通信LANボード20は、たとえばDSPで構成され、プロセッサ16から与えられた送信データを無線通信装置22に与える。無線通信装置22は、ネットワーク102を介してその送信データを説明ロボット10に送信する。たとえば、送信データは、説明ロボット10の自律移動に必要なデータ、サービスを行うために必要なデータおよび説明ロボット10に指示する行動命令の信号(コマンド)などである。また、通信LANボード20は、無線通信装置22を介してデータを受信し、受信したデータをプロセッサ16に与える。
ユーザDB26は、展示会場内に存在する訪問客に関する情報が記憶されるデータベースである。図示は省略するが、ユーザDB26には、たとえば、訪問客の展示会場内における移動履歴や、各展示物Xについての説明を説明ロボット10から受けたか否かの情報などが、ユーザIDと対応付けて記憶される。また、ユーザDB26には、事前のアンケート結果などに基づく訪問客の氏名、年齢、性別および興味のある事柄などの情報が適宜記憶される。
展示物DB26は、展示物Xに関する情報が記憶されるデータベースであり、訪問客に対して展示物Xの説明をする際の移動ロボット10の行動を決定するため等に利用される。展示物DB26には、たとえば、展示物IDと対応付けて、見所領域Rf、説明領域Reおよび説明候補点Cなどの情報が記憶される(図9参照)。なお、展示物DB26の詳細については後述するため、ここでの詳細な説明は省略する。
図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の周囲の物体(人や障害物など)との距離を測定するものである。
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、小型の距離画像センサや、超音波距離センサおよびミリ波レーダなどを用いることもできる。
センサ取り付けパネル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の全体を使って任意の対象を指差したりすることが可能となる。
なお、他の実施例では、人間と同じようにそれぞれの指が独立し、かつ人間の指と同じ指関節を持つ手66が、説明ロボット10に採用されてもよい。この場合、説明ロボット10は、ポインティングだけでなく、物を指で掴んだり、手話によるコミュニケーションを行ったりすることが可能となる。
また、図示は省略するが、台車40の前面、肩関節58Rと肩関節58Lとを含む肩に相当する部位、上腕60R、上腕60L、前腕64R、前腕64L、手66Rおよび手66Lには、それぞれ、接触センサ68(図6で包括的に示す)が設けられる。台車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などの外部コンピュータとの間で必要なデータやコマンド(行動命令)を送受信するための通信プログラム、中央制御装置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」と示す)の回転角度を制御する。
また、モータ制御ボード66は、プロセッサ90からの制御データを受け、右の手首の1軸の角度を制御する2つのモータと右手66Rの3つの指関節のそれぞれの角度を制御する3つのモータとの4つのモータ(図6では、まとめて「右手モータ120」と示す)の回転角度を制御する。同様に、モータ制御ボード66は、プロセッサ90からの制御データを受け、左手の手首の1軸の角度を制御する2つのモータと左手66Lの3つの指関節のそれぞれの角度を制御する3つのモータとの4つのモータ(図6では、まとめて「左手モータ122」と示す)の回転角度を制御する。
ここで、指関節の角度は、モータの回転がそのまま反映されるわけではなく、モータの回転によって動作する流体圧シリンダによって制御される。具体的には、流体圧シリンダには、動作流体を移動させるピストンが移動自在に収容されており、このピストンの位置がモータによって制御される。
さらに、モータ制御ボード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はその送信データを、ネットワーク102を介して外部コンピュータ(中央制御装置14)に送信する。また、通信LANボード130は、無線通信装置132を介してデータを受信し、受信したデータをプロセッサ90に与える。たとえば、送信データとしては、全方位カメラ56および目カメラ80によって撮影された周囲の映像データなどである。
図7は、展示会場の地図である。図7を参照して、展示会場には、入り口および3つの展示物X(X1,X2,X3)が含まれる。入口には、RFIDタグのリーダが設置されている。たとえば、訪問客は、自身が持つRFIDタグをリーダに読み取らせることによって、展示会場に入場可能になる。RFIDタグには、ユーザIDが記憶されており、リーダは、RFIDタグからユーザIDを読み取る。中央制御装置14には、リーダによって読み取られたユーザIDが送信される。そのため、中央制御装置14は、入り口で検出された訪問客の位置と受信したユーザIDとを対応付けることで、展示会場内にいる複数の訪問客をそれぞれ識別することが出来る。また、入場後に距離画像センサ14によって検出された訪問客の移動履歴は、ユーザIDと対応付けてユーザDB24に記憶され、また、訪問客が説明ロボット10に或る展示物Xの説明を受けた場合には、その情報もユーザIDと対応付けてユーザDB24に記憶される。
なお、図7に示す地図では簡単のため、各展示物X(X1,X2,X3)を矩形で表しているが、実際には、各展示物Xは各種のオートバイであるものとする。また、各展示物X上に示される点は、各展示物Xの見所部分Y(Y1,Y2,Y3)の中央部、つまり訪問客に注目してほしい部分の中央部の位置を表している。具体例を挙げると、見所部分Yは、タイヤ、バッテリおよびエンジン等である。ただし、展示物Xの見所部分Yは、展示物Xの全体である場合もある。
また、図7に示すように、この実施例では、展示物X(X1,X2,X3)のそれぞれには、見所領域Rf(Rf1,Rf2,Rf3)および説明領域Re(Re1,Re2,Re3)が設計者などによって予め設定される。
図7および図8を参照して、見所領域Rfおよび説明領域Reのそれぞれは、展示物Xの見所部分Yの中央部を基点とする扇形状で定義される領域である。見所領域Rfは、展示物Xの見所部分Yを見易い領域に設定される。すなわち、見所領域Rfは、説明ロボット10が展示物Xの説明を行う際に、訪問客に立たせたい領域に設定される。また、説明領域Reは、展示物Xの見所部分Yを指差しできる、つまり指差しを伴う説明を行っても不自然ではない領域に設定される。すなわち、説明領域Reは、展示物Xの説明を行う際に、説明ロボット10を配置する(説明ロボット10の立ち位置(説明位置Pe)とする)ことが好ましい領域に設定される。
さらに、展示物Xのそれぞれには、複数の説明候補点Cが設計者などによって予め設定される。説明候補点Cのそれぞれは、展示物Xの説明を行う際の説明ロボット10の説明位置Peの候補となる位置であり、展示物Xの見所部分Yの説明が可能な領域内(つまり、見所領域Rfにいる訪問客との距離が一定範囲内となって、見所部分Yの説明を行っても不自然ではない領域内)に予め設定される。この実施例では、後述する数式1−3に基づいて、これら複数の説明候補点Cの中から説明ロボット10の説明位置Peが選択される。
このような見所領域Rf、説明領域Reおよび説明候補点Cに関する情報は、上述のように、展示物IDと対応付けて展示物DB26に記憶される。以下、図9を参照して、展示物DB26の詳細について説明する。
図9に示すように、展示物DB26は、テーブルで構成されており、展示物IDに対応付けて、展示物X、見所領域Rf、説明領域Re、説明候補点C、指差し座標、説明(指差し有り)および説明(指差し無し)等の情報が記憶される。展示物IDは、展示物ごとに与えられる識別番号であり、展示物Xの欄には、展示物の名称が記載される。また、見所領域Rfおよび説明領域Reの欄には、上述の見所領域Rfおよび説明領域Reの領域(範囲)を示す座標情報が記載され、説明候補点Cの欄には、上述の説明候補点Cの位置を示す座標情報が記載される。
また、指差し座標の欄には、展示物Xの見所部分Yの中心部の位置を示す座標情報、つまり説明ロボット10が見所部分Yを指差して説明する際に目標となる点の座標情報が記載される。さらに、説明(指差し有り)の欄には、説明ロボット10が指差しを伴う発話によって展示物Xの見所部分Yの説明を行う際の発話内容がテキスト方式で記載される。また、説明(指差し無し)の欄には、説明ロボット10が指差し無しの発話によって展示物Xの見所部分Yの説明を行う際の発話内容がテキスト方式で記載される。なお、説明(指差し有りまたは指差し無し)の欄に記載される発話内容には、訪問客の注目を展示物Xの見所部分Yに向けさせるために行う発話(注目行動)が含まれる。
たとえば、図9に示す展示物DB26を参照すると、展示物IDが「1」の展示物Xの名称は、「X1」であり、「Rf1」および「Re1」という範囲に見所領域Rfおよび説明領域Reが設定されていることが分かる。また、「C1a,C1b,C1c,…」という複数の位置に説明候補点Cが設定されており、指差しを用いて見所部分Yの説明を行う際には、「(100,100,1200)」という座標位置が指差されることが分かる。さらに、指差しを伴う発話によって展示物X1の説明を行う際には、「あそこを見て下さい…」という発話によって説明が開始され、指差し無しの発話によって展示物X1の説明を行う際には、「タイヤを見て下さい…」という発話によって説明が開始されるということが分かる。展示物IDが「2」の展示物X2、および展示物IDが「3」の展示物X3についても同様であるので、説明は省略する。
このような構成のシステム100では、上述のように、説明ロボット10が展示会場に配置される。説明ロボット10は、たとえば、展示会場内に設けられたホームポジションに滞在したり、展示会場内を自由に移動(巡回)したりする。そして、或る展示物Xの説明を受けていない、または或る展示物Xの見所部分Yを見ていない訪問客がいる場合などには、説明ロボット10からその訪問客に対して積極的に働きかけることによって、展示物Xの見所部分Yを見易い位置まで訪問客を導き、訪問客の注目を見所部分Yに向けさせた後、見所部分Yの具体的の説明を行う。
具体的には、システム100では、距離画像センサ14からの検出情報およびユーザDB24を適宜参照して、或る展示物Xの説明を受けていない、または或る展示物Xの見所部分Yを見ていない訪問客が、その展示物Xの近傍にいる、或いはその展示物Xに近づいてくることを検出すると、先ず、その訪問客に対して展示物Xの見所部分Yを説明するのに適した説明位置(立ち位置)Peに説明ロボット10が移動する。なお、このような説明相手となり得る訪問客が複数存在する場合には、たとえば、効率を考慮して、説明ロボット10の現在位置から1番近い訪問客を説明相手として選択するとよい。また、たとえば、安全性を考慮して、周囲が混雑していない(他の訪問客が少ない)展示物Xの近傍にいる訪問客を説明相手として選択してもよい。ただし、説明相手の選択方法は任意であり、説明相手となり得る訪問客からランダムに選択することもできる。
ここで、説明ロボット10の説明位置Peを決定する際には、その後の訪問客に対する展示物Xの説明をスムーズに開始できるように、展示物Xに設定された見所領域Rf以外の位置であって、かつ訪問客の現在位置から見所領域Rfまでの訪問客の通り道を塞がない位置であることを条件として、説明位置Peが決定される。また、好ましくは、指差しを用いた説明が可能な位置に説明位置Peが決定される。なお、説明位置Peの決定、およびその後の訪問客に対する説明ロボット10の行動を決定するに際しては、展示物DB26に記憶された情報が適宜読み出されて利用される。
以下、図10および図11を参照して、説明位置Peの決定方法の一例について、具体的に説明する。この実施例では、説明位置Peは、展示物Xのそれぞれに予め設定された複数の説明候補点Ci(図8および図9参照)の中から、距離d、第1角度θおよび第2角度θhに基づいて、現在状況に最も適したもの(有用度が高いもの)が選択される。
ここで、距離dは、説明候補点Ciと展示物Xの見所部分Yとの距離を示す。また、第1角度θは、展示物Xの見所部分Yを基点として見所領域Rfの中央部と説明候補点Ciとがなす角度、つまり、展示物Xの見所部分Yと見所領域Rfの中央部とを結ぶ線分と、展示物Xの見所部分Yと説明候補点Ciとを結ぶ線分とがなす角度を示す。さらに、第2角度θhは、展示物Xの見所部分Yを基点として見所領域Rfの中央部と訪問客の現在位置Phとがなす角度、つまり、展示物Xの見所部分Yと見所領域Rfの中央部とを結ぶ線分と、展示物Xの見所部分Yと訪問客の現在位置Phとを結ぶ線分とがなす角度を示す。
そして、各説明候補点Ciの有用度(Utility)は、以下の数1に基づいて計算される。
数1において、Udistance(d)は、距離dに基づく有用度であり、以下の数2に基づいて計算される。また、Uangle(θ,θh)は、第1角度θおよび第2角度θhに基づく有用度であり、以下の数3に基づいて計算される。
数2において、Dprefは、説明ロボット10の指差し行動に最も適した見所部分Yとの距離であり、たとえば1.5−2.5mに設定される。また、Dmaxは、それとの最大許容差である。つまり、説明ロボット10の説明位置Peは、見所部分Yとの距離が指差し行動にとっての最適距離に近付くほど選択され易いようにされる。
数3において、Ubase(θ)は、第1角度θに基づく有用度であり、図11に示すように計算される。すなわち、見所領域Rf内に入る第1角度θにおいては、説明ロボット10の説明位置Peが見所領域Rf内にならないように、Ubase=0とされる。また、見所領域Rfの境界部分に相当する第1角度θにおいては、Ubase=Uhとされ、説明領域Reの境界部分に相当する第1角度θにおいては、Ubase=Umとされる。ここで、Uh>Umであり、この間ではUbase(θ)の値が線形で減少する。さらに、第1角度θが180°となる位置では、Ubase=Ulとされる。ここで、Um>Ulであり、この間でもUbase(θ)の値が線形で減少するが、この際のUbase(θ)の値の減少率は、説明領域Re内におけるUbase(θ)の値の減少率よりも大きく設定される。すなわち、説明ロボット10の説明位置Peは、見所領域Rfの近く、つまり訪問客の近くの位置が選択され易いようにされ、特に、説明領域Re内の位置が選択され易いようにされる。
また、Penalty(θ,θh)は、説明候補点Ciと訪問客の現在位置Phとの位置関係に基づく有用度である。Penalty(θ,θh)は、展示物Xの見所部分Yと見所領域Rfの中央部とを結ぶ線分を境界として、訪問客の現在位置Phと同じ側に位置する説明候補点Ciについては、Penalty(θ,θh)=−Upenaltyとされ、訪問客の現在位置Phと反対側に位置する説明候補点Ciについては、Penalty(θ,θh)=0とされる。Upenaltyの大きさは、たとえば、Ubase(θ)の最大値(Uh)と同じ大きさに設定される。これによって、説明ロボット10の説明位置Peは、現在位置Phから見所領域Rfまでの訪問客の通り道を塞ぐ位置にならないようにされる。
上述のような距離d、第1角度θおよび第2角度θhを用いた数式1−3に基づいて、説明候補点Ciのそれぞれについての有用度(Utility)の計算が終了すると、その中で有用度が最も高い説明候補点Ciが説明ロボット10の説明位置Peとして決定される。これによって、説明ロボット10の説明位置Peが適切に決定されるので、その後、決定された説明位置Peに説明ロボット10が移動する。
説明位置Peへの説明ロボット10の移動が終了すると、続いて、説明相手となる訪問客に対して説明ロボット10から声をかけることによって、訪問客の見所領域Rfへの移動を促す誘導行動を実行し、見所領域Rf内まで訪問客を導く。たとえば、説明ロボット10は、訪問客の方に顔または視線を向け、「こっちに来て下さい。」等と呼びかけ、訪問客が見所領域Rf内に来るのを待つ。なお、説明ロボット10の周囲に他の訪問客が居らず、説明ロボット10が腕を安全に動かすことができる場合には、「こっちに来て下さい。」という発話に加えて、見所領域Rfを指差す指差し行動や、手招きまたは手を振る等のジェスチャを行うと、より確実に訪問客を見所領域Rf内まで導くことができる。ここで、訪問客の見所領域Rfへの移動を促す際には、説明ロボット10が、展示物Xに設定された見所領域Rf以外の位置であって、かつ訪問客の現在位置Phから見所領域Rfまでの訪問客の通り道を塞がない位置に配置されていることから、説明ロボット10が訪問客の移動の邪魔になることがなく、訪問客を展示物Xの見所部分Yを見易い位置(見所領域Rf)までスムーズに導くことができる。
訪問客が見所領域Rf内に来たことが検出されると、説明ロボット10は、訪問客の注目を展示物Xの見所部分Yに向けさせるための注目行動を実行し、その後、見所部分Yについての具体的な説明を行う。具体的には、先ず、説明ロボット10の現在位置である説明位置Peが説明領域Re内であるか否かや、説明ロボット10周囲の状況に応じて腕を安全に動かすことができるか否かを判断することによって、説明ロボット10が指差しを実行できる状況であるか否かを判断する。説明ロボット10が指差しを実行できる状況である場合には、説明ロボット10は、展示物Xの見所部分Yを指差しながら、「あそこを見てください。」等の発話を行うというような、訪問客の注目を展示物Xの見所部分Yに向けさせるための注目行動を実行する。一方、説明ロボット10が指差しを実行できる状況でない場合には、説明ロボット10は、指差しを実行せずに、「タイヤを見てください。」等の具体的名称を含む発話のみを行うというような、訪問客の注目を展示物Xの見所部分Yに向けさせるための注目行動を実行する。ただし、指差しが実行できない場合でも、発話の際に説明ロボット10の顔または視線を見所部分Yに向けることによって、訪問客の注目を展示物Xの見所部分Yに向けさせ易くすることができる。
上述のような注目行動を実行した後、説明ロボット10は、「あのタイヤの溝の形状は、…」等というような、見所部分Yについての具体的な説明を行う。ここで、訪問客に対して展示物Xの見所部分Yの説明を開始する際には、展示物Xの見所部分Yを見易い位置(見所領域Rf)まで訪問客を導いているので、訪問客の注目を展示物Xの見所部分Yに向けさせ易くなり、展示物Xの見所部分Yの説明をスムーズに開始することができる。
続いて、フロー図を用いてシステム10の動作を説明する。具体的には、図3に示した中央制御装置12のプロセッサ16が、図12に示すフロー図に従って、説明ロボット10による展示物Xの説明サービスの全体処理を実行する。図12を参照して、全体処理が開始されると、プロセッサ16は、ステップS1で全体処理を終了するか否かを判断する。たとえば、システム10を終了させる操作が管理者などによって行われたか否かが判断される。ステップS1で“YES”の場合、すなわち一連の説明サービスが終了する等して、システム10を終了させる操作が管理者などによって行われた場合には、全体処理を終了する。一方、ステップS1で“NO”の場合には、処理はステップS3に進む。
ステップS3では、説明相手となる訪問客が存在するか否かを判断する。たとえば、距離画像センサ14からの検出情報またはユーザDB24を参照して、或る展示物Xの説明を受けていない訪問客がその展示物Xの近傍にいるか否かを判断する。ステップS3で“NO”の場合、すなわち説明相手となる訪問客が存在しない場合には、ステップS1に戻る。一方、ステップS3で“YES”の場合、すなわち説明相手となる訪問客が存在する場合には、説明相手となる訪問客と説明対象となる展示物Xとを決定して、ステップS5に進む。
ステップS5では、説明対象となる展示物Xに関する情報を取得する。つまり、展示物DB26を参照して、その展示物Xに設定されている見所領域Rf、説明領域Reおよび説明候補点Cの領域情報ないし位置情報を取得する。また、次のステップS7では、説明相手となる訪問客の現在位置Phを取得する。つまり、距離画像センサ14からの検出情報またはユーザDB24を参照して、説明相手となる訪問客の現在位置Phの座標情報を取得する。
続くステップS9では、後述する説明位置Peの選択処理(図13参照)を実行することによって、展示物Xの見所部分Yを説明する際の説明ロボット10の立ち位置(説明位置Pe)を決定し、ステップS11に進む。ステップS11では、説明位置Peに向かって説明ロボット10を移動させる。すなわち、説明ロボット10に対して説明位置Peの座標情報を含む移動命令を送信する。移動命令を受信した説明ロボット10は、その移動命令に基づいて説明位置Peへの移動を開始する。
続くステップS13では、説明ロボット10が説明位置Peに到着したか否かを判断する。ステップS13で“NO”の場合、すなわち説明位置Peの座標位置まで説明ロボット10が到着していない場合には、ステップS7に戻り、訪問客の現在位置Phなどの現況を再確認しつつ、説明ロボット10の説明位置Peへの移動を続けさせる。一方、ステップS13で“YES”の場合、すなわち説明位置Peの座標位置まで説明ロボット10が到着したときには、ステップS15に進む。
ステップS15では、見所領域Rfへの移動を訪問客に促す誘導行動を説明ロボット10に実行させる。すなわち、誘導行動を実行するための発話情報および身体動作情報を含む行動命令を説明ロボット10に送信する。たとえば、行動命令を受信した説明ロボット10は、その行動命令に基づいて、訪問客の方に顔または視線を向け、「こっちに来て下さい。」等と呼びかける。この際、指差しが可能な状況であれば、見所領域Rfを指差す指差し行動を行う。そしてその後、訪問客の見所領域Rfへの移動時間を考慮して、数秒間程度待機する。
続くステップS17では、訪問客の現在位置Phは見所領域Rf内であるか否かを判断する。ステップS17で“NO”の場合、すなわち訪問客が見所領域Rf内にいない場合には、その訪問客は説明ロボット10による案内を必要としていないと判断して、ステップS1に戻る。ただし、処理をもう一度ステップS15に戻すようにしてもよく、見所領域Rfへの移動を訪問客に促す誘導行動を説明ロボット10に再度実行させても、訪問客が見所領域Rf内にやって来ないような場合に、処理をステップS1に戻すようにしてもよい。一方、ステップS17で“YES”の場合、すなわち訪問客が見所領域Rf内にいる場合には、ステップS19に進む。
ステップS19では、説明ロボット10が指差しできる状況であるか否かを判断する。たとえば、説明ロボット10の説明位置Peが説明領域Re内でない場合や、説明ロボット10の周囲に他の訪問客がいる等して安全上の問題がある場合には、指差し不可能と判断される。一方、説明ロボット10の説明位置Peが説明領域Re内であってかつ安全上の問題がない場合には、指差し可能と判断される。
ステップS19で“YES”の場合、すなわち説明ロボット10が指差しできる状況である場合には、ステップS21に進む。ステップS21では、指差しを伴う発話による説明を説明ロボット10に実行させる。つまり、展示物DB26から指差し座標および説明(指差し有り)等の情報を読み出し、訪問客の注目を展示物Xの見所部分Yに向けさせる注目行動を実行するための発話情報および身体動作情報を含む行動命令を説明ロボット10に送信する。行動命令を受信した説明ロボット10は、その行動命令に基づいて、展示物Xの見所部分Yを指差しながら、「あそこを見てください。」等の発話を行うというような注目行動を実行した後、「あのタイヤの溝の形状は、…」等というような、見所部分Yについての具体的な説明を行う。ステップS21が終了すると、処理はステップS1に戻る。
一方、ステップS19で“NO”の場合、すなわち説明ロボット10が指差しできる状況でない場合には、ステップS23に進む。ステップS23では、指差し無しの発話による説明を説明ロボット10に実行させる。つまり、展示物DB26から説明(指差し無し)等の情報を読み出し、訪問客の注目を展示物Xの見所部分Yに向けさせる注目行動を実行するための発話情報および身体動作情報を含む行動命令を説明ロボット10に送信する。行動命令を受信した説明ロボット10は、その行動命令に基づいて、「タイヤを見てください。」等の発話による注目行動を実行する。この発話の際には、顔または視線を見所部分Yに向けるようにするとよい。その後、説明ロボット10は、「あのタイヤの溝の形状は、…」等というような、見所部分Yについての具体的な説明を行う。ステップS23が終了すると、処理はステップS1に戻る。
図13は、図12に示したステップS9の説明位置Peの選択処理を示すフロー図である。図13に示すように、中央制御装置12のプロセッサ16は、説明位置Peの選択処理を開始すると、ステップS31で、説明対象となる展示物Xの説明候補点Cの内、移動可能な点を選択して取得する。たとえば、距離画像センサ14からの検出情報およびユーザDB24を適宜参照して、展示物DB26に記憶された複数の説明候補点Cの内、他の訪問客に塞がれている点は除外し、空いている点のみを選択して取得する。
続くステップS33では、ステップS31で取得した各説明候補点Cについて、有用度を計算する。すなわち、上述の距離d、第1角度θおよび第2角度θhを用いた数式1−3に基づいて、説明候補点Cのそれぞれについて有用度を計算する。そして、続くステップS35では、最も有用度の高い説明候補点Cを説明位置Peとして選択して、処理を全体処理にリターンする。
この実施例によれば、予め展示物Xに設定した見所領域Rf以外の位置であって、かつ訪問客の現在位置Phから見所領域Rfまでの訪問客の通り道を塞がない位置であることを条件として、説明ロボット10の説明位置Peを選択するので、展示物Xの見所部分Yを見易い位置まで訪問客をスムーズに導くことができる。また、展示物Xの見所部分Yを見易い位置まで訪問客を導くので、訪問客の注目を見所部分Yに向けさせ易くなる。したがって、展示物Xの見所部分Yの説明をスムーズに開始することができる。
なお、上述の実施例では、距離d、第1角度θおよび第2角度θhを用いた数式1−3に基づいて各説明候補点Cの有用度を計算し、有用度の最も高い説明候補点Cを説明位置Peとして選択するようにした。しかし、見所領域Rf以外の位置であって、かつ訪問客の現在位置Phから見所領域Rfまでの訪問客の通り道を塞がない位置であることを条件とする説明位置Peの決定方法は、これに限定されない。たとえば、距離d、第1角度θおよび第2角度θhの内の1つまたは2つを用いて各説明候補点Cの有用度を計算してもよい。また、距離d、第1角度θおよび第2角度θhのどの値の有用度を大きくするかも自由に設定できる。たとえば、周囲のどの角度からも見所部分Yが目視できるような場合には、展示物Xを間に挟んだ訪問客と真向いの位置が説明位置Peとして選択され難くすることもできる。もちろん、距離d、第1角度θおよび第2角度θh以外の変数、および数式1−3以外の数式を用いて各説明候補点Cの有用度を計算することもできる。
また、たとえば、訪問客の周囲の状況に基づいて、訪問客の現在位置Phから見所領域Rfに移動するための経路(最短経路1つでもよいし、通る可能性の高い経路の数通りでもよい)を推定して、その経路上のものを除く説明候補点Cの中から説明位置Peを選択するようにしてもよい。
また、上述の実施例では、説明領域Re以外の位置にも説明候補点Cを設定しているが、説明候補点Cは、説明領域Re内のみ、つまり説明ロボット10の指差し行動が可能な領域のみに設定するようにしてもよい。これによって、説明ロボット10の説明位置Peは、必ず指差し可能な位置となり、他の安全上の問題がなければ、説明ロボット10は、指差しを伴う説明を確実に実行することができるようになる。
また、説明候補点Cは、必ずしも各展示物Xについて予め設定されている必要はない。たとえば、説明位置Peを決定する際には、見所領域Rf以外の位置であって、かつ訪問客の現在位置Phから見所領域Rfまでの訪問客の通り道を塞がない位置であることを前提条件として、説明ロボット10の現在位置から最も近い見所領域Rfの周辺位置を任意に選択するようにしてもよい。
さらに、上述の実施例では、見所領域Rfおよび説明領域Reを、展示物Xの見所部分Yの中央部を基点とする扇形状で定義しているが、見所領域Rfおよび説明領域Reの形状は特に限定されない。たとえば、見所領域Rfおよび説明領域Reは、展示物Xから少し離れた位置に配置される、円形状や四角形状などの適宜な形状の領域であってもよい。
さらにまた、上述の実施例では、1つの展示物Xに対して1つの見所部分Yを設けているが、1つの展示物Xに複数の見所部分Yがあってもよい。この場合には、各見所部分Yに対して見所領域Rf、説明領域Reおよび説明候補点Cなどが設定される。
また、1つの見所部分Yに対して複数の見所領域Rfが設定されていてもよい。この場合には、各見所領域Rfに対して説明領域Reおよび説明候補点Cなどが設定される。そしてこの場合には、たとえば、他の訪問客による混雑具合に応じて、空いている方の見所領域Rfに説明相手となる訪問客を誘導するようにするとよい。
さらに、1つの見所部分Yに対して複数の見所領域Rfが設定する場合には、同じ方向に複数の見所領域Rfを設定することもできる。たとえば、見所部分Yを最も見易い領域に絞った幅狭の第1見所領域、第1見所領域よりも幅広の第2見所領域というように、見所領域Rfを複数段階で設定しておいてもよい。この場合には、先ず、第1見所領域への誘導が可能か否かを判断し、混雑度や安全上の理由などで第1見所領域への誘導が不可能であると判断された場合に、第2見所領域への誘導が可能か否かを判断するようにするとよい。
また、展示物Xの全体が見所部分Yとなる場合などのように、周囲のどの角度からも見所部分Yが目視できる場合には、たとえば、訪問客との距離が訪問客に近づきすぎない一定距離内であって、かつ説明ロボット10の現在位置から近い位置を、説明ロボット10の説明位置Peとして選択することもできる。この場合、訪問客の現在位置Phと説明候補点Cとの距離や、展示物Xの見所部分Yを基点として訪問客の現在位置Phと説明候補点Cとがなす角度を有用度計算に加えるとよい。
また、上述の実施例では、説明ロボット10とは別に中央制御装置12を設け、中央制御装置12のプロセッサ16からの指示に基づいて説明ロボット10が動作するようにしたが、これに限定されない。たとえば、説明ロボット10のプロセッサ90に対して、距離画像センサ14、ユーザDB24および展示物DB26等を接続し、説明ロボット10のプロセッサ90が、図12および図13に示すような処理を実行することもできる。つまり、説明ロボット10が、スタンドアロンで訪問客に対する展示物Xの説明サービスを実行するようにしてもよい。
また、説明ロボット10の外観や電気的構成などの具体的構成は、図5および図6に示すものに限定されず、説明ロボット10としては、公知のロボットを適宜利用できる。たとえば、車輪タイプの移動機構を備えるロボットではなく、2足歩行タイプの移動機構を備えるロボットを説明ロボット10として採用することもできる。
さらに、上述の実施例で説明した複数のプログラムは、データ配信用のサーバのHDDに記憶され、ネットワークを介して本実施例と同等の構成のシステムに配信されてもよい。また、CD,DVD,BD(Blu-ray(登録商標)Disc)などの光学ディスク、USBメモリおよびメモリカードなどの記憶媒体にこれらのプログラムを記憶させた状態で、その記憶媒体が販売または配布されてもよい。そして、上記したサーバや記憶媒体などを通じてダウンロードされた、上記複数のプログラムが、本実施例と同等の構成のシステムに適用された場合、本実施例と同等の効果が得られる。
なお、上で挙げた寸法などの具体的数値は、いずれも単なる一例であり、製品の仕様などの必要に応じて適宜変更可能である。