ROS
RealSense
D435

Realsense D435について

特徴


公式サイト
https://click.intel.com/intelr-realsensetm-depth-camera-d435.html
から

  • RGB + IR Stereo Camera + Pattern Projector
  • Global Shutter
  • Depth resolution: ~1280x720
  • Depth FPS: 90fps
  • Color: ~1920x1080@30fps
  • Maximum Range: 10 meters
  • USB 3.0 Type-C

追加で判明したこと
- RGB/PointCloudは640x480@60fpsまで可能(ROS)
- USB2.0も限定サポート(後述)
- 最小レンジは約15cmくらい

インストール

echo 'deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main' | sudo tee /etc/apt/sources.list.d/realsense-public.list
sudo apt-key adv --keyserver keys.gnupg.net --recv-key 6F3EFCDE
sudo apt-get update
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg
sudo reboot

公式サイトには

Verify that the kernel is updated :
modinfo uvcvideo | grep "version:" should include realsense string

と記述があるが、とくにrealsenseの文字列は現れなかった。気にせずに進む。

$ modinfo uvcvideo | grep "version:"
version:        1.1.1
srcversion:     DBA8F055BDC0120170B3498
  • realsense_ros のインストール
cd /path/to/catkin/workspace
wstool set -t src intel-ros/realsense --git https://github.com/intel-ros/realsense -v 2.0.3 -u -y
rosdep install --from-paths src -i -r -n -y
catkin b realsense2_camera
source devel/setup.bash

使ってみる

roslaunch realsense2_camera rs_rgbd.launch

d435.png

みえた。

rosrun rqt_reconfigure rqt_reconfigure

rqt_reocnfigure.png

結構細かく設定できそう。

rs435_depth_emitter_enabledでIRパターンプロジェクションのON/OFFを切り替えられる。

proj.png

ONのほうが目に見えてノイズが少ない。(静止画だとわかりにくい)

最小レンジはアバウトに15cmくらいのようだ。

ezgif.com-optimize (1).gif

Color/IRともにデフォルトでは640x480@30fpsのようだが、launchファイルの設定で変更可能。

試しに60fpsで動かしてみる。

roslaunch realsense2_camera rs_rgbd.launch color_fps:=60 infra1_fps:=60 infra2_fps:=60 depth_fps:=60

PointCloudとColor画像が60fpsになったことを確認できた。

(60より大きくするとダメでした)

複数台で使ってみる

  • 気になるところ1: そもそも同時に使えるの?

以下のようなlaunchファイルを書けば使えました。
(tfがコリジョンしている気がしますが、今回は気にしていません。)

rs_multiple_rgbd.launch
<launch>
  <arg name="serial_no_camera1"/>
  <arg name="serial_no_camera2"/>

  <include file="$(find realsense2_camera)/launch/rs_rgbd.launch">
    <arg name="namespace" value="camera1"/>
    <arg name="serial_no"    value="$(arg serial_no_camera1)"/>
  </include>

  <include file="$(find realsense2_camera)/launch/rs_rgbd.launch">
    <arg name="namespace" value="camera2"/>
    <arg name="serial_no"    value="$(arg serial_no_camera2)"/>
  </include>
</launch>

で,シリアル番号は上のrs_rgbd.launchを起動した時に端末に表示されるものを使うか、realsense-viewerでも確認可能。

realsense-viewer-seria.png

roslaunch rs_multiple_rgbd.launch serial_no_camera1:=XXXXXXXXXX serial_no_camera2:=YYYYYYYYYY
  • 気になるところ:パターンが干渉しないか?

2台のカメラで同じ空間を投影して、片方のカメラを一時的に遮蔽して点群の乱れをチェックしたところ、目に見える範囲では干渉しなかったです。

ezgif.com-optimize.gif

その他

ファームウェア更新通知があったので、更新してみる。

realsense-viewer-update.png

CHANGELOGを見ると、

  • USB2.0の限定サポート
  • PCがスリープから回復した時にクラッシュする問題が解決

らしい。

公式サイトからファームウェアをダウンロードして、ドキュメントどおりにアップデートする。

furushchev@dango:~/Downloads $ lsusb
Bus 002 Device 011: ID 8086:0adb Intel Corp. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 138a:0090 Validity Sensors, Inc. 
Bus 001 Device 003: ID 04f2:b52c Chicony Electronics Co., Ltd 
Bus 001 Device 007: ID 8087:0a2b Intel Corp. 
Bus 001 Device 006: ID 0765:5010 X-Rite, Inc. 
Bus 001 Device 005: ID 058f:9540 Alcor Micro Corp. AU9540 Smartcard Reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
furushchev@dango:~/Downloads $ intel-realsense-dfu -b 002 -d 011 -f -i  Signed_Image_UVC_5_9_13_0.bin 
D400 busnum = 2
D400 devnum = 11
D400 FW file path = Signed_Image_UVC_5_9_13_0.bin
Could not find device in opmode: Device found, but incorrect (vid, pid) combo. Found (8086, adb)
device pid = 2779
Already in DFU mode, do update...
Updating FW...
DFU FW version in file = 5.9.13.0
DFU_version = 60
DFU_isLocked = 0
FW_highestVersion = 0.0.0.0
FW_lastVersion = 0.0.0.0
SerialNumber = 818413020052

Percentage done: 99
Running post download processes...
.
Post download processes done.

Done!
furushchev@dango:~/Downloads $ intel-realsense-dfu -p
FW version on device = 5.9.13.0
MM FW Version = 255.255.255.255

アップデートされた。

アップデートした状態でも上のROSノードは使えました。

まとめ

イイね