初期設定が終わっているNAOにiBotNaoをインストールする手続きを記録しておこう。
(1)iBotのライブラリをロボットに転送し、/home/nao/ibot/modulesに置く。するとこうなる、
-rw------- 1 nao nao 3462978 Dec 19 2014 libwscontrol.so -rw------- 1 nao nao 1729627 Nov 9 17:45 libwsftmod.so -rw------- 1 nao nao 8366855 Jan 26 14:11 libwsibot.so -rw------- 1 nao nao 3345949 Jan 26 14:12 libwssystem.so -rw------- 1 nao nao 3589621 Jan 26 14:12 libwstelepathy.so
(2)上記のライブラリを起動時に読み込ませるために、/home/nao/naoqi/preferencesにあるautoload.iniを編集する。
# autoload.ini # # Use this file to list the cross-compiled modules that you wish to load. # You must specify the full path to the module, python module or program. [user] #the/full/path/to/your/liblibraryname.so # load liblibraryname.so #<ibot> /home/nao/ibot/modules/libwsibot.so /home/nao/ibot/modules/libwsftmod.so /home/nao/ibot/modules/libwscontrol.so /home/nao/ibot/modules/libwssystem.so /home/nao/ibot/modules/libwstelepathy.so #</ibot> #the/full/path/to/your/python_module.py # load python_module.py [program] #the/full/path/to/your/program # load program
<ibot>と</ibot>の間に囲まれた部分を書き加えた。
(3)ここで一旦、ロボットを再起動させる。以後も重要な点なのだが、ライブラリをいじると、ロボットが自動的に再起動する場合があり、その瞬間脱力状態になり、何もしないと転倒する可能性がある。ので、きちんと管理した状態で、ライブラリを読み込ませたほうが良い。
(4)/home/nao/ibot/wwwにibotNaoのウェッブサイト関連ファイルを転送する。index.html、javascriptファイル、cssファイルなどがこの下に置かれる。
(5)rootになって、ロボットのウェッブサイトのホームドキュメントのページから次のようにシンボリックリンクを貼る。
ln -s /home/nao/ibot/www /var/www/robotsgate/ibot
(6)この時点で、以下のようにアドレスを入れれば、スマホやPCのブラウザから、iBotNaoにアクセスできるようになる。ただし、ロボットとの間で、ネットワークが繋がっていなければならない。
http://(ロボットのipaddress)/ibot
通常のロボットのウェッブページの直下の/ibotをさせば良いのだ。
(7)これで、iBotNaoのほとんどのことができるようになる。さしあたって、ステータスのページで、ロボットを休めの態勢にしたほうが良い。NAOの場合、立っているだけで、モーターに力が入れているので、熱くなりすぎ理ことがないわけではないから。トラブルが起こった時に倒れにくくする意味でも、必要のない時は常に「休め」の態勢にする。
以下は、オプションだ。ファイル転送を別のソフト(例えば、filezillaなど)でやりたい場合に必要になる。ただし、スマホからは以下の方法でもファイル転送できない。
(8)iBotNao状で、PCやスマホから、必要なファイルを転送できるようにする。FTPでもできるのだが、iBotNaoから使えるようにしたほうが圧倒的に便利。
(9)fastcgiライブラリをロボットに転送し、rootになって/usr/local/lib以下に置く。(ライブラリは、NAOように作られたもの)そして、リンクを次のように貼る。
-rw-r--r-- 1 root root 59464 Jan 26 14:52 libfcgi++.a -rwxr-xr-x 1 root root 854 Jan 26 14:52 libfcgi++.la lrwxrwxrwx 1 root root 18 Jan 26 14:53 libfcgi++.so -> libfcgi++.so.0.0.0 lrwxrwxrwx 1 root root 18 Jan 26 14:53 libfcgi++.so.0 -> libfcgi++.so.0.0.0 -rwxr-xr-x 1 root root 50674 Jan 26 14:52 libfcgi++.so.0.0.0 -rw-r--r-- 1 root root 123618 Jan 26 14:52 libfcgi.a -rwxr-xr-x 1 root root 814 Jan 26 14:52 libfcgi.la lrwxrwxrwx 1 root root 16 Jan 26 14:54 libfcgi.so -> libfcgi.so.0.0.0 lrwxrwxrwx 1 root root 16 Jan 26 14:54 libfcgi.so.0 -> libfcgi.so.0.0.0 -rwxr-xr-x 1 root root 110400 Jan 26 14:52 libfcgi.so.0.0.0
(10)ldconfigを実行し、ライブラリをシステムに認識させる。ldconfig -vで確認できる。
(11)spawn-fcgiとibotcgi.cgiに実行可能属性をつけて/home/nao/ibot/fcgi以下に置く。
(12)rootになって起動ファイルibotcgi.startを/etc/local.d/以下に、実行可能属性をセットして置く。ibotcgi.startの中身は、
#!/bin/sh /home/nao/ibot/fcgi/spawn-fcgi -p 8000 -n /home/nao/ibot/fcgi/ibotcgi.cgi &
となっている。ログも吐くようにできるが、していない。
(13)rootになって、/etc/nginx/nginx.confのhttpタグの最後に、
########ここから###### location ~ \.cgi { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:8000; } ########ここまで######
を加える。
(14)nginxを再起動する。nginx -s reload だったと思う。ロボットを再起動させても良い。これで、ファイル転送もiBotNao状で可能になる。