ofxOpenNIでKinectを動かしてみる

さて、「Kinectハッカーズマニュアル」にも記述されていた「ofxOpenNI」を試す。

前回の記事でダウンロードした「OpenFrameworks」を使用する。今回使用したバージョンは「of_preRelease_v007_osx」というやつ。

# 注意点として「XCodeは4.1」で実行。

さらに「PROJECT/TARGETS」の「Build Setting > Base SDK」を「10.6」にしておく
(4.2だと動かなかったので、もうちょい検証が必要。
今後アップデートで対応って本家サイトに書いてあったのでひとまず放置)

# ごめんなさい、ごめんなさい「4.2」でも動きました。

では始めにアドオン「ofxOpenNI」をダウンロードする。


gitgub:
gameoverhack / ofxOpenNI

からzipでもgitでも良いのでダウンロードもしくはcloneで持ってくる。

持ってきたら設置・設定を行う。

上記サイトに「DRIVERS & SETTING UP YOUR OWN PROJECTS」という項目で、

セッティングするための内容が記載されています。


Mac OS X:
You don’t need to do any install of drivers if you don’t want, just:

* Do the git magic above or somehow else get a copy of ofxOpenNI into your addons directory
* Make a new project (in 062 by copying emptyExample folder from the apps/examples/ directory into your working path -> something like ofFolder/apps/dev/)
* Copy the folder called ‘lib’ from ‘ofxOpenNI/mac/copy_to_data_openni_path’ to your ‘bin/data/openni’ directory of your emptyExample
* In Xcode make a new Group called ‘ofxOpenNI’ under ‘Addons’ (right or control click the ‘Addons’ Group, select Add->New Group)
* Drag the ‘src’ and ‘include’ folders from inside the ofxOpenNI folder (in your addons directory) into the Group ‘ofxOpenNI’ you just made.
* Drag the folder ‘lib’ from bin/data/openni (the one you just copied) into the Group ‘ofxOpenNI’
* Add #include “ofxOpenNI.h” at the top of your testApp.h (or in whatever class you’re using ofxOpenNI)

これを「A-Z」まで順番に言えないレベルの英語力の私ですが読んでみたところ、


まっくおーえすてん

特に必要としないならやらなくて良いよー 🙂

1. 「of_preRelease_v007_osx」の「addons」ディレクトリへ「ofxOpenNI」ディレクトリを移動
2. 新規プロジェクトの作成(今回は例として「/apps/examples/emptyExample」で試す)
3. 「ofxOpenNI」ディレクトリ内「/mac/copy_to_data_openni_path」の「lib」ディレクトリを
「2」で作成したプロジェクトの「/bin/data」へ「openni」ディレクトリを新規作成してコピー
4. XCodeで「addons」ディレクトリ直下へ「ofxOpenNI」というグループを新規作成
5. XCodeで「4」で作成した「ofxOpenNI」グループに「src」「include」ディレクトリを
ドラッグアンドドロップ(参照でOK)
6. 「3」でコピーした「lib」ディレクトリも「5」と同じくドラッグアンドドロップで追加
7. 「testApp.h」のソースコード内の上部へ「#include “ofxOpenNI.h」を追記して「Run」を実行

最後の「Run」で「Build Success」になれば、インクルードなどに問題無く読めているとのこと。
ここまで順調にやれば問題無くビルドは通ってるはず(と信じたいですね)

ここまで行うと下記のようになっっているはず。

問題無くビルド出来たら、次は実際にofxOpenNIのサンプルを試すことにする。

ん?でも「ofxOpenNI」にある「config」ディレクトリも必要なんじゃないかい???
設定がめっちゃ書かれているんだもん。NITEのkeyとかもここに書かれている。

ということで設置せずに試したらやはりエラーになり、あえなく撃沈。
予想通りでした 🙂


「config」ディレクトリを設置

1. 「addons」ディレクトリの「ofxOpenNI」にある「/bin/data/openni/config」を確認
2. 次に「1」で確認したディレクトリを「/apps/example/emptyExample/bin/data/openni」へコピー

ここまで出来たら後はサンプルをそのままコピペしてきて試す事にする。

「addons」ディレクトリの「ofxOpenNI」にある「/example/src」の

-「main.cpp」
-「testApp.h」
-「testApp.cpp」

を「/apps/example/emptyExample/src」のそれぞれのファイルへコピペするだけ。
コピペだけですいません、サンプルはまた作りますので許して下さい。

いざ・・・実行!

まず、「Kinect」を接続せずに実行すると・・・


warning: Could not find object file “/Developer/usr/lib/gcc/i686-apple-darwin10/4.0.1/libgcc.a(_eprintf.o)”
– no debug information available for “/var/tmp/gcc_40/gcc_40-5494~211/src/gcc/libgcc2.c”.
warning: Could not find object file
“/Users/theo/Documents/CODE/__OPENFRAMEWORKS/gitOF/openFrameworks/apps/devApps/
macDragDropExample/buildGlutFrameworkHackedWindowLevel10.4/libForeground.a(macx_foreground.o)”
– no debug information available for “/Users/mcast/Code/GLUT-ToPost/macx_foreground.m”.

と2つのエラーが出るのでご注意。

次にしっかりと「Kinect」を接続して実行(Run)すると・・・

おー!しっかりと表示されてログも出てますね。

ちなみにキーバインドで「上下」が効くので試しに押してみると、
なんとKinectを操作出来るじゃありませんか!!! 😀

すげー、まじでおもしれー!!!

Mac(XCode 4.1)でOpenFrameworks(preRelease_v007)を弄ってみる

MacでKinectやったので今度は「XCode」で前回の記事でインストールした「OpenNI」を

どしどし使っていければと思い、まずは「OpenFrameworks」を使えるようにするのでよろしくどうぞ 😀

OpenFrameworksは現時点での最新版が「of_preRelease_v007_osx」となっていました。

# 下記サイトからダウンロードが可能
http://www.openframeworks.cc/download/
(今回は上記URL内にある「osx」で試しました)

前提として、

環境が「XCode 4.2」の場合、「12.01.03」時点ではOpenFrameworksが、

フォーラムなどを確認しても動きそうにないという事が解った。

#1 あってるかな?もし動くのであれば是非教えて下さい。
#2 今後、アップデートで対応していくようですね。

動作出来る様に色々と調べたいが時間が掛かりそうだったので、しょうがなく「XCode 4.1」で試していく。

# ごめんなさい、ごめんなさい「4.2」でも動きました。

OpenFrameworksをまずはダウンロードして設定していきたいので、

こちらから落としきたファイル一式のディレクトリ構造を確認すると、

– of_preRelease_v007_osx
|– addons
|– apps
|– libs
|– readme.osx

となっています。(バージョンが違う場合は構造が違う場合があるので注意)

上記内にある「apps」以下を確認します。

– apps
|– addonsExamples
|– examples

となっているのでこちらの「examples」にある「emptyExample」
こちらが今後、「ベーステンプレート」になるので忘れないようにしておく。

このファイル一式には「XCodeのプロジェクトファイル」も含まれているので、
試しにこいつを起動させて試していく。
# 実行ファイルは「/apps/examples/emptyExample/emptyExample.xcodeproj」

XCodeで起動させて、普通に「Run」をクリックするとがっつりとエラーが出てくるのだが、
この原因は「プロジェクト:emptyExample」の「BaseSDK」が「10.7」となっているため。

こちらを修正する。

下記画面を見て解るようにまず「active scheme」を「emptyExample」へ変更しておく。

つぎに左サイドバーに表示されている「emptyExample」を選択して、

・「Build Settings > Base SDK」を「Mac OS X 10.6」

へ変更する。

そして「Run」をクリックすると、ウィンドウが表示されるのを確認出来る。
# なーんもないグレーの画面ですがw

とりあえずこれでOpenFrameworksが動作することを確認出来た。

次は、「OpenFrameworks+OpenNI」を試して実装していく。

MacでKinectを使うために諸々をインストールしてみた

明けましておめでとうございます 🙂
お付き合いいただいている方、これから出会う方、本年もよろしくお願いいたします。

ということで、届いちゃいました「Kinect」と「Kinectハッカーズマニュアル」。

FF13-2が丁度発売されてクリアするのに時間が掛かり、

まだそこまで触れてないのですが、これでドンドン楽しいことをやっていきます。

でもまずは環境を揃えないといけないので諸々必要なものをインストールしていくぞー!

まず自分のMacBookProのスペックなどは下記(参考程度で

– MBP 15inch
– Mac OS X 10.7.2(Lion)
– Xcodeは「4.2」「4.1」「3.2.6」

はい、OSは「Lion」ですね「Lion」。

まずインストールする前に下記を前提とする。

– XBox360に付属しているものでは無く、
単体で販売している「Kinect」を持っている
# 付属ものだと、USB変換器などを購入しないといけなくなる
– XCodeがインストールされている
– MacPortsがインストールされている
– ファイルは全て「/usr/local/src」へダウンロードして実行する
# 自分の環境に併せて下さい

では必要な物のインストールをしていくぞっと 😀

1. MacPortsを最新へ、必要なライブラリをインストール

1
2
$ cd /opt/local
$ sudo port selfupdate -d // デバッグ(詳細)付きでアップデート

// そうすると「sudo port upgrade outdated」しろ!って言われるので

1
$ sudo port upgrade outdated

// 必要なライブラリもインストール

1
2
$ sudo port install libtool
$ sudo port install libusb-devel +universal

2. OpenNIのインストール

– OpenNIのサイトから最新版をダウンロード

落としたファイルを「/usr/local/src」へ移動し解凍しておく

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ cd /usr/local/src
$ cd OpenNI-Bin-Dev-MacOSX-v1.5.2.7/
$ sudo ./install.sh
Installing OpenNI
****************************
 
copying shared libraries...OK
copying executables...OK
copying include files...OK
creating database directory...OK
registering module 'libnimMockNodes.dylib'...OK
registering module 'libnimCodecs.dylib'...OK
registering module 'libnimRecorder.dylib'...OK
creating java bindings directory...OK
Installing java bindings...OK
 
*** DONE ***

全て「OK」なら完了。

3. SensorKinectのインストール

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ cd /usr/local/src
$ 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/Sensor-Bin-MacOSX-v5.1.0.25
 
$ sudo ./install.sh
Installing PrimeSense Sensor
****************************
 
creating config dir /usr/etc/primesense...OK
copying shared libraries...OK
copying executables...OK
registering module 'libXnDeviceSensorV2KM.dylib' with OpenNI...OK
registering module 'libXnDeviceFile.dylib' with OpenNI...OK
copying server config file...OK
setting uid of server...OK
creating server logs dir...OK
 
*** DONE ***

// ここまできたらサンプルを動かしてみる。

1
2
3
4
5
$ cd /opt/local/src/OpenNI-Bin-Dev-MacOSX-v1.5.2.7/Samples/Bin/x86-Release
$ ./Sample-NiSimpleViewer
One or more of the following nodes could not be enumerated:
 
Device: PrimeSense/SensorKinect/5.1.0.25: The device is not connected!

// deviceが繋がってねぇーと言われるので、急いでKinectを繋げる・・・
そこで再度実行すると・・・サンプルが動作することを確認。

4. NITEのインストール

ライセンスキーは、
http://kinect.dashhacks.com/kinect-downloads/12-18-10/primesense-nite-middleware
とかで確認出来る。
OpenNIのページに記載されていると色々なブログなどでも書かれているが、
そんなもの発見出来なかったよー 🙁

# でも下記方法だとライセンスキーの入力を求められなかったな・・・。
バージョンが上がってライセンスキーが必要なくなったぽいが、
他のライブラリを使う場合にひつようとなるので確認は必要。

OpneNI Downloadsリンクから、「OpenNI Modules」を選択

「OpenNI Compilant Middeware Binaries」
「Unstable」
「PrimeSense NITE Unstable Build for MacOSX 10.6 Universal x86/x64 (32/64-bit) v1.5.2.7」

を選択してDownloadボタンをクリック

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$ sudo ./install.sh
Installing NITE
***************
 
Copying shared libraries... OK
Copying includes... OK
Installing java bindings... OK
Installing module 'Features_1_3_0'...
ls: Features_1_3_0/Bin/lib*dylib: No such file or directory
Installing module 'Features_1_3_1'...
ls: Features_1_3_1/Bin/lib*dylib: No such file or directory
Installing module 'Features_1_4_1'...
ls: Features_1_4_1/Bin/lib*dylib: No such file or directory
Installing module 'Features_1_4_2'...
ls: Features_1_4_2/Bin/lib*dylib: No such file or directory
Installing module 'Features_1_5_2'...
Registering module 'libXnVFeatures_1_5_2.dylib'... OK
Copying XnVSceneServer... OK
Installing module 'Features_1_5_2'
ls: Hands_1_3_0/Bin/lib*dylib: No such file or directory
Installing module 'Features_1_5_2'
ls: Hands_1_3_1/Bin/lib*dylib: No such file or directory
Installing module 'Features_1_5_2'
ls: Hands_1_4_1/Bin/lib*dylib: No such file or directory
Installing module 'Features_1_5_2'
ls: Hands_1_4_2/Bin/lib*dylib: No such file or directory
Installing module 'Features_1_5_2'
registering module 'libXnVHandGenerator_1_5_2.dylib'...OK
Adding license.. OK
 
*** DONE ***

上記で完了したので後はサンプルを実行してみる。

これで準備は整った。この後は、XCodeから実行したり「OpenFrameworks」と連携などしていく。

今回の参考サイト

– Tython 開発環境構築 with Homebrew on OS X Lion
http://d.hatena.ne.jp/gongoZ/20110809/1312899340

– MacでkinectとOpenNIを使ってみた(rosドライバ)
http://switch.dip.jp/toro/blog/?p=266

– [Kinect] MacOSX 10.7とXcode4.2でNITEのビルド環境を構築
http://netdiever.com/lls/?p=11715

– MacでXcodeをビルド
http://d.hatena.ne.jp/MshrKato/20111114/1321297522

MacをOS X Lionへアップデートした所感

今年7月20日にリリースされてから、すぐに自宅のMacBookProと会社のMacBookProをアップデートしました。

アプリが使えないなどもあるかと思って心配していたけども、そこまで心配する必要は特に無かった。
まぁーAdobe製品を特に使う事も無いので、「ターミナル」や「XCode」が動いてくれれば!ってな、
軽い気持ちだったしねw

下記がインストールされていてそれなりに使うリスト
# 細かい動作は無視して起動出来て、使用出来たことを前提

・1Password
・Adium
・ATOKPad
・CotEditor
・Cyberduck
・Dropbox
・Evernote
・FireFox
・Google Chrome
・GoogleAppEngineLauncher
・iTerm
・MacX DVD Ripper Pro
・MacX Video Converter Pro
・Microsoft Messenger
・Microsoft Office 2011
・NetBeans
・Quicksilver
・Sparrow
・Stuffit Expander
・TextWranger
・Thunderbird
・Twitter
・VLC
・VMWare Fusion

上記以外に「Adobe CS4」も読み込んで確認するレベルなら可能。
細かいフォント間だったりはやはり考慮すべきだろう。

特に不都合は今のところ無く使用(仕事)出来ている。
VMWareを使用してWindowsでテストをしている開発者などは、
特に問題無く動作するので、これはかなりうれしい。

ただ一部、不満点がある。
それはターミナルを立ち上げた時に、ログイン時間が以前よりも時間が掛かりすぎる。

上記を除けば、今回新しく搭載されている機能(スクロールなどなど)にかなり満足している。
アップデートをして失敗したなぁーという事は一切無かった。

今後は触りながら何か使えないアプリなどがあったら、追記していこうっと。

11.08.14 追記
SafariでかつATOK使ってると「Google」さんの検索窓での日本語入力がおかしくなることがしばしば・・・。
これは結構面倒 🙁

初iTunesでの映画レンタル(ナイト&デイ)

iTunesで映画がレンタル及び販売開始されてから、約3ヶ月

特にみたいモノが無く試していなかったのでレンタルしてみた。
# ランキングの上位にある作品はほぼDVDで観てしまっていたので・・・。

今回レンタルした作品は「ナイト&デイ(日本語吹き替え版)」それも標準画質版(HD版が無かった)
まぁー試しなので、画質は特にこだわらずに勢いでw

では早速、音楽と同じく作品ページに行き「映画をレンタル」ボタンをクリックすると上部のバーにダウンロード状況
が表示されるので、多少待つのかと思いきや「51分」って・・・大分待つことに。
(多少、時間は前後して表示される場合もあるっぽいな。)

ダウンロードが完了すると、iTunesの左サイドバーの「レンタルした項目」をクリックした先に、
先ほどの作品が格納されている。

あったあった。作品の概要なども確認する事が出来る。「詳しい情報」リンクをクリックすると別ウィンドウで、
内容が表示されるみたいだ。特に観る必要もなさそうな内容だけど。
レンタルの期限も表示されるので今すぐ観ない場合は、ここで確認しつつ時間があるときに観た方がよさげですね。

再生しようと思ったんだけど「再生ボタン」らしきものが見つからない・・・。
サムネイルの上にマウスを持って行くと、「再生」ってのが表示された。ここから再生するのかー。
ちょっとここは解りづらいかもしれんですね。

クリックすると、「再生を開始しますか?」の確認アラート表示される。
再生可能時間も表示されました。

「再生」をクリックすると無事に再生が開始されるので、

そのまま映画の世界へ行ってきます。