condesign / Pixabay

ブラウザからPepper(naoqi)をいじる。

ブラウザからペッパー(naoqi)をいじる方法

この記事は CAMPHOR- Advent Calendar 2015 28日目の記事です.(延長戦)

どうも。前回クソ記事を書いて(怒られて)反省をしている三上です。
今回もこれで怒られる気がしてビクビクしながら書いてます。

今回はpepperに触る機会があったので、それをブラウザから操作してみたという記事です。

ペッパーに用意されているAPI

そもそもペッパーにはどのようなAPIが用意されていて、どのようにいじれるのか。

Pepperにはnaoqiというシステムが組み込まれており、linuxの上にnaoqiが起動してnaoqiがハードウェア等を制御しています。

組み込むアプリでは、主にPython(2.7系列)が使われておりその他にもC++が使うことができます。
※Choregraphのボックスは基本Pythonで書かれてます

どのようなAPIがあるか例を上げると、

ALSystem

Applicationの切り替えやロボットネームの取得、再起動等のシステム周りの事がいじれるAPI

PackageManager

パッケージのインストールや削除等ができるAPI

ALDialog

ダイアログ(受け答えするやつ)のAPI

ALAudioDevice

ロボットの音量の取得変更だったり音を鳴らしたりするAPI

その他にもたくさんありますが、一旦紹介はここまでで。
https://cloud.aldebaran-robotics.com/naoqidoc/2-4/naoqi/index.html

ブラウザからペッパーをイジる

まずライブラリのダウンロードをしましょう。

aldebaranのGithubにjsのライブラリーがあるのでDLしてください。
https://github.com/aldebaran/libqi-js

このgitのlibsフォルダにある1.0の方を使用します。
2.0の方はまだペッパーが対応していないようです。

次に、HTMLを用意します。

qimessaging.jsとスクリプトを読み込みましょう。

次に接続用のスクリプト。
基本的には
http://qiita.com/Atelier-Akihabara/items/716e88b306db12751c9b
ここのスクリプトの改良です。

pepperAddressを各自のペッパーのアドレスにしてください。

これでコンソールに接続しましたと出ればペッパーへの接続は完了です。

では次はAL◯◯シリーズのAPIを呼んでみましょう。

今回は、上で紹介したALSystemをブラウザからいじれるようにしたいと思います。

では先ほどのmain.jsに記述を追加していきましょう。

これでalsystemにALSysytemのAPIが入りました。

QiSession.serviceはPromiseで書かれているので、非同期で取得して、Doneで取得ができます(正しくはjQueryの擬似Promise)

ここまでできればあとはAPIを叩くだけです。

https://cloud.aldebaran-robotics.com/naoqidoc/2-4/naoqi/core/alsystem-api.html#alsystem-api

今回はALSysyteのリファレンスにあるALSystemProxy::rebootでPepperを再起動させましょう。

叩き方は簡単。先ほど作ったalsystemに関数が用意されているので叩くだけです。

HTMLにボタンを追加しましょう。

ボタンを押してみましょう。
いかがでしょうか。Pepper再起動しましたでしょうか。

これで一通りいじれるようになったはずです。

最後に

他もAPIもsession.serviceの引数を変えるだけで叩くことができます。

ALTextToSpeech.sayでペッパーにブラウザからお喋りさせたり。
ALUserInfoを使って家族の情報を見れるようにしたり
ALMemoryを使って、WEB上でメモリウォッチャーを作ったり。

様々な事ができるようになると重います。

後日qimessaging.jsをつかった、ペッパー用のデバッグツールを公開したいとおもっているのでお楽しみに!!

明日は@cotton_oriの記事です

About kakenn

コメントを残す