##ADEアカウントの取得
https://www.aldebaran.com/ja
上記のサイトでアカウントを取得してください。
pepper持っている人は、すでにお持ちだと思いますが。
ない人は、取得おねがいします。
##デベロッパーズプログラムへの参加
https://community.aldebaran.com/ja/developerprogram
デベロッパーズプログラムに登録しましょう。
##SDKの入手
https://community.aldebaran.com/en/resources/software
現在の環境に合うSDKをダウンロードします。
Python 2.7 SDK バージョン名 OS名 bit数
例:
僕の環境は、ubuntu 64bit でpepperのバージョンが2.4.2なので、
[ Python 2.7 SDK 2.4.2 Linux 64 ]という感じです。
##python 環境の構築(オプショナル)
python環境の構築については、オプションです。なぜなら、
Windows以外のOSはデフォルトで本記事に必要なバージョンSDKがインストールされているからです。
すでに機械学習や科学計算をするために python 3.x 系やその他の環境を構築している方は、
pyenvとか入れていると思いますが、下記に記事をリンクしておきます。
##python naoqi & qi モジュールのインストール
以下、オフィシャルの資料
Python SDK - Installation Guide
ターミナルでの作業になるので、環境を定義します。
エディタ:emacs(vi, nanoとかあると思います。)
OS:Mac(linuxでもほぼ同じ)
上記のサイト&方法で、pynaoqi-python2.7-2.4.2.26-mac64をダウンロードしてきます。
zip形式だと思うので、好きなディレクトリに解凍します。
端末(terminal)を立ち上げて、各種エディタで、~/.bash_profileに以下を追記します。
$ export PYTHONPATH=${PYTHONPATH}:/path/to/python-sdk
$ export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:/path/to/python-sdk
/path/to/python-sdk の部分はさすがにそのままではなくて、さっきダウンロードして解凍してきた。
ディレクトリへのパスです。
端末(terminal)を立ち上げて、import 確認
$ source .bash_profile
$ python
>>> import qi
>>> import naoqi
何も問題がなければ次へ。
Windowsの方におすすめのサイト
Apple(日本)
##qibuildのインストール
qiBuild documentation - Getting started
・用意するもの
1.cmakeのbinへのパス
$ which cmake
とかで取得してください。
・pip でインストールする。
$ sudo pip install qibuild
$ qibuild config --wizard でconfigファイルを作成する
一番最初は、cmakeのbinへのパスを求められますが、それ以外は、1を選んでおけばベター。
・動作確認
$ qibuild --version
qibuild version 3.10.1
Using Python code from /usr/local/lib/python2.7/dist-packages
Using CMake code from /usr/local/share/cmake
##サービスを作ってみる
Python - How to write a qimessaging service
やっと本題です。ローカルからpepperのアプリやダイアログの^pCallやcallなどで使える
サービスをレジストしましょう。
import qi
import sys
class MyFooService:
def __init__(self, session):
print "hello,"
def bang(self):
return "world"
def main():
# Create and Start the Application
app = qi.ApplicationSession(sys.argv)
app.start()
# Get the Session
session = app.session
# Create the Service
mf = MyFooService(session)
# Register It
session.registerService("MyFooService", mf)
# Run the Application
app.run()
if __name__ == "__main__":
main()
##ローカル環境からLAN上のpepperにレジストする
はい、前の項で無事サービスの大本になるpythonファイルが出来ましたね。
あとは、レジストするだけです。以下必要なもの。
1.pepper ip or ドメイン(192.168.0.xとかpepper1.localとか)
2.実機pepper ssh password
先ほど作ったファイルののディレクトリへ移動します。
$ cd /path/to/sakki/no/faile/myfooservice.py
$ python myfooservice.py --qi-url=tcp://pepper1.local (あるいは、192.168.0.11とか)
とか言ってくれるかな、と思うんですが、いかがでしょうか。
##実機で動作確認
serviceなんで、実機の中で使えるか検証してみましょう。
以下必要なもの
1.pepper ip or ドメイン(192.168.0.xとかpepper1.localとか)
2.実機pepper ssh password
ssh でログインしましょう。
$ ssh nao@pepper.local
サービスが正しくレジストされているかどうか確認しましょう。
$ qicli info MyFooService
$ qicli call MyFooService.bang
終わり
以上、完了です。次回は、サービスを実際のアプリケーションに組み込んで動かす方法を書こうかなと思います。
ご不明な点とうございましたら、コメント欄までおねがいします。