Kinect V2 + Ubuntu14.04 メモ

Kinect V2をUbuntu14.04で使用する設定をしたときのメモ。
カーネル3.16以上、USB3.0必須。
libfreenect2とiai_kinect2が必要。
OpenCLのインストールで少しはまったので記録に残す。OpenCLを使うとIntelの内蔵GPUを使えるので高速処理可能。

1. libfreenect2のインストール
https://github.com/OpenKinect/libfreenect2
のLinuxの部分を実行。

  • Get source
    • git clone https://github.com/OpenKinect/libfreenect2.git
    • cd libfreenect2
    • cd depends; ./download_debs_trusty.sh
  • build tool
    • sudo apt-get install build-essential cmake pkg-config
  • libusb
    • sudo dpkg -i debs/libusb*deb
  • TURBO JPEG
    • sudo apt-get install libturbojpeg libjpeg-turbo8-dev
  • OpenGL
    • sudo dpkg -i debs/libglfw3*deb; sudo apt-get install -f
    • sudo apt-get install libgl1-mesa-dri-lts-vivid(他のパッケージとコンフリクトしたら、インストールしない)
  • OpenCL
    • sudo apt-add-repository ppa:floe/beignet; sudo apt-get update; sudo apt-get install beignet-dev; sudo dpkg -i debs/ocl-icd*deb
  • Build
    • cd ..
    • mkdir build && cd build
    • cmake .. - DCMAKE_INSTALL_PREFIX=$HOME/freenect2
    • make
    • make install
  • UDEV設定
    • sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
  • Test
    • ./bin/Protonect  gl  (opengl利用)
    • ./bin/Protonect cl   (opencl利用)
      ウインドウに次のような画像が写っていない場合はopenclのインストールが失敗。

2. iai_kinect2のインストール
https://github.com/code-iai/iai_kinect2
ROSでKinect2を使うために上記のサイトの説明インストールする。

  • Install
    • cd ~/catkin_ws/src/
    • git clone https://github.com/code-iai/iai_kinect2.git
    • cd iai_kinect2
    • rosdep install -r –from-paths .
    • cd ~/catkin_ws
    • catkin_make -DCMAKE_BUILD_TYPE=”Release”
  • kinect2を接続して、次のラウンチファイルを起
    • roslaunch kinect2_bridge kinect2_bridge.launch
  • ここを読んでキャリブレーション
  • kinect2_bridgeを次のコマンドで再起動
    • roslaunch kinect2_bridge kinect2_bridge.launch (depthの処理にopenclを利用)
    • roslaunch kinect2_bridge kinect2_bridge.launch depth_method:=opengl  (depth処理にopenglを利用)
  • クラウドビュアーで表示
    •  rosrun kinect2_viewer kinect2_viewer kinect2 sd cloud
  • イメージビュアーで表示
    • rosrun kinect2_viewer kinect2_viewer kinect2 sd image

3. はまったところ
libfreenect2のProtonectでKinect V2からのイメージ画像とデプス画像を表示できたが、iai_kinect2のkinect2_viewerでは表示できなかった。原因はopenclのインストールがうまくいっていないことだった。roslaunch kinect2_bridge kinect2_bridge.launchのコマンドではdepthの処理にopenclをデフォルトで使うが、Protonectは標準でopenglを使っていたので原因特定まで半日要した。

つまり、openclでうまく動かない時は、以下を実行すればよい。

  • roslaunch kinect2_bridge kinect2_bridge.launch depth_method:=opengl
  • Image Viewer
    • rosrun kinect2_viewer kinect2_viewer kinect2 sd image
  • Cloud Viewer
    • rosrun kinect2_viewer kinect2_viewer kinect2 sd cloud

終わり

コメントを残す

メールアドレスが公開されることはありません。