#◆ 前回記事
RaspberryPi3とZumoとROSで半永久自走式充放電ロボを作成したい_009日目_SLAM_Google Cartographer_LiDAR(A1M8) の続き
#◆ はじめに
今回は Hector SLAM
を試行してみる。
今回 | 他記事 | アルゴリズム | 特徴 |
---|---|---|---|
008日目 | Gmapping | 一番有名らしい、ROS対応、loop closure有り | |
009日目 | Google Cartographer | 精度が高そう、ROS対応、loop closure有り | |
★ | Hector SLAM | 精度がいまいちっぽい、loop closure無し | |
011日目 | Karto SLAM | 単眼カメラでも動く、ROS対応、Visual-SLAM | |
012日目 | ORB-SLAM2 | 単眼カメラでも動く、Visual-SLAM | |
007日目 | mono-vo | 単眼カメラでも動く、Visual-SLAM | |
013日目 | VINS-Mono | 単眼カメラでも動く、ROS対応、Visual-SLAM、ドローン | |
ー | ー | CNN-SLAM | 単眼カメラでも動く、3D、アイデアのメモ情報しか見当たらなかったため検証対象外とする |
ー | ー | RGBD-SLAM-V2 | RGB-Dカメラ専用、検証対象外とする |
#◆ 参考にさせていただいた記事、謝辞
【公式】
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
#◆ 作業に着手する前の前提条件
Raspbian Stretch+NCS(Neural Compute Stick)+YoloV2+Webカメラ+ROSによるリアルタイム複数動体検知環境の構築 と 002日目 から 009日目 の記事を参考に、全ての作業を実施済みであり、導入済みパッケージの種類と数の同期がとれていることを前提とする。
#◆ UbuntuPCでのシミュレーション
このフェーズでの検証環境は下記。
■ 検証用PC
OS:Ubuntu 16.04
CPU:第3世代 Intel Core i7-3517U(1.9GHz)
MEM:16GB
ROS kinetic
下記コマンドで Hector SLAM
をインストールする。
$ sudo apt install ros-kinetic-hector-*
サンプル一式のクローンとビルド。
$ cd ~/catkin_ws/src
$ git clone https://github.com/PINTO0309/hector_slam.git
$ cd ..
$ catkin_make
サンプルシミュレーションの実行。
$ 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
$ rosbag play ~/Downloads/Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag --clock
すぐに再生に成功した。
が、著しく微妙だ。
ロボットが壁を突き抜けて並進しているとともに、検出した壁自体の方角がハチャメチャになってしまっている。
あくまで個人的な感想だが、 「体力と時間を掛けてまで真面目に試す価値なし。」
ということで RaspberryPi での検証は行わない。
#◆ 本日のまとめ
- ちゃっちゃと切り替えて次へ行こうと思う。 時は金なり。
- お手軽にシミュレーションできることがせめてもの救い。
- もしかして、他のアルゴリズムには無い大きなメリットがあるのだろうか?
#◆ 次回予告
次は Karto SLAM
にチャレンジしようと思う。
#◆ 次回記事
RaspberryPi3とZumoとROSで半永久自走式充放電ロボを作成したい_011日目_SLAM_Karto SLAM_LiDAR(A1M8) へ続く