22
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker+IPython NotebookでPepperくんリモートコントロール環境構築

Posted at

色々めぐりあわせがあってPepperくんをさわる機会が増えてきました。
Pepperくんでプログラムを動作させるには、Choregrapheというビジュアルプログラミング環境を用いてアプリケーションを作成、Pepperくんにデプロイして実行する方法のほか、NAOqi for Pythonなどを用いて、コンピュータからリモートでPepperくんを制御する方法もあります。

Choregrapheを使った方法は非常に直感的でよいのですが、APIを直接呼び出すなど、試行錯誤的なフェーズでは、 インタプリタ的に関数を逐次実行できて、かつ画像などビジュアル環境で確認できるNAOqi for Python環境 があれば重宝するはず・・・ということでIPython NotebookでNAOqi for Python環境を構築してみたのでそのメモ。

必要なもの

  • NAOqi for Python ... Pepper Tech Fes 2014で配布されたもの(pynaoqi-python2.7-2.0.5.3-linux64.tar.gz)
  • Docker環境 ... ここではローカルに構築したVagrant + boot2docker環境を使う(boot2dockerでIPython Notebook環境構築参照)
    • NAOqi for Pythonは、PepperくんのTCP 9559ポートを使って接続するので、Pepperくんにネットワーク的にたどり着けるところに環境を構築する必要あり

環境構築

NAOqi for PythonはPython 2.7で動作するので、Python 2.7.6が入っているIPython Notebookイメージ https://registry.hub.docker.com/u/unfairbanks/docker-ipython-notebook/ をベースにイメージをビルドしてみることにします。

用意するファイル

以下のファイルをDocker環境上の適当なディレクトリに準備します。

  1. Dockerfile
    以下の内容を Dockerfile として保存しておく。NAOqiドキュメントではPILを使った例を紹介しているので、Pillowも pip install する。

    Dockerfile
    FROM unfairbanks/docker-ipython-notebook
    MAINTAINER yacchin1205 <http://twitter.com/yacchin1205/>
    
    RUN apt-get update
    RUN apt-get install -y libjpeg-dev zlib1g-dev
    RUN pip install Pillow
    
    RUN mkdir /pynaoqi
    ADD ./pynaoqi-python2.7-2.0.5.3-linux64.tar.gz /pynaoqi/
    
    ADD ./run.sh /
    
  2. pynaoqi-python2.7-2.0.5.3-linux64.tar.gz
    Pepper Tech Fes 2014で配布されたUSBメモリ内にあるファイルをコピーしておく。

  3. run.sh
    PYTHONPATH にNAOqi for Pythonを展開したディレクトリを含めるような run.sh を用意しておく。

    run.sh
    #! /bin/bash
    export PYTHONPATH=$PYTHONPATH:/pynaoqi/pynaoqi-python2.7-2.0.5.3-linux64
    
    ipython notebook --no-browser --ip=0.0.0.0 --port=8080 --notebook-dir=/tmp/notebook
    

ビルド

以下のコマンドでビルドできる。

docker@boot2docker:/vagrant/pepper/ipython-pythonsdk$ docker build -t test_dev/docker-ipython-notebook-pynaoqi .

ビルド成功すると、test_dev/docker-ipython-notebook-pynaoqi というイメージができる。

なお、boot2docker環境でbuild中にarchive.ubuntu.comが解決できないとかエラーが出たので、 https://github.com/boot2docker/boot2docker-cli/issues/102 を参考に resolv.conf を修正して対応。

使ってみる

コンテナの実行

作成したイメージは以下のコマンドで実行できる。

docker@boot2docker:/vagrant/pepper/ipython-pythonsdk$ docker run -d -p 8080:8080 -v /vagrant/notebook:/tmp/notebook test_dev/docker-ipython-notebook-pynaoqi

ここでは、 /vagrant/notebook (Windowsホストの C:\test\boot2docker-vboxsf\notebook ) をコンテナ内で /tmp/notebook ディレクトリとして見えるようにしている。

起動したIPython Notebook上で遊ぶ

実行後、 http://Docker環境:8080 にブラウザでアクセスすると IPython Notebookを開くことができる。
このIPython Notebook環境にはNAOqi for Pythonがインストールされた状態になっているので、

from naoqi import ALProxy
IP = "PepperのIPアドレス"
PORT = 9559
motion = ALProxy("ALMotion", IP, PORT)
motion.angleInterpolation(["HeadYaw", "HeadPitch"], [-0.2, -0.2], [1, 1], False)

とかやって首を動かしたり、

Notebook環境なので、こんな感じでPepperのカメラ画像の処理など、実際に得られた画像を確認しながらスクリプトを検討したりも可能。

ipython-notebook.png

頭のカメラで画像をとったり、デプスカメラの画像をとったり。ネタがあったら貼っていきます。

22
22
0

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?