【自律型ロボット製作記】#2 RPLiDAR A1M8 レーザースキャナでSLAMを試す
こんにちは、InomaCreateです。
前回は、ロボットにROSを入れて、スマホからラジコン操作できるようにしました。
今回は、自律型の第一歩として、RPLidar A1M8というレーザースキャナを購入してみましたので、お試しでSLAMを動かしてみました。
SLAMとは?
SLAMというのは、「Simultaneous Localization and Mapping」の略で、ロボットの自己位置と地図作成を同時に行う技術です。
2次元でSLAMを動かすには、センサとしては、2Dレーザースキャナやオドメトリ(回転数から算出した自己位置)が必要になりますが、Hector SLAMという技術を使えば、オドメトリが不要でレーザースキャナーのみで実現できるということで、今回は、Hector SLAMを動かしてみたいと思います。
RPLiDAR A1M8
今回はお試しでSLAMを動かすということで、「RPLiDAR A1M8」というかなり安価なレーザースキャナを購入しました。
アマゾン(2020.2.22時点)で¥10,760でした。
スペックとしては、サンプルレート8,000回/S&レーザーレンジ12Mです。
RPLiDARのサンプルを動かしてみる
ROS(ubuntuPC)で動かせるサンプルがありましたので、早速動かしてみました。
以下記事参考にさせていただきました。ありがとうございます。
RPLIDAR A1をROSで動かしてみる
まずは、自分のROS環境のsrc環境配下に移動して、gitからcloneします。
$ git clone https://github.com/Slamtec/rplidar_ros.git
ワークスペースへ移動してmakeします。
$ catkin_make
catkinビルドシステムの環境設定ファイルを読み込みます。
RPLiDARをubuntuPCにUSBで接続します。
USBポートに権限を付与します。
rplidar_rosのroslauchを起動します。
以下のようにrvizが起動して点群表示されています。
ちゃんと動作しているようです。
Hector SLAMを使ってみる
LidarのみでSLAMを動かせるというHector SLAMを動かしてみます。
まずは、自分のROS環境のsrc環境配下に移動して、gitからcloneします。
$ git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git
ワークスペースへ移動してmakeします。
$ catkin_make
catkinビルドシステムの環境設定ファイルを読み込みます。
以下サイトを参考に、2つのlaunchファイルを編集します。
RPLidar Hector SLAM
こちらの記事がわかりやすく参考になりました。ありがとうございます。
安価な2DレーザスキャナRPLidar A2とROSでSLAMを試す
編集後、HectorSLAMを実行してみます。
ターミナルからroscoreを立ち上げます。
別のターミナルを開き、rplidar_rosを立ち上げます。
別のターミナルを開き、hector_slam_launchを立ち上げます。
rvizが起動して、地図が生成され始めました。
うまくいったようです。
マップの保存は、mapsaverを起動することで保存できます。
最後に
ROSのパッケージを使えば、簡単にSLAMが動かせることがわかりました。
あとは、どのぐらい精度がでるのかを実際にロボットに搭載していろいろと検証したいと思います。
また、SLAMの技術をきちんと把握したいので、以下の本を購入して勉強中です。
まだまだ先は長いですが、地道にやっていきます。
それでは!
スポンサーリンク
コメント
こちらを参考に同様のことをしています。ラスベリーパイ4で試しているのですが、SLAMの編集を行った後の「$ roslaunch hector_slam_launch tutorial.launch」の部分でエラーが出てしまいます。
どのように解決できるかを教えていただければ幸いです。
よろしくお願いいたします。
返信が遅れて申し訳ありません。
エラーについてですが、具体的なエラーメッセージ等教えていただければ何かわかることがあるかもしれません。
お手数をおかけしますがよろしくお願いいたします。