TurtleBotで複数台Navigationを試す

#リンク

https://github.com/Pallav1299/Navigate_Multiple_Robots

# 説明

複数台Navigationが動作する環境を調べていたら上のリポジトリをみつけたので、動かすまでのトラブルシュートをメモしました。
記事執筆時点から2年前のコードだったので書式の仕様変更によるものなどもあり、エラー文で調べる人の助けになれば良いなと思ってます。

# 動かすまで。

0. 環境の用意
　→[こちら](https://github.com/sibafb/akiemon_dockerfiles/tree/main/dockerfiles/turtlebot3_rosserial)にクローンした直後に動くようにしたDockerFileを用意しました。
　→その他melodicの動作環境ならだいたい動く気がします。
1. 上記リポジトリのclone、catkin_make
2. 下記コマンドで動作する。
    ```
    roslaunch multi_turtlebots_sim main.launch 
    #別タブで
    roslaunch multi_turtlebots_nav navigation.launch 
    ```
3. (とりあえず動かす場合)Rviz→ToolProperty　で、２D Nav Goal　のトピック名を/robot1/move_base_simple/goalなどとして、移動してほしい場所をクリックする

※４の動作は下記の動画が細かい所の説明になっている。(02：20ぐらいから)
https://www.youtube.com/watch?v=iyL_hsqjKWI

## トラブルシュートの記録

遭遇したトラブルと修正方法を記録しておきます。

#### Error Code: 11 Msg: Unable to find uri[model://turtlebot3_house]  
![Screenshot from 2022-02-01 21-27-19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190370/b36a4155-2b18-631f-28d7-cf0f90409229.png)

→ turtlebotのhouseモデルに依存しているので、turtle-botをインストールする。
```
sudo apt-get install -y ros-melodic-turtlebot3-*
```

#### ERROR: cannot launch node of type [map_server/map_server]: map_server

こちらは１つ上のエラーに伴うもので、一通りパッケージを入れればOK（apt で）

```
sudo apt-get install -y ros-melodic-amcl ros-melodic-move-base ros-melodic-map-server ros-melodic-dwa-local-planner
```

#### [ERROR] [1643752530.868833955]: failed to open image file "/home/pallav/test/map.pgm": Couldn't open /home/pallav/test/map.pgm

map.yamlのPathがもともとの開発者のままなので修正すればOK

```diff:map.yaml
- image: /home/pallav/test/map.pgm
+ image: ./map.pgm
```

#### Warning: Invalid argument "/map" passed to canTransform argument target_frame in tf2 frame_ids cannot start with a '/' like:at line 134 in /tmp/binarydeb/ros-melodic-tf2-0.6.5/src/buffer_core.cpp


参考：[ROS、tf2に切り替えた際の以下のエラーの解消法](https://www.robotech-note.com/entry/2019/09/20/ROS%E3%80%81tf2%E3%81%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%9F%E9%9A%9B%E3%81%AE%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AE%E8%A7%A3%E6%B6%88%E6%B3%95_%28Warning%29Invalid_arg)

move_base のlaunchファイルのglobal_frame_idを変更

```diff:move_base_1~3.launch
- <arg name="global_frame_id" default="/map"/>
+ <arg name="global_frame_id" default="map"/>
```


### [FATAL] [1644070324.098345686, 640.975000000]: Failed to create the dwa_local_planner/DWAPlannerROS planner, 

以下のようなエラー、DWAが入っていないので入れる。(上のほうの対応でdwaを入れなかった場合。)

![Screenshot from 2022-02-05 23-14-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190370/fb00eec9-66ac-8619-0414-227e669fe386.png)

```
sudo apt-get install ros-melodic-dwa-local-planner
```

### global_costmap: Parameter "plugins" not provided, loading pre-Hydro parameters

```
[ WARN] [1644240052.367456706, 143.033000000]: global_costmap: Parameter "plugins" not provided, loading pre-Hydro parameters
[ WARN] [1644240052.824814640, 143.490000000]: local_costmap: Parameter "plugins" not provided, loading pre-Hydro parameters

```

https://qiita.com/srs/items/fba2c83b96d17b2680e6#%E3%82%B3%E3%82%B9%E3%83%88%E3%83%9E%E3%83%83%E3%83%97%E3%81%AE%E8%A8%AD%E5%AE%9A

>またcostmapの使用がHydroから大きく変わっていて、パラメーター設定の方法がpre-Hydro形式と最新の形>式があります。pluginsというパラメーターがないとpre-Hydro形式になって色々なパラメーターを良しなに>内部で設定してくれます。

警告ということもあり一旦保留。

### Parameter max_trans_vel is deprecated

```
[ WARN] [1644240052.944792306, 143.610000000]: Parameter max_trans_vel is deprecated (and will not load properly). Use max_vel_trans instead.
[ WARN] [1644240052.944981141, 143.610000000]: Parameter min_trans_vel is deprecated (and will not load properly). Use min_vel_trans instead.
[ WARN] [1644240052.945159060, 143.610000000]: Parameter max_rot_vel is deprecated (and will not load properly). Use max_vel_theta instead.
[ WARN] [1644240052.945326440, 143.610000000]: Parameter min_rot_vel is deprecated (and will not load properly). Use min_vel_theta instead.
```

dwaのパラメメータ指定の名前の指定が古いので変更する（公式の修正時コミット）
https://github.com/ROBOTIS-GIT/turtlebot3/pull/415/commits/36166ef18615f23837362970059a11c664b97230

https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/tutorial_ros_multi_navigation.html