#目的
今回はRealSenseのD435を使って、ROSのrvizやウインドウ上でカメラ画像を表示させるということをしたいと思います。
Intel RealSense Depth Camera D435
Intel RealSense Depth Camera D435はカラー画像に加えてdepth画像も取得できる三次元カメラです。
ROSにも対応しているのでロボットのカメラセンサとしても使用することができます。
Depth Camera D435の公式ページ
#私の環境
モノ | 環境 |
---|---|
OS | Ubuntu 18.04.4 |
ROS | melodic |
Depth Camera | RealSense D435 |
realsense-viewer | v2.32.1 |
参考
基本的にはkaraage先生の記事を参考にしています。
Jetson NanoでIntel Realsense D435を使う方法(ROS対応)
Librealsenseのインストール
D435を使えるようにするためLibrealsenseのインストールを行います。
以下はJetson Nano用のインストール方法です。
インストール方法
# githubよりclone
cd & git clone https://github.com/jetsonhacksnano/installLibrealsense
cd ~/installLibrealsense
# 実行してインストール
./installLibrealsense.sh
##ビューアでカメラ画像が表示されるか確認する
ビューアを開いて画像を表示させてみます。
# realsenseのビューアを開く
realsense-viewer
正常なら左側のStereo ModuleとRGB Cameraの項目をonにしてカメラ画像を表示させることができると思います。
確認ができたらビューアを閉じておきます。
#ROS対応
ここからはRealSenseがROS対応しているのでROS対応させてrvizを表示させます。
※(ROSのインストールについては省略)
作業用ファイルの作成
ROS対応したIntelRealSenseの作業用ファイルはROS導入時に作ってると思いますので省略しています。
# githubからcloneしてくる
cd ~/catkin_ws/src
git clone https://github.com/IntelRealSense/realsense-ros
cd realsense-ros
git checkout -b 2.2.3 2.2.3
実行する準備
ROSの実行準備をしていきます。
# catkin_makeする
cd ~/catkin_ws
catkin_make
source devel/setup.bash
source ~/.bashrc
次にlaunchファイルをroslaunchします。
はじめからフォルダにあるlaunchファイルはデモ用にlaunchファイルになります。
使用するlaunchファイルは用途によって選択したらいいと思います。
demo_pointcloud.launchでlaunchする
pointcloudのデモを実行できる。
# roslaunchで実行する
roslaunch realsense2_camera demo_pointcloud.launch
実行すると勝手にrvizが起動します。
起動するとpointcloud2が動いていて以下のような3D画像がでていると思います。
今回は画像(2D画像)を確認するので以下の方法で2D画像を確認していきます。
rivzで2D画像の確認の仕方
確認の方法
rs_rgbd.launchでlaunchする
RGB、Depth、infra画像などが取得できます。
rvizは勝手に表示されないので任意で実行してください。
# roslaunchで実行する
roslaunch realsense2_camera rs_rgbd.launch
#別ターミナルより
rviz
rivzで画像の確認の仕方
確認の方法
# 画像を表示する
rosrun image_view image_view image:=/camera/color/image_raw
#実行結果
最後に実行結果についてまとめておきます。
基本的に画像については以下のように考えたらよいと思われます。
画像一覧
aligned image alignedは「揃えた」という意味で、これらは2つの画像を合わせた画像になっています。深度画像+RGB画像
/camera/aligned_depth_to_color/image_raw
深度画像+点群画像
##深度画像+点群画像
/camera/aligned_depth_to_infra1/image_raw
#エラー
つまづいたところがいくつかあったので
realsense-viewer
たまに読み込まないときがある
カメラを抜き差ししたら認識されるようになる。
depth image
rs_rgbd.launchの方なんですが私の環境では深度画像系の表示がうまくいかなかった。
時間がたつと表示される(されないときもある)、FPSもあんまり出てない。
一応、Topicは送られているようですがImageが表示されてない感じ。
原因としては
① 電力不足??
PCがRealSense R200をUSBハブに接続するとPCから認識できない
② ファームウェアの問題??
Intel RealSense D435 をROSで使う
③ いつも実行時にでている↓こいつが原因??
WARNING[547180495232](uvc-device.cpp:644)interrupt event received: 1, 3, 0, 7, 0, 11,
[WARN][1587965285.372585427]: Hardware Notification:USB SCP overflow,1.58797e+12,Eroor,Hardware Error
##対策方法
やっぱり電源が問題でした。
供給量の大きいUSB変えたらいけました。