RealSenseD435iをROS(Melodic)で使えるようにしてPointCloudで表示させる

本記事は2021年4月4日に修正しています。

本記事は
Ubuntu18.04LTS
ROS Melodic
で行われています．

# Ubuntu上で使えるようにする

### 使用するコマンドのインストール

intel-realsense-dfuというコマンドが必要なため、これをインストールします。

```
sudo apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE
#リポジトリの登録
sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u

sudo apt-get update
#インストール
sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev librealsense2-dbg  intel-realsense-dfu
```


### D435のファームウェアのアップデート
まずはD435自体のファームウェアのアップデートが必要になります．
こちらのサイトで「Download」を押します。
https://www.intel.com/content/www/us/en/search.html?ws=text#q=realsense&t=Downloads&layout=table

![Screenshot from 2021-04-04 12-45-09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/5f8f785c-9cfc-bbb1-b6c8-1f95ee2e68eb.png)


ダウンロードしたzipファイルを解凍します．

その中に
Signed_Image_UVC_5_12_11_0.bin
のような名前のファイルがあるので

これを適当なディレクトリにおいてください．
次にその<font color="red">ディレクトリ上で</font>操作を行います．



```
lsusb
```
としてRealSenseのBusとDevice番号を調べます．

![IMG_0500.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/f517fe35-2347-68aa-9368-929194957778.jpeg)

Intel Corp.と表示されているBusとDeviceの番号（こんかいであれば両方002）を覚えておいてください．

この番号と先程ダウンロードしたSigned~のファイルを使ってアップデートしていきます．
再度./Signed_Image_UVC_5_11_11_100.binのファイルがあるディレクトリにいることを確認して

```
intel-realsense-dfu -b 002 -d 002 -f -i ./Signed_Image_UVC_5_11_11_100.bin
```

-b の後の番号がBus番号，-d の後の番号がDevice番号になります．
5_11_11_100の部分はダウンロードしたファイルのバージョンに変えてください．

実行して
![IMG_0501.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/f72c576a-62f3-168e-ea23-e3bf707fbe12.jpeg)


Done!と出れば成功です．

ここでRealSenseを一度抜き差ししてください．


```
realsense-viewer
```
を実行してviewerを起動させ、必要なファームウェアをインストールします。
起動時に右上に出てくる「Install」を押してしばらく待ちます<font color="red">（結構時間かかるためお茶でも飲んで待ちましょう）</font>。

![Screenshot from 2021-04-04 14-01-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/160a84c9-58d5-6ac1-9a97-16696935d97f.png)


インストールがおわったら左側の「<font color="red">off</font>」を「<font color="blue">on</font>」に切り替えればそれぞれの機能を実行できます。


![IMG_0502.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/147d8c6f-c413-728a-1652-01f063ff540f.jpeg)



# ROSで使えるようにする

以下のgitのサイトから２つほどダウンロードして解凍してください．

https://github.com/IntelRealSense/realsense-ros
![IMG_0503.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/3b702673-a8a8-f7fc-d518-cc9cfc2ef70b.jpeg)


https://github.com/pal-robotics/ddynamic_reconfigure/tree/kinetic-devel
![IMG_0504.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/3e0347d9-284b-cca1-d6b5-79450f3d0eb4.jpeg)



ダウンロードして解凍したら
~/catkin_ws/src
の中に入れ，名前をそれぞれ「ddynamic_reconfigure」と「realsense-ros」に変更する

![IMG_0505.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/e9b4d628-5c24-dff8-f7d8-7fc1f4f9709c.jpeg)


```
sudo apt-get install ros-$ROS_VER-realsense2-description


cd ~/catkin_ws
catkin_make
```

これでインストール完了です．
以下を実行してカメラの画像が出てくれば起動できています．

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

![Screenshot from 2019-09-29 14-47-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/f8a3ce71-9f79-e403-5f77-94d895486c59.png)

# RvizでPointCloudを表示する

もうRealsenseは使えるのですが，おまけでRvizでPointCloudを表示してみたいと思います．

RealSenseを起動させて

```
roslaunch realsense2_camera rs_rgbd.launch align_depth:=true
```
続いてRvizを起動させます

```
rviz rviz
```
Rvizが起動したら
add → By display type → PointCloud2 → OK
と押していきます．
![IMG_0509.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/24374288-0b7c-578c-f712-7b3ceef3d425.jpeg)

次にPointCloud2のTopic欄の▼を押して
/camera/depth_registered/points
に変更していきます
![IMG_0507.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/c992dbe0-cf20-8154-d8e7-fed46d11a3b6.jpeg)

次にGlobal OptionsのFixed Frame欄も同様に▼を押して
camera_link
に変更します．
![IMG_0508.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/24ddb3f3-efed-240b-10a1-7b2e02e9aafd.jpeg)

これでPointCloudが表示されます．
![Screenshot from 2019-09-29 21-17-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149593/8b9fb1ac-d18a-2e8e-fa12-e4bab124a230.png)





参考サイト
https://www.intel.com/content/dam/support/us/en/documents/emerging-technologies/intel-realsense-technology/Linux-RealSense-D400-DFU-Guide.pdf
https://naonaorange.hatenablog.com/entry/2018/11/04/174745
https://qiita.com/idev_jp/items/bcf198a22599294ab976