必须加 --recursive 克隆,否则缺少 ndt_omp_ros2 等子模块;需先单独安装 gtsam(通过 PPA);voxel_grid_size 设得过大时速度会发散;demo 数据为 ROS1 bag,需用 rosbags 转换后才能 ros2 bag play

li_slam_ros2
rsasaki0109BSD-2-Clause更新放缓基于 ROS 2 的紧耦合激光雷达惯性 SLAM 包,融合 NDT/GICP 点云配准与 IMU 数据,用于机器人在复杂环境中的实时定位与建图。
ROS 2 package of tightly-coupled lidar inertial ndt/gicp slam
cd ~/ros2_ws/src && git clone --recursive https://github.com/rsasaki0109/li_slam_ros2
sudo add-apt-repository ppa:borglab/gtsam-release-4.1 && sudo apt update && sudo apt install libgtsam-dev libgtsam-unstable-dev
cd ~/ros2_ws && rosdep install --from-paths src --ignore-src -yr && colcon build --cmake-args -DCMAKE_BUILD_TYPE=ReleaseREADME 未说明显存或 CPU 要求;demo 数据使用 Velodyne VLP-16 激光雷达,需配合 IMU 使用
ROS 2 紧耦合激光惯性 SLAM 包,融合 NDT/GICP 与 LIO-SAM 的 IMU 方法,输出位姿与点云地图
基于 ROS 2 的紧耦合激光雷达惯性 SLAM 包,融合 NDT/GICP 点云配准与 IMU 数据,用于机器人在复杂环境中的实时定位与建图。
核心能力
- 融合 lidarslam_ros2 与 LIO-SAM 的 IMU 复合方法
- 用 NDT/GICP 做扫描匹配并支持回环修正轨迹
- 回环或调用服务时保存 pose_graph.g2o 与 map.pcd
- 提供步行与校园大场景两个数据集 demo 及 rviz 配置
容易踩的坑
- 0.1.0-humble最新正式版2023-11-26 · 2023-11-26 08:26 UTC
这个版本没有写更新说明。
- 0.1.0-foxy2023-11-26 · 2023-11-26 08:25 UTC
这个版本没有写更新说明。
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
li_slam_ros2
This package is a combination of lidarslam_ros2 and the LIO-SAM IMU composite method.
See LIO-SAM for IMU composites, otherwise see lidarslam_ros2.
- Walking dataset(casual_walk.bag)
Yellow path: path without loop closure, Green path: modified path, Red: map
Reference(From the LIO-SAM paper)
https://github.com/TixiaoShan/LIO-SAM/blob/master/config/doc/paper.pdf
- Campus dataset (large) demo(big_loop.bag)
Yellow path: path without loop closure, Red: map (the 10x10 grids in size of 10m × 10m)
Green path: modified path with loop closure, Red: map
requirement to build
You need ndt_omp_ros2 and gtsam for scan-matcher
clone
cd ~/ros2_ws/src
git clone --recursive https://github.com/rsasaki0109/li_slam_ros2
gtsam install
sudo add-apt-repository ppa:borglab/gtsam-release-4.1
sudo apt update
sudo apt install libgtsam-dev libgtsam-unstable-dev
build
cd ~/ros2_ws
rosdep update
rosdep install --from-paths src --ignore-src -yr
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
Walking dataset demo(casual_walk.bag)
The optimization pipeline in Lidar Inertial SLAM were taken from LIO-SAM.
(Note: See the LIO-SAM repository for detailed settings regarding IMU.
The other thing to note is that the speed will diverge if the voxel_grid_size is large.
demo data(ROS1) in LIO-SAM
https://github.com/TixiaoShan/LIO-SAM
To use ros1 rosbag , use rosbags.
The Velodyne VLP-16 was used in this data.
rviz2 -d src/li_slam_ros2/scanmatcher/rviz/lio.rviz
ros2 launch scanmatcher lio.launch.py
ros2 bag play walking_dataset/
Green arrow: pose, Yellow path: path, Green path: path by imu
Yellow path: path without loop closure, Green path: modified path, Red: map
rosgraph
pose_graph.g2o and map.pcd are saved in loop closing or using the following service call.
ros2 service call /map_save std_srvs/Empty
Campus dataset (large) demo(big_loop.bag)
rviz2 -d src/li_slam_ros2/scanmatcher/rviz/lio_bigloop.rviz
ros2 launch scanmatcher lio_bigloop.launch.py
ros2 bag play rosbag_v2 big_loop/
Yellow path: path without loop closure, Red: map (the 10x10 grids in size of 10m × 10m)
Green path: modified path with loop closure, Red: map
Used Libraries
- Eigen
- PCL(BSD3)
- g2o(BSD2 except a part)
- ndt_omp (BSD2)
- gtsam(BSD2)