Jetson nanoにROS melodic/turtlebot3モデル/ROS arucoライブラリをインストール

# 目的
Jetson nanoにROS melodic/turtlebot3モデル/arucoライブラリをインストールした際の備忘録です
turtlebot3モデルはGAZEBOで利用するためのモデルです。
arucoは、ARマーカー読み取りライブラリです。

# 準備
Jetson nano

- [NVIDIA Jetson Nano Developer Kit - 強力 AI コンピュータ 開発者キット](https://www.amazon.co.jp/NVIDIA-Jetson-Nano-Developer-Kit/dp/B07QQ9CFNP)
- [ACアダプター 5V 4A](https://www.amazon.co.jp/ACアダプター-大手メーカーOEM社製品-センタープラス-スイッチング式-出力プラグ外径5-5mm/dp/B015RKFAA2/ref=pd_bxgy_img_2/357-2007671-5147250?_encoding=UTF8&pd_rd_i=B015RKFAA2&pd_rd_r=3d11785f-413f-4547-9d1d-82c1d1c8278b&pd_rd_w=A4fe4&pd_rd_wg=4YNMu&pf_rd_p=e64b0a81-ca1b-4802-bd2c-a4b65bccc76e&pf_rd_r=4FTAZ84F5C65KXVT997N&psc=1&refRID=4FTAZ84F5C65KXVT997N)
- ~~32GB micro SDカード~~ 
- [microSDXC 128GB SanDisk サンディスク Extreme PRO](https://www.amazon.co.jp/【5年保証】microSDXC-SanDisk-サンディスク-Extreme-SDアダプター付/dp/B07HDYP74S/ref=sr_1_3?__mk_ja_JP=カタカナ&dchild=1&keywords=SanDisk+%28+サンディスク+%29+128GB+microSD+Extreme+PRO&qid=1605145146&s=computers&sr=1-3)
（[【性能同じくらいでお手頃なモデル】microSDXC 128GB](https://www.amazon.co.jp/読取り最大100MB-【Nintendo-メーカー動作確認済】-SanDisk-SDSQUAR-128G-EPK/dp/B07YLTZ5PT/ref=zg_bs_171386011_4?_encoding=UTF8&psc=1&refRID=4RJJ7G81HF2AGVVZYV7M) ）

以下、必要に応じて
- [(必要に応じて) BUFFALO wifi ドングル BUFFALO-無線LAN子機-コンパクトモデル-11n技術・11g-WLI-UC-GNM/dp/B003NSAMW2](https://www.amazon.co.jp/BUFFALO-無線LAN子機-コンパクトモデル-11n技術・11g-WLI-UC-GNM/dp/B003NSAMW2)
- (必要に応じて) USBキーボード、マウス
- (必要に応じて) HDMI接続可能なディスプレイ

もっと安いモデルがあればそちらでも可
~~斜線~~ は試すも使うのを敬遠したもの。シミュレータや機械学習するならr/w早い方が効率的

◼️Jetson nano 開発者キット スペック
<img width="626" alt="スクリーンショット 2020-02-01 18.18.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/344880/e82681cd-63c9-c1bd-fa17-2def45d1343a.png">


起動イメージは以下から入手します。
[JetPack SDK](https://developer.nvidia.com/embedded/jetpack)--> "Download the SD Card Image"からダウンロード（2020/11/1時点だとJetPack 4.4.1が最新）
SDカードへの書き込みは、[Etcher](https://qiita.com/seigot/items/38223c3f57d7b762967e)などのソフトが便利です。

# インストール

####１．ROS melodicをインストール

以下を参考にさせて頂きます。
> [Jetson NanoにROSをインストールする方法](https://qiita.com/karaage0703/items/aa54e086f0a2f165d3e9)
> 
> ```
> $ git clone https://github.com/karaage0703/jetson-nano-tools
> $ cd jetson-nano-tools
> $ ./install-ros-melodic.sh
> ```

####２．turtlebot3ロボットモデルのインストール
```
$ sudo apt-get install ros-melodic-turtlebot3
$ sudo apt-get install ros-melodic-turtlebot3-msgs
$ sudo apt-get install ros-melodic-turtlebot3-simulations
```

####３．arucoのインストール

###### ３．１．workspace作成がまだであれば、作成します。
> [create_a_workspace](http://wiki.ros.org/ja/catkin/Tutorials/create_a_workspace)
>
```
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws/
$ catkin_make
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
```

###### ３．２．arucoのgithubリポジトリをクローンします。

```
$ cd ~/catkin_ws/src
$ git clone https://github.com/pal-robotics/aruco_ros
```

###### ３．３．catkin makeでarucoをビルドします。

```
$ cd ~/catkin_ws/
$ catkin_make
```

--> catkin_makeが成功したらOK。（その後、rebootが必要な場合があります）

# CodingError対策

```
$ sudo apt-get install ros-melodic-aruco-ros
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
E: パッケージ ros-kinetic-melodic-ros が見つかりません
```

melodic-ros packageは見つからないようなので、
arucoをビルドして解決（３．arucoのインストール　参照）

# 参考
[Jetson NanoにROSをインストールする方法](https://qiita.com/karaage0703/items/aa54e086f0a2f165d3e9)
[ros turtlebot3](http://wiki.ros.org/turtlebot3)
[ros create_a_workspace](http://wiki.ros.org/ja/catkin/Tutorials/create_a_workspace)
[ros aruco](http://wiki.ros.org/aruco)