Beignetを使用してKinectV2をUbuntuで動かす

以前書いたUbuntu 14.04にBeignet1.0.0をインストールする話に続いて、KinectV2をROSで動かします。

Mac, LinuxでKinectV2を使用するには、libfreenect2をするのですが、公式レポジトリでは現在Beignetを使用して動かすとバグるので、私のforkを使用します。修正されました。

cd ~/
git clone https://github.com/spiralray/libfreenect2
cd libfreenect2/
./depends/install_ubuntu.sh
sudo ln -s /usr/lib/x86_64-linux-gnu/libturbojpeg.so.0.0.0 /usr/lib/x86_64-linux-gnu/libturbojpeg.so
cd examples/protonect/
cmake CMakeLists.txt
make && sudo make install

以上でインストールは完了。サンプルを動かす場合はprotonectフォルダ内で

sudo ./bin/Protonect

とします。
sudoなしで動かせるようにパーミッションを修正します。

sudo gedit /etc/udev/rules.d/50-kinectv2.rules

とし、

SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02c4", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02d8", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02d9", MODE="0666"

と記述して保存します。
再起動後設定が有効になります。

また、libfreenect2のインストール先は/usr/local/libと/usr/local/lib64なので、アプリケーション開発時には共有ライブラリの依存関係情報を更新する必要があります。

sudo sh -c "echo '/usr/local/lib64' > /etc/ld.so.conf.d/lib64.conf"
sudo sh -c "echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf"
sudo ldconfig

以上で設定完了です。

libfreenect2ののsampleフォルダ内にROSでdepth画像をpublishするサンプルを追加してあります。
catkin_ws内に配置してお試しください。

カテゴリー: ロボット パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です