Pepperアプリ開発で非常に重要なALProxyについてです。
PythonでPepperの機能にアクセスするために
naoqiのALProxyというモジュールを使用します。
ALProxyから使用できる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")
コメントを残す