タグ別アーカイブ: Android

20160601_avd_tablet_2

Android エミュレータの高速化


20160601_avd_tablet_2

Pepper SDK for Android Studio にて、エミュレータを起動すると、下記のような警告が出ます。
「x86ベースのAndroid仮想デバイス(AVD)だと10倍高速だよ」
「Runnig an x86 based Android Virtual Device (AVD) is 10x faster.」
20160601_avd_warning

ADV を切り替えるには、下記のようにします。
メニューバーの robot app から Edit Configuration をクリックします。
20160601_avd_menu

Run/Debug Configurations が表示されます。
ADV Options の CPU/ABI を「x86」に変更します。
Use Host GPU をチェックします。
「OK」をクリックします。
20160601_avd_config

エミュレータを起動すると、少し速くなりました。

IMG_20160529_180228

Pepper SDK for Android Studio 体験会


IMG_20160529_180228

5月29日にアトリエ秋葉原で Pepper SDK for Android Studio 体験会 が開催されました。
まだ、対応する実機がないということで、体験会というよりも説明会という感じでした。
私は 「Pepper SDK for Android Studio を試してみた」 という発表をしました。
参加者には、ステッカーが配布されました。
20160529_sdk_sticker

詳しいことは、ロボットスタートさんが記事を書かれています。
「Pepper SDK for Android Studio 体験会」に行ってきました

ソフトバンクの公式サイトでも紹介されました。
Pepper SDK for Android Studio 体験会

ソフトバンクロボティクスの縄田昇司さんから、今回の Android 対応に関する説明がありました。
ソフトバンクとしては、開発者の裾野を広げたい。
現在の Choregraphe の開発環境は、何でもかんでもゼロから作る必要があり、不十分だと考えている。
オープンなプラットホームを活用して、開発者が楽しく開発できる環境を作っていきたい。
Androidに対応したことにより、開発者のメリットは3つある。
(1) Android 開発と同じ UI/UX で、ロボアプリの開発ができる。
(2) バーチャルロボット環境にて、タブレットのエミュレーションが可能になった。
(3) 将来的に、Google Play を通じてロボアプリを配布・販売できる。盗撮アプリのようなものが、配布されないように、セキュリティなど諸問題について、Google と協議中です。

ソフトバンクロボティクスの猿田晋也さんから、Pepper SDK for Android Studio に関する説明がありました。
現在開発中であり、最終的な仕様は変更になるかもしれない。
対応OSは、Linux と Window 8.1以前の Windows OS です。
MAC も動作しますが、社内での検証が終わっていないので、サポート外となっています。
スライド Pepper SDK for Android Studio 体験会 – Softbank Robotics

現在の Pepper に対するバージョンアップの計画について、質問がありましたが。
時期や料金については検討中、という回答でした。

Pepper Cardboard のキャンペーン実施中です。
Qiita に「開発サンプル」や「やってみた体験」を投稿した方に進呈しますとのこと。
私は発表したお礼として頂きました。
20160529_sdk_cardboard

私の方から、「Pepper SDK for Android Studio を試してみた」という発表をしました。
関連して、Github を2つ作りました。
Pepper_Android_Tutorial ソフトバンクの公開している Tutorial に関するもの
Pepper_Android_SDK SDK を使った Android アプリ

5月30日にも体験会がありました。
富田篤さんが発表したスライド。
Pepper SDK for Android Studio を Macで動かしてみた

20160525_android_tablet

Android アプリを自作した


Pepper SDK for Android Studio の Amination Brawser に、動物のアニメーションが用意されています。
これを使って、Android アプリを作成しました。
20160525_android_animation_brawser

動物の画像と鳴き声は、ネットのフリー素材を使いました。
ソースコードは、Mimic the elephant をベースにしました。

タブレットに表示された動物の画像をタッチすると、ロボットビューにて、Pepper がその動物の真似をします。
20160525_android_tablet
20160525_android_robot_view

完成したソースコードは、Github で公開しました。

課題
・Animate#run したものは、どうやって止めるのかな

Tutorials の Display humans around distances を試す


Tutorials の Display humans around distances を試しました。

この例では、ロボットの周りの人の一覧を取得するために Interaction サービスを使用します。
フレームは、一人一人に関連付けられ、Actuation サービスもロボットのフレームを出力します。
これらの情報を用いて、ロボットと一人一人との間の距離を計算することができます。

プロジェクトの作り方は Say “Hello, world!” と同じです。

Github に Android Studio のプロジェクトを公開しました。

動作確認
残念ながら、何の動作もしません。
Interaction サービスを使っていますが、エミュレータではイベントがイベントが発生していないのでしょう。

Tutorials の Mimic the elephant を試す


Tutorials の Mimic the elephant を試しました。

この例では、アニメーションのアクションを設定するためにActuation サービスを使用します。
トリガーされたサウンドをロボットのスピーカーで再生するためにメディアプレーヤを使用します。

Github に Android Studio のプロジェクトを公開しました。

プロジェクトの作成
Say “Hello, world!” と、ソースコードをコピペするところまでは同じです。
tutorial に elephant.animelephant_sound.wav があるので、ダウンロードします。
/res/raw/ フォルダを作って、elephant_sound.wav と elephant.anim を置きます。

動作確認
ロボットビューにて、象の鳴き声がして、象のモノマネをすれば、OKです。

Tutorials の Go to one meter forward を試す


Tutorials の Go to one meter forward を試しました。

プロジェクトの作り方は Say “Hello, world!” と同じです。

Github に Android Studio のプロジェクトを公開しました。

動作確認
残念ながら、logcat に下記のようなエラーが表示され、期待した動作はしませんでした。

ググってみたら、ROS絡みのエラーみたいです。
Error: Lookup would require extrapolation into the past.

20160520_say_11_emulator_begin

Tutorials の Say “Hello, world!” を試す


Tutorials の Say “Hello, world!” を試しました。

この例では、ロボットが何かを喋らせます。
Sayアクション を設定する Interactionサービス を使用します。

Github に Android Studio のプロジェクトを公開しました。

Choregraphe と Android に慣れているつもりでしたが、ちょっとまごつきました。
Tutorials はかなり不親切です。
ソースコードしか載っておらず、どういう動作をするのか、どうやって確認するのかが、書いていない。
何が正しいのか、しばし迷いました。
この記事では、その辺を書いておきました。

このサンプルでは、Pepper は動かず、“Hello, world!” と喋るだけです。
Pepper がピクともしないので、何か間違ったかと思いました。(^^;
エミュレータしかないので、最初のサンプルは Pepper が動くものにして欲しいですね。

プロジェクトの作成
プロジェクトを作るところは、普通の Android アプリと一緒です。
(1) Start a new Android Studio project をクリック
20160520_say_1_studio

(2) Apllication name をつける
20160520_say_2_new

(3) Minimum SDK を API 22: Android 5.1 (Lollipop) にする
20160520_say_3_target

(4) Empty Activity を選ぶ
20160520_say_4_add_activity

(5) Activity Name を Tutorial に合わせて SayActivity にする
20160520_say_5_actvity_name

(6) Project が開きます。
ここまでは、普通の Android アプリと一緒です。
20160520_say_6_project_begin

ここからは Pepper 独自です
(7) File -> New -> Robot Application を選択します
20160520_say_7_robot_application

(8) Select API で OK を押します。
20160520_say_8_api

(9) SayActivity.java を Tutorial からコピペします。
これで、プロジェクトは完成です。
20160520_say_9_java

エミュレータを起動します
(10) ツールバーの Emulator アイコンをクリックします
20160520_say_10_emulator_icon

(11) ロボットビューはすぐに起動しますが、タブレットのエミュレータは数分かかります。
20160520_say_11_emulator_begin

(12) タブレットが表示が、ロック画面になれば、OKです。
鍵のアイコンをスライドして、ロックを解除します。
20160520_say_12_emulator_lock

(13) Android のホーム画面になります。
これで、エミュレータの準備は終わりです。
20160520_say_13_home

アプリを起動します
(14) Run -> Robot App を選択します
20160520_say_14_run

(15) 下側にログ画面が表示されます。
20160520_say_15_log

(16) しばらくすると、Lauching applocation … が表示されます。
これでアプリが起動されました。
20160520_say_16_launching

動作確認
(17) タブレットに Hello World! と表示されれば、OKです。
20160520_say_17_tablet

(18) ロボットビューの下側の Dailog view を選択します。
Robot: Hello, world! と表示されれば、OKです。
これは、Pepper が Hello, world! と喋ったことを意味します。
20160520_say_18_dialog

logcat に下記のようなエラーが出ていましたが、動作には影響ないようです。

PS.
Pepper のエミュレータはよく出来ていると思ってますが。
喋りを確認するのに、Dailog を開くのは、今ひとつですね。
音声合成で発声して欲しいなぁ。

Pepper SDK for Android Studio


本日から Pepper SDK for Android Studio が無料配布されました。

Android Studio の環境設定は、ドキュメントとおりにやると出来ました。
Android SDK として、Android 5.1.1(API 22) と Android SDK Build-tools 22.0.1 を入れておきます。
ポイントは、プラグインで Pepper SDK を入れるところですね。
20160520_sdk_plugin

他にも、試してみた人たちがいます。
Pepper SDK for Android Studioが公開されたので使ってみた
Androidでアプリ開発!とりあえず開発環境構築

20160519_pepper_android_droid

人型ロボット「Pepper」がAndroid に対応


20160519_pepper_android_droid

5月19日にソフトバンク本社で Pepper に関する記者発表がありました。
ニュースリリース:人型ロボット「Pepper」がAndroid に対応

Pepper 本体に Android OS が組み込まれます。
Pepper にて Google Play にある Android アプリが実行できます。
Pepper が操作するような Android アプリも開発できます。
そのための Pepper SDK for Android Studio が無料配布されます。

なお、現状のモデルでは、対応できないそうです。
若干のハードの変更が必要とのこと。
それに対応したモデルは、7月から開発者向けに販売される予定です。

Pepper の Android アプリのデモがありました。
今のところ、象のモノマネをするものと、「今日は」としゃべるものの、2つだけでした。
20160519_pepper_android_app

ニュースリリースでは、下記にようになってます。
『Pepperの胸部ディスプレーをAndroid 搭載のものにし、NAOqiと連携させることで実現するものです。』

補足すると。
Pepper には2つのCPUが搭載されています。
本体の CPU では NAOqi が実行され、Pepper を制御しています。
胸のタブレットの CPU では Android が実行されています。
しかし、タブレットの Android の機能は制限されていました。
開発者も簡易的なWEBブラウザとしてしか使うことができませんでした。
今回の発表は、この制限を解除し、本来の Android タブレットとして使えるようにしたものと、推測されます。

従来のモデルでも、Android SDK があり、Android 端末から Pepper を操作することができました。
ワークショップ : Android アプリでPepperを喋らせてみる

今回の発表で、さらに Android 寄りに進めた感じです。

20160519_pepper_android_sticker

生活革命さんが少し踏み込んだ記事を書いています。
【速報】今「Pepperを買うか悩ましい」3つの理由。 Android対応は実質「新機種」の発表会だった! – 生活革命

メディア報道
【速報随時更新中】Pepperが世界展開に向けてAndroidのSDKに対応。7月にはAndoroid対応の新たな「Developerモデル」も販売開始 – ロボスタ
Android対応の「Pepper」、7月発売へ ソフトバンクロボティクスが発表 – ITmedia
PepperがAndroidに対応しました : ギズモード・ジャパン
「Pepper」がAndroidに対応–開発者数を100倍へ、Pepperなしでアプリ開発を可能に – cnet japan
PepperがAndroidに対応、ロボットアプリ開発SDKの無償提供を開始:ITpro
Pepper、Android対応に!開発者向けに7月発売 – RBB Today
「ロボアプリ開発者100倍増」狙い、PepperがAndroid対応 – MONOist
ペッパー君がアンドロイドで動く! 今年7月に対応版が発売 – ASAhIパソコン
PepperのAndroid対応は既定路線か – 日経テクノロジー
PepperのAndroid対応で生じるメリットと懸念 – IT Pro
Pepper the robot needs U.S. programmers – usatoday
Android now runs on androids – quartz

Pepper ImageRemote


_20151002_pepper_image_remote

機能
Pepper のカメラで撮影して、Android 端末に表示する Android アプリです。

API
(1) 撮影
撮影には NAOqi の ALVideoDevice#getImageRemote を使用しました。
撮った写真を YUV 形式の RAW データで取得出来ます。

(2) 画像変換
YUV から JPEG への変換には Android API の YuvImage#compressToJpeg を使用しました。
JPEG から Bitmap への変換には BitmapFactory#decodeByteArray を使用しました。

ソースコード
Github で公開しました。

補足
(1) 類似のAPIに ALPhotoCapture#takePicture があります。
こちらは撮った写真を JPEG で保存してくれますが、保存先は Pepper の内部なので、そこからどうやって取り出すかが課題です。

(2) ALVideoDevice#getImageRemote は、複数の画像形式が指定できます。
有効だったのは、 ColorSpace = 9 ( YUV422 ) で撮影して、 ImageFormat.YUY2 で画像変換するものでした。

参考
YUVフォーマット及び YUV<->RGB変換
YUV pixel formats