RaspberryPi3とZumoとROSで半永久自走式充放電ロボを作成したい_011日目_SLAM_Karto SLAM_LiDAR(A1M8)

#<font color="#08088A">◆ 前回記事</font>
[RaspberryPi3とZumoとROSで半永久自走式充放電ロボを作成したい\_010日目\_SLAM_Hector SLAM_LiDAR(A1M8)](https://qiita.com/PINTO/items/9aa737c284dc4e8212f1)　の続き
#<font color="#08088A">◆ はじめに</font>
今回は **`Karto SLAM`** を試行してみる。
公式ページを読み込んでいくと金儲けの匂いがプンプン漂うので、試す前から切り捨てたい気持ちでいっぱい。

|今回|他記事|アルゴリズム|特徴|
|:-:|:--|:---|:---|
||**[008日目](https://qiita.com/PINTO/items/9aa737c284dc4e8212f1)**|**[Gmapping](https://github.com/ros-perception/slam_gmapping/tree/hydro-devel/gmapping)**|一番有名らしい、ROS対応、loop closure有り|
||**[009日目](https://qiita.com/PINTO/items/4845c438cac05eda4d1e)**|**[Google Cartographer](https://github.com/googlecartographer/cartographer)**|精度が高そう、**[ROS対応](https://github.com/googlecartographer/cartographer_ros)**、loop closure有り|
||**[010日目](https://qiita.com/PINTO/items/b3eb7205baf9c55de81b)**|**[Hector SLAM](https://github.com/tu-darmstadt-ros-pkg/hector_slam)**|精度がいまいちっぽい、loop closure無し|
|★||**[Karto SLAM](https://www.kartorobotics.com/)**|単眼カメラでも動く、**[ROS対応](https://github.com/ros-perception/slam_karto)**、Visual-SLAM|
||**[012日目](https://qiita.com/PINTO/items/5ffdb0484b07d78ab38f)**|**[ORB-SLAM2](https://github.com/raulmur/ORB_SLAM2)**|単眼カメラでも動く、Visual-SLAM||
||**[007日目](https://qiita.com/PINTO/items/c5d69c0c0c58d4ded3f8)**|**[mono-vo](https://github.com/PINTO0309/mono-vo)**|単眼カメラでも動く、Visual-SLAM|
||**[013日目](https://qiita.com/PINTO/items/8989f45ad0908184e6e5)**|**[VINS-Mono](https://github.com/PINTO0309/VINS-Mono)**|単眼カメラでも動く、ROS対応、Visual-SLAM、ドローン|
|ー|ー|**[CNN-SLAM](https://github.com/Lishunkai/CNN-SLAM)**|単眼カメラでも動く、3D、アイデアのメモ情報しか見当たらなかったため検証対象外とする|
|ー|ー|**[RGBD-SLAM-V2](http://wiki.ros.org/rgbdslam)**|RGB-Dカメラ専用、検証対象外とする|

#<font color="#08088A">◆ 参考にさせていただいた記事、謝辞</font>
**【公式】
http://wiki.ros.org/karto
http://wiki.ros.org/slam_karto
https://github.com/ros-perception/open_karto**

#<font color="#08088A">◆ 作業に着手する前の前提条件</font>
**[Raspbian Stretch+NCS(Neural Compute Stick)+YoloV2+Webカメラ＋ROSによるリアルタイム複数動体検知環境の構築](https://qiita.com/PINTO/items/b084fe3dc716c42e2867)** と **００２日目** から **０１０日目** の記事を参考に、全ての作業を実施済みであり、導入済みパッケージの種類と数の同期がとれていることを前提とする。

#<font color="#08088A">◆ UbuntuPCでのシミュレーション</font>
このフェーズでの検証環境は下記。

■ 検証用PC

OS：Ubuntu 16.04
CPU：第3世代 Intel Core i7-3517U(1.9GHz)
MEM：16GB
ROS kinetic

下記コマンドで **`Karto SLAM`** をインストールする。

```shell:KartoSLAMのパッケージインストール
$ sudo apt install ros-kinetic-open-karto
$ sudo apt install ros-kinetic-slam-karto
```

サンプル一式のクローンとビルド。

```shell:サンプル一式のクローン
$ cd ~/catkin_ws/src
$ git clone https://github.com/PINTO0309/slam_karto.git
$ git clone https://github.com/PINTO0309/open_karto.git
$ cd ..
$ catkin_make
```

サンプルシミュレーションの実行。
ここでいきなりつまづく。
あちこち探したが、サンプルのbagファイルが見つけられない。
とりあえず、Hector SLAMのbagファイルを流用する。

下記コマンドを実行。

```shell:launchファイルの編集
$ nano ~/catkin_ws/src/slam_karto/launch/karto_slam.launch
```

下記のおとり編集。

```xml:karto_slam.launch
<launch>
  <node pkg="slam_karto" type="slam_karto" name="slam_karto" output="screen">
    <!--<remap from="scan" to="base_scan"/>-->
    <!--<param name="odom_frame" value="odom_combined"/>-->
    <param name="map_update_interval" value="25"/>
    <param name="resolution" value="0.025"/>
  </node>
</launch>
```

サンプルシミュレーションの実行。

```shell:karto_slamの起動
$ cd ~/catkin_ws
$ roslaunch slam_karto karto_slam.launch
```

```shell:シミュレーションデータのプレイバック
$ rosbag play ~/Downloads/tu-darmstadt-ros-pkg/Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag --clock
```

```shell:rvizの起動
$ rosrun rviz rviz
```

rviz起動後にmapフレームとtfフレームとscan(laserscan)を足してみる。
が、ダメだ。動かない。

あくまでも個人的な意見だが、いくらなんでも公式チュートリアルの質が悪すぎる。
mapへのtf変換などが必要なのは容易に想像できるが、"手軽に" 使わせることをしっかり想定してフォローされているようにはとても思えない。

![140.png](https://qiita-image-store.s3.amazonaws.com/0/194769/f04d5645-f895-3aab-b6ca-ddc5999309bf.png)

”初心者の肌感覚で” 猛烈に使い勝手が悪い。
時間を使うだけ無駄なものは早々に切り捨てる。

#<font color="#08088A">◆ 本日のまとめ</font>

- ココに来て初めて動作確認に失敗。
- とっとと見切りを付けて、次へ行こうと思う。
- ちなみに、Githubは少なくとも１年以上メンテナンスが止まっている。

#<font color="#08088A">◆ 次回予告</font>
**`ORB-SLAM2`** にチャレンジしようと思う。

#<font color="#08088A">◆ 次回記事</font>
[RaspberryPi3とZumoとROSで半永久自走式充放電ロボを作成したい\_012日目_SLAM_ORB-SLAM2](https://qiita.com/PINTO/items/5ffdb0484b07d78ab38f)　へ続く