Python SDKによるsay hello (Pepper TechFes技術セッション)

2014/9/20にベルサール渋谷ガーデンでおこなわれた [Pepper Tech Festival 2014](http://www.softbank.jp/robot/special/techfes/) の技術セッションで紹介された作例を紹介します。

#概要

技術セッションでは、Choregraphe以外のPepperへのアクセス方法の1つとして、Python SDKの使い方について紹介しました。このチュートリアルでは、その内容についてまとめています。

###Pepper Tech Festival 2014動画
以下のリンクで、該当箇所から再生できます。

[![Pepper Tech Festival 2014 〜 技術セッション（応用篇）](http://img.youtube.com/vi/MjaOWfYWBjA/0.jpg)](http://www.youtube.com/watch?v=MjaOWfYWBjA&t=42m43s)

Python SDK(NAOqi for Python)は、PepperをリモートコントロールするためのSDKです。
このSDKを使って、自身のPC上でPythonスクリプトを実行することで、ネットワークを介してPepperを任意に操作することができます。

このAPIへはChoregrapheの[Pythonボックス](http://qiita.com/Atelier-Akihabara/items/f6a05ca14be786f9a94c)中のコードから利用するのと同じようにアクセスすることができます。ここでは、NAOqi for Pythonのインストール方法と、簡単な動作確認方法について説明します。

#Python SDKのインストール

NAOqi for Pythonの動作にはPythonが必要です。インストールしたいマシンのOSに応じたPython環境を用意してから、NAOqi for Pythonをインストールしてください。
NAOqi for Pythonのインストーラは、Pepper TechFesで配布されたUSBメモリの `SDKs\RemotePrograming\PythonSDK` にあります。

インストール手順の詳細は、SDKドキュメントの NAOqi Developer Guide > Getting Started > Python SDK Install Guide を参考にしてください。

OS別にPython, NAOqi for Pythonのインストール方法と、動作確認のためのPythonインタプリタの起動方法を説明していきます。

##Windowsの場合

###Pythonのインストール

はじめに、Python実行環境をインストールします。
https://www.python.org/downloads/windows/ からPython2.7系の32bitインストーラをダウンロードし、実行してください。

###NAOqi for Pythonのインストール

USBメモリ内 `PythonSDK` フォルダにあるWindows用インストーラ `pynaoqi-python2.7-(version).win32.exe` を実行してください。

###Pythonインタプリタの実行

Python2.7のインストーラによりスタートメニューに登録される `Python (command line)` を実行するか、インストールされた `python.exe` をコマンドラインから実行してください。


##Macの場合

###Pythonのインストール

Pythonは**OSX標準添付のPython 2.7**を利用してください。
Apple以外が提供しているもの、たとえばPython.orgからダウンロードしてきたPythonは使わないようにしてください。

###NAOqi for Pythonのインストール

USBメモリ内 `PythonSDK` ディレクトリ内にあるtar.gzアーカイブ `pynaoqi-python2.7-(version)-mac64.tar.gz` を適当なファイルに展開してください。

###Pythonインタプリタの実行

tar.gzを展開したディレクトリのパスを `PYTHONPATH` 環境変数と `DYLD_LIBRARY_PATH` 環境変数に追加して、 `python` コマンドを実行します。

たとえば、tar.gzの展開先が `/Users/(自分のユーザ名)/Documents/` で、そこに `pynaoqi-python2.7-2.0.5.3-mac64` というディレクトリが作成されている場合、ターミナルから以下のように実行することで、SDKが使用可能な状態でPythonが起動します。

```
$ export PYTHONPATH=${PYTHONPATH}:/Users/(自分のユーザ名)/Documents/pynaoqi-python2.7-2.0.5.3-mac64
$ export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:/Users/(自分のユーザ名)/Documents/pynaoqi-python2.7-2.0.5.3-mac64
$ python
```

なお、上記2つの `export` コマンドを `.bash_profile` ファイルに記述などしておくなどすると、これらの環境変数がシェル利用時に自動的に設定されるようになります。

#簡単なスクリプトを実行してみる

このセッションでは、`ALTextToSpeech` API(Say Textボックスの実装に利用されているAPIです) に対して、リモートからしゃべる指示をおこなってみています。
たとえば、実行したPythonインタプリタ上で、以下のスクリプトを入力、実行してみてください。

```py
from naoqi import ALProxy

tts = ALProxy("ALTextToSpeech", "<PepperのIP>", 9559)
tts.say("こんにちは")
```

PepperのIPの確認方法は、 [PepperのIPアドレスを知る方法](http://qiita.com/Atelier-Akihabara/items/c5f57358a7b333eef397#4-4) などを参考にしてください。
インストールが正常におこなわれていれば、「こんにちは」とPepperがしゃべります。


> ####![info.png](https://qiita-image-store.s3.amazonaws.com/0/54394/ed7863bd-4c2e-7710-58db-0e38a4f26959.png) (注意)環境による日本語の扱い
> 上記例では日本語 "こんにちは" を例に説明していますが、インタプリタのデフォルトのエンコーディングなどの設定により正しく動作しない可能性があります。(上記はMacで動作確認していますが、Windowsではそのままでは動作しないようです)
> 予期した動作をしない場合、 "こんにちは" の代わりに "hello" などと入力してみて、動作を確認してみてください。


NAOqi for Pythonを利用したプログラミングの詳細は、SDKドキュメントの NAOqi Developer Guide > Programming > Python SDK を参照してください。


このようにして、Choregrapheを使ってアプリケーションをPepperにアップロード、実行する方法以外に、PCからリモートでPepperに対してAPIアクセスをおこなうことも可能です。