スキップしてメイン コンテンツに移動

Pepper SDK入門(2) はじめてのロボアプリ開発①

発話を行うロボアプリの開発をしながら、開発手順について説明していきたいと思います。Androidプロジェクトを作成し、ロボアプリの初期設定を行い、ActivityがPepperを操作するために必要な実装について見ていきます。

1.プロジェクト作成

ロボアプリ開発にあたって、まず初めに標準的なAndroidプロジェクトを作成し、それにロボアプリの設定を追加します。Android StudioのFileメニューのNewからNew Projectを選択し、Androidプロジェクトを作成してください。プロジェクト作成時のTarget Android DeviceではPhone and TabletのAndroid 6.0 (Marshmallow)が選択してください。

2.ロボアプリの初期設定

作成したAndroidプロジェクトにロボアプリの初期設定を行います。

<手順>

  1. FileメニューのNewからRobot Applicationを選択します。
  2. サポートするRobot SDKのバージョンと追加するモジュールを選び、OKをクリックしてください。
  3. Sync Project with Gradle Fileボタン(下図の参照)をクリックし、プロジェクトとGradleファイルを同期させます。
結果
これでロボアプリの初期設定が完了しました。以下のファイルが更新されていることが確認できます。
  • assetsにrobotディレクトリとrobotsdk.xmlファイルが追加されます。robotsdk.xmlファイルには、選択したRobot SDKのバージョンが含まれています。
  • appのbuild.gradle fileのdependenciesにQiSKDのモジュールが追加されます。これにより、アプリからQiSDKが利用できるようになります。
  • AndroidManifest.xmlにuses-featureタグが追加されます。追加されたuses-featureタグはアプリがPepperを使用することを示しています。

3.QiSDK実装とロボットのライフサイクル

ActivityからPepperを操作するために必要となる共通の実装について見ていきます。

<手順>

  1. onCreateメソッドの中で、QiSDKにActivityを登録します。
    protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
      QiSDK.register(this, this);
    }
    
  2. onDestroyメソッドの中でActivityの登録を解除します。
    protected void onDestroy() {
        QiSDK.unregister(this, this);
        super.onDestroy();
    }
    
    ※ QiSDK.unregister(this)を使用した場合は、ActivityのすべてのRobotLifecycleCallbacksの登録が解除されます。登録したままにしておくべきコールバックを解除してしまうことのないよう注意してください。
  3. 作成したActivityにRobotActivityを継承させます。これにより、Activityは会話の内容を画面に表示するSpeechBarを利用できるようになります。
    public class MainActivity extends RobotActivity
    
  4. 追加したActivityにRobotLifecycleCallbacksを実装してください。
    public class MainActivity extends RobotActivity implements RobotLifecycleCallbacks
    

    このインターフェースはロボットフォーカスの獲得と喪失の通知を受けるためのものです。
  5. onRobotFocusGained、onRobotFocusLost、onRobotFocusRefusedメソッドをオーバーライドで実装します。
    @Override
    public void onRobotFocusGained(QiContext qiContext) {}
    
    @Override
    public void onRobotFocusLost() {}
    
    @Override
    public void onRobotFocusRefused(String reason) {}
    
    
onRobotFocusGainedはActivityがロボットフォーカスを獲得した時に呼ばれます。ロボットフォーカスを獲得した時、ActivityはPepperに様々な動きをさせることが出来ます。 onRobotFocusLostはActivityがロボットフォーカスを失った時に呼ばれます。ロボットフォーカスを失った時、ActivityはPepperを動かすことが出来なくなります。
重要
onRobotFocusGainedとonRobotFocusLostメソッドはバックグラウンドスレッドで実行されるため、UIスレッドをブロックすることはありません。

コメント

このブログの人気の投稿

Pepper SDK入門(1) Pepper SDKプラグインのインストール

Pepper SDK for Androidのサイトが黙々とアップデートされています。そろそろ感もありますので、Pepper SDK for Androidの公式サイトを読みつつ、理解したことをまとめていきたいと思います。 Android Studio対応版Pepperでは、AndroidのActivityからAPIを使用して、会話や動きを制御することが出来るようです。Pepper SDK for AndroidはAndroid Studioのプラグインであり、グラフィカルツール、Javaライブラリ、QiSDKを提供します。 Android Studio対応版Pepper向けのロボアプリを開発するため、以下に従って開発環境を整えましょう。 《OSバージョンの確認》 まずは、OSとバージョンの互換性を確認してください。 Linux … Ubuntu 16.04 Xenial Xerus - 64bits only Windows … Microsoft Windows 10 - 64bits only Mac … Mac OS X 10.12 Sierra 《Android Studioのインストール》 ロボアプリはPepperにビルトインされたAndroidのタブレット上で動くアプリであり、それによって開発を行うため、Android Studioのインストールが必要です。 <必要なもの> ・Android Studio Version 2.3かそれ以降 最新の安定したバージョンのインストールを推奨しています。 ・Java Development Kit (JDK) Android Studioの動作環境 Android Studioのインストールにあたっては、以下の公式インストールガイドに従ってください: http://developer.android.com/sdk/index.html 《Android SDKとビルドツールの入手》 Androidのアプリを開発するために、Android SDKとビルドツールのインストールが必要です。 <手順> ① Android Studioのツールバーから、 SDK Managerをクリックすると、SDK Managerが表示さ...

Pepper SDK入門(3) はじめてのロボアプリ開発②

Androidプロジェクトの作成及びロボアプリの初期設定を行った前回に引き続き、Pepperのエミュレータと実機でアプリを実行するために必要な手順を確認していきます。 1.Pepperのエミュレータ  まずは、Pepperのエミュレータで動作確認するための方法についてです。 <手順> エミュレータボタン をクリックしてください。すると、ロボットエミュレータが表示されます。 プロジェクトにおける実行の構成でappが選択されているか を確認し、 選択されていない場合はそれを選択してください。 実行ボタン をクリックしてください。すると、Select Deployment Targetダイアログが表示されます。 ダイアログからPepperのエミュレータを選択してください。アプリがエミュレータにインストールされ、Robot Viewer上のバーチャルロボットで動作確認することが出来ます。 2.Pepperの実機  次に、Pepperの実機で動作確認するための方法を見ていきます。 <手順> Pepperのタブレットの設定を確認します。タブレットのホームにある設定アイコンをタップし、以下の設定を確認してください。 開発者モードが有効になっていること 開発者向けオプション、デバッグ、ADBも有効になっていること Android studioで、接続ボタン をクリックし、Robots Browserを表示してください。 Use fix portとUse fixed IP/hostnameにチェックを入れ、接続先のPepperのIPアドレスを入力してください。PepperのIPアドレスはタブレットの通知バーか、胸部ボタンを一回押すことで確認できます。 Selectボタンをクリックしてください。すると、セキュリティの警告が表示されます。 Pepperのパスワードを入力してください。初期パスワードはnaoです。変更している場合は管理者に確認して下さい。パスワード入力後にOKボタンをクリックすると、Robot Viewerが表示されます。 Pepperの実機に接続すると、同時にタブレットにもADB経由で接続されます。 プロジェクトにおける実行の構成でa...

Pepper SDK入門(11) Robot ViewerとRobot Browser

Robot emulatorについては「 Pepper SDK入門(3) はじめてのロボアプリ開発② 」でも触れましたが、もう少し詳しく見ていきたいと思います。 Robot emulatorは、下記のモジュールから構成されています。 モジュール名 概要 NAOqi Robot emulatorエンジン。実機での操作をエミュレートする。 Robot Viewer Pepperの挙動のシミュレーションを表示する。 AVD Android仮想デバイス。Pepperのタブレットと同じ形状をしており、アプリはここで実行される。 以上の3つは同じライフサイクルを持っているため同時に起動し、一つでも停止すればすべてが停止します。 1.Robot Viewer Robot viewerにはpluginが接続しているPepperをモニタリングするツールがまとまっており、以下のような機能が利用できます。 Robot viewによる、Pepperの3Dモデル表示 Motion Viewによる、Pepperの関節の角度設定 Dialog viewによる、音声認識の結果や発話内容の表示 Log viewによる、Pepper本体側のログの表示 pluginがPepperに接続するタイミングで、Robot Viewerは自動で起動します。 <手順> Android StudioのToolsメニューのPepper SDKからEmulatorを選択するか、ツールバーのエミュレータボタン をクリックしてください。robotsdk.xmlに設定されているAPIレベルに応じたエミュレータが起動します。 1-1.Robot view Robot viewは接続しているPepperの状態を表示します。 エミュレータに接続している場合、Pepperは青い背景で表示されます。 実機に接続している場合、Pepperは緑の背景で表示されます。 Robot viewのツールバーで、表示内容を設定できます...