概要
ROS 2環境で3D LiDAR でSLAMし、PCDマップが保存できるパッケージを調査してまとめた。
LIO-SAM
LiDAR Inertial SLAMとして有名なLIO-SAMのros2 ブランチ
| 説明 | 高精度なリアルタイム移動ロボットの軌道推定と地図構築を実現するフレームワーク。 ライダー慣性オドメトリを因子グラフ上に定式化し、ループクロージャーを含む多数の相対・絶対計測値を異なるソースから因子としてシステムに取り込むことを可能にする |
|---|---|
| 入力センサ | 3D LiDAR, IMU, GNSS |
| ループ閉じ込み | あり |
| IMU | 必須 |
| 対応センサ | Velodyne, Ouster, LIVOX |
| 入力トピック | /points [sensor_msgs/msg/PointCloud2] /imu/data [sensor_msgs/msg/Imu] |
| 出力トピック | /lio_sam/mapping/cloud_registered /lio_sam/mapping/odometry /lio_sam/mapping/path |
| ソフトウェアライセンス | BSD-3 |
サンプルのrosbagを使って動かしてみた記事をこちらに書いた。
FAST_LIO
FAST-LIOのROS2対応版のリポジトリ。まだ本家のリポジトリにはマージされていない
| 説明 | 計算効率が高く、ロバスト性のあるLiDAR慣性オドメトリパッケージ LiDARの特徴点とIMUデータを緊密に結合した反復拡張カルマンフィルタを使用して融合し、高速運動やノイズの多い、または混雑した環境での堅牢なナビゲーションを可能にする |
|---|---|
| 入力センサ | 3D LiDAR, IMU |
| ループ閉じ込み | なし |
| IMU | 必須 |
| 対応センサ | Velodyne, Ouster, LIVOX |
| 入力トピック | |
| 出力トピック | |
| ソフトウェアライセンス | GPL-2.0 license |
上記リポジトリをDocker化したもの。
lidarslam_ros2
| 説明 | OpenMPでブーストしたgicp/ndtスキャンマッチングを用いたフロントエンドと、グラフベースのslamを用いたバックエンドのROS2パッケージ |
|---|---|
| 入力センサ | 3D LiDAR, IMU |
| ループ閉じ込み | あり |
| IMU | オプション |
| 対応センサ | Velodyne, Ouster, LIVOX |
| 入力トピック | /input_cloud [sensor_msgs/PointCloud2] /tf(from "base_link" to LiDAR's frame) /initial_pose[geometry_msgs/PoseStamed] /imu [sensor_msgs/Imu] /tf(from "odom" to "base_link")(Odometry)(optional) |
| 出力トピック | /current_pose [geometry_msgs/PoseStamped] /map [sensor_msgs/PointCloud2] /path [nav_msgs/Path] /tf(from "map" to "base_link") /map_array[lidarslam_msgs/MapArray] |
| ソフトウェアライセンス | BSD-2-Clause license |
Velodyne VLPで動かしてみた記事をこちらに書いた。
li_slam_ros2
上のlidarslam_ros2にLIO-SAMのIMU結合方法を組み合わせたもの
| 説明 | |
|---|---|
| 入力センサ | 3D LiDAR, IMU, GNSS |
| ループ閉じ込み | あり |
| IMU | 必須 |
| ソフトウェアライセンス | BSD-2-Clause license |
cartographer
cartographerのROS 2版を3D で動かす。
| 説明 | |
|---|---|
| 入力センサ | 3D LiDAR, IMU |
| ループ閉じ込み | あり |
| IMU | 必須 |
| ソフトウェアライセンス | Apache-2.0 license |
ROS 2で3Dのデモを実行する方法をこちらに書いた。
まとめ
githubから3D LiDARでマップ作成できてROS 2に対応したものを調査してまとめた。
参考