Pepper技術ブログ:はじめてのPepperアプリ開発(その5)

Pepper技術ブログ:はじめてのPepperアプリ開発(その5)

Pepper技術ブログ:はじめてのPepperアプリ開発(その5)

こんにちは!
日本システムデザイン Pepper担当のスエヨシです。
はじめてのPepperアプリ開発シリーズ、今回で最終回です。

前回までの内容で、Pepperくんと一往復の会話を行うアプリが完成しました。
回答待ちの時間切れ処理も実装できました。
さて、5回目の今回は、出来上がったアプリを実際に正式なアプリとして Pepper にインストールする作業についてお話します。


◆マニフェストファイルの定義

作成したアプリを正式にPepperくんにインストールする為にはパッケージファイル(*.pkg)として出力する必要があるのですが、その前に一つやっておかなければならない作業があります。

それは、マニフェストファイル(manifest.xml)の定義です。

マニフェストファイル(manifest.xml)には、アプリ自身とそこに含まれる各ビヘイビアについて、起動条件やアプリ名等の諸々の設定が記載されています。パッケージファイルを正しく出力し、アプリを正常にインストールする為には、このマニフェストファイルを正しく記載しておく必要があります。

マニフェストファイルはプロジェクトの新規作成時に自動生成されています。修正するには Choregraphe のプロジェクトファイルビューにて manifest.xml をダブルクリック、またはプロパティボタンを押下してください。以下のようにプロジェクトのプロパティがダイアログで表示されます。

chrg_manifest_a
マニフェストファイル(1) - アプリケーションプロパティ

chrg_manifest_b
マニフェストファイル(2) - ビヘイビアプロパティ

マニフェストファイル内の各設定値は以下のような内容となっています。

(1) アプリケーションプロパティ

ロボアプリの対応言語 本アプリ全体での対応言語を選択します。
ビヘイビア設定の「トリガーセンテンス」「レスポンスの読み込み」「パーミッション」にて、ここで選択した言語での設定が可能になります。また、このプロパティダイアログ自体の表示言語選択(右上プルダウン)も、ここで選択した対応言語での表示が可能となります。
概要の言語 「ロボアプリ名」「ロボアプリの概要」「ビヘイビア名」「ビヘイビア概要」で設定可能な言語を選択します。尚、本項目は「ロボアプリの対応言語」で選択した言語が必須で選択されます。
ロボアプリ名 本ロボアプリの名称を定義します。ここで設定したアプリが Pepper のロボアプリランチャーに表示されます。また、アルデバランストアに登録した場合や Pepper for Biz でマイアプリとして登録した場合等、ストアサイトのアプリページにて名称として表示されます。
アプリケーションID 本ロボアプリを識別するID値を定義します(*1)。バージョンアップやストアへのアップロード等の際、この値を基準として同一アプリか否かを判断しています。
ロボアプリバージョン 本ロボアプリのバージョン値を定義します。3つ目の値はパッケージ生成の実行時に自動的に加算されます。
ロボアプリの概要 本ロボアプリの概要を設定します。アルデバランストアに登録した場合や Pepper for Biz でマイアプリとして登録した場合等、ストアサイトのアプリページにて名称として表示されます。
対象NAOqiバージョン 本ロボアプリが動作するNAOqi(Pepper の OS)のバージョンを指定します。
対応機種 本ロボアプリが動作する Pepper 本体(或いはその他のロボットのハードウェア)の機種を指定します。

(2) ビヘイビアプロパティ

名前 当該ビヘイビアの名前です。
タグ タグを設定します。複数のタグを設定する場合はスペースで区切って列挙してください。
性質 当該ビヘイビアの性質を「性質なし」「インタラクティブ」「ソリタリー」から選択します。「性質なし」を選択した場合はオートノマスライフモードからの起動は不可となります。「インタラクティブ」「ソリタリー」を選択した場合は、オートノマスライフモードからの起動が可能となり、それぞれインタラクティブアクティビティ・ソリタリーアクティビティ(*2)として起動するようになります。
概要 当該ビヘイビアの概要を設定します。
ユーザのリクエストより開始 チェックを入れると、ロボアプリランチャーからの起動が可能となります。チェックを外すとロボアプリランチャー上に表示されなくなります。
トリガーセンテンス 当該ビヘイビアを音声認識により起動させる場合の、アプリ起動の契機となる言葉を設定します。
レスポンスの読み込み 当該ビヘイビアの読み込み中(起動前)に Pepper に発話させる内容を設定します。
パーミッション 当該ビヘイビアの動作に対して権限指定が必要な場合に、指定を行います。
起動トリガーの条件 当該ビヘイビアを特定条件下で自動的に起動させたい場合に、条件の設定を行います(*3)


尚、マニフェストファイルの設定内容については公式ドキュメントに詳細な情報が記載されています。
Project content panel - Aldebaran documentation(英語)

設定値は多いですが、とりあえず今回はスクリーンショットの記載例を参考に入力してみてください。

(*1) ID値は全て半角とし、英小文字・数字・ハイフン("-")及びアンダースコア("_")が使用可能です。
(*2) インタラクティブアクティビティ(Interactiveアクティビティ)は、人と対応する為のアクティビティで、他のアプリの割り込みを許容しません。ソリタリーアクティビティ(Solitaryアクティビティ)は、対応する相手がいない場合に自動で実行するアクティビティで、他のアプリの割り込みを許容します。
(*3) 例として、「一定間隔で起動」「特定の時間になったら起動」「人が近づいたら起動」等の条件による自動起動が指定できます。


◆アプリアイコンの用意

マニフェストファイルの準備ができたら、もうひとつの事前準備としてアプリアイコンを用意しましょう。

アイコンの作り方や細かい色指定等は、ソフトバンク様の Pepper for Biz ページに詳しい記載があります。また、アイコンのテンプレートも配布されておりますので、これを利用するのも良いでしょう。
アプリアイコン - Pepper for Biz(法人向けモデル)

尚、アイコンサイズに関しては特に指定がないのですが、ロボアプリランチャーやストア等で表示される際に一定のサイズにリサイズして表示される為、余程小さいサイズでなければあまり気にしなくても問題ないようです。

筆者が試した感じでは、小さいサイズでも 255(px) x 255(px) か、320(px) x 320(px) 程度のサイズであればきれいに表示されるようです。

icon
320(px) x 320(px) のアイコン例

作成したアイコンはpng形式で保存し、ファイル名は"icon.png"としてください。他のファイル形式・ファイル名ではアイコンとして認識しないようです。保存したら、アイコンファイルをアプリのプロジェクトディレクトリの最上位階層(manifest.xml がある階層)に配置してください。


◆パッケージ生成&インストール

ここまでで準備はできましたので、いよいよパッケージ生成を行います。
Choregraphe のメニューバーから「ファイル」>「パッケージをビルド...」を選択すると、パッケージエクスポート先のファイルダイアログが表示されるので、出力先とパッケージファイル名を指定して保存してください。パッケージファイルが自動的に生成されます。

chrg_package_build
パッケージビルド実行

パッケージファイルができたら、Pepperくんにインストールします。
Choregraphe からインストール先のPepperくんに接続して、Choregraphe 右下のロボアプリ一覧からインストールアイコンのプルダウンを開き、「パッケージを選択してインストール」を選択してください。ファイル選択ダイアログが表示されるので、先ほど生成したパッケージファイルを選択して「オープン」を押下してください。

chrg_package_install
パッケージインストール実行

これで、作成したアプリが正式にPepperくんへとインストールされました。

試しに、Pepperくんのロボアプリランチャーを確認してみましょう。

DSC_0005
Pepperくんのタブレットでロボアプリランチャーを表示

はい。このように、正式にインストールできました。


以上で、全5回にわたってお送りした「はじめてのPepperアプリ開発」シリーズは終了となります。
いかがでしたでしょうか?
大まかな流れだけを追ってきた形でしたが、Pepper アプリ開発の雰囲気を感じ取っていただければ幸いです。



弊社ではPepperのアプリケーション開発を行っています。
詳しくはこちらをご参照ください。