15
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pepper / Subscribe to EventとRaise Eventについて

Last updated at Posted at 2015-02-26

PepperのALMemory周りのメモ
Choregrapheに用意されているBOXのみでALMemoryにデータを格納、
通知を受け取って他のボックスに更新を適用させるサンプル。

#1. 目的
Choregrapheにデフォルトで用意されているボックスのみを使って、
イベントの通知によって別のボックスの動作を促せないか、、、

#2. 結果
Subscribe to EventというボックスとRaise Eventというボックスを利用することにより実現出来る!
(正確にはSubscribe to Eventを利用しなくてもできます)

#3. 概要
Screen-Shot-2015-02-26-at-11.12.57-AM.jpg

rootObserverという名前のボックスとNotificationという名前のボックスを配置

  • Observerボックスにはイベント通知を受け取った後の処理
  • Notificationボックスにはイベント通知をするための処理

##3-1. Observerボックス

root > Observer

Screen-Shot-2015-02-26-at-11.10.52-AM.jpg

Observerボックスの中身には**Subscribe to Event**と確認用にSay Textを配置。

Screen Shot 2015-02-26 at 12.24.20 PM.png

Subscribe to Eventのパラメーターはそのままで。

##3-2. Notificationボックス

root > Notification

Screen Shot 2015-02-26 at 3.13.14 PM.png

Notificationボックスの中身にはPepperくんに挨拶する内容によって、
**Raise Event**に渡る値が変化するようにボックスを配置

動作の流れ

  1. Speech Reco.によってPepperくんに音声をインプット
  2. Switch Caseを使い聞いた言葉により条件分岐してMulti Editで値の調節
  3. Raise Eventを使って受け取った値を通知(重要)

Screen Shot 2015-02-26 at 12.39.02 PM.png

Raise Eventのパラメーターもそのままで。

##3-3. Subscribe to EventとRaise Eventの簡単な説明

Raise Eventというボックスに値を送ることにより、
パラメーターで設定したMyApplication/MyDataというイベントの
値が更新され、Subscribe to Eventに通知されます。
簡単!!

##3-4. 実行結果

Screen-Shot-2015-02-26-at-3.13.45-PM_2.jpg

先ほど組んだアプリを起動して、Dialogウィンドウに「おはよう」と打ってエンターを押すと、
「今は朝なんですね」と返ってきました。

##3-5. アプリの流れ

(Pepper実機では無いのでSpeech Reco.でエラーが起きてます、、、)
Screen-Shot-2015-02-26-at-3.13.45-PM.jpg

Pepperに「おはよう」と話しかけることにより、
Notificationボックス内のSpeech Reco.が反応、Raise Eventに値が渡ります。

Screen-Shot-2015-02-26-at-3.14.16-PM.jpg

Observerボックス内のSubscribe to EventALMemoryの更新通知を受け取り
値をSay Textに吐き出します。

##3-6. こっちの方がスマート、、、?

Screen Shot 2015-02-26 at 3.36.34 PM.png

Add event from ALMemoryの吹き出しが付いてる下の(+)をクリック。

Screen Shot 2015-02-26 at 3.39.15 PM.png

MyApplication/MyData(Raise Eventのパラメーターにセットしたイベント名)
のチェックボックスにチェックを入れる。

Screen-Shot-2015-02-26-at-3.33.34-PM.jpg

すると、**MyApplication/MyData**という新しいインプットが増えているので、
ここからSay Textに繋ぐ。

Screen-Shot-2015-02-26-at-3.35.20-PM.jpg

これでも先ほどと同じ動作をします。
こちらのほうが少しアプリがスマートになるのかな。
(内部的にはどのような処理の違いがあるのか分かりませんが、、、)

#4. まとめ
他の方法でもこのアプリの実装は可能ですが、
Notification(インプット)とObserver(アウトプット)を分けることで、
簡単なアプリならごちゃごちゃせずに組めます。

15
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?