MacBookPro を Lion でクリーンインストールしたので、Kinect の環境も当然消えました。
ということで、これを見れば今日からあなたも Tython 開発者っていう気持ちで
手順書をまとめてみました。主に自分の為に。いつも忘れる。
Tython じゃなくても、OpenNI を Mac で使いたい人はこれでイケルと思いますきっとたぶん信じてる。
下準備その1 (libfreeenct、libusb)
後述する OpenNI で必要となるライブラリです。公式では MacPorts によるインストールを薦めています*1が、
せっかく Homebrew を入れてあるのと、親切にも GitHub - OpenKinect/libfreenect: Drivers and libraries for the Xbox Kinect device on Windows, Linux, and OS X に
Homebrew のレシピがおいてあるので、これを使っていきます。
$ cd `brew --prefix`/Library/Formula $ curl -O https://raw.github.com/OpenKinect/libfreenect/master/platform/osx/homebrew/libfreenect.rb $ curl -O https://raw.github.com/OpenKinect/libfreenect/master/platform/osx/homebrew/libusb-freenect.rb $ brew install libfreenect
参考
http://d.hatena.ne.jp/ke_takahashi/20110529/p1
下準備その2 (OpenNI インストール先)
後述する OpenNI や SensorKinect、NITE はデフォルトで /usr/local とかにインストールされます。それはそれで問題ないんですが、せっかくなのでインストール先を好きなところにやってみたくなりました。
Homebrew は $HOME/.homebrew とかにしたので、Kinect のライブラリは $HOME/.kinect にやってみます。
1. インストール先ディレクトリの準備(インストーラーが作ってくれないので自分で)
$ mkdir -p $HOME/.kinect/usr/{lib,bin,etc/primesense,include/ni} $ mkdir -p $HOME/.kinect/var/lib/ni $ mkdir -p $HOME/.kinect/usr/share/java
2. 場所が決まってるやつをシンボリックリンクで補う
$ sudo ln -s $HOME/.kinect/usr/etc/primesense /usr/etc/ $ sudo ln -s $HOME/.kinect/var/lib/ni /var/lib/
3. DYLD_LIBRARY_PATH の設定
Homebrew や OpenNI のインストール先がデフォルトであれば/usr/local 以下にライブラリが置かれるため問題ないんですが、
私の環境では
という構成ですので、自前でパスを通しておく必要があります。
# .zshrc にでも書いておいてください ### OpenNI + SensorKinect export DYLD_LIBRARY_PATH=$HOME/.kinect/usr/lib:$HOME/.homebrew/lib:$DYLD_LIBRARY_PATH
Install OpenNI
Apple からOpenNI Unstable Build for MacOSX 10.6 Universal x86/x64 (32/64-bit) v1.3.2.3
をダウンロードします。
SnowLeopard 用に見えたので、最初は github からソースコードを持ってきて自前コンパイルしてたんですが
ビルド済みのもので特に問題なかったので使わせてもらいます。
ダウンロードした OpenNI-Bin-MacOSX-v1.3.2.3.tar.bz2 を適当な場所に解凍しつつインストールします。
インストール先は、前述した通り $HOME/.kinect です。
$ mkdir OpenNI $ tar jxf OpenNI-Bin-MacOSX-v1.3.2.3.tar.bz2 -C OpenNI $ cd OpenNI $ ./install.sh -i -c $HOME/.kinect
インストールは成功すると、$HOME/.kinect 以下にいろいろファイルが置かれてると思います。
SensorKinect
こちらは、openni.org にあるものは使わず、GitHub - avin2/SensorKinect: PrimeSensor Modules for OpenNI を使用します。$ git clone git://github.com/avin2/SensorKinect.git SensorKinect-git $ mkdir SensorKinect $ tar jxf SensorKinect-git/Bin/SensorKinect-Bin-MacOSX-v5.0.3.4.tar.bz2 -C SensorKinect $ cd SensorKinect
ここで、ほんの少しだけ install.sh を修正。
117d116 < chown root $INSTALL_BIN/XnSensorServer
- /usr/local 以下にインストールされるため、通常は sudo install.sh とかする
- でも今回は $HOME/.kinect なので sudo じゃない
- sudo じゃないので chown root とかすると怒られる
という理由で一行削除しました。別に owner が root じゃなくても問題なかったです。
$ ./install.sh -i -c $HOME/.kinect
あと今更ですが、git clone したものの branch が unstable か確認してください。
$ git branch * unstable
NITE
再び openni.org からとってきます。Apple から
PrimeSense NITE Unstable Build for MacOSX 10.6 Universal x86/x64 (32/64-bit) v1.4.1.2
をゲット。
$ mkdir NITE $ tar jxf NITE-Bin-MacOSX-v1.4.1.2.tar.bz2 -C NITE $ cd NITE
NITE の install.sh は、インストール先が完全に /usr/local 以下固定なので、編集しました。Gist に書いてあります。
NITE の install.sh を、好きな場所にインストールするために少しだけ編集 · GitHub
要は /usr/local の前に $HOME/.kinect 付け加えただけです。
そんなわけでインストールします。
実行すると、License Key を聞かれるので、Apple にあるフリーライセンスを使用します。
$ ./install.sh Please enter your PrimeSense license key: 0KOIk2JeIBYClPWVnMoRKn5cdY4=
インストール完了!
お疲れ様でした。まあ Tython はコンパイルできると思います。がんばってください。
Makefile.def でライブラリの設定したりインクルードパスを変えれば動きますきっとたぶん。
気になることやら
1. コンパイル時、 include/ni/*.h で warning 出まくる
まあこれは #pragma warning 使っててその他ほげほげだからでしょう。うざいから後ほど自分で書き直す。2. Tython起動時に「INFO Filter Info - minimum severity: ERROR, masks: NONE」みたいなのが出る
動作に問題ないし今は気にしてないけど気になる。最後に
これであなたも Tythonista !!最後はめんどくさくなったので、ちゃんと説明してませんが
なんとか動くと思います。動かないという報告お待ちしております。
あと、もっと楽なのあったらお願いします。誰か Homebrew でレシピ書いてくれないかなー(ちらっちらっ
*1:GitHub - OpenNI/OpenNI at unstable の Mac OS X Requirements 参照