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

#<font color="#08088A">◆ 前回記事</font>
[RaspberryPi3とZumoとROSで半永久自走式充放電ロボを作成したい\_009日目_SLAM_Google Cartographer\_LiDAR(A1M8)](https://qiita.com/PINTO/items/9aa737c284dc4e8212f1)　の続き

#<font color="#08088A">◆ はじめに</font>
今回は **`Hector 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有り|
|★||**[Hector SLAM](https://github.com/tu-darmstadt-ros-pkg/hector_slam)**|精度がいまいちっぽい、loop closure無し|
||**[011日目](https://qiita.com/PINTO/items/7939b1e53e23a9458c1d)**|**[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/hector_slam
http://wiki.ros.org/hector_slam/Tutorials/SettingUpForYourRobot
https://code.google.com/archive/p/tu-darmstadt-ros-pkg/downloads**

**【nnn112358さん】
[ROSのLidarSLAMまとめ Qiita](https://qiita.com/nnn112358/items/814c0fb0d2075eb71da0)**

#<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

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

```shell:HectorSLAMのインストール
$ sudo apt install ros-kinetic-hector-*
```

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

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

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

```shell:シミュレーションデータのダウンロードとローンチ
$ wget -P ~/Downloads https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/tu-darmstadt-ros-pkg/Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag
$ cd ~/catkin_ws
$ roslaunch hector_slam_launch tutorial.launch
```

```shell:シミュレーションデータのプレイバック
$ rosbag play ~/Downloads/Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag --clock
```
すぐに再生に成功した。

が、著しく微妙だ。
ロボットが壁を突き抜けて並進しているとともに、検出した壁自体の方角がハチャメチャになってしまっている。

![ezgif.com-optimize (4).gif](https://qiita-image-store.s3.amazonaws.com/0/194769/051f7d33-14e2-7e6b-f474-ff3cac336ed9.gif)

あくまで個人的な感想だが、 **「体力と時間を掛けてまで真面目に試す価値なし。」**
ということで RaspberryPi での検証は行わない。

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

- ちゃっちゃと切り替えて次へ行こうと思う。 時は金なり。
- お手軽にシミュレーションできることがせめてもの救い。
- もしかして、他のアルゴリズムには無い大きなメリットがあるのだろうか？

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

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