コミュニケーションロボットによるビヘイビアコンテンツの作成と共有

PDF
成田 一生
名古屋大学大学院 情報科学研究科
渡辺 一郎
(株)富士通研究所 ストレージ・インテリジェントシステム研究所
長尾 確
名古屋大学 情報メディア教育センター

1 はじめに

近年、AIBOやPAROに代表されるように、コミュニケーション可能なペット型ロボット(以下では、コミュニケーションロボットと呼ぶ)の存在が一般家庭に受け入れられるようになってきた。このようなロボットは、生き物のようなふるまい(ビヘイビア)をすることで、ユーザに親近感を与えることができる。つまりビヘイビアはロボットの生き物らしさそのものであり、ビヘイビアの設計の良し悪しが、ロボットと人間の関係に大きく影響すると考えられる。

コミュニケーションロボットは、人間とコミュニケーションを行うことを目的としたロボットである。ユーザを飽きさせずに、ユーザからの積極的なコミュニケーションを得るためには、ロボットの設計に工夫が必要である。その工夫の一つとしてあげられるのが、ロボットの成長である。従来のコミュニケーションロボットの成長は、ビヘイビアの実行制限の選択的解除によるアプローチが一般的である。つまり、ロボットの初期状態では全てのビヘイビアが実行可能ではなく、ロボットの起動時間や、ユーザとのインタラクションを経て、ビヘイビアの実行制限を選択的に解除していく。このようにすることで、ロボットがあたかも成長しているかのようにユーザに錯覚させることができるのである。しかし、このような従来手法では、ロボットはあらかじめ用意されたもの以上のビヘイビアを覚えることはないため、ビヘイビアのパターンには限界があり、それがユーザの``飽き''の原因になるおそれがある。

一方で、近年、Wikipediaに代表されるように、マス・コラボレーションの考え方が一般的に受け入れられてきている。マス・コラボレーションは、不特定多数のユーザがそれぞれ独立に創造的作業をおこない、それぞれの成果物を統合し一つのコンテンツ(集合)を構築する。不特定多数のユーザが参加することにより、必然的に、コンテンツの量および多様性が高くなり、また、参加者一人一人のコンテンツ作成能力が高くなくても、統合の過程で、第三者によって不備な点が発見・修正され、全体の質が保たれることが期待される。

われわれは、ぬいぐるみのような可愛らしい外見と、生き物のようなしぐさ、言語的なコミュニケーション能力を持った、テディベア型のコミュニケーションロボットの研究開発をおこなっている。本論文では、このロボットにおいて、ビヘイビアの表現を一種のコンテンツとしてとらえ、ビヘイビアコンテンツと呼ぶ。また、不特定多数のユーザによって大規模なビヘイビアコンテンツを作成・共有するシステムを提案する。本システムは、ロボットとビヘイビアエディタ、ビヘイビアサーバからなる。ユーザはエディタを用いてビヘイビアコンテンツを作成し、サーバにアップロードする。ロボットはサーバと同期しており、サーバ上のビヘイビアコンテンツの集合が、そのままロボットの利用可能なビヘイビアとなる。

2 ビヘイビアコンテンツ

われわれの開発したロボットは、12個のサーボモータ、全身のタッチセンサ、カメラ、マイク、スピーカなどによって構成されており、それらを内蔵の小型PCで制御している。カメラを使って、顔領域を認識したり、あらかじめ指定した任意色のオブジェクトを認識することができる。また、マイクからの入力に対しては、必要に応じて音声認識をおこなう。さらに、音声合成による発話機能を備えており、音声認識と組み合わせることでユーザとの対話を実現できる。また、無線ネットワーク経由でコンテンツを自動的に取得することが可能である。

2.1 ビヘイビアの記述

本ロボットでは、センサに対するリアクション、自発的動作、音声対話などのすべてのふるまいをビヘイビアとする。これらのビヘイビアをユーザが設計し、その記述を作成・共有するためには、何らかの方法でビヘイビアの記述を制御プログラムから分離し、記述の独立性を高める必要がある。そこで本研究では、ビヘイビアを記述するためのXML表現によるスクリプトを定義した。ビヘイビアはスクリプトによって表現され、ロボットの動作はこのスクリプトをビヘイビア制御モジュールが解釈することで実行される。

ロボット工学において``ビヘイビア''という名称は一般的に、センサ入力に対するリアクションという意味で用いられる。本論文では、特にビヘイビアの構成要素として、次の三つを定義する。

  • コンディション

  • アクション

  • エフェクト

コンディションとはビヘイビア実行の条件あるいはトリガを指す。つまり、ロボットに対するセンサ入力や、一定時間の経過などがこれにあたる。アクションはロボットの動作を指し、サーボモータの角度の変化や音声の出力などがあてはまる。エフェクトは、ビヘイビアの実行結果として生じるロボットの内部パラメータの変化を指している。パラメータとは、数値であらわされる変数である。スクリプトでは、この変数をビヘイビアの設計者が自由に定義でき、コンディションなどに利用することができる。用途としては、たとえば、眠気の度合いや感情の起伏を数値化したものを変数に格納しておくことで、「眠いときに実行される」あるいは「機嫌がいいときに実行される」というようなビヘイビアの実行条件を指定することができる。また、エフェクトにおいても、「頭を撫でられると機嫌がよくなる」というような効果を実現することができる。

次に、ビヘイビアのスクリプトについて説明する。次のソースコードは、ビヘイビアの構成要素の一つである、コンディションの記述である。この例では、「変数`flag'が1または2」かつ、「マイクで`こんにちは'という発話を認識した」場合に実行されるビヘイビアであることを指している。変数比較のコンディションの演算子は、eq(等しい)、gt(より大きい)、lt(より小さい)、geq(以上)、leq(以下)を指定する。他にもコンディションでは、ビヘイビア実行の条件として、以下のものを利用することができる。

  • 一定時間が経過した

  • 手のひらのスイッチが押された

  • 顔認識に成功した

  • 音声認識に成功した

これらの条件をandやorで組み合わせてコンディションとして指定することで、ビヘイビアの実行条件を記述する。


アクションの記述例をソースコード次に示す。この例は、左手を上に挙げ、左右に振りながら、音声合成で「こんにちは」と発話するアクションを示している。


次に、エフェクトの記述例をソースコード次に示す。エフェクトでは、ビヘイビアの実行による内部パラメータの変化を記述する。ここでは、変数pleasureに値1を加算することを示している。


ビヘイビアを記述するには、コンディション、アクション、エフェクトのIDをそれぞれ指定する。この三つの組み合わせがビヘイビアを表している。このように三要素を分離しているのは、複数のビヘイビアで同じアクションを使用したり、同じ条件下で実行される複数のビヘイビアを記述しやすくするためである。複数のビヘイビアが同時に実行条件を満たす場合、priorityの数字が最も大きいビヘイビアが実行される。

3 ビヘイビアコンテンツの作成と共有

Wikipediaなどに代表されるマス・コラボレーションでは、不特定多数のユーザがそれぞれ独立に創造的作業をおこない、それぞれの成果物を統合し一つのコンテンツ(集合)を構築する。不特定多数のユーザが参加することにより、必然的に、コンテンツの量および多様性が高くなり、また、参加者一人一人のコンテンツ作成能力が高くなくても、統合の過程で、第三者によって不備な点が発見・修正され、全体の質が保たれることが期待される。本論文では、複数のユーザが協調的にビヘイビア設計を行うシステムを提案する。そしてそれをオンラインサービスとして運営することによって、マス・コラボレーションにみられる効果により、ビヘイビアの質と量の向上をはかる。

前節では、ビヘイビアをコンテンツとして扱うためのXML形式を定義した。ビヘイビアはシミュレーションのためのプログラムではなく、コミュニケーションロボットという実体のあるハードウェアを動作させるものであり、ロボットの擬似的な人格を構成するものであるため、クリエータの想像力をかき立てる面白みのあるメディアであると考える。

ビヘイビア共有システムの概要

図1: ビヘイビア共有システムの概要

図1に本システムの概要を示す。本システムはロボットの他に、ビヘイビアエディタと、ビヘイビアサーバから構成される。ユーザはビヘイビアエディタを用いてビヘイビアコンテンツを作成し、ビヘイビアサーバに保存する。本研究ではこのサーバに保存されているビヘイビアの集合をビヘイビア空間と呼ぶ。ロボットはサーバに対し定期的にビヘイビア空間の更新の有無について問い合わせを行い、サーバ上のビヘイビア空間をロボットの内部にコピーする。サーバ上のビヘイビアがあるユーザによって追加あるいは編集されたとき、すべてのユーザがもつロボットのビヘイビア空間(のコピー)は更新される。

3.1 ビヘイビアエディタ

前節では、ビヘイビアを共有および再利用可能なコンテンツとして扱うために、XMLによるスクリプトを定義した。このスクリプトの記述を支援し、コンテンツ化するために、ビヘイビアエディタと呼ばれるソフトウェアを開発した。ビヘイビアエディタは、ビヘイビアを設計するためのGUIを持ち、ビヘイビアサーバとの通信機能を備えており、作成したコンテンツはサーバに保存される。この通信機能については後述する。ビヘイビアエディタはアクションエディタ、コンディションエディタ、エフェクトエディタからなり、それぞれを作成したあと、それらを関連付けることにより、一つのビヘイビアコンテンツを作成する。

アクションエディタでは、モーションや発話内容などの作成を行う。その動作画面を図に示す。アクションエディタは、タイムライン部、サーボ部、発話文生成部からなる。ロボットは内部的に、時間を離散的に分割した、フレームという時間単位を持つ。ここで、1フレームは500ミリ秒である。タイムライン部ではこの1フレームが方眼の1マスとして表現されており、横軸が時間、縦軸がサーボの部位を表している。モーションの作成では、タイムライン上にキーフレームと呼ばれるフレームを配置する。それぞれのキーフレームにおけるロボットの姿勢をサーボ部で指定すると、実行時にはキーフレーム間の姿勢が自動的に補完される。また、発話部に入力したテキストは、アクションの発話要素になる。タイムラインの`再生'ボタンを押すと、ユーザの指定したロボットと通信を行い、実際にそのモーションと発話をあわせたアクションをロボットに実行させ、動作確認をすることができる。

アクションエディタ(上:タイムライン部、左下:サーボ部、右下:発話文生成部)

図2: アクションエディタ(上:タイムライン部、左下:サーボ部、右下:発話文生成部)

コンディションエディタの動作画面を図に示す。コンディションエディタはツリー部と条件部によって構成され、ツリー部にはandやorによるツリー構造で表されたコンディションが表示され、ツリーのアイテムが各条件に対応している。条件部ではツリー部における条件アイテムの編集および新規作成を行う。条件としては前節で述べたものを利用できる。

コンディションエディタ(上:ツリー部、下:条件部)

図3: コンディションエディタ(上:ツリー部、下:条件部)

他者が設計したビヘイビアを再編集し、アップロードすることも可能である。これにより、参加者一人一人のコンテンツ作成能力が高くなくても、ビヘイビアの不備な点が第三者によって修正され、全体の質の向上に繋がると考えられる。

コンディションエディタやエフェクトエディタにおいて、変数の値を条件として利用することができるが、第三者が作成した変数を利用する場合、その変数記号がどのような意味を持っているのかという情報が必要になる。また、変数だけでなく、ビヘイビア、アクション、エフェクト、コンディションについても、意味的な整合のために、それぞれが持つ意味をユーザ同士で共有する必要がある。そこで各エディタでは、図のように、変数やビヘイビアなどの選択に同期して、それに対するコメントが表示される。このコメントは編集ボタンを押すことで、自由に編集することができる。

変数に対するコメントの付与(左:変数選択部、右:コメント部)

図4: 変数に対するコメントの付与(左:変数選択部、右:コメント部)

3.2 ビヘイビアコンテンツの共有

作成したビヘイビアコンテンツを共有し、すべてのロボットに対してそのコンテンツを配信するために、ビヘイビアエディタは前述したビヘイビアサーバと呼ばれるサーバにコンテンツを保存する。ビヘイビアエディタは、作成したコンテンツをXML形式でサーバへ送信する。サーバは、ロボットへの配信のために、すべてのビヘイビアコンテンツのインデックス情報を一つのXMLデータとして管理している。これがビヘイビアサーバのビヘイビア空間のインデックスである。ロボットは起動時にサーバと通信をおこない、ロボット内のビヘイビア空間のインデックスと、サーバ上のものを比較し、更新情報を取得する。その後、差分に相当するビヘイビアコンテンツをダウンロードする。これによって、すべてのロボットは同じビヘイビア空間を共有することになる。その際にも、ロボット内部にある変数にセットされた値は初期化されず、それぞれのロボットにおいてそのまま維持される。これにより、すべてのロボットが同じビヘイビア空間を共有していながら、それぞれのロボットには、それまでユーザがおこなってきたインタラクションの違いによって、異なったふるまいをさせることができる。

また、ビヘイビアコンテンツは内部的にIDが割り当てる必要があり、他のビヘイビアから参照する場合にそのIDを利用する。すべてのロボットが同じビヘイビア空間を共有するためには、ビヘイビアなどに割り当てるIDは、全ロボットを通して一意でなくてはならない。そこで、ビヘイビアサーバがIDの発行および管理を行う。エディタを用いてコンテンツを設計する際に、エディタはサーバと通信をおこない、IDの発行を依頼し、発行されたIDをビヘイビアに割り当てる。

4 まとめと今後の課題

われわれは、コミュニケーションロボットにおけるビヘイビアをコンテンツとみなし、不特定多数のユーザによってビヘイビア設計を行い、ロボットの見かけの成長を促進するシステムを提案した。本システムはビヘイビア設計における新しいアプローチである。従来のロボットでは、ビヘイビアは専門家がすべて設計し、ロボットにあらかじめプログラミングしておくのに対し、本システムでは、ビヘイビアの設計は一般ユーザが協調的に行う。これによって、ビヘイビアの量的な側面では、従来手法を上回ることができると考えている。しかし、従来手法に比べて、ビヘイビア設計者は一般ユーザであり、専門的な知識を持っていることは期待できないため、ビヘイビアの質的な側面では劣ることが予想される。しかし、われわれは、ビヘイビア設計に多くのユーザが協調的にすることにより、ユーザ同士が互いの問題を補い合うことで、質的な向上を実現できると考えている。

ところで、複数のユーザによって設計されたビヘイビアを統合していくことが、ロボットにとっての成長と呼べるのかどうか、という問題がある。たとえばKismetは人間の赤ちゃんのように、人間との関わり合いのなかで、学習を通して知能を獲得していく。本システムは、生き物の成長過程の模倣ではなく、ロボットにしかできない、ネットワークを用いた新しい成長の提案であり、生物的な成長とは明らかに異なると言える。本システムによる成長がどのような性質を持ち、ユーザにとってどのように受け入れられるかは、評価実験を経て、改めて考察する必要があるだろう。

以上の考察を踏まえて、今後の課題としては以下のものが挙げられる。

4.1 ビヘイビア間の意味的な整合

従来のコミュニケーションロボットのビヘイビアは専門家があらかじめ設計したものであるため、当然、ビヘイビア同士が意味的な矛盾を起こすことは少ないと考えられる。本論文で提案したシステムでは、ビヘイビアは複数のユーザが協調的に設計するため、すべてのビヘイビアの効果の予測が十分にできず、全体として意味的な整合性を管理することは困難である。これは、Wikipediaなどのマス・コラボレーションツールにしばしば見受けられる問題である。本論文では、ビヘイビア同士の意味的な矛盾を抑制するための仕組みとして、ビヘイビア作成の際に、作成中のものと同条件下で実行されうるビヘイビアを表示する。これは、個々のビヘイビア間における矛盾を発見をしやすくするものであり、ビヘイビア空間全体としての整合性が保証されるものではない。そして、そのような全体の整合性は、実際にロボットを動作させることで確認されるものである。したがって、作成段階だけでなく、実際の動作を踏まえたフィードバックを行うことで、よりビヘイビア集合の質を高めることができると考えられる。具体的には、矛盾を発見したユーザがビヘイビアコンテンツに対するアノテーションの付与をおこない、ビヘイビアの設計者に修正を促したりすることなどが考えられる。

4.2 システムの運用と評価実験

従来の一般的なコミュニケーションロボットのビヘイビアは、あらかじめ用意されたものの中から選択し、実行される。そしてその多くは、コミュニケーションに応じてビヘイビアのパターンを増やし、生物の成長を模倣する。しかし、あらかじめ用意されたビヘイビアを超えるような動きを実現することができない。本システムを用いると、複数のユーザのコラボレーションによって、従来手法よりも多様なビヘイビアを期待できると考えている。その仮説を示すために、本システムを実際に複数のユーザに使用してもらい、ビヘイビアコンテンツを収集し、それによってもたらされるロボットと人間のインタラクションの質や量を従来のロボットと比較する必要がある。