ROS2 Navigation（Isaac SIM）チュートリアル実行

#目次
[1.解説通りに実行](#1-解説通りに実行)
[2.ワークスペース作成](#2-ワークスペース作成)
[3.パッケージ取り出し](#3-パッケージ取り出し)
[4.動作サンプル](#4-動作サンプル)
[5.おわりに](#5-おわりに)

# 1. 解説通りに実行

* Prerequisiteを進める
    * ROS2 Foxyはインストール済みなので、これはそのまま
    * Nav2 project?　これはインストールしていないので、インストール
    * (For Ubuntu 20.04 use this command as the parsing of wildcards have been changed:の記載通りにaptでインストールできました。

```
sudo apt install ros-foxy-navigation2 ros-foxy-nav2-bringup '~ros-foxy-turtlebot3-.*'

```
    
* ・・・何の気なしに呼び出してみると今回の主役Carterさんはうんともすんともいいません。
　→ワークスペースがTurtlebot3のものしかない！


# 2. ワークスペース作成
* ワークスペースを作成して

```
mkdir ros2_workspace
cd ros2_workspace
mkdir src
cd ..

colcon build

```
* 参照元は同じページにあった解説です。

https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_ros.html#isaac-sim-app-install-ros


* 0のアイテムができたっぽい。0…そりゃそうですよね。
    * ROS2セットアップ時に上手くできたTurtlebot3はsrcにTurtlebot3のデータをcloneしていましたが、今回はしていません。

* ど素人ですので、素直に再実行や検索をしても上記のリンクが紹介されるフォーラムの書き込みだけでどこにもソースがありません・・・
       
# 3. パッケージ取り出し
* よくさがしてみるとどうもhome直下にCarterさんはここにいることが判明。

```
cd ~/.local/share/ov/pkg/isaac_sim-2022.1.0/ros2_workspace/src
ls

#結果
isaac_moveit  isaac_ros2_messages  isaac_tutorials  navigation

#上記パッケージフォルダの内、navigationにCarterのパッケージが入っています(2022/7/13追記)


```    
* このsrcフォルダを先程作ったワークスペースにコピーします(一応慎重なつもり）

```
sudo cp -r /src  ~/ros2_workspace/src2

```
* このsrc2としたパッケージのコピーを念の為、別なフォルダへ取って、srcを削除し、src2をリネーム

```
#ワークフォルダ上で
colcon build

```
**おおお~ビルド開始されて、パッケージも入った！**

# 4. 動作サンプル
https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/tutorial_ros2_navigation.html#isaac-sim-app-tutorial-ros2-navigation

* 5.5. Sending Goals ProgrammaticallyのコマンドをたたくとRviz2もしっかり立ち上がって倉庫マップの中を走行できる様になっています。

    * こちらのインストールされたパッケージは既にマップ作成済みでしたので、いきなり動作させることができました。

![Screenshot from 2022-07-11 15-05-18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2155177/91966fbd-47d3-a836-6a15-d7e74b65a625.png)

:::note info
2023/2/6追記
* メモリを64GB追加できましたので、チュートリアル6の病院で3台動作させてみました。
かなりうなっていますね。

```Ubuntu:ターミナル画面

(osac) aaai@aaai-MS:~/Desktop$ nvidia-smi
Mon Feb  6 11:39:34 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:10:00.0  On |                  N/A |
| 87%   81C    P2   342W / 350W |  10611MiB / 24576MiB |    100%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1166      G   /usr/lib/xorg/Xorg                102MiB |
|    0   N/A  N/A      1898      G   /usr/lib/xorg/Xorg                457MiB |
|    0   N/A  N/A      2073      G   /usr/bin/gnome-shell               72MiB |
|    0   N/A  N/A      2503      G   ...RendererForSitePerProcess       11MiB |
|    0   N/A  N/A      3088      G   ...272753472212974227,131072       52MiB |
|    0   N/A  N/A      6373    C+G   ...saac_sim-2022.1.0/kit/kit     9848MiB |
|    0   N/A  N/A     11239      G   .../ros/foxy/lib/rviz2/rviz2       12MiB |
|    0   N/A  N/A     11259      G   .../ros/foxy/lib/rviz2/rviz2       12MiB |
|    0   N/A  N/A     11386      G   .../ros/foxy/lib/rviz2/rviz2       14MiB |
+-----------------------------------------------------------------------------+


$ free -m
              total        used        free      shared  buff/cache   available
Mem:          76295       25053       44650          91        6592       50378
Swap:          2047           0        2047

```

:::


# 5. おわりに
* 無理やり感は強いですが、無事にROS2とIsaac SIMの連携動作ができました。ちょっと感激しました。
    * 時間があれば、マップファイルを消して新たに作り直してみる予定です。

:::note info
補足
当方の環境は貧弱な為、この先のオフィスや病院といった巨大且つ複数ロボを動かすようなシーンは残念ながら動かす事ができませんでした（メモリフル）
推奨の128GBはやはり必要なのでしょうか!?
:::

:::note warn
注意
シナリオを読み込む前にROSからROS2 BRIDGE有効に変更しておいてください。
:::