Raspberry Pi 3でRealSenseを使う

こんにちは、hiramaです。

今回は、Raspberry Pi 3BでRealSenseを使ってみたので、使い方を書いていきたいと思います。使い方はlibrealsenseのドキュメントhttps://github.com/IntelRealSense/librealsense/blob/master/doc/RaspberryPi3.mdを参考にやりました。しかし、簡単な説明となっているため、もう少し詳しく説明したいと思います。

想定している環境は以下のとおりになります。

  • Raspberry Pi 3 Model B
  • Ubuntu Mate 16.04.2 (armhf)
  • RealSense D435

(一応、下記の環境でも、ほとんど同じ操作で動くこすことはできました。まだしっかりとした確認はできていません)

  • Raspberry Pi 3 Model B+
  • Raspbian
  • RealSenseD435

Raspberry Piにイメージをインストール

まずは、Ubuntu MateのRaspberry Piで動くarm版のイメージを使います。今回使用するのはUbuntu Mate 16.04です。 https://ubuntu-mate.org/raspberry-pi/ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xzからダウンロードしてきます。 SDカードにイメージを書き込む方法はこの記事を参考にしてください。
ダウンロードをしてきたらSDカードに焼いてラズパイを起動します。起動したら、ターミナルを開いて、アップデートとアップグレードをしておきます。

sudo apt update && sudo apt upgrade

次に必要なパッケージをインストールします。

sudo apt install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev libglfw3-dev cmake 

RealSense SDKをビルドするときに、スワップ領域がないとビルドに失敗してしまうので、スワップ領域を作成します。

sudo apt install dphys-swapfile

dphys-swapfileのインストールが終わったら、freeコマンドなどを使用してスワップ領域が作成されているか確認してください。

RealSense SDKをビルド

RealSense SDKをダウンロードしてきます。
今回確認したRealSense SDKのバージョンは、2.17.0になります 。 https://github.com/IntelRealSense/librealsense/archive/v2.17.0.zipからダウンロードしてきます。
ダウンロードが終わったら解凍をして、librealsenseのディレクトリに移動します。

cd librealsense-2.17.0/

rulesをコピーしてリロードします

sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ 
sudo udevadm control --reload-rules && udevadm trigger

それでは、RealSense SDKをビルドします。
buildディレクトリを作成して移動します。

mkdir build
cd build

CMakeを使ってビルドします。

cmake ..
make

(ここでmake -j4 など並列でビルドすることは可能ですが、失敗する場合があります。)

ビルドが完了したら、OpenGLを有効にします。raspi-configを使って有効にします。
まず、raspi-configを起動します。

sudo raspi-config

起動したら、7 Advanced Options → A7 GL Driverを選択していきます。
そのあと、G2 GL (Fake KMS)を選択して再起動をします。

再起動したらRealSenseを接続します。
librealsenseのビルドディレクトリに移動して、RealSense Viewerを起動します。

cd librealsense-2.17.0/build/
./tools/realsense-viewer/realsense-viewer

RealSense ViewerのStereo ModuleRGB Cameraの部分をonにして、 カラー画像や深度画像が表示されたら成功です。