20151002 android app for pepper

47
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一 Android アプリで Pepper を らせてみる 日本Androidのx アトリエ秋葉原

Upload: kenichi-ohwada

Post on 13-Jan-2017

5.614 views

Category:

Technology


10 download

TRANSCRIPT

Page 1: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Android アプリで Pepper を

喋らせてみる

日本Androidの会 x アトリエ秋葉原

Page 2: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

自 己 紹 介@ohwada

大和田健一Pepper オーナー 日本Androidの会 横浜支部 支部長 ファブラボ関内 ディレクタ

Page 3: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Robots

Page 4: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

ファブラボFabrication Laboratory

Page 5: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

ファブラボ 関内、鎌倉、仙台、浜松Maker Faire Tokyo 2014

Page 6: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

ファブラボ 標準機材

Page 7: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

ファブラボ 作品例

上段 3Dプリンタ 下段 レーザーカッタ

Page 8: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

日本Androidの会

Page 9: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

7/20 ABC 2015 Summer日本Androidの会 主催

Android Bazaar and Conference

https://www.youtube.com/watch?v=vSKXvUBX97g

Page 10: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

日本Androidの会 横浜支部

CardBoard ワークショップ

Page 11: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

本日の参加賞 ドロイド君 飴

Page 12: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Pepper くん

Page 13: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

昨年10月末

http://pepper.ohwada.jp/Pepperブログ

Page 14: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

日経Linux5月号Pepper アプリ開発

Page 15: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Pepperくん 里帰り

Page 16: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Android アプリで Pepper を 喋らせてみる

Page 17: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

今日の話題(1)Android から

Pepper を制御する仕組み (2) Android アプリの留意点 (3) NAOqi API (4) サンプルコード

Page 18: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

サンプルコードを実行する10分で(1) Android Studio に

サンプルコード PepperSaySample を インポートする (2) java-naoqi-sdk-xxx-android.jar を app/libs にコピーする (3) ビルドして、 Android に転送する

Page 19: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

サンプルコードを実行する

(1) IPアドレスを入力して、  Connect ボタンを押す (2) Say ボタンを押す

Page 20: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

IPアドレスを調べる(1) Pepper 本体のマイロボット画面 (2) Pepper にしゃべらせる  胸のボタンを押す (3) Choregraphe の接続画面

Page 21: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Android から Pepper を制御する仕組み

Page 22: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Pepper アプリ 開発環境

(1) Choregraphe (2) Python、C++ (3) Java、Java-Android (正式公開前)

Page 23: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Android から Pepper を制御する仕組み

(1) Choregraphe の実行環境 (2) Python, Java の実行環境 (3) Android の実行環境

Page 24: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Choregraphe

Package

NAOqi OS

転送

NAOqi API

(Python)

PC Pepper(1) Choregraphe の実行環境

Package(Python)

Page 25: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

PC

NAOqi OSNAOqi API

Pepper

(2) Python, Java の実行環境

Code(Python, Java)

Page 26: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

PC

NAOqi OSNAOqi

API

Pepper

(3) Android の実行環境

App(Java)

Android Studio

App(Java)

Android OS

転送

Android

Page 27: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Android アプリ 留意点

Page 28: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Android アプリの留意点

(1) ライブラリの保存場所を指定する (2) IPアドレスから Session を取得する (3) Thread から NAOqi API を実行する (4) パーミッションを設定する

Page 29: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

(1) ライブラリの保存場所を指定する

EmbeddedTools tools = new EmbeddedTools(); File dir = getApplicationContext().getCacheDir(); tools.overrideTempDirectory(dir); tools.loadEmbeddedLibraries();

Tool class providing QiMessaging<->Java type system loading and dynamic library loader designed to load libraries included in jar package.

Jar ファイルには ダイナミック・ライブラリが含まれている

com.aldebaran.qi.EmbeddedTools

Page 30: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

(2) IPアドレスから Session を取得する

String ip = "tcp://" + "<IP of your robot>" + ":9559"; Session session = new Session(); try { session.connect(ip).get(); } catch (Exception e) { }

Create session and try to connect to given address.

com.aldebaran.qi.Session

Page 31: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

(3) Thread から NAOqi API を実行する

public void onClickConnect() Thread thread = new Thread( new Runnable() { @Override public void run() { Looper.prepare(); connectPepper(); } }); thread.start(); }

制約:Android では UI スレッドから 通信スレッド (NAQqi API) は実行できない。

private void connectPepper() { Session session = new Session(); ... }

Page 32: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

(4) パーミッションを設定する

<uses-permission android:name="android.permission.INTERNET" />

AndroidManifest.xml

NAOqi API は WiFi 通信を行います

Page 33: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

演 習 10分で

(1) 台詞を変更する (2) ボタンを増やして、台詞を追加する (3) 音量を調整する

サンプルコード PepperSay

Page 34: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

NAOqi API

Page 35: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

NAOqi APIhttp://doc.aldebaran.com/2-1/naoqi/

http://qiita.com/robotstart/items/7814bb56d0b56b1ad5ae

Page 36: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

例) ALTextToSpeech

IP = "<IP ADDRESS>" tts = ALProxy("ALTextToSpeech", IP, 9559) tts.say("Hello World!")

http://doc.aldebaran.com/2-1/naoqi/audio/altexttospeech.html

Tutorial (Python)

Page 37: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Java Doc

Page 38: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

サンプルコード

Page 39: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

サンプルコードJava や Android は、ありません (^^;

http://doc.aldebaran.com/2-1/dev/python/tutorials.html

Page 40: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Choregraphe Box中身は Python コード

Page 41: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

https://github.com/ohwada/Pepper_Android

Page 42: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Pepper Speaker

7/20 ABC 2015 Summer

Page 43: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

ツンデレな Pepper くん

話しかけても返事をしない (^^;

Page 44: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

黒子作戦

Pepper内蔵WEBサーバー

WiFi

Page 45: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Pepper Speaker

Page 46: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

Android API 音声認識

Page 47: 20151002 Android app for Pepper

2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一

その他のサンプルコード(1) Posture : ポーズをとる (2) Joint : 関節を動かす (3) MoveTo : 移動する (指定した距離) (4) MoveToward : 移動する   (ボタンを押している間) (5) ImageRemote : 写真を撮る   -> 未完成