特徴
公式サイト
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くらい
インストール
-
更新 Dockerを使う方法もあるようだ。簡単ですね! https://qiita.com/iory/items/fb1664486dc5c73e6ba3
-
公式レポジトリに従う
https://github.com/intel-ros/realsense
-
librealsense
のインストール
-
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
[公式サイト](https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installing-the-packages)には
> Verify that the kernel is updated :
modinfo uvcvideo | grep "version:" should include realsense string
と記述があるが、とくに`realsense`の文字列は現れなかった。気にせずに進む。
```bash
$ 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
みえた。
rosrun rqt_reconfigure rqt_reconfigure
結構細かく設定できそう。
rs435_depth_emitter_enabled
でIRパターンプロジェクションのON/OFFを切り替えられる。
ONのほうが目に見えてノイズが少ない。(静止画だとわかりにくい)
最小レンジはアバウトに15cmくらいのようだ。
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
がコリジョンしている気がしますが、今回は気にしていません。)
<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
でも確認可能。
roslaunch rs_multiple_rgbd.launch serial_no_camera1:=XXXXXXXXXX serial_no_camera2:=YYYYYYYYYY
- 気になるところ:パターンが干渉しないか?
2台のカメラで同じ空間を投影して、片方のカメラを一時的に遮蔽して点群の乱れをチェックしたところ、目に見える範囲では干渉しなかったです。
その他
ファームウェア更新通知があったので、更新してみる。
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ノードは使えました。
まとめ
イイね