memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

「OpenNI and SensorKinect driver for Mac」がやっと動いた

Kinectの開発元がはじめたOpenNIプロジェクト。非常に今後の展開が楽しみなプロジェクトの一つです。ただ、残念ながらここで公開しているソースはWin or UbuntuMacはまだ対応していないようです。

Link: OpenNI

そんなところにMacにポーティングしている方(roxluさん)がいることを知りました。手順通りに進めてみるもののなかなかエラーがとれない。。。探したものの解決方法が見つかりませんでした。

Link: OpenNI and SensorKinect driver for Mac
Link: OpenNI

やっと解決したのが以下の手順です。やっと遊べる。。。と思いサンプルプログラムを動かしても骨格らしくものが表示されない。。。もう一度、roxluさんのブログを見てみると以下のように書かれていましたorz 待ちましょう。といってもここまでやってくれたroxluさんに感謝です。

Not all examples are working yet, as we need to get a NITE binary for Mac; so for now this means no skeleton information, yet.

■手順

※前提:macのターミナルを立ち上げホームディレクトリにいること、macportsとgitはインストール済み、cmakeもroxlueさんの手順にしたがってインストール済みとします。これをやろうという人は言うまでもないことだと思いますが。

mkdir roxlu

cd roxlu

git clone https://github.com/roxlu/OpenNI.git

./OpenNI/Platform/Mac/Bin/Test/build_test.sh

vi Source/Modules/nimCodecs/CMakeFiles/nimCodecs.dir/link.txt

ここで「-lJPEG」を/opt/local/lib/libjpeg.dylibに書き換えてください。もちろん/opt/local/lib/libjpeg.dylibが存在することが前提です。ない場合はsudo port install jpegでインストールできるはずです。

vi OpenNI/Source/Modules/nimCodecs/XnStreamCompression.h

「#include 」を以下のように書き換えてください。
extern "C" {
#include
}

make

make install

これでOpenNIはインストールが完了です。この操作で~/roxlu/OpenNI_TESTというディレクトリができてその中にサンプルプログラムがあります。しかし、このままではサンプルプログラムは動作しないようなので以下、操作を続けてください。
ちなみに私の環境はosx10.6.5です。

cd ~/roxlu

git clone https://github.com/roxlu/SensorKinect.git

./SensorKinect/Platform/Mac/Bin/Test/build_test.sh

cp /opt/local/lib/libjpeg.dylib libJPEG.dylib ※これをやらないと途中でlibJPEG.dylibが見つからん!って怒られましたのでしかたがなくコピーしました。

make

make install

これでセットアップは完了です。あとはMacKinectを接続してサンプルプログラムを動かすだけです。以下のようになります。

cd ~/roxlu/OpenNI_TEST

./Sample-NiViewer

うまくいくとメッセージが大量に流れてフルスクリーンモードで以下のような画面が表示されるはずです。roxluさんのページはカラフルですが私のは黄色でした。コードを全く読んでいないのでこれからですね。。。とりあえず一歩前進。めでたしめでたし。