LoginSignup
19
17

ROS2で使える2DのLaserScanで動くSLAM, Localization関係のパッケージまとめ

Last updated at Posted at 2023-01-03

現在ROS2で使えてOSSとして公開されているSLAM、自己位置推定関係のパッケージを調べてまとめてみた
2D LiDARのsensor_msgs/LaserScanをSubscribeして動くものが調査対象

備考:GitHubでROS2 で使えるbranchがあるものが対象、実際に動くかは不明

2D LiDAR SLAM

Google Cartographer

Github:

Subscribe Topics : sensor_msgs/LaserScan, sensor_msgs/Imu, nav_msgs/Odometry, sensor_msgs/NavSatFix

ソフトウェアライセンス:Apache-2.0 license

ROS1であったもののROS2実装 
IMU,Odomは必須ではなくLaserScanのみで動作する
詳しい説明は他に解説記事がいっぱいあるのでここでは省略

slam_toolbox

Github:

Subscribe Topics : sensor_msgs/LaserScan, TF(odom -> base_link)

ソフトウェアライセンス: LGPL-2.1 license

ROS2標準のSLAM(ROS1のGmappingみたいなもの)
Odomは必須なので、OdomがないロボットはCartographerを使ったほうがよい

導入方法などは以前書いたこちらの記事を参照

littleslam_ros2

Github: https://github.com/rsasaki0109/littleslam_ros2
Subscribe Topics : sensor_msgs/LaserScan, TF(odom -> base_link)
ソフトウェアライセンス: MPL-2.0 license

こちらはSLAM入門という本のアルゴリズムのROS2実装
Odomが必須

slam_gmapping

Github:

Subscribe Topics : sensor_msgs/LaserScan, TF(odom -> base_link)
ソフトウェアライセンス: CreativeCommons-by-nc-sa-2.0

ROS1のGmappingのROS2ラッパーらしい eloquent-develがあるがFoxyやHumbleで動くか不明
Odomが必須

iris_lama_ros

Github:

Subscribe Topics : sensor_msgs/LaserScan, geometry_msgs/PoseWithCovarianceStamped, TF(odom -> base_link)
ソフトウェアライセンス: BSD-3-Clause license

以下のパッケージのROS2ラッパー
https://github.com/iris-ua/iris_lama_ros

launchでParticle Filter SLAM、オフラインSLAM、Graph SLAMを選択できる
eloquent-develがあるがFoxyやHumbleで動くか不明

自己位置推定関係

amcl

Github:

Subscribe Topics : sensor_msgs/LaserScan, nav_msgs/OccupancyGrid, TF(odom -> base_link)
Publish Topics : TF(map -> odom)
ソフトウェアライセンス: LGPL-2.1-or-later

同じみの自己位置推定パッケージ、Navigation2の機能として提供される。
基本的にNav2と一緒に使う。

mrpt_navigation/mrpt_localization/

mrpt_navigationというROS1のNavigationStackのような自律移動パッケージのROS2実装の中にある自己位置推定の機能
mrpt_navigationをインストールしてこのノードだけ使えばamclと同じように使える

emcl2_ros2

上田先生のemclをROS2 移行したもの

rf2o_laser_odometry

Github:

Subscribe Topics : sensor_msgs/LaserScan, nav_msgs/OccupancyGrid, TF(odom -> base_link)
Publish Topics : TF(odom -> base_link)
ソフトウェアライセンス: GPL-3.0 license

ROS1であったLaserオドメトリパッケージ rf2o_laser_odometryのROS2版
ホイールオドメトリが取得できないロボットはこれを使うことで、LiDARのLaserScanのみでオドメトリできる。
ライセンスがGPLなので商業利用しづらいのが難点。


総括

3D LiDAR SLAMやVisual SLAMのパッケージもこのページにまとめようと思ったが、いろいろありすぎるので2D SLAMのみにした。

SLAMにおいてはホイールオドメトリが使えるロボットはslam_toolbox、使えないロボットはCartographerと使い分けるのがいいだろう。


参考

19
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
17