ロボットアプリの効果的なデモのために ～Pepperアプリデモ開発を中心としたTips


#はじめに
近年、コミュニケーションロボットが普及し、その開発者も増加しています。それに伴って、コミュニケーションロボットを使ったコンテストやハッカソンなどで、ロボットアプリケーションを人前でデモする機会が増えています。ロボットアプリ開発自体の技術的なTips、開発手法の記事は拡充されつつあるものの、デモに関しては重要なポイントがまとまった資料は少ないように感じます。本記事では、著者が複数のPepper アプリコンテスト、ハッカソン、展示会などに出た経験から、ロボットを使ったデモを行う際に重要であると感じたポイントをまとめています。主に、今後ロボットを使ったアプリ開発を行いたい技術者、アプリ開発は慣れているけれどデモの見せ方で苦労する方などを読者として想定しています。

#注意点
* 著者の開発経験・デモ経験に基づき、Pepper を用いた開発をベースに解説しています。
* 本記事は「デモのためのアプリ」「既存アプリのデモ用カスタマイズアプリ」の作成についての解説となります。製品としてリリースされ、ユーザーが実際に使うアプリには適切でない処理が含まれることをご注意下さい。

#ロボットアプリデモ作成時に重要となる2つのポイント
ロボットアプリのデモを作成する際に、重要なポイントは大きく分けて以下の2点です。

1. 本番に強いデモを作ること
2. ロボットならではの魅力を引き出すこと

以降の節で、詳細について解説します。

##本番に強いデモ作成
###本番に強いデモ作成のための心得
まず、ロボットアプリのデモを作成する際に「本番に強い」という観点から心得るべき
ポイントは以下の3点です。

**1. 環境依存の要素が大きいこと**
ロボットアプリでは音声認識や顔認識を利用している事が多いかと思いますが、デモする環境のあらゆるものがノイズになりやすいことに注意して下さい。ハッカソンの会場、展示会場のブースなど、デモの場所は一様にして人が多く雑音が多いです。そのような環境では、静かな環境で作っていたアプリであれば、音声がまともに認識されない可能性が高いでしょう。また、顔認識も会場の照明などに依存して認識が難しくなるケースもあります。ネットワーク環境もデモ会場の運営側に依存し、普段のネットワーク環境と異なることも注意しておくべきポイントです。

**2. 不具合の予兆、発生、復旧の目処が分かりづらいこと**
突然ロボットが何らかの不具合で動かなくなったり、再起動を強いられるケースがあります。開発者がロボットそのものをハードウェアから設計し、開発したのであれば話は別ですが、ロボット上で動くアプリだけを開発する立場であれば、原因が分かりづらく、限られたデモ時間の中で復旧を待つ事は大きなタイムロスになる可能性もあります。

**3. とはいえ動かなければ何も伝わらないこと**
ロボットアプリはその場で直接触れたり、インタラクティブに体験できる事に大きな価値があります。前述のとおり不安定要素の多いものの、ロボットを使ったデモは、ロボットが動いていなければ何も伝わりません。

##本番に強いデモの準備と実装のTips
前述の3つの心得を実際に適用し、不安定な要素が多い中でも本番に強いデモの実装Tipsについて以下に解説します。

**1. 環境に依存しないトリガーの追加**
デモしたいアプリの中で、「音声認識や顔認識をトリガーに次の処理へ進む」というロジックを組んでいる場合、デモ用には並列して「環境に依存しないトリガー」を追加しておきましょう。例えばPepperで使用される「QiScript」というスクリプトで、以下のように処理が定義されているとします。以下は、人間の「こんにちは」という音声を認識したら、Pepper が「こんにちは。ボクはPepper です」と返答するスクリプトです。
```u: （"こんにちは"） こんにちは。ボクはPepper です。```
このスクリプトを、デモ用に複数のトリガーを指定すると、例えば以下のようになります。
```u: （[e:HandRightBackTouched "こんにちは"]）こんにちは。ボクはPepper です。```
上記例では、「こんにちは」という単語の音声認識に加え、「e:HandRightBackTouched」で「右手の甲のタッチセンサーでタッチ検出」という処理を定義しています。このどちらか一方が検出されれば、次の処理に進むことになります。このような処理を加えておくことで、「音声をうまく認識しなかったら、右手の甲をタッチ」といった対応ができるようになります。

**2. オフラインデモの作成**
これはロボットアプリ以外のデモでも言えることですが、ネットワークを使用するアプリの場合、ダミーデータなどを用意し、ローカルで全て成立するオフラインデモを作成しておきましょう。また、準備中はネットワーク接続に問題がなくても、本番になって急にネットワークが切断されるなどもありえますので、問題が発生したら即時オフラインデモに切り替えられるような準備を行っておくと安心です。

**3. デモビデオを用意する**
それでも、デモ中にロボットが何らかの不具合を起こし、その復旧に時間がかかったり、代替機との交換に時間を要することはどうしてもありえます。ハッカソンなど決まった時間の中で審査する審査員や、せっかくアプリを見に来てくれたお客さんのため、最後の手段として、事前に撮影した動画を見せて「本来は動くものである」という証明をしましょう。もしかしたら、動画を見せているうちに、ロボットが復旧してデモができるようになるかもしれません。ハッカソンなど短時間で開発する場合、忙しくても必ず一度開発の手を休め、安定して動いているときに動画を撮っておくことをお勧めします。

##ロボットならではの魅力を引き出す
###ロボットならではの魅力を引き出すための心得
「ロボットならではの魅力を引き出す」という観点での心得は以下の通りです。

**ただの機械ではないことを意識する**
せっかくロボットを扱うのですから、パソコンやその他機械でも技術的にできることをさせるだけではロボットアプリとしての魅力は半減するでしょう。デモするアプリが稼働するロボットが人間にとってどのような存在であるのか、一度見直してみましょう。

###ロボットの魅力を引き出すアプリデモの準備と実装の Tips
**1. キャラクター作り**
各メーカーがロボットの性格やキャラクターをある程度作っている場合は、その世界観から大きく外れるようなことをしゃべらせたり、声のトーンを変えすぎることは、見る側に違和感を与えることがあるので避けた方がいいでしょう。しかし、開発したアプリ稼動時のロボットが、ユーザーにとってどのような存在なのかを一度考えてみて、それに合わせたキャラクター調整を行ってみるのもいいかもしれません。例えば、ユーザーと主従関係のようなものを想定するのであれば、ロボットの言葉は敬語の方が良いでしょうし、友だちのような近い存在であれば、もっとなれなれしい言動をさせる方が効果的でしょう。

**2. 解説をロボットにさせる**
ロボットがしゃべったり、感情を表現するしぐさが可能であれば、せっかくならデモの解説も人間の代わりにロボットにやってもらうのもいいかもしれません。ロボットアプリの魅力が伝わるだけでなく、人間と違ってセリフをかむことも忘れることもしないので、 より正確なデモ時間の見積もりも可能です。

**3. お客さん、もしくはデモ担当者と目が合うようにする**
お客さんに体験してもらうようなデモでは、「ロボットが目の前のお客さんをきちんと認識している」と伝わることでより良い体験ができると思います。例えば、Pepperの場合は「Basic Awareness」ボックスを効果的に使うことをお勧めします。
<img width="189" alt="Basic Awarenessボックス" src="https://qiita-image-store.s3.amazonaws.com/0/137766/58eac292-c1ba-236f-f17e-e8f94c61e888.png">

このボックスを使うことで、目の前の人を見つめ続けることができます。設定の例は以下の図を参照してください。
<img width="359" alt="BasicAwarenessSetting.png" src="https://qiita-image-store.s3.amazonaws.com/0/137766/b8d395b1-889e-0eb0-7433-f1a9c6e336cf.png">

本ボックスライブラリの仕様や設定方法については、Aldebaran Robotics (2016年5月19日に「ソフトバンクロボティクスヨーロッパ」と社名を変更)の公式ドキュメンテーション内の [ALBasicAwareness のページ](http://doc.aldebaran.com/2-4/naoqi/interaction/autonomousabilities/albasicawareness.html)を参考にして下さい。

#おわりに
本記事では、ロボットを使ったアプリのデモを効果的に行うための心得とその適用方法について触れました。本番に強いアプリを作ることと、その上でただの機械ではないロボットならではの魅力を引き出すことで、アプリ開発者の皆さんが作ったアプリの良さが十二分に伝わることでしょう。


#本記事と「ロボットのほん」について
本記事は2016年「ロボットのほん」に寄稿したものを2016年9月時点の情報をもとに加筆・再編成したものです。「ロボットのほん」についての情報は以下記事等をご参照ください。
http://robotstart.info/2016/06/16/robot-no-hon.html