リネオブログ

Intel Realsenseを動かしてみよう #1

2020 年 07 月 30 日   Linux 技術ネタ

1. はじめに

ロボットの状況認識や顔認識機能にはデプスカメラというものが用いられています。通常のカメラは風景を平面的に取得するのみですが、デプスカメラは、通常のカメラに加えて、深度センサを内蔵し、カメラが映す対象物までの距離(奥行情報)を取得、活用することができるカメラです。有名なものには Microsoft の kinect などがあります。また iphone にも、TrueDepth カメラと呼ばれる顔認証機能などを備えたデプスカメラが搭載されています。ロボットに搭載されるようなものになると、深度センサに加えてさらに赤外線センサや温度計なども搭載されるようです。

本稿では、デプスカメラの一つである Intel Realsense depth camera D435 について、いくつかの環境で動かしてみた結果をまとめています。第 1 部では、Realsense viewer によるカメラ映像確認と、ROS の機能を利用した映像確認を、Windows10, Ubuntu18.04(x86 PC, ARM Raspberry Pi 4),Raspbian(ARM Raspberry Pi 4) で実施した結果を報告いたします。

2. Intel Realsense デプスカメラとは

Intel 社から販売されているデプスカメラ(深度カメラ)の一つです。Intel の D400 シリーズは通常のカメラとしての映像出力に加えて、カメラ内での深度計算を行え、また 3D 情報を取得し利用することができます。開発にはオープンソースの SDK があり、これは C 言語や python、ROS などに対応しています。カメラ自体の大きさが 90mm×25mm×25mm と小さく、ロボットなどへの搭載も容易に行えそうです。

詳細なスペックは Intel の Web サイトにあります。

3. Intel Realsense を動かしてみよう(基本編)

まず、IntelRealsense の Web ページに記載されている Get-started の手順に従って、realsense-viewer を用いた D435 のカメラ映像確認を行ってみます。

1.カメラの接続

D435 と、PC や Raspberry Pi 4 の接続には、付属の USB-C ケーブルを使用します。

2.Realsense Viewer のインストールと起動

2.1 Windows10(Note PC)

Github から Intel.Realsense.Viewer.exe をインストールします。

インストールした .exe ファイルを実行すると、Intel Realsense Viewer が起動します。

2.2 Ubuntu 18.04

Ubuntu では次の手順に従い、Intel Realsense SDK をインストールすることで realsense-viewer が使用できるようになります。

・公開鍵を登録します。

# sudo apt-key adv --keyserver keys.gnupg.net --recv-key \
F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv -keyserver \
hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

・サーバをリポジトリのリストに登録します。

># sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" -u

・ライブラリをインストールします。

# sudo apt-get install librealsense2-dkms
# sudo apt-get install librealsense2-utils

・デバッグパッケージをインストールします。

# sudo apt-get install librealsense2-dev
# sudo apt-get install librealsense2-dbg

ここまでの手順を完了したら、端末を起動し、

# realsense-viewer

を実行することで、realsense-viewerが起動します。

2.3 Raspberry Pi 4 (Raspbian)

Raspberry Pi 4 の端末を起動し、次の手順を実行します。

・パッケージのインストールを行います。

# 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 freeglut3-dev

・Intel RealSense SDK のインストールとビルドを行います。

# git clone https://github.com/intelrealsense/librealsense
# mkdir -p librealsense/build
# cd librealsense
# sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
# sudo udevadm control --reload-rules && udevadm trigger
# cd build
# cmake ..
# make -j4
# sudo make install

・OpenGL を有効にします。

# sudo raspi-config

7 Advanced Options → A8 GL Driver を選択します。

G2 GL (Fake KMS) を選択します。
config を終了し、Raspberry Pi 4 を再起動します。

・Realsense Viewer の起動
以下のコマンドを実行することで、Realsense Viewer を起動できます。

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

または

# realsense-viewer

3.Realsense Viewer の操作

Realsense Viewer の操作は各環境で共通です。カメラが接続されていれば、RealSense Viewer のウィンドウ左側にカメラの状態が表示されます。「Stereo Module」をONにすると、深度情報を映像として出力します。カメラの近くにあるものは青色、遠くにあるものは赤色で表現されています。

深度情報を映像

「RGB Camera」を ON にすると、通常のカメラ映像を確認できます。「Stereo Module」と同時に確認することもできます。

通常のカメラ映像

画面右上の「3D」をクリックすると、深度情報を3次元的に出力できます。

深度情報を3次元的に出力

4. Intel Realsense を動かしてみよう(応用編)

応用編として、ROS で D435 を利用する方法について記載します。

1.Ubuntu18.04(x86 VM Virtualbox)

1.1 Intel RealSense SDK インストール

まず、RealSense SDK をインストールします。基本編でインストールした際と同様の手順を実行します。

1.2 ROS Distribution のインストール

Ubuntu install of ROS Melodic を参考に、以下の手順で Ubuntu に ROS Melodic をインストールします。

# sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > \
/etc/apt/sources.list.d/ros-latest.list'
# sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' \
--recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# curl -sSL \
'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
# sudo apt update
# sudo apt install ros-melodic-desktop-full
# apt search ros-melodic
# echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
# source ~/.bashrc
# sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
# sudo apt install python-rosdep
# sudo rosdep init
# rosdep update
1.3 Realsense ROSのインストール

Intel® RealSense™ ROS をインストールします。

・ros 用ワークスペースを作成します。

# cd
# mkdir -p ~/catkin_ws/src
# cd ~/catkin_ws/src/

・ros を github からクローンします。
# git clone https://github.com/IntelRealSense/realsense-ros.git
# cd realsense-ros/
# git checkout `git tag | sort -V | grep -P "^\d+\.\d+\.\d+" | tail -1`
# cd ..

・ddynamic_reconfigure をクローンします。

# git clone https://github.com/pal-robotics/ddynamic_reconfigure

・ビルドとインストールを行います。

# catkin_init_workspace
# cd ..
# catkin_make clean
# catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
# catkin_make install
# echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
# source ~/.bashrc
1.4 RGB カメラ映像の確認

(参考: UbuntuでIntel Realsense D415を使えるようにするまで(ROSあり・なし両方))
・Image_view をインストールします。

# sudo apt install ros-melodic-image-view

・以下のコマンドをそれぞれ別々の端末で実行します。

# roslaunch realsense2_camera rs_camera.launch
# rosrun image_view image_view image:=/camera/color/image_raw

RGB カメラの映像が、image_view ウィンドウから確認できます。

RGBカメラの映像

1.5 depth カメラ映像の確認

・パッケージをインストールし、再度ビルドします。

# cd ~/catkin_ws
# sudo apt-get install ros-melodic-rgbd-launch
# catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
# catkin_make install

・以下のコマンドを別々の端末で実行します。

# roslaunch realsense2_camera rs_rgbd.launch
# rosrun rviz rviz

rviz ウィンドウが開いたら、ウィンドウ左側の設定を変更します。

・Fixed Frame を camera_link に設定
・「Add」をクリックして、"PointCloud2" を追加
・"PointCloud2" タブのTopicを、"/camera/depth_registered/points" に変更

以上を行うと、画面にカメラからの 3D 情報が出力されます。

カメラからの3D情報

4.2 Raspberry Pi 4(Ubuntu 18.04.4)

Raspberry Pi 4 で Ubuntu を動作させたい場合、rpi-imager では server 版しかインストールできません。
そのため、非公式の desktop 版 Ubuntu をインストールして動作を確認しました。

2.1 Intel RealSense SDK インストール

以下の手順は、Raspbian に Intel Realsense SDK をインストールする手順とほとんど同じです。

・パッケージのアップデートとインストール

# 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 freeglut3-dev

・SDK のインストールとビルド

# git clone https://github.com/intelrealsense/librealsense
# mkdir -p librealsense/build
# cd librealsense
# sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
# sudo udevadm control --reload-rules && udevadm trigger
# cd build
# cmake ..
# make -j2
# sudo make install

・OpenGL を有効にする

# sudo raspi-config

raspi-config が実行されます。

7 Advanced Options → A7 GL Driver を選択します。
G2 GL (Fake KMS) を選択します。
設定が終わったら raspi-config を終了し、再起動します。

2.2 ROS Distribution のインストール

Ubuntu18.04(x86 VM Virtualbox)と同様の手順を実行します。

2.3 Realsense ROS のインストール

Ubuntu18.04(x86 VM Virtualbox) と同様の手順を実行します。

2.4 RGB カメラ映像の確認
# sudo apt install ros-melodic-image-view

・以下のコマンドをそれぞれ別々の端末で実行します。

# roslaunch realsense2_camera rs_camera.launch
# rosrun image_view image_view image:=/camera/color/image_raw

コマンド

2.5 depth カメラ映像の確認

・パッケージをインストールし、再度ビルドします。

# cd ~/catkin_ws
# sudo apt-get install ros-melodic-rgbd-launch
# catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
# catkin_make install

・以下のコマンドを別々の端末で実行します。

# roslaunch realsense2_camera rs_rgbd.launch
# rosrun rviz rviz

コマンド

3.Raspberry Pi 4(Raspbian)

Raspbian Buster への ROS インストールを試しましたが、映像確認ができませんでした。

試した手順を記載します。

3.1 Intel Realsense SDK のインストール

(RealSense Viewer をインストールした際に既にインストールされています。)

3.2 ROS Distribution のインストール

(Installing ROS Melodic on the Raspberry Pi)

・ROS リポジトリを設定します。

# sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# sudo apt-key adv --keyserver \
hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# sudo apt-get update
# sudo apt-get upgrade

・以下のパッケージをインストールします。

# sudo apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake

・rosdep を初期化します。

# sudo rosdep init
# rosdep update

・ros 用の catkin ワークスペースをホームディレクトリに作成します。

# mkdir -p ~/ros_catkin_ws
# cd ~/ros_catkin_ws

・rviz などの GUI ツールを使用する場合は以下を実行します。

# rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall
# wstool init src melodic-desktop-wet.rosinstall

・依存関係を適切に設定します。

# cd ~/ros_catkin_ws
# rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:buster

・catkin_make_isolatedを呼び出してビルドします。

# sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic

・シェル起動時に ROS の環境変数が自動的に設定されるようにします。

# source /opt/ros/melodic/setup.bash
# echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
(roslaunch実行時のエラー回避のためにワークスペースを更新します。)
# wstool update -t src
3.3 Realsense ROS のインストール

Ubuntu18.04(x86 VM Virtualbox) へのインストールと同様の手順を実行しました。

3.4 確認状況

映像確認のためのツールである image_view がインストールできず、映像を確認できません。rviz はインストールされますが、rgbd-launch がインストールできず、結果として depth カメラの映像を確認できませんでした。

5. まとめ

映像確認結果のまとめは次の通りです。

(映像確認結果)

Windows10

(NotePC)

Ubuntu 18.04

(Desktop x86)

Raspbian

(Raspberry Pi 4)

Ubuntu 18.04

(Raspberry Pi 4)

Ubuntu 18.04

(Raspberry Pi 4)

Intel Realsense SDK

ROS

-

×

Ubuntu 環境であればカメラの映像確認は問題なく行えることがわかりました。

Yocto Project 公式実践講座 5 月 ~ 7 月 開催分 受講お申込み受付中!
Yocto Project よもやま話
新企画「Yocto Project よもやま話」の連載を始めます
新企画「Yocto Project よもやま話」の連載を始めます

2022 年 04 月 28 日 Yocto Project よもやま話

Linux 技術ネタ
イベントレポート
ET & IoT 2021 レポート
ET & IoT 2021 レポート

2021 年 12 月 01 日 イベントレポート

組込み総合技術展 Embedded Technology 2019 レポート
組込み総合技術展 Embedded Technology 2019 レポート

2019 年 12 月 13 日 イベントレポート

組込み総合技術展 関西 ETWest2019 レポート
組込み総合技術展 関西 ETWest2019 レポート

2019 年 06 月 20 日 イベントレポート

リクルート
違うズラ
違うズラ

2018 年 10 月 26 日 リクルート

信州で人生がかわる
信州で人生がかわる

2018 年 07 月 24 日 リクルート

新入社員インタビュー
新入社員インタビュー

2017 年 02 月 28 日 リクルート

北小野通信
入笠山ハイキング その 2
入笠山ハイキング その 2

2019 年 10 月 09 日 北小野通信

入笠山ハイキング その 1
入笠山ハイキング その 1

2019 年 10 月 09 日 北小野通信

氷の世界
氷の世界

2019 年 01 月 22 日 北小野通信

ソリューション統括部
シリコンバレー探検記 2019 ~番外編~
シリコンバレー探検記 2019 ~番外編~

2019 年 12 月 10 日 ソリューション統括部

シリコンバレー探検記 2019 ~後編~
シリコンバレー探検記 2019 ~後編~

2019 年 12 月 10 日 ソリューション統括部

シリコンバレー探検記 2019 ~前編~
シリコンバレー探検記 2019 ~前編~

2019 年 12 月 10 日 ソリューション統括部

マーケティング統括部
大成功決起大会!!(ET2019)
大成功決起大会!!(ET2019)

2019 年 12 月 13 日 マーケティング統括部

ESEC 2019 決起大会
ESEC 2019 決起大会

2019 年 04 月 25 日 マーケティング統括部

シリコンバレー探検記 その 2
シリコンバレー探検記 その 2

2018 年 12 月 18 日 マーケティング統括部