はじめに
SSII2012のチュートリアルで、Point Cloud Libraryが紹介されていた。これは、デプスセンサの出力値(3次元点群)を処理するためのライブラリである。デプスセンサとしてKinectが有名である。今回、Kinect互換デバイス、Xtion Pro Liveを購入した。以下、サンプルを動かすまでの手順を記す。
環境
- iMac
- プロセッサ:3.06GHz Intel Core 2 Duo
- Mac OS X 10.7.4
- Xcode 4.3.3
依存ライブラリのインストール
最初に、macportsを使って以下のパッケージをインストールした。
- cmake @2.8.8
- boost @1.49.0
- eigen3 @3.0.5
- flann @1.7.1
- vtk5 @5.8.0
- qhull @2012.1
- libusb @1.0.9
次に、OpenNIとSensorのバイナリをここからダウンロードした。
- openni-bin-dev-macosx-v1.5.4.0.tar.bz2
- sensor-bin-macosx-v5.1.2.1.tar.bz2
- nite-bin-macosx-v1.5.2.21.tar.bz2
Point Cloud Library(PCL)のインストール
ここからバイナリを手に入れることができる。しかし、PCLのサンプルをコンパイルした際、依存ライブラリとのリンクに失敗した。推奨されている依存ライブラリのバージョンと異なるからであろう。なのでソースからコンパイルすることとした。ソースはここからダウンロードできる。
- PCL-1.5.1-Source.tar.bz2
サンプルプログラムの実行
PCLを使ったプログラムのコンパイルにはcmakeが推奨されている。今回試した限りではXcodeでも可能である。以下手順を示す。
新規プロジェクトの作成
Command Line Toolとしてプロクジェクトを作成する。サンプルプログラムの登録
ここにあるサンプルプログラムをプロジェクトに登録する。コンパイルオプションの設定
Other Linker Flagsに以下を追加する。
-lpcl_common -lpcl_visualization -lboost_thread-mt -lpcl_io -lpcl_filters
Header Search Pathsに以下を追加する。
/usr/local/include/pcl-1.5/ /opt/local/include /opt/local/include/eigen3/ /usr/include/ni/ /opt/local/include/vtk-5.8/
Library Search Pathsに以下を追加する。
/usr/local/lib /opt/local/lib
実行
実行すると、以下のエラーが出る。
Open failed: File not found!
node depth problems
node image problems
node ir problems
ここによると、新規にディレクトリ/etc/primesenseを作成し、以下のファイルをその中にコピーせよとある。
- OpenNI-Bin-Dev-MacOSX-v1.5.4.0/Samples/Config/SamplesConfig.xml
- /etc/openni/SamplesConfig.xml
- /etc/primesense/SamplesConfig.xml
node ir problems
は依然として出たままである。また、Releaseモードでは落ちる。Debugモードでは動く。素直にcmakeを実行した方が良い。追記。
0 件のコメント:
コメントを投稿