図1を参照して、この実施例のコミュニケーションロボット(以下、単に「ロボット」という。)10は、一連の行動プログラムからなる行動モジュールを実行することによって、身体動作および音声の少なくとも一方を用いたコミュニケーション行動を取るものである。
図1に示すように、このロボット10の近傍或いは周囲には、コミュニケーション対象となるユーザA、ユーザBおよびユーザCが存在し、たとえば、このユーザA、ユーザBおよびユーザCは、それぞれ、無線タグ12を所持或いは装着している。無線タグ12は、それぞれ、固有のRFIDなどのタグ情報(個人識別情報)を所定周波数の電波に重畳して、一定の時間間隔で送信(発信)する。なお、図1では、3人のユーザが存在する場合について示してあるが、ユーザは1人以上であればよい。
図2を参照して、ロボット10のハードウェア面の構成を詳細に説明する。図2に示すように、ロボット10は台車30を含み、台車30の下面にはロボット10を自律移動させる2つの車輪32および1つの従輪34が設けられる。2つの車輪32は車輪モータ36(図3参照)によってそれぞれ独立に駆動され、台車30すなわちロボット10を前後左右の任意方向に動かすことができる。また、従輪34は車輪32を補助する補助輪である。したがって、ロボット10は、配置された空間内を自律制御によって移動可能である。ただし、ロボット10は、或る場所に固定的に配置されても構わない。
台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の赤外線距離センサ40が取り付けられる。これらの赤外線距離センサ40は、センサ取り付けパネル38すなわちロボット10の周囲の物体(人間や障害物など)との距離を測定するものである。
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、超音波距離センサやミリ波レーダなどを用いることもできる。
センサ取り付けパネル38の上には、胴体42が直立するように設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した赤外線距離センサ40がさらに設けられ、ロボット10の前方の主として人間との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、全方位カメラ46が設けられる。全方位カメラ46は、ロボット10の周囲を撮影するものであり、後述する眼カメラ70とは区別される。この全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ40および全方位カメラ46の設置位置は、当該部位に限定されず適宜変更され得る。
胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。
前腕54Rおよび前腕54Lのそれぞれの先端には、人の手に相当する球体56Rおよび球体56Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車30の前面,肩関節48Rと肩関節48Lとを含む肩に相当する部位,上腕50R,上腕50L,前腕54R,前腕54L,球体56Rおよび球体56Lには、それぞれ、接触センサ58(図3で包括的に示す)が設けられる。台車30の前面の接触センサ58は、台車30への人間や他の障害物の接触を検知する。したがって、ロボット10は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止してロボット10の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。なお、接触センサ58の設置位置は、当該部位に限定されず、適宜な位置(人の胸,腹,脇,背中および腰に相当する位置)に設けられてもよい。
胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット10の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、ロボット10が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66ということがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。さらに、人の目に相当する位置には、眼球部68Rおよび眼球部68Lが設けられる。眼球部68Rおよび眼球部68Lは、それぞれ眼カメラ70Rおよび眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68ということがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70ということがある。
眼カメラ70は、ロボット10に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64,マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
このように、この実施例のロボット10は、車輪32の独立2軸駆動,肩関節48の3自由度(左右で6自由度),肘関節52の1自由度(左右で2自由度),首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
図3はロボット10の電気的な構成を示すブロック図である。この図3を参照して、ロボット10は、CPU80を含む。CPU80は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス82を介して、メモリ84,モータ制御ボード86,センサ入力/出力ボード88および音声入力/出力ボード90に接続される。
メモリ84は、図示は省略するが、ROM、HDDおよびRAMを含む。ROMおよびHDDには、ロボット10のビヘイビアを制御するためのプログラムやデータが記憶されている。ここで、ビヘイビアとは、行動モジュールによって実現されるロボット10のコミュニケーション行動を示しており、ROMおよびHDDには、複数の行動モジュールが各ビヘイビアに対応付けて記憶されている。また、RAMは、ワークメモリやバッファメモリとして用いられる。
たとえば、図4(A)のテーブル(コミュニケーション行動テーブル)に示すように、ビヘイビア名に対応して、行動内容および発話内容が定義されている。ビヘイビア名は、ロボット10が実行するコミュニケーション行動(ビヘイビア)の名称である。図4(A)に示す例では、ビヘイビア名として、「Talk(挨拶)」、「Guide(道案内)」、「Bye(ばいばい)」、…が記述される。
行動内容は、対応するビヘイビア名のコミュニケーション行動を実行する場合の身体動作の内容である。図4(A)に示す例では、「Talk(挨拶)」に対応して「お辞儀する」が記述される。同様に、「Guide(道案内)」に対応して「首を傾げる」が記述される。さらに、「Bye(ばいばい)」に対応して「手を振る」が記述される。たとえば、お辞儀をする場合には、ロボット10は首を縦向きに一度振る。また、首を傾げる場合には、ロボット10は首を横向きに一度振る。さらに、手を振る場合には、ロボット10は右手(または左手)を挙げて左右に数回振る。このような身体動作は、対応する行動モジュールに従って、後述する各モータ(36、92、94、96、98、100)が駆動されることにより、実行されるのである。
発話内容は、対応するビヘイビア名のコミュニケーション行動を実行する場合に発話する内容(音声)である。図4(A)に示す例では、「Talk(挨拶)」に対応して「こんにちは」が記述される。同様に、「Guide(道案内)」に対応して「どこか案内しましょうか?」が記述される。さらに、「Bye(ばいばい)」に対応して「また来てね」が記述される。このような発話は、対応する行動モジュールに従って、合成音声データが出力されることにより、実行される。
なお、身体動作および発話内容は、単なる一例であり、限定される必要はない。たとえば、身体動作および発話内容を各ビヘイビアに対応して複数定義しておき、ロボット10とユーザとの親密度に応じて身体動作および発話内容を変化させてもよい。具体的には、ユーザがロボット10と初めて会う場合には、「Talk」を実行する場合に、「深々とお辞儀する」行動をし、「はじめまして」と発話してよいし、ユーザとロボット10とが久しぶりに会う(再会する)場合には、「Talk」を実行する場合に、「手を挙げる(手を振る)」行動をし、「久し振り」と発話してよい。
また、この実施例では、予め用意されている発話内容についての合成音声データを出力するようにしてあるが、たとえば、オペレータがロボット10に発話内容を示すデータ(テキストデータ)を送信し、このテキストデータに対応する合成音声データを作成して出力するようにしてもよい。
図3に戻って、モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、CPU80からの制御データを受け、右眼球部68Rの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「右眼球モータ92」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、CPU80からの制御データを受け、左眼球部68Lの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「左眼球モータ94」と示す)の回転角度を制御する。
また、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「右腕モータ96」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「左腕モータ98」と示す)の回転角度を制御する。
さらに、モータ制御ボード86は、CPU80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図3では、まとめて「頭部モータ100」と示す)の回転角度を制御する。そして、モータ制御ボード86は、CPU80からの制御データを受け、車輪32を駆動する2つのモータ(図3では、まとめて「車輪モータ36」と示す)の回転角度を制御する。なお、この実施例では、車輪モータ36を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ36と同様に直流モータを用いるようにしてもよい。また、ロボット12の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更された、他の実施例では、エアアクチュエータが適用されてもよい。
センサ入力/出力ボード88は、モータ制御ボード86と同様に、DSPで構成され、各センサからの信号を取り込んでCPU80に与える。すなわち、赤外線距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてCPU80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからCPU80に入力される。眼カメラ70からの映像信号も、同様にして、CPU80に入力される。また、上述した複数の接触センサ58(図3では、まとめて「接触センサ58」と示す)からの信号がセンサ入力/出力ボード88を介してCPU80に与えられる。音声入力/出力ボード90もまた、同様に、DSPで構成され、CPU80から与えられる合成音声データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してCPU80に与えられる。
また、CPU80は、バス82を介して無線タグ読取装置102が接続される。無線タグ読取装置102は、アンテナ(図示せず)を介して、無線タグ12(RFIDタグ)から送信されるタグ情報の重畳された電波を受信する。そして、無線タグ読取装置102は、受信した電波信号を増幅し、当該電波信号からタグ情報(RFID)を分離し、当該タグ情報を復調(デコード)してCPU80に与える。上述したように、無線タグ12は、人間(図1では、ユーザA−C)に装着され、無線タグ読取装置102は、通信可能範囲内の無線タグ12を検出する。なお、無線タグ12は、アクティブ型であってもよいし、無線タグ読取装置102から送信される電波に応じて駆動されるパッシブ型であってもよい。
また、CPU80は、バス82を介して通信LANボード104に接続される。通信LANボード104は、たとえばDSPで構成され、CPU80から与えられた送信データを無線通信装置106に与え、無線通信装置106は送信データを、ネットワークを介して外部コンピュータに送信する。また、通信LANボード104は、無線通信装置106を介してデータを受信し、受信したデータをCPU80に与える。
さらに、CPU80は、バス82を介してユーザ情報データベース(ユーザ情報DB)108に接続される。このユーザ情報DB108は、テーブル(ユーザ情報テーブル)を記憶する。図4(B)に示すように、ユーザ情報テーブルには、ユーザ名に対応して、RFID、知識量およびロボットの音声を聞いた経験の有無が記述される。ユーザ名は、コミュニケーション対象となるユーザ(人間)の名称である。図4(B)に示す例では、ユーザ名として、ユーザA、ユーザB、ユーザC、…が記述される。RFIDは、対応するユーザに装着された無線タグ12のRFID(タグ情報)であり、これによってユーザを識別することができる。
知識量は、対応するユーザの知識量についての情報であり、この実施例では、学歴(大学または大学未満)が記述される。ただし、「大学」は、対応するユーザが大学に在学中であること、または対応するユーザが大学を卒業したことを意味する。また、「大学未満」は、対応するユーザが高校生以下であること、または対応するユーザの最終学歴が高校以下であることを意味する。
ただし、知識量としては、小学校、中学校、高校の別をさらに分類して記述するようにしてもよい。また、知識量は、学歴に限らず、特定の分野、たとえば、コンピュータ、ゲーム、科学、趣味などにおける知識量であってもよい。ただし、特定の分野における知識量については、それぞれについて適宜指標を決定し、分類する必要がある。
ロボットの音声を聞いた経験の有無は、対応するユーザがロボット10の音声を聞いたことがあるかどうかを示す情報である。ロボット10の音声を聞いたことが有るユーザに対応して「あり」が記述され、ロボット10の音声を聞いたことが無いユーザに対応して「なし」が記述される。
このユーザ情報テーブルでは、ユーザAに装着された無線タグ12のRFIDは「AAAA」であり、ユーザAの知識量は「大学」であり、そして、ユーザAのロボット10の音声を聞いた経験は「あり」である。説明は省略するが、他のユーザB、Cについても同様である。
たとえば、このような構成のロボット10は、ショッピングモール、イベント会場や展示会場などの任意の場所に配置され、人間(ユーザ)を案内(道案内、店舗、会場や展示物の説明ないし案内)するサービスを提供する。このようなサービスを提供する場合には、ロボット10は、移動しないで、または、ユーザに追従または並走するように移動しながら、身体動作および音声の少なくとも一方を用いたコミュニケーション行動により、道案内などを実行する。
ロボット10がユーザを案内する場合に、その音声(合成音声)をユーザが聞き易くすることができる(理解できる)かどうかを決定する要素としては、音量はもちろんであるが、音声を出力する速度(発話速度)も重要である。以下、発話速度を決定する方法について説明するが、この実施例では、ロボット10の音声の音量は、適切な音量に予め調整(設定)されているものとする。
発話速度は、後述する図5に示される発話速度テーブルに従って決定されるが、この発話速度テーブルは、発明者等が行った実験の結果などに基づいて決定された。簡単に説明すると、実験は、ロボット10と被験者とが立っている(移動しない)場合と、歩行する(移動する)場合とに分けて行った。ただし、歩行する場合には、被験者は、予め設定された経路を移動し、それに追従または並走するように、ロボット10を移動させた。また、被験者は28人(17人の男性と11人の女性)の大学生、大学院生またはそのいずれかを卒業した研究員であり、平均年齢は26.8歳である。
また、ロボット10の発話速度は、モーラ速度を用いて4段階で設定した。具体的には、速い(9.7mora/sec)、普通(7.8mora/sec)、やや遅い(6.9mora/sec)および遅い(5.7mora/sec)の4段階である。ただし、これらの発話速度は、2つの文献(「Ward, N. and Nakagawa, S., 2004, Automatic User-Adaptive Speaking Rate Selection, International Journal of Speech Technology, vol. 7, pp.259-268.」および「Zellner, B., 1994, Pauses and the temporal structure of speech, in Fundamentals of speech synthesis and speech recognition, E. Keller ed., pp. 41-62」)から得た発話速度の範囲(約6−10mora/sec)および標準の発話速度(8mora/sec)に基づいて設定した。また、実験では、ロボット10を日本語で発話させるため、発話速度は、1分間における英単語数を、同じ時間における日本語の音節(一言)の個数に置き換えた値である。
実験を開始する前に、合成音声に慣れさせるために、ロボット10の音声(合成音声)による昔話を4分間被験者に聞かせた。これは、予備実験において、ロボット10の合成音声の聞き始めでは、音声を聞き取り難いことが分かったためである。また、予備実験では、ロボット10の合成音声を聞いたことが無い被験者は、ロボット10の合成音声を聞いたことが有る被験者と比較して、合成音声を聞き取る能力が低いことも分かった。そして、実験においては、被験者は、実験者(発明者等)によって提供される特定の場所についての情報をロボット10に尋ねる。これに応じて、ロボット10が話(案内を)始める。ただし、実験者は、被験者に、リラックスして、情報検索のために観光案内所を訪ねた者として振る舞うように頼んだ。また、実験者は、ロボット10が案内した内容について、被験者が覚えていた情報について提供するように依頼した。ただし、実験では、ロボット10は、身体動作(ジェスチャ)を行わずに、音声のみで案内した。そして、実験者は、被験者が覚えていた情報の量を理解度として記録した。
ただし、特定の場所についての知識を有する者は、ロボット10の音声が聞こえ難かったとしても、自身の知識で情報を補うことができるため、理解度が高いと考えられる。このため、被験者間の知識量の差を考慮して、ロボット10が移動する場合と移動しない場合とのそれぞれについて、異なる4段階の発話速度で2回ずつ各被験者について実験を行った。そして、各発話速度についての理解度についての被験者の平均値を算出した。
実験結果では、理解度は、同じ発話速度において、移動していない場合(移動なし)の方が移動している場合(移動あり)よりも高いという結果が得られた。また、ロボット10が移動しない場合には、発話速度がやや遅い(6.9mora/sec)場合に理解度が最も高く、ロボット10が移動する場合には、発話速度が遅い(5.7mora/sec)場合に、理解度が最も高かった。さらに、上述したように、特定の場所についての知識が多い被験者(ユーザ)程、理解度が高いと言える。さらにまた、上述したように、ロボット10の合成音声を聞いたことが無いユーザよりも、聞いたことが有るユーザの方が、聞き取り能力が高いため、理解度も高いと考えられる。さらにまた、実験では、ロボット10は身体動作(ジェスチャ)を行っていないが、そのようなジェスチャを伴う場合には、ジェスチャを伴わない場合よりも、理解度が低いと推測される。これは、ロボット10が移動する場合と同様に、ジェスチャを伴う場合には、ユーザは、合成音声を聞くことだけに集中することができないからである。このような実験結果等に基づいて、図5に示すような発話速度テーブルを決定した。ただし、実験に使用した発話速度が最適であるかどうかを検証していないため、簡単に示すために、この実施例の発話速度テーブルでは、発話速度をすべて整数で表した。また、実験結果に基づいて決定したのは、発話速度テーブルの第1列と第2列であり、ジェスチャが無い場合についての発話速度である。
図5に示すように、発話速度テーブルには、知識量、ロボットの音声を聞いた経験の有無、ロボットの歩行の有無および発話速度(ジェスチャ無、ジェスチャ有)が記述される。知識量、およびロボットの音声を聞いた経験の有無については上述したとおりであるため、重複した説明は省略する。ロボットの歩行の有無は、ロボット10が、静止したまま案内する(移動なし)か、ユーザに追従または並走しながら案内する(移動あり)かを示す情報である。発話速度(mora/sec)は、音声を出力(発話)する速度を示す情報であり、ジェスチャ(身体動作)の有無で異なる値が設定される。
ただし、ロボット10が移動するかどうかは、当該ロボット10が配置される場所等に応じて予め決定される。ただし、ロボット10が移動することが決定されている場合であっても、ロボット10の周囲に障害物(物や人間)が存在する場合には、移動しないようにしてある。また、ロボット10が身体動作(ジェスチャ)を行うかどうかは、当該ロボット10が配置される場所等に応じて予め決定される。ただし、ロボット10がジェスチャを行うことが決定されている場合であっても、ロボット10の周囲の状況、たとえば、移動する経路や移動後の場所等の状況によっては、ジェスチャを行えない場合もある。
上述したように、この実施例では、知識量が多い程、理解度が高いため、発話速度を高速に決定することができると考えられる。また、ロボットの音声を聞いたことの経験が有る場合には、そのような経験の無い場合よりも、合成音声を理解する能力が高いと考えられるため、発話速度が高速に決定される。さらに、ロボットの移動が有る場合には、移動が無い場合よりも、発話速度が高速に決定される。さらにまた、ジェスチャが無い場合には、ジェスチャが有る場合よりも、発話速度が高速に決定される。移動やジェスチャが有る場合には、合成音声を聞くことだけに集中することができないため、移動やジェスチャが無い場合よりも発話速度が低速に決定される。
たとえば、図5に示す発話速度テーブルでは、知識量が「大学」であり、ロボットの音声を聞いた経験の有無が「あり」であり、ロボットの歩行の有無が「あり」であり、ジェスチャが「あり」である場合には、発話速度は6(mora/sec)に決定される。詳細な説明は省略するが、他の場合についても同様である。
図6は、図3に示したメモリ84内のRAMのメモリマップの一例を示す図解図である。図6に示すように、RAMは、プログラム記憶領域840およびデータ記憶領域842を含む。プログラム記憶領域840には、ロボット10を制御するためのプログラム(制御プログラム)が記憶され、制御プログラムは、コミュニケーション行動プログラム840aおよび発話速度決定プログラム840bなどによって構成される。これらのプログラムは、HDDまたはROMから一時に全部、または、必要に応じて個別に、RAMにロードされる。
コミュニケーション行動プログラム840aは、上述したように、行動モジュールに従って、ロボット10に、身体動作および音声の少なくとも一方を用いたコミュニケーション行動(ビヘイビア)を実行させるためのプログラムである。発話速度決定プログラム840は、上述したように、ユーザの知識量、ロボット10の音声を聞いた経験の有無、ロボット10の移動の有無およびジェスチャの有無に応じて、ロボット10の音声に対応する合成音声データの発話速度を決定するためのプログラムである。
図示は省略するが、プログラム記憶領域840には、ユーザ特定プログラムや通信プログラムなども含む。ユーザ特定プログラムは、無線タグ12から受信した電波信号に含まれるRFIDを読み取り、このRFIDからユーザを特定するためのプログラムである。通信プログラムは、ネットワークを介して、または、直接、他のロボットや外部コンピュータと通信(無線通信)するためのプログラムである。
データ記憶領域842には、発話速度データ842aが記憶される。発話速度データ842aは、ユーザ毎に決定した発話速度についての数値データである。
図示は省略するが、データ記憶領域842には、制御プログラムの実行に必要な、他のデータが記憶されたり、カウンタ(タイマ)やフラグが設けられたりする。
図7−図14は、図3に示したCPU80の発話速度決定処理を示すフロー図である。以下、具体的に説明するが、同じ処理(ステップ)についての重複する説明は省略することにする。なお、発話速度は、図5に示した発話速度テーブルに従って決定されるが、当該発話速度テーブルに従って発話速度決定処理(発話速度決定プログラム842b)は実行される。図7に示すように、CPU80は、発話速度決定処理を開始すると、ステップS1で、変数nを初期化する(n=1)。ただし、変数nは、ロボット10の近傍ないし周辺に存在するユーザを個別に識別するための変数である。
続くステップS3では、n番目のユーザ情報を取得する。たとえば、ステップS3では、CPU80は、RFIDを検出した順番で、対応するユーザについてのユーザ情報をユーザ情報DB108に記憶されたユーザ情報テーブルから取得する。ただし、この実施例では、ユーザ情報は、対応するユーザについての知識量およびロボットの音声を聞いた経験の有無である。
次のステップS5では、ステップS3で取得した当該ユーザの知識量が大学であるかどうかを判断する。ステップS5で“NO”であれば、つまり当該ユーザの知識量が大学未満であれば、図8に示すステップS21に進む。一方、ステップS5で“YES”であれば、つまり当該ユーザの知識量が大学であれば、ステップS7で、ステップS3で取得したロボットの音声を聞いた経験の有無に応じて、当該ユーザがロボット10の音声を聞いたことがあるかどうかを判断する。
ステップS7で“NO”であれば、つまり当該ユーザがロボット10の音声を聞いたことがなければ、図12に示すステップS51に進む。一方、ステップS7で“YES”であれば、つまり当該ユーザがロボット10の音声を聞いたことがあれば、ステップS9で、ロボット10がジェスチャ(身体動作)を行える環境であるかどうかを判断する。上述したように、この実施例では、ロボット10がジェスチャを行えるかどうかは、当該ロボット10が適用される場所に応じて、当該ロボット10の使用者によって予め決定されている。また、ロボット10がジェスチャを行えることが決定されていても、現在、ロボット10の近傍(たとえば、腕の届く範囲)に障害物が存在する場合には、ジェスチャが行えないと判断する。ただし、障害物が存在するかどうかは、CPU80が赤外線距離センサ40や接触センサ58の検出結果に基づいて判断する。
ステップS9で“NO”であれば、つまりジェスチャを行えない環境であれば、図14に示すステップS65に進む。一方、ステップS9で“YES”であれば、つまりジェスチャを行える環境であれば、ステップS11で、ロボット10は移動するかどうかを判断する。上述したように、この実施例では、ロボット10が移動するかどうかは、当該ロボットが適用される場所に応じて、当該ロボット10の使用者によって予め決定されている。ただし、ロボット10が移動することが決定されていても、当該ロボット10の近傍や周囲に障害物が存在し、移動できない場合いは、移動しないと判断される。ロボット10の近傍や周囲に障害物が存在するかどうかは、上述したように、CPU80が赤外線距離センサ40や接触センサ58の検出結果に基づいて判断する。
ステップS11で“YES”であれば、つまりロボット10が移動する場合には、ステップS13で、発話速度を6(mora/sec)に決定し、ステップS17に進む。ただし、発話速度が決定されると、当該ユーザの識別情報(RFID)に対応づけた発話速度の数値データが発話速度データ842aとして記憶される。以下、発話速度を決定する場合について同様である。ただし、発話速度データ842aは、ロボット10の近傍ないし周辺に複数のユーザが存在する場合には、当該複数のユーザについての発話速度の数値データを含む。一方、ステップS11で“NO”であれば、つまりロボット10が移動しない場合には、ステップS15で、発話速度を7(mora/sec)に決定して、ステップS17に進む。
ステップS17では、変数nを1加算する(n=n+1)。そして、ステップS19で、変数nが最大値を超えたかどうかを判断する。このステップS19では、CPU80は、ロボット10(CPU80)で検出されたすべてのRFIDに対応するユーザについて発話速度を決定したかどうかを判断するのである。つまり、変数nの最大値は、ロボット10が検出したRFIDの個数(総数)である。ステップS19で“NO”であれば、つまり変数nが最大値以下であれば、まだ発話速度を決定していないユーザが存在する場合には、ステップS3に戻って、次のユーザについての発話速度決定処理を実行する。一方、ステップS19で“YES”であれば、つまり変数nが最大値を超えれば、すべてのユーザについて発話速度を決定したと判断して、発話速度決定処理を終了する。
図示は省略するが、ユーザに道案内等のサービスを提供するとき、当該ユーザについて決定された発話速度で合成音声データが出力される。
上述したように、ステップS5で“NO”となり、図8に示すステップS21に進むと、当該ユーザがロボットの音声を聞いたことが有るかどうかを判断する。ステップS21で“NO”であれば、図9に示すステップS31に進む。一方、ステップS21で“YES”であれば、ステップS23で、ロボット10がジェスチャを行える環境であるかどうかを判断する。ステップS23で“NO”であれば、図10に示すステップS39に進む。一方、ステップS23で“YES”であれば、ステップS25で、ロボット10が移動するかどうかを判断する。ステップS25で“YES”であれば、ステップS27で、発話速度を5(mora/sec)に決定して、図7に示したステップS17に進む。一方、ステップS25で“NO”であれば、ステップS29で、発話速度を6(mora/sec)に決定して、図7に示したステップS17に進む。
また、上述したように、ステップS7で“NO”となり、図9に示すステップS31に進むと、ロボット10がジェスチャを行えるかどうかを判断する。ステップS31で“NO”であれば、図11に示すステップS45に進む。一方、ステップS31で“YES”であれば、ステップS33で、ロボット10は移動するかどうかを判断する。ステップS33で“YES”であれば、ステップS35で、発話速度を4(mora/sec)に決定して、ステップS17に進む。一方、ステップS33で“NO”であれば、ステップS37で、発話速度を5(mora/sec)に決定し、ステップS17に進む。
上述したように、図8のステップS23で“NO”となり、図10に示すステップS39に進むと、ロボット10は移動するかどうかを判断する。ステップS39で“YES”であれば、ステップS41で、発話速度を6(mora/sec)に決定して、ステップS17に進む。一方、ステップS39で“NO”であれば、ステップS43で、発話速度を7(mora/sec)に決定して、ステップS17に進む。
また、図9のステップS31で“NO”となり、図11のステップS45に進むと、ロボット10は移動するかどうかを判断する。ステップS45で“YES”であれば、ステップS47で、発話速度を5(mora/sec)に決定して、ステップS17に進む。一方、ステップS45で“NO”であれば、ステップS49で、発話速度を6(mora/sec)に決定して、ステップS17に進む。
上述したように、図7のステップS7で“NO”となり、図12に示すステップS51に進むと、ロボット10がジェスチャを行える環境であるかどうかを判断する。ステップS51で“NO”であれば、図13に示すステップS59に進む。一方、ステップS51で“YES”であれば、ステップS53で、ロボット10は移動するかどうかを判断する。ステップS53で“YES”であれば、ステップS55で、発話速度を5(mora/sec)に決定して、ステップS17に進む。一方、ステップS53で“NO”であれば、ステップS57で、発話速度を6(mora/sec)に決定して、ステップS17に進む。
図12のステップS51で“NO”となり、図13に示すステップS59に進むと、ロボット10は移動するかどうかを判断する。ステップS59で“YES”であれば、ステップS61で、発話速度を6(mora/sec)に決定し、ステップS17に進む。一方、ステップS59で“NO”であれば、ステップS63で、発話速度を7(mora/sec)に決定して、ステップS17に進む。
図7のステップS9で“NO”となり、図14に示すステップS65に進むと、ロボット10は移動するかどうかを判断する。ステップS65で“YES”であれば、ステップS67で、発話速度を7(mora/sec)に決定して、ステップS17に進む。一方、ステップS65で“NO”であれば、ステップS69で、発話速度を8(mora/sec)に決定して、ステップS17に進む。
この実施例によれば、ユーザの知識量、ユーザがロボットの音声を聞いた経験の有無、ロボットの移動の有無およびロボットのジェスチャの有無に基づいて発話速度を決定するので、ユーザの知識や能力およびロボットがサービスを提供する状況や環境に応じて適切な発話速度を決定することができる。したがって、ユーザにロボットの音声を聞き易くすることができる。
なお、この実施例では、知識量やロボットの音声を聞いた経験をユーザ情報テーブルに予め登録しておくようにしてあるが、これに限定される必要はない。たとえば、ロボットが、知識量を測るための質問をユーザにして(問題を出して)、その回答に応じて当該ユーザの知識量を判定してもよい。また、ロボットが、ロボットの音声を聞いたことがあるかどうかをユーザに質問し、その回答によってロボットの音声を聞いた経験の有無を判断してもよい。
また、この実施例では、ロボットがユーザ毎に発話速度を決定するようにしたが、これに限定される必要はない。たとえば、ロボットと通信可能なコンピュータを設け、ロボットで検出されたRFIDをコンピュータに送信し、コンピュータでRFIDが示すユーザについての発話速度を決定し、決定した発話速度をロボットに通知するようにしてもよい。ただし、かかる場合には、図3に示したDB108、110、112をコンピュータの内部または接続可能に設けるとともに、図7−図14に示した発話速度決定処理がコンピュータで実行される。また、かかる場合には、ロボットが移動するかどうかはコンピュータに予め設定され、ロボットがジェスチャを行える環境かどうかの情報は、コンピュータに予め設定され、現在の状況については、ロボットによってコンピュータに送信される。
さらに、図5に示した発話速度テーブルは一例であり、ロボットを適用する環境に応じて適宜変更されるため、具体的に示した数値に限定されるべきではない。ただし、ユーザの知識量、ユーザがロボットの音声を聞いた経験の有無、ロボットの移動の有無およびロボットのジェスチャの有無のそれぞれにおける発話速度の大小関係は維持されるべきである。