SlideShare a Scribd company logo
1 of 51
IBM Bluemix を Pepper とつないでみよう
2016/10/31
株式会社スマートロボティクス
Pepper x Bluemixハンズオンワークショップ&デモ
Smart Robotics CO.,LTD. 2016 All rights reserved
内容
• IBM Bluemixとの連携その様々な⼿法
• Node-RED を使って Pepper と Bluemix を連携
• HTTPリクエスト(1)単純な HTTP リクエスト
• HTTPリクエスト(2)画像データの送信
(Watson Visual Recognition で画像認識)
• HTTPリクエスト(3)⾳声データの送信
(Watson Speech To Text で⾳声認識)
• HTTPリクエスト(4)データの保存
• WebSocket 通信
• 外部サービスを Node-RED 経由で利⽤
• Bluemix 各サービスAPIに直接アクセス
• 例:Watson Speech To Text の Websocket インターフェースを使う
• サービス提供の SDK を使う
• Watson SDK
• Pepper のタブレット
2
Smart Robotics CO.,LTD. 2016 All rights reserved
IBM Bluemixとの連携
その様々な⼿法
3
Smart Robotics CO.,LTD. 2016 All rights reserved
Pepper とのサービス連携
• Web API にアクセス or サービス提供のSDK を使う?
• Web API にアクセス
• REST API が提供されている場合、HTTP リクエストを⽤いてクラウドサービスと連携する
• その他、連携のためのプロトコルが公開されている場合、それらを⽤いてクラウドサービス
連携する
• WebSocket
• MQTT
• など
• サービス提供の SDK をプロジェクトを使う
• Linux で稼働する Python SDK があれば Pepper で利⽤できる可能性⾼い
• それぞれの SDK に仕様上の特性あり。使いこなせれば開発が楽
4
Smart Robotics CO.,LTD. 2016 All rights reserved
⼿法 連携⽅法
サービスを利⽤する
ための認証
サービスを利⽤する
ロジック
適⽤場⾯
各サービスの API
に直接アクセス
Web API にアク
セス
Pepper が⾏う Pepper 側で実装 ミニマムのシステム構
成でシステムを構築し
たい場合。API の機能
を最⼤限利⽤したい場
合
Node-RED を使う Node-RED が⾏う Node-RED 側と
Pepper 側で分散可能
ラピッドプロトタイピ
ングに適したソリュー
ション
サービス提供の
SDK を使う
サービス提供の
SDK をプロジェ
クトに取り込む
Pepper が⾏う(SDK
を使って)
Pepper 側で実装 • Watson Developer
Cloud Python SDK
• Bluemix 全体に関す
る Python での
SDK 提供はない。
IBM Bluemix と Pepper の連携
5
Smart Robotics CO.,LTD. 2016 All rights reserved
⼿法 連携⽅法
サービスを利⽤する
ための認証
サービスを利⽤する
ロジック
適⽤場⾯
各サービスの API
に直接アクセス
Web API にアク
セス
Pepper が⾏う Pepper 側で実装 ミニマムのシステム構
成でシステムを構築し
たい場合。API の機能
を最⼤限利⽤したい場
合
Node-RED を使う Node-RED が⾏う Node-RED 側と
Pepper 側で分散可能
ラピッドプロトタイピ
ングに適したソリュー
ション
サービス提供の
SDK を使う
サービス提供の
SDK をプロジェ
クトに取り込む
Pepper が⾏う(SDK
を使って)
Pepper 側で実装 • Watson Developer
Cloud Python SDK
• Bluemix 全体に関す
る Python での
SDK 提供はない。
IBM Bluemix と Pepper の連携
6
Smart Robotics CO.,LTD. 2016 All rights reserved
Node-RED を使って
Pepper と Bluemix を連携
7
Smart Robotics CO.,LTD. 2016 All rights reserved
Pepper から Web API へのアクセス
• Python 標準ライブラリ or 外部モジュール利⽤
• 標準ライブラリを使った場合実装が煩雑になりがち
• 今回は HTTP アクセスのモジュールとして requests、WebSocket の
モジュールとして liris/websocket-client を利⽤
8
Smart Robotics CO.,LTD. 2016 All rights reserved
サンプルアプリケーション
9
プロジェクト名 概要
01simplehttprequest 単純な HTTP リクエスト
02uploadimage 画像を Node-RED に送る
03uploadaudio ⾳声データを Node-RED に送る
04downloadfile バイナリデータを Node-RED からダウンロードする
05websocket WebSocket で通信をする
06useotherservice Node-RED を介して外部 WebAPI を使う
Smart Robotics CO.,LTD. 2016 All rights reserved
HTTPリクエスト(1)
単純な HTTP リクエスト
10
01simplehttprequest
Smart Robotics CO.,LTD. 2016 All rights reserved
Simple HTTP request ボックス
11
1. プロパティー url に適当な URL を設定して、実⾏結果を確認。(「ログビューア」に結果が出る)
アプリ起動後
ダブルクリック
URL を設定
Smart Robotics CO.,LTD. 2016 All rights reserved
Simple HTTP request ボックス
12
2. スクリプトエディタでスクリプトを確認
Smart Robotics CO.,LTD. 2016 All rights reserved
Simple HTTP request + Node-RED
13
1. Node-RED 側で HTTP リクエストの受け⼝作成
Smart Robotics CO.,LTD. 2016 All rights reserved
Simple HTTP request + Node-RED
14
2. Pepper アプリプロジェクト、Simple HTTP Request 接続先を Node-RED の HTTP request
ノードに
3. 実⾏して結果を確認
Smart Robotics CO.,LTD. 2016 All rights reserved
Pepper のクラウド連携 Tips.1 – Say Text
15
出⼒内容を Pepper に発話させるには Say Text ボックス(⾝振りなし)または Animated Say
ボックの中にある Animated Say Text (⾝振りあり)ボックスを使うのが楽
コピー&ペーストで
発話内容はバーチャルロボットでは「ダイアログ」ビューで確認できる
Smart Robotics CO.,LTD. 2016 All rights reserved
HTTPリクエスト(2)
画像データの送信
(Watson Visual Recognition で画像認識)
16
02uploadimage
Smart Robotics CO.,LTD. 2016 All rights reserved
Watson Visual Recognition で画像認識
17
1. IBM Bluemix コンソール、カタログ Watson の中の Visual Recognition を選択
Smart Robotics CO.,LTD. 2016 All rights reserved
Watson Visual Recognition で画像認識
2. Connect to で Node-RED アプリケーションを選択し [Create] ボタンでサービス作成
3. アプリケーションをリステージして、サービスを有効にする
Smart Robotics CO.,LTD. 2016 All rights reserved
Node-RED で Pepper とのインターフェースを作成
19
1. Node-RED 側で HTTP リクエストで受け⼝、Visual Recognition につなぎ結果をレスポンスで返す
Smart Robotics CO.,LTD. 2016 All rights reserved
Pepper側 - Update file ボックスで画像ファイルを送る
1. 認識させる画像をプロジェクトに取り込む
20
2. Upload file ボックス、ʻupload urlʼ に Node-RED のアクセスポイント、
ʻsrc fileʼ に プロジェクトに保存した イメージファイル、 ʻcontenxt-typeʼ に
image/jpg を設定
Smart Robotics CO.,LTD. 2016 All rights reserved
Pepper側 – 動作確認⽤の接続
3. Upload file ボックスは結果を ʻoutputʼ 出⼒に出⼒する
これを Log ボックスにつなげてることで出⼒内容をログビューアで
⾒る事ができる
21
Smart Robotics CO.,LTD. 2016 All rights reserved
Pepper のクラウド連携 Tips.2 – JSON モジュール
22
Watson Vision Recognition は結果を JSON 形式で返します。
JSON 形式のデータのやり取りには json モジュールの利⽤が便利です。
※ json.loads でデコードされたディクショナリオブジェクトの中の⽂字列は unicode ⽂字列、
⼀⽅ Pepper は⽂字列を str 型で扱う必要があるため、⽂字列のエンコードが必要
例: json ⽂字列 jsonStr から result の内容を取り出す
jsonObj = json.loads(jsonStr)
result = jsonObj[”result”].encode(“utf-8”)
json.loads( JSON形式⽂字列) JSON 形式の⽂字列を python のオブジェクト
(ディクショナリオブジェクト)に変換
json.dumps(ディクショナリオブジェクト) python のオブジェクト
(ディクショナリオブジェクト)をJSON形式の
⽂字列に変換
・・・・・
・・・・・
Smart Robotics CO.,LTD. 2016 All rights reserved
JSON モジュールを⽤いた結果データのパース処理例
1. Vision Reco JSON parts ボックス
Watson Visual Recognition からの結果をパース
23
Smart Robotics CO.,LTD. 2016 All rights reserved
Pepper が撮った写真を画像認識
※この実装を動作確認するためには実機での実⾏が必要です
・ ʻTake Picture custʼ ボックス
(ʻTake Picture custʼ ボックスは
Take Picture ボックスをベースに
撮った写真をプロジェクトフォルダー
内に保存するようにカスタマイズ
したボックスです)
・プロジェクトに html フォルダーを
作りそこに写真を保存するように
すれば、タブレット表⽰と画像認識を
同じ写真で⾏うことが可能です
24
Smart Robotics CO.,LTD. 2016 All rights reserved
HTTPリクエスト(3)
⾳声データの送信
(Watson Speech To Text で⾳声認識)
25
03uploadaudio
Smart Robotics CO.,LTD. 2016 All rights reserved
Speech to Text で⾳声認識
26
1. IBM Bluemix コンソール、カタログ Watson の中の Speech To Text を選択、アプリに追加
Smart Robotics CO.,LTD. 2016 All rights reserved
Node-RED で Pepper とのインターフェースを作成
27
1. Node-RED 側で HTTP リクエストで受け⼝、Speech to Text につなぎ結果をレスポンスで返す
Smart Robotics CO.,LTD. 2016 All rights reserved
1. 認識させる⾳声データをプロジェクトに取り込む
Pepper側 - Update ファイルボックスで⾳声ファイルを送る
2. ʻUpload fileʼ ボックス、upload url に Node-RED のアクセスポイント、src file
に プロジェクトに保存した ⾳源ファイル、ʻcontenxt-typeʼ に audio/wav を設定
3. ʻSay To Textʼ ボックス、または ʻLogʼ ボックスにつなげて結果を確認
※⾳源データは wav 形式でサンプリングレート 16000Hz のモノラルで
ある必要があります。
Smart Robotics CO.,LTD. 2016 All rights reserved
Pepper が録⾳した⾳声を⾳声認識
※この実装を動作確認するためには実機での実⾏が必要です
・ ʻRecord Sound custʼ ボックス
(ʻRecord Sound custʼ ボックスは
ʻRecord Soundʼ ボックスをベースに
録⾳した⾳声をプロジェクトフォルダ
内に保存するようにカスタマイズ
したボックスです)
・ 保存するファイル名をプロパティで
設定(拡張⼦はつけません)
29
Smart Robotics CO.,LTD. 2016 All rights reserved
HTTPリクエスト(4)
データの保存
30
04downloadfile
Smart Robotics CO.,LTD. 2016 All rights reserved
Download file ボックスを使ってHTTPレスポンスをファイルに保存
31
• 例えば Watson Text to Speech が⾳声合成した⾳声データを Pepper
本体に保存、再⽣
Smart Robotics CO.,LTD. 2016 All rights reserved
WebSocket 通信
32
05websocket
Smart Robotics CO.,LTD. 2016 All rights reserved
WebSocket ボックスを使って Node-RED と通信
33
出⼒⼊⼒
⼊⼒
出⼒
形式は ws://サーバー/パス
Node-RED Pepper (Choregraphe)
直結するとおうむ返し
WebSocket を使って、双⽅向、リアルタイムの通信を実現
Smart Robotics CO.,LTD. 2016 All rights reserved
外部サービスを
Node-RED 経由で利⽤
34
06useotherservice
Smart Robotics CO.,LTD. 2016 All rights reserved
Node-RED 経由で Google Cloud Vision API を呼んでみる
35
※:Vision API の有効化、API キーの設定は https://console.developers.google.com/ から
Google Cloud のAPIキー
Smart Robotics CO.,LTD. 2016 All rights reserved
⼿法 連携⽅法
サービスを利⽤する
ための認証
サービスを利⽤する
ロジック
適⽤場⾯
各サービスの API
に直接アクセス
Web API にアク
セス
Pepper が⾏う Pepper 側で実装 ミニマムのシステム構
成でシステムを構築し
たい場合。API の機能
を最⼤限利⽤したい場
合
Node-RED を使う Node-RED が⾏う Node-RED 側と
Pepper 側で分散可能
ラピッドプロトタイピ
ングに適したソリュー
ション
サービス提供の
SDK を使う
サービス提供の
SDK をプロジェ
クトに取り込む
Pepper が⾏う(SDK
を使って)
Pepper 側で実装 • Watson Developer
Cloud Python SDK
• Bluemix 全体に関す
る Python での
SDK 提供はない。
IBM Bluemix と Pepper の連携
36
Smart Robotics CO.,LTD. 2016 All rights reserved
各サービスの API に
直接アクセス
37
Smart Robotics CO.,LTD. 2016 All rights reserved
各サービスの API に直接アクセス利点と⽋点
• 利点
• 各サービスAPI に直接アクセスすることで機能を最⼤限利⽤できる
• 最⼩限のシステム構成でシステム構築
• ⽋点
• リクエスト、レスポンスのデータ整形を Pepper で⾏う必要あり。
• サービスを利⽤するための認証情報を Pepper 側で保持しなければならない
• 安全に、セキュアに認証情報を保存する仕組みが必要
38
Smart Robotics CO.,LTD. 2016 All rights reserved
例:Watson Speech to Text の WebSocket インターフェースを使ってライブSTT
39
• Speech to Text のサービスクレデンシャルを作成
Smart Robotics CO.,LTD. 2016 All rights reserved
例:Watson Speech to Text の WebSocket インターフェースを使ってライブSTT
40
• Pepper アプリサンプル watson_live_stt_sample1
• Watson STT が認識した⾳声をおうむ返しで返します。
STT との通信はサービスとして実装
サービスを起動
サービスを呼び出し
サービスに与えるパ
ラメータ。Watson
STT の userid /
password を設定
※サービスの実装は 次の Watson の記事を参考にしました
https://www.ibm.com/blogs/watson/2016/07/getting-robots-listen-using-watsons-speech-text-service/
Smart Robotics CO.,LTD. 2016 All rights reserved
⼿法 連携⽅法
サービスを利⽤する
ための認証
サービスを利⽤する
ロジック
適⽤場⾯
各サービスの API
に直接アクセス
Web API にアク
セス
Pepper が⾏う Pepper 側で実装 ミニマムのシステム構
成でシステムを構築し
たい場合・API の機能
を最⼤限利⽤したい場
合
Node-RED を使う Node-RED が⾏う Node-RED 側と
Pepper 側で分散可能
ラピッドプロトタイピ
ングに適したソリュー
ション
サービス提供の
SDK を使う
サービス提供の
SDK をプロジェ
クトに取り込む
Pepper が⾏う(SDK
を使って)
Pepper 側で実装 • Watson Developer
Cloud Python SDK
• Bluemix 全体に関す
る Python での
SDK 提供はない。
IBM Bluemix と Pepper の連携
41
Smart Robotics CO.,LTD. 2016 All rights reserved
サービス提供の SDK を使う
42
Smart Robotics CO.,LTD. 2016 All rights reserved
外部モジュールの取り込み⽅
43
Smart Robotics CO.,LTD. 2016 All rights reserved
外部モジュールの取り込み
• ⽅針:
• プロジェクトに任意のフォルダを作成(例:lib)
• フォルダに外部モジュールのファイルを保存
• プロジェクト実⾏時に python のモジュール参照パスに任意のフォルダを追加
• 注意点:
• アプリの実⾏は Pepper 本体で⾏われる。 Pepper 本体は Intel Atom CPU 上
で動く Gentoo Linux。この環境で動くファイルが⼀通りフォルダ内にそろって
いる必要あり。特にネイティブコードを含むモジュールなど注意が必要
• ⼿法:
• ⼿法1:モジュールがアーカイブされているものはこれを⼊⼿
• ⼿法2:pip を使う場合はインストール先を指定、アウトプットを取り込む
• pip install --install-option="--prefix=$PREFIX_PATH" package_name
• ⼿法3:NAOqi バーチャルマシンを使ってインストールイメージを作る
44
Smart Robotics CO.,LTD. 2016 All rights reserved
Watson Developer Cloud の python SDK を使う
• http://www.ibm.com/watson/developercloud/
45
Smart Robotics CO.,LTD. 2016 All rights reserved
サンプルプログラム
46
Smart Robotics CO.,LTD. 2016 All rights reserved
Pepper のタブレット
47
Smart Robotics CO.,LTD. 2016 All rights reserved
タブレットの活⽤
• 活⽤シーン:
• ⾳声認識ではうまくコミュニケーションが取れない場合の補助
• 既存 Web サービス画⾯の活⽤
• 機能:
• 画像の表⽰
• タッチ位置の検出
• HTML ページの表⽰
• ビデオファイルの再⽣(ただし⾳はタブレットからしか出ない)
• プロジェクトのファイルをタブレットに表⽰させることも、外部のリソースを
開くことも可能
48
Smart Robotics CO.,LTD. 2016 All rights reserved
例:プロジェクトのファイルを開く
49
• プロジェクトの中のHTMLフォルダー内のファイルを開くことができる
• 例えばアプリが撮った写真をタブレットに表⽰したい場合、プロジェク
トの HTML フォルダー内に保存すればいい。
• キャッシュに注意
• URL の末尾に ?乱数 でキャッシュブレーク
• イメージの表⽰は ALTabletService.showImage() の代わりに
ALTabletService.showImageNoCache() を使う
Smart Robotics CO.,LTD. 2016 All rights reserved
例:外部ファイルを開く
50
• HTML ページについては標準ではボックスがないので標準ボックスをカ
スタマイズして
• 例えば Show Web View ボックス、スクリプトで showWebView を
呼び出しているところの引数に URL を与える
Smart Robotics CO.,LTD. 2016 All rights reserved
終わり
51

More Related Content

What's hot

TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
Shinichiro Yoshida
 

What's hot (20)

エクストリーム・プログラミング開発におけるUIテスト #yjbonfire
エクストリーム・プログラミング開発におけるUIテスト #yjbonfireエクストリーム・プログラミング開発におけるUIテスト #yjbonfire
エクストリーム・プログラミング開発におけるUIテスト #yjbonfire
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
 
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
 ぼく(たち)のかんがえた最新のJS開発環境 #scripty04 ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
 
OSC福岡 20111203
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203
 
エンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSエンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSS
 
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜
 
Gitで安定マスターブランチを手に入れる
Gitで安定マスターブランチを手に入れるGitで安定マスターブランチを手に入れる
Gitで安定マスターブランチを手に入れる
 
NEDO特別講座 ロボット共通プラットフォーム講習会 (1)
NEDO特別講座 ロボット共通プラットフォーム講習会 (1)NEDO特別講座 ロボット共通プラットフォーム講習会 (1)
NEDO特別講座 ロボット共通プラットフォーム講習会 (1)
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
 
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
 
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
 
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
 
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
 
SPAを実現するために必要な通信技術
SPAを実現するために必要な通信技術SPAを実現するために必要な通信技術
SPAを実現するために必要な通信技術
 
Yahoo!ブラウザーにおける市場環境の分析と戦略化
Yahoo!ブラウザーにおける市場環境の分析と戦略化Yahoo!ブラウザーにおける市場環境の分析と戦略化
Yahoo!ブラウザーにおける市場環境の分析と戦略化
 
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
 
【第6回テックヒルズ】検索基盤開発のための結合テスト環境の自動化
【第6回テックヒルズ】検索基盤開発のための結合テスト環境の自動化【第6回テックヒルズ】検索基盤開発のための結合テスト環境の自動化
【第6回テックヒルズ】検索基盤開発のための結合テスト環境の自動化
 
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
 
ブラウザのPerformance APIの話
ブラウザのPerformance APIの話ブラウザのPerformance APIの話
ブラウザのPerformance APIの話
 

Viewers also liked

ロボット介護機器設計支援ツール、中坊嘉宏(産総研)
ロボット介護機器設計支援ツール、中坊嘉宏(産総研)ロボット介護機器設計支援ツール、中坊嘉宏(産総研)
ロボット介護機器設計支援ツール、中坊嘉宏(産総研)
robotcare
 

Viewers also liked (20)

PepperとWatson音声関連API
PepperとWatson音声関連APIPepperとWatson音声関連API
PepperとWatson音声関連API
 
それでもタブレットと付き合っていく方法 公開版
それでもタブレットと付き合っていく方法 公開版それでもタブレットと付き合っていく方法 公開版
それでもタブレットと付き合っていく方法 公開版
 
20160529 Pepper SDK for Android Studio
20160529 Pepper SDK for Android Studio 20160529 Pepper SDK for Android Studio
20160529 Pepper SDK for Android Studio
 
Pepper DAYS ☆ -Pepperのいる世界-
Pepper DAYS ☆ -Pepperのいる世界-Pepper DAYS ☆ -Pepperのいる世界-
Pepper DAYS ☆ -Pepperのいる世界-
 
Pepperって実際何モノ?
Pepperって実際何モノ?Pepperって実際何モノ?
Pepperって実際何モノ?
 
ニンニンPepperアプリ概要と技術説明
ニンニンPepperアプリ概要と技術説明ニンニンPepperアプリ概要と技術説明
ニンニンPepperアプリ概要と技術説明
 
Wo! vol.38 ロボットの「iPhone」になるか?Pepperの概要
Wo! vol.38 ロボットの「iPhone」になるか?Pepperの概要Wo! vol.38 ロボットの「iPhone」になるか?Pepperの概要
Wo! vol.38 ロボットの「iPhone」になるか?Pepperの概要
 
アトリエ秋葉原 Choregraphe WS#1
アトリエ秋葉原 Choregraphe WS#1アトリエ秋葉原 Choregraphe WS#1
アトリエ秋葉原 Choregraphe WS#1
 
アトリエ秋葉原 Choregraphe WS#3
アトリエ秋葉原 Choregraphe WS#3アトリエ秋葉原 Choregraphe WS#3
アトリエ秋葉原 Choregraphe WS#3
 
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
 
Pepper活用提案書
Pepper活用提案書Pepper活用提案書
Pepper活用提案書
 
作品発表
作品発表作品発表
作品発表
 
Pepperで翻訳ソフトを作ってみた
Pepperで翻訳ソフトを作ってみたPepperで翻訳ソフトを作ってみた
Pepperで翻訳ソフトを作ってみた
 
20151002 Android app for Pepper
20151002 Android app for Pepper 20151002 Android app for Pepper
20151002 Android app for Pepper
 
Mobius from Maplesoft
Mobius from MaplesoftMobius from Maplesoft
Mobius from Maplesoft
 
Pepper tech festival_2014_技術セッション応用
Pepper tech festival_2014_技術セッション応用Pepper tech festival_2014_技術セッション応用
Pepper tech festival_2014_技術セッション応用
 
第一回Pepperハンズオン
第一回Pepperハンズオン第一回Pepperハンズオン
第一回Pepperハンズオン
 
ロボット介護機器設計支援ツール、中坊嘉宏(産総研)
ロボット介護機器設計支援ツール、中坊嘉宏(産総研)ロボット介護機器設計支援ツール、中坊嘉宏(産総研)
ロボット介護機器設計支援ツール、中坊嘉宏(産総研)
 
フィジカルコンピューティング入門 USB-MIDIベースのPepper-Monakaを使う
フィジカルコンピューティング入門  USB-MIDIベースのPepper-Monakaを使うフィジカルコンピューティング入門  USB-MIDIベースのPepper-Monakaを使う
フィジカルコンピューティング入門 USB-MIDIベースのPepper-Monakaを使う
 
Hacking Robotics
Hacking RoboticsHacking Robotics
Hacking Robotics
 

Similar to IBM Blluemix を Pepper とつないでみよう

【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
Developers Summit
 
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説
kumo2010
 
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
Shinpei Ohtani
 

Similar to IBM Blluemix を Pepper とつないでみよう (20)

SORACOM Technology Camp 2018 | A3. IoT×クラウドデザインパターン
SORACOM Technology Camp 2018 | A3. IoT×クラウドデザインパターンSORACOM Technology Camp 2018 | A3. IoT×クラウドデザインパターン
SORACOM Technology Camp 2018 | A3. IoT×クラウドデザインパターン
 
Data API + AWS = (CMS どうでしょう 札幌編)
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)
 
決済金融から始めるデータドリブンカンパニー #yjmu
決済金融から始めるデータドリブンカンパニー #yjmu決済金融から始めるデータドリブンカンパニー #yjmu
決済金融から始めるデータドリブンカンパニー #yjmu
 
決済金融から始めるデータドリブンカンパニー
決済金融から始めるデータドリブンカンパニー決済金融から始めるデータドリブンカンパニー
決済金融から始めるデータドリブンカンパニー
 
Magic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみたMagic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみた
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
XPagesDay2012 3-A Titanium mobileによるモバイルアプリケーションとXPages連携
XPagesDay2012 3-A Titanium mobileによるモバイルアプリケーションとXPages連携XPagesDay2012 3-A Titanium mobileによるモバイルアプリケーションとXPages連携
XPagesDay2012 3-A Titanium mobileによるモバイルアプリケーションとXPages連携
 
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説
 
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
 
WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリWebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリ
 
SORACOM UG 九州 #1 | SORACOM アップデート!! ~since 2016/9/23~
SORACOM UG 九州 #1 | SORACOM  アップデート!! ~since 2016/9/23~SORACOM UG 九州 #1 | SORACOM  アップデート!! ~since 2016/9/23~
SORACOM UG 九州 #1 | SORACOM アップデート!! ~since 2016/9/23~
 
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
 
JAWS-UG Shimane vol.6 | なぜ今IoTなのか?ソラコムとは?
JAWS-UG Shimane vol.6 | なぜ今IoTなのか?ソラコムとは?JAWS-UG Shimane vol.6 | なぜ今IoTなのか?ソラコムとは?
JAWS-UG Shimane vol.6 | なぜ今IoTなのか?ソラコムとは?
 
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
 
Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18
 

IBM Blluemix を Pepper とつないでみよう

  • 1. IBM Bluemix を Pepper とつないでみよう 2016/10/31 株式会社スマートロボティクス Pepper x Bluemixハンズオンワークショップ&デモ
  • 2. Smart Robotics CO.,LTD. 2016 All rights reserved 内容 • IBM Bluemixとの連携その様々な⼿法 • Node-RED を使って Pepper と Bluemix を連携 • HTTPリクエスト(1)単純な HTTP リクエスト • HTTPリクエスト(2)画像データの送信 (Watson Visual Recognition で画像認識) • HTTPリクエスト(3)⾳声データの送信 (Watson Speech To Text で⾳声認識) • HTTPリクエスト(4)データの保存 • WebSocket 通信 • 外部サービスを Node-RED 経由で利⽤ • Bluemix 各サービスAPIに直接アクセス • 例:Watson Speech To Text の Websocket インターフェースを使う • サービス提供の SDK を使う • Watson SDK • Pepper のタブレット 2
  • 3. Smart Robotics CO.,LTD. 2016 All rights reserved IBM Bluemixとの連携 その様々な⼿法 3
  • 4. Smart Robotics CO.,LTD. 2016 All rights reserved Pepper とのサービス連携 • Web API にアクセス or サービス提供のSDK を使う? • Web API にアクセス • REST API が提供されている場合、HTTP リクエストを⽤いてクラウドサービスと連携する • その他、連携のためのプロトコルが公開されている場合、それらを⽤いてクラウドサービス 連携する • WebSocket • MQTT • など • サービス提供の SDK をプロジェクトを使う • Linux で稼働する Python SDK があれば Pepper で利⽤できる可能性⾼い • それぞれの SDK に仕様上の特性あり。使いこなせれば開発が楽 4
  • 5. Smart Robotics CO.,LTD. 2016 All rights reserved ⼿法 連携⽅法 サービスを利⽤する ための認証 サービスを利⽤する ロジック 適⽤場⾯ 各サービスの API に直接アクセス Web API にアク セス Pepper が⾏う Pepper 側で実装 ミニマムのシステム構 成でシステムを構築し たい場合。API の機能 を最⼤限利⽤したい場 合 Node-RED を使う Node-RED が⾏う Node-RED 側と Pepper 側で分散可能 ラピッドプロトタイピ ングに適したソリュー ション サービス提供の SDK を使う サービス提供の SDK をプロジェ クトに取り込む Pepper が⾏う(SDK を使って) Pepper 側で実装 • Watson Developer Cloud Python SDK • Bluemix 全体に関す る Python での SDK 提供はない。 IBM Bluemix と Pepper の連携 5
  • 6. Smart Robotics CO.,LTD. 2016 All rights reserved ⼿法 連携⽅法 サービスを利⽤する ための認証 サービスを利⽤する ロジック 適⽤場⾯ 各サービスの API に直接アクセス Web API にアク セス Pepper が⾏う Pepper 側で実装 ミニマムのシステム構 成でシステムを構築し たい場合。API の機能 を最⼤限利⽤したい場 合 Node-RED を使う Node-RED が⾏う Node-RED 側と Pepper 側で分散可能 ラピッドプロトタイピ ングに適したソリュー ション サービス提供の SDK を使う サービス提供の SDK をプロジェ クトに取り込む Pepper が⾏う(SDK を使って) Pepper 側で実装 • Watson Developer Cloud Python SDK • Bluemix 全体に関す る Python での SDK 提供はない。 IBM Bluemix と Pepper の連携 6
  • 7. Smart Robotics CO.,LTD. 2016 All rights reserved Node-RED を使って Pepper と Bluemix を連携 7
  • 8. Smart Robotics CO.,LTD. 2016 All rights reserved Pepper から Web API へのアクセス • Python 標準ライブラリ or 外部モジュール利⽤ • 標準ライブラリを使った場合実装が煩雑になりがち • 今回は HTTP アクセスのモジュールとして requests、WebSocket の モジュールとして liris/websocket-client を利⽤ 8
  • 9. Smart Robotics CO.,LTD. 2016 All rights reserved サンプルアプリケーション 9 プロジェクト名 概要 01simplehttprequest 単純な HTTP リクエスト 02uploadimage 画像を Node-RED に送る 03uploadaudio ⾳声データを Node-RED に送る 04downloadfile バイナリデータを Node-RED からダウンロードする 05websocket WebSocket で通信をする 06useotherservice Node-RED を介して外部 WebAPI を使う
  • 10. Smart Robotics CO.,LTD. 2016 All rights reserved HTTPリクエスト(1) 単純な HTTP リクエスト 10 01simplehttprequest
  • 11. Smart Robotics CO.,LTD. 2016 All rights reserved Simple HTTP request ボックス 11 1. プロパティー url に適当な URL を設定して、実⾏結果を確認。(「ログビューア」に結果が出る) アプリ起動後 ダブルクリック URL を設定
  • 12. Smart Robotics CO.,LTD. 2016 All rights reserved Simple HTTP request ボックス 12 2. スクリプトエディタでスクリプトを確認
  • 13. Smart Robotics CO.,LTD. 2016 All rights reserved Simple HTTP request + Node-RED 13 1. Node-RED 側で HTTP リクエストの受け⼝作成
  • 14. Smart Robotics CO.,LTD. 2016 All rights reserved Simple HTTP request + Node-RED 14 2. Pepper アプリプロジェクト、Simple HTTP Request 接続先を Node-RED の HTTP request ノードに 3. 実⾏して結果を確認
  • 15. Smart Robotics CO.,LTD. 2016 All rights reserved Pepper のクラウド連携 Tips.1 – Say Text 15 出⼒内容を Pepper に発話させるには Say Text ボックス(⾝振りなし)または Animated Say ボックの中にある Animated Say Text (⾝振りあり)ボックスを使うのが楽 コピー&ペーストで 発話内容はバーチャルロボットでは「ダイアログ」ビューで確認できる
  • 16. Smart Robotics CO.,LTD. 2016 All rights reserved HTTPリクエスト(2) 画像データの送信 (Watson Visual Recognition で画像認識) 16 02uploadimage
  • 17. Smart Robotics CO.,LTD. 2016 All rights reserved Watson Visual Recognition で画像認識 17 1. IBM Bluemix コンソール、カタログ Watson の中の Visual Recognition を選択
  • 18. Smart Robotics CO.,LTD. 2016 All rights reserved Watson Visual Recognition で画像認識 2. Connect to で Node-RED アプリケーションを選択し [Create] ボタンでサービス作成 3. アプリケーションをリステージして、サービスを有効にする
  • 19. Smart Robotics CO.,LTD. 2016 All rights reserved Node-RED で Pepper とのインターフェースを作成 19 1. Node-RED 側で HTTP リクエストで受け⼝、Visual Recognition につなぎ結果をレスポンスで返す
  • 20. Smart Robotics CO.,LTD. 2016 All rights reserved Pepper側 - Update file ボックスで画像ファイルを送る 1. 認識させる画像をプロジェクトに取り込む 20 2. Upload file ボックス、ʻupload urlʼ に Node-RED のアクセスポイント、 ʻsrc fileʼ に プロジェクトに保存した イメージファイル、 ʻcontenxt-typeʼ に image/jpg を設定
  • 21. Smart Robotics CO.,LTD. 2016 All rights reserved Pepper側 – 動作確認⽤の接続 3. Upload file ボックスは結果を ʻoutputʼ 出⼒に出⼒する これを Log ボックスにつなげてることで出⼒内容をログビューアで ⾒る事ができる 21
  • 22. Smart Robotics CO.,LTD. 2016 All rights reserved Pepper のクラウド連携 Tips.2 – JSON モジュール 22 Watson Vision Recognition は結果を JSON 形式で返します。 JSON 形式のデータのやり取りには json モジュールの利⽤が便利です。 ※ json.loads でデコードされたディクショナリオブジェクトの中の⽂字列は unicode ⽂字列、 ⼀⽅ Pepper は⽂字列を str 型で扱う必要があるため、⽂字列のエンコードが必要 例: json ⽂字列 jsonStr から result の内容を取り出す jsonObj = json.loads(jsonStr) result = jsonObj[”result”].encode(“utf-8”) json.loads( JSON形式⽂字列) JSON 形式の⽂字列を python のオブジェクト (ディクショナリオブジェクト)に変換 json.dumps(ディクショナリオブジェクト) python のオブジェクト (ディクショナリオブジェクト)をJSON形式の ⽂字列に変換 ・・・・・ ・・・・・
  • 23. Smart Robotics CO.,LTD. 2016 All rights reserved JSON モジュールを⽤いた結果データのパース処理例 1. Vision Reco JSON parts ボックス Watson Visual Recognition からの結果をパース 23
  • 24. Smart Robotics CO.,LTD. 2016 All rights reserved Pepper が撮った写真を画像認識 ※この実装を動作確認するためには実機での実⾏が必要です ・ ʻTake Picture custʼ ボックス (ʻTake Picture custʼ ボックスは Take Picture ボックスをベースに 撮った写真をプロジェクトフォルダー 内に保存するようにカスタマイズ したボックスです) ・プロジェクトに html フォルダーを 作りそこに写真を保存するように すれば、タブレット表⽰と画像認識を 同じ写真で⾏うことが可能です 24
  • 25. Smart Robotics CO.,LTD. 2016 All rights reserved HTTPリクエスト(3) ⾳声データの送信 (Watson Speech To Text で⾳声認識) 25 03uploadaudio
  • 26. Smart Robotics CO.,LTD. 2016 All rights reserved Speech to Text で⾳声認識 26 1. IBM Bluemix コンソール、カタログ Watson の中の Speech To Text を選択、アプリに追加
  • 27. Smart Robotics CO.,LTD. 2016 All rights reserved Node-RED で Pepper とのインターフェースを作成 27 1. Node-RED 側で HTTP リクエストで受け⼝、Speech to Text につなぎ結果をレスポンスで返す
  • 28. Smart Robotics CO.,LTD. 2016 All rights reserved 1. 認識させる⾳声データをプロジェクトに取り込む Pepper側 - Update ファイルボックスで⾳声ファイルを送る 2. ʻUpload fileʼ ボックス、upload url に Node-RED のアクセスポイント、src file に プロジェクトに保存した ⾳源ファイル、ʻcontenxt-typeʼ に audio/wav を設定 3. ʻSay To Textʼ ボックス、または ʻLogʼ ボックスにつなげて結果を確認 ※⾳源データは wav 形式でサンプリングレート 16000Hz のモノラルで ある必要があります。
  • 29. Smart Robotics CO.,LTD. 2016 All rights reserved Pepper が録⾳した⾳声を⾳声認識 ※この実装を動作確認するためには実機での実⾏が必要です ・ ʻRecord Sound custʼ ボックス (ʻRecord Sound custʼ ボックスは ʻRecord Soundʼ ボックスをベースに 録⾳した⾳声をプロジェクトフォルダ 内に保存するようにカスタマイズ したボックスです) ・ 保存するファイル名をプロパティで 設定(拡張⼦はつけません) 29
  • 30. Smart Robotics CO.,LTD. 2016 All rights reserved HTTPリクエスト(4) データの保存 30 04downloadfile
  • 31. Smart Robotics CO.,LTD. 2016 All rights reserved Download file ボックスを使ってHTTPレスポンスをファイルに保存 31 • 例えば Watson Text to Speech が⾳声合成した⾳声データを Pepper 本体に保存、再⽣
  • 32. Smart Robotics CO.,LTD. 2016 All rights reserved WebSocket 通信 32 05websocket
  • 33. Smart Robotics CO.,LTD. 2016 All rights reserved WebSocket ボックスを使って Node-RED と通信 33 出⼒⼊⼒ ⼊⼒ 出⼒ 形式は ws://サーバー/パス Node-RED Pepper (Choregraphe) 直結するとおうむ返し WebSocket を使って、双⽅向、リアルタイムの通信を実現
  • 34. Smart Robotics CO.,LTD. 2016 All rights reserved 外部サービスを Node-RED 経由で利⽤ 34 06useotherservice
  • 35. Smart Robotics CO.,LTD. 2016 All rights reserved Node-RED 経由で Google Cloud Vision API を呼んでみる 35 ※:Vision API の有効化、API キーの設定は https://console.developers.google.com/ から Google Cloud のAPIキー
  • 36. Smart Robotics CO.,LTD. 2016 All rights reserved ⼿法 連携⽅法 サービスを利⽤する ための認証 サービスを利⽤する ロジック 適⽤場⾯ 各サービスの API に直接アクセス Web API にアク セス Pepper が⾏う Pepper 側で実装 ミニマムのシステム構 成でシステムを構築し たい場合。API の機能 を最⼤限利⽤したい場 合 Node-RED を使う Node-RED が⾏う Node-RED 側と Pepper 側で分散可能 ラピッドプロトタイピ ングに適したソリュー ション サービス提供の SDK を使う サービス提供の SDK をプロジェ クトに取り込む Pepper が⾏う(SDK を使って) Pepper 側で実装 • Watson Developer Cloud Python SDK • Bluemix 全体に関す る Python での SDK 提供はない。 IBM Bluemix と Pepper の連携 36
  • 37. Smart Robotics CO.,LTD. 2016 All rights reserved 各サービスの API に 直接アクセス 37
  • 38. Smart Robotics CO.,LTD. 2016 All rights reserved 各サービスの API に直接アクセス利点と⽋点 • 利点 • 各サービスAPI に直接アクセスすることで機能を最⼤限利⽤できる • 最⼩限のシステム構成でシステム構築 • ⽋点 • リクエスト、レスポンスのデータ整形を Pepper で⾏う必要あり。 • サービスを利⽤するための認証情報を Pepper 側で保持しなければならない • 安全に、セキュアに認証情報を保存する仕組みが必要 38
  • 39. Smart Robotics CO.,LTD. 2016 All rights reserved 例:Watson Speech to Text の WebSocket インターフェースを使ってライブSTT 39 • Speech to Text のサービスクレデンシャルを作成
  • 40. Smart Robotics CO.,LTD. 2016 All rights reserved 例:Watson Speech to Text の WebSocket インターフェースを使ってライブSTT 40 • Pepper アプリサンプル watson_live_stt_sample1 • Watson STT が認識した⾳声をおうむ返しで返します。 STT との通信はサービスとして実装 サービスを起動 サービスを呼び出し サービスに与えるパ ラメータ。Watson STT の userid / password を設定 ※サービスの実装は 次の Watson の記事を参考にしました https://www.ibm.com/blogs/watson/2016/07/getting-robots-listen-using-watsons-speech-text-service/
  • 41. Smart Robotics CO.,LTD. 2016 All rights reserved ⼿法 連携⽅法 サービスを利⽤する ための認証 サービスを利⽤する ロジック 適⽤場⾯ 各サービスの API に直接アクセス Web API にアク セス Pepper が⾏う Pepper 側で実装 ミニマムのシステム構 成でシステムを構築し たい場合・API の機能 を最⼤限利⽤したい場 合 Node-RED を使う Node-RED が⾏う Node-RED 側と Pepper 側で分散可能 ラピッドプロトタイピ ングに適したソリュー ション サービス提供の SDK を使う サービス提供の SDK をプロジェ クトに取り込む Pepper が⾏う(SDK を使って) Pepper 側で実装 • Watson Developer Cloud Python SDK • Bluemix 全体に関す る Python での SDK 提供はない。 IBM Bluemix と Pepper の連携 41
  • 42. Smart Robotics CO.,LTD. 2016 All rights reserved サービス提供の SDK を使う 42
  • 43. Smart Robotics CO.,LTD. 2016 All rights reserved 外部モジュールの取り込み⽅ 43
  • 44. Smart Robotics CO.,LTD. 2016 All rights reserved 外部モジュールの取り込み • ⽅針: • プロジェクトに任意のフォルダを作成(例:lib) • フォルダに外部モジュールのファイルを保存 • プロジェクト実⾏時に python のモジュール参照パスに任意のフォルダを追加 • 注意点: • アプリの実⾏は Pepper 本体で⾏われる。 Pepper 本体は Intel Atom CPU 上 で動く Gentoo Linux。この環境で動くファイルが⼀通りフォルダ内にそろって いる必要あり。特にネイティブコードを含むモジュールなど注意が必要 • ⼿法: • ⼿法1:モジュールがアーカイブされているものはこれを⼊⼿ • ⼿法2:pip を使う場合はインストール先を指定、アウトプットを取り込む • pip install --install-option="--prefix=$PREFIX_PATH" package_name • ⼿法3:NAOqi バーチャルマシンを使ってインストールイメージを作る 44
  • 45. Smart Robotics CO.,LTD. 2016 All rights reserved Watson Developer Cloud の python SDK を使う • http://www.ibm.com/watson/developercloud/ 45
  • 46. Smart Robotics CO.,LTD. 2016 All rights reserved サンプルプログラム 46
  • 47. Smart Robotics CO.,LTD. 2016 All rights reserved Pepper のタブレット 47
  • 48. Smart Robotics CO.,LTD. 2016 All rights reserved タブレットの活⽤ • 活⽤シーン: • ⾳声認識ではうまくコミュニケーションが取れない場合の補助 • 既存 Web サービス画⾯の活⽤ • 機能: • 画像の表⽰ • タッチ位置の検出 • HTML ページの表⽰ • ビデオファイルの再⽣(ただし⾳はタブレットからしか出ない) • プロジェクトのファイルをタブレットに表⽰させることも、外部のリソースを 開くことも可能 48
  • 49. Smart Robotics CO.,LTD. 2016 All rights reserved 例:プロジェクトのファイルを開く 49 • プロジェクトの中のHTMLフォルダー内のファイルを開くことができる • 例えばアプリが撮った写真をタブレットに表⽰したい場合、プロジェク トの HTML フォルダー内に保存すればいい。 • キャッシュに注意 • URL の末尾に ?乱数 でキャッシュブレーク • イメージの表⽰は ALTabletService.showImage() の代わりに ALTabletService.showImageNoCache() を使う
  • 50. Smart Robotics CO.,LTD. 2016 All rights reserved 例:外部ファイルを開く 50 • HTML ページについては標準ではボックスがないので標準ボックスをカ スタマイズして • 例えば Show Web View ボックス、スクリプトで showWebView を 呼び出しているところの引数に URL を与える
  • 51. Smart Robotics CO.,LTD. 2016 All rights reserved 終わり 51