*

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

   

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次元的に出力できます。

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

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

1.Ubuntu18.04(x86 VM Virtualbox)

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

 1.2 ROS Distributionのインストール
   http://wiki.ros.org/melodic/Installation/Ubuntuを参考に、以下の手順で
   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カメラ映像の確認
   (参考: https://qiita.com/kei_mo/items/c0387b7d277948451881)
   ・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ウィンドウから確認できます。

 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情報が出力されます。

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のインストール            
(http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Melodic%20on%20the%20Raspberry%20Pi)
   ・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環境であればカメラの映像確認は問題なく行えることがわかりました。

第2部では、Advantech社のArm搭載ボードに対してカメラ接続、使用を試します。

 - 未分類