今回からはQISDKのAPIについて勉強していきたいと思います。
#Autonomous Abilities
目的
- Pepperを常に活動状態にしておく。
- 細かい実装抜きで、Pepperが生きているように知覚してもらう。
動作原理
Autonomous Abilityは、Pepperのバックグラウンドにおいて自律的に動作します。
Autonomous Abilityの種類
Autonomous Ability | タイプ | 条件 |
---|---|---|
BackgroundMovement | 受動 | 待機時間 |
BasicAwareness | 反応 | 何らかの刺激に反応 |
AutonomousBlinking | 人間に反応 |
Holder holder = HolderBuilder.with(qiContext)
.withAutonomousAbilities(AutonomousAbilitiesType.BACKGROUND_MOVEMENT)
.build();
holder.async().hold();
holder.async().release();
優先順位
Pepperにおける優先順位は、ブリンキング(待機時間での目のLEDの点滅)、人の検知、SayやAnimateといったアクションの順に高くなります。
参考
- アニメーションの終わりでPepperに姿勢をキープさせたい場合は、Holderを用いてBackgroundMovementとBasicAwarenessをholdする必要があります。
- 発話中、聞き取り中はボディーランゲージが自動で動作します。その際にスクリーンを固定したい場合は、SayやListenのボディーランゲージを無効にしてください。より詳しく知りたい方はSayやListenを参照してみてください。
- ChatとQiChatbotの発話・聞き取りを使用している場合、発話中のボディーランゲージはQichatbotで、聞き取り中のボディーランゲージはChatでそれぞれ無効にすることができます。
#AutonomousBlinking
Pepperは誰かを見ている時、あるいは対話型アプリケーションの時など、時々目のLEDが点滅します。これにより、ユーザーにとって不快な印象を与えず、Pepperが自然に瞬きしているように見せる効果が期待できるようです。なお、目のLEDがピンク色の時は、新規ユーザーを見ている時です。
#BackgroundMovement
BackgroundMovementによって呼吸に似た動きを実行することで、Pepperはまるで生きているかのような振る舞いが可能です。
BackgroundMovementは優先順位の高いタスクのない際、Pepperが自律的に動かすことが可能な本体上部を動かしています。GoToのような他のアクションが割り込んできた際は、バックグラウンドでそのアクションが終了するのを待機する仕組みになっています。
#BasicAwareness
BasicAwarenessによって、Pepperは周辺の物質や人の検知ができるようになります。人検知だけでなくバンパーや手への接触によっても頭部及び体が刺激の方を向くようになっています。また刺激を検知した直後など、そうした人を対象にトラッキングを行うことも可能です。LocalizeAndMapとLocalizeを使用し周辺の地図情報を作成することで、全方位の人検知ができます。