KinectはXbox用のコントローラなのですが、既にいくつかの機能がハックされ、Windows, Linux, Mac OS X用のドライバが出されています(OpenKinect Project)。こんなデバイスが簡単に使えるようになっているのであれば、色々と試してみる価値はありそうです(※ちなみに価格も11,693円(Amazon)と安価)。
そこで、このOpenKinectを使って、Kinectを使ったプログラムを作ってみようと思います。このブログでは覚え書きをまとめておきます。
目次
- 環境
- 事前準備
- OpenKinectのビルド
- サンプルプログラムの実行
環境
- iMac (Early 2006)
- Mac OS X 10.6.5
- Xcode 3.2.4
事前準備
- Xcode(開発環境):
インストールされていなければ、 Mac OS Xのインストールディスクを挿入し、Optional Install→XcodeToolsと辿り、XcodeTools.mpkgをダブルクリックします。 - gitとcmake:
インストールされていなければ、下記のように、MacPortをインストールした後で、git-coreとcmakeをインストールします。- http://www.macports.org/install.php からインストーラをダウンロードし、実行
- ターミナルから、sudo port install git-core を実行
- ターミナルから、sudo port install cmake を実行
OpenKinectのビルド
基本的にhttp://openkinect.org/wiki/Getting_Started#OS_Xに従って行います。- OpenKinectとlibusbをダウンロード:
git clone https://github.com/OpenKinect/libfreenect.git
git clone git://git.libusb.org/libusb.gi
- libusbにパッチを当てた上でインストール:
cd libusb
./autogen.sh
patch -p1 < ../libfreenect/platform/osx/libusb-osx-kinect.diff
./configure
make
sudo make install
- OpenKinectをconfigure:
- まずはccmake (※Xcodeを使いたいため最後のccmakeには "-G Xcode"を渡す):
cd ../libfreenect/
cd c
mkdir build
cd build
ccmake -G Xcode ..
- 画面に "Required library USB NOT FOUND."と表示されます。キーボードで'e'を押して、編集モードに入ります。
- カーソルを下に動かし、"USB_INCLUDE_DIR-NOTFOUND" の行に合わせます。
- Enterを押し、"/usr/local/include/libusb-1.0/"を入力し、再度Enterを押します。
- キーボードから、'c'を2回押してconfigureを2度実行し、その後'g'を押して設定ファイルを生成します。
- 最後に cmake:
cmake -G Xcode ..
- "Build files have been written to: (略)"と表示されていれば成功
- Xcodeから、buildディレクトリにあるlibfreenect.xcodeprojを開く。
- "Build and Run" アイコンをクリックする。 ("Build Succeeded" と表示されていれば成功。逆にErrorと表示されていれば失敗(後注))
サンプルプログラムの実行
- ターミナル上からglviewを実行 (もしくはXcode上でglviewをダブルクリック):
cd examples/Debug/
./glview
- 次のように表示されていれば成功:
Kinect camera test
Number of devices found: 0
次はサンプルプログラムのソースコードを読んで、Kinectからのデータ取得方法を調べてみます。
注: 自分の環境では、最初に実行したときに、エラーが出てビルドできませんでした。そこで以下の方法で暫定的に回避しました。(ビルド時のライブラリへのパスを指定する方法が分からなかったので...汚い方法です)
- エラーの内容:
ld: library not found for -lJPEG
collect2: ld returned 1 exit status
Command /Developer/usr/bin/gcc-4.2 failed with exit code 1 - 回避方法:
- MacPortでjpegライブラリをインストール:
sudo port install jpeg +universal
- /opt/local/lib/libjpeg.* を libfreenect/c/build/lib にコピー。
- MacPortでjpegライブラリをインストール:
コメント 1つ:
とても参考になりました!
ありがとうございます!
>>OpenKinectとlibusbをダウンロード
のところ、2つめのgitのアドレスが「~.gi」で終わっているのを発見したので報告しておきますね!
コメントを投稿