Pepperアプリ開発 ALProxyについて

Pepperアプリ開発で非常に重要なALProxyについてです。

PythonでPepperの機能にアクセスするために
naoqiのALProxyというモジュールを使用します。

ALProxyから使用できるAPIについては
ロボットスタートさんが日本語ドキュメントをまとめてくれています。

NAOqi / コレグラフ APIモジュール一覧

このALProxyを使用することで、
Pythonのスクリプトやタブレットに表示しているWebviewから
Pepperの各機能にアクセスすることができます。

実際のコードで使用するためには
ALProxy(“ALTextToSpeech”)
のようにしてALProxyのinitの引数に使いたいモジュールを文字列で指定します。

Pythonで使用する場合:


def onInput_onStart(self):
    tts = ALProxy("ALTextToSpeech")
    tts.say("Hello")

jsで使用する場合:
htmlでqimessagingを読み込む

<script src="/libs/qimessaging/1.0/qimessaging.js"></script>


var session = new QiSession();
session.socket().on('connect', function () {
    session.service("ALTextToSpeech").done(function (tts) {
        tts.say("Hello.");
    }).fail(function (error) {
        console.log("An error occurred:", error);
    });
}).on('disconnect', function () {
    console.log('QiSession disconnected!');
});

 

 

詳しくは公式のドキュメントにも書いてあります。

 

jsやPythonから直接Pepperの機能を呼び出すだけでなく、
ALMemory.raiseEventや
ALMemory.subscribeToEventを使用することで、
WebviewとPythonでデータのやり取りを行うことも可能です。

また、ALProxyのinitの第2引数にIPアドレス、第3引数にポート番号を入れることで、
指定したIPアドレスのロボットのALProxyを呼び出すこともできます。


tts = ALProxy("ALTextToSpeech", "IP of your robot", 9559)
tts.say("Hello")

コメントを残す

メールアドレスが公開されることはありません。