intel Realsense™Depth Cameraのjetsonnanoにおける初期設定

# はじめに
ここでは，intel製デプスカメラ Realsense を Jetson Nanoで使えるようにするための初期設定について記録する．また，ROSで使えるようにするためのセットアップについても解説する．
ここでは各コードの説明をしながら述べているが，面倒な人は一番最後の”コード総集編”のコードをコピーして実行すればよい．
この記事はあくまで Jetsonnano 用の方法であり，PC用ではないことに注意．PCでの初期設定は下記 intel 公式Githubを参照すること．（この記事は下記サイトの簡略版と考えてほしい）
https://github.com/IntelRealSense


＜ 使用したJetson Nanoのスペック ＞
|            |        |
|:-----------------:|:------------------:|
| Jetson Nano Developer Kit | NVIDIA |
|   GPU|      128コアNVIDIA Maxwell™<br>アーキテクチャGPU|
| CPU             |              クアッドコアARM®<br>Cortex®-A57 MPCoreプロセッサ |
| メモリ              |                4GB 64ビット LRDDR4 |
| ストレージ            |             microSD(64GB) |
|ROS version|18.04 Melodic|

# 必要なプログラムファイル
・librealsense ( Realsense SDK )
　RealSenseから撮影データを取得するためのクロスプラットフォームなC++のライブラリ

・Realsense-Ros
　RealSenseカメラをROSベースのプロジェクトで利用するためのドライバやツール

以上の2つのプログラムファイルを使用する．

# librealsenseのインストール＆ビルド
librealsenseは公式Githubからgit cloneしてインストールを行う．git cloneをするうえでJetsonnanoにGitをインストールしておくことを推奨する．無くても大丈夫だと思うが念のため以下のコマンドを実行してインストールしておこう．
```
sudo apt-get install git-all
```

ここまでの準備が出来たら，librealsenseをgit cloneする．
```
cd 
git clone https://github.com/jetsonhacksnano/installLibrealsense
cd ~/installLibrealsense
./installLibrealsense.sh
```
上記のコマンドを実行することで librealsense のgit clone 及びインストールが出来た．
次に，OpenCV4.x 系に対応できるようにシンボリックリンクを作成する．以下のコマンドを実行する．
```
sudo ln -s /usr/include/opencv4/ /usr/include/opencv
```
ここでの usr は自分のアカウント名ではなく，単に usr である．このまま打ち込んでほしい．
以上で librealsense の環境構築が出来た．
# Realsense-Rosのインストール
Realsese-Rosも公式Gitからgit cloneする．ただここで注意が必要である．
![スクリーンショット 2023-08-23 145810.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3511665/44940c70-2eba-c04d-c424-f10458724b6e.jpeg)
今（2023-08-24）のintelRealsense-rosの画面はこんな感じだが，この画面のhttpsでgit cloneするとこのbranchである"ros2-developmant"のファイルがインストールされる．ただ，JetsonNanoはros1であるため，このファイルでは動かせない．したがって，ros1用のbranchを指定してgit cloneする．

## branchってなんだ？
少し話が逸れるが，Githubのbranch構造について解説する．
技術は日々進歩してGithubの情報も更新される．branchとはPCでいうフォルダーだと考えてほしい．
今回の話でいうと，Github上にrealsense-rosというフォルダーがあり，その中にros1用・ros2用・各ハードウェア用とわかりやすく分けたフォルダーを作成している．
branchは左側の下矢印（下写真赤丸）を押すことで展開される．
![スクリーンショット 2023-08-23 145810.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3511665/f3b7888f-0763-d1e9-938c-a308dd57201e.jpeg)
JetsonNanoにはbranch内の "ros1-legacy"を使用する．

# Realsense-Rosのインストール（続き）
以下のコマンドを順に実行していく．
```
sudo apt install -y ros-melodic-ddynamic-reconfigure
$ cd ~/catkin_ws/src
```
branchを指定してgit cloneするには以下のコマンドを使用する．
```
git clone -b 指定branch名 https~
```
したがって，今回は以下のコマンドを実行する．
```
git clone -b ros1-legacy https://github.com/IntelRealSense/realsense-ros
```
ビルドする．
```
catkin build
source ~/.bashrc
```
最後に，RGB画像とDepth画像の座標系をそろえるためのプログラム rgbd-launch をインストールする．
```
sudo apt install ros-melodic-rgbd-launch
```
以上のコマンドでrealsense-rosがインストールできた．

# おわりに
ここまでできれば，realsenseをJetsonNanoで使用できるはずである．公式Githubは英語で分かりにくいので困った人はこの記事を参照してもらえれば幸いである．
# コード総集編
説明に特に興味が無い人は以下のコマンドをコピーして実行しよう．

・librealsenseのインストール
```
cd 
git clone https://github.com/jetsonhacksnano/installLibrealsense
cd ~/installLibrealsense
./installLibrealsense.sh
sudo ln -s /usr/include/opencv4/ /usr/include/opencv
```

・Realsense-Rosのインストール
```
sudo apt install -y ros-melodic-ddynamic-reconfigure
cd ~/catkin_ws/src
git clone -b ros1-legacy https://github.com/IntelRealSense/realsense-ros
catkin build
source ~/.bashrc
sudo apt install ros-melodic-rgbd-launch
```