20151002 android app for pepper
TRANSCRIPT
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Android アプリで Pepper を
喋らせてみる
日本Androidの会 x アトリエ秋葉原
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
自 己 紹 介@ohwada
大和田健一Pepper オーナー 日本Androidの会 横浜支部 支部長 ファブラボ関内 ディレクタ
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Robots
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
ファブラボFabrication Laboratory
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
ファブラボ 関内、鎌倉、仙台、浜松Maker Faire Tokyo 2014
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
ファブラボ 標準機材
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
ファブラボ 作品例
上段 3Dプリンタ 下段 レーザーカッタ
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
日本Androidの会
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
7/20 ABC 2015 Summer日本Androidの会 主催
Android Bazaar and Conference
https://www.youtube.com/watch?v=vSKXvUBX97g
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
日本Androidの会 横浜支部
CardBoard ワークショップ
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
本日の参加賞 ドロイド君 飴
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Pepper くん
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
昨年10月末
http://pepper.ohwada.jp/Pepperブログ
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
日経Linux5月号Pepper アプリ開発
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Pepperくん 里帰り
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Android アプリで Pepper を 喋らせてみる
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
今日の話題(1)Android から
Pepper を制御する仕組み (2) Android アプリの留意点 (3) NAOqi API (4) サンプルコード
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
サンプルコードを実行する10分で(1) Android Studio に
サンプルコード PepperSaySample を インポートする (2) java-naoqi-sdk-xxx-android.jar を app/libs にコピーする (3) ビルドして、 Android に転送する
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
サンプルコードを実行する
(1) IPアドレスを入力して、 Connect ボタンを押す (2) Say ボタンを押す
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
IPアドレスを調べる(1) Pepper 本体のマイロボット画面 (2) Pepper にしゃべらせる 胸のボタンを押す (3) Choregraphe の接続画面
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Android から Pepper を制御する仕組み
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Pepper アプリ 開発環境
(1) Choregraphe (2) Python、C++ (3) Java、Java-Android (正式公開前)
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Android から Pepper を制御する仕組み
(1) Choregraphe の実行環境 (2) Python, Java の実行環境 (3) Android の実行環境
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Choregraphe
Package
NAOqi OS
転送
NAOqi API
(Python)
PC Pepper(1) Choregraphe の実行環境
Package(Python)
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
PC
NAOqi OSNAOqi API
Pepper
(2) Python, Java の実行環境
Code(Python, Java)
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
PC
NAOqi OSNAOqi
API
Pepper
(3) Android の実行環境
App(Java)
Android Studio
App(Java)
Android OS
転送
Android
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Android アプリ 留意点
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Android アプリの留意点
(1) ライブラリの保存場所を指定する (2) IPアドレスから Session を取得する (3) Thread から NAOqi API を実行する (4) パーミッションを設定する
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
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
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(); ... }
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
(4) パーミッションを設定する
<uses-permission android:name="android.permission.INTERNET" />
AndroidManifest.xml
NAOqi API は WiFi 通信を行います
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
演 習 10分で
(1) 台詞を変更する (2) ボタンを増やして、台詞を追加する (3) 音量を調整する
サンプルコード PepperSay
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
NAOqi API
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
NAOqi APIhttp://doc.aldebaran.com/2-1/naoqi/
http://qiita.com/robotstart/items/7814bb56d0b56b1ad5ae
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)
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Java Doc
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
サンプルコード
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
サンプルコードJava や Android は、ありません (^^;
http://doc.aldebaran.com/2-1/dev/python/tutorials.html
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Choregraphe Box中身は Python コード
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
https://github.com/ohwada/Pepper_Android
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Pepper Speaker
7/20 ABC 2015 Summer
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
ツンデレな Pepper くん
話しかけても返事をしない (^^;
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
黒子作戦
Pepper内蔵WEBサーバー
WiFi
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Pepper Speaker
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
Android API 音声認識
2015年10月2日 日本Androidの会 x アトリエ秋葉原 大和田健一
その他のサンプルコード(1) Posture : ポーズをとる (2) Joint : 関節を動かす (3) MoveTo : 移動する (指定した距離) (4) MoveToward : 移動する (ボタンを押している間) (5) ImageRemote : 写真を撮る -> 未完成