kivantium活動日記

プログラムを使っていろいろやります

Ubuntu 12.04でKinectを使う

Ubuntu 12.04でKinectをインストールする手順のメモ。
Ubuntu12.04では標準でKinectWebカメラとして使えるのですが、OpenNIを使いたいのでインストールしました。クリーンな環境ではないのでいくつか必要な手順が抜けているかもしれません。
またバージョンは全て2012/7/24現在です。

ダウンロードするもの

http://www.openni.org/Downloads/OpenNIModules.aspxから

  • OpenNI Binaries > Unstable > OpenNI Unstable Build for Ubuntu12.04 x86 (32-bit) v1.5.4.0
  • OpenNI COmpliant Middleware Binaries > Unstable > PrimeSense NITE Unstable Build for Ubuntu 12.04 x86 (32-bit) v1.5.2.21

をダウンロードする。

https://github.com/avin2/SensorKinect/downloads からSensorKinect093-Bin-Linux-x86-v5.1.2.1.tar.bz2 をダウンロードする。

インストール作業

sudo apt-get install libusb-1.0-0-dev freeglut3-dev

で必要なライブラリをインストール
あとは各ファイルを解凍してsudo ./install.shでおしまい。

OpenCVのインストール

http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.0/ からソースを持って来る

sudo apt-get install pkg-config cmake libgtk2.0-dev

で必要なものをインストール。

解凍したフォルダ内で

mkdir build; cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON -D WITH_OPENNI=ON ..
make
sudo make install

でインストールはできるはず。
(何回か失敗しましたが、原因は不明)

Eclipseを使う

統合開発環境Eclipseをインストールします。

sudo apt-get install eclipse eclipse-cdt

そのあとC++ Projectを新規作成して、ソースに以下のコードを打ちます。

#include <iostream>

#include <opencv2/opencv.hpp>
int main()
{
  try {
    cv::namedWindow("Kinect test");

    cv::VideoCapture capture(0); // or CV_CAP_OPENNI
    while ( 1 ) {
      // データの更新を待つ
		cv::Mat bgrImage;
		capture.grab();

		capture.retrieve( bgrImage, CV_CAP_OPENNI_BGR_IMAGE );
		cv::imshow( "Kinect test", bgrImage);

      if ( cv::waitKey( 10 ) >= 0 ) {
        break;
      }
    }

    cv::destroyAllWindows();
  }
  catch ( ... ) {
    std::cout << "exception!!" << std::endl;
  }
  return 0;
}

その後Project > Propertiesを開き、C/C++ Build > Settingsの
GCC C++ Compiler > Includes > include pathsに/usr/local/include/opencvと/usr/local/include/opencv2
GCC C++ Linker > Liblaries > Libraries にopencv_core, opencv_highgui, opencv_imgprocを、
Library search pathに/usr/local/libを足しOK。
Project > Build Allでビルド。
Run > Run で実行。
KinectからのRGB画像が取得できていたら成功。