Skip to content
 
 

Repository files navigation

LIO_SAM_MID360 (ROS 2)

Adapted LIO-SAM for Livox MID-360. This fork renames the package to lio_sam_mid360 (ROS package names must be lowercase) and updates configs/launch for MID-360 usage.

Features

  • Livox MID-360 point cloud and timing assumptions
  • Clean ROS 2 launch (run.launch.py)
  • Same node graph as LIO-SAM (image projection, feature extraction, IMU preintegration, map optimization)
  • Directly supports ROS Bag Integration
  • Supports both 6-axis and 9-axis IMUs

Requirements

  • Ubuntu 22.04 + ROS 2 Humble (other ROS 2 distros may work)
  • GTSAM 4.x (libgtsam-dev and libgtsam-unstable-dev)
  • PCL, OpenCV (installed via ROS packages below)

Install ROS packages (replace ${ROS_DISTRO} with your distro, e.g., humble):

sudo apt update
sudo apt install \
  ros-${ROS_DISTRO}-perception-pcl \
  ros-${ROS_DISTRO}-pcl-msgs \
  ros-${ROS_DISTRO}-cv-bridge \
  ros-${ROS_DISTRO}-image-geometry
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/src
# this folder should be at ~/ros2_ws/src/LIO_SAM_MID360
cd ..
colcon build --symlink-install --packages-select lio_sam_mid360
source install/setup.bash

Configure for Livox MID-360

Edit config/params.yaml:

  • Set sensor to Livox settings (rings, horizon) appropriate for MID-360
  • Set topics to match your Livox driver output
  • Set IMU extrinsics so IMU -> lidar follows REP-105 (x forward, y left, z up)

Default static TFs in launch/run.launch.py assume co-located IMU and lidar; adjust if your mounting differs.

Edit the fov of the Lidar setting. For Livox MID360 (Default) it is -7 to 52 degree.

Run

ros2 launch lio_sam_mid360 run.launch.py

Play a bag in another terminal:

ros2 bag play your_data

Save map service

ros2 service call /lio_sam/save_map lio_sam_mid360/srv/SaveMap "{resolution: 0.2, destination: /tmp/LOAM}"
image image_1

Note: The service name /lio_sam/save_map follows the original namespace; the type is from this package.

Notes

  • Ensure Livox point type provides per-point time (relative within scan) and ring/channel index. Adapt imageProjection.cpp if your fields differ.
  • DDS/QoS: tune if running over networks with Livox drivers.

Issues

  • There was a large bias when using Livox IMU. This lead to an inaccurate incremental odometry estimate.

Credits

  • Adaptation and maintenance: Vishnuraj A
  • Based on the original LIO-SAM by Tixiao Shan et al. See LICENSE and original repository for citations.

About

LIOSAMMID360 is a specialized adaptation of the LIO-SAM (Lidar-Inertial Odometry and Mapping) framework, tailored for ROS 2 and Livox Lidars

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages