LoginSignup
9
9

More than 5 years have passed since last update.

NAOqi Python 開発環境の確認

Posted at

はじめに

続きです。とりあえず、Pepper 実機へ接続する確認をまだしていなかったので試してみました。
今までは興味から C++ で試していましたが、今回は手軽な Python にしてみました。

Pepper 実機で実行

実行4 (失敗)

自分の PC から API で Pepper に接続して実行します。

hello.py
#!/usr/bin/python

from naoqi import ALProxy

tts = ALProxy("ALTextToSpeech", "192.168.3.58", 9559)
tts.say("Hello")
$ ./hello.py
[INFO ] Starting ALNetwork
[INFO ] NAOqi is listening on 127.0.0.1:54010
Traceback (most recent call last):
  File "./hello.py", line 5, in <module>
    tts = ALProxy("ALTextToSpeech", "192.168.3.58", 9559)
  File "/path/to/pynaoqi-python-2.7-naoqi-1.14-mac64/naoqi.py", line 282, in __init__
    inaoqi.proxy.__init__(self, args[0], args[1], args[2])
  File "/path/to/pynaoqi-python-2.7-naoqi-1.14-mac64/inaoqi.py", line 276, in __init__
    this = _inaoqi.new_proxy(*args)
RuntimeError:   ALNetwork::getModuleByName
        failed to get module ALTextToSpeech http://192.168.3.58:9559

エラーでした。

Pepper 側のログにはこんなのが出ていたようなので、接続はしたけど「failed to get module ALTextToSpeech」なのでしょう。

Pepper102 [0] /var/log/naoqi $ tail -f tail-naoqi.log
[W] 1419836877.127194 3839 qimessaging.transportsocket: Incorrect magic from 192.168.3.4, disconnecting (expected 1118690882, got 1414745936).

実行5 (成功)

自分の PC から SSH で Pepper に接続し、Pepper 内で API を実行します。

$ ssh nao@192.168.3.58
Password:

Pepper102 [0] ~ $ python
Python 2.7.3 (default, Jun 13 2014, 15:08:05)
[GCC 4.5.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import naoqi
>>> from naoqi import ALProxy

まずは localhost 指定で実行してみます。

>>> tts = ALProxy("ALTextToSpeech", "localhost", 9559)
[I] 7615 qi.eventloop: Creating event loop while no qi::Application() is running
[I] 7615 qimessaging.session: Session listener created on tcp://0.0.0.0:0
[I] 7615 qimessaging.transportserver: TransportServer will listen on: tcp://127.0.0.1:42881
[I] 7615 qimessaging.transportserver: TransportServer will listen on: tcp://198.18.0.1:42881
[I] 7615 qimessaging.transportserver: TransportServer will listen on: tcp://192.168.3.58:42881
>>> tts.say("Hello")

Pepper が「Hello」と言いました。

続けて IP アドレス指定で実行してみます。

>>> tts = ALProxy("ALTextToSpeech", "192.168.3.58", 9559)
[I] 7994 qimessaging.session: Session listener created on tcp://0.0.0.0:0
[I] 7994 qimessaging.transportserver: TransportServer will listen on: tcp://127.0.0.1:43065
[I] 7994 qimessaging.transportserver: TransportServer will listen on: tcp://198.18.0.1:43065
[I] 7994 qimessaging.transportserver: TransportServer will listen on: tcp://192.168.3.58:43065
>>> tts.say("Hello")

Pepper が「Hello」と言いました。

感想

  • 実行4 の失敗の理由がわかる方、ぜひ教えてください。
9
9
2

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
9
9