2016年5月9日月曜日

UbuntuからRealSenseSR300ををlibrealsenseで動かす方法


RealSenseSR300は librealsense というドライバを利用するとをUbuntuで動かせます。
所々詰まったので、メモも兼ねて共有します。

内容は基本的に下記のインストールガイドと同じです。

install guide

使ったもの

  • Ubuntu14.04かUbuntu16.04をインストールしていて、USB3.0の端子があるPC
  • RealSenseRS300

全体像

  1. osの準備
  2. librealsenseをダウンロード
  3. libusbのインストール
  4. glfw3のインストール
  5. 14.04の場合: Video4Linuxのbackend設定
  6. makeとinstall
  7. サンプルプログラムの実行

osの準備

updateして、最新の状態にしておきます。
sudo apt-get update
sudo apt-get upgrade

librealsenseをダウンロード

今回は「~/lib_sources/librealsense」にcloneして作業を進めます。
cd ~/lib_sources/
git clone git@github.com:IntelRealSense/librealsense.git

gitを使っていない方は、下記のコマンドでダウンロードできます。
説明の誤解を防ぐため、cloneしたときと同じフォルダ名にしています。
cd ~/lib_sources/
wget https://github.com/IntelRealSense/librealsense/archive/master.zip -o librealsense-master.zip
unzip librealsense-master.zip
mv librealsense-master librealsense


libusbのインストール

libusbとはOSが異なっても同じようにusbデバイスを利用できるようにするライブラです。
sudo apt-get install libusb-1.0-0-dev

glfw3のインストール

glfw3はopenGLのライブラリです。

ubuntu14.04の場合
cd ~/lib_sources/librealsense
sh scripts/install_glfw3.sh

ubuntu16.04の場合
sudo apt-get install libglfw3-dev

14.04の場合: Video4Linuxのbackend設定

Ubuntu16.04の場合、この手順は不要です。

librealsense用のlibusbのルールを設定

cd ~/lib_sources/librealsense
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
上記コマンド実施後は、最起動するか、下記のコマンドを実行してください。
sudo udevadm control --reload-rules && udevadm trigger

uvcvideoのバッチを適用

librealsenseを実行するにはuvcvideoにバッチを適用する必要があります。
バッチの適用方法はカーネルのバージョンを上げるか否かによって異なります。
バージョンを上げた方が処理が安定するようなので、リスクを取れる方はバージョンを上げるのが良さそうです。

■カーネルのバージョンを4.4に上げて良い場合
cd ~/lib_sources/librealsense
./scripts/install_dependencies-4.4.sh
カーネルバージョンアップできたら再起動を行い、下記のコマンドを実行してください。
cd ~/lib_sources/librealsense
./scripts/patch-uvcvideo-4.4.sh v4.4-wily

■カーネルのバージョンを上げたくない場合
cd ~/lib_sources/librealsense
./scripts/patch-uvcvideo-ubuntu-mainline.sh

uvcvideoの再設定

sudo modprobe uvcvideo

確認

下記コマンドでuvcvideoがrealsenseを認識し、エラーが出て無ければ、video4linuxのbackground設定が成功しています。
sudo dmesg | tail -n 50

makeとinstall

libuvcをbackendに指定してmakeします。
cd ~/lib_sources/librealsense
make BACKEND=LIBUVC
sudo make install

サンプルプログラムの実行

binに置いてあるサンプルプログラムを実行します。 sudoを付けないと、下記のようなエラーが出ます。
cd ~/lib_sources/librealsense
bin/cpp-capture
RealSense error calling rs_create_context(api_version:4):
uvc_open2(...) returned Access denied

sudoを付けて実行してください。
初回の実行は失敗する場合があるので、2回位試すことをお勧めします。
cd ~/lib_sources/librealsense
sudo bin/cpp-capture

成功すると、カメラの画像・深度・赤外線センサの画像が表示されます。

以上です。
参考になれば嬉しいです。

参考

RealSense R200の新しいROSパッケージ(realsense_camera)のインストール手順

変更履歴

2016.07.13
ubuntu16.04の手順を追加しました。
7月前半はubuntu16.04で不安定な動作でしたが、OSのアップデートが効いたのか、期待通りに動くようになりました。

2 件のコメント :

匿名 さんのコメント...

great tutorial, succeed. A li a do!

Asuki Kono さんのコメント...

I'm glad to hear that. My pleasure.