本実施形態では、以下に詳述する通り、利用者の中から選択する所定の利用者に対しては、利用者の全部または一部に適用する第1動作モードよりも高速な第2動作モードを適用することで、所定の利用者の注意を喚起し、興味を惹きつけ、集中させる。
図1は、本実施形態に係るロボット1の全体概要を示す。ロボット1の詳細は、図2以降で詳述する。ロボット1は、一人または複数の利用者とコミュニケーションすることができるコミュニケーションロボットとして構成されている。
ここで、利用者とは、ロボット1の提供するサービスを利用する人間であり、例えば、介護施設の利用者、病院の入院患者、保育園や幼稚園の園児などである。ロボット1の提供するサービスとしては、例えば、クイズ、ゲーム、体操、ダンス、および、これらを適宜組み合わせて設計できるレクリエーション活動などがある。本実施形態では、介護施設でのレクリエーション活動のように、ロボット1が複数の利用者に対して共通のサービス(パフォーマンス)を提供する場合を例に挙げて説明する。
ロボット1は、ロボット本体10と、ロボット本体10を制御するためのロボット制御部20を備える。ロボット本体10は、利用者が親しみやすいように、人型に形成されるが、これに限らず、猫、犬、うさぎ、熊、象、キリン、ラッコなどの動物形状に形成してもよいし、ひまわりなどの草花形状などに形成してもよい。要するに、ロボット1は、対面して注目しているかのような印象を利用者に与えることのできる形態やデザインを備えていればよい。本実施形態では、ロボット本体10を人型に形成する場合を例に挙げて説明する。
ロボット本体10は、例えば胴体11と、頭部12と、両腕部13と、両脚部14を備えている。頭部12、両腕部13および両脚部14は、アクチュエータ225(図2で後述)により動作する。例えば、頭部12は、前後左右に回動可能である。両腕部13は上げ下げしたり、前後に動かしたりできる。両脚部14は、膝の折り曲げなどができ、歩行することができる。頭部12は、「所定の可動部」の例である。頭部12と両腕部13のいずれか少なくとも一方の腕部を「所定の可動部」として使用してもよい。または、ロボット1が回動可能な目を備える場合、頭部および目のいずれか一方または両方を「所定の可動部」としてもよい。
ロボット制御部20は、ロボット本体10の内部に設けられている。ロボット制御部20の全機能をロボット本体10内に設けてもよいし、一部の機能をロボット本体10の外部の装置、例えば、通信ネットワーク上のサーバなどに設ける構成でもよい。例えば、利用者とのコミュニケーションに必要な処理の一部をサーバ内で実行し、その実行結果をサーバからロボット制御部20へ送信することで、コミュニケーション処理を実行する構成としてもよい。
ロボット制御部20は、図2で後述するようにマイクロコンピュータシステムを利用して構成されており、以下の機能を実現する。ロボット制御部20は、各利用者の状態を示す利用者状態情報24および予め用意されるコンテンツデータ25とに基づいて、ロボット本体10の動作を制御する。コンテンツデータ25とは、例えばレクリエーション活動のために用意されたシナリオであって、クイズやゲーム、体操などの複数のサブシナリオから構成される。各サブシナリオには、セリフや動作などが設定されている。
ロボット制御部20は、第1動作モード21および第2動作モード22を、利用者状態情報24およびコンテンツデータ25に基づいて実行する。第1動作モード21は、各利用者の全体または一部に対して提供されるもので、通常速度である第1速度で頭部12を回動する。なお、第1動作モード21は、後述の実施例では、第1動作モードP1と示されている。
第2動作モード22は、各利用者の中から選択される所定の利用者に対して提供されるもので、通常速度よりも高速な第2速度で頭部12を回動する。所定の利用者とは、例えば、ロボット1の実行するレクリエーション活動(パフォーマンス)に興味を失ったと判定された利用者であり、刺激を与えて興味を惹きつける対象の利用者である。後述する実施例では、所定の利用者を刺激対象利用者と呼ぶ場合がある。第2動作モード22は、後述の実施例では、第2動作モードP2として示されている。
ロボット制御部20は、首振り動作履歴27を用いて、各利用者の中から所定の利用者を選択する。首振り動作履歴27とは、図3で後述する首振り動作履歴テーブル217に対応しており、頭部12を回動させて各利用者の方を向いた動作の履歴である。切替制御部23は、予め設定される所定のタイミングが到来すると、第1動作モード21と第2動作モード22とを切り替えて実行する。
ロボット1の首振り動作について説明する。ここでの首振りとは、頭部12を左右方向に回動させることである。ロボット1を首振り動作させると、頭部12に設けられる顔が各利用者の方を向く。従って、ロボット1の顔に目または目を象徴する装飾が施されている場合、ロボット1が首を振ることでロボット1の視線が移動することなる。このため、首振り動作を例えば視線を移動させる動作と、所定の利用者に向けてロボット1の頭部12を回動させることを例えば所定の利用者に注目する動作と呼ぶこともできる。
図1では、ロボット1の前方に複数の利用者U1〜U5が位置しており、ロボット1の主導するレクリエーション活動に参加している。ここで、利用者U1は一人だけ、他の利用者U2〜U5から離れているとする。
ロボット制御部20は、頭部12に搭載したマイク221やスピーカ223および音声認識部204(図2参照)などを用いて、各利用者と対話することができる。また、ロボット制御部20は、頭部12に搭載したカメラ222や画像認識部205を用いて、各利用者の顔を識別したり、利用者の顔とロボット1との位置関係を示す顔位置マップ216(図2参照)を作成したりすることができる。
ロボット制御部20は、周囲を見渡すことで利用者U1〜U5の存在を認識し、顔の位置を特定して記憶する。ロボット制御部20は、撮影した画像の中から各利用者の顔の特徴を抽出し、抽出した各顔の周囲に連続性を判定するためのエリアCAを設定する。ロボット制御部20は、連続性判定エリアCAが連続している範囲の顔を、一群の顔として取り扱う。図1の例では、利用者U2〜U5は近接しているため、各利用者ごとのエリアは連続している(CAn)。
第1動作モード21では、一群の顔U2〜U5の重心位置を基準とし、連続エリアCAnの左端と右端の間の第1範囲HS1において、頭部12を第1速度で回動させる。ロボット制御部20は、利用者と頭部12が対面すると短時間停止し、あたかもロボット1が利用者を注視しているかのように振る舞うことができる。
ロボット制御部20は、所定のタイミングが到来したと判定すると、第1動作モード21から第2動作モード22へ首振り動作を切り替える。所定のタイミングとしては、例えば、所定の時間が経過した場合、シナリオ中の所定の発言を出力する場合、ロボット1への関心が薄れていると思われる利用者を検出した場合などである。
第2動作モード22では、各利用者U1〜U5の中から、刺激してロボット1へ興味を向けさせるべき所定の利用者U1を選択し、その利用者U1に向けて高速に頭部12を回動させる。これにより、所定の利用者U1を驚かせて注意を喚起させる。
第2動作モード22では、例えば第1範囲HS1に含まれる各利用者U2〜U5のうち、所定の利用者U1から最も遠い利用者U5を始点となる利用者として選択し、いったん頭部12を始点となる利用者U5へ向ける。なお、本明細書において、ロボット1の頭部12を利用者へ向けるとは、頭部12に設けられるロボットの顔が利用者の方を向くという意味である。
そして、ロボット制御部20は、頭部12を、始点となる利用者U5から終点となる所定の利用者U1に向けて、第1速度よりも高速な第2速度で回動させる。始点の利用者U5から終点の所定の利用者U1までの首振り範囲が、第2範囲HS2である。
一人離れて参加していた所定の利用者U1は、突然にロボット1の頭部12が高速に自分の方を振り向くため、驚きの情を持つと共に、注目されたことによる満足感や喜びを感じるであろう。ロボット制御部20は、所定の利用者U1の注意をさらに喚起すべく、所定の利用者U1に対して「楽しんでいますか」、「いかがでしたか」などの呼びかけを行ってもよい。突然に注目され、話しかけられた所定の利用者U1は、ロボット1やロボット1の主導するコミュニケーション活動に関心を持つであろうと考えられる。
その後、ロボット制御部20は、再び一群の顔U2〜U5を第1速度で見渡す第1動作モード21へ戻る。このように構成される本実施形態によれば、第1動作モード21と第2動作モード22を適宜切替制御することができるため、利用者の注意を喚起し、ロボット1またはロボット1の主導するコミュニケーション活動への関心や興味を高めることができる。
従って、例えば、介護施設などでは、ロボット1の主導するレクリエーションを活発化することができ、各利用者に満足感を与えることができる。ロボット1は、各利用者を定期的または不定期に注視することができるため、各利用者は疎外感を感じることが少なく、コミュニケーション活動に参加しているという一体感を得ることができる。
なお、首振り動作の制御方法は上述の例に限らない。また、ロボット1は、介護施設などに好適に用いることができるが、介護施設に限らず種々の施設や場面にも適用することができる。以下、本実施形態のロボット1を詳細に説明する。
図2は、ロボット制御部20の構成を中心に示す構成説明図である。ロボット制御部20は、例えば、マイクロプロセッサ(以下CPU)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、音声認識部204、画像認識部205、音声出力部206、センサ制御部207、通信部208、対話制御部209、レクリエーション制御部210、記憶装置211、アクチュエータ制御部212、バス213、図示せぬ電源装置などを備える。
ロボット制御部20は、通信プロトコルを有する通信部208から通信ネットワーク3を介して、外部装置2と双方向通信することができる。通信部208は、通信ネットワーク3と、有線または無線で接続する。外部装置2は、例えば、パーソナルコンピュータ、タブレットコンピュータ、携帯電話、携帯情報端末などのように構成してもよいし、サーバコンピュータとして構成してもよい。
CPU201は、記憶装置211に格納されているコンピュータプログラム214を読み込んで実行することにより、利用者と対話したり、ロボット本体10の可動部を動かしたりして、レクリエーション活動を制御する。ROM202には、コンピュータプログラム214が使用する制御係数などが記憶される。RAM203は、CPU201により作業領域として使用されたり、管理や制御に使用するデータの全部または一部を一時的に記憶したりする。
音声認識部204は、一つまたは複数のマイク221から取得した音データを解析し、周囲の音声を認識する。画像認識部205は、一つまたは複数のカメラ222から取得した画像データを解析して、周囲の画像を認識する。音声出力部206は、音声認識部204や画像認識部205での認識結果およびコンテンツデータ215などに応じた応答を、音声としてスピーカ223から出力する。
センサ制御部207は、ロボット本体10に設けられる一つまたは複数のセンサ224からの信号を受信して処理する。センサ224としては、例えば、距離センサ、圧力センサ、ジャイロセンサ、加速度センサ、障害物検出センサなどがある。
なお、センサ224、マイク221、カメラ222、スピーカ223などは、全てロボット本体10内に搭載されている必要はなく、ロボット本体10の外部に設けられていてもよい。例えば、介護施設の室温を検出する温度センサからの信号を、ロボット制御部20は取り込んで利用することができる。またロボット制御部20は、施設内に設置されたカメラやマイク、スピーカと無線で接続することで利用することもできる。
対話制御部209は、コンテンツデータ215などに基づいて、音声認識部204および音声出力部206などを制御することで、利用者との間で対話する機能である。対話制御部209は、CPU201が対話制御部209に対応するコンピュータプログラム214を実行することで、実現される。
レクリエーション制御部210は、ゲームやクイズ、体操などを通じて利用者とコミュニケーションするためのレクリエーション活動を制御する機能である。レクリエーション制御部210は、CPU201がレクリエーション制御部210に対応するコンピュータプログラム214を読み込んで、コンテンツデータ215などに基づいて実行することで、実現される。図2では、理解のために対話制御部209およびレクリエーション制御部210を、CPU201とは別に示している。
記憶装置211は、例えば、ハードディスクドライブ、フラッシュメモリデバイスなどの比較的大容量の記憶装置として構成することができる。記憶装置211は、例えば、コンピュータプログラム214、コンテンツデータ215、顔位置マップ216および首振り動作履歴テーブル217を記憶する。記憶装置211には、例えば介護施設の利用者一覧のような、利用者の氏名と顔データの特徴を対応付けたデータを記憶することもできるが、図2では省略している。
コンピュータプログラム214は、ロボット1の持つ各機能を実現するためのプログラムである。実際には、例えば、音声認識プログラム、対話制御プログラム、レクリエーション制御プログラムなどの複数のコンピュータプログラムがあるが、図2では、一つのコンピュータプログラム214として示す。
コンテンツデータ215は、例えば、クイズ、ゲーム、体操、ダンスなどの各種コンテンツをロボット1が実演するためのシナリオデータである。レクリエーションのコンテンツデータは、一つ以上のコンテンツを含んで構成される。レクリエーションのコンテンツデータは、記憶装置211に複数種類登録されている。介護施設などの管理者は、登録されたコンテンツデータ群の中から一つまたは複数のコンテンツデータを選択し、実行させることができる。初期登録されたコンテンツデータを管理者が適宜編集可能な構成としてもよい。
ここで、ロボット1がダンスするためのコンテンツデータには、どのように頭部12、腕部13、脚部14を動かしてダンスを表現するかの動作手順が記憶されている。ロボット1がクイズを出題するためのコンテンツデータには、例えば、問題文、利用者の解答を促すためのメッセージ、解答、正解または不正解を判定するためのメッセージなどが含まれる。クイズの出題や正誤判定に際して、ロボット1が立ち上がったり、手足を動かしたりする場合には、それらの動きもシナリオに定義される。ロボット1がゲームをするためのコンテンツデータには、ゲームを実行するための、かけ声や手足の動作などが定義されている。
顔位置マップ216は、ロボット1の周囲で検出される各利用者の顔の位置とロボット1との関係を記憶したものである。顔位置マップ216の詳細は、図3で述べる。首振り動作履歴テーブル217は、ロボット1の頭部12が回動した履歴を管理するテーブルである。首振り動作履歴テーブル217の詳細は、図3で述べる。
アクチュエータ制御部212は、各種アクチュエータ225を制御する。各種アクチュエータ225としては、例えば、頭部12、腕部13、脚部14などを駆動する電動モータなどがある。
図3は、顔位置マップ216および首振り動作履歴テーブル217の例を示す。顔位置マップ216は、ロボット1が検出した各利用者の顔の位置および関心度などを記憶するテーブルである。
顔位置マップ216は、例えば、ID216A、名前216B、ヨー軸角度216C、ピッチ軸角度216D、距離216E、関心度216Fを対応付けて管理する。
ID216Aは、各利用者をロボット1内で識別するための識別子である。例えば、顔を検出した順番に若い番号の識別子が設定される。名前216Bは、検出した顔を画像認証することで特定された利用者の名称である。利用者の顔と名前のペアは、事前にロボット制御部20に登録されている。顔位置マップ216の作成時に検出された顔と登録済みの顔とが一致すると判定されると、その登録済みの顔に対応付けられている名前が顔位置マップ216にコピーされる。利用者の名前は、本名でもよいし、愛称でもよい。未登録の顔を検出した場合、名前216Bは空欄となる。
ヨー軸角度216Cは、ロボット1の頭部12を基準とした、利用者の位置を示す角度である。図4に示すように、ヨー軸角度216Cは、ロボット1の頭部12(または本体10)の正面を基準(θ1=0°)とした、水平方向(左右方向)の利用者の顔の位置である。図4ではヨー軸角度をθ1aL、θ1aR、θ1bL、θ1bR、θ1cL、θ1cRのように、首振り動作のモードごとにアルファベット小文字を添えて示す。そして、ここでは基準角度θ=0°から左側をマイナス、右側をプラスとする。また、ロボット1から見て左側の角度にLを添え、右側の角度にRを添える。
ピッチ軸角度216Dは、ロボット1の頭部12(または本体10)の正面を基準(θ2=0°)とした、垂直方向(上下方向)の利用者の顔の位置である。図4に示すように、利用者の顔が水平線に対して上下にばらつく場合、その上下方向の角度がピッチ軸角度θ2となる。水平を基準角度とした場合、上側をプラスのピッチ角度、下側をマイナスのピッチ角度と定義してもよい。
距離216Eは、ロボット1が利用者の正面を向いた場合の、ロボット1と利用者との距離を示す。関心度216Fは、利用者のロボット1への関心や興味の強さを示す情報である。関心度は、例えば、ロボット1に対する利用者の顔の向きで判定できる。ロボット1から見たときの利用者の顔が正面を向いている場合、その利用者はロボット1へ注目しており、関心が高いと判定することができる。例えば、ロボット1から見た利用者の顔の面積が左右ほぼ均等な場合、正面を向いていると判定できる。左右の面積がほぼ均等とは、所定範囲内の面積差であることを意味する。これに対し、ロボット1から見た利用者の顔の面積が左右いずれかに偏っている場合、脇見などをしており、関心が低いと判定することができる。また例えば、利用者がロボット1の演技や発言に対して、頷いたり、笑ったり、拍手したり、返事をしたり等の反応を示す場合は、ロボット1への関心が高まっていると判定することができる。また例えば、ロボット1が注視する回数が少なかったり、前回注視してからの経過時間が長くなったりした場合は、ロボット1への関心が低下していると推定することもできる。このように、予め設定する一つ以上のパラメータに基づいて、利用者のロボット1に対する関心の度合を算出することができる。
首振り動作履歴テーブル217は、ロボット1の首振り動作の履歴を管理する。首振り動作履歴テーブル217は、例えば、ID217A、対面回数217B、始点回数217C、終点回数217D、放置フラグ217E、経過時間217F、呼びかけ回数217Gなどを対応付けて管理する。
ID217Aは、顔位置マップ216のID216Aと同一の値を使用する。対面回数217Bは、ロボット1の頭部12が利用者に対面した回数を示す。ここでの対面とは、ロボット1が利用者の方を向いて短時間停止した状態を示す。さっと見渡して終わった程度の対面は含まないが、含める構成でもよい。ロボット1が各利用者を順番に注視しながらレクリエーションを進める場合、対面回数217Bの値は大きくなる。特に、利用者が密集している範囲HS1(図1参照)では、定期的に首振り動作が行われるため、対面回数は大きくなりやすい。
本実施例では、ロボット1が利用者の方を向いた場合であっても、その利用者が正面を向いておらず、ロボット1と対面したとは判定できない場合は、対面回数としてカウントしない。例えば利用者が横を向いていたり、うつむいて寝込んでいたりした場合は、ロボット1と対面し見つめ合ったとは考えられないため、対面回数217Bに含めない。ただし、ロボット1と利用者とが正面を向き合っていない場合も、対面回数217Bに含める構成としてもよい。
始点回数217Cは、所定の利用者を刺激するための首振り動作の始点として選択された回数である。つまり、図1の利用者U5として選択された回数を示す。終点回数217Dは、所定の利用者を刺激するための首振り動作の終点として選択された回数、つまり、所定の利用者として選択された回数を示す。
放置フラグ217Eは、ID217Aで特定される利用者を放置しておくことを示す制御用のフラグである。放置フラグがオンに設定された利用者は、所定の利用者(刺激対象利用者)として選択されず、そのままの状態に置かれる。例えば、利用者の顔位置から、その利用者が熟睡していると判定した場合、ロボット制御部20は、寝ている利用者のID217Aに放置フラグ217Eをセットする。これにより、寝ている利用者を無理に起こすことなくコミュニケーション活動(レクリエーション)を行うことができる。
経過時間217Fは、ロボット1と利用者の最後の対面からの経過時間を示す。経過時間217Fは、例えば、分、秒、または一定時間ごとに加算するカウンタ値で記録することができる。経過時間217Fに加えて、最後の対面時刻を首振り動作履歴テーブル217で管理してもよい。
呼びかけ回数217Gは、ロボット1から利用者への呼びかけ動作の回数を示す。呼びかけ動作としては、例えば、名前を呼ぶ、「楽しんでいますか」などの所定のメッセージを投げかける、腕部13を利用者の方へ伸ばす、などがある。
図4を用いて、首振り動作の例を説明する。図4(a)は、第1動作モードP1の首振り動作を示す。ここでは、利用者U2〜U5がロボット1の正面に集まっており、その左右両側に利用者U1と利用者U6が離れて参加している場合を例に挙げる。ロボット1の頭部12は利用者U3の方を向いている。ロボット1が正面を向いている方向をヨー軸角度θ1の基準とする。第1動作モードP1において、ロボット制御部20は、ロボット1の頭部12を、一群の顔の範囲HS1で、各利用者U2〜U5を順番に短時間見つめるかのようにして、通常の速度で移動させる。この場合、ロボット制御部20は、ヨー軸角度−θ1aLからθ1aRまでの範囲HS1で、頭部12を通常速度で移動させる。
図4(b)は、第2動作モードP2の首振り動作を示す。第2動作モードP2の首振り動作は、始点となる利用者に頭部12を通常の速度で向けるための首振り動作P2aと、始点となる利用者から終点となる利用者(刺激対象利用者)へ頭部12を高速に移動させるための首振り動作P2bとを含む。高速に移動する様子を示すために、首振り動作P2bの線を首振り動作P2aの線よりも太く表示している。
図4(b)の例では、最初、ロボット1の頭部12は利用者U3の方を向いている。ロボット制御部20は、現在位置(U3)から終点の利用者U6へ向けて頭部12を回動させるのではなく、いったん、終点の利用者U6から最も離れた利用者U1に頭部12を向ける(P2a)。このときの頭部12が振り向く速度は通常速度であり、頭部12の首振り動作の量はヨー軸角度θ1bLである。基準位置から刺激対象の利用者U6までのヨー軸角度をθ1bRとする。
ロボット制御部20は、最終目標の利用者U6から最も離れた利用者U1を始点とし、始点の利用者U1から終点の利用者U6に向けて、ヨー軸角度が−θ1bLからθ1bRまで変化するように頭部12を回動させる(P2b)。始点の利用者U1から終点の利用者U6までの首振り動作の範囲HS2において、頭部12の速度は、通常速度よりも速く設定されている。利用者U6は、いったん自分から離れたロボット1の頭部12が高速に振り向くため、驚きの感情が引きおこされる。
図4(c)は、第2動作モードP2の他の例を示す。この例では、刺激対象の終点の利用者U6から所定の最低首振り量Qだけ離れた位置へ始点を設定する。その始点は、最低首振り量Qを確保すべく、最も離れた利用者U1よりもさらに外側に設定される場合がある。この点を説明するために、図4(c)では利用者U1,U2を省き、利用者U3〜U6のみ存在する場合を例に挙げて説明する。図4(c)に示す第2動作モードP2でロボット1の首振りを制御する例は、図12と共に後述する。
最初、頭部12は、終点の利用者U6に最も近い利用者U5を向いているとする。ロボット制御部20は、終点の利用者U6から最も遠い利用者U3よりもさらに外側に始点を設定する。最低首振り量Qを確保するためである。ここで、最低首振り量Qは、−θ1cLからθ1cRまでの回動角度として定義できる。最低首振り量Qを頭部12が水平方向に移動する距離HS3として定義してもよい。ロボット制御部20は、設定した始点に向けて、ロボット1の頭部12を、利用者U5から通常速度で回動させる(P2a)。そして、ロボット制御部20は、始点から終点の利用者U6に向けて、頭部12を最低首振り量Qだけ高速移動させる(P2b)。このように、刺激対象の利用者U6と、刺激対象の利用者U6から最も離れた利用者U3とが近い場合でも、ロボット1の頭部12を最低首振り量Qだけ旋回させることができ、刺激対象の利用者U6を驚かせて関心を引きおこすことができる。
図4(c)では、各利用者の符号にかっこ付きの数字を添えている。その数字は首振り動作履歴テーブル217の対面回数217Bの値である。図4(c)では、最も対面回数の少ない利用者U6を、刺激を与えるための所定の利用者として選択する。
図5は、ロボット1がレクリエーションを主導する場合の処理を示すフローチャートである。ロボット制御部20は、最初に初期首振り動作を行う(S10)。初期首振り動作とは、ロボット1の周囲に集まっている利用者を確認するための初期動作であり、初期見渡し動作と呼ぶこともできる。ロボット制御部20は、予め設定された範囲内で頭部12を通常速度で回動させながら、カメラ222で周囲の利用者などを撮影し、顔位置マップ216を生成する(S11)。顔位置マップ216を生成・更新する処理の詳細は、図6で述べる。
ロボット制御部20は、顔位置マップ216を作成すると、レクリエーション開始前の初期設定を行う(S12)。初期設定では、ロボット1の位置や姿勢、視線の向きなどを予め設定されている値に設定する。初期設定が完了すると、ロボット制御部20は、レクリエーション用のコンテンツデータ215に従って、演技を開始する(S13)。例えば開始時には、「みなさん、こんにちは。今日も楽しく遊びましょう。用意はいいですか」などのようなオープニングメッセージをスピーカ223から音声出力する。
ロボット制御部20は、首振り動作を行う所定のタイミングが到来したか判定する(S14)。首振り動作を実行するタイミングとしては、例えば、(1)所定時間が経過した場合、(2)周囲を見渡す仕草を伴う所定の発言をした場合、(3)利用者個人の名前を呼ぶ場合、などがある。
第1の場合を説明する。所定時間は、レクリエーション全体を通じて固定値であってもよいし、レクリエーションに含まれるシナリオごとに決定された値でもよいし、利用者の状態に応じて動的に変更する値でもよい。
第2の場合を説明する。周囲を見渡す仕草を伴う所定の発言とは、例えば、上述のオープニングメッセージ、「いかがでしたか。今日はとても盛り上がったと思いますが、お楽しみいただけましたか」などのように全体を見渡しながら総評するメッセージ、または、「いらっしゃいませ」、「ありがとうございます」のように繰り返して発言しても違和感のないメッセージのことである。
首振り動作時には、頭部12を回動するためのアクチュエータ225が作動し、作動音がノイズとして発生するため、音声認識処理を停止する。アクチュエータ作動中に音声認識処理を実行しても、認識精度が低下して、ロボット1の応答が不自然になる可能性があるためである。
一方、ロボット1の発話中は、音声認識処理を停止させている。ロボット1の発話中に音声認識処理を実行すると、ロボット1の発言と利用者から受け取る音声とが混じってしまい、認識精度が低下するためである。
つまり、ロボット1の発話中は音声認識処理を停止させるため、ロボット1の発話中に首振り動作を行えばよい。ロボット1の発話時間内で首振り動作を実行することで、レクリエーションに参加している各利用者の関心を効率的に高めることができる。この場合、発話と首振り動作を同時に行うため、首振り動作のためだけに音声認識処理を停止させる必要がなく、レクリエーション時間を有効に活用でき、ロボット1が自然な対話をする時間を長くすることができる。
周囲を見渡す仕草が可能であれば、ロボット1は明確な発言をしなくてもよい。例えば、「うーん」「ふむふむ」のような言葉を発しながら周囲を撮影して、顔位置マップ216を更新してもよい。このようにロボット1が悩んでいるような動作、考えているような動作は、「コンテンツデータに基づく所定の動作」の一例であり、この動作中の音声認識処理は停止する。
第3の場合を説明する。利用者個人の名前を呼ぶ場合とは、何らかのトリガにより、参加している各利用者の中から特定の利用者の名前を呼ぶ場合である。この場合は、現在位置から直ちに特定の利用者の方に頭部12を回動させる。
なお、上述した3つの場合(1)〜(3)は本実施例での例示であり、それら以外の場合に首振り動作をしてもよい。
ロボット制御部20は、例えば図4で述べた首振り動作パターンの中から、一つの首振り動作パターンを選択する(S15)。例えば、レクリエーションの開始初期には、図4(a)に示すように、より多くの利用者が位置する顔群の中央部付近に頭部12を向けて、範囲HS1で左右に頭部12を回動させるパターンを選択する。また例えば、レクリエーション活動の中盤あたりで、関心の低下した利用者を発見した場合、図4(b)または図4(c)に示す首振り動作パターンを選択する。
ロボット制御部20は、ステップS15で選択した首振り動作パターンに従って、頭部12を左右に回動させる(S16)。ここで頭部12を左右に回動させるとは、水平に回動させる場合のみに限らず、水平面に対して傾いた面上を回動させる場合も含む。
ロボット制御部20は、レクリエーション用のコンテンツデータ215に従って、スピーカ223からメッセージを出力する(S17)。例えば、「皆さん、ダンスの準備はできましたか」、「これからクイズを始めます」などのメッセージである。
ロボット制御部20は、コンテンツデータ215に従って、腕部13や脚部14などを駆動することで、演技を行う(S18)。ロボット制御部20は、コンテンツデータ215に従って、利用者と対話することができる(S19)。例えば、ロボット制御部20は、利用者からの「楽しい」などの発言を認識した場合、「僕も楽しいです」などの応答を返したり、利用者からのクイズの答えに対して「大正解です。おめでとうございます」などと応答したりすることができる。
ロボット制御部20は、コンテンツデータ215に基づいて、レクリエーションを終了するか判定する(S20)。レクリエーションを終了する場合とは、例えば、コンテンツデータ215を最後まで実行した場合、またはロボット1の駆動源であるバッテリ容量が所定量以下になった場合などである。
ロボット制御部20は、レクリエーションを終了しないと判定すると(S20:NO)、ステップS14に戻る。レクリエーションを終了すると判定すると(S20:YES)、本処理を終了する。なお、首振り動作(S16)、発言(S17)、演技動作(S18)、対話(S19)の実施順序は図5の例に限らない。対話(S17)の後で演技動作(S18)をしたりするなど、順番が変わってもよい。
図6は、顔位置マップ216を作成または更新する処理の一例を示すフローチャートである。図6の処理は、図5中のステップS11に該当する。
ロボット制御部20は、頭部12を所定角度回転させ(S30)、カメラ222で周囲を撮影する(S31)。ロボット制御部20は、所定範囲の撮影が完了するまで(S32:NO)、頭部12を回動させながら撮影する(S30,S31)。ここで「所定範囲」とは、「第1範囲HS1よりも長く設定される第3範囲」の一例であり、例えばロボット本体1の正面を基準とする左右に所定角度(例えば60度)の範囲、として定義することができる。
ロボット制御部20は、所定範囲の撮影が終了すると(S32:YES)、撮影した画像データから利用者の顔を検出する(S33)。ロボット制御部20の画像認識部205は、例えば、画像データの中から顔の輪郭を抽出し、その輪郭内の目や鼻などの特徴部分の配置から人間の顔を認識する。なお、本実施例では、利用者の顔を検出するアルゴリズムは特に問わない。
ロボット制御部20は、画像データから検出した利用者の顔と、その画像データを撮影したときの条件とから、利用者の顔のヨー軸角度およびピッチ軸角度、利用者の顔とロボット1の距離を算出する(S34)。撮影条件には、例えば、頭部12の向いた方向、撮影対象物までの距離などが含まれる。
ロボット制御部20は、利用者の顔の角度および距離から、各利用者の関心度を算出する(S35)。例えば、横を向いている利用者は、隣の人と会話しているか、ロボット1以外の別の何かに注目している場合であるため、関心度は高くないと判定することができる。また例えば、うつむいたり見上げたりしている利用者は、ロボット1以外の何か別のものを見ているか、寝ているような場合であるため、関心度は高くないと判定することができる。また例えば、ロボット1との距離が所定値以上離れている場合、その人は単なる通りすがりである可能性があり、関心度は高くないと判定することができる。
ロボット制御部20は、利用者の顔の位置、距離、関心度を顔位置マップ216へ登録する(S36)。ロボット制御部20の画像認識部205は、ステップS33で検出した利用者の顔が、登録済みの顔データと一致するか認証する(S37)。
認証に成功した場合(S38:YES)、すなわち、撮影した利用者が登録済み利用者である場合、ロボット制御部20は、その利用者の名前を顔位置マップ216へ登録し(S39)、本処理を終了する。撮影した利用者の認証に失敗した場合(S38:NO)、顔位置マップ216の名前欄216Bには値を設定せずに本処理を終了する。
図7は、第1の首振り動作モードを示すフローチャートである。ロボット制御部20は、図1で述べたように利用者の顔が連続する範囲HS1を特定し(S40)、頭部12を範囲HS1内で通常の速度により左右に回動させる(S41)。また、首振り動作を停止した場合、ロボット制御部20は、範囲HS1の中央部、つまり、連続する顔群の重心位置を基準として頭部12を向け、演技や対話などを行う。
図8は、第2の首振り動作モードを示すフローチャートである。ロボット制御部20は、ロボット1の周囲の各利用者の中から、刺激対象の利用者を決定する(S50)。例えば、関心度が所定値以下の利用者、関心度が所定値以下の状態が所定時間以上継続した利用者、ロボット頭部12との対面回数の少ない利用者などを、刺激対象利用者として選択することができる。
ロボット制御部20は、図4(b)で述べたように、刺激対象利用者への首振り動作を開始するための始点となる利用者を決定する(S51)。刺激対象利用者への首振り動作の移動量を大きくすることで、より強い刺激を与えることができるためである。刺激対象利用者から最も離れた利用者を、始点となる利用者として選択することができる。
ロボット制御部20は、現在位置から始点となる利用者に向けて、頭部12を通常速度で回動させる(S52)。そして、ロボット制御部20は、始点の利用者から刺激対象利用者へ向けて、頭部12を高速に回動させる(S53)。刺激対象利用者は、突然ロボット1の頭部12が自分の方へ急に振り向くため、びっくりして、ロボット1への関心が高まる。
ロボット制御部20は、刺激対象利用者に頭部12を向けて対面した後、頷き動作を実行し(S54)、刺激対象利用者の注意を一層喚起する。頷き動作は「所定の働きかけ動作」の例である。ロボット制御部20は、刺激対象利用者が認証済みの利用者であるか、つまり個人名と顔データが登録済みの利用者であるか判定する(S55)。
認証済みの利用者である場合(S55:YES)、ロボット制御部20は、刺激対象利用者へ呼びかける(S56)。この呼びかけにより、刺激対象利用者は、さらに刺激されてロボット1への関心、つまりレクリエーションへの関心が高まる。呼びかけ動作は、頷き動作と共に、または、頷き動作に代えて、「所定の働きかけ動作」の例となる。
そして、ロボット制御部20は、所定の方向へ頭部12を回動させて視線を元の位置へ戻し(S57)、本処理を終了する。ここで所定の方向とは、例えば、連続する顔群の重心位置である。刺激対象利用者が認証された利用者ではない場合(S55:NO)、ロボット制御部20は、ステップS56をスキップしてステップS57に移り、本処理を終了する。
このように構成される本実施例によれば以下の効果を奏する。本実施例によれば、刺激対象利用者へ高速で頭部12を回動させてロボット1を対面させるため、刺激対象利用者を刺激し、ロボット1への関心を高めることができる。この結果、ロボット1の主導するレクリエーションなどの活動への参加意欲も刺激できる。
本実施例のロボット1は、刺激対象利用者から最も離れた利用者にいったん頭部12を向けた後で、高速で刺激対象利用者へ振り向くため、頭部12の移動量が大きくなり、強い刺激を与えることができる。
本実施例では、刺激対象利用者へ高速で対面する場合に、所定の働きかけ動作として刺激対象利用者へ呼びかけるため、より一層刺激することができる。
本実施例では、刺激対象利用者の名前が判明した場合は、刺激対象利用者へ呼びかけるため、刺激対象利用者の注意をより強く喚起して、関心を高めさせることができる。
本実施例では、ロボット1が比較的長く発話する場合のように、音声認識処理を停止している場合に、首振り動作を実行する。従って、動作時の雑音により音声認識の精度が低下するのを防止しつつ、効率的に首振り動作を行い、コミュニケーションを活性化することができる。