UbuntuでIntel Realsense D415を使えるようにするまで(ROSあり・なし両方)

深度センサがついているIntel Realsense D415をUbuntuで使えるようにするまでの手順。
まずはIntel SDKをセットアップし、その後にROSでも使用できるようにする。
最終的にはROS Python経由で深度情報を取ってくることができるようになりたい。

# 環境
* Ubuntu 18.04
* Intel realsense D415 (https://www.intelrealsense.com/depth-camera-d415/)  
試してはいないがUbunbtu16, realsense D435でも同様にセットアップできるはず。

# 手順
1. Intel Realsense SDK インストール
2. ROS インストール
3. realsenseをROSに対応
4. ROS Pythonで深度情報を取得する(次回)

# Intel Realsense SDK setup
基本的には以下の公式インストール手順に従って行う。
https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installing-the-packages

1. 公開鍵を登録  

``` bash
sudo apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE
```    
2. サーバーをレポジトリリストに登録  
Ubuntu 16か18でxenialかbionicかが異なる  
Ubuntu 18:  

```bash
sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" -u
```  

Ubuntu 16:
  
```bash
sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u
```  

3. ライブラリをインストール  

```bash
sudo apt-get install librealsense2-dkms    
sudo apt-get install librealsense2-utils
```
4. 開発者用ツール、デバッガツールをインストール(オプション)   

```bash
sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg
```

ここまで行くとRealsense SDKを使うことができるようになる。  
realsenseをつなげ、以下のコマンドによりrealsense viewerを立ち上げる。

```bash
realsense-viewer
```  
正常にveiwerが立ち上がり、Realsenseが認識されていたら成功 !
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190972/fa7eb040-22cd-aa49-5dd6-78e19b96c38b.png)

# ROS Setup
次にROSでrealsenseが扱えるようにする。 
そのためにまずはROSをインストールする。  
ROSはUbuntuのバージョンにより名前が異なる。今回はUbuntu18なのでROS Melodic。
こちらも基本的には公式のインストール手順に従えばOK。
http://wiki.ros.org/melodic/Installation/Ubuntu


セットアップの手順は省略するが、公式インストール手順のすべてを実行する。

ROSをインストールした後にcatkin workspaceを作る。
http://wiki.ros.org/ja/catkin/Tutorials/create_a_workspace 
bashで以下を実行。 
1. 

```bash
source /opt/ros/melodic/setup.bash
```

2. ディレクトリ作製

```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
```

3. ビルド

```bash
cd ~/catkin_ws/
catkin_make
``` 


```bash
source devel/setup.bash
```

# Intel RealsenseをROSに対応させる  
最後にrealsenseをROSから使えるようにするためROSラッパーをインストールする。
https://github.com/IntelRealSense/realsense-ros#installation-instructions


1. ROSセットアップで作成したcatkin_workspaceに移動   

```bash
cd ~/catkin/src/
```
2. ソースコードをダウンロード  

```bash
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 ..
```
3. インストール  

```bash
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  
```
---------
追記(2020/05/01):
ddynamicのパッケージに変更があり、上記のcatkin_make cleanを実行する際にエラーが出ました。

```bash
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by
  "ddynamic_reconfigure" with any of the following names:

    ddynamic_reconfigureConfig.cmake
    ddynamic_reconfigure-config.cmake
```
この問題は以下のようにddynamicをアップデートすることで解決できます。

```bash
sudo apt-get update
sudo apt-get install ros-melodic-ddynamic-reconfigure
```
(追記終了)

-----------------

これにてインストール完了。
以下の2つコマンドで画像が表示されれば成功！

```bash
roslaunch realsense2_camera rs_camera.launch
```
別のターミナルで

```bash
rosrun image_view image_view  image:=/camera/color/image_raw
```


# 次回
次回はROSPyで深度情報の取得を行う。