以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
図1は、本実施形態の第1の実施例に係るロボット100の概観図である。ロボット100は、ユーザである人間と音声対話を行うコミュニケーションロボットである。ロボット100は、キャラクターを具現化したキャラクター装置であり、対話に合わせて眼の表情や視線方向が変化する。
ロボット100は、外観として動物を模しており、胴体部110と頭部120を有する。胴体部110の内部には、モータ111が設けられており、頭部120は、モータ111の駆動により、胴体部110に対して向きが変化する。頭部120には、ユーザが眼と認識できる位置に、眼球部122(右眼122a、左眼122b)が設けられている。眼球部122の構造については後に詳述するが、右眼122a、左眼122bのそれぞれの背後には、例えば液晶パネルや有機ELパネルである表示パネル106(右眼用表示パネル106a、左眼用表示パネル106b)が設置されている。表示パネル106には、黒目画像161(右黒目画像161a、左黒目画像161b)が映し出される。
ロボット100の鼻の位置には、カメラ102が目立たないように配置されている。カメラ102は、例えばCMOSセンサを含み、外部環境を認識するための画像を取得する撮像部として機能する。ロボット100の口の位置には、スピーカ109が隠されて配置されている。スピーカ109は、ロボット100が生成した音声を発する発話出力部として機能する。ユーザは、口の位置から出力される音声に、ロボット100が喋っているような感覚を覚える。また、頭部120のいずれかの位置には、マイク101が隠されて配置されている。マイク101は、ユーザの発話音声を検出する検出部としての機能を担う。
図2は、ユーザとロボット100のコミュニケーションの一例を示す図である。図2(a)に示すように、例えばユーザがロボット100に「やあ、げんき?」と話しかけると、図2(b)に示すように、ロボット100は、その話しかけに反応して、視線をユーザに向け、「元気だよ!おはなしできて嬉しいなあ。」などと発話する。視線の変化は、胴体部110に対する頭部120の向き、および右黒目画像161aと左黒目画像161bの位置の少なくともいずれかが変化することにより実現される。具体的には後述する。
図3は、ロボット100のシステム構成図である。ロボット100は、主なシステム構成として、マイク101、カメラ102、表示パネル106、スピーカ109、モータ111、制御部200、および応答音声DB310を備えている。制御部200は、例えばCPUによって構成され、機能ごとの実行を担う機能実行部としても動作し、主に、発話認識部201、顔認識部202、視線制御部203、表示制御部204、モータ制御部205、音声選択部206、および発話制御部207として動作する。
マイク101は、主な機能として、ロボット100が対話する相手であるユーザの発話音声を集音する。マイク101は、集音したユーザの発話音声を音声信号に変換して、発話認識部201へ引き渡す。
発話認識部201は、マイク101から受け取った音声信号を解析してユーザの発話を認識する。発話認識部201は、マイク101と協働して、ロボット100へ向かって話しかけるユーザの発話を取得する発話取得部としての機能を担う。発話認識部201は、具体的には、一般的な音声認識技術によりユーザの発話内容を認識する。発話認識部201は、認識した発話内容を音声選択部206へ引き渡す。
音声選択部206は、発話認識部201で認識されたユーザの発話内容に対して会話としてふさわしいセンテンスを選択し、選択したセンテンスに応じた発話データを応答音声DB310から収集して、発話制御部207へ引き渡す。応答音声DB310は、音声選択部206に接続されている応答音声のデータベースであり、例えばハードディスクドライブの記録媒体によって構成されている。応答音声DB310は、例えばコーパスとして体系化されており、個々の用語は、再生可能な発話データを伴って格納されている。
発話制御部207は、受け取った発話データを音声信号に変換してスピーカ109へ引き渡す。音声選択部206と発話制御部207は、互いに協働して、ユーザの発話内容に基づいて応答音声を生成する音声生成部としての機能を担う。スピーカ109は、発話制御部207で変換された音声信号を受け取って、応答音声を音声出力する。
発話認識部201は、ユーザが発話を始めたタイミングを視線制御部203へ引き渡す。また、発話制御部207は、応答音声を音声出力するタイミングを視線制御部203へ引き渡す。視線制御部203は、これらのタイミング情報に同期させて、視線方向の調整を実行する。
カメラ102は、主な機能として、ロボット100とコミュニケーションを取るユーザを撮影する。カメラ102は、撮影した画像を画像信号に変換して、顔認識部202へ引き渡す。
顔認識部202は、カメラ102から受け取った画像信号を解析してコミュニケーション対象であるユーザの顔を認識する。顔認識部202は、抽出した顔領域中から、ユーザの基準方向を決定する。基準方向は、ロボット100から、例えばユーザの両目を結ぶ中点へ向かう方向である。顔認識部202は、カメラ102と協働して、ユーザの基準方向を取得する取得部としての機能を担う。
基準方向は、三次元空間におけるベクトルで表されるので、基準方向を定めるためには、ロボット100からユーザの顔までの距離情報が必要である。距離情報は、例えばカメラ102がステレオカメラで構成される場合には画像間のズレ量から算出することができ、赤外線にも感度を有するカメラで構成される場合には投光した赤外線パターンの歪みから算出することができる。また、簡易的には、顔領域の大きさからおよその距離を推定することもできるし、コミュニケーションを行う状況でのユーザまでの距離は一定距離であると割り切っても良い。すなわち、ロボット100の仕様に応じて、距離情報を取得する手法を選択すれば良い。
視線制御部203は、発話認識部201、発話制御部207から受け取ったタイミング、あるいはその他のタイミングに同期して、視線方向を顔認識部202から受け取った基準方向へ向ける制御を行う。具体的には後述するが、視線方向を基準方向に一致させるために、黒目画像161の位置を変化させる変化量と、頭部120の向きを変化させる変化量を決定し、それぞれを表示制御部204とモータ制御部205へ引き渡す。
表示制御部204は、視線制御部203から受け取った黒目画像161の位置の変化量に従って、表示パネル106上で黒目画像161の位置を移動させる。表示制御部204は、受け取った変化量の大きさ、すなわち黒目画像161を移動させる距離に応じて、中間的な表示画像を段階的に生成し、アニメーションとして黒目画像161を表示すると良い。モータ制御部205は、視線制御部203から受け取った頭部120の向きの変化量に従って、モータ111を駆動する。視線制御部203、表示制御部204およびモータ制御部205は、互いに協働することにより全体として、視線方向を制御する制御部として機能する。
図4は、右眼122aの構造を示す斜視図である。左眼122bも右眼122aと同様の構造であり、それぞれの表示パネルは、共に表示制御部204によって表示制御される。
右眼122aは、主に、透光カバー131、光ファイバ束132および右眼用表示パネル106aから構成される。透光カバー131は、例えば透明なポリカーボネイトによって成形され、頭部120の外装材としての役割を担う。動物や人を模したロボットの場合、眼の表面は曲面であることが自然であり、ユーザに受け入れられやすい。したがって、本実施形態におけるロボット100も、眼の表面に相当する透光カバー131は、外部に向かって凸状の曲面に成形されている。
右眼122aの奥側には、右眼の黒目を図案化した図柄である右黒目画像161aを表示するための表示パネル106が設置されている。右眼用表示パネル106aの表示面は平面である。また、表示面は、透光カバー131の外縁周を包含する大きさを有する。図においては、透光カバー131の外縁周に対応する大きさの白目に対して偏位した位置に右黒目画像161aが表示されている様子を示す。
なお、本実施形態において表示する黒目は、生身の人間であれば虹彩と瞳孔を含む角膜に相当する部分であるが、図案化して表示するものであるので、生身の人間の黒目に対して部分的に省略されていたり、デフォルメされていたりするものであって良い。また、生身の人間には生じ得ないような装飾が施されていても良く、また、開閉を伴うようなアニメーションであっても良い。いずれにしても、コミュニケーション対象であるユーザが、黒目の動きとして認識し得るような図柄であれば良い。
右黒目画像161aには、中心座標CR(YR0、ZR0)が定義されている。表示制御部204は、中心座標CRを、右眼用表示パネル106aに設定された右眼座標系YR−ZRにおける表示座標と一致させることにより、右黒目画像161aの表示位置を定める。表示制御部204は、右黒目画像161aを現在表示している表示位置から目標位置まで変化させる場合には、右眼用表示パネル106aに現在表示している表示画像を、中心座標CRを目標座標とする表示画像に切り替える。このとき、表示制御部204は、現在の表示座標と目標座標との間に中間座標を段階的に定め、それぞれの中間座標に中心座標CRを一致させた中間画像を生成して順次表示しても良い。中間画像も順次表示すれば、視線の遷移をアニメーションとして表現できるので、より現実感のある視線移動を実現することができる。
透光カバー131の内曲面と右眼用表示パネル106aの表面とは、光ファイバ束132によって接続される。光ファイバ束132は、右眼用表示パネル106aに表示された右黒目画像161aを透光カバー131まで伝達する。光ファイバ束132は、右眼用表示パネル106aのピクセルのそれぞれに一対一に対応する光ファイバ132aの集合体である。図では説明のために右眼用表示パネル106aの表面から浮かせて示しているが、それぞれの光ファイバ132aの一端は、右眼用表示パネル106aの表面に導光系の接着剤により接着されている。それぞれの光ファイバ132aは、集合体としてその外周面が被覆132bで覆われて束ねられている。このようにして、透光カバー131、光ファイバ束132および右眼用表示パネル106aは、互いに接続されて一体化される。
右眼用表示パネル106aに表示された右黒目画像161aの光束は、光ファイバ132aの一端から入射し、他端から出射する。光ファイバ132aの出射面である他端の集合体は、透光カバー131の内曲面に沿う仮想的なスクリーンを形成する。したがって、右眼用表示パネル106aに表示された右黒目画像161aは、この仮想的なスクリーンにおいてユーザに観察される。
図5は、視線方向の制御について説明する図である。視線制御部203は、上述のように定めた基準方向に一致するようにロボット100の視線方向を調整する。視線方向の調整は、黒目画像161の位置と頭部120の向きの少なくともいずれかを変化させて行う。
頭部120の向きは、胴体部110に対する向きであって、例えば図示するように顔部中心の表面における法線方向と定義される。胴体部110を基準とする全体座標系x−y−zを図示するように定めると、頭部120は、モータ111の駆動により、ヨー軸方向θyおよびピッチ軸方向θz方向に回動可能である。すなわち、モータ制御部205は、頭部120をヨー軸方向θyおよびピッチ軸方向θz方向に回動させることにより頭部120の向きを調整することができる。
右黒目画像161aの位置は、上述のように、右眼座標系YR−ZRにおける表示座標により定まる。同様に、左黒目画像161bの位置は、左眼座標系YL−ZLにおける表示座標により定まる。視線方向は、頭部120の向きと、右黒目画像161aおよび左黒目画像161bの位置とによって確定する。このとき、右黒目画像161aおよび左黒目画像161bのそれぞれの中心座標CR、CLは、それぞれの仮想的な眼球中心と視線方向の注視点とを結ぶ直線上に位置する。このように、頭部120の向きと、右黒目画像161aおよび左黒目画像161bの位置とを調整することにより、ロボット100が特定の方向に視線を向けている印象をユーザに与える。
次に、視線方向を調整する制御について説明する。図6は、予め定められた規定範囲Cp内における視線調整を説明する図である。左図は、現時点T=tsにおいてカメラ102が撮影している画像を示し、その画像中心は頭部120の向きとほぼ一致する。「□」は、顔認識部202が決定した基準方向を示し、「×」は、現時点における視線方向を示す。視線制御部203は、「×」を「□」に一致させることを目標として、視線方向を基準方向へ向ける調整を行う。
現時点T=tsにおいては、視線方向は基準方向と一致していないが、基準方向は、視線方向に比較的近くに存在し、予め定められた規定範囲Cpに含まれている。このような状況においては、視線制御部203は、頭部120の向きを変化させずに黒目画像161の位置を変化させることにより視線方向を調整する。すなわち、視線制御部203は、頭部120を固定したままで視線方向を基準方向に一致させるための右黒目画像161aの変化量g(YR,ZR)および左黒目画像161bの変化量h(YL,ZL)を演算し、表示制御部204へ引き渡す。変化量g(YR,ZR)は、右眼用表示パネル106a上で右黒目画像161aの中心座標CRをYR軸方向とZR軸方向へそれぞれ並進移動する移動量を表す。同様に、変化量h(YL,ZL)は、左眼用表示パネル106b上で左黒目画像161bの中心座標CLをYL軸方向とZL軸方向へそれぞれ並進移動する移動量を表す。表示制御部204は、この変化量g(YR,ZR)、h(YL,ZL)に従って右黒目画像161aおよび左黒目画像161bの表示位置を移動させ、右図に示すように、時刻T=teで視線方向と基準方向の一致を達成する。
規定範囲Cpは、黒目画像161のみを変化させて視線方向を調整しても、睨みつけるような不自然な印象を与えない範囲として定められる。その大きさは、ロボット100のキャラクターとしての性質や、頭部120に対する眼球部122の大きさなどの様々な要因に従って予め決定される。
このように、規定範囲Cp内での視線方向の調整において頭部120の向きを変化させなければ、モータ111を駆動する電力を削減できる。また、モータ111の駆動音がマイク101の集音の妨げになることも防ぐことができる。また、カメラ102の撮影方向も固定されるので、画像の解析などの観点においても都合が良い。
図7は、規定範囲Cp外への第1の視線調整を説明する図である。左図は、現時点T=tsにおいてカメラ102が撮影している画像を示し、その画像中心は頭部120の向きとほぼ一致する。図6と同様に、「□」は、顔認識部202が決定した基準方向を示し、「×」は、現時点における視線方向を示す。視線制御部203は、「×」を「□」に一致させることを目標として、視線方向を基準方向へ向ける調整を行う。
現時点T=tsにおいては、視線方向は基準方向と一致しておらず、また、基準方向は、視線方向から比較的遠くに存在し、予め定められた規定範囲Cpに含まれていない。このような状況における第1の視線調整手法として、視線制御部203は、頭部120の向きと黒目画像161の位置を共に変化させることにより視線方向を調整する。すなわち、視線制御部203は、視線方向を基準方向に一致させるための頭部120の変化量f(θy,θz)、右黒目画像161aの変化量g(YR,ZR)および左黒目画像161bの変化量h(YL,ZL)を演算し、モータ制御部205、表示制御部204へ引き渡す。
変化量f(θy,θz)は、胴体部110に対して頭部120をヨー軸方向θyとピッチ軸方向θz方向へそれぞれ回動する回動角を表す。また、変化量g(YR,ZR)は、右眼用表示パネル106a上で右黒目画像161aの中心座標CRをYR軸方向とZR軸方向へそれぞれ並進移動する移動量を表す。同様に、変化量h(YL,ZL)は、左眼用表示パネル106b上で左黒目画像161bの中心座標CLをYL軸方向とZL軸方向へそれぞれ並進移動する移動量を表す。表示制御部204は、変化量g(YR,ZR)、h(YL,ZL)に従って右黒目画像161aおよび左黒目画像161bの表示位置を移動させ、また、モータ制御部205は、変化量f(θy,θz)に従って頭部120を回動する。これらの動作により、右図に示すように、時刻T=teで視線方向と基準方向の一致を達成する。
このとき、右黒目画像161aおよび左黒目画像161bの移動は、時刻T=tsで開始し、時刻T=teで終了するように調整される。また、頭部120の回動も、時刻T=tsで開始し、時刻T=teで終了するように調整される。すなわち、黒目画像161の移動と頭部120の回動が同時に始まって同時に終了するように調整される。このように両者を同期させることにより、視線方向の変化としてより自然な印象をユーザに与えることができる。なお、視線方向の変化に対して、頭部120の回動が寄与する寄与分と、黒目画像161の移動が寄与する寄与分の配分は、ロボット100のキャラクターとしての性質や、頭部120に対する眼球部122の大きさなどの様々な要因に従って予め決定される。
図8は、規定範囲Cp外への第2の視線調整を説明する図である。左図は、現時点T=tsにおいてカメラ102が撮影している画像を示し、図7の左図と同様の状況である。視線制御部203は、「×」を「□」に一致させることを目標として、視線方向を基準方向へ向ける調整を行う。このような状況における第2の視線調整手法として、視線制御部203は、途中までは頭部120の向きを変化させずに黒目画像161の位置を変化させ、その後に頭部120の向きと黒目画像161の位置を共に変化させて、視線方向を調整する。すなわち、視線制御部203は、視線方向を基準方向に一致させるために中間目標を設定し、まず中間目標における視線方向を実現するための右黒目画像161aの変化量g(YR1,ZR1)および左黒目画像161bの変化量h(YL1,ZL1)を演算する。そして、中間目標における視線方向を基準方向に一致させるための頭部120の変化量f(θy,θz)、右黒目画像161aの変化量g(YR2,ZR2)および左黒目画像161bの変化量h(YL2,ZL2)を演算する。視線制御部203は、これらの変化量をモータ制御部205、表示制御部204へ引き渡す。
表示制御部204は、時刻T=tsで、右黒目画像161aおよび左黒目画像161bの表示位置の移動を開始し、時刻T=tiで、変化量g(YR1,ZR1)、h(YL1,ZL1)分の移動を終了する。時刻T=tiで実現される中間目標における視線方向は、中図の「×」で示すように、規定範囲Cpの内側である。表示制御部204は、中間目標における視線方向を、T=tsにおける視線方向と基準方向とを結ぶ線分が、規定範囲Cpの大きさの60%以上90%未満の範囲で設定される内包範囲Cwと交叉する点を向く方向に設定する。続けて、モータ制御部205および表示制御部204は、時刻T=tiで、頭部120の回動と、右黒目画像161aおよび左黒目画像161bの表示位置の移動を開始する。そして、時刻T=teで、変化量f(θy,θz)分の回動と、変化量g(YR2,ZR2)、h(YL2,ZL2)分の移動を終了する。これらの動作により、右図に示すように、時刻T=teで視線方向と基準方向の一致を達成する。
このように頭部120の回動と黒目画像161の移動を連動させても、視線方向の変化としてより自然な印象をユーザに与えることができる。なお、頭部120の回動と黒目画像161の移動を同時に行う後半の動作において、視線方向の変化に対する、頭部120の回動が寄与する寄与分と黒目画像161の移動が寄与する寄与分の配分は、第1の視線調整と同様に決定される。
図9は、規定範囲Cp外への第3の視線調整を説明する図である。左図は、現時点T=tsにおいてカメラ102が撮影している画像を示し、図7の左図と同様の状況である。視線制御部203は、「×」を「□」に一致させることを目標として、視線方向を基準方向へ向ける調整を行う。このような状況における第3の視線調整手法として、視線制御部203は、途中までは頭部120の向きと黒目画像161の位置を共に変化させ、その後に頭部120の向きを変化させずに黒目画像161の位置を変化させて、視線方向を調整する。すなわち、視線制御部203は、視線方向を基準方向に一致させるために中間目標を設定し、まず中間目標における視線方向を実現するための頭部120の変化量f(θy,θz)、右黒目画像161aの変化量g(YR1,ZR1)および左黒目画像161bの変化量h(YL1,ZL1)を演算する。そして、中間目標における視線方向を基準方向に一致させるための右黒目画像161aの変化量g(YR2,ZR2)および左黒目画像161bの変化量h(YL2,ZL2)を演算する。視線制御部203は、これらの変化量をモータ制御部205、表示制御部204へ引き渡す。
モータ制御部205および表示制御部204は、時刻T=tsで、頭部120の回動と、右黒目画像161aおよび左黒目画像161bの表示位置の移動を開始する。そして、時刻T=tiで、変化量f(θy,θz)分の回動と、変化量g(YR1,ZR1)、h(YL1,ZL1)分の移動を終了する。時刻T=tiで実現される中間目標における視線方向は、中図の「×」で示すように、基準方向に対してユーザの顔領域近傍に設定される近傍範囲Cfの周縁上の点を向く方向に設定する。続けて表示制御部204は、時刻T=tiで、右黒目画像161aおよび左黒目画像161bの表示位置の移動を開始し、時刻T=teで、変化量g(YR2,ZR2)、h(YL2,ZL2)分の移動を終了する。これらの動作により、右図に示すように、時刻T=teで視線方向と基準方向の一致を達成する。
このように頭部120の回動と黒目画像161の移動を連動させても、視線方向の変化としてより自然な印象をユーザに与えることができる。なお、頭部120の回動と黒目画像161の移動を同時に行う前半の動作において、視線方向の変化に対する、頭部120の回動が寄与する寄与分と黒目画像161の移動が寄与する寄与分の配分は、第1の視線調整と同様に決定される。
次に、頭部120の回動と黒目画像161の移動を同時に行う場合の、視線方向と頭部120の向きの変化について説明する。図10は、視線方向と頭部120の向きの第1の変化について説明する図である。横軸は経過時間であり、時刻T=tsで頭部120の回動と黒目画像161の移動を同時に開始し、時刻T=teで同時に終了する場合を表す。縦軸は、目標方向との誤差を表す。実線は視線方向と目標方向との誤差を表し、点線は頭部120の向きと目標方向との誤差を表す。図は、時刻T=teおよびtsにおいて、頭部120の向きと視線方向とが一致する例を示している。
図示するように、視線制御部203は、経過時間に対して、視線方向の方が頭部120の向きよりも早く目標方向に近づくように頭部120の回動と黒目画像161の移動を制御する。すなわち、視線制御部203は、頭部120の向きが視線方向に遅れて追従するように、頭部120の向きと黒目画像161の位置を制御する。このように制御することにより、頭部120の向きと視線方向の関係が人間のそれに近似し、ユーザにより自然な印象を与える。
図11は、視線方向と頭部120の向きの第2の変化について説明する図である。第2の変化は、頭部120の向きが視線方向に遅れて追従する点で第1の変化と同様である。一方、第2の変化は、視線方向が目標方向に対して一旦オーバシュートし、かつ、頭部120の向きが目標方向に対してオフセットして動作を終了する点で第1の変化と異なる。このように視線方向を泳がすように目標方向へ収束させたり、頭部120をユーザに正対させないようにしたりすることで、より現実感のある視線の動きを実現することができる。
次に、制御部200が視線方向の調整に関して実行する動作処理の手順を説明する。以下に説明する動作処理は、制御部200がシステムメモリから読み込んだ制御プログラムを実行することにより実行される。図12は、視線方向の調整処理の手順を示すフローチャートである。フローは、ロボット100の電源がオンにされて開始される。なお、視線方向に関する処理以外の処理についての説明は省略する。
視線制御部203は、ステップS101で、発話認識部201がユーザの発話を検出したか否かを確認する。検出したらステップS103へ進み、そうでなければステップS102へ進む。視線制御部203は、ステップS102で、発話制御部207が応答音声の出力を開始するか否かを確認する。開始するならステップS103へ進み、そうでなければステップS108へ進む。
視線制御部203は、ステップS103で、表示制御部204から現在の黒目画像161の位置を取得し、モータ制御部205から現在の頭部120の向きを取得して、現在の視線方向を確認する。そして、顔認識部202は、ステップS104で、カメラ102から受信した画像信号を解析してユーザに対する基準方向を取得する。
視線制御部203は、ステップS105へ進み、基準方向が現在の視線方向に対して設定される規定範囲Cpの内側に含まれるか否かを判断する。含まれるのであればステップS106へ進み、含まれないのであればステップS107へ進む。
視線制御部203は、ステップS106へ進んだ場合には、図6を用いて説明したように、頭部120の向きを変化させずに黒目画像161の位置を変化させることにより視線方向を基準方向へ向ける調整を実行する。調整が終了したら、ステップS108へ進む。
視線制御部203は、ステップS107へ進んだ場合には、図13に示すサブファンクションを実行する。視線制御部203は、ステップS1071へ進み、ロボット100の制御状態が条件1を満たすか否かを判断する。条件1を満たす場合はステップS1072へ進み、満たさない場合はステップS1073へ進む。条件1については後述する。
視線制御部203は、ステップS1072へ進んだ場合には、図7を用いて説明したように、頭部120の向きと黒目画像161の位置を共に変化させることにより視線方向を基準方向へ向ける調整を実行する。調整が終了したら、ステップS108へ進む。
視線制御部203は、ステップS1073へ進んだ場合には、ロボット100の制御状態が条件1とは異なる条件2を満たすか否かを判断する。条件2を満たす場合はステップS1074へ進み、満たさない場合はステップS1076へ進む。条件2については後述する。
視線制御部203は、ステップS1074へ進んだ場合には、図8を用いて説明したように、時刻T=tsから時刻T=tiまでの間は頭部120の向きを変化させずに黒目画像161の位置を変化させることにより視線方向を中間目標の方向へ向ける調整を実行する。
その後ステップS1075へ進み、時刻T=tiから時刻T=teまでの間は頭部120の向きと黒目画像161の位置を共に変化させることにより視線方向を基準方向へ向ける調整を実行する。調整が終了したら、ステップS108へ進む。
視線制御部203は、ステップS1076へ進んだ場合には、図9を用いて説明したように、時刻T=tsから時刻T=tiまでの間は頭部120の向きと黒目画像161の位置を共に変化させることにより視線方向を中間目標の方向へ向ける調整を実行する。その後ステップS1077へ進み、時刻T=tiから時刻T=teまでの間は頭部120の向きを変化させずに黒目画像161の位置を変化させることにより視線方向を基準方向へ向ける調整を実行する。調整が終了したら、ステップS108へ進む。
図12へ戻り、視線制御部203は、ステップS108で、無会話状態で一定時間が経過するなど、ユーザとのコミュニケーションが終了したか否かを判断する。まだ終了していないと判断した場合には、ステップS101へ戻る。終了したと判断した場合には、一連の処理を終了する。
ここで、条件1および条件2について説明する。条件1および条件2は、ユーザの発話内容、発話制御部207が出力する発話内容や、制御部200が読み取ったユーザの感情、ロボット100が表出したい感情等によって適宜定められる条件である。例えば、表出する感情Aに相応しい視線方向の調整がステップS1074およびステップS1075によって実現される調整であり、表出する感情Bに相応しい視線方向の調整がステップS1076およびステップS1077によって実現される調整であるとする。このような場合は、条件1を「表出する感情がAおよびBのいずれでもない」と設定し、条件2を「表出する感情がAである」と設定すれば良い。
また、条件は2つ設定しなくても良く、1つだけでも良い。更には、基準方向が現在の視線方向に対して設定される規定範囲Cpの外側である場合の視線方向の調整をいずれか1つの手法に限っても良い。
次に、本実施形態の第2の実施例について説明する。図14は、第2の実施例に係るロボット400の概観図である。第1の実施例に係るロボット100は、キャラクターを具現化したコミュニケーションロボットであったが、第2の実施例に係るロボット400は、搬送物を把持して自律移動する搬送ロボットとしての機能も有するコミュニケーションロボットである。近時の搬送ロボットは、人間と作業空間を共有するものが増えており、人間とコミュニケーションを取りながら作業を実行するものも知られてきている。ロボット400は、搬送ロボットでありながら、ロボット100のようなコミュニケーションを実行できるロボットである。
ロボット400は、コミュニケーション機能に関する構成はロボット100とほぼ同様であるので、主に相違点について説明する。搬送ロボットのような機能ロボットは、頭部や胴体部が必ずしも人間や動物の形態を模倣するものでなくて良い。ロボット400は、図示するように、胴体部410が半円筒形状であり、頭部420がほぼ表示パネル406のみで構成されている。表示パネル406には、黒目画像461を含む顔画像が表示される。また、表示パネル406は、頭部420として、胴体部410に対してヨー軸方向θyおよびピッチ軸方向θz方向に回動される。
このように構成されたロボット400においても、ロボット100と同様に、頭部420の向きと黒目画像461の位置を変化させることにより、視線方向を基準方向へ向けることができる。したがって、ロボット400が人間や動物の形態とはかけ離れた外見であっても、ロボット400と作業するユーザは、ロボット100のようにコミュニケーションを取ることができる。更には、より自然な視線移動を体感することができる。
以上第1の実施例と第2の実施例を通じて本実施形態を説明したが、ロボットの態様はこれらの実施例に限定されない。上記の実施例では、コミュニケーション対象であるユーザの基準方向は、カメラ102で取得した画像信号を解析して決定したが、基準方向の決定方法はこれに限らず、例えばマイク101をステレオマイクにして、発話方向を基準方向として定めても良い。視線制御部203は基準方向を取得できれば良いので、環境センサや基準方向の演算部は外部装置に備えられていても良い。この場合、視線制御部203は、通信IFを介して基準方向を取得すれば良い。このような構成においては、通信IFが基準方向を取得する取得部として機能する。
また上記の実施例では、両眼の眼球部を備えるロボットを説明したが、単眼の眼球部や、三眼以上の眼球部を備えるロボットであっても構わない。そのような眼球部であっても、視線方向を定めることは可能である。また、上記の例では、光ファイバ束132を介在させた眼球部122を説明したが、光ファイバ束132等を介在させることなく、曲面の表示パネルを眼球部122として採用しても良い。また、簡易的には平面の表示パネルを眼球部122として採用しても良い。また、眼球部は表示パネルによって実現されるものに限らず、例えば黒目が描かれた球がモータで回転される態様であっても構わない。その場合の黒目の位置の変化は、モータによる球の回転によって実現される。また、上記の第2の実施例におけるロボット400では両眼を一つの表示パネルに表示したが、両眼の他に眉や鼻や口も表示して、これらのパーツも視線方向に連動させて変化させても良い。この場合において視線制御部203は、表示パネル全体の表示態様を制御すると良い。
また、上記の実施例では、基準方向が規定範囲Cpの内側に存在しない場合の視線調整として図8の例および図9の例を説明した。しかし、規定範囲Cpの内側か外側かに関わらず、これらの視線調整を実行しても良い。すなわち、途中までは頭部120の向きを変化させずに黒目画像161の位置を変化させ、その後に頭部120の向きと黒目画像161の位置を共に変化させて視線方向を調整する手法は、現視線方向と基準方向が近くても実行し得る。同様に、途中までは頭部120の向きと黒目画像161の位置を共に変化させ、その後に頭部120の向きを変化させずに黒目画像161の位置を変化させて、視線方向を調整する手法は、現視線方向と基準方向が近くても実行し得る。このような視線の動きは、表現したい感情や表情との兼ね合い等において採用することができる。
また、設定する基準方向はユーザの両眼の中間点でなくても良い。コミュニケーションによっては、表出する表情の例として「視線を外す」場合もあり、このような場合には、視線制御部203は、ユーザの両眼から離れた点を基準方向として設定する。