図1を参照して、この実施例の感覚刺激提示システム10は、ユーザに対して物理的または身体的な刺激、つまりユーザの触覚に与える刺激(触覚刺激)を提示するためのコミュニケーションロボット(以下、単に「ロボット」ということがある。)12を含む。ロボット12は、この実施例では、図2に示すような、テディベア(商品名)に似た、大きな熊型のぬいぐるみロボットである。
触覚刺激提示装置すなわちロボット12は、インターネットや電話通信回線のようなネットワーク14を介してサーバ16に接続される。サーバ16は、PC、PDA、スマートフォン、タブレット端末のような汎用のコンピュータである。
図示は省略するが、サーバ16には、タッチパネルやキーボードのような入力装置が含まれ、オペレータがそのような入力装置を操作することができる。このようなサーバ16の動作を制御するためのプログラムおよびデータは、サーバ16に内蔵しているメモリ(図示せず)に記憶されており、同じく内蔵のCPU(図示せず)によってサーバ16の全体的な動作が制御される。このCPUは、上述のオペレータの操作に従って、ロボット12のCPU36(後述)を通して、ロボット12の動作や発話を制御し、さらには後述のHMD20による仮想エージェントの表示を制御する。
図1の感覚刺激提示システム10は頭部装着型表示装置であるHMD20を含み、このHMD20はロボット12による触覚刺激の提示を受けるユーザ60(後述:図6、図7)の頭部64に装着される。実施例では、このHMD20として、Oculus社製のOculus Rift(商品名)を使用し、このHMD20の位置すなわちユーザの頭部位置を精度よく検出するために、Oculus sensor(商品名)のような位置検出装置18aを利用した。
つまり、サーバ16には、位置検出装置18aの出力が与えられる。位置検出装置18aは、頭部位置計測部として機能するが、この位置検出装置18aとして利用されるOculus sensorは、ジャイロセンサと加速度を組み合わせることで、HMD20(Oculus Rift)の位置を追跡することによって、ユーザ60の頭部64の位置を精度よく検出することができる。
サーバ16にはさらに環境音やユーザの声を収集するマイク18bおよび環境映像やユーザの映像を取得するカメラ18cなどが接続される。マイク18bが収集した音声データがサーバ16に入力され、サーバ16はその音声データを用いて音声認識をすることができる。カメラ18cからの映像データがサーバ16に入力され、サーバ16はその映像データを処理して、たとえば個人同定をすることができる。
この実施例では、ロボット12はユーザと対話することができるようにされている。そのために、サーバ16のメモリには、そのようなユーザとの対話に必要な話題やその話題に応じたシナリオが予め設定される。ただし、先に説明したように、サーバ16を通して遠隔オペレータがユーザと対話することもできる。
上述のHMD20は、たとえば90Hzのリフレッシュレートで110°視野の高解像度の立体画像を表示することができる。
HMD20は、サーバ16から送信される映像データによって、後述の図8、図9に示すような仮想エージェント70を表示することによって、ユーザの視覚および/または聴覚に対する刺激(視/聴覚刺激)を付与する。
そのため、サーバ16のメモリ(図示せず)には、性別や年代の異なる複数の仮想エージェントの映像データを予め設定している。そして、サーバ16は、ロボット12と協働する(インタラクションする)ユーザを同定した後、同定したユーザに適合する性別や年代の仮想エージェントを選択して、その映像データを、ネットワーク14を介して、HMD20に送る。これによって、HMD20がユーザに適合した仮想エージェントを表示することができる。ただし、仮想エージェントは、ユーザによって登録されるようにしてもよい。
図2は図1の実施例に用いる触覚刺激提示装置としてのロボット12の一例を示すが、他の外観、構造を持つ任意の触覚刺激提示装置が利用可能であることを予め指摘しておく。
ロボット12は、図2および図3に示すような「熊型」のぬいぐるみロボットであり、胴体24の底部(尻:四足動物(とくに哺乳類)における胴体の後方)26が、床22上に据え付けられる。胴体24の上端両側から左右それぞれの腕28が前方に突き出せるように設けられる。腕の28のそれぞれの長さはロボット12がユーザ(人)をハグしたときに、腕28がユーザの背中まで回る長さに選ばれている。一例として、80cmである。
胴体24の上には、首(図示せず)を介して頭部30が形成される。ロボット12の全長すなわち底部26から頭部30の頭頂までの高さは、約2mである。この大きさは、ロボット12が子供だけでなく、大人までも対象にできるようにする意図で決めた大きさであり、ユーザに対してハグされる安心感を与えられる大きさである。
胴体底部26の左右に両足32が設けられるが、これらの足32はロボット12が立ち上がるためのものではなく、ただ前方に投げ出された状態で設けられる。したがって、後述する図6、図7に示すようにロボット12がユーザ60をハグするときに、足32は単なるクッションとして機能する。
ロボット12は、図3に示すように、胴体24の直立状態を維持するための胴体フレーム24aと、その上下端にそれぞれ水平に取り付けられる底部フレーム26aおよび肩フレーム26bを含む。肩フレーム26bには、それの両端からそれぞれ前方に延びる腕フレーム28aが設けられる。また、肩フレーム26bの水平方向の中心から上方に、胴体フレーム24aと一直線になるような首フレーム30bが設けられ、その上には、頭部30を支持する頭部フレーム30aが設けられる。
これらのフレームはたとえばアルミニウムのような金属でも、繊維強化プラスチックやエンジニアリングプラスチックのような樹脂でもよく、基本的に、安全な強度が得られる断面形状や太さで設計される。たとえば、パイプ状のフレームが利用され得る。
これらのフレームは、たとえばポリフロピレン綿のような弾性体で包まれ、その上に外被33が被せられる。外被33は布製であり、「熊」らしく見せるために、ファー布地やフェルト生地で作られる。
ただし、ロボット12がユーザをハグしたとき、ユーザの顔が触れる頭部30の一部には、取り外しおよび洗濯が可能な生地を取り付けた。これによって、衛生上の清潔を維持するようにしている。
腕フレーム28aには、左右の肘のそれぞれに相当する位置に、ひじ関節34が設けられる。つまり、腕28の前腕に相当するフレームと、上腕に相当するフレームが、ひじ関節34を介して連結されている。ひじ関節34は一例として、前腕を上腕に対して最大90°開くことができる。したがって、ひじ関節34の角度を制御することによって、腕28を曲げることができる。つまり、腕28でユーザをしっかりハグ(抱き返し)できるようにされている。腕28の長さが上述のように80cm程度と長いため、腕28を曲げたとき、ユーザの大きさにもよるが、前腕部あるいは少なくとも手首より先の部分(手)がユーザの背中に回され得る。
さらに、この実施例では、ロボット12が腕28でユーザをハグすることができるように、ひじ関節34にアクチュエータを組み込んでいる。ただし、そのアクチュエータとしては、ユーザが比較的容易に押し返せるように、比較的非力なデジタルサーボ(トルク:11kg/cm)を採用した。安全性のためである。
図2、図3では図示していないが、ロボット12の頭部30の顔部分にはスピーカおよびマイクが埋め込まれており、ユーザに対して発話したり、ユーザの発話を聞き取ったりすることができる。発話のための音声合成ソフトウェアとしては、XIMERA(ATR音声言語研究所:商品名)を採用した。
ロボット12は、図4に示すように、ロボット12の全体制御を司るCPU36を備える。CPU36は、バス38を通して通信モジュール40に接続され、したがって、CPU36は通信モジュール40を介して、ネットワーク14すなわちサーバ16と、有線で、または無線で、通信可能に接続される。
CPU36はまた、バス38を通してメモリ42にアクセスでき、このメモリ42に設定されているプログラムやデータに従って、バス38を通してアクチュエータ制御回路44に指令値を与え、各アクチュエータA1‐Anの動作を制御する。アクチュエータ制御回路44は、CPU36から与えられる指令値に応じた数のパルス電力を生成し、それを該当するステッピングモータに与えることによって、各アクチュエータA1‐Anを駆動する。
ただし、アクチュエータとしてはこのようなステッピングモータを用いるものの他、サーボモータを用いるアクチュエータ、流体アクチュエータなど任意のアクチュエータが利用可能である。
ここで、アクチュエータA1‐Anのどれかが図3に示すひじ関節34のアクチュエータ(デジタルサーボ)であり、他のものが後述する他の関節のアクチュエータである。したがって、アクチュエータ制御回路44はひじ関節制御部としても機能する。
センサI/F(インタフェース)46は、バス38を介して、CPU36に接続され、触覚センサ48およびカメラ50からのそれぞれの出力を受ける。
触覚センサないし皮膚センサ48は、たとえばタッチセンサであり、ロボット12の触覚の一部を構成する。つまり、触覚センサ48は、人間や他の物体等がロボット12に触れたか否かを検出する。たとえば、触覚センサ48がロボット12の胴体24の前面の所定箇所に設けられ、ユーザがロボット12に抱きついたかどうか検知することができる。
触覚センサ48はさらに感圧センサとしても機能する。このような触覚センサ48は、一例として、たとえば高分子ピエゾセンサシートで形成され、たとえば腕28の内面側に、複数のセンサシートが適宜分散して設けられる。このような触覚センサ48は、ユーザをハグしたロボットの腕28に掛かる圧力を検知することができる。
触覚センサ48からの出力(検出データ)は、センサI/F46を介してCPU36に与えられる。したがって、CPU36は、人間や他の物体等がロボット12に触れたこと(およびその強弱ないし圧力)を検出することができる。
さらに、触覚センサ48が検出した圧力データはCPU36から出力され、通信モジュール40およびネットワーク14を介してサーバ16に与えられる。
カメラ50は、イメージセンサであり、ロボット12の視覚の一部を構成する。つまり、カメラ50は、ロボット12の眼から見た映像ないし画像を検出するために用いられる。この実施例では、カメラ50の撮影映像(動画ないし静止画)に対応するデータ(画像データ)は、センサI/F46を介してCPU36に与えられる。CPU36は、撮影映像の変化を検出するのみならず、その画像データを、通信モジュール40およびネットワーク14(図1)を介してサーバ16に送信する。そして、サーバ16は、受信した画像データをモニタ(図示せず)に出力する。したがって、カメラ50の撮影映像がモニタに表示される。
また、スピーカ54およびマイク56は、入出力I/F52に接続される。スピーカ54は、ロボット12が発話を行う際に音声を出力する。サーバ16の操作者ないしオペレータ(以下、「遠隔オペレータ」ということがある。)が直接発話を行う場合、ネットワーク14、通信モジュール40および入出力I/F52を通して当該音声が出力される。具体的には、遠隔オペレータがマイク20を通して発話すると、対応する音声データがサーバ16からネットワーク14を介してCPU36に与えられる。そして、CPU36は、その音声データを、入出力I/F52を介してスピーカ54から出力する。
マイク56は、音センサであり、ロボット12の聴覚の一部を構成する。このマイク56は、指向性を有し、主として、ロボット12と対話(コミュニケーション)するユーザ(人)の音声を検出するために用いられる。
ロボット12のメモリ42は、たとえばRAMやHDDであり、音声認識プログラムおよび上述のXIMERAのような音声合成プログラムが予め設定されている。音声認識プログラムは、マイク56を通して入力される、人間がロボット12に対して発話した内容をCPU36が認識するためのプログラムであり、CPU36は、たとえばDPマッチングや隠れマルコフ法(Hidden Markov Model:HMM)により、人間の発話内容を音声認識する。
CPU36は、その音声認識プログラムに従って、遠隔オペレータがマイク20を通して入力した発話を認識する。たとえば、上述のHMM法やディープニューラルネットワーク(Deep.NeuralNetwork:DNN)のような音響モデルを用いて発話音声を検出できる。
遠隔オペレータの音声を直接スピーカ54から出力する外に、ロボット12から音声合成によって発話させることができる。CPU36は、サーバ16から音声合成によってスピーカ54から発話する指示が入力されたとき、このサーバ16から与えられる音声合成データに従って合成した音声をスピーカ54に出力する。
この実施例では基本的に、ロボット12のすべての動作は、オペレータ(図示せず)が操作するサーバ16から与えられる。そのために、CPU36は、センサI/F46を通して取得するセンサデータや、入出力I/F52を通して取得する音声データや画像データを、通信モジュール40からネットワーク14を経由して、サーバ16のCPU(図示せず)に与える。サーバ16は、それらのデータを得て、ロボット12の状態を知ることができる。
ただし、サーバ16は、位置検出装置18aからの位置情報と圧力情報を使用して、仮想エージェント70とロボット12の両方の動作を自律的に制御することもできる。たとえば、ユーザ(人ないし参加者)がロボット12に接近すると、サーバ16は仮想エージェント70とロボット12の両方に信号を送信し、HMD20に仮想エージェント70のハグ動作のアニメーションを表示させるとともに、ロボット12にハグ動作を開始させる。ロボット12のハグ(抱き返し)の間中、圧力値が一定の閾値を超えると、サーバ16はロボット12によるハグ動作を中断し、安全のために腕28を開かせる。
図5に示すフロー図に従った動作は、この実施例では、サーバ16のCPUが、サーバのメモリ(図示せず)に設定されているプログラムに従って実行する。つまり、サーバ16がロボット12のCPU36(図4)に指令信号を送ることによって、サーバ16が間接的にロボット12の動作も制御する。
サーバ16は、前述のように、カメラ18cからの映像信号を受信しているので、サーバ16は、ステップS1で、その映像信号に基づいて、ユーザが誰であるか同定することができる。
ただし、カメラ18cからの映像信号ではなく、たとえばRFID(radio frequency identifier)など他の手段を利用してユーザの個人同定を行うようにしてもよい。
なお、ユーザが予め登録されておらず、ステップS1で誰であるか同定できなかったユーザに対しては、匿名のIDを暫定的に割り当てることによって処理を継続することもできる。
そして、ステップS3でサーバ16は、同定したユーザに適した仮想エージェントを選択して、ユーザが装着しているHMD20に表示させる。この場合、サーバ16は、ユーザと同性または異性のエージェントの候補からランダムに選択してもよいし、ユーザが自分のために予め登録しているエージェントを手動的に選択するようにしてもよい。
ただし、上述の匿名IDを持つユーザに対しては、特定の仮想エージェントを手動的に選択してもよい。
このように仮想エージェントを手動的に選択させる場合には、たとえばHMD20に選択スイッチ(図示せず)を設け、その選択スイッチの操作に応じて、サーバ16が仮想エージェントの候補の画像を順次HMD20に表示し、所望の仮想エージェントが表示されるとその選択スイッチの操作を停止すればよい。
続くステップS5で、サーバ16は、ロボット12とユーザとを対話させる。このとき、ユーザが対話のテーマを選択してもよいし、サーバ16に蓄積している各ユーザの対話履歴に基づいて特定のテーマを自動的に選択するようにしてもよい。ただし、このステップS5では単にユーザに対して、ロボット12からユーザに対して触覚刺激を与えられるような、インタラクションを誘導する会話だけをロボット12から発話させるようにしてもよい。
ステップS7では、その対話内容と、提示する触覚刺激(ユーザに対する身体的または物理的な刺激)に応じて、ロボット12すなわち触覚刺激提示装置を制御する。このステップS7の詳細は、主として図10および図14を参照して、後述する。
そして、ステップS9で、終了を判断したとき、この図5の処理を終了する。終了するかどうかの判断は、たとえばユーザが対話の終了を希望したかどうかなどに基づいて、判断することができる。
ここで、図10を参照して行う詳細な説明に先立って、図6‐図9を参照して、ステップS7で実行されるロボット12とユーザ60とのインタラクションを説明する。
ロボット12には、ロボット12がユーザ60(図6、図7)との抱擁を実現するために、2種類の振る舞いが実装されている。1つは、図11のステップS101で実行する、ロボット12がユーザ60に対してハグ(hug:抱擁)をするように促す振る舞い(図6)である。もう1つは、ステップS105で実行する、ロボット12を抱擁したユーザ60に対して、抱き返し(reciprocated hugs)を行う振る舞い(図7)である。
すなわち、ロボット12は、ユーザ60がロボット12をハグする行動を実行し易いように、図6に示すように、腕28を前方に出して(ハグのための初期位置)、両腕28の中にユーザ60が入って来るように、誘導する。
ただし、ユーザ60は、図6では模式的に描いているが、実際は人間であり、胴体62の上下に頭部64および足66を有し、さらに腕68が胴体62の両肩から延びる。そして、頭部64にHMD20を装着している。サーバ16は、このHMD20に、図8に示す仮想エージェント70を表示させる。
仮想エージェント70は、胴体72の上の頭部74および胴体72の下の足76を含み、さらに腕78が胴体72の両肩から延びる。HMD20での仮想エージェント70の表示はいわゆる一人称視点で行われるため、この画面ではユーザは表示されない。また、仮想エージェント70からの視/聴覚刺激の影響を調べるためには、HMD20の表示画面からすべての背景画像を削除することも考えられる。
HMD20での図8の仮想エージェント70の状態は図6のロボット12の状態と同じように、ユーザに対して、ユーザからのハグを誘導するように、仮想エージェント70の両腕78を広げた状態(ハグのための初期位置)で表示される。
図6の状態からユーザ60がロボット12の両腕28の間に入り込んで、ユーザ60がその腕68でロボット12をハグしたことに応じて、ロボット12がその腕28を閉じてその先端をユーザ60の胴体62(背中)に回して、抱き返し(ハグ)を行う。この抱き返しによって、ロボット12がユーザ60に対して、触覚刺激を与えることができる。つまり、ロボット12の腕28がユーザ60に対して触覚刺激を提示する可動部として機能する。
ロボット12がユーザ60を抱き返した図7の状態に対応して、HMD20の表示画面には、図9に示す状態の仮想エージェント70が表示される。このとき仮想エージェント70は、あたかもユーザ(図示せず)をハグしているかのように、腕68を閉じた状態で表示される。このようにして仮想エージェント70の状態変化(ロボット12の状態変化に対応して変化する)を示すアニメーションを表示することによって、HMD20がユーザ60に対して視/聴覚刺激を与えることができる。つまり、HMD20では、仮想エージェント70は、上述の腕28(可動部)の動きに関連して状態が変化されるように表示される。
つまり、ユーザ60はHMD20でいわば目隠しされた状態でロボット12から触覚刺激を受け、その状態でHMD20にアニメーションを表示することによってユーザ60に対して視/聴覚刺激を提示する。
なお、仮想エージェント70の動きが腕28の動きに関連して変化するが、サーバ16には、そのような関連性をより高めることができるように、ロボット12の動作(状態遷移)と、HMD20での仮想エージェント70の動作(状態遷移)とを同期させることができるプログラムが設定されている。
そのプログラムでは、ロボット12のひじ関節34の関節角(ひじ関節34を制御するアクチュエータA1で検出され、モータ制御にフィードバックされる)をセンサとして扱い、ロボット12の腕28のひじ関節34の角度を制御するとき、その角度に応じて仮想エージェント70の腕78のひじ関節の角度を変化させるようにすればよい。
ただし、ロボット12の動作と仮想エージェント70の動作とは必ずしも同期させる必要はない。ロボット12の動作とHMD20に表示される仮想エージェント70の動作とが多少時間的に前後しても、ある程度のずれであれば問題がないことを確認している。
ロボット12の動作と仮想エージェント70の動作とを同期させる場合には、サーバ16は、上述の関節角のセンシング結果に応じて、ロボット12およびHMD20に動作制御信号を時間情報とともに送信することによって、HMD20に表示する仮想エージェント70とロボット12の動作を同期させることができる。
両方の動作を同期させる方法としては、さらに、或る一連の動作を再生させるコマンドをロボット12およびHMD20に送信する方法や、目標関節角を指令値としてロボット12およびHMD20に送信する方法などが考えられる。
さらに、動作制御信号だけでなく、音声再生コマンドをロボット12およびHMD20に送信するようにすることも考えられる。
図10の最初のステップS101では、サーバ16は、ロボット12に指令信号を送り、ロボット12のCPU36にアクチュエータを制御させて、ロボット12の腕28および仮想エージェント70の腕78をたとえば図6および図8に示すハグのための初期位置にし、所定時間待機させる。
ロボット12は通常は両腕を若干閉じた状態(通常状態)で静止しているが、ステップS101の初期状態では、接近したユーザ60(図6)にハグを促すために、ロボット12の腕28を開く動作を行なわせる。これによって、ユーザがロボット12により接近して抱きしめ易くなる。
そして、ステップS103で、サーバ16は、ネットワーク14を通してロボット12から受信したカメラ50からの画像データに基づいて、ユーザが、ロボット12がハグ可能な位置まで近づいてきたかどうか判断する。つまり、ユーザが所定距離以内にロボット12に近づいたかどうか判断する。ここでの所定距離は、適宜設定可能であるが、実施例ではロボット12の正面から75cm(hidden dimension:エドワード・T・ホール氏)とした。図6および図8に、ユーザ60がロボット12から所定距離内に近づいてきた状態を示している。
ただし、カメラ50からの画像データをモニタ(図示せず)上で確認し、オペレータが判断するようにしてもよい。
なお、このステップS103の判断のためには、実施例ではカメラ50の画像データを解析するようにしたが、たとえばロボット12を置いている床22(図2)や天井のような環境に設置しているカメラ18cや、先に説明したレーザ距離計(Oculus Sensors)、マットセンサのようなユーザ位置検知システムを利用するようにしてもよい。
その後、ステップS103で“NO”が判断されたときには、ステップS101に戻る。
ステップS103で“YES”を判断したとき、次のステップS105で、サーバ16すなわちロボット12のCPU36は、アクチュエータ制御回路44を通してひじ関節34のアクチュエータを制御して、両腕28を所定角度閉じる。前述のようにひじ関節34は90°の範囲で開閉可能であり、たとえば一旦45°内側に曲げ、その後15°外側に戻す。それによって、ユーザ60に一気に過度の圧力がかかるのを防止している。
ステップS105の動作はステップS107で、ロボット12の手または腕部分に取り付けている触覚センサ48が所定値以上の圧力を検知するまで、繰り返し実行される。つまり、ステップS107では、ロボット12がユーザ60をしっかりハグできたかどうかを検出している。
ステップS107で触覚センサ48の検知圧力値を利用して判断するようにしたが、腕28の形状の変化量(曲げの程度)や、ひじ関節34のアクチュエータに対する指令値と実際の角度(計測値)との差分の大きさを利用して判断するようにしてもよい。
ステップS107で“YES”が判断されたときの状態の一例が図7および図9に示される。この状態では、ユーザ60の腕68がロボット12の胴体24に巻かれるだけでなく、ユーザ60の頭(顔)64がロボット12の頭部(顔)30に当たっており、背中にロボット12の腕28が回っている。ユーザ60はロボット12の足32の間にあるままだが、ユーザ60が足を開いてロボット12の足32の上の乗ると、一層安定してハグを継続することができる。このようにして、ロボット12がユーザ60を抱き返す。つまり、相互ハグ(インタラクション)が行われる。
このように、ステップS105およびS107で、サーバ16すなわちCPU36がアクチュエータ制御回路44によってひじ関節34を制御して、ロボット12の腕28をユーザ60の背中に回させて、腕28によってユーザ60をハグさせる。
ステップS107で“YES”が判断された後、ステップS109で、ロボット12とユーザ60が対話する。実施例では、サーバ16(図1)のオペレータがロボット12からの発話を担当することになっているので、音声認識はオペレータが代替することとし、オペレータは音声認識結果および予め決められたルールに従ってロボット12の発話内容を決定する。
ただし、可能であれば、ロボット12が自律的に発話するようにしてもよい。その場合でも、対話コンテンツは予めデータベースに設定しておいたコンテンツを利用したり、ウェブ上のAPI(Application Programming Interface)などを利用したりすればよい。
ステップS109およびステップS109を実行するコンピュータ(実施例ではサーバ16)が、ロボット12をして発話させる発話部として機能する。
その後、ステップS111で、ユーザ60すなわち相手が対話を終了させたいと希望しているかどうか判断する。この判断は、たとえばユーザ60からの定型の発話があったか、あるいはユーザ60の特定の所作があったか、などに基づいて行える。
ステップS111で“NO”を判断したとき、つまり、ユーザ60が対話終了を希望していないと判断したとき、ステップS113で、サーバ16は、そのときの発話コンテンツは、ロボット12によるユーザ60に対するハグ刺激が必要かどうか、判断する。
たとえば、図11に、発話コンテンツ、ハグ刺激の有無および刺激動作の態様の組み合わせの一例を示す表が示される。
この表では、発話コンテンツが「こんにちは」のような挨拶のときには、ロボット12からユーザ60へのハグ刺激は与えないものとする。「それは大変だったね」という発話コンテンツはユーザを慰めるコンテンツなので、子供の背中をたたいて慰めるのと同じように、ハグ刺激を与え、その態様は、ロボット12の腕28でユーザ60の背中を軽くたたくものとする。発話コンテンツが「よく頑張ったね」という労りを含む場合、ハグ刺激を与え、その態様は、ロボット12の腕28でユーザ60の頭部64をなでるものとする。発話コンテンツが「募金に協力してくれる?」という要求を含む場合、ハグ刺激を与え、その態様は、ロボット12の腕28でユーザ60の背中をさするものとする。発話コンテンツが「また会いに来てね」という別れを含む場合、ハグ刺激を与え、その態様は、ロボット12の腕28でユーザ60を強く抱きしめる(腕28のひじ関節34の関節角を小さくして腕の曲げ角度を大きくする。)ものとする。
図11のような発話コンテンツとハグ刺激の対応は、たとえばサーバ16および/またはロボット12のメモリ42(図4)内に予めデータベースとして設定しておくこともできる。つまり、図11のような設定を有するデータベースは、発話コンテンツと対応してハグ刺激(触覚刺激)の要否を設定する発話コンテンツ設定部として機能する。
ステップS113では、このように予め設定されている発話コンテンツとハグ刺激とのデータベースを利用して、発話コンテンツはハグ刺激を伴うものかどうか判断する。ただし、図11の表は単なる一例であり、任意の発話コンテンツとハグ刺激の組み合わせを設定しておくことができることは言うまでもない。
ただし、ステップS113では、発話コンテンツがハグ刺激を伴うかどうかは、サーバ16を操作する遠隔オペレータが決めるようにしてもよい。
このステップS113およびステップS113を実行するコンピュータ(実施例ではサーバ16)が、ユーザに対して触覚刺激が必要かどうかを判断し、あるいは視/聴覚刺激が必要かどうか判断する、刺激判断部として機能する。
ステップS113で“NO”を判断したとき、サーバ16はさらにステップS115で、前回のハグ刺激から所定時間経過しているかどうかを判断する。所定定時間の目安としてたとえば30秒程度を想定しているが、必要に応じて、変更することができる。前回のハグ刺激の提示から一定時間の経過に応じてハグ刺激を提示するようにすれば、発話コンテンツの如何に拘わらず、所定時間ごとにハグ刺激を提示するので、ユーザとのインタラクションを継続させることができる。
さらに、図10では図示していないが、ステップS115でも“NO”のとき、あるいはステップS115の判断に代えて、たとえば対話の切れ目(比較的長い無音時間)を検出し、切れ目を検出したとき、ハグ刺激が必要と判断するようにしてもよい。この場合には、ハグ刺激がユーザ60の発話を促す効果をもたらす。
ステップS113で“YES”の場合、あるいはステップS115で“YES”の場合、ステップS117に進む。
ステップS117では、サーバ16は、ロボット12によってユーザ60に対してハグ刺激を提示するように、ロボット12の腕28の動きを制御する。ここで提示するハグ刺激の態様は、図11の表に示す通りである。実施例では、ひじ関節34の自由度があるので、ユーザ60の背中を「とんとん」と叩く動作つまりロボット12の腕28の前腕をユーザ60の背中に対して、接離(接触させたり、離したりする動作)させるような、ハグ刺激を与えられる。さらに、ロボット12の一方の腕28をユーザ60の頭部64の上において、前後または左右に動かすように制御することによって、頭をなでる刺激を提示することができる。ロボット12の一方または両方の腕28をユーザ60の背中において、上下または左右に動かすように制御することによって、背中をさする刺激を提示することができる。ユーザ60を強く抱きしめる刺激は、前述のとおり関節角を制御する。
つまり、ステップS117を実行するコンピュータ(サーバ16)が、可動部(腕28)を制御する可動部制御部として機能する。
このステップS117では、ロボット12がこのような触覚刺激をユーザ60に与えるとともに、先に図9で説明したように、HMD20に仮想エージェント70のアニメーションによる視/聴覚刺激をユーザ60に提示する。つまり、ステップS117を実行するコンピュータ(サーバ16)が、HMD20に仮想エージェント70を表示させる表示部として機能する。
この実施例でのように、HMD20を利用して任意の視/聴覚刺激を提示しながら、ロボット12から触覚的刺激を提示することによって、触覚刺激だけの場合に比べて、明らかに刺激によるユーザ60に対する癒し効果を増強することができた。つまり、触覚刺激提示装置の可動部すなわちロボット12の腕28を動かすことよって触覚刺激をユーザに提示し、視/聴覚刺激提示装置すなわちHMD20が仮想エージェントをその腕28(可動部)の動きに関連して変化するように表示することによって、触覚刺激と視/聴覚刺激の一体感を高めることができる。
発明者等は、さらなる実験よって、ハグによる触覚刺激そのものが同一であっても、HMD20で提示する視/聴覚刺激を制御することで、ハグによる触覚刺激に対する印象を変化させることができることを知った。これは、HMD20で目隠しされた状態で身体的な触覚刺激を受けるので、あたかもHMD20に表示されている仮想エージェント70がその触覚刺激を与えているかのように錯覚することが原因であろうと推測することができる。
その実験では、発明者等は、16人の被験者による評価を行った。具体的には、ロボット12がユーザ60をハグして触覚刺激を提示する際に、HMD20に表示させる仮想エージェント70を変化させることで、ハグに対する印象が女性的または男性的に変化するかを、7段階のアンケートで検証した。実験は被験者内実験とし、提示する仮想エージェントの順番はカウンターバランスを考慮して決定した。アンケート結果は、図8、図9のような女性型エージェントを提示した場合には平均5.688、標準偏差0.258であり、男性型エージェント(図示せず)を提示した場合には平均4.188、標準誤差0.337であった。分散分析による検証を行ったところ、提示する仮想エージェントの違いによって印象に対する有意な差が生じた(F(1、14)=20.160、p=.001、η2=0.590)。
つまり、HMD20による視/聴覚刺激を変化させることで、ロボット12からのハグによる触覚刺激に対して異なった印象を持たせることが可能となり、触覚刺激がもたらす望ましい効果を強化したり、癒しの効果を一層もたらしたりすることが期待できる。
そして、ステップS115で“NO”を判断した場合、またはステップS117で発話コンテンツに応じた触覚刺激および視/聴覚刺激を提示したのち、ステップS109に戻る。
なお、ステップS111でユーザ60が対話の終了を希望していると判断したとき、ステップS111で“NO”が判断され、ステップS119で、ロボット12およびHMD20の仮想エージェント70を先に述べた通常状態に戻し、リターンする。
図12に示す他の実施例では、触覚刺激としてユーザ60にキス刺激を提示するために、触覚刺激提示装置として、先の実施例におけるロボット12に代えて、ロボットアーム80を用いる。このロボットアーム80も、図4のロボット12と同様に、通信モジュール(図示せず)およびネットワーク14を介してサーバ16と通信可能に設定されている。
ロボットアーム80は、ベース81にその基端を固定した第1フレーム82を含む。ベース81は、図示しないモータによって、ベース81に垂直な軸周りに回転可能にされている。第1フレーム82の先端は、関節84を介して、第2フレーム86の基端に連結される。関節84は、ロボット12のひじ関節34と同様に、アクチュエータ(図示せず)によって図12の矢印方向に開閉できる。
第2フレーム86の先端には、人肌そっくりの柔らかさをもった超軟質樹脂、たとえば「人肌のゲル」(商品名)を用いて、扁平で中央が凹んでいるキス部材88が設けられる。関節84をアクチュエータで制御することによって、このキス部材88をユーザ60の唇65に押し当てて、キス刺激を与えることができる。
つまり、この実施例のロボットアーム80の第2フレーム86やキス部材88は、ユーザ60に対してキス刺激すなわち触覚刺激を提示するための可動部である。
このキス部材88の内部には、ロボット12の触覚センサ48(図4)のような圧力センサ(図示せず)を設けて、キス部材88がユーザ60の唇65に押し付けられる強さを圧力値として検出することができる。ただし、キス部材88によるキス刺激は、ユーザ60の唇65の他、頬や手の甲などに与えることも考えられる。
そして、ユーザ60の頭部64には先の実施例と同様に視/聴覚刺激提示装置としてのHMD20が装着され、そこには仮想エージェント70のアニメーションが表示される。すなわち、このHMD20が、上述の可動部の動きに関連して変化する仮想エージェント70を表示することによって、仮想エージェント70がユーザ60に対して視/聴覚刺激を提示する。
さらに、ロボットアーム80には、いずれも図示しないが、ロボット12のカメラ50や、スピーカ54およびマイク56と同様の、カメラ、スピーカおよびマイクが設けられる。
なお、ロボットアーム80としては、キス刺激に用いるキス部材88をHMD20に表示される仮想エージェント70の顔部分の位置と同じ位置関係を有して移動できるものであれば、特に軸数(自由度の数)に制限はない。ただし、実施例では、UFactory社製のUARM SWIFT PRO(商品名)を利用した。
図13の最初のステップS201では、サーバ16は、ロボットアーム80に指令信号を送り、ロボットアーム80のCPU(図示せず)にアクチュエータを制御させて、ロボットアーム80を初期位置に戻し、HMD20上の仮想エージェント70をデフォルト位置に設定させる。
そして、ステップS203で、サーバ16は、ネットワーク14を通してロボットアーム80から受信したカメラ(図示せず)からの画像データに基づいて、ユーザが、ロボットアーム80がキス可能な位置まで近づいてきたかどうか判断する。
このとき、ユーザ60の唇65(図12)の位置は、カメラ(図1の18cまたは図4の50に相当する)やデプスセンサ(図示せず)を利用して唇65の位置を検出して判定するようにしてもよく、さらに、ユーザの頬や手の甲など、発話コンテンツに応じてキスする場所を限定して位置推定を行うようにしてもよい。
ただし、カメラからの画像データをモニタ(図示せず)上で確認し、オペレータが判断するようにしてもよい。
なお、このステップS203の判断のためには、先に説明したレーザ距離計(Oculus Sensors)、マットセンサのようなユーザ位置検知システムを利用するようにしてもよい。
ステップS203で“NO”が判断されたときには、ステップS201に戻る。
ステップS203で“YES”を判断したとき、次のステップS205で、ロボットアーム80とユーザ60が対話する。ここで、図12のようにロボットアーム80において第1フレーム82や第2フレーム86がそれらの材料(金属)のまま露出していると、ユーザ60はロボットアーム80を相手に対話するのはかなり難しいと思うので、実施例では、図12では省略しているが、ロボットアーム80の各部をぬいぐるみのような外被で覆って、ユーザ60がロボットアーム80と対話し易いようにしている。
サーバ16(図1)のオペレータがロボットアーム80からの発話を担当することになっている場合には、音声認識はオペレータが代替し、オペレータは音声認識結果および予め決められたルールに従ってロボットアーム80の発話内容を決定する。ただし、ロボットアーム80が自律的に発話するようにしてもよい。
ステップS205およびステップS205を実行するコンピュータ(実施例ではサーバ16)が、ロボットアーム80をして発話させる発話部として機能する。
その後、ステップS207で、ユーザ60すなわち対話相手が対話を終了させたいと希望しているかどうか判断する。この判断は、たとえばユーザ60からの定型の発話があったか、あるいはユーザ60の特定の所作があったか、などに基づいて行える。
ステップS207で“NO”を判断したとき、つまり、ユーザ60が対話終了を希望していないと判断したとき、ステップS209で、サーバ16は、そのときの発話コンテンツは、ロボットアーム80によるユーザ60に対するキス刺激が必要かどうか、判断する。
たとえば、図14に、発話コンテンツ、キス刺激の有無および刺激動作の態様の組み合わせの一例を示す表が示される。
この表では、発話コンテンツが「こんにちは」のような挨拶のときには、ロボットアーム80からユーザ60へのキス刺激は与えないものとする。「目をつぶってくれる?」という発話コンテンツはキス刺激を前提とするコンテンツなので、キス刺激を与え、その態様は、キス部材88がユーザ60の唇65に軽く押し付けられる優しいキスとする。発話コンテンツが「大好きだよ」という愛情表現を含む場合、キス刺激を与え、その態様は、キス部材88がユーザ60の唇65に強く押し付けられる強いキスとする。
図13のような発話コンテンツとキス刺激の対応は、たとえばサーバ16および/またはロボットアーム80のメモリ(図示せず)内に予めデータベースとして設定しておくこともできる。
ステップS209では、このように予め設定されている発話コンテンツとキス刺激とのデータベースを利用して、発話コンテンツはハグ刺激を伴うものかどうか判断する。図13の表は単なる一例であり、任意の発話コンテンツとキス刺激の組み合わせを設定しておくことができる。
ただし、ステップS209では、発話コンテンツがキス刺激を伴うかどうかは、サーバ16を操作する遠隔オペレータが決めるようにしてもよい。
このステップS209およびステップS209を実行するコンピュータ(実施例ではサーバ16)が、ユーザに対して触覚刺激が必要かどうかを判断し、あるいは視/聴覚刺激が必要かどうか判断する、刺激判断部として機能する。
ステップS209で“YES”を判断したとき、ステップS211に進み、キスによる触覚刺激およびHMD20による視/聴覚刺激をユーザ60に提示する。つまり、触覚刺激提示装置の可動部すなわちロボットアーム80の第2フレーム86およびキス部材88を動かすことよって触覚刺激をユーザに提示し、視/聴覚刺激提示装置すなわちHMD20が仮想エージェントをそのような可動部の動きに関連して変化するように表示することによって、触覚刺激と視/聴覚刺激の一体感を高めることができる。
なお、ステップS211では、サーバ16が、ロボットアーム80のキス部材88と、HMD上の仮想エージェント70(図12)をキス場所(キス位置)へ移動させる。このとき、ユーザ60の唇65の位置は、カメラやデプスセンサを利用して検出するようにしてもよい。ただし、HMD20上に表示している仮想エージェント70の顔(唇)を目的場所に移動させるときの軌道は、予め準備されたアニメーションを利用するが、別の方法では、リアルタイムでロボットアーム80のキス部材88と同じ場所に移動させてもよい。
ステップS211の動作はステップS213で、ロボットアーム80のキス部材88に内蔵している圧力センサ(図示せず)によって所定値(閾値)以上の圧力が所定時間継続していると判断されるまで繰り返し実行される。ただし、その圧力値および/または所定時間は、図13の表におけるキス刺激の態様に応じて変化させてもよい。
ステップS213ではキス部材88にかかる圧力の圧力値を利用して判断するようにしたが、たとえば、第1フレーム82および第2フレーム86の形状の変化量(曲げの程度)や、関節84のアクチュエータに対する指令値と実際の角度(計測値)との差分の大きさを利用して判断するようにしてもよい。
さらに、ユーザ60が誰かによって、キス刺激の提示の仕方を変化させるようにしてもよいし、圧力値で判断する場合の閾値をユーザに応じて変えるようにすることも考えられる。
なお、ステップS211を実行するコンピュータ(サーバ16)が、可動部(第2フレーム86、キス部材88)を制御する可動部制御部として機能し、ステップS117を実行するコンピュータ(サーバ16)が、HMD20に仮想エージェント70を表示させる表示部として機能する。
ステップS213で所定時間の経過を判断したとき、続くステップS215で、ステップS201と同様に、サーバ16は、ロボットアーム80に指令信号を送り、ロボットアーム80のCPU(図示せず)にアクチュエータを制御させて、ロボットアーム80を初期位置に戻し、HMD20上の仮想エージェント70をデフォルト位置に設定させる。
ステップS209で“NO”を判断したとき、およびステップS215を実行した後には、ステップS205に戻る。
ステップS207“NO”を判断したとき、続くステップS217で、ステップS201と同様に、サーバ16は、ロボットアーム80を初期位置に戻し、HMD20上の仮想エージェント70をデフォルト位置に設定させる。その後、リターンする。
なお、図2に示すようなコミュニケーションロボット12において、自由度(軸)を増やせば、より多彩なハグ刺激やキス刺激すなわち触覚刺激をユーザ60に対して提示することができる。
なお、キス部材88として上述の実施例では、超軟質樹脂を利用したシリコン樹脂やゴム風船などでも代用できる。
図15の実施例では、肩フレーム26bと腕フレーム28aとの連結部に肩関節90を設けるとともに、首フレーム30bに首関節92を介挿している。これらの肩関節90および首関節92は、ともに図4に示すアクチュエータA1‐Anの対応するもので作動するのであり、その意味でアクチュエータ制御回路44は、肩関節制御部や首関節制御部として機能する。
肩関節90を設けることによって、腕28の上腕部を、肩関節90を中心に上下に動かすことができるようになる。したがって、肩関節90を設けた場合、前腕をユーザ60の背中60bに接触させたまま上下させる動作、つまり撫でる動作が一層簡単に行えるようになる。さらに、腕28すなわち手でユーザ60の頭部64を撫でたりする、ハグ刺激も容易に提示できるようになる。
首関節92は、肩フレーム26bの上の頭部フレーム30aすなわち頭部30を前傾させたり後倒させたりする、いわゆる俯仰動作を可能にする。首関節92を設けることによって、たとえば図7のようにハグしたユーザ60の頭(顔)64にロボット12の「おでこ」を近づけたり、あるいはユーザ60の頭(顔)64に頬ずりをしたりするハグ刺激や、さらには図12の実施例のようなキス刺激を容易に提示することもできる。
さらに、上述の実施例ではサーバ16が1台で感覚刺激提示システム10の各要素を制御するようにしたが、コミュニケーションロボット12、サーバ16およびHMD20をそれぞれ別のコンピュータで制御するようにしてもよいし、任意の台数のコンピュータで感覚刺激提示システム10を管理、制御することができる。
さらに、HMD20に表示する仮想エージェントとしては、3Dのコンピュータグラフィクスエージェントであればどのようなキャラクタを用いてもよい。そのため、ユーザに応じて、見た目や性別、服装、種族(人、動物、擬人化キャラクタなど)、リアルさ(アニメ調、実写調など)を変更してもよい。
なお、上で挙げた角度や時間の長さなどの具体的数値はいずれも単なる一例であり、必要に応じて適宜変更可能である。